From f5ff8989d3bc71f2245d2b8a60e8b60a6c07933f Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Fri, 19 Mar 2010 01:00:28 +0100 Subject: [PATCH 001/320] Mesa: - update to Mesa-7.8-20100309 --- packages/graphics/Mesa/build | 8 +++- packages/graphics/Mesa/install | 7 ++-- .../patches/101_ubuntu_hidden_glname.patch | 12 ------ .../Mesa/patches/102_dont-vblank.diff | 14 ------- .../Mesa/patches/108_big_endian.patch | 18 --------- ...fix_relocation_delta_for_wm_surfaces.patch | 26 ------------ .../Mesa/patches/110_fix-libkms-api.diff | 40 ------------------- packages/graphics/Mesa/url | 3 +- 8 files changed, 11 insertions(+), 117 deletions(-) delete mode 100644 packages/graphics/Mesa/patches/101_ubuntu_hidden_glname.patch delete mode 100644 packages/graphics/Mesa/patches/102_dont-vblank.diff delete mode 100644 packages/graphics/Mesa/patches/108_big_endian.patch delete mode 100644 packages/graphics/Mesa/patches/109_fix_relocation_delta_for_wm_surfaces.patch delete mode 100644 packages/graphics/Mesa/patches/110_fix-libkms-api.diff diff --git a/packages/graphics/Mesa/build b/packages/graphics/Mesa/build index c4543087c8..73a404271c 100755 --- a/packages/graphics/Mesa/build +++ b/packages/graphics/Mesa/build @@ -17,7 +17,6 @@ get_graphicdrivers cd $PKG_BUILD HOST_CC=$HOST_CC \ -OPT_FLAGS="$CFLAGS -D_GNU_SOURCE" \ HOST_OPT_FLAGS="$HOST_CFLAGS" \ X11_INCLUDES= \ DRI_DRIVER_INSTALL_DIR="$XORG_PATH_DRI" \ @@ -48,7 +47,12 @@ DRI_DRIVER_SEARCH_DIR="$XORG_PATH_DRI" \ --without-demos \ --disable-gallium \ -make +make -C src/glsl CC=$HOST_CC CFLAGS="" +mv src/glsl/apps/compile ./host_compile + +make clean + +make GLSL_CL="\$(TOP)/host_compile" make -C progs/xdemos diff --git a/packages/graphics/Mesa/install b/packages/graphics/Mesa/install index 3b02a82bd2..24fadf2493 100755 --- a/packages/graphics/Mesa/install +++ b/packages/graphics/Mesa/install @@ -18,8 +18,9 @@ mkdir -p $INSTALL/usr/lib cp -PR $PKG_BUILD/lib/libGLU.so* $INSTALL/usr/lib mkdir -p $INSTALL/usr/lib/dri - cp -PR $PKG_BUILD/lib/*_dri.so $INSTALL/usr/lib/dri + cp -PR $PKG_BUILD/lib/*_dri.so $INSTALL/usr/lib/dri || true -# todo: only in devel build mkdir -p $INSTALL/usr/bin - cp -PR $PKG_BUILD/progs/xdemos/{glxdemo,glxgears,glxinfo} $INSTALL/usr/bin + cp -PR $PKG_BUILD/progs/xdemos/glxdemo $INSTALL/usr/bin + cp -PR $PKG_BUILD/progs/xdemos/glxgears $INSTALL/usr/bin + cp -PR $PKG_BUILD/progs/xdemos/glxinfo $INSTALL/usr/bin diff --git a/packages/graphics/Mesa/patches/101_ubuntu_hidden_glname.patch b/packages/graphics/Mesa/patches/101_ubuntu_hidden_glname.patch deleted file mode 100644 index a04106c4b0..0000000000 --- a/packages/graphics/Mesa/patches/101_ubuntu_hidden_glname.patch +++ /dev/null @@ -1,12 +0,0 @@ -Index: mesa/src/mesa/x86/glapi_x86.S -=================================================================== ---- mesa.orig/src/mesa/x86/glapi_x86.S 2009-06-29 14:43:07.000000000 +0300 -+++ mesa/src/mesa/x86/glapi_x86.S 2009-06-29 14:45:38.000000000 +0300 -@@ -148,7 +148,6 @@ - - ALIGNTEXT16 - GLOBL GLNAME(gl_dispatch_functions_start) -- HIDDEN(GLNAME(gl_dispatch_functions_start)) - GLNAME(gl_dispatch_functions_start): - - GL_STUB(NewList, _gloffset_NewList, NewList@8) diff --git a/packages/graphics/Mesa/patches/102_dont-vblank.diff b/packages/graphics/Mesa/patches/102_dont-vblank.diff deleted file mode 100644 index 3f1c3ae615..0000000000 --- a/packages/graphics/Mesa/patches/102_dont-vblank.diff +++ /dev/null @@ -1,14 +0,0 @@ -diff --git a/src/mesa/drivers/dri/intel/intel_screen.c b/src/mesa/drivers/dri/intel/intel_screen.c -index 5233e58..5dded4b 100644 ---- a/src/mesa/drivers/dri/intel/intel_screen.c -+++ b/src/mesa/drivers/dri/intel/intel_screen.c -@@ -55,7 +55,7 @@ PUBLIC const char __driConfigOptions[] = - DRI_CONF_BEGIN - DRI_CONF_SECTION_PERFORMANCE - DRI_CONF_FTHROTTLE_MODE(DRI_CONF_FTHROTTLE_IRQS) -- DRI_CONF_VBLANK_MODE(DRI_CONF_VBLANK_ALWAYS_SYNC) -+ DRI_CONF_VBLANK_MODE(DRI_CONF_VBLANK_DEF_INTERVAL_0) - /* Options correspond to DRI_CONF_BO_REUSE_DISABLED, - * DRI_CONF_BO_REUSE_ALL - */ - diff --git a/packages/graphics/Mesa/patches/108_big_endian.patch b/packages/graphics/Mesa/patches/108_big_endian.patch deleted file mode 100644 index 7341119082..0000000000 --- a/packages/graphics/Mesa/patches/108_big_endian.patch +++ /dev/null @@ -1,18 +0,0 @@ -diff -Nurp mesa-7.6.0~git20090817.7c422387/src/mesa/drivers/dri/r300/r300_draw.c mesa-7.6.0~git20090817.7c422387-working/src/mesa/drivers/dri/r300/r300_draw.c ---- mesa-7.6.0~git20090817.7c422387/src/mesa/drivers/dri/r300/r300_draw.c 2009-08-17 07:30:14.000000000 -0700 -+++ mesa-7.6.0~git20090817.7c422387-working/src/mesa/drivers/dri/r300/r300_draw.c 2009-08-26 13:38:46.000000000 -0700 -@@ -108,12 +108,13 @@ static void r300FixupIndexBuffer(GLconte - - #if MESA_BIG_ENDIAN - } else { /* if (mesa_ind_buf->type == GL_UNSIGNED_SHORT) */ -+ GLuint size; - GLushort *in = (GLushort *)src_ptr; - size = sizeof(GLushort) * ((mesa_ind_buf->count + 1) & ~1); - - radeonAllocDmaRegion(&r300->radeon, &r300->ind_buf.bo, &r300->ind_buf.bo_offet, size, 4); - -- assert(r300->ind_buf.bo->ptr != NULL) -+ assert(r300->ind_buf.bo->ptr != NULL); - out = (GLuint *)ADD_POINTERS(r300->ind_buf.bo->ptr, r300->ind_buf.bo_offset); - - for (i = 0; i + 1 < mesa_ind_buf->count; i += 2) { diff --git a/packages/graphics/Mesa/patches/109_fix_relocation_delta_for_wm_surfaces.patch b/packages/graphics/Mesa/patches/109_fix_relocation_delta_for_wm_surfaces.patch deleted file mode 100644 index 34279dda97..0000000000 --- a/packages/graphics/Mesa/patches/109_fix_relocation_delta_for_wm_surfaces.patch +++ /dev/null @@ -1,26 +0,0 @@ -From acfea5c705f383692e661d37c5cd7da2f3db559b Mon Sep 17 00:00:00 2001 -From: Eric Anholt -Date: Wed, 09 Sep 2009 19:35:30 +0000 -Subject: i965: Fix relocation delta for WM surfaces. - -This was a regression in 0f328c90dbc893e15005f2ab441d309c1c176245. - -Bug #23688 -Bug #23254 -(cherry picked from commit 5604b27b9326ac542069a49ed9650c4b0d3e939a) ---- -diff --git a/src/mesa/drivers/dri/i965/brw_wm_surface_state.c b/src/mesa/drivers/dri/i965/brw_wm_surface_state.c -index 096f743..3dcc592 100644 ---- a/src/mesa/drivers/dri/i965/brw_wm_surface_state.c -+++ b/src/mesa/drivers/dri/i965/brw_wm_surface_state.c -@@ -629,7 +629,7 @@ brw_update_renderbuffer_surface(struct brw_context *brw, - drm_intel_bo_emit_reloc(brw->wm.surf_bo[unit], - offsetof(struct brw_surface_state, ss1), - region_bo, -- surf.ss1.base_addr, -+ surf.ss1.base_addr - region_bo->offset, - I915_GEM_DOMAIN_RENDER, - I915_GEM_DOMAIN_RENDER); - } --- -cgit v0.8.2 diff --git a/packages/graphics/Mesa/patches/110_fix-libkms-api.diff b/packages/graphics/Mesa/patches/110_fix-libkms-api.diff deleted file mode 100644 index cea46b01fe..0000000000 --- a/packages/graphics/Mesa/patches/110_fix-libkms-api.diff +++ /dev/null @@ -1,40 +0,0 @@ -From 8db8adfd01a1ff1e2a160ae3b0199bd3daa4191a Mon Sep 17 00:00:00 2001 -From: Jakob Bornecrantz -Date: Thu, 28 Jan 2010 16:59:26 +0000 -Subject: st/xorg: Update to new libkms interface but be backwards compatible - ---- -diff --git a/src/gallium/state_trackers/xorg/xorg_crtc.c b/src/gallium/state_trackers/xorg/xorg_crtc.c -index 0160b1a..daa9f8b 100644 ---- a/src/gallium/state_trackers/xorg/xorg_crtc.c -+++ b/src/gallium/state_trackers/xorg/xorg_crtc.c -@@ -243,7 +243,11 @@ crtc_load_cursor_argb_kms(xf86CrtcPtr crtc, CARD32 * image) - unsigned attr[8]; - - attr[0] = KMS_BO_TYPE; -+#ifdef KMS_BO_TYPE_CURSOR_64X64_A8R8G8B8 -+ attr[1] = KMS_BO_TYPE_CURSOR_64X64_A8R8G8B8; -+#else - attr[1] = KMS_BO_TYPE_CURSOR; -+#endif - attr[2] = KMS_WIDTH; - attr[3] = 64; - attr[4] = KMS_HEIGHT; -diff --git a/src/gallium/state_trackers/xorg/xorg_driver.c b/src/gallium/state_trackers/xorg/xorg_driver.c -index e4ad789..f53a879 100644 ---- a/src/gallium/state_trackers/xorg/xorg_driver.c -+++ b/src/gallium/state_trackers/xorg/xorg_driver.c -@@ -1008,7 +1008,11 @@ drv_create_front_buffer_kms(ScrnInfoPtr pScrn) - int ret; - - attr[0] = KMS_BO_TYPE; -+#ifdef KMS_BO_TYPE_SCANOUT_X8R8G8B8 -+ attr[1] = KMS_BO_TYPE_SCANOUT_X8R8G8B8; -+#else - attr[1] = KMS_BO_TYPE_SCANOUT; -+#endif - attr[2] = KMS_WIDTH; - attr[3] = pScrn->virtualX; - attr[4] = KMS_HEIGHT; --- -cgit v0.8.3-6-g21f6 diff --git a/packages/graphics/Mesa/url b/packages/graphics/Mesa/url index 162dcaf14a..2e883a99b3 100644 --- a/packages/graphics/Mesa/url +++ b/packages/graphics/Mesa/url @@ -1,2 +1 @@ -ftp://ftp.freedesktop.org/pub/mesa/7.7/MesaLib-7.7.tar.bz2 -ftp://ftp.freedesktop.org/pub/mesa/7.7/MesaDemos-7.7.tar.bz2 \ No newline at end of file +http://sources.openelec.tv/svn/Mesa-7.8-20100309.tar.bz2 From 3691c13b30383f069b87d99a91a481b0433bf5dd Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Fri, 19 Mar 2010 01:00:52 +0100 Subject: [PATCH 002/320] libdrm: - update to libdrm-20100309 --- packages/graphics/libdrm/url | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/graphics/libdrm/url b/packages/graphics/libdrm/url index 20e8616e6a..8121b29364 100644 --- a/packages/graphics/libdrm/url +++ b/packages/graphics/libdrm/url @@ -1 +1 @@ -http://dri.freedesktop.org/libdrm/libdrm-2.4.19.tar.bz2 \ No newline at end of file +http://sources.openelec.tv/svn/libdrm-20100309.tar.bz2 From 0219a0d2c63379273d8ba9cd96c5dc75d8c7133e Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Fri, 19 Mar 2010 01:02:38 +0100 Subject: [PATCH 003/320] xorg-server: - update to xorg-server-20100309 --- packages/x11/xserver/xorg-server/build | 16 +- .../xserver/xorg-server/config/10-quirks.conf | 10 + .../x11/xserver/xorg-server/init.d/60_xorg | 3 +- packages/x11/xserver/xorg-server/install | 14 +- ...xkbcomp-output-for-fast-start-up-v5.3.diff | 336 ------------------ .../patches/100_xserver_exa_force_greedy.diff | 30 -- .../patches/110_fedora_no_move_damage.diff | 35 -- ...56_exevents_copykeyclass_nullptrcheck.diff | 22 -- .../patches/157_check_null_modes.diff | 14 - .../patches/158_raise_maxclients.diff | 12 - .../patches/162_null_crtc_in_rotation.diff | 13 - .../patches/164_trap-aspect-ratios.diff | 61 ---- .../166_nullptr_xinerama_keyrepeat.diff | 30 -- .../patches/167_nullptr_xisbread.diff | 13 - .../patches/169_mipointer_nullptr_checks.diff | 107 ------ ...172_cwgetbackingpicture_nullptr_check.diff | 39 -- .../patches/173_edid_quirk_philips_lcd.diff | 21 -- ...0_fedora_no_synaptics_mouse_synthesis.diff | 16 - .../patches/201_fedora-pci-primary.diff | 91 ----- .../patches/30_typedef-apm-2.6.24.diff | 12 - ...proc-instead-of-sysfs-for-pci-domains.diff | 32 -- .../66_only-switch-vt-when-active.diff | 32 -- ...oppy-heuristic-first-for-initial-mode.diff | 17 + .../patches/xorg-x11-nonroot-vesa.diff | 12 + ....patch => xserver-1.5.0-bg-none-root.diff} | 30 +- .../xserver-1.5.0-projector-fb-size.patch | 32 -- .../patches/xserver-1.5.1-mode-debug.patch | 26 -- .../xserver-1.6.0-less-acpi-brokenness.patch | 31 -- .../xserver-1.7.0-glx-versioning.patch | 233 ------------ .../patches/xserver-1.7.1-glx14-swrast.patch | 26 -- .../patches/xserver-1.7.1-libcrypto.patch | 35 -- .../patches/xserver-1.8-udev-warning.diff | 37 ++ .../patches/xserver-boottime.patch | 38 -- .../patches/xserver-no-root-2.diff | 53 +++ packages/x11/xserver/xorg-server/url | 2 +- 35 files changed, 158 insertions(+), 1373 deletions(-) create mode 100644 packages/x11/xserver/xorg-server/config/10-quirks.conf delete mode 100644 packages/x11/xserver/xorg-server/patches/01_cache-xkbcomp-output-for-fast-start-up-v5.3.diff delete mode 100644 packages/x11/xserver/xorg-server/patches/100_xserver_exa_force_greedy.diff delete mode 100644 packages/x11/xserver/xorg-server/patches/110_fedora_no_move_damage.diff delete mode 100644 packages/x11/xserver/xorg-server/patches/156_exevents_copykeyclass_nullptrcheck.diff delete mode 100644 packages/x11/xserver/xorg-server/patches/157_check_null_modes.diff delete mode 100644 packages/x11/xserver/xorg-server/patches/158_raise_maxclients.diff delete mode 100644 packages/x11/xserver/xorg-server/patches/162_null_crtc_in_rotation.diff delete mode 100644 packages/x11/xserver/xorg-server/patches/164_trap-aspect-ratios.diff delete mode 100644 packages/x11/xserver/xorg-server/patches/166_nullptr_xinerama_keyrepeat.diff delete mode 100644 packages/x11/xserver/xorg-server/patches/167_nullptr_xisbread.diff delete mode 100644 packages/x11/xserver/xorg-server/patches/169_mipointer_nullptr_checks.diff delete mode 100644 packages/x11/xserver/xorg-server/patches/172_cwgetbackingpicture_nullptr_check.diff delete mode 100644 packages/x11/xserver/xorg-server/patches/173_edid_quirk_philips_lcd.diff delete mode 100644 packages/x11/xserver/xorg-server/patches/180_fedora_no_synaptics_mouse_synthesis.diff delete mode 100644 packages/x11/xserver/xorg-server/patches/201_fedora-pci-primary.diff delete mode 100644 packages/x11/xserver/xorg-server/patches/30_typedef-apm-2.6.24.diff delete mode 100644 packages/x11/xserver/xorg-server/patches/60_use-proc-instead-of-sysfs-for-pci-domains.diff delete mode 100644 packages/x11/xserver/xorg-server/patches/66_only-switch-vt-when-active.diff create mode 100644 packages/x11/xserver/xorg-server/patches/use-sloppy-heuristic-first-for-initial-mode.diff create mode 100644 packages/x11/xserver/xorg-server/patches/xorg-x11-nonroot-vesa.diff rename packages/x11/xserver/xorg-server/patches/{xserver-1.5.0-bg-none-root.patch => xserver-1.5.0-bg-none-root.diff} (88%) delete mode 100644 packages/x11/xserver/xorg-server/patches/xserver-1.5.0-projector-fb-size.patch delete mode 100644 packages/x11/xserver/xorg-server/patches/xserver-1.5.1-mode-debug.patch delete mode 100644 packages/x11/xserver/xorg-server/patches/xserver-1.6.0-less-acpi-brokenness.patch delete mode 100644 packages/x11/xserver/xorg-server/patches/xserver-1.7.0-glx-versioning.patch delete mode 100644 packages/x11/xserver/xorg-server/patches/xserver-1.7.1-glx14-swrast.patch delete mode 100644 packages/x11/xserver/xorg-server/patches/xserver-1.7.1-libcrypto.patch create mode 100644 packages/x11/xserver/xorg-server/patches/xserver-1.8-udev-warning.diff delete mode 100644 packages/x11/xserver/xorg-server/patches/xserver-boottime.patch create mode 100644 packages/x11/xserver/xorg-server/patches/xserver-no-root-2.diff diff --git a/packages/x11/xserver/xorg-server/build b/packages/x11/xserver/xorg-server/build index 6a9635034d..bb06faf44d 100755 --- a/packages/x11/xserver/xorg-server/build +++ b/packages/x11/xserver/xorg-server/build @@ -29,8 +29,7 @@ $SCRIPTS/build libfontenc $SCRIPTS/build pixman $SCRIPTS/build fontsproto $SCRIPTS/build xf86bigfontproto -$SCRIPTS/build dbus -$SCRIPTS/build hal +$SCRIPTS/build udev if [ "$XINERAMA_SUPPORT" = "yes" ]; then $SCRIPTS/build libXinerama @@ -40,7 +39,6 @@ else fi cd $PKG_BUILD -autoconf ./configure --host=$TARGET_NAME \ --build=$HOST_NAME \ --prefix=/usr \ @@ -61,7 +59,6 @@ autoconf --enable-registry \ --disable-composite \ $XORG_XINERAMA \ - --enable-null-root-cursor \ --enable-mitshm \ --disable-xres \ --disable-record \ @@ -83,8 +80,9 @@ autoconf --enable-dbe \ --disable-xf86bigfont \ --enable-dpms \ - --enable-config-dbus \ - --enable-config-hal \ + --enable-config-udev \ + --disable-config-dbus \ + --disable-config-hal \ --enable-xfree86-utils \ --enable-xorg \ --disable-dmx \ @@ -95,7 +93,6 @@ autoconf --disable-xwin \ --disable-kdrive \ --disable-xephyr \ - --disable-xsdl \ --disable-xfake \ --enable-xfbdev \ --disable-install-setuid \ @@ -103,14 +100,15 @@ autoconf --with-int10=x86emu \ --disable-ipv6 \ --with-gnu-ld \ + --with-sha1=libcrypto \ --with-os-vendor="OpenELEC" \ --with-module-dir=$XORG_PATH_MODULES \ --with-xkb-path=$XORG_PATH_XKB \ --with-xkb-output=/var/cache/xkb \ --with-log-dir=/var/log \ --with-dri-driver-path=$XORG_PATH_DRI \ - --with-fontdir=$XORG_PATH_FONTS \ - --with-default-font-path="$XORG_PATH_FONTS/liberation,$XORG_PATH_FONTS/misc,built-ins" \ + --with-fontrootdir=$XORG_PATH_FONTS \ + --with-default-font-path="$XORG_PATH_FONTS/misc,built-ins" make diff --git a/packages/x11/xserver/xorg-server/config/10-quirks.conf b/packages/x11/xserver/xorg-server/config/10-quirks.conf new file mode 100644 index 0000000000..7afad22dc6 --- /dev/null +++ b/packages/x11/xserver/xorg-server/config/10-quirks.conf @@ -0,0 +1,10 @@ +# Collection of quirks and blacklist/whitelists for specific devices. + + +# Accelerometer device, posts data through ABS_X/ABS_Y, making X unusable +# http://bugs.freedesktop.org/show_bug.cgi?id=22442 +Section "InputClass" + Identifier "ThinkPad HDAPS accelerometer blacklist" + MatchProduct "ThinkPad HDAPS accelerometer data" + Option "Ignore" "on" +EndSection diff --git a/packages/x11/xserver/xorg-server/init.d/60_xorg b/packages/x11/xserver/xorg-server/init.d/60_xorg index de8f1fcd26..5dd0d31718 100644 --- a/packages/x11/xserver/xorg-server/init.d/60_xorg +++ b/packages/x11/xserver/xorg-server/init.d/60_xorg @@ -3,7 +3,7 @@ # runlevels: openelec XORG_NVIDIA_CONF="/etc/X11/xorg-nvidia.conf" -XORG_ARGS="-s 0 -noreset -allowMouseOpenFail -nocursor -nolisten tcp" +XORG_ARGS="-s 0 -nr -noreset -allowMouseOpenFail -nocursor -nolisten tcp" #------------------------------------------------------------------------------- # do not change anything below @@ -13,6 +13,7 @@ XORG_ARGS="-s 0 -noreset -allowMouseOpenFail -nocursor -nolisten tcp" if lspci -n | grep 0300 | grep -q 10de; then + XORG_ARGS="$XORG_ARGS -ignoreABI" [ -f $XORG_NVIDIA_CONF ] && XORG_ARGS="$XORG_ARGS -config $XORG_NVIDIA_CONF" progress "Found nVidia card, enabling NVIDIA GLX as requested" diff --git a/packages/x11/xserver/xorg-server/install b/packages/x11/xserver/xorg-server/install index a510cb56b4..0937985fcf 100755 --- a/packages/x11/xserver/xorg-server/install +++ b/packages/x11/xserver/xorg-server/install @@ -13,8 +13,7 @@ $SCRIPTS/install libXv $SCRIPTS/install libdrm $SCRIPTS/install Mesa $SCRIPTS/install pixman -$SCRIPTS/install dbus -$SCRIPTS/install hal +$SCRIPTS/install udev [ "$XINERAMA_SUPPORT" = "yes" ] && $SCRIPTS/install libXinerama @@ -54,11 +53,8 @@ mkdir -p $XORG_DST/multimedia mkdir -p $INSTALL/usr/lib/xorg cp $PKG_BUILD/dix/protocol.txt $INSTALL/usr/lib/xorg -mkdir -p $INSTALL/etc/dbus-1/system.d - cp $PKG_BUILD/config/xorg-server.conf $INSTALL/etc/dbus-1/system.d - -mkdir -p $INSTALL/usr/share/hal/fdi/policy/10osvendor/ - cp $PKG_BUILD/config/x11-input.fdi $INSTALL/usr/share/hal/fdi/policy/10osvendor/10-x11-input.fdi +mkdir -p $INSTALL/etc/X11/xorg.conf.d + cp -PR $PKG_DIR/config/*.conf $INSTALL/etc/X11/xorg.conf.d #Fonts $SCRIPTS/install encodings @@ -76,11 +72,9 @@ mkdir -p $INSTALL/usr/share/hal/fdi/policy/10osvendor/ $SCRIPTS/install xf86-input-synaptics $SCRIPTS/install xf86-input-wacom -get_graphicdrivers - for drv in $XORG_DRIVERS; do $SCRIPTS/install xf86-video-$drv done -#Tools +# Tools $SCRIPTS/install pciutils diff --git a/packages/x11/xserver/xorg-server/patches/01_cache-xkbcomp-output-for-fast-start-up-v5.3.diff b/packages/x11/xserver/xorg-server/patches/01_cache-xkbcomp-output-for-fast-start-up-v5.3.diff deleted file mode 100644 index 0312982178..0000000000 --- a/packages/x11/xserver/xorg-server/patches/01_cache-xkbcomp-output-for-fast-start-up-v5.3.diff +++ /dev/null @@ -1,336 +0,0 @@ -diff -Naur xorg-server-1.7.99.1/configure xorg-server-1.7.99.1.patch/configure -diff -Naur xorg-server-1.7.99.1/configure.ac xorg-server-1.7.99.1.patch/configure.ac ---- xorg-server-1.7.99.1/configure.ac 2009-10-21 18:06:54.000000000 +0200 -+++ xorg-server-1.7.99.1.patch/configure.ac 2009-10-24 10:51:17.074488205 +0200 -@@ -501,9 +501,9 @@ - AC_ARG_WITH(xkb-path, AS_HELP_STRING([--with-xkb-path=PATH], [Path to XKB base dir (default: ${datadir}/X11/xkb)]), - [ XKBPATH="$withval" ], - [ XKBPATH="${datadir}/X11/xkb" ]) --AC_ARG_WITH(xkb-output, AS_HELP_STRING([--with-xkb-output=PATH], [Path to XKB output dir (default: ${datadir}/X11/xkb/compiled)]), -+AC_ARG_WITH(xkb-output, AS_HELP_STRING([--with-xkb-output=PATH], [Path to XKB output dir (default: ${localstatedir}/cache/xkb)]), - [ XKBOUTPUT="$withval" ], -- [ XKBOUTPUT="compiled" ]) -+ [ XKBOUTPUT="${localstatedir}/cache/xkb" ]) - AC_ARG_WITH(default-xkb-rules, AS_HELP_STRING([--with-default-xkb-rules=RULES], - [Keyboard ruleset (default: base/evdev)]), - [ XKB_DFLT_RULES="$withval" ], -@@ -1099,7 +1099,7 @@ - dnl Make sure XKM_OUTPUT_DIR is an absolute path - XKBOUTPUT_FIRSTCHAR=`echo $XKBOUTPUT | cut -b 1` - if [[ x$XKBOUTPUT_FIRSTCHAR != x/ -a x$XKBOUTPUT_FIRSTCHAR != 'x$' ]] ; then -- XKBOUTPUT="$XKB_BASE_DIRECTORY/$XKBOUTPUT" -+ AC_MSG_ERROR([xkb-output must be an absolute path.]) - fi - - dnl XKM_OUTPUT_DIR (used in code) must end in / or file names get hosed -diff -Naur xorg-server-1.7.99.1/xkb/ddxLoad.c xorg-server-1.7.99.1.patch/xkb/ddxLoad.c ---- xorg-server-1.7.99.1/xkb/ddxLoad.c 2009-10-21 15:46:53.000000000 +0200 -+++ xorg-server-1.7.99.1.patch/xkb/ddxLoad.c 2009-10-24 10:50:23.303364966 +0200 -@@ -30,6 +30,13 @@ - - #include - -+#ifdef HAVE_SHA1_IN_LIBMD /* Use libmd for SHA1 */ -+# include -+#else /* Use OpenSSL's libcrypto */ -+# include /* buggy openssl/sha.h wants size_t */ -+# include -+#endif -+ - #include - #include - #include -@@ -43,24 +50,13 @@ - #define XKBSRV_NEED_FILE_FUNCS - #include - #include -+#include - #include "xkb.h" - - #if defined(CSRG_BASED) || defined(linux) || defined(__GNU__) - #include - #endif - -- /* -- * If XKM_OUTPUT_DIR specifies a path without a leading slash, it is -- * relative to the top-level XKB configuration directory. -- * Making the server write to a subdirectory of that directory -- * requires some work in the general case (install procedure -- * has to create links to /var or somesuch on many machines), -- * so we just compile into /usr/tmp for now. -- */ --#ifndef XKM_OUTPUT_DIR --#define XKM_OUTPUT_DIR "compiled/" --#endif -- - #define PRE_ERROR_MSG "\"The XKEYBOARD keymap compiler (xkbcomp) reports:\"" - #define ERROR_PREFIX "\"> \"" - #define POST_ERROR_MSG1 "\"Errors from xkbcomp are not fatal to the X server\"" -@@ -175,6 +171,45 @@ - } - - static Bool -+Sha1Asc(char sha1Asc[SHA_DIGEST_LENGTH*2+1], const char * input) -+{ -+ int i; -+ unsigned char sha1[SHA_DIGEST_LENGTH]; -+ -+#ifdef HAVE_SHA1_IN_LIBMD /* Use libmd for SHA1 */ -+ SHA1_CTX ctx; -+ -+ SHA1Init (&ctx); -+ SHA1Update (&ctx, input, strlen(input)); -+ SHA1Final (sha1, &ctx); -+#else /* Use OpenSSL's libcrypto */ -+ SHA_CTX ctx; -+ int success; -+ -+ success = SHA1_Init (&ctx); -+ if (! success) -+ return BadAlloc; -+ -+ success = SHA1_Update (&ctx, input, strlen(input)); -+ if (! success) -+ return BadAlloc; -+ -+ success = SHA1_Final (sha1, &ctx); -+ if (! success) -+ return BadAlloc; -+#endif -+ -+ /* convert sha1 to sha1_asc */ -+ for(i=0; i nameRtrnLen) && nameRtrn) { -+ ErrorF("[xkb] nameRtrn too small to hold xkmfile name\n"); -+ return False; -+ } -+ strncpy(nameRtrn, xkmfile, nameRtrnLen); -+ -+ /* if the xkm file already exists, reuse it */ -+ canonicalXkmFileName = Xprintf("%s%s.xkm", xkm_output_dir, xkmfile); -+ if (access(canonicalXkmFileName, R_OK) == 0) { -+ /* yes, we can reuse the old xkm file */ -+ LogMessage(X_INFO, "XKB: reuse xkmfile %s\n", canonicalXkmFileName); -+ result = True; -+ goto _ret; -+ } -+ LogMessage(X_INFO, "XKB: generating xkmfile %s\n", canonicalXkmFileName); -+ -+ /* continue to call xkbcomp to compile the keymap. to avoid race -+ condition, we compile it to a tmpfile then rename it to -+ xkmfile */ -+ - #ifdef WIN32 - strcpy(tmpname, Win32TempDir()); - strcat(tmpname, "\\xkb_XXXXXX"); -@@ -225,19 +318,30 @@ - } - } - -+ if ( (tmpXkmFile = tempnam(xkm_output_dir, NULL)) == NULL ) { -+ ErrorF("[xkb] Can't generate temp xkm file name"); -+ result = False; -+ goto _ret; -+ } -+ - buf = Xprintf("\"%s%sxkbcomp\" -w %d %s -xkm \"%s\" " -- "-em1 %s -emp %s -eml %s \"%s%s.xkm\"", -+ "-em1 %s -emp %s -eml %s \"%s\"", - xkbbindir, xkbbindirsep, - ( (xkbDebugFlags < 2) ? 1 : - ((xkbDebugFlags > 10) ? 10 : (int)xkbDebugFlags) ), -- xkbbasedirflag, xkmfile, -+ xkbbasedirflag, xkbfile, - PRE_ERROR_MSG, ERROR_PREFIX, POST_ERROR_MSG1, -- xkm_output_dir, keymap); -+ tmpXkmFile); - - if (xkbbasedirflag != emptystring) { - xfree(xkbbasedirflag); - } - -+ /* there's a potential race condition between calling tempnam() -+ and invoking xkbcomp to write the result file (potential temp -+ file name conflicts), but since xkbcomp is a standalone -+ program, we have to live with this */ -+ - #ifndef WIN32 - out= Popen(buf,"w"); - #else -@@ -245,31 +349,43 @@ - #endif - - if (out!=NULL) { --#ifdef DEBUG -- if (xkbDebugFlags) { -- ErrorF("[xkb] XkbDDXCompileKeymapByNames compiling keymap:\n"); -- XkbWriteXKBKeymapForNames(stderr,names,xkb,want,need); -+ /* write XKBKeyMapBuf to xkbcomp */ -+ if (EOF==fputs(xkbKeyMapBuf, out)) -+ { -+ ErrorF("[xkb] Sending keymap to xkbcomp failed\n"); -+ result = False; -+ goto _ret; - } --#endif -- XkbWriteXKBKeymapForNames(out,names,xkb,want,need); - #ifndef WIN32 - if (Pclose(out)==0) - #else - if (fclose(out)==0 && System(buf) >= 0) - #endif - { -+ /* xkbcomp success */ - if (xkbDebugFlags) - DebugF("[xkb] xkb executes: %s\n",buf); -- if (nameRtrn) { -- strncpy(nameRtrn,keymap,nameRtrnLen); -- nameRtrn[nameRtrnLen-1]= '\0'; -+ -+ /* if canonicalXkmFileName already exists now, we simply -+ overwrite it, this is OK */ -+ ret = rename(tmpXkmFile, canonicalXkmFileName); -+ if (0 != ret) { -+ ErrorF("[xkb] Can't rename %s to %s, error: %s\n", -+ tmpXkmFile, canonicalXkmFileName, -+ strerror(errno)); -+ -+ /* in case of error, don't unlink tmpXkmFile, leave it -+ for debugging */ -+ -+ result = False; -+ goto _ret; - } -- if (buf != NULL) -- xfree (buf); -- return True; -+ -+ result = True; -+ goto _ret; - } - else -- LogMessage(X_ERROR, "Error compiling keymap (%s)\n", keymap); -+ LogMessage(X_ERROR, "Error compiling keymap (%s)\n", xkbfile); - #ifdef WIN32 - /* remove the temporary file */ - unlink(tmpname); -@@ -284,9 +400,17 @@ - } - if (nameRtrn) - nameRtrn[0]= '\0'; -+ result = False; -+ -+_ret: -+ if (tmpXkmFile) -+ free(tmpXkmFile); -+ if (canonicalXkmFileName) -+ xfree(canonicalXkmFileName); - if (buf != NULL) - xfree (buf); -- return False; -+ -+ return result; - } - - static FILE * -@@ -370,7 +494,6 @@ - DebugF("Loaded XKB keymap %s, defined=0x%x\n",fileName,(*xkbRtrn)->defined); - } - fclose(file); -- (void) unlink (fileName); - return (need|want)&(~missing); - } - -diff -Naur xorg-server-1.7.99.1/xkb/README.compiled xorg-server-1.7.99.1.patch/xkb/README.compiled ---- xorg-server-1.7.99.1/xkb/README.compiled 2008-10-13 01:19:06.000000000 +0200 -+++ xorg-server-1.7.99.1.patch/xkb/README.compiled 2009-10-24 10:50:28.069400854 +0200 -@@ -4,10 +4,10 @@ - or some other tool might destroy or replace the files in this directory, - so it is not a safe place to store compiled keymaps for long periods of - time. The default keymap for any server is usually stored in: -- X-default.xkm --where is the display number of the server in question, which makes --it possible for several servers *on the same host* to share the same --directory. -+ server-.xkm -+ -+where is the SHA1 hash of keymap source, so that compiled -+keymap of different keymap sources are stored in different files. - - Unless the X server is modified, sharing this directory between servers on - different hosts could cause problems. diff --git a/packages/x11/xserver/xorg-server/patches/100_xserver_exa_force_greedy.diff b/packages/x11/xserver/xorg-server/patches/100_xserver_exa_force_greedy.diff deleted file mode 100644 index 24dd77017a..0000000000 --- a/packages/x11/xserver/xorg-server/patches/100_xserver_exa_force_greedy.diff +++ /dev/null @@ -1,30 +0,0 @@ ---- xorg-server.orig/exa/exa.c 2008-10-14 23:24:44.000000000 +0200 -+++ xorg-server/exa/exa.c 2008-10-14 23:25:52.000000000 +0200 -@@ -882,6 +882,11 @@ - dixSetPrivate(&pScreen->devPrivates, exaScreenPrivateKey, pExaScr); - - pExaScr->migration = ExaMigrationAlways; -+ if (pScreenInfo->flags & EXA_MIGRATION_GREEDY) { -+ pExaScr->migration = ExaMigrationGreedy; -+ LogMessage(X_INFO, "EXA(%d): Forcing greedy migration option\n", -+ pScreen->myNum); -+ } - - exaDDXDriverInit(pScreen); - ---- xorg-server.orig/exa/exa.h 2008-10-14 23:24:44.000000000 +0200 -+++ xorg-server/exa/exa.h 2008-10-14 23:25:52.000000000 +0200 -@@ -737,6 +737,13 @@ - #define EXA_TWO_BITBLT_DIRECTIONS (1 << 2) - - /** -+ * EXA_MIGRATION_GREEDY indicates to EXA that the driver prefers to -+ * use the "greedy" migration heuristic. This is to work around -+ * issues with EXA on the Intel 965 chipset. (LP: #177492) -+ */ -+#define EXA_MIGRATION_GREEDY (1 << 3) -+ -+/** - * EXA_HANDLES_PIXMAPS indicates to EXA that the driver can handle - * all pixmap addressing and migration. - */ diff --git a/packages/x11/xserver/xorg-server/patches/110_fedora_no_move_damage.diff b/packages/x11/xserver/xorg-server/patches/110_fedora_no_move_damage.diff deleted file mode 100644 index a1d676677a..0000000000 --- a/packages/x11/xserver/xorg-server/patches/110_fedora_no_move_damage.diff +++ /dev/null @@ -1,35 +0,0 @@ -Disable damage notifications on move for manually redirected windows. -The automatic compositor needs damage notification on move, but a -compositing manager doesn't. - -Index: xorg-server/composite/compwindow.c -=================================================================== ---- xorg-server.orig/composite/compwindow.c 2008-06-18 10:28:16.000000000 +0300 -+++ xorg-server/composite/compwindow.c 2008-06-18 12:06:20.000000000 +0300 -@@ -580,12 +580,15 @@ - } - else - { -+ CompWindowPtr cw = GetCompWindow (pWin); -+ - ptOldOrg.x -= dx; - ptOldOrg.y -= dy; - REGION_TRANSLATE (prgnSrc, prgnSrc, - pWin->drawable.x - ptOldOrg.x, - pWin->drawable.y - ptOldOrg.y); -- DamageRegionAppend(&pWin->drawable, prgnSrc); -+ if (pWin->redirectDraw && cw->update == CompositeRedirectAutomatic) -+ DamageRegionAppend(&pWin->drawable, prgnSrc); - } - cs->CopyWindow = pScreen->CopyWindow; - pScreen->CopyWindow = compCopyWindow; -@@ -664,7 +667,8 @@ - /* - * Report that as damaged so it will be redrawn - */ -- DamageRegionAppend(&pWin->drawable, &damage); -+ if (cw->update == CompositeRedirectAutomatic) -+ DamageRegionAppend(&pWin->drawable, &damage); - REGION_UNINIT (pScreen, &damage); - /* - * Save the new border clip region diff --git a/packages/x11/xserver/xorg-server/patches/156_exevents_copykeyclass_nullptrcheck.diff b/packages/x11/xserver/xorg-server/patches/156_exevents_copykeyclass_nullptrcheck.diff deleted file mode 100644 index d16c2f0384..0000000000 --- a/packages/x11/xserver/xorg-server/patches/156_exevents_copykeyclass_nullptrcheck.diff +++ /dev/null @@ -1,22 +0,0 @@ -diff -Naur xorg-server-1.6.99.902.orig/Xi/exevents.c xorg-server-1.6.99.902/Xi/exevents.c ---- xorg-server-1.6.99.902.orig/Xi/exevents.c 2009-09-26 14:12:03.000000000 +0200 -+++ xorg-server-1.6.99.902/Xi/exevents.c 2009-09-26 18:55:30.000000000 +0200 -@@ -195,11 +195,15 @@ - static void - CopyKeyClass(DeviceIntPtr device, DeviceIntPtr master) - { -- KeyClassPtr mk = master->key; -- KeyClassPtr dk = device->key; -+ KeyClassPtr mk, dk; - int i; - -- if (device == master) -+ if (device == master || device == NULL || master == NULL) -+ return; -+ -+ mk = master->key; -+ dk = device->key; -+ if (dk == NULL || mk == NULL) - return; - - mk->sourceid = device->id; diff --git a/packages/x11/xserver/xorg-server/patches/157_check_null_modes.diff b/packages/x11/xserver/xorg-server/patches/157_check_null_modes.diff deleted file mode 100644 index 7bdcb8b5da..0000000000 --- a/packages/x11/xserver/xorg-server/patches/157_check_null_modes.diff +++ /dev/null @@ -1,14 +0,0 @@ -diff --git a/hw/xfree86/common/xf86VidMode.c b/hw/xfree86/common/xf86VidMode.c -index d855bd1..2af8c00 100644 ---- a/hw/xfree86/common/xf86VidMode.c -+++ b/hw/xfree86/common/xf86VidMode.c -@@ -226,6 +226,9 @@ VidModeGetFirstModeline(int scrnIndex, pointer *mode, int *dotClock) - - pScrn = xf86Screens[scrnIndex]; - pVidMode = VMPTR(pScrn->pScreen); -+ if (pScrn->modes == NULL) -+ return FALSE; -+ - pVidMode->First = pScrn->modes; - pVidMode->Next = pVidMode->First->next; - diff --git a/packages/x11/xserver/xorg-server/patches/158_raise_maxclients.diff b/packages/x11/xserver/xorg-server/patches/158_raise_maxclients.diff deleted file mode 100644 index cc30d58b4e..0000000000 --- a/packages/x11/xserver/xorg-server/patches/158_raise_maxclients.diff +++ /dev/null @@ -1,12 +0,0 @@ -diff -Nurp patched/include/misc.h working/include/misc.h ---- patched/include/misc.h 2009-02-05 01:09:03.000000000 -0800 -+++ working/include/misc.h 2009-02-05 02:12:57.000000000 -0800 -@@ -86,7 +86,7 @@ extern unsigned long serverGeneration; - #ifndef MAXSCREENS - #define MAXSCREENS 16 - #endif --#define MAXCLIENTS 256 -+#define MAXCLIENTS 512 - #define MAXEXTENSIONS 128 - #define MAXFORMATS 8 - #define MAXDEVICES 20 /* input devices */ diff --git a/packages/x11/xserver/xorg-server/patches/162_null_crtc_in_rotation.diff b/packages/x11/xserver/xorg-server/patches/162_null_crtc_in_rotation.diff deleted file mode 100644 index 2e4a9450d8..0000000000 --- a/packages/x11/xserver/xorg-server/patches/162_null_crtc_in_rotation.diff +++ /dev/null @@ -1,13 +0,0 @@ -diff -Nurp patched/hw/xfree86/modes/xf86RandR12.c working/hw/xfree86/modes/xf86RandR12.c ---- patched/hw/xfree86/modes/xf86RandR12.c 2009-03-02 22:57:18.000000000 -0800 -+++ working/hw/xfree86/modes/xf86RandR12.c 2009-03-02 22:57:24.000000000 -0800 -@@ -944,7 +944,8 @@ xf86RandR12SetRotations (ScreenPtr pScre - for (c = 0; c < config->num_crtc; c++) { - xf86CrtcPtr crtc = config->crtc[c]; - -- RRCrtcSetRotations (crtc->randr_crtc, rotations); -+ if (crtc != NULL) -+ RRCrtcSetRotations (crtc->randr_crtc, rotations); - } - #endif - randrp->supported_rotations = rotations; diff --git a/packages/x11/xserver/xorg-server/patches/164_trap-aspect-ratios.diff b/packages/x11/xserver/xorg-server/patches/164_trap-aspect-ratios.diff deleted file mode 100644 index aa6d5c2f6b..0000000000 --- a/packages/x11/xserver/xorg-server/patches/164_trap-aspect-ratios.diff +++ /dev/null @@ -1,61 +0,0 @@ -diff --git a/hw/xfree86/ddc/interpret_edid.c b/hw/xfree86/ddc/interpret_edid.c -index c0e3df9..32288f7 100644 ---- a/hw/xfree86/ddc/interpret_edid.c -+++ b/hw/xfree86/ddc/interpret_edid.c -@@ -51,6 +51,15 @@ static void get_whitepoint_section(Uchar *, struct whitePoints *); - static void get_detailed_timing_section(Uchar*, struct detailed_timings *); - static Bool validate_version(int scrnIndex, struct edid_version *); - -+static Bool -+is_standard_aspect_ratio(int x, int y) -+{ -+ return ((x == 16 && y == 9) || -+ (x == 16 && y == 10) || -+ (x == 4 && y == 3) || -+ (x == 5 && y == 4)); -+} -+ - static void - handle_edid_quirks(xf86MonPtr m) - { -@@ -91,10 +100,7 @@ handle_edid_quirks(xf86MonPtr m) - * try to find the largest detailed timing that matches that aspect - * ratio and use that to fill in the feature section. - */ -- if ((m->features.hsize == 16 && m->features.vsize == 9) || -- (m->features.hsize == 16 && m->features.vsize == 10) || -- (m->features.hsize == 4 && m->features.vsize == 3) || -- (m->features.hsize == 5 && m->features.vsize == 4)) { -+ if (is_standard_aspect_ratio(m->features.hsize, m->features.vsize)) { - int real_hsize = 0, real_vsize = 0; - float target_aspect, timing_aspect; - -@@ -130,6 +136,28 @@ handle_edid_quirks(xf86MonPtr m) - xf86Msg(X_INFO, "Quirked EDID physical size to %dx%d cm\n", - m->features.hsize, m->features.vsize); - } -+ -+ /* -+ * Some monitors do the reverse, putting real size in the global block -+ * and aspect ratios in the detailed timings. Check, but only if we -+ * think we've got a real physical size. -+ */ -+ if (m->features.hsize && m->features.vsize) { -+ for (i = 0; i < 4; i++) { -+ if (m->det_mon[i].type == DT) { -+ struct detailed_timings *timing; -+ timing = &m->det_mon[i].section.d_timings; -+ -+ if (is_standard_aspect_ratio(timing->h_size, timing->v_size)) { -+ timing->h_size = m->features.hsize * 10; -+ timing->v_size = m->features.vsize * 10; -+ xf86Msg(X_INFO, "Quirked timing size to %dx%d mm\n", -+ timing->h_size, timing->v_size); -+ -+ } -+ } -+ } -+ } - } - - xf86MonPtr diff --git a/packages/x11/xserver/xorg-server/patches/166_nullptr_xinerama_keyrepeat.diff b/packages/x11/xserver/xorg-server/patches/166_nullptr_xinerama_keyrepeat.diff deleted file mode 100644 index 75dbf5d458..0000000000 --- a/packages/x11/xserver/xorg-server/patches/166_nullptr_xinerama_keyrepeat.diff +++ /dev/null @@ -1,30 +0,0 @@ -From f0ef98d8d54f5dfa3081b62ff672e0fe992b0a01 Mon Sep 17 00:00:00 2001 -From: Bryce Harrington -Date: Wed, 18 Mar 2009 23:28:51 -0700 -Subject: [PATCH] Check for null pointer dereference to prevent crash - on non-primary Xinerama screens when key repeating. - (LP: #324465) - -Signed-off-by: Bryce Harrington ---- - mi/mipointer.c | 4 ++++ - 1 files changed, 4 insertions(+), 0 deletions(-) - -diff --git a/mi/mipointer.c b/mi/mipointer.c -index e37316e..fe5947f 100644 ---- a/mi/mipointer.c -+++ b/mi/mipointer.c -@@ -306,6 +306,10 @@ miPointerWarpCursor (DeviceIntPtr pDev, ScreenPtr pScreen, int x, int y) - pPointer = MIPOINTER(pDev); - SetupScreen (pScreen); - -+ /* Null pointer causes crash on keyrepeat with Xinerama LP: (#324465) */ -+ if (pPointer == NULL) -+ return; -+ - if (pPointer->pScreen != pScreen) - { - (*pScreenPriv->screenFuncs->NewEventScreen) (pDev, pScreen, TRUE); --- -1.6.0.4 - diff --git a/packages/x11/xserver/xorg-server/patches/167_nullptr_xisbread.diff b/packages/x11/xserver/xorg-server/patches/167_nullptr_xisbread.diff deleted file mode 100644 index 38921dd4bf..0000000000 --- a/packages/x11/xserver/xorg-server/patches/167_nullptr_xisbread.diff +++ /dev/null @@ -1,13 +0,0 @@ -diff -Nurp patched/hw/xfree86/common/xisb.c working/hw/xfree86/common/xisb.c ---- patched/hw/xfree86/common/xisb.c 2009-02-02 21:53:58.000000000 +0100 -+++ working/hw/xfree86/common/xisb.c 2009-02-02 21:55:09.000000000 +0100 -@@ -98,6 +98,9 @@ XisbRead (XISBuffer *b) - { - int ret; - -+ if (b == NULL) -+ return -2; -+ - if (b->current >= b->end) - { - if (b->block_duration >= 0) diff --git a/packages/x11/xserver/xorg-server/patches/169_mipointer_nullptr_checks.diff b/packages/x11/xserver/xorg-server/patches/169_mipointer_nullptr_checks.diff deleted file mode 100644 index 6484fe0152..0000000000 --- a/packages/x11/xserver/xorg-server/patches/169_mipointer_nullptr_checks.diff +++ /dev/null @@ -1,107 +0,0 @@ -From 179cec1d2f919d8d8096d6030b0ad9b6285dfd4d Mon Sep 17 00:00:00 2001 -From: Bryce Harrington -Date: Mon, 23 Mar 2009 14:25:18 -0700 -Subject: [PATCH] Check null pointers to not crash on keyrepeat with Xinerama LP: (#324465) - -With -nvidia, when using Xinerama, holding down a key in a text field -on a non-primary screen can cause an X crash. This is caused because -the MIPOINTER(pDev) can return a NULL pointer for a non-null pDev in -some cases, and the mipointer.c code lacks checks for this condition. - -MIPOINTER() is a macro #defined locally to mipointer.c, which calls into -dixLookupPrivate(), a routine which returns NULL in at least some -circumstances - such as if the memory could not be xcalloc'd for -whatever reason. Hopefully upstream can provide a better fix for this, -but for now it seems reasonable to check the return values of this macro -for NULL before usage, as a minimum. - -diff -Naur xorg-server-1.6.99.902.orig/mi/mipointer.c xorg-server-1.6.99.902/mi/mipointer.c ---- xorg-server-1.6.99.902.orig/mi/mipointer.c 2009-09-26 14:12:02.000000000 +0200 -+++ xorg-server-1.6.99.902/mi/mipointer.c 2009-09-26 19:02:00.000000000 +0200 -@@ -139,6 +139,10 @@ - if (DevHasCursor(pDev)) - { - pPointer = MIPOINTER(pDev); -+ if (pPointer == NULL) { -+ ErrorF("miPointerCloseScreen: Invalid input device pointer\n"); -+ return FALSE; -+ } - - if (pScreen == pPointer->pScreen) - pPointer->pScreen = 0; -@@ -191,6 +195,10 @@ - return FALSE; - - pPointer = MIPOINTER(pDev); -+ if (pPointer == NULL) { -+ ErrorF("miPointerDisplayCursor: Invalid input device pointer\n"); -+ return FALSE; -+ } - - pPointer->pCursor = pCursor; - pPointer->pScreen = pScreen; -@@ -204,6 +212,10 @@ - miPointerPtr pPointer; - - pPointer = MIPOINTER(pDev); -+ if (pPointer == NULL) { -+ ErrorF("miPointerConstrainCursor: Invalid input device pointer\n"); -+ return FALSE; -+ } - - pPointer->limits = *pBox; - pPointer->confined = PointerConfinedToScreen(pDev); -@@ -305,6 +317,10 @@ - - SetupScreen (pScreen); - pPointer = MIPOINTER(pDev); -+ if (pPointer == NULL) { -+ ErrorF("miPointerWarpCursor: Invalid input device pointer\n"); -+ return; -+ } - - if (pPointer->pScreen != pScreen) - { -@@ -436,13 +452,17 @@ - ScreenPtr pScreen; - miPointerPtr pPointer; - -- pPointer = MIPOINTER(pDev); -- - pScreen = screenInfo.screens[screen_no]; - pScreenPriv = GetScreenPrivate (pScreen); - (*pScreenPriv->screenFuncs->NewEventScreen) (pDev, pScreen, FALSE); - NewCurrentScreen (pDev, pScreen, x, y); - -+ pPointer = MIPOINTER(pDev); -+ if (pPointer == NULL) { -+ ErrorF("miPointerSetScreen: Invalid input device pointer\n"); -+ return; -+ } -+ - pPointer->limits.x2 = pScreen->width; - pPointer->limits.y2 = pScreen->height; - } -@@ -469,6 +489,10 @@ - SetupScreen(pScreen); - - pPointer = MIPOINTER(pDev); -+ if (pPointer == NULL) { -+ ErrorF("miPointerMoved: Invalid input device pointer\n"); -+ return; -+ } - - /* Hack: We mustn't call into ->MoveCursor for anything but the - * VCP, as this may cause a non-HW rendered cursor to be rendered during -@@ -498,6 +522,11 @@ - miPointerPtr pPointer; - - pPointer = MIPOINTER(pDev); -+ if (pPointer == NULL) { -+ ErrorF("miPointerSetPosition: Invalid input device pointer\n"); -+ return; -+ } -+ - pScreen = pPointer->pScreen; - if (!pScreen) - return; /* called before ready */ diff --git a/packages/x11/xserver/xorg-server/patches/172_cwgetbackingpicture_nullptr_check.diff b/packages/x11/xserver/xorg-server/patches/172_cwgetbackingpicture_nullptr_check.diff deleted file mode 100644 index 9a91113aea..0000000000 --- a/packages/x11/xserver/xorg-server/patches/172_cwgetbackingpicture_nullptr_check.diff +++ /dev/null @@ -1,39 +0,0 @@ -From 7813adf66be31d8b0e8df21821e786e688f7fe78 Mon Sep 17 00:00:00 2001 -From: Bryce Harrington -Date: Fri, 27 Mar 2009 19:01:32 -0700 -Subject: [PATCH] cwGetBackingPicture can segfault when minimizing/maximizing firefox with - a flash video playing. This appears to be a race condition in which the - backing picture's data is not always fully defined. - -Signed-off-by: Bryce Harrington ---- - miext/cw/cw_render.c | 13 +++++++++---- - 1 files changed, 9 insertions(+), 4 deletions(-) - -diff --git a/miext/cw/cw_render.c b/miext/cw/cw_render.c -index 6e0c727..fe8cba7 100644 ---- a/miext/cw/cw_render.c -+++ b/miext/cw/cw_render.c -@@ -125,10 +125,15 @@ cwGetBackingPicture (PicturePtr pPicture, int *x_off, int *y_off) - WindowPtr pWindow = (WindowPtr) pDrawable; - PixmapPtr pPixmap = getCwPixmap (pWindow); - -- *x_off = pDrawable->x - pPixmap->screen_x; -- *y_off = pDrawable->y - pPixmap->screen_y; -- -- return pPicturePrivate->pBackingPicture; -+ if (pDrawable && pPixmap) { -+ *x_off = pDrawable->x - pPixmap->screen_x; -+ *y_off = pDrawable->y - pPixmap->screen_y; -+ -+ return pPicturePrivate->pBackingPicture; -+ } else { -+ *x_off = *y_off = 0; -+ return pPicture; -+ } - } - else - { --- -1.6.0.4 - diff --git a/packages/x11/xserver/xorg-server/patches/173_edid_quirk_philips_lcd.diff b/packages/x11/xserver/xorg-server/patches/173_edid_quirk_philips_lcd.diff deleted file mode 100644 index ba735bd0bb..0000000000 --- a/packages/x11/xserver/xorg-server/patches/173_edid_quirk_philips_lcd.diff +++ /dev/null @@ -1,21 +0,0 @@ -# -# Ubuntu: https://bugs.launchpad.net/bugs/353074 -# Upstream: http://bugs.freedesktop.org/show_bug.cgi?id=21000 -# - -Index: xorg-server-1.6.0/hw/xfree86/modes/xf86EdidModes.c -=================================================================== ---- xorg-server-1.6.0.orig/hw/xfree86/modes/xf86EdidModes.c 2009-04-01 19:45:23.000000000 +0200 -+++ xorg-server-1.6.0/hw/xfree86/modes/xf86EdidModes.c 2009-04-01 19:45:32.000000000 +0200 -@@ -155,6 +155,11 @@ - DDC->vendor.prod_id == 13600) - return TRUE; - -+ /* Bug #21000: LGPhilipsLCD LP154W01-TLAJ */ -+ if (memcmp (DDC->vendor.name, "LPL", 4) == 0 && -+ DDC->vendor.prod_id == 47360) -+ return TRUE; -+ - return FALSE; - } - diff --git a/packages/x11/xserver/xorg-server/patches/180_fedora_no_synaptics_mouse_synthesis.diff b/packages/x11/xserver/xorg-server/patches/180_fedora_no_synaptics_mouse_synthesis.diff deleted file mode 100644 index ddf3961196..0000000000 --- a/packages/x11/xserver/xorg-server/patches/180_fedora_no_synaptics_mouse_synthesis.diff +++ /dev/null @@ -1,16 +0,0 @@ -From 8663524ce398b56af596ab1e7e96b62ca45b79e9 Mon Sep 17 00:00:00 2001 -From: Peter Hutterer -Date: Mon, 13 Apr 2009 17:49:00 +1000 -Subject: [PATCH] xfree86: don't synthesise a mouse section if synaptics devices are found. - -diff -Naur xorg-server-1.6.99.902.orig/hw/xfree86/common/xf86Config.c xorg-server-1.6.99.902/hw/xfree86/common/xf86Config.c ---- xorg-server-1.6.99.902.orig/hw/xfree86/common/xf86Config.c 2009-09-26 14:12:03.000000000 +0200 -+++ xorg-server-1.6.99.902/hw/xfree86/common/xf86Config.c 2009-09-26 19:05:52.000000000 +0200 -@@ -2406,6 +2406,7 @@ - { - if (strcmp((*dev)->driver, "kbd") == 0 || - strcmp((*dev)->driver, "mouse") == 0 || -+ strcmp((*dev)->driver, "synaptics") == 0 || - strcmp((*dev)->driver, "vmmouse") == 0) - { - IDevPtr *current; diff --git a/packages/x11/xserver/xorg-server/patches/201_fedora-pci-primary.diff b/packages/x11/xserver/xorg-server/patches/201_fedora-pci-primary.diff deleted file mode 100644 index 61ba6db30b..0000000000 --- a/packages/x11/xserver/xorg-server/patches/201_fedora-pci-primary.diff +++ /dev/null @@ -1,91 +0,0 @@ -diff -Naur xorg-server-1.6.99.902.orig/hw/xfree86/common/xf86pciBus.c xorg-server-1.6.99.902/hw/xfree86/common/xf86pciBus.c ---- xorg-server-1.6.99.902.orig/hw/xfree86/common/xf86pciBus.c 2009-09-26 14:12:03.000000000 +0200 -+++ xorg-server-1.6.99.902/hw/xfree86/common/xf86pciBus.c 2009-09-26 19:11:42.000000000 +0200 -@@ -52,13 +52,7 @@ - /* Bus-specific globals */ - Bool pciSlotClaimed = FALSE; - --#define PCIINFOCLASSES(c) \ -- ( (((c) & 0x00ff0000) == (PCI_CLASS_PREHISTORIC << 16)) \ -- || (((c) & 0x00ff0000) == (PCI_CLASS_DISPLAY << 16)) \ -- || ((((c) & 0x00ffff00) \ -- == ((PCI_CLASS_MULTIMEDIA << 16) | (PCI_SUBCLASS_MULTIMEDIA_VIDEO << 8)))) \ -- || ((((c) & 0x00ffff00) \ -- == ((PCI_CLASS_PROCESSOR << 16) | (PCI_SUBCLASS_PROCESSOR_COPROC << 8)))) ) -+#define PCIINFOCLASSES(c) (((c) & 0x00ffff00) == (PCI_CLASS_DISPLAY << 16)) - - /* - * PCI classes that have messages printed always. The others are only -@@ -85,6 +79,40 @@ - sprintf(buffer, "%d@%d", busnum & 0x00ff, busnum >> 8); - } - -+/* oh god what have i done */ -+static Bool -+looks_like_bios_primary(struct pci_device *info) -+{ -+ unsigned char *bios; -+ unsigned short vendor, device; -+ int offset; -+ Bool ret = FALSE; -+ -+ bios = xf86MapVidMem(-1, VIDMEM_MMIO, 0xc0000, 0x10000); -+ if (!bios) -+ return FALSE; -+ -+ if (bios[0] != 0x55 || bios[1] != 0xAA) -+ goto out; -+ -+ offset = (bios[0x19] << 8) + bios[0x18]; -+ -+ if (bios[offset] != 'P' || -+ bios[offset+1] != 'C' || -+ bios[offset+2] != 'I' || -+ bios[offset+3] != 'R') -+ goto out; -+ -+ vendor = (bios[offset+5] << 8) + bios[offset+4]; -+ device = (bios[offset+7] << 8) + bios[offset+6]; -+ -+ ret = (info->vendor_id == vendor) && (info->device_id == device); -+ -+out: -+ xf86UnMapVidMem(-1, bios, 0x10000); -+ return ret; -+} -+ - /* - * xf86Bus.c interface - */ -@@ -132,17 +160,25 @@ - uint16_t command; - - info = xf86PciVideoInfo[i]; -+ if (!IS_VGA(info->device_class)) -+ continue; -+ - pci_device_cfg_read_u16(info, & command, 4); - -- if ((command & PCI_CMD_MEM_ENABLE) -- && ((num == 1) || IS_VGA(info->device_class))) { -- if (primaryBus.type == BUS_NONE) { -+ if ((command & PCI_CMD_MEM_ENABLE)) { -+ if (num == 1) { - primaryBus.type = BUS_PCI; - primaryBus.id.pci = info; -- } else { -- xf86Msg(X_NOTICE, -+ break; -+ } else if (looks_like_bios_primary(info)) { -+ if (primaryBus.type == BUS_NONE) { -+ primaryBus.type = BUS_PCI; -+ primaryBus.id.pci = info; -+ } else { -+ xf86Msg(X_NOTICE, - "More than one possible primary device found\n"); -- primaryBus.type ^= (BusType)(-1); -+ primaryBus.type ^= (BusType)(-1); -+ } - } - } - } diff --git a/packages/x11/xserver/xorg-server/patches/30_typedef-apm-2.6.24.diff b/packages/x11/xserver/xorg-server/patches/30_typedef-apm-2.6.24.diff deleted file mode 100644 index 96adefd18b..0000000000 --- a/packages/x11/xserver/xorg-server/patches/30_typedef-apm-2.6.24.diff +++ /dev/null @@ -1,12 +0,0 @@ -diff -Naur xorg-server-1.4.0.90/hw/xfree86/os-support/linux/lnx_apm.c xorg-server-1.4.0.90.edit/hw/xfree86/os-support/linux/lnx_apm.c ---- xorg-server-1.4.0.90/hw/xfree86/os-support/linux/lnx_apm.c 2007-12-14 00:38:23.000000000 +0100 -+++ xorg-server-1.4.0.90.edit/hw/xfree86/os-support/linux/lnx_apm.c 2007-12-14 00:38:18.000000000 +0100 -@@ -35,6 +35,8 @@ - # define APM_SUSPEND_FAILED 0xf001 - #endif - -+typedef unsigned short apm_event_t; -+ - static PMClose lnxAPMOpen(void); - static void lnxCloseAPM(void); - static pointer APMihPtr = NULL; diff --git a/packages/x11/xserver/xorg-server/patches/60_use-proc-instead-of-sysfs-for-pci-domains.diff b/packages/x11/xserver/xorg-server/patches/60_use-proc-instead-of-sysfs-for-pci-domains.diff deleted file mode 100644 index ddc8ece453..0000000000 --- a/packages/x11/xserver/xorg-server/patches/60_use-proc-instead-of-sysfs-for-pci-domains.diff +++ /dev/null @@ -1,32 +0,0 @@ -/* Upstream commit 56f21bda1ce95741c88c423b60bd709eef26eb12 was supposed to - * only avoid multiple scans of the PCI devices, but it actually also added - * an "optimization" based on using sysfs files instead of /proc. However, - * this code is broken, for instance because there are no ioctl handler on - * /sys/bus/pci/devices/*/config files while there some on /proc/bus/pci/* - * - * It breaks the Xserver on architectures that require such ioctls to scan - * the PCI devices and/or deal with PCI domains: - * #422077: xserver-xorg: Fatal server error on sparc: xf86MapPciMem failed - * #422095: xserver-xorg-core: fails to start on powerpc, no devices detected - * - * The following patch forces the server to behave as if we were running on - * a 2.4 kernel while scanning PCI devices, so that the sysfs code is disabled. - * - * Upstream doesn't apply this patch since they want to fix the sysfs-code. - * See https://bugs.freedesktop.org/show_bug.cgi?id=7248 - * - * Thanks to Jim Watson for testing! - */ - -diff -Naur xorg-server-1.5.1.orig/hw/xfree86/os-support/bus/linuxPci.c xorg-server-1.5.1/hw/xfree86/os-support/bus/linuxPci.c ---- xorg-server-1.5.1.orig/hw/xfree86/os-support/bus/linuxPci.c 2008-10-04 18:50:24.000000000 +0200 -+++ xorg-server-1.5.1/hw/xfree86/os-support/bus/linuxPci.c 2008-10-04 18:52:08.000000000 +0200 -@@ -131,7 +131,7 @@ - static int fd = -1,is_write = 0; - char file[64]; - struct stat ignored; -- static int is26 = -1; -+ static int is26 = 0; - - if (dev == NULL) { - return -1; diff --git a/packages/x11/xserver/xorg-server/patches/66_only-switch-vt-when-active.diff b/packages/x11/xserver/xorg-server/patches/66_only-switch-vt-when-active.diff deleted file mode 100644 index d066e6dc29..0000000000 --- a/packages/x11/xserver/xorg-server/patches/66_only-switch-vt-when-active.diff +++ /dev/null @@ -1,32 +0,0 @@ -Index: xorg-server/hw/xfree86/os-support/linux/lnx_init.c -=================================================================== ---- xorg-server.orig/hw/xfree86/os-support/linux/lnx_init.c 2008-06-18 12:06:06.000000000 +0300 -+++ xorg-server/hw/xfree86/os-support/linux/lnx_init.c 2008-06-18 12:06:25.000000000 +0300 -@@ -344,10 +344,25 @@ - - if (VTSwitch) - { -+ struct vt_stat vts; -+ - /* -- * Perform a switch back to the active VT when we were started -+ * Perform a switch back to the active VT when we were started. -+ * We cannot rely on vtSema to determine if the server was the -+ * active VT at the time of shutdown since it has already been -+ * released. Instead, we manually check the current VT and -+ * compare it with the VT we were running on. - */ -- if (activeVT >= 0) { -+ if (ioctl(xf86Info.consoleFd, VT_GETSTATE, &vts) < 0) -+ { -+ /* If this failed, fall back to old behaviour -+ * of always switching. */ -+ xf86Msg(X_WARNING,"xf86OpenConsole: VT_GETSTATE failed: %s\n", -+ strerror(errno)); -+ vts.v_active = xf86Info.vtno; -+ } -+ -+ if (activeVT >= 0 && vts.v_active == xf86Info.vtno) { - if (ioctl(xf86Info.consoleFd, VT_ACTIVATE, activeVT) < 0) - xf86Msg(X_WARNING, "xf86CloseConsole: VT_ACTIVATE failed: %s\n", - strerror(errno)); diff --git a/packages/x11/xserver/xorg-server/patches/use-sloppy-heuristic-first-for-initial-mode.diff b/packages/x11/xserver/xorg-server/patches/use-sloppy-heuristic-first-for-initial-mode.diff new file mode 100644 index 0000000000..4960634cd1 --- /dev/null +++ b/packages/x11/xserver/xorg-server/patches/use-sloppy-heuristic-first-for-initial-mode.diff @@ -0,0 +1,17 @@ +diff --git a/hw/xfree86/modes/xf86Crtc.c b/hw/xfree86/modes/xf86Crtc.c +index 84d3cac..673612f 100644 +--- a/hw/xfree86/modes/xf86Crtc.c ++++ b/hw/xfree86/modes/xf86Crtc.c +@@ -2248,10 +2248,10 @@ xf86InitialConfiguration (ScrnInfoPtr scrn, Bool canGrow) + xf86DrvMsg(i, X_INFO, "Using user preference for initial modes\n"); + else if (xf86TargetPreferred(scrn, config, modes, enabled, width, height)) + xf86DrvMsg(i, X_INFO, "Using exact sizes for initial modes\n"); +- else if (xf86TargetAspect(scrn, config, modes, enabled, width, height)) +- xf86DrvMsg(i, X_INFO, "Using fuzzy aspect match for initial modes\n"); + else if (xf86TargetFallback(scrn, config, modes, enabled, width, height)) + xf86DrvMsg(i, X_INFO, "Using sloppy heuristic for initial modes\n"); ++ else if (xf86TargetAspect(scrn, config, modes, enabled, width, height)) ++ xf86DrvMsg(i, X_INFO, "Using fuzzy aspect match for initial modes\n"); + else + xf86DrvMsg(i, X_WARNING, "Unable to find initial modes\n"); + diff --git a/packages/x11/xserver/xorg-server/patches/xorg-x11-nonroot-vesa.diff b/packages/x11/xserver/xorg-server/patches/xorg-x11-nonroot-vesa.diff new file mode 100644 index 0000000000..76c0a38aa4 --- /dev/null +++ b/packages/x11/xserver/xorg-server/patches/xorg-x11-nonroot-vesa.diff @@ -0,0 +1,12 @@ +--- xorg-server-1.6.1.901/hw/xfree86/common/xf86AutoConfig.c~ 2009-07-03 11:59:30.000000000 -0700 ++++ xorg-server-1.6.1.901/hw/xfree86/common/xf86AutoConfig.c 2009-07-03 11:59:30.000000000 -0700 +@@ -516,7 +516,8 @@ + /* Fallback to platform default hardware */ + if (i < (nmatches - 1)) { + #if defined(__i386__) || defined(__amd64__) || defined(__hurd__) +- matches[i++] = xnfstrdup("vesa"); ++ if (geteuid() == 0) ++ matches[i++] = xnfstrdup("vesa"); + #elif defined(__sparc__) && !defined(sun) + matches[i++] = xnfstrdup("sunffb"); + #endif diff --git a/packages/x11/xserver/xorg-server/patches/xserver-1.5.0-bg-none-root.patch b/packages/x11/xserver/xorg-server/patches/xserver-1.5.0-bg-none-root.diff similarity index 88% rename from packages/x11/xserver/xorg-server/patches/xserver-1.5.0-bg-none-root.patch rename to packages/x11/xserver/xorg-server/patches/xserver-1.5.0-bg-none-root.diff index 097b085a32..ae65d0be4c 100644 --- a/packages/x11/xserver/xorg-server/patches/xserver-1.5.0-bg-none-root.patch +++ b/packages/x11/xserver/xorg-server/patches/xserver-1.5.0-bg-none-root.diff @@ -1,6 +1,6 @@ -From b4e4b980663692a3af5787eeaf2d48eb6c0188ed Mon Sep 17 00:00:00 2001 -From: Fedora X Ninjas -Date: Tue, 4 Aug 2009 14:45:58 +1000 +From eff3bb9c6f0b71a57705885a3fe6e6469d252d2b Mon Sep 17 00:00:00 2001 +From: Fedora X Ninjas +Date: Wed, 20 Jan 2010 14:46:12 +1300 Subject: [PATCH] Add nr for background=none root --- @@ -25,7 +25,7 @@ index c24a94f..907a5e8 100644 int cursorScreenDevPriv[MAXSCREENS]; diff --git a/dix/window.c b/dix/window.c -index 32e26d9..0bf1d52 100644 +index caff1cb..be1d1c4 100644 --- a/dix/window.c +++ b/dix/window.c @@ -466,22 +466,24 @@ InitRootWindow(WindowPtr pWin) @@ -59,7 +59,7 @@ index 32e26d9..0bf1d52 100644 MapWindow(pWin, serverClient); } diff --git a/hw/xfree86/common/xf86Init.c b/hw/xfree86/common/xf86Init.c -index e84da4e..2a0f47a 100644 +index 6707448..776b898 100644 --- a/hw/xfree86/common/xf86Init.c +++ b/hw/xfree86/common/xf86Init.c @@ -77,6 +77,7 @@ @@ -70,7 +70,7 @@ index e84da4e..2a0f47a 100644 #include "xf86VGAarbiter.h" #include "globals.h" -@@ -234,6 +235,7 @@ xf86CreateRootWindow(WindowPtr pWin) +@@ -254,6 +255,7 @@ xf86CreateRootWindow(WindowPtr pWin) int ret = TRUE; int err = Success; ScreenPtr pScreen = pWin->drawable.pScreen; @@ -78,7 +78,7 @@ index e84da4e..2a0f47a 100644 RootWinPropPtr pProp; CreateWindowProcPtr CreateWindow = (CreateWindowProcPtr) dixLookupPrivate(&pScreen->devPrivates, xf86CreateRootWindowKey); -@@ -285,6 +287,15 @@ xf86CreateRootWindow(WindowPtr pWin) +@@ -305,6 +307,15 @@ xf86CreateRootWindow(WindowPtr pWin) } } @@ -95,10 +95,10 @@ index e84da4e..2a0f47a 100644 return (ret); } diff --git a/hw/xfree86/common/xf86str.h b/hw/xfree86/common/xf86str.h -index 5c3ee44..e3c7841 100644 +index de1f1b6..5c3aa00 100644 --- a/hw/xfree86/common/xf86str.h +++ b/hw/xfree86/common/xf86str.h -@@ -516,7 +516,7 @@ typedef struct _confdrirec { +@@ -503,7 +503,7 @@ typedef struct _confdrirec { } confDRIRec, *confDRIPtr; /* These values should be adjusted when new fields are added to ScrnInfoRec */ @@ -107,8 +107,8 @@ index 5c3ee44..e3c7841 100644 #define NUM_RESERVED_POINTERS 14 #define NUM_RESERVED_FUNCS 11 -@@ -800,6 +800,9 @@ typedef struct _ScrnInfoRec { - ClockRangesPtr clockRanges; +@@ -775,6 +775,9 @@ typedef struct _ScrnInfoRec { + ClockRangePtr clockRanges; int adjustFlags; + /* -nr support */ @@ -130,10 +130,10 @@ index b3c7c70..fcc8c95 100644 extern _X_EXPORT Bool CoreDump; diff --git a/os/utils.c b/os/utils.c -index 00abd63..7bfdf8b 100644 +index d7c8388..40583d0 100644 --- a/os/utils.c +++ b/os/utils.c -@@ -514,6 +514,7 @@ void UseMsg(void) +@@ -513,6 +513,7 @@ void UseMsg(void) #endif ErrorF("-nolisten string don't listen on protocol\n"); ErrorF("-noreset don't reset after last client exists\n"); @@ -141,7 +141,7 @@ index 00abd63..7bfdf8b 100644 ErrorF("-reset reset after last client exists\n"); ErrorF("-p # screen-saver pattern duration (minutes)\n"); ErrorF("-pn accept failure to listen on all ports\n"); -@@ -861,6 +862,8 @@ ProcessCommandLine(int argc, char *argv[]) +@@ -856,6 +857,8 @@ ProcessCommandLine(int argc, char *argv[]) defaultBackingStore = WhenMapped; else if ( strcmp( argv[i], "-wr") == 0) whiteRoot = TRUE; @@ -151,5 +151,5 @@ index 00abd63..7bfdf8b 100644 if(++i < argc) { long reqSizeArg = atol(argv[i]); -- -1.6.0.6 +1.6.6 diff --git a/packages/x11/xserver/xorg-server/patches/xserver-1.5.0-projector-fb-size.patch b/packages/x11/xserver/xorg-server/patches/xserver-1.5.0-projector-fb-size.patch deleted file mode 100644 index c6178b879b..0000000000 --- a/packages/x11/xserver/xorg-server/patches/xserver-1.5.0-projector-fb-size.patch +++ /dev/null @@ -1,32 +0,0 @@ -From dc5cedd61e00afec33cbfaa7fdfbb6c357074dbd Mon Sep 17 00:00:00 2001 -From: =?utf-8?q?S=C3=B8ren=20Sandmann=20Pedersen?= -Date: Thu, 11 Sep 2008 12:51:31 -0400 -Subject: [PATCH] Make room for an external monitor if we have enough video RAM - ---- - hw/xfree86/modes/xf86Crtc.c | 9 +++++++++ - 1 files changed, 9 insertions(+), 0 deletions(-) - -diff --git a/hw/xfree86/modes/xf86Crtc.c b/hw/xfree86/modes/xf86Crtc.c -index 4de7e05..9bcf81b 100644 ---- a/hw/xfree86/modes/xf86Crtc.c -+++ b/hw/xfree86/modes/xf86Crtc.c -@@ -987,6 +987,15 @@ xf86DefaultScreenLimits (ScrnInfoPtr scrn, int *widthp, int *heightp, - if (crtc_height > height) - height = crtc_height; - } -+ -+ /* Make room for an external monitor if we have enough video ram */ -+ if (scrn->videoRam >= 65536) -+ width += 1920; -+ else if (scrn->videoRam >= 32768) -+ width += 1280; -+ else if (scrn->videoRam >= 16384) -+ width += 1024; -+ - if (config->maxWidth && width > config->maxWidth) width = config->maxWidth; - if (config->maxHeight && height > config->maxHeight) height = config->maxHeight; - if (config->minWidth && width < config->minWidth) width = config->minWidth; --- -1.6.0.1 - diff --git a/packages/x11/xserver/xorg-server/patches/xserver-1.5.1-mode-debug.patch b/packages/x11/xserver/xorg-server/patches/xserver-1.5.1-mode-debug.patch deleted file mode 100644 index 11fe5adac9..0000000000 --- a/packages/x11/xserver/xorg-server/patches/xserver-1.5.1-mode-debug.patch +++ /dev/null @@ -1,26 +0,0 @@ -From 079910986a1b8f5042e16ee2ba3ad9ed843b67ca Mon Sep 17 00:00:00 2001 -From: Adam Jackson -Date: Tue, 7 Oct 2008 11:09:14 -0400 -Subject: [PATCH] Force ModeDebug on. - ---- - hw/xfree86/modes/xf86Crtc.c | 3 +-- - 1 files changed, 1 insertions(+), 2 deletions(-) - -diff --git a/hw/xfree86/modes/xf86Crtc.c b/hw/xfree86/modes/xf86Crtc.c -index 9bcf81b..a953c8a 100644 ---- a/hw/xfree86/modes/xf86Crtc.c -+++ b/hw/xfree86/modes/xf86Crtc.c -@@ -2084,8 +2084,7 @@ xf86InitialConfiguration (ScrnInfoPtr scrn, Bool canGrow) - xf86ProcessOptions (scrn->scrnIndex, - scrn->options, - config->options); -- config->debug_modes = xf86ReturnOptValBool (config->options, -- OPTION_MODEDEBUG, FALSE); -+ config->debug_modes = TRUE; - - if (scrn->display->virtualX) - width = scrn->display->virtualX; --- -1.6.0.1 - diff --git a/packages/x11/xserver/xorg-server/patches/xserver-1.6.0-less-acpi-brokenness.patch b/packages/x11/xserver/xorg-server/patches/xserver-1.6.0-less-acpi-brokenness.patch deleted file mode 100644 index cc80e6cef4..0000000000 --- a/packages/x11/xserver/xorg-server/patches/xserver-1.6.0-less-acpi-brokenness.patch +++ /dev/null @@ -1,31 +0,0 @@ -From a8079882f1884edc62a9de28af915bd8b65dfbbe Mon Sep 17 00:00:00 2001 -From: Adam Jackson -Date: Wed, 11 Mar 2009 14:02:11 -0400 -Subject: [PATCH] Don't build the ACPI code. - -No good can come of this. ---- - configure.ac | 2 -- - 1 files changed, 0 insertions(+), 2 deletions(-) - -diff --git a/configure.ac b/configure.ac -index 72ae67e..04716f8 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -1269,13 +1269,11 @@ if test "x$XORG" = xyes; then - case $host_cpu in - ia64*) - linux_ia64=yes -- linux_acpi="yes" - ;; - alpha*) - linux_alpha=yes - ;; - i*86|amd64*|x86_64*) -- linux_acpi="yes" - ;; - *) - ;; --- -1.6.1.3 - diff --git a/packages/x11/xserver/xorg-server/patches/xserver-1.7.0-glx-versioning.patch b/packages/x11/xserver/xorg-server/patches/xserver-1.7.0-glx-versioning.patch deleted file mode 100644 index c8a1c30954..0000000000 --- a/packages/x11/xserver/xorg-server/patches/xserver-1.7.0-glx-versioning.patch +++ /dev/null @@ -1,233 +0,0 @@ -From 3ef4be8129f78afd5566a9e5d0fb901449dcb771 Mon Sep 17 00:00:00 2001 -From: Ian Romanick -Date: Tue, 29 Sep 2009 16:43:43 -0700 -Subject: [PATCH] GLX: Enable GLX 1.4 on DRI2 - -this squashes 4 commits -(cherry picked from commit ad5c0d9efa47476ed5cf75c82265c73919e468b4) -(cherry picked from commit cb54cf1b3e8c4109541cfb698542c00f2473e731) -(cherry picked from commit 4c6bfa2c09ae2b0cffdf9211a6dfbcaefe0366b5) -(cherry picked from commit 9bf2ff4faf730913de3073f346646a8727be41d4) ---- - glx/glxcmds.c | 12 ++++++++---- - glx/glxdri2.c | 12 ++++++++++++ - glx/glxext.c | 8 +++++++- - glx/glxscreens.c | 15 ++++++++++++--- - glx/glxscreens.h | 11 +++++++++++ - glx/glxserver.h | 3 +++ - glx/indirect_texture_compression.c | 4 ++-- - include/protocol-versions.h | 2 +- - 8 files changed, 56 insertions(+), 11 deletions(-) - -diff --git a/glx/glxcmds.c b/glx/glxcmds.c -index b1061a8..ba4c123 100644 ---- a/glx/glxcmds.c -+++ b/glx/glxcmds.c -@@ -50,7 +50,6 @@ - #include "indirect_dispatch.h" - #include "indirect_table.h" - #include "indirect_util.h" --#include "protocol-versions.h" - - static int - validGlxScreen(ClientPtr client, int screen, __GLXscreen **pGlxScreen, int *err) -@@ -739,8 +738,8 @@ int __glXDisp_QueryVersion(__GLXclientState *cl, GLbyte *pc) - ** client if it wants to work with older clients; however, in this - ** implementation the server just returns its version number. - */ -- reply.majorVersion = SERVER_GLX_MAJOR_VERSION; -- reply.minorVersion = SERVER_GLX_MINOR_VERSION; -+ reply.majorVersion = glxMajorVersion; -+ reply.minorVersion = glxMinorVersion; - reply.length = 0; - reply.type = X_Reply; - reply.sequenceNumber = client->sequence; -@@ -2360,6 +2359,7 @@ int __glXDisp_QueryServerString(__GLXclientState *cl, GLbyte *pc) - char *buf; - __GLXscreen *pGlxScreen; - int err; -+ char ver_str[16]; - - if (!validGlxScreen(client, req->screen, &pGlxScreen, &err)) - return err; -@@ -2369,7 +2369,11 @@ int __glXDisp_QueryServerString(__GLXclientState *cl, GLbyte *pc) - ptr = pGlxScreen->GLXvendor; - break; - case GLX_VERSION: -- ptr = pGlxScreen->GLXversion; -+ /* Return to the server version rather than the screen version -+ * to prevent confusion when they do not match. -+ */ -+ snprintf(ver_str, 16, "%d.%d", glxMajorVersion, glxMinorVersion); -+ ptr = ver_str; - break; - case GLX_EXTENSIONS: - ptr = pGlxScreen->GLXextensions; -diff --git a/glx/glxdri2.c b/glx/glxdri2.c -index ed7fb4c..ed7dc80 100644 ---- a/glx/glxdri2.c -+++ b/glx/glxdri2.c -@@ -685,6 +685,18 @@ __glXDRIscreenProbe(ScreenPtr pScreen) - screen->base.GLXextensions); - } - -+ /* We're going to assume (perhaps incorrectly?) that all DRI2-enabled -+ * drivers support the required extensions for GLX 1.4. The extensions -+ * we're assuming are: -+ * -+ * - GLX_SGI_make_current_read (1.3) -+ * - GLX_SGIX_fbconfig (1.3) -+ * - GLX_SGIX_pbuffer (1.3) -+ * - GLX_ARB_multisample (1.4) -+ */ -+ screen->base.GLXmajor = 1; -+ screen->base.GLXminor = 4; -+ - screen->enterVT = pScrn->EnterVT; - pScrn->EnterVT = glxDRIEnterVT; - screen->leaveVT = pScrn->LeaveVT; -diff --git a/glx/glxext.c b/glx/glxext.c -index 19d70d4..9f9c0ed 100644 ---- a/glx/glxext.c -+++ b/glx/glxext.c -@@ -360,12 +360,18 @@ void GlxExtensionInit(void) - pScreen = screenInfo.screens[i]; - - for (p = __glXProviderStack; p != NULL; p = p->next) { -- if (p->screenProbe(pScreen) != NULL) { -+ __GLXscreen *glxScreen; -+ -+ glxScreen = p->screenProbe(pScreen); -+ if (glxScreen != NULL) { -+ if (glxScreen->GLXminor < glxMinorVersion) -+ glxMinorVersion = glxScreen->GLXminor; - LogMessage(X_INFO, - "GLX: Initialized %s GL provider for screen %d\n", - p->name, i); - break; - } -+ - } - - if (!p) -diff --git a/glx/glxscreens.c b/glx/glxscreens.c -index 7d29d31..674e2c6 100644 ---- a/glx/glxscreens.c -+++ b/glx/glxscreens.c -@@ -42,6 +42,7 @@ - #include "glxserver.h" - #include "glxutil.h" - #include "glxext.h" -+#include "protocol-versions.h" - - static int glxScreenPrivateKeyIndex; - static DevPrivateKey glxScreenPrivateKey = &glxScreenPrivateKeyIndex; -@@ -162,7 +163,8 @@ static const char GLServerExtensions[] = - ** supported across all screens in a multi-screen system. - */ - static char GLXServerVendorName[] = "SGI"; --static char GLXServerVersion[] = "1.2"; -+unsigned glxMajorVersion = SERVER_GLX_MAJOR_VERSION; -+unsigned glxMinorVersion = SERVER_GLX_MINOR_VERSION; - static char GLXServerExtensions[] = - "GLX_ARB_multisample " - "GLX_EXT_visual_info " -@@ -378,9 +380,17 @@ void __glXScreenInit(__GLXscreen *pGlxScreen, ScreenPtr pScreen) - pGlxScreen->pScreen = pScreen; - pGlxScreen->GLextensions = xstrdup(GLServerExtensions); - pGlxScreen->GLXvendor = xstrdup(GLXServerVendorName); -- pGlxScreen->GLXversion = xstrdup(GLXServerVersion); - pGlxScreen->GLXextensions = xstrdup(GLXServerExtensions); - -+ /* All GLX providers must support all of the functionality required for at -+ * least GLX 1.2. If the provider supports a higher version, the GLXminor -+ * version can be changed in the provider's screen-probe routine. For -+ * most providers, the screen-probe routine is the caller of this -+ * function. -+ */ -+ pGlxScreen->GLXmajor = 1; -+ pGlxScreen->GLXminor = 2; -+ - pGlxScreen->CloseScreen = pScreen->CloseScreen; - pScreen->CloseScreen = glxCloseScreen; - pGlxScreen->DestroyWindow = pScreen->DestroyWindow; -@@ -454,7 +464,6 @@ void __glXScreenInit(__GLXscreen *pGlxScreen, ScreenPtr pScreen) - void __glXScreenDestroy(__GLXscreen *screen) - { - xfree(screen->GLXvendor); -- xfree(screen->GLXversion); - xfree(screen->GLXextensions); - xfree(screen->GLextensions); - } -diff --git a/glx/glxscreens.h b/glx/glxscreens.h -index 3c1bdd4..bff4363 100644 ---- a/glx/glxscreens.h -+++ b/glx/glxscreens.h -@@ -161,6 +161,17 @@ struct __GLXscreen { - char *GLXversion; - char *GLXextensions; - -+ /** -+ * \name GLX version supported by this screen. -+ * -+ * Since the GLX version advertised by the server is for the whole server, -+ * the GLX protocol code uses the minimum version supported on all screens. -+ */ -+ /*@{*/ -+ unsigned GLXmajor; -+ unsigned GLXminor; -+ /*@}*/ -+ - Bool (*CloseScreen)(int index, ScreenPtr pScreen); - Bool (*DestroyWindow)(WindowPtr pWindow); - }; -diff --git a/glx/glxserver.h b/glx/glxserver.h -index 4aa8c2e..80f1b28 100644 ---- a/glx/glxserver.h -+++ b/glx/glxserver.h -@@ -248,4 +248,7 @@ extern int __glXImageSize(GLenum format, GLenum type, - GLint imageHeight, GLint rowLength, GLint skipImages, GLint skipRows, - GLint alignment); - -+extern unsigned glxMajorVersion; -+extern unsigned glxMinorVersion; -+ - #endif /* !__GLX_server_h__ */ -diff --git a/glx/indirect_texture_compression.c b/glx/indirect_texture_compression.c -index 25c6eb3..5f44d7b 100644 ---- a/glx/indirect_texture_compression.c -+++ b/glx/indirect_texture_compression.c -@@ -52,7 +52,7 @@ int __glXDisp_GetCompressedTexImageARB(struct __GLXclientStateRec *cl, GLbyte *p - const GLenum target = *(GLenum *)(pc + 0); - const GLint level = *(GLint *)(pc + 4); - GLint compsize = 0; -- char *answer, answerBuffer[200]; -+ char *answer = NULL, answerBuffer[200]; - - CALL_GetTexLevelParameteriv(GET_DISPATCH(), (target, level, GL_TEXTURE_COMPRESSED_IMAGE_SIZE, &compsize)); - -@@ -92,7 +92,7 @@ int __glXDispSwap_GetCompressedTexImageARB(struct __GLXclientStateRec *cl, GLbyt - const GLenum target = (GLenum) bswap_32( *(int *)(pc + 0) ); - const GLint level = (GLint ) bswap_32( *(int *)(pc + 4) ); - GLint compsize = 0; -- char *answer, answerBuffer[200]; -+ char *answer = NULL, answerBuffer[200]; - - CALL_GetTexLevelParameteriv(GET_DISPATCH(), (target, level, GL_TEXTURE_COMPRESSED_IMAGE_SIZE, &compsize)); - -diff --git a/include/protocol-versions.h b/include/protocol-versions.h -index da9770c..d688c66 100644 ---- a/include/protocol-versions.h -+++ b/include/protocol-versions.h -@@ -61,7 +61,7 @@ - - /* GLX */ - #define SERVER_GLX_MAJOR_VERSION 1 --#define SERVER_GLX_MINOR_VERSION 2 -+#define SERVER_GLX_MINOR_VERSION 4 - - /* Xinerama */ - #define SERVER_PANORAMIX_MAJOR_VERSION 1 --- -1.6.5.rc2 - diff --git a/packages/x11/xserver/xorg-server/patches/xserver-1.7.1-glx14-swrast.patch b/packages/x11/xserver/xorg-server/patches/xserver-1.7.1-glx14-swrast.patch deleted file mode 100644 index 2c51802535..0000000000 --- a/packages/x11/xserver/xorg-server/patches/xserver-1.7.1-glx14-swrast.patch +++ /dev/null @@ -1,26 +0,0 @@ -From 25a0107768c9f25e8edc5e423ca8b1d0813f2d04 Mon Sep 17 00:00:00 2001 -From: Adam Jackson -Date: Tue, 24 Nov 2009 13:38:46 -0500 -Subject: [PATCH] Enable GLX 1.4 for swrast - ---- - glx/glxdriswrast.c | 3 +++ - 1 files changed, 3 insertions(+), 0 deletions(-) - -diff --git a/glx/glxdriswrast.c b/glx/glxdriswrast.c -index 44f658f..20f9f90 100644 ---- a/glx/glxdriswrast.c -+++ b/glx/glxdriswrast.c -@@ -510,6 +510,9 @@ __glXDRIscreenProbe(ScreenPtr pScreen) - - __glXScreenInit(&screen->base, pScreen); - -+ screen->base.GLXmajor = 1; -+ screen->base.GLXminor = 4; -+ - LogMessage(X_INFO, - "AIGLX: Loaded and initialized %s\n", filename); - --- -1.6.5.2 - diff --git a/packages/x11/xserver/xorg-server/patches/xserver-1.7.1-libcrypto.patch b/packages/x11/xserver/xorg-server/patches/xserver-1.7.1-libcrypto.patch deleted file mode 100644 index c271855a2c..0000000000 --- a/packages/x11/xserver/xorg-server/patches/xserver-1.7.1-libcrypto.patch +++ /dev/null @@ -1,35 +0,0 @@ -From 8875112f5c57ec5d575e717c5638fbc919145efb Mon Sep 17 00:00:00 2001 -From: Adam Jackson -Date: Mon, 16 Nov 2009 18:01:26 -0500 -Subject: [PATCH] configure: Only link against libcrypto - -openssl.pc will link you against libssl, which we don't need, and which -brings in another seven libraries we also don't need. This is still -bogus, we're really only trying to get a SHA1 routine, we could link it -statically and be even better off. ---- - configure.ac | 6 ------ - 1 files changed, 0 insertions(+), 6 deletions(-) - -diff --git a/configure.ac b/configure.ac -index f69f97e..254d33d 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -1297,14 +1297,8 @@ if test "x$SHA1_LIB" = "x" ; then - fi - - if test "x$SHA1_LIB" = "x" ; then -- PKG_CHECK_EXISTS([OPENSSL], [openssl], [HAVE_OPENSSL_PKC=yes], -- [HAVE_OPENSSL_PKC=no]) -- if test "x$HAVE_OPENSSL_PKC" = xyes; then -- REQUIRED_LIBS="$REQUIRED_LIBS openssl" -- else - AC_CHECK_LIB([crypto], [SHA1_Init], [SHA1_LIB="-lcrypto"], - [AC_MSG_ERROR([OpenSSL must be installed in order to build the X server.])]) -- fi - fi - - PKG_CHECK_MODULES([XSERVERCFLAGS], [$REQUIRED_MODULES $REQUIRED_LIBS]) --- -1.6.5.2 - diff --git a/packages/x11/xserver/xorg-server/patches/xserver-1.8-udev-warning.diff b/packages/x11/xserver/xorg-server/patches/xserver-1.8-udev-warning.diff new file mode 100644 index 0000000000..666dd96658 --- /dev/null +++ b/packages/x11/xserver/xorg-server/patches/xserver-1.8-udev-warning.diff @@ -0,0 +1,37 @@ +From 57a188877b0472edb12bdf707b1550abbeb85af8 Mon Sep 17 00:00:00 2001 +From: Fedora X Ninjas +Date: Wed, 17 Feb 2010 11:12:36 +1000 +Subject: [PATCH] Stick giant warning into logfiles about udev configuration changes. + +Signed-off-by: Fedora X Ninjas +--- + hw/xfree86/common/xf86Config.c | 13 +++++++++++++ + 1 files changed, 13 insertions(+), 0 deletions(-) + +diff --git a/hw/xfree86/common/xf86Config.c b/hw/xfree86/common/xf86Config.c +index 132e8bc..b1722cd 100644 +--- a/hw/xfree86/common/xf86Config.c ++++ b/hw/xfree86/common/xf86Config.c +@@ -1472,6 +1472,19 @@ checkCoreInputDevices(serverLayoutPtr servlayoutp, Bool implicitLayout) + "input devices.\n\tIf no devices become available, " + "reconfigure %s or disable AutoAddDevices.\n", + config_backend, config_backend); ++ ++ xf86Msg(X_INFO, "\n" ++ "***************************************************************\n" ++ "***************************************************************\n" ++ "** OpenELEC.tv switched to udev-based device detection with **\n" ++ "** xorg-x11-server-1.7.99.901-1. Custom HAL configuration **\n" ++ "** stored in /etc/hal/fdi/policy will not be seen by this **\n" ++ "** server version. If you have such configuration you will **\n" ++ "** need to update it to the new format. **\n" ++ "** For more information, see the Fedora wiki page **\n" ++ "** https://fedoraproject.org/wiki/Input_device_configuration **\n" ++ "***************************************************************\n" ++ "***************************************************************\n"); + #else + xf86Msg(X_INFO, "Hotplugging is disabled and no input devices were configured.\n" + "\tTry disabling AllowEmptyInput.\n"); +-- +1.6.6.1 + diff --git a/packages/x11/xserver/xorg-server/patches/xserver-boottime.patch b/packages/x11/xserver/xorg-server/patches/xserver-boottime.patch deleted file mode 100644 index efc85a42ab..0000000000 --- a/packages/x11/xserver/xorg-server/patches/xserver-boottime.patch +++ /dev/null @@ -1,38 +0,0 @@ -diff --git a/os/log.c b/os/log.c -index 0860847..2c46f1a 100644 ---- a/os/log.c -+++ b/os/log.c -@@ -255,6 +255,33 @@ LogVWrite(int verb, const char *f, va_list args) - static char tmpBuffer[1024]; - int len = 0; - -+ struct timeval time; -+ time_t tv_sec; -+ suseconds_t tv_usec; -+ static Bool first = TRUE; -+ static time_t start_tv_sec; -+ static suseconds_t start_usec; -+ int diff_sec, diff_usec; -+ -+ gettimeofday(&time, NULL); -+ tv_sec = time.tv_sec; -+ tv_usec = time.tv_usec; -+ if (first == TRUE) { -+ start_tv_sec = tv_sec; -+ start_usec = tv_usec; -+ first = FALSE; -+ } -+ diff_sec = (int)difftime(tv_sec, start_tv_sec); -+ diff_usec = (tv_usec - start_usec); -+ if (diff_usec < 0) { -+ diff_sec--; -+ diff_usec += 1000000; -+ } -+ sprintf(tmpBuffer, "[%d sec: %06d usec]", diff_sec , diff_usec); -+ len = strlen(tmpBuffer); -+ if (logFile) -+ fwrite(tmpBuffer, len, 1, logFile); -+ - /* - * Since a va_list can only be processed once, write the string to a - * buffer, and then write the buffer out to the appropriate output diff --git a/packages/x11/xserver/xorg-server/patches/xserver-no-root-2.diff b/packages/x11/xserver/xorg-server/patches/xserver-no-root-2.diff new file mode 100644 index 0000000000..69af3f37c5 --- /dev/null +++ b/packages/x11/xserver/xorg-server/patches/xserver-no-root-2.diff @@ -0,0 +1,53 @@ +diff --git a/hw/xfree86/os-support/linux/lnx_init.c b/hw/xfree86/os-support/linux/lnx_init.c +index 297e7a6..8671231 100644 +--- a/hw/xfree86/os-support/linux/lnx_init.c ++++ b/hw/xfree86/os-support/linux/lnx_init.c +@@ -42,6 +42,7 @@ static Bool KeepTty = FALSE; + static int VTnum = -1; + static Bool VTSwitch = TRUE; + static Bool ShareVTs = FALSE; ++Bool NoHwAccess = FALSE; + static int activeVT = -1; + + static int vtPermSave[4]; +@@ -377,6 +378,11 @@ xf86ProcessArgument(int argc, char *argv[], int i) + ShareVTs = TRUE; + return(1); + } ++ if (!strcmp(argv[i], "-nohwaccess")) ++ { ++ NoHwAccess = TRUE; ++ return(1); ++ } + if ((argv[i][0] == 'v') && (argv[i][1] == 't')) + { + if (sscanf(argv[i], "vt%2d", &VTnum) == 0) +@@ -397,5 +403,6 @@ xf86UseMsg(void) + ErrorF("-keeptty "); + ErrorF("don't detach controlling tty (for debugging only)\n"); + ErrorF("-novtswitch don't immediately switch to new VT\n"); ++ ErrorF("-nohwaccess don't access hardware ports directly\n"); + ErrorF("-sharevts share VTs with another X server\n"); + } +diff --git a/hw/xfree86/os-support/linux/lnx_video.c b/hw/xfree86/os-support/linux/lnx_video.c +index 26a1742..c34bb85 100644 +--- a/hw/xfree86/os-support/linux/lnx_video.c ++++ b/hw/xfree86/os-support/linux/lnx_video.c +@@ -50,6 +50,7 @@ + #define MAP_FAILED ((void *)-1) + #endif + ++extern Bool NoHwAccess; + static Bool ExtendedEnabled = FALSE; + + #ifdef __ia64__ +@@ -496,6 +497,9 @@ xf86EnableIO(void) + int fd; + unsigned int ioBase_phys; + #endif ++ /* Fake it... */ ++ if (NoHwAccess) ++ return TRUE; + + if (ExtendedEnabled) + return TRUE; diff --git a/packages/x11/xserver/xorg-server/url b/packages/x11/xserver/xorg-server/url index 69d2bf394e..e2b23b6bdc 100644 --- a/packages/x11/xserver/xorg-server/url +++ b/packages/x11/xserver/xorg-server/url @@ -1 +1 @@ -http://xorg.freedesktop.org/archive/individual/xserver/xorg-server-1.7.5.tar.bz2 +http://sources.openelec.tv/svn/xorg-server-20100309.tar.bz2 From 4c868bbda1b2001508552855949ec6dac0caeb50 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Fri, 19 Mar 2010 01:04:44 +0100 Subject: [PATCH 004/320] xf86-input-evdev: - add udev config file - remove hal configfile --- .../xf86-input-evdev/config/00-evdev.conf | 39 +++++++++++++++++++ .../xf86-input-evdev/config/10-x11-evdev.fdi | 18 --------- packages/x11/driver/xf86-input-evdev/install | 7 ++-- 3 files changed, 42 insertions(+), 22 deletions(-) create mode 100644 packages/x11/driver/xf86-input-evdev/config/00-evdev.conf delete mode 100644 packages/x11/driver/xf86-input-evdev/config/10-x11-evdev.fdi diff --git a/packages/x11/driver/xf86-input-evdev/config/00-evdev.conf b/packages/x11/driver/xf86-input-evdev/config/00-evdev.conf new file mode 100644 index 0000000000..877aa4ac5e --- /dev/null +++ b/packages/x11/driver/xf86-input-evdev/config/00-evdev.conf @@ -0,0 +1,39 @@ +# Catchall classes for input devices +# We don't simply match on any device since that also adds accelerometers +# and other devices that we don't really want to use. The list below +# matches everything but joysticks. + +Section "InputClass" + Identifier "evdev pointer catchall" + MatchIsPointer "on" + MatchDevicePath "/dev/input/event*" + Driver "evdev" +EndSection + +Section "InputClass" + Identifier "evdev keyboard catchall" + MatchIsKeyboard "on" + MatchDevicePath "/dev/input/event*" + Driver "evdev" +EndSection + +Section "InputClass" + Identifier "evdev touchpad catchall" + MatchIsTouchpad "on" + MatchDevicePath "/dev/input/event*" + Driver "evdev" +EndSection + +Section "InputClass" + Identifier "evdev tablet catchall" + MatchIsTablet "on" + MatchDevicePath "/dev/input/event*" + Driver "evdev" +EndSection + +Section "InputClass" + Identifier "evdev touchscreen catchall" + MatchIsTouchscreen "on" + MatchDevicePath "/dev/input/event*" + Driver "evdev" +EndSection diff --git a/packages/x11/driver/xf86-input-evdev/config/10-x11-evdev.fdi b/packages/x11/driver/xf86-input-evdev/config/10-x11-evdev.fdi deleted file mode 100644 index a7fe8ccb42..0000000000 --- a/packages/x11/driver/xf86-input-evdev/config/10-x11-evdev.fdi +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - evdev - - - - - - evdev - - - - diff --git a/packages/x11/driver/xf86-input-evdev/install b/packages/x11/driver/xf86-input-evdev/install index 6458108fee..f1717ff219 100755 --- a/packages/x11/driver/xf86-input-evdev/install +++ b/packages/x11/driver/xf86-input-evdev/install @@ -5,8 +5,7 @@ PKG_DIR=`find $PACKAGES -type d -name $1` mkdir -p $INSTALL/$XORG_PATH_MODULES/input -cp $PKG_BUILD/src/.libs/evdev_drv.so $INSTALL/$XORG_PATH_MODULES/input + cp -PR $PKG_BUILD/src/.libs/evdev_drv.so $INSTALL/$XORG_PATH_MODULES/input -mkdir -p $INSTALL/usr/share/hal/fdi/policy/20thirdparty -cp $PKG_DIR/config/10-x11-evdev.fdi \ - $INSTALL/usr/share/hal/fdi/policy/20thirdparty +mkdir -p $INSTALL/etc/X11/xorg.conf.d + cp -PR $PKG_DIR/config/*.conf $INSTALL/etc/X11/xorg.conf.d From cf53bfa7214ee661fa84e142b5556089fab07883 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Fri, 19 Mar 2010 01:05:19 +0100 Subject: [PATCH 005/320] xf86-input-evdev: - add udev config file - dont install hal configfile --- .../config/98-input-synaptics.conf | 6 ++++++ packages/x11/driver/xf86-input-synaptics/install | 10 ++++++---- 2 files changed, 12 insertions(+), 4 deletions(-) create mode 100644 packages/x11/driver/xf86-input-synaptics/config/98-input-synaptics.conf diff --git a/packages/x11/driver/xf86-input-synaptics/config/98-input-synaptics.conf b/packages/x11/driver/xf86-input-synaptics/config/98-input-synaptics.conf new file mode 100644 index 0000000000..9261175228 --- /dev/null +++ b/packages/x11/driver/xf86-input-synaptics/config/98-input-synaptics.conf @@ -0,0 +1,6 @@ +Section "InputClass" + Identifier "synaptics" + MatchIsTouchpad "true" + Driver "synaptics" +EndSection + diff --git a/packages/x11/driver/xf86-input-synaptics/install b/packages/x11/driver/xf86-input-synaptics/install index d70b51ef49..810b3cedae 100755 --- a/packages/x11/driver/xf86-input-synaptics/install +++ b/packages/x11/driver/xf86-input-synaptics/install @@ -4,8 +4,10 @@ $SCRIPTS/install libXi -mkdir -p $INSTALL/$XORG_PATH_MODULES/input - cp $PKG_BUILD/src/.libs/synaptics_drv.so $INSTALL/$XORG_PATH_MODULES/input +PKG_DIR=`find $PACKAGES -type d -name $1` -mkdir -p $INSTALL/usr/share/hal/fdi/policy/20thirdparty/ - cp $PKG_BUILD/fdi/*.fdi $INSTALL/usr/share/hal/fdi/policy/20thirdparty/ +mkdir -p $INSTALL/$XORG_PATH_MODULES/input + cp -PR $PKG_BUILD/src/.libs/synaptics_drv.so $INSTALL/$XORG_PATH_MODULES/input + +mkdir -p $INSTALL/etc/X11/xorg.conf.d + cp -PR $PKG_DIR/config/*.conf $INSTALL/etc/X11/xorg.conf.d From 260b237e2feced694b1530dbd2228f48def08016 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Fri, 19 Mar 2010 01:06:28 +0100 Subject: [PATCH 006/320] xf86-input-wacom: - add udev config file - dont install hal configfile --- .../xf86-input-wacom/config/10-wacom.conf | 20 +++++++++++++++++++ .../config/69-xorg-wacom.rules | 2 ++ packages/x11/driver/xf86-input-wacom/install | 9 +++++++-- 3 files changed, 29 insertions(+), 2 deletions(-) create mode 100644 packages/x11/driver/xf86-input-wacom/config/10-wacom.conf create mode 100644 packages/x11/driver/xf86-input-wacom/config/69-xorg-wacom.rules diff --git a/packages/x11/driver/xf86-input-wacom/config/10-wacom.conf b/packages/x11/driver/xf86-input-wacom/config/10-wacom.conf new file mode 100644 index 0000000000..dd486eef48 --- /dev/null +++ b/packages/x11/driver/xf86-input-wacom/config/10-wacom.conf @@ -0,0 +1,20 @@ +Section "InputClass" + Identifier "Wacom class" + MatchProduct "Wacom|WALTOP|WACOM" + Driver "wacom" +EndSection + +Section "InputClass" + Identifier "Wacom serial class" + MatchProduct "WACf|FUJ02e5|FUJ02e7" + Driver "wacom" + Option "ForceDevice" "ISDV4" +EndSection + +# N-Trig Duosense Electromagnetic Digitizer +Section "InputClass" + Identifier "Wacom N-Trig class" + MatchProduct "HID 1b96:0001" + MatchDevicePath "/dev/input/event*" + Driver "wacom" +EndSection diff --git a/packages/x11/driver/xf86-input-wacom/config/69-xorg-wacom.rules b/packages/x11/driver/xf86-input-wacom/config/69-xorg-wacom.rules new file mode 100644 index 0000000000..b7da7c1b1f --- /dev/null +++ b/packages/x11/driver/xf86-input-wacom/config/69-xorg-wacom.rules @@ -0,0 +1,2 @@ +ACTION=="add|change", SUBSYSTEM=="pnp", ATTR{id}=="WACf*", ENV{NAME}="Serial Wacom Tablet" +ACTION=="add|change", SUBSYSTEMS=="pnp", ATTRS{id}=="WACf*", ENV{x11_driver}="wacom", ENV{ID_INPUT}="1", ENV{ID_INPUT_TABLET}="1" diff --git a/packages/x11/driver/xf86-input-wacom/install b/packages/x11/driver/xf86-input-wacom/install index 38599edb63..47555323cb 100755 --- a/packages/x11/driver/xf86-input-wacom/install +++ b/packages/x11/driver/xf86-input-wacom/install @@ -2,11 +2,16 @@ . config/options +PKG_DIR=`find $PACKAGES -type d -name $1` + mkdir -p $INSTALL/$XORG_PATH_MODULES/input cp -PR $PKG_BUILD/src/.libs/wacom_drv.so $INSTALL/$XORG_PATH_MODULES/input -mkdir -p $INSTALL/usr/share/hal/fdi/policy/20thirdparty/ - cp -PR $PKG_BUILD/fdi/*.fdi $INSTALL/usr/share/hal/fdi/policy/20thirdparty/ +mkdir -p $INSTALL/etc/X11/xorg.conf.d + cp -PR $PKG_DIR/config/*.conf $INSTALL/etc/X11/xorg.conf.d + +mkdir -p $INSTALL/lib/udev/rules.d + cp -PR $PKG_DIR/config/*.rules $INSTALL/lib/udev/rules.d mkdir -p $INSTALL/usr/bin cp -PR $PKG_BUILD/tools/xsetwacom $INSTALL/usr/bin From da67828baf68ca46ef8f9f29cfadc23c40429c0d Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Fri, 19 Mar 2010 01:07:20 +0100 Subject: [PATCH 007/320] xf86-video-intel: - update to xf86-video-intel-20100309 --- packages/x11/driver/xf86-video-intel/url | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/x11/driver/xf86-video-intel/url b/packages/x11/driver/xf86-video-intel/url index 4d395a3ed3..f024338be9 100644 --- a/packages/x11/driver/xf86-video-intel/url +++ b/packages/x11/driver/xf86-video-intel/url @@ -1 +1 @@ -http://xorg.freedesktop.org/archive/individual/driver/xf86-video-intel-2.10.901.tar.bz2 \ No newline at end of file +http://sources.openelec.tv/svn/xf86-video-intel-20100309.tar.bz2 \ No newline at end of file From 78d129b6e1708274212c6adb7e40d777d8192b6a Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Fri, 19 Mar 2010 01:07:36 +0100 Subject: [PATCH 008/320] libX11: - update to libX11-20100213 --- packages/x11/lib/libX11/url | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/x11/lib/libX11/url b/packages/x11/lib/libX11/url index bcd0ba4868..7fed5aa5d3 100644 --- a/packages/x11/lib/libX11/url +++ b/packages/x11/lib/libX11/url @@ -1 +1 @@ -http://xorg.freedesktop.org/archive/individual/lib/libX11-1.3.3.tar.bz2 \ No newline at end of file +http://sources.openelec.tv/svn/libX11-20100213.tar.bz2 From bc5e2dc1d6b2aa784ad3017da2379f0c8d872332 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Fri, 19 Mar 2010 01:07:51 +0100 Subject: [PATCH 009/320] glproto: - update to glproto-20100225 --- packages/x11/proto/glproto/url | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/x11/proto/glproto/url b/packages/x11/proto/glproto/url index 32c967c794..8fe0ff4090 100644 --- a/packages/x11/proto/glproto/url +++ b/packages/x11/proto/glproto/url @@ -1 +1 @@ -http://xorg.freedesktop.org/archive/individual/proto/glproto-1.4.11.tar.bz2 \ No newline at end of file +http://sources.openelec.tv/svn/glproto-20100225.tar.bz2 From da73337e4770447d9b8527ed8c948a6e057d29c1 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Fri, 19 Mar 2010 13:44:14 +0100 Subject: [PATCH 010/320] glib: - update to glib-2.23.5 --- .../glib-2.23.5-fix_compiling-0.3.diff | 70 +++++++++++++++++++ .../devel/glib/patches/glib-i386-atomic.diff | 15 ---- packages/devel/glib/url | 2 +- 3 files changed, 71 insertions(+), 16 deletions(-) create mode 100644 packages/devel/glib/patches/glib-2.23.5-fix_compiling-0.3.diff delete mode 100644 packages/devel/glib/patches/glib-i386-atomic.diff diff --git a/packages/devel/glib/patches/glib-2.23.5-fix_compiling-0.3.diff b/packages/devel/glib/patches/glib-2.23.5-fix_compiling-0.3.diff new file mode 100644 index 0000000000..8e81ba0f28 --- /dev/null +++ b/packages/devel/glib/patches/glib-2.23.5-fix_compiling-0.3.diff @@ -0,0 +1,70 @@ +diff -Naur glib-2.23.5/gio/Makefile.am glib-2.23.5.patch/gio/Makefile.am +--- glib-2.23.5/gio/Makefile.am 2010-03-06 17:51:40.000000000 +0100 ++++ glib-2.23.5.patch/gio/Makefile.am 2010-03-09 09:38:50.205664589 +0100 +@@ -466,6 +466,7 @@ + $(top_builddir)/glib/libglib-2.0.la \ + $(top_builddir)/gobject/libgobject-2.0.la \ + $(top_builddir)/gmodule/libgmodule-2.0.la \ ++ $(top_builddir)/gthread/libgthread-2.0.la \ + libgio-2.0.la \ + $(NULL) + +diff -Naur glib-2.23.5/gio/Makefile.in glib-2.23.5.patch/gio/Makefile.in +--- glib-2.23.5/gio/Makefile.in 2010-03-08 16:35:06.000000000 +0100 ++++ glib-2.23.5.patch/gio/Makefile.in 2010-03-09 09:39:16.717664516 +0100 +@@ -824,6 +824,7 @@ + $(top_builddir)/glib/libglib-2.0.la \ + $(top_builddir)/gobject/libgobject-2.0.la \ + $(top_builddir)/gmodule/libgmodule-2.0.la \ ++ $(top_builddir)/gthread/libgthread-2.0.la \ + libgio-2.0.la \ + $(NULL) + +diff -Naur glib-2.23.5/gio/tests/Makefile.am glib-2.23.5.patch/gio/tests/Makefile.am +--- glib-2.23.5/gio/tests/Makefile.am 2010-03-06 17:51:40.000000000 +0100 ++++ glib-2.23.5.patch/gio/tests/Makefile.am 2010-03-09 09:39:44.816664472 +0100 +@@ -14,6 +14,8 @@ + progs_ldadd = \ + $(top_builddir)/glib/libglib-2.0.la \ + $(top_builddir)/gobject/libgobject-2.0.la \ ++ $(top_builddir)/gmodule/libgmodule-2.0.la \ ++ $(top_builddir)/gthread/libgthread-2.0.la \ + $(top_builddir)/gio/libgio-2.0.la + + +diff -Naur glib-2.23.5/gio/tests/Makefile.in glib-2.23.5.patch/gio/tests/Makefile.in +--- glib-2.23.5/gio/tests/Makefile.in 2010-03-08 16:35:07.000000000 +0100 ++++ glib-2.23.5.patch/gio/tests/Makefile.in 2010-03-09 09:40:11.250664543 +0100 +@@ -448,6 +448,8 @@ + progs_ldadd = \ + $(top_builddir)/glib/libglib-2.0.la \ + $(top_builddir)/gobject/libgobject-2.0.la \ ++ $(top_builddir)/gmodule/libgmodule-2.0.la \ ++ $(top_builddir)/gthread/libgthread-2.0.la \ + $(top_builddir)/gio/libgio-2.0.la + + SAMPLE_PROGS = \ +diff -Naur glib-2.23.5/tests/Makefile.am glib-2.23.5.patch/tests/Makefile.am +--- glib-2.23.5/tests/Makefile.am 2010-01-22 03:57:55.000000000 +0100 ++++ glib-2.23.5.patch/tests/Makefile.am 2010-03-09 09:36:39.805664621 +0100 +@@ -86,7 +86,7 @@ + assert_msg_test_LDADD = $(libglib) + if ENABLE_TIMELOOP + timeloop_LDADD = $(libglib) +-timeloop_closure_LDADD = $(libglib) $(libgobject) ++timeloop_closure_LDADD = $(libglib) $(libgobject) $(libgthread) + endif + + test_programs = \ +diff -Naur glib-2.23.5/tests/Makefile.in glib-2.23.5.patch/tests/Makefile.in +--- glib-2.23.5/tests/Makefile.in 2010-03-08 16:35:08.000000000 +0100 ++++ glib-2.23.5.patch/tests/Makefile.in 2010-03-09 09:37:22.598664379 +0100 +@@ -692,7 +692,7 @@ + errorcheck_mutex_test_LDADD = $(libglib) $(libgthread) $(G_THREAD_LIBS) + assert_msg_test_LDADD = $(libglib) + @ENABLE_TIMELOOP_TRUE@timeloop_LDADD = $(libglib) +-@ENABLE_TIMELOOP_TRUE@timeloop_closure_LDADD = $(libglib) $(libgobject) ++@ENABLE_TIMELOOP_TRUE@timeloop_closure_LDADD = $(libglib) $(libgobject) $(libgthread) + test_programs = \ + atomic-test \ + base64-test \ diff --git a/packages/devel/glib/patches/glib-i386-atomic.diff b/packages/devel/glib/patches/glib-i386-atomic.diff deleted file mode 100644 index 01495c0070..0000000000 --- a/packages/devel/glib/patches/glib-i386-atomic.diff +++ /dev/null @@ -1,15 +0,0 @@ -diff -up glib-2.16.6/configure.atomic glib-2.16.6/configure ---- glib-2.16.6/configure.atomic 2008-10-27 18:24:20.000000000 -0400 -+++ glib-2.16.6/configure 2008-10-27 18:24:31.000000000 -0400 -@@ -42742,11 +42742,6 @@ $as_echo_n "checking whether to use asse - - if test x"$GCC" = xyes; then - case $host_cpu in -- i386) -- { $as_echo "$as_me:$LINENO: result: none" >&5 --$as_echo "none" >&6; } -- glib_memory_barrier_needed=no -- ;; - i?86) - { $as_echo "$as_me:$LINENO: result: i486" >&5 - $as_echo "i486" >&6; } diff --git a/packages/devel/glib/url b/packages/devel/glib/url index 1313421652..9c5b1fe999 100644 --- a/packages/devel/glib/url +++ b/packages/devel/glib/url @@ -1 +1 @@ -http://ftp.gnome.org/pub/GNOME/sources/glib/2.23/glib-2.23.1.tar.bz2 +http://ftp.gnome.org/pub/GNOME/sources/glib/2.23/glib-2.23.5.tar.bz2 From f59cf9f82487e047aab327d40a316fad8e4e6d9b Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Fri, 19 Mar 2010 13:44:35 +0100 Subject: [PATCH 011/320] Mesa: - update to Mesa-7.8-20100318 --- packages/graphics/Mesa/url | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/graphics/Mesa/url b/packages/graphics/Mesa/url index 2e883a99b3..4d940a8ccc 100644 --- a/packages/graphics/Mesa/url +++ b/packages/graphics/Mesa/url @@ -1 +1 @@ -http://sources.openelec.tv/svn/Mesa-7.8-20100309.tar.bz2 +http://sources.openelec.tv/svn/Mesa-7.8-20100318.tar.bz2 From 8c6427538d517e63c28763b91f52ceabf865acce Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Fri, 19 Mar 2010 13:44:59 +0100 Subject: [PATCH 012/320] libdrm: - update to libdrm-20100318 --- packages/graphics/libdrm/url | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/graphics/libdrm/url b/packages/graphics/libdrm/url index 8121b29364..de37fe91ea 100644 --- a/packages/graphics/libdrm/url +++ b/packages/graphics/libdrm/url @@ -1 +1 @@ -http://sources.openelec.tv/svn/libdrm-20100309.tar.bz2 +http://sources.openelec.tv/svn/libdrm-20100318.tar.bz2 From a36711d82446274f28ccbd52fcc6c18fd0e3ac8a Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Fri, 19 Mar 2010 13:45:22 +0100 Subject: [PATCH 013/320] xbmc: - add patch to build with newer glib --- .../patches/xbmc-undef_byte_for_glib-2.23.x-0.1.diff | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 packages/mediacenter/xbmc/patches/xbmc-undef_byte_for_glib-2.23.x-0.1.diff diff --git a/packages/mediacenter/xbmc/patches/xbmc-undef_byte_for_glib-2.23.x-0.1.diff b/packages/mediacenter/xbmc/patches/xbmc-undef_byte_for_glib-2.23.x-0.1.diff new file mode 100644 index 0000000000..0b72e14a70 --- /dev/null +++ b/packages/mediacenter/xbmc/patches/xbmc-undef_byte_for_glib-2.23.x-0.1.diff @@ -0,0 +1,11 @@ +diff -Naur xbmc-28622/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamMMS.cpp xbmc-28622.patch/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamMMS.cpp +--- xbmc-28622/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamMMS.cpp 2010-03-17 20:11:42.000000000 +0100 ++++ xbmc-28622.patch/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamMMS.cpp 2010-03-19 04:04:41.074751644 +0100 +@@ -35,6 +35,7 @@ + // some distros have already patched this but upstream @ https://launchpad.net/libmms + // does still has the "this" usage. + #define this instance ++#undef byte + #include // FIXME: remove this header once the ubuntu headers is fixed (variable named this) + #include + #include From 86ee2474b6db8aa146615ec4e872ede55014b333 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Fri, 19 Mar 2010 13:45:41 +0100 Subject: [PATCH 014/320] xf86-video-intel: - update to xf86-video-intel-20100318 --- packages/x11/driver/xf86-video-intel/url | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/x11/driver/xf86-video-intel/url b/packages/x11/driver/xf86-video-intel/url index 71230b399a..277ac5e6a5 100644 --- a/packages/x11/driver/xf86-video-intel/url +++ b/packages/x11/driver/xf86-video-intel/url @@ -1 +1 @@ -http://xorg.freedesktop.org/archive/individual/driver/xf86-video-intel-2.10.902.tar.bz2 +http://sources.openelec.tv/svn/xf86-video-intel-20100318.tar.bz2 From b6e242990f4f687534b17c9434f9d868466cc74f Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Fri, 19 Mar 2010 13:46:39 +0100 Subject: [PATCH 015/320] xorg-server: - remove old and update patches --- .../patches/03_fedora_glx_versioning.diff | 233 ------------------ .../patches/04_fedora_glx14-swrast.diff | 26 -- .../05_only_call_gamma_set_if_nonnull.diff | 25 -- ...ont_trap_access_to_timer_and_keyboard.diff | 22 -- ...t-after-CreateWellKnownSockets-and-In.diff | 34 --- ...16-xfree86-fix-build-with-xv-disabled.diff | 53 ---- ....diff => 20_extra_modelines_fromxorg.diff} | 0 .../patches/xserver-1.5.0-bg-none-root.diff | 30 +-- .../xorg-server/patches/xserver-boottime.diff | 38 --- 9 files changed, 15 insertions(+), 446 deletions(-) delete mode 100644 packages/x11/xserver/xorg-server/patches/03_fedora_glx_versioning.diff delete mode 100644 packages/x11/xserver/xorg-server/patches/04_fedora_glx14-swrast.diff delete mode 100644 packages/x11/xserver/xorg-server/patches/05_only_call_gamma_set_if_nonnull.diff delete mode 100644 packages/x11/xserver/xorg-server/patches/06_dont_trap_access_to_timer_and_keyboard.diff delete mode 100644 packages/x11/xserver/xorg-server/patches/11-Move-config_init-after-CreateWellKnownSockets-and-In.diff delete mode 100644 packages/x11/xserver/xorg-server/patches/16-xfree86-fix-build-with-xv-disabled.diff rename packages/x11/xserver/xorg-server/patches/{001_fedora_extramodes.diff => 20_extra_modelines_fromxorg.diff} (100%) delete mode 100644 packages/x11/xserver/xorg-server/patches/xserver-boottime.diff diff --git a/packages/x11/xserver/xorg-server/patches/03_fedora_glx_versioning.diff b/packages/x11/xserver/xorg-server/patches/03_fedora_glx_versioning.diff deleted file mode 100644 index c8a1c30954..0000000000 --- a/packages/x11/xserver/xorg-server/patches/03_fedora_glx_versioning.diff +++ /dev/null @@ -1,233 +0,0 @@ -From 3ef4be8129f78afd5566a9e5d0fb901449dcb771 Mon Sep 17 00:00:00 2001 -From: Ian Romanick -Date: Tue, 29 Sep 2009 16:43:43 -0700 -Subject: [PATCH] GLX: Enable GLX 1.4 on DRI2 - -this squashes 4 commits -(cherry picked from commit ad5c0d9efa47476ed5cf75c82265c73919e468b4) -(cherry picked from commit cb54cf1b3e8c4109541cfb698542c00f2473e731) -(cherry picked from commit 4c6bfa2c09ae2b0cffdf9211a6dfbcaefe0366b5) -(cherry picked from commit 9bf2ff4faf730913de3073f346646a8727be41d4) ---- - glx/glxcmds.c | 12 ++++++++---- - glx/glxdri2.c | 12 ++++++++++++ - glx/glxext.c | 8 +++++++- - glx/glxscreens.c | 15 ++++++++++++--- - glx/glxscreens.h | 11 +++++++++++ - glx/glxserver.h | 3 +++ - glx/indirect_texture_compression.c | 4 ++-- - include/protocol-versions.h | 2 +- - 8 files changed, 56 insertions(+), 11 deletions(-) - -diff --git a/glx/glxcmds.c b/glx/glxcmds.c -index b1061a8..ba4c123 100644 ---- a/glx/glxcmds.c -+++ b/glx/glxcmds.c -@@ -50,7 +50,6 @@ - #include "indirect_dispatch.h" - #include "indirect_table.h" - #include "indirect_util.h" --#include "protocol-versions.h" - - static int - validGlxScreen(ClientPtr client, int screen, __GLXscreen **pGlxScreen, int *err) -@@ -739,8 +738,8 @@ int __glXDisp_QueryVersion(__GLXclientState *cl, GLbyte *pc) - ** client if it wants to work with older clients; however, in this - ** implementation the server just returns its version number. - */ -- reply.majorVersion = SERVER_GLX_MAJOR_VERSION; -- reply.minorVersion = SERVER_GLX_MINOR_VERSION; -+ reply.majorVersion = glxMajorVersion; -+ reply.minorVersion = glxMinorVersion; - reply.length = 0; - reply.type = X_Reply; - reply.sequenceNumber = client->sequence; -@@ -2360,6 +2359,7 @@ int __glXDisp_QueryServerString(__GLXclientState *cl, GLbyte *pc) - char *buf; - __GLXscreen *pGlxScreen; - int err; -+ char ver_str[16]; - - if (!validGlxScreen(client, req->screen, &pGlxScreen, &err)) - return err; -@@ -2369,7 +2369,11 @@ int __glXDisp_QueryServerString(__GLXclientState *cl, GLbyte *pc) - ptr = pGlxScreen->GLXvendor; - break; - case GLX_VERSION: -- ptr = pGlxScreen->GLXversion; -+ /* Return to the server version rather than the screen version -+ * to prevent confusion when they do not match. -+ */ -+ snprintf(ver_str, 16, "%d.%d", glxMajorVersion, glxMinorVersion); -+ ptr = ver_str; - break; - case GLX_EXTENSIONS: - ptr = pGlxScreen->GLXextensions; -diff --git a/glx/glxdri2.c b/glx/glxdri2.c -index ed7fb4c..ed7dc80 100644 ---- a/glx/glxdri2.c -+++ b/glx/glxdri2.c -@@ -685,6 +685,18 @@ __glXDRIscreenProbe(ScreenPtr pScreen) - screen->base.GLXextensions); - } - -+ /* We're going to assume (perhaps incorrectly?) that all DRI2-enabled -+ * drivers support the required extensions for GLX 1.4. The extensions -+ * we're assuming are: -+ * -+ * - GLX_SGI_make_current_read (1.3) -+ * - GLX_SGIX_fbconfig (1.3) -+ * - GLX_SGIX_pbuffer (1.3) -+ * - GLX_ARB_multisample (1.4) -+ */ -+ screen->base.GLXmajor = 1; -+ screen->base.GLXminor = 4; -+ - screen->enterVT = pScrn->EnterVT; - pScrn->EnterVT = glxDRIEnterVT; - screen->leaveVT = pScrn->LeaveVT; -diff --git a/glx/glxext.c b/glx/glxext.c -index 19d70d4..9f9c0ed 100644 ---- a/glx/glxext.c -+++ b/glx/glxext.c -@@ -360,12 +360,18 @@ void GlxExtensionInit(void) - pScreen = screenInfo.screens[i]; - - for (p = __glXProviderStack; p != NULL; p = p->next) { -- if (p->screenProbe(pScreen) != NULL) { -+ __GLXscreen *glxScreen; -+ -+ glxScreen = p->screenProbe(pScreen); -+ if (glxScreen != NULL) { -+ if (glxScreen->GLXminor < glxMinorVersion) -+ glxMinorVersion = glxScreen->GLXminor; - LogMessage(X_INFO, - "GLX: Initialized %s GL provider for screen %d\n", - p->name, i); - break; - } -+ - } - - if (!p) -diff --git a/glx/glxscreens.c b/glx/glxscreens.c -index 7d29d31..674e2c6 100644 ---- a/glx/glxscreens.c -+++ b/glx/glxscreens.c -@@ -42,6 +42,7 @@ - #include "glxserver.h" - #include "glxutil.h" - #include "glxext.h" -+#include "protocol-versions.h" - - static int glxScreenPrivateKeyIndex; - static DevPrivateKey glxScreenPrivateKey = &glxScreenPrivateKeyIndex; -@@ -162,7 +163,8 @@ static const char GLServerExtensions[] = - ** supported across all screens in a multi-screen system. - */ - static char GLXServerVendorName[] = "SGI"; --static char GLXServerVersion[] = "1.2"; -+unsigned glxMajorVersion = SERVER_GLX_MAJOR_VERSION; -+unsigned glxMinorVersion = SERVER_GLX_MINOR_VERSION; - static char GLXServerExtensions[] = - "GLX_ARB_multisample " - "GLX_EXT_visual_info " -@@ -378,9 +380,17 @@ void __glXScreenInit(__GLXscreen *pGlxScreen, ScreenPtr pScreen) - pGlxScreen->pScreen = pScreen; - pGlxScreen->GLextensions = xstrdup(GLServerExtensions); - pGlxScreen->GLXvendor = xstrdup(GLXServerVendorName); -- pGlxScreen->GLXversion = xstrdup(GLXServerVersion); - pGlxScreen->GLXextensions = xstrdup(GLXServerExtensions); - -+ /* All GLX providers must support all of the functionality required for at -+ * least GLX 1.2. If the provider supports a higher version, the GLXminor -+ * version can be changed in the provider's screen-probe routine. For -+ * most providers, the screen-probe routine is the caller of this -+ * function. -+ */ -+ pGlxScreen->GLXmajor = 1; -+ pGlxScreen->GLXminor = 2; -+ - pGlxScreen->CloseScreen = pScreen->CloseScreen; - pScreen->CloseScreen = glxCloseScreen; - pGlxScreen->DestroyWindow = pScreen->DestroyWindow; -@@ -454,7 +464,6 @@ void __glXScreenInit(__GLXscreen *pGlxScreen, ScreenPtr pScreen) - void __glXScreenDestroy(__GLXscreen *screen) - { - xfree(screen->GLXvendor); -- xfree(screen->GLXversion); - xfree(screen->GLXextensions); - xfree(screen->GLextensions); - } -diff --git a/glx/glxscreens.h b/glx/glxscreens.h -index 3c1bdd4..bff4363 100644 ---- a/glx/glxscreens.h -+++ b/glx/glxscreens.h -@@ -161,6 +161,17 @@ struct __GLXscreen { - char *GLXversion; - char *GLXextensions; - -+ /** -+ * \name GLX version supported by this screen. -+ * -+ * Since the GLX version advertised by the server is for the whole server, -+ * the GLX protocol code uses the minimum version supported on all screens. -+ */ -+ /*@{*/ -+ unsigned GLXmajor; -+ unsigned GLXminor; -+ /*@}*/ -+ - Bool (*CloseScreen)(int index, ScreenPtr pScreen); - Bool (*DestroyWindow)(WindowPtr pWindow); - }; -diff --git a/glx/glxserver.h b/glx/glxserver.h -index 4aa8c2e..80f1b28 100644 ---- a/glx/glxserver.h -+++ b/glx/glxserver.h -@@ -248,4 +248,7 @@ extern int __glXImageSize(GLenum format, GLenum type, - GLint imageHeight, GLint rowLength, GLint skipImages, GLint skipRows, - GLint alignment); - -+extern unsigned glxMajorVersion; -+extern unsigned glxMinorVersion; -+ - #endif /* !__GLX_server_h__ */ -diff --git a/glx/indirect_texture_compression.c b/glx/indirect_texture_compression.c -index 25c6eb3..5f44d7b 100644 ---- a/glx/indirect_texture_compression.c -+++ b/glx/indirect_texture_compression.c -@@ -52,7 +52,7 @@ int __glXDisp_GetCompressedTexImageARB(struct __GLXclientStateRec *cl, GLbyte *p - const GLenum target = *(GLenum *)(pc + 0); - const GLint level = *(GLint *)(pc + 4); - GLint compsize = 0; -- char *answer, answerBuffer[200]; -+ char *answer = NULL, answerBuffer[200]; - - CALL_GetTexLevelParameteriv(GET_DISPATCH(), (target, level, GL_TEXTURE_COMPRESSED_IMAGE_SIZE, &compsize)); - -@@ -92,7 +92,7 @@ int __glXDispSwap_GetCompressedTexImageARB(struct __GLXclientStateRec *cl, GLbyt - const GLenum target = (GLenum) bswap_32( *(int *)(pc + 0) ); - const GLint level = (GLint ) bswap_32( *(int *)(pc + 4) ); - GLint compsize = 0; -- char *answer, answerBuffer[200]; -+ char *answer = NULL, answerBuffer[200]; - - CALL_GetTexLevelParameteriv(GET_DISPATCH(), (target, level, GL_TEXTURE_COMPRESSED_IMAGE_SIZE, &compsize)); - -diff --git a/include/protocol-versions.h b/include/protocol-versions.h -index da9770c..d688c66 100644 ---- a/include/protocol-versions.h -+++ b/include/protocol-versions.h -@@ -61,7 +61,7 @@ - - /* GLX */ - #define SERVER_GLX_MAJOR_VERSION 1 --#define SERVER_GLX_MINOR_VERSION 2 -+#define SERVER_GLX_MINOR_VERSION 4 - - /* Xinerama */ - #define SERVER_PANORAMIX_MAJOR_VERSION 1 --- -1.6.5.rc2 - diff --git a/packages/x11/xserver/xorg-server/patches/04_fedora_glx14-swrast.diff b/packages/x11/xserver/xorg-server/patches/04_fedora_glx14-swrast.diff deleted file mode 100644 index 2c51802535..0000000000 --- a/packages/x11/xserver/xorg-server/patches/04_fedora_glx14-swrast.diff +++ /dev/null @@ -1,26 +0,0 @@ -From 25a0107768c9f25e8edc5e423ca8b1d0813f2d04 Mon Sep 17 00:00:00 2001 -From: Adam Jackson -Date: Tue, 24 Nov 2009 13:38:46 -0500 -Subject: [PATCH] Enable GLX 1.4 for swrast - ---- - glx/glxdriswrast.c | 3 +++ - 1 files changed, 3 insertions(+), 0 deletions(-) - -diff --git a/glx/glxdriswrast.c b/glx/glxdriswrast.c -index 44f658f..20f9f90 100644 ---- a/glx/glxdriswrast.c -+++ b/glx/glxdriswrast.c -@@ -510,6 +510,9 @@ __glXDRIscreenProbe(ScreenPtr pScreen) - - __glXScreenInit(&screen->base, pScreen); - -+ screen->base.GLXmajor = 1; -+ screen->base.GLXminor = 4; -+ - LogMessage(X_INFO, - "AIGLX: Loaded and initialized %s\n", filename); - --- -1.6.5.2 - diff --git a/packages/x11/xserver/xorg-server/patches/05_only_call_gamma_set_if_nonnull.diff b/packages/x11/xserver/xorg-server/patches/05_only_call_gamma_set_if_nonnull.diff deleted file mode 100644 index b1d00ba6d0..0000000000 --- a/packages/x11/xserver/xorg-server/patches/05_only_call_gamma_set_if_nonnull.diff +++ /dev/null @@ -1,25 +0,0 @@ -Bug#564203 - -From 8ca4233017e9f441303088e7054b6a7c4f171d80 Mon Sep 17 00:00:00 2001 -From: Michael Vogt -Date: Wed, 6 Jan 2010 14:40:34 +0100 -Subject: [PATCH] * hw/xfree86/modes/xf86Crtc.c: - - only call gamma_set if its non NULL - ---- - hw/xfree86/modes/xf86Crtc.c | 2 +- - 1 files changed, 1 insertions(+), 1 deletions(-) - -diff --git a/hw/xfree86/modes/xf86Crtc.c b/hw/xfree86/modes/xf86Crtc.c -index d015c6a..573fe96 100644 ---- a/hw/xfree86/modes/xf86Crtc.c -+++ b/hw/xfree86/modes/xf86Crtc.c -@@ -354,7 +354,7 @@ xf86CrtcSetModeTransform (xf86CrtcPtr crtc, DisplayModePtr mode, Rotation rotati - } - - /* Only upload when needed, to avoid unneeded delays. */ -- if (!crtc->active) -+ if (!crtc->active && crtc->funcs->gamma_set) - crtc->funcs->gamma_set(crtc, crtc->gamma_red, crtc->gamma_green, - crtc->gamma_blue, crtc->gamma_size); - diff --git a/packages/x11/xserver/xorg-server/patches/06_dont_trap_access_to_timer_and_keyboard.diff b/packages/x11/xserver/xorg-server/patches/06_dont_trap_access_to_timer_and_keyboard.diff deleted file mode 100644 index 23d8dc79ad..0000000000 --- a/packages/x11/xserver/xorg-server/patches/06_dont_trap_access_to_timer_and_keyboard.diff +++ /dev/null @@ -1,22 +0,0 @@ -[PATCH] Do not trap access to timer and keyboard - -Some VESA BIOSes need to access to them. - -Signed-off-by: Samuel Thibault ---- - hw/xfree86/os-support/hurd/hurd_video.c | 2 -- - 1 files changed, 0 insertions(+), 2 deletions(-) - -diff --git a/hw/xfree86/os-support/hurd/hurd_video.c b/hw/xfree86/os-support/hurd/hurd_video.c -index 4a99db3..e049ceb 100644 ---- a/hw/xfree86/os-support/hurd/hurd_video.c -+++ b/hw/xfree86/os-support/hurd/hurd_video.c -@@ -124,8 +124,6 @@ xf86EnableIO() - FatalError("xf86EnableIO: ioperm() failed (%s)\n", strerror(errno)); - return FALSE; - } -- ioperm(0x40,4,0); /* trap access to the timer chip */ -- ioperm(0x60,4,0); /* trap access to the keyboard controller */ - return TRUE; - } - diff --git a/packages/x11/xserver/xorg-server/patches/11-Move-config_init-after-CreateWellKnownSockets-and-In.diff b/packages/x11/xserver/xorg-server/patches/11-Move-config_init-after-CreateWellKnownSockets-and-In.diff deleted file mode 100644 index 38d8d8dfdf..0000000000 --- a/packages/x11/xserver/xorg-server/patches/11-Move-config_init-after-CreateWellKnownSockets-and-In.diff +++ /dev/null @@ -1,34 +0,0 @@ -From 4ae407a5a308febf63de27a62f8c301c73b37d3e Mon Sep 17 00:00:00 2001 -From: Julien Cristau -Date: Tue, 6 Oct 2009 17:44:33 +0200 -Subject: [PATCH 1/5] Move config_init() after CreateWellKnownSockets() and InitCoreDevices() - -config_init() can now add devices directly instead of scheduling a -timer. - -Signed-off-by: Julien Cristau -Tested-by: Peter Hutterer ---- - dix/main.c | 2 +- - 1 files changed, 1 insertions(+), 1 deletions(-) - -Index: xorg-server/dix/main.c -=================================================================== ---- xorg-server.orig/dix/main.c -+++ xorg-server/dix/main.c -@@ -168,7 +168,6 @@ - InitBlockAndWakeupHandlers(); - /* Perform any operating system dependent initializations you'd like */ - OsInit(); -- config_init(); - if(serverGeneration == 1) - { - CreateWellKnownSockets(); -@@ -256,6 +255,7 @@ - InitCoreDevices(); - InitInput(argc, argv); - InitAndStartDevices(); -+ config_init(); - - dixSaveScreens(serverClient, SCREEN_SAVER_FORCER, ScreenSaverReset); - diff --git a/packages/x11/xserver/xorg-server/patches/16-xfree86-fix-build-with-xv-disabled.diff b/packages/x11/xserver/xorg-server/patches/16-xfree86-fix-build-with-xv-disabled.diff deleted file mode 100644 index 184301f913..0000000000 --- a/packages/x11/xserver/xorg-server/patches/16-xfree86-fix-build-with-xv-disabled.diff +++ /dev/null @@ -1,53 +0,0 @@ -From fe7575e929d65e8c798104ec2f72b879051694d3 Mon Sep 17 00:00:00 2001 -From: Julien Cristau -Date: Mon, 8 Feb 2010 02:04:33 +0100 -Subject: [PATCH] xfree86: fix build with xv disabled - ---- - hw/xfree86/modes/xf86Crtc.c | 2 ++ - hw/xfree86/modes/xf86Crtc.h | 2 ++ - 2 files changed, 4 insertions(+), 0 deletions(-) - -diff --git a/hw/xfree86/modes/xf86Crtc.c b/hw/xfree86/modes/xf86Crtc.c -index 30b49af..62f8737 100644 ---- a/hw/xfree86/modes/xf86Crtc.c -+++ b/hw/xfree86/modes/xf86Crtc.c -@@ -3009,6 +3009,7 @@ xf86_crtc_box_area(BoxPtr box) - return (int) (box->x2 - box->x1) * (int) (box->y2 - box->y1); - } - -+#ifdef XV - /* - * Return the crtc covering 'box'. If two crtcs cover a portion of - * 'box', then prefer 'desired'. If 'desired' is NULL, then prefer the crtc -@@ -3097,6 +3098,7 @@ xf86_crtc_clip_video_helper(ScrnInfoPtr pScrn, - - return ret; - } -+#endif - - xf86_crtc_notify_proc_ptr - xf86_wrap_crtc_notify (ScreenPtr screen, xf86_crtc_notify_proc_ptr new) -diff --git a/hw/xfree86/modes/xf86Crtc.h b/hw/xfree86/modes/xf86Crtc.h -index 9baa956..2fb32c1 100644 ---- a/hw/xfree86/modes/xf86Crtc.h -+++ b/hw/xfree86/modes/xf86Crtc.h -@@ -908,6 +908,7 @@ xf86_hide_cursors (ScrnInfoPtr scrn); - extern _X_EXPORT void - xf86_cursors_fini (ScreenPtr screen); - -+#ifdef XV - /* - * For overlay video, compute the relevant CRTC and - * clip video to that. -@@ -926,6 +927,7 @@ xf86_crtc_clip_video_helper(ScrnInfoPtr pScrn, - RegionPtr reg, - INT32 width, - INT32 height); -+#endif - - extern _X_EXPORT xf86_crtc_notify_proc_ptr - xf86_wrap_crtc_notify (ScreenPtr pScreen, xf86_crtc_notify_proc_ptr new); --- -1.6.6.1 - diff --git a/packages/x11/xserver/xorg-server/patches/001_fedora_extramodes.diff b/packages/x11/xserver/xorg-server/patches/20_extra_modelines_fromxorg.diff similarity index 100% rename from packages/x11/xserver/xorg-server/patches/001_fedora_extramodes.diff rename to packages/x11/xserver/xorg-server/patches/20_extra_modelines_fromxorg.diff diff --git a/packages/x11/xserver/xorg-server/patches/xserver-1.5.0-bg-none-root.diff b/packages/x11/xserver/xorg-server/patches/xserver-1.5.0-bg-none-root.diff index 097b085a32..ae65d0be4c 100644 --- a/packages/x11/xserver/xorg-server/patches/xserver-1.5.0-bg-none-root.diff +++ b/packages/x11/xserver/xorg-server/patches/xserver-1.5.0-bg-none-root.diff @@ -1,6 +1,6 @@ -From b4e4b980663692a3af5787eeaf2d48eb6c0188ed Mon Sep 17 00:00:00 2001 -From: Fedora X Ninjas -Date: Tue, 4 Aug 2009 14:45:58 +1000 +From eff3bb9c6f0b71a57705885a3fe6e6469d252d2b Mon Sep 17 00:00:00 2001 +From: Fedora X Ninjas +Date: Wed, 20 Jan 2010 14:46:12 +1300 Subject: [PATCH] Add nr for background=none root --- @@ -25,7 +25,7 @@ index c24a94f..907a5e8 100644 int cursorScreenDevPriv[MAXSCREENS]; diff --git a/dix/window.c b/dix/window.c -index 32e26d9..0bf1d52 100644 +index caff1cb..be1d1c4 100644 --- a/dix/window.c +++ b/dix/window.c @@ -466,22 +466,24 @@ InitRootWindow(WindowPtr pWin) @@ -59,7 +59,7 @@ index 32e26d9..0bf1d52 100644 MapWindow(pWin, serverClient); } diff --git a/hw/xfree86/common/xf86Init.c b/hw/xfree86/common/xf86Init.c -index e84da4e..2a0f47a 100644 +index 6707448..776b898 100644 --- a/hw/xfree86/common/xf86Init.c +++ b/hw/xfree86/common/xf86Init.c @@ -77,6 +77,7 @@ @@ -70,7 +70,7 @@ index e84da4e..2a0f47a 100644 #include "xf86VGAarbiter.h" #include "globals.h" -@@ -234,6 +235,7 @@ xf86CreateRootWindow(WindowPtr pWin) +@@ -254,6 +255,7 @@ xf86CreateRootWindow(WindowPtr pWin) int ret = TRUE; int err = Success; ScreenPtr pScreen = pWin->drawable.pScreen; @@ -78,7 +78,7 @@ index e84da4e..2a0f47a 100644 RootWinPropPtr pProp; CreateWindowProcPtr CreateWindow = (CreateWindowProcPtr) dixLookupPrivate(&pScreen->devPrivates, xf86CreateRootWindowKey); -@@ -285,6 +287,15 @@ xf86CreateRootWindow(WindowPtr pWin) +@@ -305,6 +307,15 @@ xf86CreateRootWindow(WindowPtr pWin) } } @@ -95,10 +95,10 @@ index e84da4e..2a0f47a 100644 return (ret); } diff --git a/hw/xfree86/common/xf86str.h b/hw/xfree86/common/xf86str.h -index 5c3ee44..e3c7841 100644 +index de1f1b6..5c3aa00 100644 --- a/hw/xfree86/common/xf86str.h +++ b/hw/xfree86/common/xf86str.h -@@ -516,7 +516,7 @@ typedef struct _confdrirec { +@@ -503,7 +503,7 @@ typedef struct _confdrirec { } confDRIRec, *confDRIPtr; /* These values should be adjusted when new fields are added to ScrnInfoRec */ @@ -107,8 +107,8 @@ index 5c3ee44..e3c7841 100644 #define NUM_RESERVED_POINTERS 14 #define NUM_RESERVED_FUNCS 11 -@@ -800,6 +800,9 @@ typedef struct _ScrnInfoRec { - ClockRangesPtr clockRanges; +@@ -775,6 +775,9 @@ typedef struct _ScrnInfoRec { + ClockRangePtr clockRanges; int adjustFlags; + /* -nr support */ @@ -130,10 +130,10 @@ index b3c7c70..fcc8c95 100644 extern _X_EXPORT Bool CoreDump; diff --git a/os/utils.c b/os/utils.c -index 00abd63..7bfdf8b 100644 +index d7c8388..40583d0 100644 --- a/os/utils.c +++ b/os/utils.c -@@ -514,6 +514,7 @@ void UseMsg(void) +@@ -513,6 +513,7 @@ void UseMsg(void) #endif ErrorF("-nolisten string don't listen on protocol\n"); ErrorF("-noreset don't reset after last client exists\n"); @@ -141,7 +141,7 @@ index 00abd63..7bfdf8b 100644 ErrorF("-reset reset after last client exists\n"); ErrorF("-p # screen-saver pattern duration (minutes)\n"); ErrorF("-pn accept failure to listen on all ports\n"); -@@ -861,6 +862,8 @@ ProcessCommandLine(int argc, char *argv[]) +@@ -856,6 +857,8 @@ ProcessCommandLine(int argc, char *argv[]) defaultBackingStore = WhenMapped; else if ( strcmp( argv[i], "-wr") == 0) whiteRoot = TRUE; @@ -151,5 +151,5 @@ index 00abd63..7bfdf8b 100644 if(++i < argc) { long reqSizeArg = atol(argv[i]); -- -1.6.0.6 +1.6.6 diff --git a/packages/x11/xserver/xorg-server/patches/xserver-boottime.diff b/packages/x11/xserver/xorg-server/patches/xserver-boottime.diff deleted file mode 100644 index efc85a42ab..0000000000 --- a/packages/x11/xserver/xorg-server/patches/xserver-boottime.diff +++ /dev/null @@ -1,38 +0,0 @@ -diff --git a/os/log.c b/os/log.c -index 0860847..2c46f1a 100644 ---- a/os/log.c -+++ b/os/log.c -@@ -255,6 +255,33 @@ LogVWrite(int verb, const char *f, va_list args) - static char tmpBuffer[1024]; - int len = 0; - -+ struct timeval time; -+ time_t tv_sec; -+ suseconds_t tv_usec; -+ static Bool first = TRUE; -+ static time_t start_tv_sec; -+ static suseconds_t start_usec; -+ int diff_sec, diff_usec; -+ -+ gettimeofday(&time, NULL); -+ tv_sec = time.tv_sec; -+ tv_usec = time.tv_usec; -+ if (first == TRUE) { -+ start_tv_sec = tv_sec; -+ start_usec = tv_usec; -+ first = FALSE; -+ } -+ diff_sec = (int)difftime(tv_sec, start_tv_sec); -+ diff_usec = (tv_usec - start_usec); -+ if (diff_usec < 0) { -+ diff_sec--; -+ diff_usec += 1000000; -+ } -+ sprintf(tmpBuffer, "[%d sec: %06d usec]", diff_sec , diff_usec); -+ len = strlen(tmpBuffer); -+ if (logFile) -+ fwrite(tmpBuffer, len, 1, logFile); -+ - /* - * Since a va_list can only be processed once, write the string to a - * buffer, and then write the buffer out to the appropriate output From 825fbbe4a1c028ef1810323f969a0643e2fa14e3 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Fri, 19 Mar 2010 13:47:04 +0100 Subject: [PATCH 016/320] xorg-server: - update to xorg-server-20100318 --- packages/x11/xserver/xorg-server/url | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/x11/xserver/xorg-server/url b/packages/x11/xserver/xorg-server/url index e2b23b6bdc..d611943c45 100644 --- a/packages/x11/xserver/xorg-server/url +++ b/packages/x11/xserver/xorg-server/url @@ -1 +1 @@ -http://sources.openelec.tv/svn/xorg-server-20100309.tar.bz2 +http://sources.openelec.tv/svn/xorg-server-20100318.tar.bz2 From 04753344e3be3ebc52f5fd3b0811a7630747df3f Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Fri, 19 Mar 2010 13:47:45 +0100 Subject: [PATCH 017/320] xorg-server: - dont build with libXv and xf86bigfontproto --- packages/x11/xserver/xorg-server/build | 2 -- packages/x11/xserver/xorg-server/install | 1 - 2 files changed, 3 deletions(-) diff --git a/packages/x11/xserver/xorg-server/build b/packages/x11/xserver/xorg-server/build index bb06faf44d..8dd38322e5 100755 --- a/packages/x11/xserver/xorg-server/build +++ b/packages/x11/xserver/xorg-server/build @@ -20,7 +20,6 @@ $SCRIPTS/build libpciaccess $SCRIPTS/build libX11 $SCRIPTS/build libXfont $SCRIPTS/build libxkbfile -$SCRIPTS/build libXv $SCRIPTS/build libdrm $SCRIPTS/build Mesa $SCRIPTS/build openssl @@ -28,7 +27,6 @@ $SCRIPTS/build freetype $SCRIPTS/build libfontenc $SCRIPTS/build pixman $SCRIPTS/build fontsproto -$SCRIPTS/build xf86bigfontproto $SCRIPTS/build udev if [ "$XINERAMA_SUPPORT" = "yes" ]; then diff --git a/packages/x11/xserver/xorg-server/install b/packages/x11/xserver/xorg-server/install index 2b968422fe..6919cd49fb 100755 --- a/packages/x11/xserver/xorg-server/install +++ b/packages/x11/xserver/xorg-server/install @@ -9,7 +9,6 @@ $SCRIPTS/install freetype $SCRIPTS/install openssl $SCRIPTS/install libX11 $SCRIPTS/install libXfont -$SCRIPTS/install libXv $SCRIPTS/install libdrm $SCRIPTS/install Mesa $SCRIPTS/install pixman From 57e86e0d38fe0e9f155311d203e35d9c42712b52 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Fri, 19 Mar 2010 13:48:03 +0100 Subject: [PATCH 018/320] libXv: - remove package --- packages/x11/lib/libXv/build | 22 ---------------------- packages/x11/lib/libXv/install | 9 --------- packages/x11/lib/libXv/url | 1 - 3 files changed, 32 deletions(-) delete mode 100755 packages/x11/lib/libXv/build delete mode 100755 packages/x11/lib/libXv/install delete mode 100644 packages/x11/lib/libXv/url diff --git a/packages/x11/lib/libXv/build b/packages/x11/lib/libXv/build deleted file mode 100755 index 2fb40a6535..0000000000 --- a/packages/x11/lib/libXv/build +++ /dev/null @@ -1,22 +0,0 @@ -#!/bin/sh - -. config/options - -$SCRIPTS/build toolchain -$SCRIPTS/build videoproto -$SCRIPTS/build libX11 -$SCRIPTS/build libXext - -cd $PKG_BUILD -./configure --host=$TARGET_NAME \ - --build=$HOST_NAME \ - --prefix=/usr \ - --sysconfdir=/etc \ - --localstatedir=/var \ - --disable-static \ - --enable-shared \ - --enable-malloc0returnsnull - -$MAKE - -$MAKEINSTALL \ No newline at end of file diff --git a/packages/x11/lib/libXv/install b/packages/x11/lib/libXv/install deleted file mode 100755 index e64f759591..0000000000 --- a/packages/x11/lib/libXv/install +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/sh - -. config/options - -$SCRIPTS/install libX11 -$SCRIPTS/install libXext - -mkdir -p $INSTALL/usr/lib -cp -PR $PKG_BUILD/src/.libs/libXv.so* $INSTALL/usr/lib diff --git a/packages/x11/lib/libXv/url b/packages/x11/lib/libXv/url deleted file mode 100644 index 684639d92a..0000000000 --- a/packages/x11/lib/libXv/url +++ /dev/null @@ -1 +0,0 @@ -http://xorg.freedesktop.org/archive/individual/lib/libXv-1.0.5.tar.bz2 \ No newline at end of file From 656e57980ea34654f8d3e2e0c118f36d4c74484e Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Fri, 19 Mar 2010 13:48:28 +0100 Subject: [PATCH 019/320] xf86bigfontproto: - remove package --- packages/x11/proto/xf86bigfontproto/build | 15 --------------- packages/x11/proto/xf86bigfontproto/url | 1 - 2 files changed, 16 deletions(-) delete mode 100755 packages/x11/proto/xf86bigfontproto/build delete mode 100644 packages/x11/proto/xf86bigfontproto/url diff --git a/packages/x11/proto/xf86bigfontproto/build b/packages/x11/proto/xf86bigfontproto/build deleted file mode 100755 index 61467203fa..0000000000 --- a/packages/x11/proto/xf86bigfontproto/build +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/sh - -. config/options - -$SCRIPTS/build toolchain - -cd $PKG_BUILD -./configure --host=$TARGET_NAME \ - --build=$HOST_NAME \ - --prefix=/usr \ - --sysconfdir=/etc \ - -make - -$MAKEINSTALL diff --git a/packages/x11/proto/xf86bigfontproto/url b/packages/x11/proto/xf86bigfontproto/url deleted file mode 100644 index 62905892af..0000000000 --- a/packages/x11/proto/xf86bigfontproto/url +++ /dev/null @@ -1 +0,0 @@ -http://xorg.freedesktop.org/archive/individual/proto/xf86bigfontproto-1.2.0.tar.bz2 \ No newline at end of file From 08ddafea37eae6c9191a45dc5bff6c8d729772fb Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Sat, 20 Mar 2010 02:17:48 +0100 Subject: [PATCH 020/320] glib: - update to glib-2.23.5 --- .../glib-2.23.5-fix_compiling-0.3.diff | 70 +++++++++++++++++++ .../devel/glib/patches/glib-i386-atomic.diff | 15 ---- packages/devel/glib/url | 2 +- 3 files changed, 71 insertions(+), 16 deletions(-) create mode 100644 packages/devel/glib/patches/glib-2.23.5-fix_compiling-0.3.diff delete mode 100644 packages/devel/glib/patches/glib-i386-atomic.diff diff --git a/packages/devel/glib/patches/glib-2.23.5-fix_compiling-0.3.diff b/packages/devel/glib/patches/glib-2.23.5-fix_compiling-0.3.diff new file mode 100644 index 0000000000..8e81ba0f28 --- /dev/null +++ b/packages/devel/glib/patches/glib-2.23.5-fix_compiling-0.3.diff @@ -0,0 +1,70 @@ +diff -Naur glib-2.23.5/gio/Makefile.am glib-2.23.5.patch/gio/Makefile.am +--- glib-2.23.5/gio/Makefile.am 2010-03-06 17:51:40.000000000 +0100 ++++ glib-2.23.5.patch/gio/Makefile.am 2010-03-09 09:38:50.205664589 +0100 +@@ -466,6 +466,7 @@ + $(top_builddir)/glib/libglib-2.0.la \ + $(top_builddir)/gobject/libgobject-2.0.la \ + $(top_builddir)/gmodule/libgmodule-2.0.la \ ++ $(top_builddir)/gthread/libgthread-2.0.la \ + libgio-2.0.la \ + $(NULL) + +diff -Naur glib-2.23.5/gio/Makefile.in glib-2.23.5.patch/gio/Makefile.in +--- glib-2.23.5/gio/Makefile.in 2010-03-08 16:35:06.000000000 +0100 ++++ glib-2.23.5.patch/gio/Makefile.in 2010-03-09 09:39:16.717664516 +0100 +@@ -824,6 +824,7 @@ + $(top_builddir)/glib/libglib-2.0.la \ + $(top_builddir)/gobject/libgobject-2.0.la \ + $(top_builddir)/gmodule/libgmodule-2.0.la \ ++ $(top_builddir)/gthread/libgthread-2.0.la \ + libgio-2.0.la \ + $(NULL) + +diff -Naur glib-2.23.5/gio/tests/Makefile.am glib-2.23.5.patch/gio/tests/Makefile.am +--- glib-2.23.5/gio/tests/Makefile.am 2010-03-06 17:51:40.000000000 +0100 ++++ glib-2.23.5.patch/gio/tests/Makefile.am 2010-03-09 09:39:44.816664472 +0100 +@@ -14,6 +14,8 @@ + progs_ldadd = \ + $(top_builddir)/glib/libglib-2.0.la \ + $(top_builddir)/gobject/libgobject-2.0.la \ ++ $(top_builddir)/gmodule/libgmodule-2.0.la \ ++ $(top_builddir)/gthread/libgthread-2.0.la \ + $(top_builddir)/gio/libgio-2.0.la + + +diff -Naur glib-2.23.5/gio/tests/Makefile.in glib-2.23.5.patch/gio/tests/Makefile.in +--- glib-2.23.5/gio/tests/Makefile.in 2010-03-08 16:35:07.000000000 +0100 ++++ glib-2.23.5.patch/gio/tests/Makefile.in 2010-03-09 09:40:11.250664543 +0100 +@@ -448,6 +448,8 @@ + progs_ldadd = \ + $(top_builddir)/glib/libglib-2.0.la \ + $(top_builddir)/gobject/libgobject-2.0.la \ ++ $(top_builddir)/gmodule/libgmodule-2.0.la \ ++ $(top_builddir)/gthread/libgthread-2.0.la \ + $(top_builddir)/gio/libgio-2.0.la + + SAMPLE_PROGS = \ +diff -Naur glib-2.23.5/tests/Makefile.am glib-2.23.5.patch/tests/Makefile.am +--- glib-2.23.5/tests/Makefile.am 2010-01-22 03:57:55.000000000 +0100 ++++ glib-2.23.5.patch/tests/Makefile.am 2010-03-09 09:36:39.805664621 +0100 +@@ -86,7 +86,7 @@ + assert_msg_test_LDADD = $(libglib) + if ENABLE_TIMELOOP + timeloop_LDADD = $(libglib) +-timeloop_closure_LDADD = $(libglib) $(libgobject) ++timeloop_closure_LDADD = $(libglib) $(libgobject) $(libgthread) + endif + + test_programs = \ +diff -Naur glib-2.23.5/tests/Makefile.in glib-2.23.5.patch/tests/Makefile.in +--- glib-2.23.5/tests/Makefile.in 2010-03-08 16:35:08.000000000 +0100 ++++ glib-2.23.5.patch/tests/Makefile.in 2010-03-09 09:37:22.598664379 +0100 +@@ -692,7 +692,7 @@ + errorcheck_mutex_test_LDADD = $(libglib) $(libgthread) $(G_THREAD_LIBS) + assert_msg_test_LDADD = $(libglib) + @ENABLE_TIMELOOP_TRUE@timeloop_LDADD = $(libglib) +-@ENABLE_TIMELOOP_TRUE@timeloop_closure_LDADD = $(libglib) $(libgobject) ++@ENABLE_TIMELOOP_TRUE@timeloop_closure_LDADD = $(libglib) $(libgobject) $(libgthread) + test_programs = \ + atomic-test \ + base64-test \ diff --git a/packages/devel/glib/patches/glib-i386-atomic.diff b/packages/devel/glib/patches/glib-i386-atomic.diff deleted file mode 100644 index 01495c0070..0000000000 --- a/packages/devel/glib/patches/glib-i386-atomic.diff +++ /dev/null @@ -1,15 +0,0 @@ -diff -up glib-2.16.6/configure.atomic glib-2.16.6/configure ---- glib-2.16.6/configure.atomic 2008-10-27 18:24:20.000000000 -0400 -+++ glib-2.16.6/configure 2008-10-27 18:24:31.000000000 -0400 -@@ -42742,11 +42742,6 @@ $as_echo_n "checking whether to use asse - - if test x"$GCC" = xyes; then - case $host_cpu in -- i386) -- { $as_echo "$as_me:$LINENO: result: none" >&5 --$as_echo "none" >&6; } -- glib_memory_barrier_needed=no -- ;; - i?86) - { $as_echo "$as_me:$LINENO: result: i486" >&5 - $as_echo "i486" >&6; } diff --git a/packages/devel/glib/url b/packages/devel/glib/url index 1313421652..9c5b1fe999 100644 --- a/packages/devel/glib/url +++ b/packages/devel/glib/url @@ -1 +1 @@ -http://ftp.gnome.org/pub/GNOME/sources/glib/2.23/glib-2.23.1.tar.bz2 +http://ftp.gnome.org/pub/GNOME/sources/glib/2.23/glib-2.23.5.tar.bz2 From 65dfa404644a6a54361970394b9202cd617957c6 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Sat, 20 Mar 2010 02:18:22 +0100 Subject: [PATCH 021/320] xbmc: - add patch to fix build with glib-2.23.x --- .../patches/xbmc-undef_byte_for_glib-2.23.x-0.1.diff | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 packages/mediacenter/xbmc/patches/xbmc-undef_byte_for_glib-2.23.x-0.1.diff diff --git a/packages/mediacenter/xbmc/patches/xbmc-undef_byte_for_glib-2.23.x-0.1.diff b/packages/mediacenter/xbmc/patches/xbmc-undef_byte_for_glib-2.23.x-0.1.diff new file mode 100644 index 0000000000..0b72e14a70 --- /dev/null +++ b/packages/mediacenter/xbmc/patches/xbmc-undef_byte_for_glib-2.23.x-0.1.diff @@ -0,0 +1,11 @@ +diff -Naur xbmc-28622/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamMMS.cpp xbmc-28622.patch/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamMMS.cpp +--- xbmc-28622/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamMMS.cpp 2010-03-17 20:11:42.000000000 +0100 ++++ xbmc-28622.patch/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamMMS.cpp 2010-03-19 04:04:41.074751644 +0100 +@@ -35,6 +35,7 @@ + // some distros have already patched this but upstream @ https://launchpad.net/libmms + // does still has the "this" usage. + #define this instance ++#undef byte + #include // FIXME: remove this header once the ubuntu headers is fixed (variable named this) + #include + #include From 97cd12b9225666b90b3e8b60cf5ee24981f74b2f Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Sat, 20 Mar 2010 02:21:45 +0100 Subject: [PATCH 022/320] glib: - downgrade to glib-2.23.1 --- .../glib-2.23.5-fix_compiling-0.3.diff | 70 ------------------- .../devel/glib/patches/glib-i386-atomic.diff | 15 ++++ packages/devel/glib/url | 2 +- 3 files changed, 16 insertions(+), 71 deletions(-) delete mode 100644 packages/devel/glib/patches/glib-2.23.5-fix_compiling-0.3.diff create mode 100644 packages/devel/glib/patches/glib-i386-atomic.diff diff --git a/packages/devel/glib/patches/glib-2.23.5-fix_compiling-0.3.diff b/packages/devel/glib/patches/glib-2.23.5-fix_compiling-0.3.diff deleted file mode 100644 index 8e81ba0f28..0000000000 --- a/packages/devel/glib/patches/glib-2.23.5-fix_compiling-0.3.diff +++ /dev/null @@ -1,70 +0,0 @@ -diff -Naur glib-2.23.5/gio/Makefile.am glib-2.23.5.patch/gio/Makefile.am ---- glib-2.23.5/gio/Makefile.am 2010-03-06 17:51:40.000000000 +0100 -+++ glib-2.23.5.patch/gio/Makefile.am 2010-03-09 09:38:50.205664589 +0100 -@@ -466,6 +466,7 @@ - $(top_builddir)/glib/libglib-2.0.la \ - $(top_builddir)/gobject/libgobject-2.0.la \ - $(top_builddir)/gmodule/libgmodule-2.0.la \ -+ $(top_builddir)/gthread/libgthread-2.0.la \ - libgio-2.0.la \ - $(NULL) - -diff -Naur glib-2.23.5/gio/Makefile.in glib-2.23.5.patch/gio/Makefile.in ---- glib-2.23.5/gio/Makefile.in 2010-03-08 16:35:06.000000000 +0100 -+++ glib-2.23.5.patch/gio/Makefile.in 2010-03-09 09:39:16.717664516 +0100 -@@ -824,6 +824,7 @@ - $(top_builddir)/glib/libglib-2.0.la \ - $(top_builddir)/gobject/libgobject-2.0.la \ - $(top_builddir)/gmodule/libgmodule-2.0.la \ -+ $(top_builddir)/gthread/libgthread-2.0.la \ - libgio-2.0.la \ - $(NULL) - -diff -Naur glib-2.23.5/gio/tests/Makefile.am glib-2.23.5.patch/gio/tests/Makefile.am ---- glib-2.23.5/gio/tests/Makefile.am 2010-03-06 17:51:40.000000000 +0100 -+++ glib-2.23.5.patch/gio/tests/Makefile.am 2010-03-09 09:39:44.816664472 +0100 -@@ -14,6 +14,8 @@ - progs_ldadd = \ - $(top_builddir)/glib/libglib-2.0.la \ - $(top_builddir)/gobject/libgobject-2.0.la \ -+ $(top_builddir)/gmodule/libgmodule-2.0.la \ -+ $(top_builddir)/gthread/libgthread-2.0.la \ - $(top_builddir)/gio/libgio-2.0.la - - -diff -Naur glib-2.23.5/gio/tests/Makefile.in glib-2.23.5.patch/gio/tests/Makefile.in ---- glib-2.23.5/gio/tests/Makefile.in 2010-03-08 16:35:07.000000000 +0100 -+++ glib-2.23.5.patch/gio/tests/Makefile.in 2010-03-09 09:40:11.250664543 +0100 -@@ -448,6 +448,8 @@ - progs_ldadd = \ - $(top_builddir)/glib/libglib-2.0.la \ - $(top_builddir)/gobject/libgobject-2.0.la \ -+ $(top_builddir)/gmodule/libgmodule-2.0.la \ -+ $(top_builddir)/gthread/libgthread-2.0.la \ - $(top_builddir)/gio/libgio-2.0.la - - SAMPLE_PROGS = \ -diff -Naur glib-2.23.5/tests/Makefile.am glib-2.23.5.patch/tests/Makefile.am ---- glib-2.23.5/tests/Makefile.am 2010-01-22 03:57:55.000000000 +0100 -+++ glib-2.23.5.patch/tests/Makefile.am 2010-03-09 09:36:39.805664621 +0100 -@@ -86,7 +86,7 @@ - assert_msg_test_LDADD = $(libglib) - if ENABLE_TIMELOOP - timeloop_LDADD = $(libglib) --timeloop_closure_LDADD = $(libglib) $(libgobject) -+timeloop_closure_LDADD = $(libglib) $(libgobject) $(libgthread) - endif - - test_programs = \ -diff -Naur glib-2.23.5/tests/Makefile.in glib-2.23.5.patch/tests/Makefile.in ---- glib-2.23.5/tests/Makefile.in 2010-03-08 16:35:08.000000000 +0100 -+++ glib-2.23.5.patch/tests/Makefile.in 2010-03-09 09:37:22.598664379 +0100 -@@ -692,7 +692,7 @@ - errorcheck_mutex_test_LDADD = $(libglib) $(libgthread) $(G_THREAD_LIBS) - assert_msg_test_LDADD = $(libglib) - @ENABLE_TIMELOOP_TRUE@timeloop_LDADD = $(libglib) --@ENABLE_TIMELOOP_TRUE@timeloop_closure_LDADD = $(libglib) $(libgobject) -+@ENABLE_TIMELOOP_TRUE@timeloop_closure_LDADD = $(libglib) $(libgobject) $(libgthread) - test_programs = \ - atomic-test \ - base64-test \ diff --git a/packages/devel/glib/patches/glib-i386-atomic.diff b/packages/devel/glib/patches/glib-i386-atomic.diff new file mode 100644 index 0000000000..01495c0070 --- /dev/null +++ b/packages/devel/glib/patches/glib-i386-atomic.diff @@ -0,0 +1,15 @@ +diff -up glib-2.16.6/configure.atomic glib-2.16.6/configure +--- glib-2.16.6/configure.atomic 2008-10-27 18:24:20.000000000 -0400 ++++ glib-2.16.6/configure 2008-10-27 18:24:31.000000000 -0400 +@@ -42742,11 +42742,6 @@ $as_echo_n "checking whether to use asse + + if test x"$GCC" = xyes; then + case $host_cpu in +- i386) +- { $as_echo "$as_me:$LINENO: result: none" >&5 +-$as_echo "none" >&6; } +- glib_memory_barrier_needed=no +- ;; + i?86) + { $as_echo "$as_me:$LINENO: result: i486" >&5 + $as_echo "i486" >&6; } diff --git a/packages/devel/glib/url b/packages/devel/glib/url index 9c5b1fe999..1313421652 100644 --- a/packages/devel/glib/url +++ b/packages/devel/glib/url @@ -1 +1 @@ -http://ftp.gnome.org/pub/GNOME/sources/glib/2.23/glib-2.23.5.tar.bz2 +http://ftp.gnome.org/pub/GNOME/sources/glib/2.23/glib-2.23.1.tar.bz2 From d9bab33d1366ed102287cbd61d2c86b42a34bd0e Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Sat, 20 Mar 2010 02:22:14 +0100 Subject: [PATCH 023/320] xbmc: - remove patch to fix build with glib-2.23.x --- .../patches/xbmc-undef_byte_for_glib-2.23.x-0.1.diff | 11 ----------- 1 file changed, 11 deletions(-) delete mode 100644 packages/mediacenter/xbmc/patches/xbmc-undef_byte_for_glib-2.23.x-0.1.diff diff --git a/packages/mediacenter/xbmc/patches/xbmc-undef_byte_for_glib-2.23.x-0.1.diff b/packages/mediacenter/xbmc/patches/xbmc-undef_byte_for_glib-2.23.x-0.1.diff deleted file mode 100644 index 0b72e14a70..0000000000 --- a/packages/mediacenter/xbmc/patches/xbmc-undef_byte_for_glib-2.23.x-0.1.diff +++ /dev/null @@ -1,11 +0,0 @@ -diff -Naur xbmc-28622/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamMMS.cpp xbmc-28622.patch/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamMMS.cpp ---- xbmc-28622/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamMMS.cpp 2010-03-17 20:11:42.000000000 +0100 -+++ xbmc-28622.patch/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamMMS.cpp 2010-03-19 04:04:41.074751644 +0100 -@@ -35,6 +35,7 @@ - // some distros have already patched this but upstream @ https://launchpad.net/libmms - // does still has the "this" usage. - #define this instance -+#undef byte - #include // FIXME: remove this header once the ubuntu headers is fixed (variable named this) - #include - #include From 8f1adb5331dd9e16e24bac3b4bf0e84d06fcbed4 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Sat, 20 Mar 2010 02:22:41 +0100 Subject: [PATCH 024/320] xf86-video-ati: - dont build libXv (not needed) --- packages/x11/driver/xf86-video-ati/build | 1 - packages/x11/driver/xf86-video-ati/install | 1 - 2 files changed, 2 deletions(-) diff --git a/packages/x11/driver/xf86-video-ati/build b/packages/x11/driver/xf86-video-ati/build index 1103f17d27..e1d39221bf 100755 --- a/packages/x11/driver/xf86-video-ati/build +++ b/packages/x11/driver/xf86-video-ati/build @@ -5,7 +5,6 @@ $SCRIPTS/build toolchain $SCRIPTS/build libXrandr $SCRIPTS/build libXrender -$SCRIPTS/build libXv $SCRIPTS/build libXext $SCRIPTS/build libpciaccess $SCRIPTS/build libdrm diff --git a/packages/x11/driver/xf86-video-ati/install b/packages/x11/driver/xf86-video-ati/install index 1f4b9c1dda..b8559a77ba 100755 --- a/packages/x11/driver/xf86-video-ati/install +++ b/packages/x11/driver/xf86-video-ati/install @@ -4,7 +4,6 @@ $SCRIPTS/install libXrandr $SCRIPTS/install libXrender -$SCRIPTS/install libXv $SCRIPTS/install libXext $SCRIPTS/install libpciaccess $SCRIPTS/install libdrm From a03225e6aa880af931d21668089cd03736d7fb44 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Sat, 20 Mar 2010 12:42:47 +0100 Subject: [PATCH 025/320] cmake: - add cmake config file for host and target build - cosmetics --- config/path | 8 ++++ packages/toolchain/devel/cmake/install | 54 +++++++++++++++++++++++--- 2 files changed, 57 insertions(+), 5 deletions(-) diff --git a/config/path b/config/path index 594d46a366..11f70592ee 100644 --- a/config/path +++ b/config/path @@ -162,6 +162,10 @@ setup_toolchain() { export CXXFLAGS="$TARGET_CXXFLAGS" export LDFLAGS="$TARGET_LDFLAGS" export PKG_CONFIG_PATH="$TARGET_PKG_CONFIG_PATH" + +# set CMAKE configfile for target + export CMAKE_CONF=$ROOT/$TOOLCHAIN/etc/cmake-$TARGET_NAME.conf + elif [ "$1" = host ]; then export AWK=$HOST_AWK export CC=$HOST_CC @@ -178,6 +182,10 @@ setup_toolchain() { export CXXFLAGS="$HOST_CXXFLAGS" export LDFLAGS="$HOST_LDFLAGS" export PKG_CONFIG_PATH="$HOST_PKG_CONFIG_PATH" + +# set CMAKE configfile for host + export CMAKE_CONF=$ROOT/$TOOLCHAIN/etc/cmake-$HOST_NAME.conf + fi } setup_toolchain target diff --git a/packages/toolchain/devel/cmake/install b/packages/toolchain/devel/cmake/install index 25e8e0187a..7c91165e18 100755 --- a/packages/toolchain/devel/cmake/install +++ b/packages/toolchain/devel/cmake/install @@ -2,9 +2,53 @@ . config/options -cp $PKG_BUILD/bin/cmake \ - $PKG_BUILD/bin/cpack \ - $PKG_BUILD/bin/ctest \ - $ROOT/$TOOLCHAIN/bin +mkdir -p $ROOT/$TOOLCHAIN/bin + cp -P $PKG_BUILD/bin/cmake $ROOT/$TOOLCHAIN/bin + cp -P $PKG_BUILD/bin/cpack $ROOT/$TOOLCHAIN/bin + cp -P $PKG_BUILD/bin/ctest $ROOT/$TOOLCHAIN/bin -# $PKG_BUILD/bin/ccmake \ +mkdir -p $ROOT/$TOOLCHAIN/etc + + cat >$ROOT/$TOOLCHAIN/etc/cmake-$TARGET_NAME.conf <$ROOT/$TOOLCHAIN/etc/cmake-$HOST_NAME.conf < Date: Sat, 20 Mar 2010 12:43:23 +0100 Subject: [PATCH 026/320] new package: - add package libssh for newer xbmc --- packages/network/libssh/build | 19 +++++++++++++++++++ packages/network/libssh/install | 9 +++++++++ packages/network/libssh/url | 1 + 3 files changed, 29 insertions(+) create mode 100755 packages/network/libssh/build create mode 100755 packages/network/libssh/install create mode 100644 packages/network/libssh/url diff --git a/packages/network/libssh/build b/packages/network/libssh/build new file mode 100755 index 0000000000..82d9ebef64 --- /dev/null +++ b/packages/network/libssh/build @@ -0,0 +1,19 @@ +#!/bin/sh + +. config/options + +$SCRIPTS/build toolchain +$SCRIPTS/build zlib +$SCRIPTS/build openssl + +cd $PKG_BUILD +mkdir -p build +cd build + +cmake -DCMAKE_TOOLCHAIN_FILE=$CMAKE_CONF \ + -DCMAKE_INSTALL_PREFIX=/usr \ + .. + +make + +$MAKEINSTALL diff --git a/packages/network/libssh/install b/packages/network/libssh/install new file mode 100755 index 0000000000..86ed31d8f8 --- /dev/null +++ b/packages/network/libssh/install @@ -0,0 +1,9 @@ +#!/bin/sh + +. config/options + +$SCRIPTS/install zlib +$SCRIPTS/install openssl + +mkdir -p $INSTALL/usr/lib + cp -P $PKG_BUILD/build/libssh/*.so* $INSTALL/usr/lib diff --git a/packages/network/libssh/url b/packages/network/libssh/url new file mode 100644 index 0000000000..cf97e70192 --- /dev/null +++ b/packages/network/libssh/url @@ -0,0 +1 @@ +http://www.libssh.org/files/libssh-0.4.2.tar.gz \ No newline at end of file From d2ce315df01d87e217223e6a2163aa0ae7a3276b Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Sat, 20 Mar 2010 12:43:43 +0100 Subject: [PATCH 027/320] xbmc: - build with libssh support --- packages/mediacenter/xbmc/build | 1 + packages/mediacenter/xbmc/install | 1 + 2 files changed, 2 insertions(+) diff --git a/packages/mediacenter/xbmc/build b/packages/mediacenter/xbmc/build index 337ae9b0ff..b1cde99c34 100755 --- a/packages/mediacenter/xbmc/build +++ b/packages/mediacenter/xbmc/build @@ -14,6 +14,7 @@ $SCRIPTS/build alsa-lib $SCRIPTS/build enca $SCRIPTS/build curl $SCRIPTS/build libmicrohttpd +$SCRIPTS/build libssh $SCRIPTS/build dbus $SCRIPTS/build hal diff --git a/packages/mediacenter/xbmc/install b/packages/mediacenter/xbmc/install index c57d1064cd..6a1e4c105a 100755 --- a/packages/mediacenter/xbmc/install +++ b/packages/mediacenter/xbmc/install @@ -12,6 +12,7 @@ $SCRIPTS/install alsa-lib $SCRIPTS/install enca $SCRIPTS/install curl $SCRIPTS/install libmicrohttpd +$SCRIPTS/install libssh $SCRIPTS/install dbus $SCRIPTS/install hal From f085b39de8df29b18097e4e809eb7181f02f945d Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Tue, 23 Mar 2010 05:11:22 +0100 Subject: [PATCH 028/320] xbmc: - update to xbmc-28745 --- packages/mediacenter/xbmc/build | 2 + ...d_host_and_build_to_configures-0.3.1.diff} | 85 +++++++++++++++---- .../091-xbmc-enable_yasm_in_ffmpeg-0.1.diff | 22 ++--- .../xbmc-undef_byte_for_glib-2.23.x-0.1.diff | 11 --- packages/mediacenter/xbmc/url | 2 +- 5 files changed, 81 insertions(+), 41 deletions(-) rename packages/mediacenter/xbmc/patches/{010_xbmc-crosscompile_add_host_and_build_to_configures-0.2.1.diff => 010_xbmc-crosscompile_add_host_and_build_to_configures-0.3.1.diff} (62%) delete mode 100644 packages/mediacenter/xbmc/patches/xbmc-undef_byte_for_glib-2.23.x-0.1.diff diff --git a/packages/mediacenter/xbmc/build b/packages/mediacenter/xbmc/build index b1cde99c34..00673e71bc 100755 --- a/packages/mediacenter/xbmc/build +++ b/packages/mediacenter/xbmc/build @@ -91,6 +91,8 @@ cd - ./bootstrap ./configure --host=$TARGET_NAME \ --build=$HOST_NAME \ + --with-arch=$TARGET_ARCH \ + --with-cpu=$TARGET_CPU \ --prefix=/usr \ --exec-prefix=/usr \ --sysconfdir=/etc \ diff --git a/packages/mediacenter/xbmc/patches/010_xbmc-crosscompile_add_host_and_build_to_configures-0.2.1.diff b/packages/mediacenter/xbmc/patches/010_xbmc-crosscompile_add_host_and_build_to_configures-0.3.1.diff similarity index 62% rename from packages/mediacenter/xbmc/patches/010_xbmc-crosscompile_add_host_and_build_to_configures-0.2.1.diff rename to packages/mediacenter/xbmc/patches/010_xbmc-crosscompile_add_host_and_build_to_configures-0.3.1.diff index 033babe263..24e5fb71f2 100644 --- a/packages/mediacenter/xbmc/patches/010_xbmc-crosscompile_add_host_and_build_to_configures-0.2.1.diff +++ b/packages/mediacenter/xbmc/patches/010_xbmc-crosscompile_add_host_and_build_to_configures-0.3.1.diff @@ -1,7 +1,53 @@ -diff -Naur xbmc-28584/configure.in xbmc-28584.patch/configure.in ---- xbmc-28584/configure.in 2010-03-14 21:06:24.000000000 +0100 -+++ xbmc-28584.patch/configure.in 2010-03-15 00:50:53.680149619 +0100 -@@ -1154,7 +1154,9 @@ +diff -Naur xbmc-28745/configure.in xbmc-28745.patch/configure.in +--- xbmc-28745/configure.in 2010-03-22 06:50:58.000000000 +0100 ++++ xbmc-28745.patch/configure.in 2010-03-22 13:17:49.917999744 +0100 +@@ -24,6 +24,10 @@ + + AC_CANONICAL_HOST + ++tolower(){ ++ echo "$@" | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz ++} ++ + # General message strings + configure_debug="ERROR: this is a configure debug statement" + missing_library="Could not find a required library. Please see the README for your platform." +@@ -102,6 +106,18 @@ + [use_debug=$enableval], + [use_debug=yes]) + ++AC_ARG_WITH([arch], ++ [AS_HELP_STRING([--with-arch], ++ [build with given arch passing to internal ffmpeg (default is no, needed for crosscompiling)])], ++ [use_arch=$withval], ++ [use_arch=no]) ++ ++AC_ARG_WITH([cpu], ++ [AS_HELP_STRING([--with-cpu], ++ [build with given cpu passing to ffmpeg (default is no)])], ++ [use_cpu=$withval], ++ [use_cpu=no]) ++ + AC_ARG_ENABLE([optimizations], + [AS_HELP_STRING([--enable-optimizations], + [enable optimization (default is yes)])], +@@ -805,6 +821,15 @@ + fi + fi + ++if test "$cross_compiling" = "yes"; then ++ final_message="$final_message\n Crosscomp.:\tYes" ++else ++ final_message="$final_message\n Crosscomp.:\tNo" ++fi ++ ++final_message="$final_message\n target ARCH:\t$use_arch" ++final_message="$final_message\n target CPU:\t$use_cpu" ++ + if test "$use_optimizations" = "yes"; then + final_message="$final_message\n Optimization:\tYes" + CXXFLAGS="$CXXFLAGS -O2" +@@ -1154,7 +1179,9 @@ cp pyconfig.h Include else ./configure \ @@ -12,15 +58,18 @@ diff -Naur xbmc-28584/configure.in xbmc-28584.patch/configure.in --enable-unicode=ucs4 \ --without-cxx \ --enable-shared \ -@@ -1219,6 +1221,7 @@ +@@ -1217,6 +1244,10 @@ + ./configure \ --disable-static \ - --disable-ipv6 \ `if test "$use_debug" = "no"; then echo --disable-debug; fi` \ + `if test "$cross_compiling" = "yes"; then echo --enable-cross-compile; fi` \ ++ `if test "$use_arch" != "no"; then echo --arch=$use_arch; fi`\ ++ `if test "$use_cpu" != "no"; then echo --cpu=$use_cpu; fi`\ ++ --target-os=$(tolower $(uname -s)) \ --disable-muxers \ --enable-muxer=spdif \ --enable-muxer=adts \ -@@ -1235,6 +1238,7 @@ +@@ -1233,6 +1264,7 @@ --enable-postproc \ --enable-gpl \ `if test "$use_vdpau" = "yes"; then echo --enable-vdpau; else echo --disable-vdpau; fi` \ @@ -28,7 +77,7 @@ diff -Naur xbmc-28584/configure.in xbmc-28584.patch/configure.in --enable-libfaad \ --enable-protocol=http \ --enable-pthreads \ -@@ -1254,6 +1258,8 @@ +@@ -1252,6 +1284,8 @@ --disable-win else ./configure \ @@ -37,7 +86,7 @@ diff -Naur xbmc-28584/configure.in xbmc-28584.patch/configure.in --disable-oss \ --disable-solaris-audio \ --disable-al-audio \ -@@ -1271,6 +1277,8 @@ +@@ -1269,6 +1303,8 @@ --with-pic else ./configure \ @@ -46,7 +95,7 @@ diff -Naur xbmc-28584/configure.in xbmc-28584.patch/configure.in --disable-doc \ --enable-static \ --with-pic -@@ -1289,6 +1297,8 @@ +@@ -1287,6 +1323,8 @@ cp `pwd`/../libdvdread/src/*.h `pwd`/../includes/dvdread else ./configure2 \ @@ -55,7 +104,7 @@ diff -Naur xbmc-28584/configure.in xbmc-28584.patch/configure.in --extra-cflags="$CFLAGS $DVDREAD_CFLAGS -fPIC -DPIC -I`pwd`/../libdvdcss/src" \ --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \ --enable-static \ -@@ -1314,6 +1324,8 @@ +@@ -1312,6 +1350,8 @@ --cc="$CC" else ./configure2 \ @@ -64,7 +113,7 @@ diff -Naur xbmc-28584/configure.in xbmc-28584.patch/configure.in --extra-cflags="$DVDREAD_CFLAGS -fPIC -DPIC -I`pwd`/../includes" \ --extra-ldflags="-L`pwd`/../libdvdread/obj" \ --with-dvdread-config="`pwd`/../libdvdread/obj/dvdread-config" \ -@@ -1346,6 +1358,8 @@ +@@ -1344,6 +1384,8 @@ --disable-al-audio else ./configure \ @@ -73,7 +122,7 @@ diff -Naur xbmc-28584/configure.in xbmc-28584.patch/configure.in --with-pic \ --disable-static \ --enable-shared \ -@@ -1381,7 +1395,9 @@ +@@ -1379,7 +1421,9 @@ ./configure MACOSX_DEPLOYMENT_TARGET=10.4 else CFLAGS="$CFLAGS -fPIC" \ @@ -84,7 +133,7 @@ diff -Naur xbmc-28584/configure.in xbmc-28584.patch/configure.in fi ], [$USE_EXTERNAL_LIBASS]) -@@ -1395,6 +1411,8 @@ +@@ -1393,6 +1437,8 @@ --with-pic else ./configure \ @@ -93,7 +142,7 @@ diff -Naur xbmc-28584/configure.in xbmc-28584.patch/configure.in CPPFLAGS="$CPPFLAGS" \ CFLAGS="$CFLAGS -fPIC" \ CXXFLAGS="$CXXFLAGS -fPIC" \ -@@ -1421,6 +1439,8 @@ +@@ -1419,6 +1465,8 @@ XB_CONFIG_MODULE([xbmc/visualizations/Goom/goom2k4-0],[ if test "$host_vendor" != "apple" ; then ./configure \ @@ -102,7 +151,7 @@ diff -Naur xbmc-28584/configure.in xbmc-28584.patch/configure.in CPPFLAGS="$CPPFLAGS" \ CFLAGS="$CFLAGS -fPIC" \ CXXFLAGS="$CXXFLAGS -fPIC" \ -@@ -1451,6 +1471,8 @@ +@@ -1449,6 +1497,8 @@ --disable-skyrocket else ./configure \ @@ -111,7 +160,7 @@ diff -Naur xbmc-28584/configure.in xbmc-28584.patch/configure.in CPPFLAGS="$CPPFLAGS" \ CFLAGS="$CFLAGS -fPIC" \ CXXFLAGS="$CXXFLAGS -fPIC" \ -@@ -1470,9 +1492,11 @@ +@@ -1468,9 +1518,11 @@ XB_CONFIG_MODULE([xbmc/cores/dvdplayer/Codecs/libbdnav/], [ if test "$host_vendor" = "apple" ; then @@ -125,7 +174,7 @@ diff -Naur xbmc-28584/configure.in xbmc-28584.patch/configure.in fi ], [0]) -@@ -1481,7 +1505,9 @@ +@@ -1479,7 +1531,9 @@ CFLAGS="-isysroot /Developer/SDKs/MacOSX10.4u.sdk -mmacosx-version-min=10.4 -fno-common" \ ./configure MACOSX_DEPLOYMENT_TARGET=10.4 --disable-shared else diff --git a/packages/mediacenter/xbmc/patches/091-xbmc-enable_yasm_in_ffmpeg-0.1.diff b/packages/mediacenter/xbmc/patches/091-xbmc-enable_yasm_in_ffmpeg-0.1.diff index 8ad37ff7d2..be58e79acc 100644 --- a/packages/mediacenter/xbmc/patches/091-xbmc-enable_yasm_in_ffmpeg-0.1.diff +++ b/packages/mediacenter/xbmc/patches/091-xbmc-enable_yasm_in_ffmpeg-0.1.diff @@ -1,7 +1,7 @@ -diff -Naur xbmc-23998/configure.in xbmc-23998.patch/configure.in ---- xbmc-23998/configure.in 2009-10-25 13:30:40.869660379 +0100 -+++ xbmc-23998.patch/configure.in 2009-10-25 13:33:30.376657368 +0100 -@@ -692,6 +692,7 @@ +diff -Naur xbmc-28745/configure.in xbmc-28745.patch/configure.in +--- xbmc-28745/configure.in 2010-03-23 04:05:13.476967336 +0100 ++++ xbmc-28745.patch/configure.in 2010-03-23 04:07:49.166967342 +0100 +@@ -728,6 +728,7 @@ fi fi @@ -9,11 +9,11 @@ diff -Naur xbmc-23998/configure.in xbmc-23998.patch/configure.in AC_CHECK_PROG(HAVE_SVNVERSION,svnversion,"yes","no",) AC_CHECK_PROG(HAVE_GIT,git,"yes","no",) -@@ -1177,6 +1178,7 @@ - --disable-ipv6 \ - `if test "$use_debug" = "no"; then echo --disable-debug; fi` \ - `if test "$cross_compiling" = "yes"; then echo --enable-cross-compile; fi` \ +@@ -1269,6 +1270,7 @@ + --enable-protocol=http \ + --enable-pthreads \ + `if test "$host_cpu" = "powerpc" || test "$host_cpu" = "powerpc64"; then echo --enable-pic; fi` \ + `if test "$HAVE_YASM" = "yes"; then echo --enable-yasm; fi` \ - --disable-muxers \ - --disable-encoders \ - --disable-decoder=mpeg_xvmc \ + --cc="$CC" + fi + ], [$USE_EXTERNAL_FFMPEG]) diff --git a/packages/mediacenter/xbmc/patches/xbmc-undef_byte_for_glib-2.23.x-0.1.diff b/packages/mediacenter/xbmc/patches/xbmc-undef_byte_for_glib-2.23.x-0.1.diff deleted file mode 100644 index 0b72e14a70..0000000000 --- a/packages/mediacenter/xbmc/patches/xbmc-undef_byte_for_glib-2.23.x-0.1.diff +++ /dev/null @@ -1,11 +0,0 @@ -diff -Naur xbmc-28622/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamMMS.cpp xbmc-28622.patch/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamMMS.cpp ---- xbmc-28622/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamMMS.cpp 2010-03-17 20:11:42.000000000 +0100 -+++ xbmc-28622.patch/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamMMS.cpp 2010-03-19 04:04:41.074751644 +0100 -@@ -35,6 +35,7 @@ - // some distros have already patched this but upstream @ https://launchpad.net/libmms - // does still has the "this" usage. - #define this instance -+#undef byte - #include // FIXME: remove this header once the ubuntu headers is fixed (variable named this) - #include - #include diff --git a/packages/mediacenter/xbmc/url b/packages/mediacenter/xbmc/url index aa8d60462b..bb1f20911b 100644 --- a/packages/mediacenter/xbmc/url +++ b/packages/mediacenter/xbmc/url @@ -1 +1 @@ -http://sources.openelec.tv/svn/xbmc-28690.tar.bz2 +http://sources.openelec.tv/svn/xbmc-28745.tar.bz2 From ed64346816ecd46b0f85315fab6bd4cf3aa0d3e8 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Tue, 23 Mar 2010 05:11:44 +0100 Subject: [PATCH 029/320] xbmc-theme-Confluence: - update to xbmc-theme-Confluence-28745 --- packages/mediacenter/xbmc-theme-Confluence/url | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/mediacenter/xbmc-theme-Confluence/url b/packages/mediacenter/xbmc-theme-Confluence/url index 0066bc213d..11a228eb9f 100644 --- a/packages/mediacenter/xbmc-theme-Confluence/url +++ b/packages/mediacenter/xbmc-theme-Confluence/url @@ -1 +1 @@ -http://sources.openelec.tv/svn/xbmc-theme-Confluence-28690.tar.bz2 +http://sources.openelec.tv/svn/xbmc-theme-Confluence-28745.tar.bz2 From ad1f4fcdf3a0bbae8c860cc1b2ac9b5037a6f9b1 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Tue, 23 Mar 2010 05:12:10 +0100 Subject: [PATCH 030/320] connman: - update to connman-0.50 --- packages/network/connman/build | 2 ++ packages/network/connman/url | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/network/connman/build b/packages/network/connman/build index ad061c360d..be5ecc05ea 100755 --- a/packages/network/connman/build +++ b/packages/network/connman/build @@ -16,6 +16,7 @@ cd $PKG_BUILD --prefix=/usr \ --sysconfdir=/etc \ --localstatedir=/var \ + --disable-debug \ --disable-static \ --enable-shared \ --enable-threads \ @@ -48,3 +49,4 @@ cd $PKG_BUILD --disable-capng \ make + diff --git a/packages/network/connman/url b/packages/network/connman/url index eca469eb2f..63738c5d19 100644 --- a/packages/network/connman/url +++ b/packages/network/connman/url @@ -1 +1 @@ -http://www.kernel.org/pub/linux/network/connman/connman-0.48.tar.bz2 +http://www.kernel.org/pub/linux/network/connman/connman-0.50.tar.bz2 From da1b13c477439c88f07c3d977aa8c515ee987a2b Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Wed, 24 Mar 2010 12:48:30 +0100 Subject: [PATCH 031/320] merging trunk --- .../mediacenter/xbmc-theme-Confluence/url | 2 +- packages/mediacenter/xbmc/build | 2 + ...d_host_and_build_to_configures-0.3.1.diff} | 85 +++++++++++++++---- .../091-xbmc-enable_yasm_in_ffmpeg-0.1.diff | 22 ++--- packages/mediacenter/xbmc/url | 2 +- packages/network/connman/build | 2 + packages/network/connman/url | 2 +- 7 files changed, 85 insertions(+), 32 deletions(-) rename packages/mediacenter/xbmc/patches/{010_xbmc-crosscompile_add_host_and_build_to_configures-0.2.1.diff => 010_xbmc-crosscompile_add_host_and_build_to_configures-0.3.1.diff} (62%) diff --git a/packages/mediacenter/xbmc-theme-Confluence/url b/packages/mediacenter/xbmc-theme-Confluence/url index 0066bc213d..11a228eb9f 100644 --- a/packages/mediacenter/xbmc-theme-Confluence/url +++ b/packages/mediacenter/xbmc-theme-Confluence/url @@ -1 +1 @@ -http://sources.openelec.tv/svn/xbmc-theme-Confluence-28690.tar.bz2 +http://sources.openelec.tv/svn/xbmc-theme-Confluence-28745.tar.bz2 diff --git a/packages/mediacenter/xbmc/build b/packages/mediacenter/xbmc/build index b1cde99c34..00673e71bc 100755 --- a/packages/mediacenter/xbmc/build +++ b/packages/mediacenter/xbmc/build @@ -91,6 +91,8 @@ cd - ./bootstrap ./configure --host=$TARGET_NAME \ --build=$HOST_NAME \ + --with-arch=$TARGET_ARCH \ + --with-cpu=$TARGET_CPU \ --prefix=/usr \ --exec-prefix=/usr \ --sysconfdir=/etc \ diff --git a/packages/mediacenter/xbmc/patches/010_xbmc-crosscompile_add_host_and_build_to_configures-0.2.1.diff b/packages/mediacenter/xbmc/patches/010_xbmc-crosscompile_add_host_and_build_to_configures-0.3.1.diff similarity index 62% rename from packages/mediacenter/xbmc/patches/010_xbmc-crosscompile_add_host_and_build_to_configures-0.2.1.diff rename to packages/mediacenter/xbmc/patches/010_xbmc-crosscompile_add_host_and_build_to_configures-0.3.1.diff index 033babe263..24e5fb71f2 100644 --- a/packages/mediacenter/xbmc/patches/010_xbmc-crosscompile_add_host_and_build_to_configures-0.2.1.diff +++ b/packages/mediacenter/xbmc/patches/010_xbmc-crosscompile_add_host_and_build_to_configures-0.3.1.diff @@ -1,7 +1,53 @@ -diff -Naur xbmc-28584/configure.in xbmc-28584.patch/configure.in ---- xbmc-28584/configure.in 2010-03-14 21:06:24.000000000 +0100 -+++ xbmc-28584.patch/configure.in 2010-03-15 00:50:53.680149619 +0100 -@@ -1154,7 +1154,9 @@ +diff -Naur xbmc-28745/configure.in xbmc-28745.patch/configure.in +--- xbmc-28745/configure.in 2010-03-22 06:50:58.000000000 +0100 ++++ xbmc-28745.patch/configure.in 2010-03-22 13:17:49.917999744 +0100 +@@ -24,6 +24,10 @@ + + AC_CANONICAL_HOST + ++tolower(){ ++ echo "$@" | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz ++} ++ + # General message strings + configure_debug="ERROR: this is a configure debug statement" + missing_library="Could not find a required library. Please see the README for your platform." +@@ -102,6 +106,18 @@ + [use_debug=$enableval], + [use_debug=yes]) + ++AC_ARG_WITH([arch], ++ [AS_HELP_STRING([--with-arch], ++ [build with given arch passing to internal ffmpeg (default is no, needed for crosscompiling)])], ++ [use_arch=$withval], ++ [use_arch=no]) ++ ++AC_ARG_WITH([cpu], ++ [AS_HELP_STRING([--with-cpu], ++ [build with given cpu passing to ffmpeg (default is no)])], ++ [use_cpu=$withval], ++ [use_cpu=no]) ++ + AC_ARG_ENABLE([optimizations], + [AS_HELP_STRING([--enable-optimizations], + [enable optimization (default is yes)])], +@@ -805,6 +821,15 @@ + fi + fi + ++if test "$cross_compiling" = "yes"; then ++ final_message="$final_message\n Crosscomp.:\tYes" ++else ++ final_message="$final_message\n Crosscomp.:\tNo" ++fi ++ ++final_message="$final_message\n target ARCH:\t$use_arch" ++final_message="$final_message\n target CPU:\t$use_cpu" ++ + if test "$use_optimizations" = "yes"; then + final_message="$final_message\n Optimization:\tYes" + CXXFLAGS="$CXXFLAGS -O2" +@@ -1154,7 +1179,9 @@ cp pyconfig.h Include else ./configure \ @@ -12,15 +58,18 @@ diff -Naur xbmc-28584/configure.in xbmc-28584.patch/configure.in --enable-unicode=ucs4 \ --without-cxx \ --enable-shared \ -@@ -1219,6 +1221,7 @@ +@@ -1217,6 +1244,10 @@ + ./configure \ --disable-static \ - --disable-ipv6 \ `if test "$use_debug" = "no"; then echo --disable-debug; fi` \ + `if test "$cross_compiling" = "yes"; then echo --enable-cross-compile; fi` \ ++ `if test "$use_arch" != "no"; then echo --arch=$use_arch; fi`\ ++ `if test "$use_cpu" != "no"; then echo --cpu=$use_cpu; fi`\ ++ --target-os=$(tolower $(uname -s)) \ --disable-muxers \ --enable-muxer=spdif \ --enable-muxer=adts \ -@@ -1235,6 +1238,7 @@ +@@ -1233,6 +1264,7 @@ --enable-postproc \ --enable-gpl \ `if test "$use_vdpau" = "yes"; then echo --enable-vdpau; else echo --disable-vdpau; fi` \ @@ -28,7 +77,7 @@ diff -Naur xbmc-28584/configure.in xbmc-28584.patch/configure.in --enable-libfaad \ --enable-protocol=http \ --enable-pthreads \ -@@ -1254,6 +1258,8 @@ +@@ -1252,6 +1284,8 @@ --disable-win else ./configure \ @@ -37,7 +86,7 @@ diff -Naur xbmc-28584/configure.in xbmc-28584.patch/configure.in --disable-oss \ --disable-solaris-audio \ --disable-al-audio \ -@@ -1271,6 +1277,8 @@ +@@ -1269,6 +1303,8 @@ --with-pic else ./configure \ @@ -46,7 +95,7 @@ diff -Naur xbmc-28584/configure.in xbmc-28584.patch/configure.in --disable-doc \ --enable-static \ --with-pic -@@ -1289,6 +1297,8 @@ +@@ -1287,6 +1323,8 @@ cp `pwd`/../libdvdread/src/*.h `pwd`/../includes/dvdread else ./configure2 \ @@ -55,7 +104,7 @@ diff -Naur xbmc-28584/configure.in xbmc-28584.patch/configure.in --extra-cflags="$CFLAGS $DVDREAD_CFLAGS -fPIC -DPIC -I`pwd`/../libdvdcss/src" \ --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \ --enable-static \ -@@ -1314,6 +1324,8 @@ +@@ -1312,6 +1350,8 @@ --cc="$CC" else ./configure2 \ @@ -64,7 +113,7 @@ diff -Naur xbmc-28584/configure.in xbmc-28584.patch/configure.in --extra-cflags="$DVDREAD_CFLAGS -fPIC -DPIC -I`pwd`/../includes" \ --extra-ldflags="-L`pwd`/../libdvdread/obj" \ --with-dvdread-config="`pwd`/../libdvdread/obj/dvdread-config" \ -@@ -1346,6 +1358,8 @@ +@@ -1344,6 +1384,8 @@ --disable-al-audio else ./configure \ @@ -73,7 +122,7 @@ diff -Naur xbmc-28584/configure.in xbmc-28584.patch/configure.in --with-pic \ --disable-static \ --enable-shared \ -@@ -1381,7 +1395,9 @@ +@@ -1379,7 +1421,9 @@ ./configure MACOSX_DEPLOYMENT_TARGET=10.4 else CFLAGS="$CFLAGS -fPIC" \ @@ -84,7 +133,7 @@ diff -Naur xbmc-28584/configure.in xbmc-28584.patch/configure.in fi ], [$USE_EXTERNAL_LIBASS]) -@@ -1395,6 +1411,8 @@ +@@ -1393,6 +1437,8 @@ --with-pic else ./configure \ @@ -93,7 +142,7 @@ diff -Naur xbmc-28584/configure.in xbmc-28584.patch/configure.in CPPFLAGS="$CPPFLAGS" \ CFLAGS="$CFLAGS -fPIC" \ CXXFLAGS="$CXXFLAGS -fPIC" \ -@@ -1421,6 +1439,8 @@ +@@ -1419,6 +1465,8 @@ XB_CONFIG_MODULE([xbmc/visualizations/Goom/goom2k4-0],[ if test "$host_vendor" != "apple" ; then ./configure \ @@ -102,7 +151,7 @@ diff -Naur xbmc-28584/configure.in xbmc-28584.patch/configure.in CPPFLAGS="$CPPFLAGS" \ CFLAGS="$CFLAGS -fPIC" \ CXXFLAGS="$CXXFLAGS -fPIC" \ -@@ -1451,6 +1471,8 @@ +@@ -1449,6 +1497,8 @@ --disable-skyrocket else ./configure \ @@ -111,7 +160,7 @@ diff -Naur xbmc-28584/configure.in xbmc-28584.patch/configure.in CPPFLAGS="$CPPFLAGS" \ CFLAGS="$CFLAGS -fPIC" \ CXXFLAGS="$CXXFLAGS -fPIC" \ -@@ -1470,9 +1492,11 @@ +@@ -1468,9 +1518,11 @@ XB_CONFIG_MODULE([xbmc/cores/dvdplayer/Codecs/libbdnav/], [ if test "$host_vendor" = "apple" ; then @@ -125,7 +174,7 @@ diff -Naur xbmc-28584/configure.in xbmc-28584.patch/configure.in fi ], [0]) -@@ -1481,7 +1505,9 @@ +@@ -1479,7 +1531,9 @@ CFLAGS="-isysroot /Developer/SDKs/MacOSX10.4u.sdk -mmacosx-version-min=10.4 -fno-common" \ ./configure MACOSX_DEPLOYMENT_TARGET=10.4 --disable-shared else diff --git a/packages/mediacenter/xbmc/patches/091-xbmc-enable_yasm_in_ffmpeg-0.1.diff b/packages/mediacenter/xbmc/patches/091-xbmc-enable_yasm_in_ffmpeg-0.1.diff index 8ad37ff7d2..be58e79acc 100644 --- a/packages/mediacenter/xbmc/patches/091-xbmc-enable_yasm_in_ffmpeg-0.1.diff +++ b/packages/mediacenter/xbmc/patches/091-xbmc-enable_yasm_in_ffmpeg-0.1.diff @@ -1,7 +1,7 @@ -diff -Naur xbmc-23998/configure.in xbmc-23998.patch/configure.in ---- xbmc-23998/configure.in 2009-10-25 13:30:40.869660379 +0100 -+++ xbmc-23998.patch/configure.in 2009-10-25 13:33:30.376657368 +0100 -@@ -692,6 +692,7 @@ +diff -Naur xbmc-28745/configure.in xbmc-28745.patch/configure.in +--- xbmc-28745/configure.in 2010-03-23 04:05:13.476967336 +0100 ++++ xbmc-28745.patch/configure.in 2010-03-23 04:07:49.166967342 +0100 +@@ -728,6 +728,7 @@ fi fi @@ -9,11 +9,11 @@ diff -Naur xbmc-23998/configure.in xbmc-23998.patch/configure.in AC_CHECK_PROG(HAVE_SVNVERSION,svnversion,"yes","no",) AC_CHECK_PROG(HAVE_GIT,git,"yes","no",) -@@ -1177,6 +1178,7 @@ - --disable-ipv6 \ - `if test "$use_debug" = "no"; then echo --disable-debug; fi` \ - `if test "$cross_compiling" = "yes"; then echo --enable-cross-compile; fi` \ +@@ -1269,6 +1270,7 @@ + --enable-protocol=http \ + --enable-pthreads \ + `if test "$host_cpu" = "powerpc" || test "$host_cpu" = "powerpc64"; then echo --enable-pic; fi` \ + `if test "$HAVE_YASM" = "yes"; then echo --enable-yasm; fi` \ - --disable-muxers \ - --disable-encoders \ - --disable-decoder=mpeg_xvmc \ + --cc="$CC" + fi + ], [$USE_EXTERNAL_FFMPEG]) diff --git a/packages/mediacenter/xbmc/url b/packages/mediacenter/xbmc/url index aa8d60462b..bb1f20911b 100644 --- a/packages/mediacenter/xbmc/url +++ b/packages/mediacenter/xbmc/url @@ -1 +1 @@ -http://sources.openelec.tv/svn/xbmc-28690.tar.bz2 +http://sources.openelec.tv/svn/xbmc-28745.tar.bz2 diff --git a/packages/network/connman/build b/packages/network/connman/build index ad061c360d..be5ecc05ea 100755 --- a/packages/network/connman/build +++ b/packages/network/connman/build @@ -16,6 +16,7 @@ cd $PKG_BUILD --prefix=/usr \ --sysconfdir=/etc \ --localstatedir=/var \ + --disable-debug \ --disable-static \ --enable-shared \ --enable-threads \ @@ -48,3 +49,4 @@ cd $PKG_BUILD --disable-capng \ make + diff --git a/packages/network/connman/url b/packages/network/connman/url index eca469eb2f..63738c5d19 100644 --- a/packages/network/connman/url +++ b/packages/network/connman/url @@ -1 +1 @@ -http://www.kernel.org/pub/linux/network/connman/connman-0.48.tar.bz2 +http://www.kernel.org/pub/linux/network/connman/connman-0.50.tar.bz2 From 1e95bd54478cfa80bc86712caf177600c26eaa62 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Mon, 29 Mar 2010 22:07:42 +0200 Subject: [PATCH 032/320] Mesa: - update to Mesa-7.7.1 --- .../Mesa/patches/110_fix-libkms-api.diff | 40 ------------------- packages/graphics/Mesa/url | 4 +- 2 files changed, 2 insertions(+), 42 deletions(-) delete mode 100644 packages/graphics/Mesa/patches/110_fix-libkms-api.diff diff --git a/packages/graphics/Mesa/patches/110_fix-libkms-api.diff b/packages/graphics/Mesa/patches/110_fix-libkms-api.diff deleted file mode 100644 index cea46b01fe..0000000000 --- a/packages/graphics/Mesa/patches/110_fix-libkms-api.diff +++ /dev/null @@ -1,40 +0,0 @@ -From 8db8adfd01a1ff1e2a160ae3b0199bd3daa4191a Mon Sep 17 00:00:00 2001 -From: Jakob Bornecrantz -Date: Thu, 28 Jan 2010 16:59:26 +0000 -Subject: st/xorg: Update to new libkms interface but be backwards compatible - ---- -diff --git a/src/gallium/state_trackers/xorg/xorg_crtc.c b/src/gallium/state_trackers/xorg/xorg_crtc.c -index 0160b1a..daa9f8b 100644 ---- a/src/gallium/state_trackers/xorg/xorg_crtc.c -+++ b/src/gallium/state_trackers/xorg/xorg_crtc.c -@@ -243,7 +243,11 @@ crtc_load_cursor_argb_kms(xf86CrtcPtr crtc, CARD32 * image) - unsigned attr[8]; - - attr[0] = KMS_BO_TYPE; -+#ifdef KMS_BO_TYPE_CURSOR_64X64_A8R8G8B8 -+ attr[1] = KMS_BO_TYPE_CURSOR_64X64_A8R8G8B8; -+#else - attr[1] = KMS_BO_TYPE_CURSOR; -+#endif - attr[2] = KMS_WIDTH; - attr[3] = 64; - attr[4] = KMS_HEIGHT; -diff --git a/src/gallium/state_trackers/xorg/xorg_driver.c b/src/gallium/state_trackers/xorg/xorg_driver.c -index e4ad789..f53a879 100644 ---- a/src/gallium/state_trackers/xorg/xorg_driver.c -+++ b/src/gallium/state_trackers/xorg/xorg_driver.c -@@ -1008,7 +1008,11 @@ drv_create_front_buffer_kms(ScrnInfoPtr pScrn) - int ret; - - attr[0] = KMS_BO_TYPE; -+#ifdef KMS_BO_TYPE_SCANOUT_X8R8G8B8 -+ attr[1] = KMS_BO_TYPE_SCANOUT_X8R8G8B8; -+#else - attr[1] = KMS_BO_TYPE_SCANOUT; -+#endif - attr[2] = KMS_WIDTH; - attr[3] = pScrn->virtualX; - attr[4] = KMS_HEIGHT; --- -cgit v0.8.3-6-g21f6 diff --git a/packages/graphics/Mesa/url b/packages/graphics/Mesa/url index 162dcaf14a..d0aecb9798 100644 --- a/packages/graphics/Mesa/url +++ b/packages/graphics/Mesa/url @@ -1,2 +1,2 @@ -ftp://ftp.freedesktop.org/pub/mesa/7.7/MesaLib-7.7.tar.bz2 -ftp://ftp.freedesktop.org/pub/mesa/7.7/MesaDemos-7.7.tar.bz2 \ No newline at end of file +ftp://ftp.freedesktop.org/pub/mesa/7.7.1/MesaLib-7.7.1.tar.bz2 +ftp://ftp.freedesktop.org/pub/mesa/7.7.1/MesaDemos-7.7.1.tar.bz2 \ No newline at end of file From aa6de4bc044b78f1fb87065a603ef09a5e29285d Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Mon, 29 Mar 2010 22:08:14 +0200 Subject: [PATCH 033/320] binutils: - update to binutils-2.20.51.0.7 --- packages/toolchain/devel/binutils/url | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/toolchain/devel/binutils/url b/packages/toolchain/devel/binutils/url index 2175177c56..d5954ddf71 100644 --- a/packages/toolchain/devel/binutils/url +++ b/packages/toolchain/devel/binutils/url @@ -1 +1 @@ -ftp://ftp.kernel.org/pub/linux/devel/binutils/binutils-2.20.51.0.6.tar.bz2 \ No newline at end of file +ftp://ftp.kernel.org/pub/linux/devel/binutils/binutils-2.20.51.0.7.tar.bz2 \ No newline at end of file From 5b3b1b9cbc7cf694109d9f16fcb1a3f86bddf8c4 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Mon, 29 Mar 2010 22:08:52 +0200 Subject: [PATCH 034/320] binutils: - adding patch from buildroot for ARM EABI configuration --- .../binutils/patches/110-arm-eabi-conf.diff | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 packages/toolchain/devel/binutils/patches/110-arm-eabi-conf.diff diff --git a/packages/toolchain/devel/binutils/patches/110-arm-eabi-conf.diff b/packages/toolchain/devel/binutils/patches/110-arm-eabi-conf.diff new file mode 100644 index 0000000000..af26329d90 --- /dev/null +++ b/packages/toolchain/devel/binutils/patches/110-arm-eabi-conf.diff @@ -0,0 +1,24 @@ +diff -rdup binutils-2.18.50.0.3.orig/configure binutils-2.18.50.0.3/configure +--- binutils-2.18.50.0.3.orig/configure 2007-11-22 12:41:26.000000000 +0100 ++++ binutils-2.18.50.0.3/configure 2007-11-22 12:45:01.000000000 +0100 +@@ -2245,7 +2245,7 @@ case "${target}" in + noconfigdirs="$noconfigdirs target-libffi target-qthreads" + libgloss_dir=arm + ;; +- arm*-*-linux-gnueabi) ++ arm*-*-linux-*gnueabi) + noconfigdirs="$noconfigdirs target-qthreads" + noconfigdirs="$noconfigdirs target-libobjc" + case ${with_newlib} in +diff -rdup binutils-2.18.50.0.3.orig/configure.ac binutils-2.18.50.0.3/configure.ac +--- binutils-2.18.50.0.3.orig/configure.ac 2007-11-22 12:41:26.000000000 +0100 ++++ binutils-2.18.50.0.3/configure.ac 2007-11-22 12:44:54.000000000 +0100 +@@ -522,7 +522,7 @@ case "${target}" in + noconfigdirs="$noconfigdirs target-libffi target-qthreads" + libgloss_dir=arm + ;; +- arm*-*-linux-gnueabi) ++ arm*-*-linux-*gnueabi) + noconfigdirs="$noconfigdirs target-qthreads" + noconfigdirs="$noconfigdirs target-libobjc" + case ${with_newlib} in From 481ac0013fcac48435f62c84482d6613125fc827 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Mon, 29 Mar 2010 22:09:17 +0200 Subject: [PATCH 035/320] xf86-video-intel: - update to xf86-video-intel-2.11 --- packages/x11/driver/xf86-video-intel/url | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/x11/driver/xf86-video-intel/url b/packages/x11/driver/xf86-video-intel/url index 99bc71fafb..c0c411ea8d 100644 --- a/packages/x11/driver/xf86-video-intel/url +++ b/packages/x11/driver/xf86-video-intel/url @@ -1 +1 @@ -http://xorg.freedesktop.org/archive/individual/driver/xf86-video-intel-2.10.903.tar.bz2 \ No newline at end of file +http://xorg.freedesktop.org/archive/individual/driver/xf86-video-intel-2.11.0.tar.bz2 From b9603459e5c3ed34b67e7ed16f1786f30e033493 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Mon, 5 Apr 2010 23:10:32 +0200 Subject: [PATCH 036/320] new package: - add udisks as an DeviceKit-disks replacement --- packages/sysutils/udisks/build | 36 ++++++++++++++++++ packages/sysutils/udisks/install | 65 ++++++++++++++++++++++++++++++++ packages/sysutils/udisks/url | 1 + 3 files changed, 102 insertions(+) create mode 100755 packages/sysutils/udisks/build create mode 100755 packages/sysutils/udisks/install create mode 100644 packages/sysutils/udisks/url diff --git a/packages/sysutils/udisks/build b/packages/sysutils/udisks/build new file mode 100755 index 0000000000..e8c0fcb9d1 --- /dev/null +++ b/packages/sysutils/udisks/build @@ -0,0 +1,36 @@ +#!/bin/sh + +. config/options + +$SCRIPTS/build toolchain +$SCRIPTS/build sg3_utils +$SCRIPTS/build udev +$SCRIPTS/build glib +$SCRIPTS/build dbus +$SCRIPTS/build dbus-glib +$SCRIPTS/build parted +$SCRIPTS/build polkit +$SCRIPTS/build libatasmart + +cd $PKG_BUILD +./configure --host=$TARGET_NAME \ + --build=$HOST_NAME \ + --prefix=/usr \ + --sysconfdir=/etc \ + --datadir=/usr/share \ + --libexecdir=/usr/lib/udisks \ + --localstatedir=/var \ + --disable-static \ + --enable-shared \ + --disable-man-pages \ + --disable-gtk-doc \ + --enable-gtk-doc-html \ + --enable-gtk-doc-pdf \ + --disable-lvm2 \ + --disable-dmmp \ + --disable-remote-access \ + --disable-nls \ + +make + +$MAKEINSTALL diff --git a/packages/sysutils/udisks/install b/packages/sysutils/udisks/install new file mode 100755 index 0000000000..b40447dbf6 --- /dev/null +++ b/packages/sysutils/udisks/install @@ -0,0 +1,65 @@ +#!/bin/sh + +. config/options + +$SCRIPTS/install sg3_utils +$SCRIPTS/install udev +$SCRIPTS/install glib +$SCRIPTS/install dbus +$SCRIPTS/install dbus-glib +$SCRIPTS/install parted +$SCRIPTS/install polkit +$SCRIPTS/install libatasmart + +mkdir -p $INSTALL/etc/dbus-1/system.d + cp -P $PKG_BUILD/data/org.freedesktop.UDisks.conf $INSTALL/etc/dbus-1/system.d + +mkdir -p $INSTALL/lib/udev + cp -P $PKG_BUILD/src/probers/udisks-dm-export $INSTALL/lib/udev + cp -P $PKG_BUILD/src/probers/udisks-part-id $INSTALL/lib/udev + cp -P $PKG_BUILD/src/probers/udisks-probe-ata-smart $INSTALL/lib/udev + cp -P $PKG_BUILD/src/probers/udisks-probe-sas-expander $INSTALL/lib/udev + +mkdir -p $INSTALL/lib/udev/rules.d + cp $PKG_BUILD/data/80-udisks.rules $INSTALL/lib/udev/rules.d + +mkdir -p $INSTALL/sbin + cp -P $PKG_BUILD/tools/umount.udisks $INSTALL/sbin + +mkdir -p $INSTALL/usr/bin + cp -P $PKG_BUILD/tools/udisks $INSTALL/usr/bin + +mkdir -p $INSTALL/usr/lib/polkit-1/extensions + cp -P $PKG_BUILD/src/.libs/*.so $INSTALL/usr/lib/polkit-1/extensions + +mkdir -p $INSTALL/usr/lib/udisks + cp -P $PKG_BUILD/src/udisks-daemon $INSTALL/usr/lib/udisks + cp -P $PKG_BUILD/src/helpers/udisks-helper-ata-smart-collect $INSTALL/usr/lib/udisks + cp -P $PKG_BUILD/src/helpers/udisks-helper-ata-smart-selftest $INSTALL/usr/lib/udisks + cp -P $PKG_BUILD/src/helpers/udisks-helper-change-filesystem-label $INSTALL/usr/lib/udisks +# cp -P $PKG_BUILD/src/helpers/udisks-helper-change-luks-password $INSTALL/usr/lib/udisks + cp -P $PKG_BUILD/src/helpers/udisks-helper-create-partition $INSTALL/usr/lib/udisks + cp -P $PKG_BUILD/src/helpers/udisks-helper-create-partition-table $INSTALL/usr/lib/udisks + cp -P $PKG_BUILD/src/helpers/udisks-helper-delete-partition $INSTALL/usr/lib/udisks + cp -P $PKG_BUILD/src/helpers/udisks-helper-drive-benchmark $INSTALL/usr/lib/udisks + cp -P $PKG_BUILD/src/helpers/udisks-helper-drive-detach $INSTALL/usr/lib/udisks + cp -P $PKG_BUILD/src/helpers/udisks-helper-drive-poll $INSTALL/usr/lib/udisks + cp -P $PKG_BUILD/src/helpers/udisks-helper-fstab-mounter $INSTALL/usr/lib/udisks + cp -P $PKG_BUILD/src/helpers/udisks-helper-linux-md-check $INSTALL/usr/lib/udisks + cp -P $PKG_BUILD/src/helpers/udisks-helper-linux-md-remove-component $INSTALL/usr/lib/udisks + cp -P $PKG_BUILD/src/helpers/udisks-helper-mdadm-expand $INSTALL/usr/lib/udisks + cp -P $PKG_BUILD/src/helpers/udisks-helper-mkfs $INSTALL/usr/lib/udisks + cp -P $PKG_BUILD/src/helpers/udisks-helper-modify-partition $INSTALL/usr/lib/udisks + +mkdir -p $INSTALL/usr/share/dbus-1/interfaces + cp -P $PKG_BUILD/data/org.freedesktop.UDisks.Adapter.xml $INSTALL/usr/share/dbus-1/interfaces + cp -P $PKG_BUILD/data/org.freedesktop.UDisks.Device.xml $INSTALL/usr/share/dbus-1/interfaces + cp -P $PKG_BUILD/data/org.freedesktop.UDisks.Expander.xml $INSTALL/usr/share/dbus-1/interfaces + cp -P $PKG_BUILD/data/org.freedesktop.UDisks.Port.xml $INSTALL/usr/share/dbus-1/interfaces + cp -P $PKG_BUILD/data/org.freedesktop.UDisks.xml $INSTALL/usr/share/dbus-1/interfaces + +mkdir -p $INSTALL/usr/share/dbus-1/system-services + cp -P $PKG_BUILD/data/org.freedesktop.UDisks.service $INSTALL/usr/share/dbus-1/system-services + +mkdir -p $INSTALL/usr/share/polkit-1/actions + cp -P $PKG_BUILD/policy/org.freedesktop.udisks.policy $INSTALL/usr/share/polkit-1/actions diff --git a/packages/sysutils/udisks/url b/packages/sysutils/udisks/url new file mode 100644 index 0000000000..d216af1117 --- /dev/null +++ b/packages/sysutils/udisks/url @@ -0,0 +1 @@ +http://hal.freedesktop.org/releases/udisks-1.0.0.tar.gz \ No newline at end of file From f7f02d15e238d36c0bc79b231f8cda382249996d Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Mon, 5 Apr 2010 23:10:56 +0200 Subject: [PATCH 037/320] DeviceKit-disks: - remove package --- packages/sysutils/DeviceKit-disks/build | 31 ------------ packages/sysutils/DeviceKit-disks/install | 60 ----------------------- packages/sysutils/DeviceKit-disks/url | 1 - 3 files changed, 92 deletions(-) delete mode 100755 packages/sysutils/DeviceKit-disks/build delete mode 100755 packages/sysutils/DeviceKit-disks/install delete mode 100644 packages/sysutils/DeviceKit-disks/url diff --git a/packages/sysutils/DeviceKit-disks/build b/packages/sysutils/DeviceKit-disks/build deleted file mode 100755 index 53a47c3755..0000000000 --- a/packages/sysutils/DeviceKit-disks/build +++ /dev/null @@ -1,31 +0,0 @@ -#!/bin/sh - -. config/options - -$SCRIPTS/build toolchain -$SCRIPTS/build sg3_utils -$SCRIPTS/build udev -$SCRIPTS/build glib -$SCRIPTS/build dbus -$SCRIPTS/build dbus-glib -$SCRIPTS/build LVM2 -$SCRIPTS/build parted -$SCRIPTS/build polkit -$SCRIPTS/build libatasmart - -cd $PKG_BUILD -./configure --host=$TARGET_NAME \ - --build=$HOST_NAME \ - --prefix=/usr \ - --sysconfdir=/etc \ - --datadir=/usr/share \ - --libexecdir=/usr/lib/DeviceKit-disks \ - --localstatedir=/var \ - --disable-static \ - --enable-shared \ - --disable-man-pages \ - --disable-gtk-doc \ - -make - -$MAKEINSTALL \ No newline at end of file diff --git a/packages/sysutils/DeviceKit-disks/install b/packages/sysutils/DeviceKit-disks/install deleted file mode 100755 index 35174f843a..0000000000 --- a/packages/sysutils/DeviceKit-disks/install +++ /dev/null @@ -1,60 +0,0 @@ -#!/bin/sh - -. config/options - -$SCRIPTS/install sg3_utils -$SCRIPTS/install udev -$SCRIPTS/install glib -$SCRIPTS/install dbus -$SCRIPTS/install dbus-glib -$SCRIPTS/install LVM2 -$SCRIPTS/install parted -$SCRIPTS/install polkit -$SCRIPTS/install libatasmart - -mkdir -p $INSTALL/etc/dbus-1/system.d - cp $PKG_BUILD/data/org.freedesktop.DeviceKit.Disks.conf $INSTALL/etc/dbus-1/system.d - -mkdir -p $INSTALL/lib/udev - cp -PR $PKG_BUILD/src/devkit-disks-dm-export $INSTALL/lib/udev - cp -PR $PKG_BUILD/src/devkit-disks-part-id $INSTALL/lib/udev - cp -PR $PKG_BUILD/src/devkit-disks-probe-ata-smart $INSTALL/lib/udev - -mkdir -p $INSTALL/lib/udev/rules.d - cp $PKG_BUILD/data/95-devkit-disks.rules $INSTALL/lib/udev/rules.d - -#mkdir -p $INSTALL/sbin -# cp -PR $PKG_BUILD/tools/umount.devkit $INSTALL/sbin - -mkdir -p $INSTALL/usr/bin - cp -PR $PKG_BUILD/tools/devkit-disks $INSTALL/usr/bin - -mkdir -p $INSTALL/usr/lib/polkit-1/extensions - cp -PR $PKG_BUILD/src/.libs/*.so $INSTALL/usr/lib/polkit-1/extensions - -mkdir -p $INSTALL/usr/lib/DeviceKit-disks - cp -PR $PKG_BUILD/src/devkit-disks-daemon $INSTALL/usr/lib/DeviceKit-disks - cp -PR $PKG_BUILD/src/devkit-disks-helper-ata-smart-collect $INSTALL/usr/lib/DeviceKit-disks - cp -PR $PKG_BUILD/src/devkit-disks-helper-ata-smart-selftest $INSTALL/usr/lib/DeviceKit-disks - cp -PR $PKG_BUILD/src/devkit-disks-helper-change-filesystem-label $INSTALL/usr/lib/DeviceKit-disks -# cp -PR $PKG_BUILD/src/devkit-disks-helper-change-luks-password $INSTALL/usr/lib/DeviceKit-disks - cp -PR $PKG_BUILD/src/devkit-disks-helper-create-partition $INSTALL/usr/lib/DeviceKit-disks - cp -PR $PKG_BUILD/src/devkit-disks-helper-create-partition-table $INSTALL/usr/lib/DeviceKit-disks - cp -PR $PKG_BUILD/src/devkit-disks-helper-delete-partition $INSTALL/usr/lib/DeviceKit-disks - cp -PR $PKG_BUILD/src/devkit-disks-helper-drive-detach $INSTALL/usr/lib/DeviceKit-disks - cp -PR $PKG_BUILD/src/devkit-disks-helper-drive-poll $INSTALL/usr/lib/DeviceKit-disks - cp -PR $PKG_BUILD/src/devkit-disks-helper-fstab-mounter $INSTALL/usr/lib/DeviceKit-disks - cp -PR $PKG_BUILD/src/devkit-disks-helper-linux-md-check $INSTALL/usr/lib/DeviceKit-disks - cp -PR $PKG_BUILD/src/devkit-disks-helper-linux-md-remove-component $INSTALL/usr/lib/DeviceKit-disks - cp -PR $PKG_BUILD/src/devkit-disks-helper-mkfs $INSTALL/usr/lib/DeviceKit-disks - cp -PR $PKG_BUILD/src/devkit-disks-helper-modify-partition $INSTALL/usr/lib/DeviceKit-disks - -mkdir -p $INSTALL/usr/share/dbus-1/interfaces - cp -PR $PKG_BUILD/data/org.freedesktop.DeviceKit.Disks.Device.xml $INSTALL/usr/share/dbus-1/interfaces - cp -PR $PKG_BUILD/data/org.freedesktop.DeviceKit.Disks.xml $INSTALL/usr/share/dbus-1/interfaces - -mkdir -p $INSTALL/usr/share/dbus-1/system-services - cp -PR $PKG_BUILD/data/org.freedesktop.DeviceKit.Disks.service $INSTALL/usr/share/dbus-1/system-services - -mkdir -p $INSTALL/usr/share/polkit-1/actions - cp -PR $PKG_BUILD/policy/org.freedesktop.devicekit.disks.policy $INSTALL/usr/share/polkit-1/actions diff --git a/packages/sysutils/DeviceKit-disks/url b/packages/sysutils/DeviceKit-disks/url deleted file mode 100644 index d42e16bbb1..0000000000 --- a/packages/sysutils/DeviceKit-disks/url +++ /dev/null @@ -1 +0,0 @@ -http://hal.freedesktop.org/releases/DeviceKit-disks-009.tar.gz From 9041f018a64874d42f162cb76b84a0b5b5f0bab0 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Mon, 5 Apr 2010 23:11:20 +0200 Subject: [PATCH 038/320] LVM2: - remove package, we dont need this anymore --- packages/sysutils/LVM2/build | 32 -------------------------------- packages/sysutils/LVM2/install | 18 ------------------ packages/sysutils/LVM2/url | 1 - 3 files changed, 51 deletions(-) delete mode 100755 packages/sysutils/LVM2/build delete mode 100755 packages/sysutils/LVM2/install delete mode 100644 packages/sysutils/LVM2/url diff --git a/packages/sysutils/LVM2/build b/packages/sysutils/LVM2/build deleted file mode 100755 index bd49ab91c0..0000000000 --- a/packages/sysutils/LVM2/build +++ /dev/null @@ -1,32 +0,0 @@ -#!/bin/sh - -. config/options - -$SCRIPTS/build toolchain - -cd $BUILD/$1* -ac_cv_func_malloc_0_nonnull=yes \ -./configure --host=$TARGET_NAME \ - --build=$HOST_NAME \ - --prefix=/usr \ - --disable-lvm1_fallback \ - --disable-static_link \ - --disable-readline \ - --enable-realtime \ - --enable-debug \ - --disable-profiling \ - --enable-devmapper \ - --disable-compat \ - --enable-o_direct \ - --enable-applib \ - --enable-cmdlib \ - --enable-pkgconfig \ - --enable-driver \ - --enable-fsadm \ - --disable-dmeventd \ - --disable-selinux \ - --disable-nls \ - -make - -$MAKEINSTALL diff --git a/packages/sysutils/LVM2/install b/packages/sysutils/LVM2/install deleted file mode 100755 index 5b399d5221..0000000000 --- a/packages/sysutils/LVM2/install +++ /dev/null @@ -1,18 +0,0 @@ -#!/bin/sh - -. config/options - -mkdir -p $INSTALL/etc/lvm - cp $BUILD/$1*/doc/example.conf $INSTALL/etc/lvm/lvm.conf - -mkdir -p $INSTALL/sbin - cp $BUILD/$1*/tools/lvm $INSTALL/sbin - -mkdir -p $INSTALL/usr/lib - cp -PR $BUILD/$1*/libdm/ioctl/libdevmapper.so $INSTALL/usr/lib/libdevmapper.so.1.02 - ln -sf /usr/lib/libdevmapper.so.1.02 $INSTALL/usr/lib/libdevmapper.so - -# cp -PR $BUILD/$1*/liblvm/liblvm2app.so $INSTALL/usr/lib/liblvm2app.so.2.1 -# ln -sf /usr/lib/liblvm2app.so.2.1 $INSTALL/usr/lib/liblvm2app.so -# cp -PR $BUILD/$1*/tools/liblvm2cmd.so $INSTALL/usr/lib/liblvm2cmd.so.2.02 -# ln -sf /usr/lib/liblvm2cmd.2.02 $INSTALL/usr/lib/liblvm2cmd.so diff --git a/packages/sysutils/LVM2/url b/packages/sysutils/LVM2/url deleted file mode 100644 index ba0b507e61..0000000000 --- a/packages/sysutils/LVM2/url +++ /dev/null @@ -1 +0,0 @@ -ftp://sources.redhat.com/pub/lvm2/LVM2.2.02.54.tgz \ No newline at end of file From 48e12a9410cf6fd5ae185f1460153e50619329d2 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Mon, 5 Apr 2010 23:11:55 +0200 Subject: [PATCH 039/320] xbmc: - install udisks as an replacement for DeviceKit-disks --- packages/mediacenter/xbmc/install | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/mediacenter/xbmc/install b/packages/mediacenter/xbmc/install index 6a1e4c105a..e9be26fc89 100755 --- a/packages/mediacenter/xbmc/install +++ b/packages/mediacenter/xbmc/install @@ -16,7 +16,7 @@ $SCRIPTS/install libssh $SCRIPTS/install dbus $SCRIPTS/install hal -$SCRIPTS/install DeviceKit-disks +$SCRIPTS/install udisks $SCRIPTS/install ConsoleKit $SCRIPTS/install libXt From 536d52e26c8215729873d0e17e25f1757f39a4c5 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Tue, 6 Apr 2010 17:29:33 +0200 Subject: [PATCH 040/320] libva: - update to libva_0.31.0-1+sds12 --- packages/multimedia/libva/build | 2 + packages/multimedia/libva/patches/000_README | 7 + .../patches/032_g45_fix_subpic_formats.diff | 19 + .../patches/033_g45_add_rgba_subpic.diff | 103 + .../034_g45_fix_return_for_unimpl.diff | 77 + .../035_g45_add_yv12_image_format.diff | 95 + .../libva/patches/036_g45_add_vaGetImage.diff | 62 + .../libva/patches/037_g45_add_vaPutImage.diff | 102 + .../038_g45_vaPutSurface_cliprects.diff | 523 + .../patches/039_g45_add_vaDeriveImage.diff | 305 + .../040_g45_add_i420_image_format.diff | 69 + .../patches/102_attribute_visibility.diff | 41 + .../libva/patches/103_fix_vainfo_deps.diff | 22 + .../patches/104_fix_libva_pkgconfig_deps.diff | 18 + .../105_dont_search_LIBGL_DRIVERS_PATH.diff | 21 + .../libva/patches/108_drivers_path.diff | 19 + .../patches/201_libva_LIBVA_DRIVER_NAME.diff | 97 + .../libva/patches/202_check_crystalhd.diff | 155 + .../patches/203_fix_fglrx_detection.diff | 538 + .../patches/204_check_ATIFGLEXTENSION.diff | 325 + .../libva/patches/300_sds_version.diff | 96 + .../libva/patches/321_libva_glx.base.diff | 202 + .../libva/patches/322_libva_glx.diff | 1602 + .../libva/patches/390_compat.base.diff | 143 + .../multimedia/libva/patches/391_compat.diff | 3214 + .../libva/patches/392_compat.dso.diff | 183 + .../libva/patches/libva-0.31.0-1+sds9.diff | 74354 ---------------- packages/multimedia/libva/url | 2 +- 28 files changed, 8041 insertions(+), 74355 deletions(-) create mode 100644 packages/multimedia/libva/patches/000_README create mode 100644 packages/multimedia/libva/patches/032_g45_fix_subpic_formats.diff create mode 100644 packages/multimedia/libva/patches/033_g45_add_rgba_subpic.diff create mode 100644 packages/multimedia/libva/patches/034_g45_fix_return_for_unimpl.diff create mode 100644 packages/multimedia/libva/patches/035_g45_add_yv12_image_format.diff create mode 100644 packages/multimedia/libva/patches/036_g45_add_vaGetImage.diff create mode 100644 packages/multimedia/libva/patches/037_g45_add_vaPutImage.diff create mode 100644 packages/multimedia/libva/patches/038_g45_vaPutSurface_cliprects.diff create mode 100644 packages/multimedia/libva/patches/039_g45_add_vaDeriveImage.diff create mode 100644 packages/multimedia/libva/patches/040_g45_add_i420_image_format.diff create mode 100644 packages/multimedia/libva/patches/102_attribute_visibility.diff create mode 100644 packages/multimedia/libva/patches/103_fix_vainfo_deps.diff create mode 100644 packages/multimedia/libva/patches/104_fix_libva_pkgconfig_deps.diff create mode 100644 packages/multimedia/libva/patches/105_dont_search_LIBGL_DRIVERS_PATH.diff create mode 100644 packages/multimedia/libva/patches/108_drivers_path.diff create mode 100644 packages/multimedia/libva/patches/201_libva_LIBVA_DRIVER_NAME.diff create mode 100644 packages/multimedia/libva/patches/202_check_crystalhd.diff create mode 100644 packages/multimedia/libva/patches/203_fix_fglrx_detection.diff create mode 100644 packages/multimedia/libva/patches/204_check_ATIFGLEXTENSION.diff create mode 100644 packages/multimedia/libva/patches/300_sds_version.diff create mode 100644 packages/multimedia/libva/patches/321_libva_glx.base.diff create mode 100644 packages/multimedia/libva/patches/322_libva_glx.diff create mode 100644 packages/multimedia/libva/patches/390_compat.base.diff create mode 100644 packages/multimedia/libva/patches/391_compat.diff create mode 100644 packages/multimedia/libva/patches/392_compat.dso.diff delete mode 100644 packages/multimedia/libva/patches/libva-0.31.0-1+sds9.diff diff --git a/packages/multimedia/libva/build b/packages/multimedia/libva/build index 9f4319b555..b7e1410701 100755 --- a/packages/multimedia/libva/build +++ b/packages/multimedia/libva/build @@ -10,6 +10,8 @@ $SCRIPTS/build libdrm $SCRIPTS/build Mesa cd $PKG_BUILD +libtoolize +autoreconf ./configure --host=$TARGET_NAME \ --build=$HOST_NAME \ --prefix=/usr \ diff --git a/packages/multimedia/libva/patches/000_README b/packages/multimedia/libva/patches/000_README new file mode 100644 index 0000000000..2bd1a7986e --- /dev/null +++ b/packages/multimedia/libva/patches/000_README @@ -0,0 +1,7 @@ +SDS patches organisation +------------------------ + +0xx - Patches from upstream sources +1xx - Patches that are trivial or fix bugs brought by upstream +2xx - Patches that relate to build system and driver detection +3xx - Patches that provide API extensions to upstream diff --git a/packages/multimedia/libva/patches/032_g45_fix_subpic_formats.diff b/packages/multimedia/libva/patches/032_g45_fix_subpic_formats.diff new file mode 100644 index 0000000000..63b9e31f93 --- /dev/null +++ b/packages/multimedia/libva/patches/032_g45_fix_subpic_formats.diff @@ -0,0 +1,19 @@ +commit d6e726b80766c669dffe846fcd31fcfe5dc89847 +Author: Gwenole Beauchesne +Date: Wed Nov 4 12:13:41 2009 +0000 + + [G45] Fix subpictures formats array terminator. + +diff --git a/i965_drv_video/i965_drv_video.c b/i965_drv_video/i965_drv_video.c +index 6a60ecc..e476ca2 100644 +--- a/i965_drv_video/i965_drv_video.c ++++ b/i965_drv_video/i965_drv_video.c +@@ -76,7 +76,7 @@ static const i965_subpic_format_map_t * + get_subpic_format(const VAImageFormat *va_format) + { + unsigned int i; +- for (i = 0; i < sizeof(i965_subpic_formats_map)/sizeof(i965_subpic_formats_map[0]); i++) { ++ for (i = 0; i965_subpic_formats_map[i].type != 0; i++) { + const i965_subpic_format_map_t * const m = &i965_subpic_formats_map[i]; + if (m->va_format.fourcc == va_format->fourcc && + (m->type == I965_SURFACETYPE_RGBA ? diff --git a/packages/multimedia/libva/patches/033_g45_add_rgba_subpic.diff b/packages/multimedia/libva/patches/033_g45_add_rgba_subpic.diff new file mode 100644 index 0000000000..ed2a3f4ff9 --- /dev/null +++ b/packages/multimedia/libva/patches/033_g45_add_rgba_subpic.diff @@ -0,0 +1,103 @@ +commit 98edda85a2d734763a5f40478a063d3e289e1389 +Author: Gwenole Beauchesne +Date: Wed Nov 4 10:56:54 2009 +0000 + + [G45] Add RGBA subpictures. + +diff --git a/i965_drv_video/i965_drv_video.c b/i965_drv_video/i965_drv_video.c +index e476ca2..637e304 100644 +--- a/i965_drv_video/i965_drv_video.c ++++ b/i965_drv_video/i965_drv_video.c +@@ -70,6 +70,14 @@ i965_subpic_formats_map[I965_MAX_SUBPIC_FORMATS + 1] = { + { I965_SURFACETYPE_INDEXED, I965_SURFACEFORMAT_A4P4_UNORM, + { VA_FOURCC('A','I','4','4'), VA_MSB_FIRST, 8, }, + 0 }, ++ { I965_SURFACETYPE_RGBA, I965_SURFACEFORMAT_B8G8R8A8_UNORM, ++ { VA_FOURCC('B','G','R','A'), VA_LSB_FIRST, 32, ++ 32, 0x00ff0000, 0x0000ff00, 0x000000ff, 0xff000000 }, ++ 0 }, ++ { I965_SURFACETYPE_RGBA, I965_SURFACEFORMAT_R8G8B8A8_UNORM, ++ { VA_FOURCC('R','G','B','A'), VA_LSB_FIRST, 32, ++ 32, 0x000000ff, 0x0000ff00, 0x00ff0000, 0xff000000 }, ++ 0 }, + }; + + static const i965_subpic_format_map_t * +@@ -467,6 +475,7 @@ i965_CreateSubpicture(VADriverContextP ctx, + obj_subpic->format = m->format; + obj_subpic->width = obj_image->image.width; + obj_subpic->height = obj_image->image.height; ++ obj_subpic->pitch = obj_image->image.pitches[0]; + obj_subpic->bo = obj_image->bo; + return VA_STATUS_SUCCESS; + } +@@ -1218,6 +1227,15 @@ i965_CreateImage(VADriverContextP ctx, + image->component_order[1] = 'G'; + image->component_order[2] = 'B'; + break; ++ case VA_FOURCC('A','R','G','B'): ++ case VA_FOURCC('A','B','G','R'): ++ case VA_FOURCC('B','G','R','A'): ++ case VA_FOURCC('R','G','B','A'): ++ image->num_planes = 1; ++ image->pitches[0] = width * 4; ++ image->offsets[0] = 0; ++ image->data_size = image->offsets[0] + image->pitches[0] * height; ++ break; + default: + goto error; + } +diff --git a/i965_drv_video/i965_drv_video.h b/i965_drv_video/i965_drv_video.h +index fa09869..2f538c2 100644 +--- a/i965_drv_video/i965_drv_video.h ++++ b/i965_drv_video/i965_drv_video.h +@@ -44,7 +44,7 @@ + #define I965_MAX_ENTRYPOINTS 5 + #define I965_MAX_CONFIG_ATTRIBUTES 10 + #define I965_MAX_IMAGE_FORMATS 10 +-#define I965_MAX_SUBPIC_FORMATS 2 ++#define I965_MAX_SUBPIC_FORMATS 4 + #define I965_MAX_DISPLAY_ATTRIBUTES 4 + #define I965_STR_VENDOR "i965 Driver 0.1" + +@@ -126,6 +126,7 @@ struct object_subpic + unsigned int format; + int width; + int height; ++ int pitch; + dri_bo *bo; + }; + +diff --git a/i965_drv_video/i965_render.c b/i965_drv_video/i965_render.c +index 4a4f041..c738d22 100644 +--- a/i965_drv_video/i965_render.c ++++ b/i965_drv_video/i965_render.c +@@ -587,7 +587,7 @@ i965_subpic_render_src_surface_state(VADriverContextP ctx, + int index, + dri_bo *region, + unsigned long offset, +- int w, int h, int format) ++ int w, int h, int p, int format) + { + struct i965_driver_data *i965 = i965_driver_data(ctx); + struct i965_render_state *render_state = &i965->render_state; +@@ -621,7 +621,7 @@ i965_subpic_render_src_surface_state(VADriverContextP ctx, + ss->ss2.mip_count = 0; + ss->ss2.render_target_rotation = 0; + +- ss->ss3.pitch = w - 1; ++ ss->ss3.pitch = p - 1; + + dri_bo_emit_reloc(ss_bo, + I915_GEM_DOMAIN_SAMPLER, 0, +@@ -679,8 +679,8 @@ i965_subpic_render_src_surfaces_state(VADriverContextP ctx, + region = obj_surface->bo; + subpic_region = obj_image->bo; + /*subpicture surface*/ +- i965_subpic_render_src_surface_state(ctx, 1, subpic_region, 0, obj_subpic->width, obj_subpic->height, obj_subpic->format); +- i965_subpic_render_src_surface_state(ctx, 2, subpic_region, 0, obj_subpic->width, obj_subpic->height, obj_subpic->format); ++ i965_subpic_render_src_surface_state(ctx, 1, subpic_region, 0, obj_subpic->width, obj_subpic->height, obj_subpic->pitch, obj_subpic->format); ++ i965_subpic_render_src_surface_state(ctx, 2, subpic_region, 0, obj_subpic->width, obj_subpic->height, obj_subpic->pitch, obj_subpic->format); + } + + static void diff --git a/packages/multimedia/libva/patches/034_g45_fix_return_for_unimpl.diff b/packages/multimedia/libva/patches/034_g45_fix_return_for_unimpl.diff new file mode 100644 index 0000000000..f307ec2184 --- /dev/null +++ b/packages/multimedia/libva/patches/034_g45_fix_return_for_unimpl.diff @@ -0,0 +1,77 @@ +commit ff263433c32aac08574b58b26f3f4be7abe05bdf +Author: Gwenole Beauchesne +Date: Wed Nov 4 13:23:40 2009 +0000 + + [G45] Don't return VA_STATUS_SUCCESS for unimplemented functions. + +diff --git a/i965_drv_video/i965_drv_video.c b/i965_drv_video/i965_drv_video.c +index 637e304..9e8502a 100644 +--- a/i965_drv_video/i965_drv_video.c ++++ b/i965_drv_video/i965_drv_video.c +@@ -496,7 +496,8 @@ i965_SetSubpictureImage(VADriverContextP ctx, + VASubpictureID subpicture, + VAImageID image) + { +- return VA_STATUS_SUCCESS; ++ /* TODO */ ++ return VA_STATUS_ERROR_UNIMPLEMENTED; + } + + VAStatus +@@ -506,7 +507,8 @@ i965_SetSubpictureChromakey(VADriverContextP ctx, + unsigned int chromakey_max, + unsigned int chromakey_mask) + { +- return VA_STATUS_SUCCESS; ++ /* TODO */ ++ return VA_STATUS_ERROR_UNIMPLEMENTED; + } + + VAStatus +@@ -514,7 +516,8 @@ i965_SetSubpictureGlobalAlpha(VADriverContextP ctx, + VASubpictureID subpicture, + float global_alpha) + { +- return VA_STATUS_SUCCESS; ++ /* TODO */ ++ return VA_STATUS_ERROR_UNIMPLEMENTED; + } + + VAStatus +@@ -1103,7 +1106,7 @@ i965_GetDisplayAttributes(VADriverContextP ctx, + int num_attributes) + { + /* TODO */ +- return VA_STATUS_ERROR_UNKNOWN; ++ return VA_STATUS_ERROR_UNIMPLEMENTED; + } + + /* +@@ -1118,7 +1121,7 @@ i965_SetDisplayAttributes(VADriverContextP ctx, + int num_attributes) + { + /* TODO */ +- return VA_STATUS_ERROR_UNKNOWN; ++ return VA_STATUS_ERROR_UNIMPLEMENTED; + } + + VAStatus +@@ -1128,7 +1131,7 @@ i965_DbgCopySurfaceToBuffer(VADriverContextP ctx, + unsigned int *stride) /* out */ + { + /* TODO */ +- return VA_STATUS_ERROR_UNKNOWN; ++ return VA_STATUS_ERROR_UNIMPLEMENTED; + } + + static VAStatus +@@ -1270,7 +1273,8 @@ VAStatus i965_DeriveImage(VADriverContextP ctx, + VASurfaceID surface, + VAImage *image) /* out */ + { +- return VA_STATUS_SUCCESS; ++ /* TODO */ ++ return VA_STATUS_ERROR_OPERATION_FAILED; + } + + static void diff --git a/packages/multimedia/libva/patches/035_g45_add_yv12_image_format.diff b/packages/multimedia/libva/patches/035_g45_add_yv12_image_format.diff new file mode 100644 index 0000000000..94f2a65b02 --- /dev/null +++ b/packages/multimedia/libva/patches/035_g45_add_yv12_image_format.diff @@ -0,0 +1,95 @@ +commit c5cb995d6cd49f5f2988b1721cb6b5da8a9b2c09 +Author: Gwenole Beauchesne +Date: Wed Nov 4 13:01:44 2009 +0000 + + [G45] Add YV12 image format. + +diff --git a/i965_drv_video/i965_drv_video.c b/i965_drv_video/i965_drv_video.c +index 9e8502a..6488570 100644 +--- a/i965_drv_video/i965_drv_video.c ++++ b/i965_drv_video/i965_drv_video.c +@@ -54,6 +54,36 @@ enum { + I965_SURFACETYPE_INDEXED + }; + ++/* List of supported image formats */ ++typedef struct { ++ unsigned int type; ++ VAImageFormat va_format; ++} i965_image_format_map_t; ++ ++static const i965_image_format_map_t ++i965_image_formats_map[I965_MAX_IMAGE_FORMATS + 1] = { ++ { I965_SURFACETYPE_YUV, ++ { VA_FOURCC('Y','V','1','2'), VA_LSB_FIRST, 12, } }, ++}; ++ ++static const i965_image_format_map_t * ++get_image_format(const VAImageFormat *va_format) ++{ ++ unsigned int i; ++ for (i = 0; i965_image_formats_map[i].type != 0; i++) { ++ const i965_image_format_map_t * const m = &i965_image_formats_map[i]; ++ if (m->va_format.fourcc == va_format->fourcc && ++ (m->type == I965_SURFACETYPE_RGBA ? ++ (m->va_format.byte_order == va_format->byte_order && ++ m->va_format.red_mask == va_format->red_mask && ++ m->va_format.green_mask == va_format->green_mask && ++ m->va_format.blue_mask == va_format->blue_mask && ++ m->va_format.alpha_mask == va_format->alpha_mask) : 1)) ++ return m; ++ } ++ return NULL; ++} ++ + /* List of supported subpicture formats */ + typedef struct { + unsigned int type; +@@ -398,8 +428,16 @@ i965_QueryImageFormats(VADriverContextP ctx, + VAImageFormat *format_list, /* out */ + int *num_formats) /* out */ + { ++ int n; ++ ++ for (n = 0; i965_image_formats_map[n].va_format.fourcc != 0; n++) { ++ const i965_image_format_map_t * const m = &i965_image_formats_map[n]; ++ if (format_list) ++ format_list[n] = m->va_format; ++ } ++ + if (num_formats) +- *num_formats = 0; ++ *num_formats = n; + + return VA_STATUS_SUCCESS; + } +@@ -1239,6 +1277,16 @@ i965_CreateImage(VADriverContextP ctx, + image->offsets[0] = 0; + image->data_size = image->offsets[0] + image->pitches[0] * height; + break; ++ case VA_FOURCC('Y','V','1','2'): ++ image->num_planes = 3; ++ image->pitches[0] = width; ++ image->offsets[0] = 0; ++ image->pitches[1] = width2; ++ image->offsets[1] = size + size2; ++ image->pitches[2] = width2; ++ image->offsets[2] = size; ++ image->data_size = size + 2 * size2; ++ break; + default: + goto error; + } +diff --git a/i965_drv_video/i965_drv_video.h b/i965_drv_video/i965_drv_video.h +index 2f538c2..be253ed 100644 +--- a/i965_drv_video/i965_drv_video.h ++++ b/i965_drv_video/i965_drv_video.h +@@ -43,7 +43,7 @@ + #define I965_MAX_PROFILES 11 + #define I965_MAX_ENTRYPOINTS 5 + #define I965_MAX_CONFIG_ATTRIBUTES 10 +-#define I965_MAX_IMAGE_FORMATS 10 ++#define I965_MAX_IMAGE_FORMATS 1 + #define I965_MAX_SUBPIC_FORMATS 4 + #define I965_MAX_DISPLAY_ATTRIBUTES 4 + #define I965_STR_VENDOR "i965 Driver 0.1" diff --git a/packages/multimedia/libva/patches/036_g45_add_vaGetImage.diff b/packages/multimedia/libva/patches/036_g45_add_vaGetImage.diff new file mode 100644 index 0000000000..649a2ec5da --- /dev/null +++ b/packages/multimedia/libva/patches/036_g45_add_vaGetImage.diff @@ -0,0 +1,62 @@ +commit c833a4ef4efa20ab8df18d13bdab1e5c5e4671a8 +Author: Gwenole Beauchesne +Date: Wed Nov 4 13:16:34 2009 +0000 + + [G45] Implement vaGetImage() for full-sized surface readback. + +diff --git a/i965_drv_video/i965_drv_video.c b/i965_drv_video/i965_drv_video.c +index ebaf1ae..59ebdd7 100644 +--- a/i965_drv_video/i965_drv_video.c ++++ b/i965_drv_video/i965_drv_video.c +@@ -1392,7 +1392,50 @@ i965_GetImage(VADriverContextP ctx, + unsigned int height, + VAImageID image) + { +- return VA_STATUS_SUCCESS; ++ struct i965_driver_data *i965 = i965_driver_data(ctx); ++ ++ struct object_surface *obj_surface = SURFACE(surface); ++ if (!obj_surface) ++ return VA_STATUS_ERROR_INVALID_SURFACE; ++ ++ struct object_image *obj_image = IMAGE(image); ++ if (!obj_image) ++ return VA_STATUS_ERROR_INVALID_IMAGE; ++ ++ /* XXX: we only support full-size surface readback */ ++ if (x != 0 || ++ y != 0 || ++ width != obj_surface->width || ++ height != obj_surface->height) ++ return VA_STATUS_ERROR_INVALID_PARAMETER; ++ ++ /* XXX: we only support 1:1 image copies */ ++ if (width != obj_image->image.width || ++ height != obj_image->image.height) ++ return VA_STATUS_ERROR_INVALID_PARAMETER; ++ ++ VAStatus va_status; ++ void *image_data = NULL; ++ ++ va_status = i965_MapBuffer(ctx, obj_image->image.buf, &image_data); ++ if (va_status != VA_STATUS_SUCCESS) ++ return va_status; ++ ++ dri_bo_map(obj_surface->bo, 0); ++ ++ switch (obj_image->image.format.fourcc) { ++ case VA_FOURCC('Y','V','1','2'): /* YV12 is native format here */ ++ memcpy(image_data, obj_surface->bo->virtual, obj_surface->bo->size); ++ break; ++ default: ++ va_status = VA_STATUS_ERROR_OPERATION_FAILED; ++ break; ++ } ++ ++ dri_bo_unmap(obj_surface->bo); ++ ++ i965_UnmapBuffer(ctx, obj_image->image.buf); ++ return va_status; + } + + VAStatus diff --git a/packages/multimedia/libva/patches/037_g45_add_vaPutImage.diff b/packages/multimedia/libva/patches/037_g45_add_vaPutImage.diff new file mode 100644 index 0000000000..94859f67bb --- /dev/null +++ b/packages/multimedia/libva/patches/037_g45_add_vaPutImage.diff @@ -0,0 +1,102 @@ +commit c00ac73b0fa1f5c4ff9cdc76b7556c5db03c5335 +Author: Gwenole Beauchesne +Date: Wed Nov 4 13:36:39 2009 +0000 + + [G45] Implement vaPutImage() for full-sized surface uploads. + +diff --git a/i965_drv_video/i965_drv_video.c b/i965_drv_video/i965_drv_video.c +index 59ebdd7..5c15439 100644 +--- a/i965_drv_video/i965_drv_video.c ++++ b/i965_drv_video/i965_drv_video.c +@@ -443,22 +443,6 @@ i965_QueryImageFormats(VADriverContextP ctx, + } + + VAStatus +-i965_PutImage(VADriverContextP ctx, +- VASurfaceID surface, +- VAImageID image, +- int src_x, +- int src_y, +- unsigned int src_width, +- unsigned int src_height, +- int dest_x, +- int dest_y, +- unsigned int dest_width, +- unsigned int dest_height) +-{ +- return VA_STATUS_SUCCESS; +-} +- +-VAStatus + i965_QuerySubpictureFormats(VADriverContextP ctx, + VAImageFormat *format_list, /* out */ + unsigned int *flags, /* out */ +@@ -1439,6 +1423,68 @@ i965_GetImage(VADriverContextP ctx, + } + + VAStatus ++i965_PutImage(VADriverContextP ctx, ++ VASurfaceID surface, ++ VAImageID image, ++ int src_x, ++ int src_y, ++ unsigned int src_width, ++ unsigned int src_height, ++ int dest_x, ++ int dest_y, ++ unsigned int dest_width, ++ unsigned int dest_height) ++{ ++ struct i965_driver_data *i965 = i965_driver_data(ctx); ++ ++ struct object_surface *obj_surface = SURFACE(surface); ++ if (!obj_surface) ++ return VA_STATUS_ERROR_INVALID_SURFACE; ++ ++ struct object_image *obj_image = IMAGE(image); ++ if (!obj_image) ++ return VA_STATUS_ERROR_INVALID_IMAGE; ++ ++ /* XXX: we don't support partial video surface updates */ ++ if (src_x != 0 || ++ src_y != 0 || ++ src_width != obj_image->image.width || ++ src_height != obj_image->image.height) ++ return VA_STATUS_ERROR_OPERATION_FAILED; ++ if (dest_x != 0 || ++ dest_y != 0 || ++ dest_width != obj_surface->width || ++ dest_height != obj_surface->height) ++ return VA_STATUS_ERROR_OPERATION_FAILED; ++ if (src_width != dest_width || ++ src_height != dest_height) ++ return VA_STATUS_ERROR_OPERATION_FAILED; ++ ++ VAStatus va_status; ++ void *image_data = NULL; ++ ++ va_status = i965_MapBuffer(ctx, obj_image->image.buf, &image_data); ++ if (va_status != VA_STATUS_SUCCESS) ++ return va_status; ++ ++ dri_bo_map(obj_surface->bo, 1); ++ ++ switch (obj_image->image.format.fourcc) { ++ case VA_FOURCC('Y','V','1','2'): /* YV12 is native format here */ ++ memcpy(obj_surface->bo->virtual, image_data, obj_surface->bo->size); ++ break; ++ default: ++ va_status = VA_STATUS_ERROR_OPERATION_FAILED; ++ break; ++ } ++ ++ dri_bo_unmap(obj_surface->bo); ++ ++ i965_UnmapBuffer(ctx, obj_image->image.buf); ++ return va_status; ++} ++ ++VAStatus + i965_PutSurface(VADriverContextP ctx, + VASurfaceID surface, + Drawable draw, /* X Drawable */ diff --git a/packages/multimedia/libva/patches/038_g45_vaPutSurface_cliprects.diff b/packages/multimedia/libva/patches/038_g45_vaPutSurface_cliprects.diff new file mode 100644 index 0000000000..f1eb38a5a0 --- /dev/null +++ b/packages/multimedia/libva/patches/038_g45_vaPutSurface_cliprects.diff @@ -0,0 +1,523 @@ +commit ab248483d89c6cf7beb7a3a87c9b9a55464023cc +Author: Gwenole Beauchesne +Date: Wed Nov 4 17:34:53 2009 +0000 + + [G45] Handle cliprects in vaPutSurface(). + +diff --git a/i965_drv_video/i965_drv_video.c b/i965_drv_video/i965_drv_video.c +index 5c15439..d4ad6e1 100644 +--- a/i965_drv_video/i965_drv_video.c ++++ b/i965_drv_video/i965_drv_video.c +@@ -1507,13 +1507,23 @@ i965_PutSurface(VADriverContextP ctx, + union dri_buffer *buffer; + struct intel_region *dest_region; + struct object_surface *obj_surface; +- int ret; ++ int ret; + uint32_t name; ++ VARectangle src_rect, dst_rect; + Bool new_region = False; ++ + /* Currently don't support DRI1 */ + if (dri_state->driConnectedFlag != VA_DRI2) + return VA_STATUS_ERROR_UNKNOWN; + ++ /* XXX: we currently only support up to 64 cliprects */ ++ if (number_cliprects > MAX_CLIP_RECTS) ++ return VA_STATUS_ERROR_OPERATION_FAILED; ++ ++ obj_surface = SURFACE(surface); ++ if (!obj_surface) ++ return VA_STATUS_ERROR_INVALID_SURFACE; ++ + dri_drawable = dri_get_drawable(ctx, draw); + assert(dri_drawable); + +@@ -1552,17 +1562,24 @@ i965_PutSurface(VADriverContextP ctx, + assert(ret == 0); + } + +- i965_render_put_surface(ctx, surface, +- srcx, srcy, srcw, srch, +- destx, desty, destw, desth); +- obj_surface = SURFACE(surface); +- if(obj_surface->subpic != VA_INVALID_ID) { +- i965_render_put_subpic(ctx, surface, +- srcx, srcy, srcw, srch, +- destx, desty, destw, desth); +- } +- dri_swap_buffer(ctx, dri_drawable); ++ src_rect.x = srcx; ++ src_rect.y = srcy; ++ src_rect.width = srcw; ++ src_rect.height = srch; ++ ++ dst_rect.x = destx; ++ dst_rect.y = desty; ++ dst_rect.width = destw; ++ dst_rect.height = desth; + ++ i965_render_put_surface(ctx, surface, &src_rect, &dst_rect, ++ cliprects, number_cliprects); ++ ++ if (obj_surface->subpic != VA_INVALID_ID) ++ i965_render_put_subpic(ctx, surface, &src_rect, &dst_rect, ++ cliprects, number_cliprects); ++ ++ dri_swap_buffer(ctx, dri_drawable); + return VA_STATUS_SUCCESS; + } + +diff --git a/i965_drv_video/i965_render.c b/i965_drv_video/i965_render.c +index c738d22..301d51d 100644 +--- a/i965_drv_video/i965_render.c ++++ b/i965_drv_video/i965_render.c +@@ -788,13 +788,81 @@ i965_render_binding_table(VADriverContextP ctx) + dri_bo_unmap(render_state->wm.binding_table); + } + +-static void ++static unsigned int ++i965_render_do_upload_vertex(VADriverContextP ctx, ++ unsigned int width, ++ unsigned int height, ++ const VARectangle *src_rect, ++ const VARectangle *dst_rect, ++ const VARectangle *cliprects, ++ unsigned int num_cliprects) ++{ ++ struct i965_driver_data *i965 = i965_driver_data(ctx); ++ struct i965_render_state *render_state = &i965->render_state; ++ struct intel_region *dest_region = render_state->draw_region; ++ float *vb, tx1, tx2, ty1, ty2; ++ int x1, x2, y1, y2; ++ unsigned int i, n; ++ ++ if (!cliprects || num_cliprects == 0) { ++ cliprects = dst_rect; ++ num_cliprects = 1; ++ } ++ ++ dri_bo_map(render_state->vb.vertex_buffer, 1); ++ assert(render_state->vb.vertex_buffer->virtual); ++ vb = render_state->vb.vertex_buffer->virtual; ++ ++ for (n = 0, i = 0; i < num_cliprects; i++) { ++ x1 = dest_region->x + cliprects[i].x; ++ y1 = dest_region->y + cliprects[i].y; ++ x2 = x1 + cliprects[i].width; ++ y2 = y1 + cliprects[i].height; ++ x1 = MAX(x1, dst_rect->x); ++ y1 = MAX(y1, dst_rect->y); ++ x2 = MIN(x2, dst_rect->x + dst_rect->width); ++ y2 = MIN(y2, dst_rect->y + dst_rect->height); ++ ++ if (x2 <= x1 || y2 <= y1) ++ continue; ++ ++ const float sx1 = (float)(x1 - dst_rect->x) / (float)dst_rect->width; ++ const float sy1 = (float)(y1 - dst_rect->y) / (float)dst_rect->height; ++ const float sx2 = (float)(x2 - dst_rect->x) / (float)dst_rect->width; ++ const float sy2 = (float)(y2 - dst_rect->y) / (float)dst_rect->height; ++ tx1 = ((float)src_rect->x + sx1 * (float)src_rect->width) / width; ++ ty1 = ((float)src_rect->y + sy1 * (float)src_rect->height) / height; ++ tx2 = ((float)src_rect->x + sx2 * (float)src_rect->width) / width; ++ ty2 = ((float)src_rect->y + sy2 * (float)src_rect->height) / height; ++ ++ vb[n++] = tx2; ++ vb[n++] = ty2; ++ vb[n++] = x2; ++ vb[n++] = y2; ++ ++ vb[n++] = tx1; ++ vb[n++] = ty2; ++ vb[n++] = x1; ++ vb[n++] = y2; ++ ++ vb[n++] = tx1; ++ vb[n++] = ty1; ++ vb[n++] = x1; ++ vb[n++] = y1; ++ } ++ ++ dri_bo_unmap(render_state->vb.vertex_buffer); ++ return n / 12; ++} ++ ++static unsigned int + i965_subpic_render_upload_vertex(VADriverContextP ctx, + VASurfaceID surface, +- const VARectangle *output_rect) +-{ ++ const VARectangle *output_rect, ++ const VARectangle *cliprects, ++ unsigned int num_cliprects) ++{ + struct i965_driver_data *i965 = i965_driver_data(ctx); +- struct i965_render_state *render_state = &i965->render_state; + struct object_surface *obj_surface = SURFACE(surface); + struct object_subpic *obj_subpic = SUBPIC(obj_surface->subpic); + +@@ -804,8 +872,6 @@ i965_subpic_render_upload_vertex(VADriverContextP ctx, + const float ssy = (float)output_rect->height / (float)obj_surface->height; + const float sx = psx * ssx; + const float sy = psy * ssy; +- float *vb, tx1, tx2, ty1, ty2, x1, x2, y1, y2; +- int i = 0; + + VARectangle dst_rect; + dst_rect.x = output_rect->x + sx * (float)obj_subpic->dst_rect.x; +@@ -813,106 +879,38 @@ i965_subpic_render_upload_vertex(VADriverContextP ctx, + dst_rect.width = sx * (float)obj_subpic->dst_rect.width; + dst_rect.height = sy * (float)obj_subpic->dst_rect.height; + +- dri_bo_map(render_state->vb.vertex_buffer, 1); +- assert(render_state->vb.vertex_buffer->virtual); +- vb = render_state->vb.vertex_buffer->virtual; +- +- tx1 = (float)obj_subpic->src_rect.x / (float)obj_subpic->width; +- ty1 = (float)obj_subpic->src_rect.y / (float)obj_subpic->height; +- tx2 = (float)(obj_subpic->src_rect.x + obj_subpic->src_rect.width) / (float)obj_subpic->width; +- ty2 = (float)(obj_subpic->src_rect.y + obj_subpic->src_rect.height) / (float)obj_subpic->height; +- +- x1 = (float)dst_rect.x; +- y1 = (float)dst_rect.y; +- x2 = (float)(dst_rect.x + dst_rect.width); +- y2 = (float)(dst_rect.y + dst_rect.height); +- +- vb[i++] = tx2; +- vb[i++] = ty2; +- vb[i++] = x2; +- vb[i++] = y2; +- +- vb[i++] = tx1; +- vb[i++] = ty2; +- vb[i++] = x1; +- vb[i++] = y2; +- +- vb[i++] = tx1; +- vb[i++] = ty1; +- vb[i++] = x1; +- vb[i++] = y1; +- dri_bo_unmap(render_state->vb.vertex_buffer); ++ return i965_render_do_upload_vertex(ctx, ++ obj_subpic->width, obj_subpic->height, ++ &obj_subpic->src_rect, &dst_rect, ++ cliprects, num_cliprects); + } + +-static void ++static unsigned int + i965_render_upload_vertex(VADriverContextP ctx, + VASurfaceID surface, +- short srcx, +- short srcy, +- unsigned short srcw, +- unsigned short srch, +- short destx, +- short desty, +- unsigned short destw, +- unsigned short desth) ++ const VARectangle *src_rect, ++ const VARectangle *dst_rect, ++ const VARectangle *cliprects, ++ unsigned int num_cliprects) + { + struct i965_driver_data *i965 = i965_driver_data(ctx); +- struct i965_render_state *render_state = &i965->render_state; +- struct intel_region *dest_region = render_state->draw_region; +- struct object_surface *obj_surface; +- float *vb; +- +- float u1, v1, u2, v2; +- int i, width, height; +- int box_x1 = dest_region->x + destx; +- int box_y1 = dest_region->y + desty; +- int box_x2 = box_x1 + destw; +- int box_y2 = box_y1 + desth; +- +- obj_surface = SURFACE(surface); +- assert(surface); +- width = obj_surface->width; +- height = obj_surface->height; +- +- u1 = (float)srcx / width; +- v1 = (float)srcy / height; +- u2 = (float)(srcx + srcw) / width; +- v2 = (float)(srcy + srch) / height; +- +- dri_bo_map(render_state->vb.vertex_buffer, 1); +- assert(render_state->vb.vertex_buffer->virtual); +- vb = render_state->vb.vertex_buffer->virtual; +- +- i = 0; +- vb[i++] = u2; +- vb[i++] = v2; +- vb[i++] = (float)box_x2; +- vb[i++] = (float)box_y2; +- +- vb[i++] = u1; +- vb[i++] = v2; +- vb[i++] = (float)box_x1; +- vb[i++] = (float)box_y2; +- +- vb[i++] = u1; +- vb[i++] = v1; +- vb[i++] = (float)box_x1; +- vb[i++] = (float)box_y1; ++ struct object_surface *obj_surface = SURFACE(surface); ++ assert(obj_surface); + +- dri_bo_unmap(render_state->vb.vertex_buffer); ++ return i965_render_do_upload_vertex(ctx, ++ obj_surface->width, obj_surface->height, ++ src_rect, ++ dst_rect, ++ cliprects, num_cliprects); + } + +-static void ++static unsigned int + i965_surface_render_state_setup(VADriverContextP ctx, +- VASurfaceID surface, +- short srcx, +- short srcy, +- unsigned short srcw, +- unsigned short srch, +- short destx, +- short desty, +- unsigned short destw, +- unsigned short desth) ++ VASurfaceID surface, ++ const VARectangle *src_rect, ++ const VARectangle *dst_rect, ++ const VARectangle *cliprects, ++ unsigned int num_cliprects) + { + i965_render_vs_unit(ctx); + i965_render_sf_unit(ctx); +@@ -923,21 +921,17 @@ i965_surface_render_state_setup(VADriverContextP ctx, + i965_render_cc_viewport(ctx); + i965_render_cc_unit(ctx); + i965_render_binding_table(ctx); +- i965_render_upload_vertex(ctx, surface, +- srcx, srcy, srcw, srch, +- destx, desty, destw, desth); ++ return i965_render_upload_vertex(ctx, surface, src_rect, dst_rect, ++ cliprects, num_cliprects); + } +-static void ++ ++static unsigned int + i965_subpic_render_state_setup(VADriverContextP ctx, +- VASurfaceID surface, +- short srcx, +- short srcy, +- unsigned short srcw, +- unsigned short srch, +- short destx, +- short desty, +- unsigned short destw, +- unsigned short desth) ++ VASurfaceID surface, ++ const VARectangle *src_rect, ++ const VARectangle *dst_rect, ++ const VARectangle *cliprects, ++ unsigned int num_cliprects) + { + i965_render_vs_unit(ctx); + i965_render_sf_unit(ctx); +@@ -948,16 +942,10 @@ i965_subpic_render_state_setup(VADriverContextP ctx, + i965_render_cc_viewport(ctx); + i965_subpic_render_cc_unit(ctx); + i965_render_binding_table(ctx); +- +- VARectangle output_rect; +- output_rect.x = destx; +- output_rect.y = desty; +- output_rect.width = destw; +- output_rect.height = desth; +- i965_subpic_render_upload_vertex(ctx, surface, &output_rect); ++ return i965_subpic_render_upload_vertex(ctx, surface, dst_rect, ++ cliprects, num_cliprects); + } + +- + static void + i965_render_pipeline_select(VADriverContextP ctx) + { +@@ -1193,7 +1181,7 @@ i965_render_upload_image_palette( + } + + static void +-i965_render_startup(VADriverContextP ctx) ++i965_render_startup(VADriverContextP ctx, unsigned int vb_offset) + { + struct i965_driver_data *i965 = i965_driver_data(ctx); + struct i965_render_state *render_state = &i965->render_state; +@@ -1204,7 +1192,7 @@ i965_render_startup(VADriverContextP ctx) + (0 << VB0_BUFFER_INDEX_SHIFT) | + VB0_VERTEXDATA | + ((4 * 4) << VB0_BUFFER_PITCH_SHIFT)); +- OUT_RELOC(ctx, render_state->vb.vertex_buffer, I915_GEM_DOMAIN_VERTEX, 0, 0); ++ OUT_RELOC(ctx, render_state->vb.vertex_buffer, I915_GEM_DOMAIN_VERTEX, 0, vb_offset); + + if (IS_IGDNG(i965->intel.device_id)) + OUT_RELOC(ctx, render_state->vb.vertex_buffer, I915_GEM_DOMAIN_VERTEX, 0, 12 * 4); +@@ -1269,8 +1257,10 @@ i965_clear_dest_region(VADriverContextP ctx) + } + + static void +-i965_surface_render_pipeline_setup(VADriverContextP ctx) ++i965_surface_render_pipeline_setup(VADriverContextP ctx, unsigned int n_rects) + { ++ unsigned int i; ++ + intel_batchbuffer_start_atomic(ctx, 0x1000); + intel_batchbuffer_emit_mi_flush(ctx); + i965_clear_dest_region(ctx); +@@ -1284,13 +1274,16 @@ i965_surface_render_pipeline_setup(VADriverContextP ctx) + i965_render_cs_urb_layout(ctx); + i965_render_drawing_rectangle(ctx); + i965_render_vertex_elements(ctx); +- i965_render_startup(ctx); ++ for (i = 0; i < n_rects; i++) ++ i965_render_startup(ctx, 48 * i); + intel_batchbuffer_end_atomic(ctx); + } + + static void +-i965_subpic_render_pipeline_setup(VADriverContextP ctx) ++i965_subpic_render_pipeline_setup(VADriverContextP ctx, unsigned int n_rects) + { ++ unsigned int i; ++ + intel_batchbuffer_start_atomic(ctx, 0x1000); + intel_batchbuffer_emit_mi_flush(ctx); + i965_render_pipeline_select(ctx); +@@ -1303,7 +1296,8 @@ i965_subpic_render_pipeline_setup(VADriverContextP ctx) + i965_render_cs_urb_layout(ctx); + i965_render_drawing_rectangle(ctx); + i965_render_vertex_elements(ctx); +- i965_render_startup(ctx); ++ for (i = 0; i < n_rects; i++) ++ i965_render_startup(ctx, 48 * i); + intel_batchbuffer_end_atomic(ctx); + } + +@@ -1397,45 +1391,39 @@ i965_render_initialize(VADriverContextP ctx) + void + i965_render_put_surface(VADriverContextP ctx, + VASurfaceID surface, +- short srcx, +- short srcy, +- unsigned short srcw, +- unsigned short srch, +- short destx, +- short desty, +- unsigned short destw, +- unsigned short desth) ++ const VARectangle *src_rect, ++ const VARectangle *dst_rect, ++ const VARectangle *cliprects, ++ unsigned int num_cliprects) + { ++ unsigned int n_rects; ++ + i965_render_initialize(ctx); +- i965_surface_render_state_setup(ctx, surface, +- srcx, srcy, srcw, srch, +- destx, desty, destw, desth); +- i965_surface_render_pipeline_setup(ctx); ++ n_rects = i965_surface_render_state_setup(ctx, surface, ++ src_rect, dst_rect, ++ cliprects, num_cliprects); ++ i965_surface_render_pipeline_setup(ctx, n_rects); + intel_batchbuffer_flush(ctx); + } + + void + i965_render_put_subpic(VADriverContextP ctx, +- VASurfaceID surface, +- short srcx, +- short srcy, +- unsigned short srcw, +- unsigned short srch, +- short destx, +- short desty, +- unsigned short destw, +- unsigned short desth) ++ VASurfaceID surface, ++ const VARectangle *src_rect, ++ const VARectangle *dst_rect, ++ const VARectangle *cliprects, ++ unsigned int num_cliprects) + { + struct i965_driver_data *i965 = i965_driver_data(ctx); + struct object_surface *obj_surface = SURFACE(surface); + struct object_subpic *obj_subpic = SUBPIC(obj_surface->subpic); ++ unsigned int n_rects; + assert(obj_subpic); + + i965_render_initialize(ctx); +- i965_subpic_render_state_setup(ctx, surface, +- srcx, srcy, srcw, srch, +- destx, desty, destw, desth); +- i965_subpic_render_pipeline_setup(ctx); ++ n_rects = i965_subpic_render_state_setup(ctx, surface, src_rect, dst_rect, ++ cliprects, num_cliprects); ++ i965_subpic_render_pipeline_setup(ctx, n_rects); + i965_render_upload_image_palette(ctx, obj_subpic->image, 0xff); + intel_batchbuffer_flush(ctx); + } +diff --git a/i965_drv_video/i965_render.h b/i965_drv_video/i965_render.h +index e3dce02..d2e23f1 100644 +--- a/i965_drv_video/i965_render.h ++++ b/i965_drv_video/i965_render.h +@@ -28,6 +28,7 @@ + #ifndef _I965_RENDER_H_ + #define _I965_RENDER_H_ + ++#define MAX_CLIP_RECTS 80 /* vb_bo:4096 / vb:(3*4*4) */ + #define MAX_RENDER_SURFACES 16 + #define MAX_SAMPLERS 16 + +@@ -65,27 +66,20 @@ struct i965_render_state + + Bool i965_render_init(VADriverContextP ctx); + Bool i965_render_terminate(VADriverContextP ctx); ++ + void i965_render_put_surface(VADriverContextP ctx, + VASurfaceID surface, +- short srcx, +- short srcy, +- unsigned short srcw, +- unsigned short srch, +- short destx, +- short desty, +- unsigned short destw, +- unsigned short desth); +- ++ const VARectangle *src_rect, ++ const VARectangle *dst_rect, ++ const VARectangle *cliprects, ++ unsigned int num_cliprects); + + void + i965_render_put_subpic(VADriverContextP ctx, +- VASurfaceID surface, +- short srcx, +- short srcy, +- unsigned short srcw, +- unsigned short srch, +- short destx, +- short desty, +- unsigned short destw, +- unsigned short desth); ++ VASurfaceID surface, ++ const VARectangle *src_rect, ++ const VARectangle *dst_rect, ++ const VARectangle *cliprects, ++ unsigned int num_cliprects); ++ + #endif /* _I965_RENDER_H_ */ diff --git a/packages/multimedia/libva/patches/039_g45_add_vaDeriveImage.diff b/packages/multimedia/libva/patches/039_g45_add_vaDeriveImage.diff new file mode 100644 index 0000000000..3b6365885c --- /dev/null +++ b/packages/multimedia/libva/patches/039_g45_add_vaDeriveImage.diff @@ -0,0 +1,305 @@ +commit 1eb1e3e56d3c7a83aea7361a02167d382619fea8 +Author: Gwenole Beauchesne +Date: Mon Mar 8 17:22:06 2010 +0100 + + [G45] Implement vaDeriveImage(). + +diff --git a/i965_drv_video/i965_drv_video.c b/i965_drv_video/i965_drv_video.c +index eb3b49d..98a824f 100644 +--- a/i965_drv_video/i965_drv_video.c ++++ b/i965_drv_video/i965_drv_video.c +@@ -336,12 +336,27 @@ VAStatus i965_QueryConfigAttributes(VADriverContextP ctx, + return vaStatus; + } + ++static struct object_image * ++i965_CreateImage_impl( ++ VADriverContextP ctx, ++ const VAImageFormat *format, ++ unsigned int width, ++ unsigned int height, ++ VASurfaceID surface ++); ++ ++static void ++i965_DestroyImage_impl( ++ VADriverContextP ctx, ++ struct object_image *obj_image, ++ int from_surface ++); ++ + static void + i965_destroy_surface(struct object_heap *heap, struct object_base *obj) + { + struct object_surface *obj_surface = (struct object_surface *)obj; + +- dri_bo_unreference(obj_surface->bo); + obj_surface->bo = NULL; + object_heap_free(heap, obj); + } +@@ -358,6 +373,13 @@ i965_CreateSurfaces(VADriverContextP ctx, + int i; + VAStatus vaStatus = VA_STATUS_SUCCESS; + ++ /* Internal format: linear I420 (compatible with YV12 VA image) */ ++ static const VAImageFormat vaFormat = { ++ .fourcc = VA_FOURCC('Y','V','1','2'), ++ .byte_order = VA_LSB_FIRST, ++ .bits_per_pixel = 12 ++ }; ++ + /* We only support one format */ + if (VA_RT_FORMAT_YUV420 != format) { + return VA_STATUS_ERROR_UNSUPPORTED_RT_FORMAT; +@@ -366,28 +388,36 @@ i965_CreateSurfaces(VADriverContextP ctx, + for (i = 0; i < num_surfaces; i++) { + int surfaceID = NEW_SURFACE_ID(); + struct object_surface *obj_surface = SURFACE(surfaceID); ++ struct object_image *obj_image; ++ struct object_buffer *obj_buffer; + + if (NULL == obj_surface) { + vaStatus = VA_STATUS_ERROR_ALLOCATION_FAILED; + break; + } + ++ obj_image = i965_CreateImage_impl(ctx, &vaFormat, width, height, surfaceID); ++ if (!obj_image) { ++ vaStatus = VA_STATUS_ERROR_ALLOCATION_FAILED; ++ break; ++ } ++ ++ obj_buffer = BUFFER(obj_image->image.buf); ++ if (!obj_buffer) { ++ vaStatus = VA_STATUS_ERROR_ALLOCATION_FAILED; ++ break; ++ } ++ assert(obj_buffer->buffer_store); ++ + surfaces[i] = surfaceID; + obj_surface->status = VASurfaceReady; + obj_surface->subpic = VA_INVALID_ID; + obj_surface->width = width; + obj_surface->height = height; + obj_surface->size = SIZE_YUV420(width, height); +- obj_surface->bo = dri_bo_alloc(i965->intel.bufmgr, +- "vaapi surface", +- obj_surface->size, +- 64); +- +- assert(obj_surface->bo); +- if (NULL == obj_surface->bo) { +- vaStatus = VA_STATUS_ERROR_UNKNOWN; +- break; +- } ++ obj_surface->image = obj_image->image; ++ obj_surface->is_derived = 0; ++ obj_surface->bo = obj_buffer->buffer_store->bo; + } + + /* Error recovery */ +@@ -417,6 +447,7 @@ i965_DestroySurfaces(VADriverContextP ctx, + struct object_surface *obj_surface = SURFACE(surface_list[i]); + + assert(obj_surface); ++ i965_DestroyImage_impl(ctx, IMAGE(obj_surface->image.image_id), 1); + i965_destroy_surface(&i965->surface_heap, (struct object_base *)obj_surface); + } + +@@ -1200,29 +1231,28 @@ i965_destroy_heap(struct object_heap *heap, + VAStatus + i965_DestroyImage(VADriverContextP ctx, VAImageID image); + +-VAStatus +-i965_CreateImage(VADriverContextP ctx, +- VAImageFormat *format, +- int width, +- int height, +- VAImage *out_image) /* out */ ++static struct object_image * ++i965_CreateImage_impl( ++ VADriverContextP ctx, ++ const VAImageFormat *format, ++ unsigned int width, ++ unsigned int height, ++ VASurfaceID surface ++) + { + struct i965_driver_data *i965 = i965_driver_data(ctx); + struct object_image *obj_image; +- VAStatus va_status = VA_STATUS_ERROR_OPERATION_FAILED; + VAImageID image_id; + unsigned int width2, height2, size2, size; + +- out_image->image_id = VA_INVALID_ID; +- out_image->buf = VA_INVALID_ID; +- + image_id = NEW_IMAGE_ID(); + if (image_id == VA_INVALID_ID) +- return VA_STATUS_ERROR_ALLOCATION_FAILED; ++ return NULL; + + obj_image = IMAGE(image_id); + if (!obj_image) +- return VA_STATUS_ERROR_ALLOCATION_FAILED; ++ return NULL; ++ obj_image->surface = surface; + obj_image->bo = NULL; + obj_image->palette = NULL; + +@@ -1275,9 +1305,9 @@ i965_CreateImage(VADriverContextP ctx, + goto error; + } + +- va_status = i965_CreateBuffer(ctx, 0, VAImageBufferType, +- image->data_size, 1, NULL, &image->buf); +- if (va_status != VA_STATUS_SUCCESS) ++ if (i965_CreateBuffer(ctx, 0, VAImageBufferType, ++ image->data_size, 1, NULL, ++ &image->buf) != VA_STATUS_SUCCESS) + goto error; + + obj_image->bo = BUFFER(image->buf)->buffer_store->bo; +@@ -1292,21 +1322,47 @@ i965_CreateImage(VADriverContextP ctx, + image->format = *format; + image->width = width; + image->height = height; +- +- *out_image = *image; +- return VA_STATUS_SUCCESS; ++ return obj_image; + + error: +- i965_DestroyImage(ctx, image_id); +- return va_status; ++ i965_DestroyImage_impl(ctx, obj_image, 0); ++ return NULL; ++} ++ ++VAStatus ++i965_CreateImage(VADriverContextP ctx, ++ VAImageFormat *format, ++ int width, ++ int height, ++ VAImage *out_image) /* out */ ++{ ++ struct object_image *obj_image; ++ ++ obj_image = i965_CreateImage_impl(ctx, format, width, height, VA_INVALID_ID); ++ if (!obj_image) ++ return VA_STATUS_ERROR_ALLOCATION_FAILED; ++ ++ *out_image = obj_image->image; ++ return VA_STATUS_SUCCESS; + } + + VAStatus i965_DeriveImage(VADriverContextP ctx, + VASurfaceID surface, + VAImage *image) /* out */ + { +- /* TODO */ +- return VA_STATUS_ERROR_OPERATION_FAILED; ++ struct i965_driver_data *i965 = i965_driver_data(ctx); ++ ++ struct object_surface *obj_surface = SURFACE(surface); ++ if (!obj_surface) ++ return VA_STATUS_ERROR_INVALID_SURFACE; ++ ++ struct object_image *obj_image = IMAGE(obj_surface->image.image_id); ++ if (!obj_image) ++ return VA_STATUS_ERROR_INVALID_IMAGE; ++ ++ obj_surface->is_derived = 1; ++ *image = obj_surface->image; ++ return VA_STATUS_SUCCESS; + } + + static void +@@ -1315,15 +1371,24 @@ i965_destroy_image(struct object_heap *heap, struct object_base *obj) + object_heap_free(heap, obj); + } + +- +-VAStatus +-i965_DestroyImage(VADriverContextP ctx, VAImageID image) ++static void ++i965_DestroyImage_impl( ++ VADriverContextP ctx, ++ struct object_image *obj_image, ++ int from_surface ++) + { +- struct i965_driver_data *i965 = i965_driver_data(ctx); +- struct object_image *obj_image = IMAGE(image); ++ struct i965_driver_data * const i965 = i965_driver_data(ctx); + + if (!obj_image) +- return VA_STATUS_SUCCESS; ++ return; ++ ++ if (!from_surface && obj_image->surface != VA_INVALID_ID) { ++ /* only destroy when called from vaDestroySurfaces() */ ++ struct object_surface *obj_surface = SURFACE(obj_image->surface); ++ obj_surface->is_derived = 0; ++ return; ++ } + + if (obj_image->image.buf != VA_INVALID_ID) { + i965_DestroyBuffer(ctx, obj_image->image.buf); +@@ -1336,6 +1401,15 @@ i965_DestroyImage(VADriverContextP ctx, VAImageID image) + } + + i965_destroy_image(&i965->image_heap, (struct object_base *)obj_image); ++} ++ ++VAStatus ++i965_DestroyImage(VADriverContextP ctx, VAImageID image) ++{ ++ struct i965_driver_data *i965 = i965_driver_data(ctx); ++ struct object_image *obj_image = IMAGE(image); ++ ++ i965_DestroyImage_impl(ctx, obj_image, 0); + + return VA_STATUS_SUCCESS; + } +@@ -1382,6 +1456,9 @@ i965_GetImage(VADriverContextP ctx, + if (!obj_surface) + return VA_STATUS_ERROR_INVALID_SURFACE; + ++ if (obj_surface->is_derived) ++ return VA_STATUS_ERROR_SURFACE_BUSY; ++ + struct object_image *obj_image = IMAGE(image); + if (!obj_image) + return VA_STATUS_ERROR_INVALID_IMAGE; +@@ -1441,6 +1518,9 @@ i965_PutImage(VADriverContextP ctx, + if (!obj_surface) + return VA_STATUS_ERROR_INVALID_SURFACE; + ++ if (obj_surface->is_derived) ++ return VA_STATUS_ERROR_SURFACE_BUSY; ++ + struct object_image *obj_image = IMAGE(image); + if (!obj_image) + return VA_STATUS_ERROR_INVALID_IMAGE; +diff --git a/i965_drv_video/i965_drv_video.h b/i965_drv_video/i965_drv_video.h +index be253ed..7f410ab 100644 +--- a/i965_drv_video/i965_drv_video.h ++++ b/i965_drv_video/i965_drv_video.h +@@ -96,6 +96,8 @@ struct object_surface + int width; + int height; + int size; ++ VAImage image; ++ int is_derived; + dri_bo *bo; + }; + +@@ -113,6 +115,7 @@ struct object_image + { + struct object_base base; + VAImage image; ++ VASurfaceID surface; + dri_bo *bo; + unsigned int *palette; + }; diff --git a/packages/multimedia/libva/patches/040_g45_add_i420_image_format.diff b/packages/multimedia/libva/patches/040_g45_add_i420_image_format.diff new file mode 100644 index 0000000000..b2b0ac5e1e --- /dev/null +++ b/packages/multimedia/libva/patches/040_g45_add_i420_image_format.diff @@ -0,0 +1,69 @@ +commit 0b18b60ccc4df5e2dc30ad301451c3bd8b55b49d +Author: Gwenole Beauchesne +Date: Thu Mar 18 12:25:20 2010 +0100 + + [G45] Add I420 image format. + +diff --git a/i965_drv_video/i965_drv_video.c b/i965_drv_video/i965_drv_video.c +index 98a824f..7b3a206 100644 +--- a/i965_drv_video/i965_drv_video.c ++++ b/i965_drv_video/i965_drv_video.c +@@ -64,6 +64,8 @@ static const i965_image_format_map_t + i965_image_formats_map[I965_MAX_IMAGE_FORMATS + 1] = { + { I965_SURFACETYPE_YUV, + { VA_FOURCC('Y','V','1','2'), VA_LSB_FIRST, 12, } }, ++ { I965_SURFACETYPE_YUV, ++ { VA_FOURCC('I','4','2','0'), VA_LSB_FIRST, 12, } }, + }; + + static const i965_image_format_map_t * +@@ -1301,6 +1303,16 @@ i965_CreateImage_impl( + image->offsets[2] = size; + image->data_size = size + 2 * size2; + break; ++ case VA_FOURCC('I','4','2','0'): ++ image->num_planes = 3; ++ image->pitches[0] = width; ++ image->offsets[0] = 0; ++ image->pitches[1] = width2; ++ image->offsets[1] = size; ++ image->pitches[2] = width2; ++ image->offsets[2] = size + size2; ++ image->data_size = size + 2 * size2; ++ break; + default: + goto error; + } +@@ -1485,7 +1497,8 @@ i965_GetImage(VADriverContextP ctx, + dri_bo_map(obj_surface->bo, 0); + + switch (obj_image->image.format.fourcc) { +- case VA_FOURCC('Y','V','1','2'): /* YV12 is native format here */ ++ case VA_FOURCC('Y','V','1','2'): ++ case VA_FOURCC('I','4','2','0'): /* I420 is native format here */ + memcpy(image_data, obj_surface->bo->virtual, obj_surface->bo->size); + break; + default: +@@ -1550,7 +1563,8 @@ i965_PutImage(VADriverContextP ctx, + dri_bo_map(obj_surface->bo, 1); + + switch (obj_image->image.format.fourcc) { +- case VA_FOURCC('Y','V','1','2'): /* YV12 is native format here */ ++ case VA_FOURCC('Y','V','1','2'): ++ case VA_FOURCC('I','4','2','0'): /* I420 is native format here */ + memcpy(obj_surface->bo->virtual, image_data, obj_surface->bo->size); + break; + default: +diff --git a/i965_drv_video/i965_drv_video.h b/i965_drv_video/i965_drv_video.h +index 7f410ab..9e5707b 100644 +--- a/i965_drv_video/i965_drv_video.h ++++ b/i965_drv_video/i965_drv_video.h +@@ -43,7 +43,7 @@ + #define I965_MAX_PROFILES 11 + #define I965_MAX_ENTRYPOINTS 5 + #define I965_MAX_CONFIG_ATTRIBUTES 10 +-#define I965_MAX_IMAGE_FORMATS 1 ++#define I965_MAX_IMAGE_FORMATS 2 + #define I965_MAX_SUBPIC_FORMATS 4 + #define I965_MAX_DISPLAY_ATTRIBUTES 4 + #define I965_STR_VENDOR "i965 Driver 0.1" diff --git a/packages/multimedia/libva/patches/102_attribute_visibility.diff b/packages/multimedia/libva/patches/102_attribute_visibility.diff new file mode 100644 index 0000000000..4d45dc5e50 --- /dev/null +++ b/packages/multimedia/libva/patches/102_attribute_visibility.diff @@ -0,0 +1,41 @@ +commit 26db277f8e028be83d9ab16ef8e4077e9f745c17 +Author: Gwenole Beauchesne +Date: Thu Sep 3 15:46:37 2009 +0000 + + Check for __attribute__((visibility("hidden"))). + +diff --git a/configure.ac b/configure.ac +index eedfe4c..f2d0ea4 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -100,6 +100,30 @@ if test x$enable_i965_driver = xyes && ! $PKG_CONFIG --atleast-version=2.4 libdr + fi + AM_CONDITIONAL(BUILD_I965_DRIVER, test x$enable_i965_driver = xyes) + ++dnl Check for __attribute__((visibility())) ++AC_CACHE_CHECK([whether __attribute__((visibility())) is supported], ++ libva_cv_visibility_attribute, ++ [cat > conftest.c </dev/null 2>&1; then ++ if grep '\.hidden.*foo' conftest.s >/dev/null; then ++ if grep '\.protected.*bar' conftest.s >/dev/null; then ++ libva_cv_visibility_attribute=yes ++ fi ++ fi ++ fi ++ rm -f conftest.[cs] ++]) ++ATTRIBUTE_HIDDEN="" ++if test $libva_cv_visibility_attribute = yes; then ++ ATTRIBUTE_HIDDEN="__attribute__((visibility(\"hidden\")))" ++fi ++AC_DEFINE_UNQUOTED([ATTRIBUTE_HIDDEN], [$ATTRIBUTE_HIDDEN], ++ [Defined to __attribute__((visibility("hidden"))) when available]) ++ + # We only need the headers, we don't link against the DRM libraries + LIBVA_CFLAGS="$DRM_CFLAGS" + AC_SUBST(LIBVA_CFLAGS) diff --git a/packages/multimedia/libva/patches/103_fix_vainfo_deps.diff b/packages/multimedia/libva/patches/103_fix_vainfo_deps.diff new file mode 100644 index 0000000000..4b6b141a63 --- /dev/null +++ b/packages/multimedia/libva/patches/103_fix_vainfo_deps.diff @@ -0,0 +1,22 @@ +commit a07468c4f0e30b5f207a2bdf1b362f5584d748a7 +Author: Gwenole Beauchesne +Date: Tue Sep 22 12:29:56 2009 +0000 + + Fix vainfo dependencies (Konstantin Pavlov). + +diff --git a/test/Makefile.am b/test/Makefile.am +index d7e1b1f..8785259 100644 +--- a/test/Makefile.am ++++ b/test/Makefile.am +@@ -25,9 +25,8 @@ bin_PROGRAMS = vainfo + + AM_CFLAGS = -I$(top_srcdir)/va -I$(top_srcdir)/test/basic -I$(top_srcdir)/src/x11 + +- +-vainfo_LDADD = $(top_srcdir)/va/$(libvabackendlib) +-vainfo_DEPENDENCIES = $(top_srcdir)/va/$(libvabackendlib) ++vainfo_LDADD = $(top_srcdir)/va/libva.la $(top_srcdir)/va/$(libvabackendlib) ++vainfo_DEPENDENCIES = $(top_srcdir)/va/libva.la $(top_srcdir)/va/$(libvabackendlib) + vainfo_SOURCES = vainfo.c + + SUBDIRS = basic decode encode putsurface diff --git a/packages/multimedia/libva/patches/104_fix_libva_pkgconfig_deps.diff b/packages/multimedia/libva/patches/104_fix_libva_pkgconfig_deps.diff new file mode 100644 index 0000000000..98c9cd4d22 --- /dev/null +++ b/packages/multimedia/libva/patches/104_fix_libva_pkgconfig_deps.diff @@ -0,0 +1,18 @@ +commit 5f1314d188c4ecc2e0d5be54bcd663013e8b0077 +Author: Gwenole Beauchesne +Date: Tue Sep 22 13:00:34 2009 +0000 + + Fix libva-x11 dependencies. Ensure this grabs libva so that people don't have to check for that themselves. + +diff --git a/libva-x11.pc.in b/libva-x11.pc.in +index 75e4f0b..6dde07f 100644 +--- a/libva-x11.pc.in ++++ b/libva-x11.pc.in +@@ -6,6 +6,7 @@ display=x11 + + Name: libva-${display} + Description: Userspace Video Acceleration (VA) ${display} interface ++Requires: libva + Version: @PACKAGE_VERSION@ + Libs: -L${libdir} -lva-${display} + Cflags: -I${includedir} diff --git a/packages/multimedia/libva/patches/105_dont_search_LIBGL_DRIVERS_PATH.diff b/packages/multimedia/libva/patches/105_dont_search_LIBGL_DRIVERS_PATH.diff new file mode 100644 index 0000000000..e8752926fb --- /dev/null +++ b/packages/multimedia/libva/patches/105_dont_search_LIBGL_DRIVERS_PATH.diff @@ -0,0 +1,21 @@ +commit ecc7b5f332674ee57ad11a0d6bb58a252549c762 +Author: Gwenole Beauchesne +Date: Tue Sep 22 13:03:23 2009 +0000 + + Don't search LIBGL_DRIVERS_PATH, stick to LIBVA_DRIVERS_PATH only or the default path. + +diff --git a/va/va.c b/va/va.c +index c8e036e..ada70ce 100644 +--- a/va/va.c ++++ b/va/va.c +@@ -127,10 +127,6 @@ static VAStatus va_openDriver(VADisplay dpy, char *driver_name) + { + /* don't allow setuid apps to use LIBVA_DRIVERS_PATH */ + search_path = getenv("LIBVA_DRIVERS_PATH"); +- if (!search_path) +- { +- search_path = getenv("LIBGL_DRIVERS_PATH"); +- } + } + if (!search_path) + { diff --git a/packages/multimedia/libva/patches/108_drivers_path.diff b/packages/multimedia/libva/patches/108_drivers_path.diff new file mode 100644 index 0000000000..701f1d02ec --- /dev/null +++ b/packages/multimedia/libva/patches/108_drivers_path.diff @@ -0,0 +1,19 @@ +commit 43becedcfa2b9b040006868a63c686a131c9ba74 +Author: Gwenole Beauchesne +Date: Wed Jun 24 08:12:13 2009 +0000 + + Install drivers into pkglibdir/va/. + +diff --git a/configure.ac b/configure.ac +index f2d0ea4..ebe5df6 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -73,7 +73,7 @@ AC_ARG_ENABLE(i965-driver, + + AC_ARG_WITH(drivers-path, + [AC_HELP_STRING([--with-drivers-path=[[path]]], [drivers path])],, +- [with_drivers_path="$libdir/dri"]) ++ [with_drivers_path="$libdir/va/drivers"]) + + LIBVA_DRIVERS_PATH="$with_drivers_path" + AC_SUBST(LIBVA_DRIVERS_PATH) diff --git a/packages/multimedia/libva/patches/201_libva_LIBVA_DRIVER_NAME.diff b/packages/multimedia/libva/patches/201_libva_LIBVA_DRIVER_NAME.diff new file mode 100644 index 0000000000..25769b507b --- /dev/null +++ b/packages/multimedia/libva/patches/201_libva_LIBVA_DRIVER_NAME.diff @@ -0,0 +1,97 @@ +commit 1f9ee94ab4ac60459048bef5a2aa348cdf88c390 +Author: Gwenole Beauchesne +Date: Tue Feb 23 09:11:22 2010 +0000 + + Move LIBVA_DRIVER_NAME check in vaInitialize(). + +diff --git a/va/va.c b/va/va.c +index ada70ce..b5940e5 100644 +--- a/va/va.c ++++ b/va/va.c +@@ -320,30 +320,42 @@ VAStatus vaInitialize ( + int *minor_version /* out */ + ) + { +- char *driver_name = NULL; +- VAStatus vaStatus; +- +- CHECK_DISPLAY(dpy); ++ const char *driver_name_env = NULL; ++ char *driver_name = NULL; ++ VAStatus vaStatus; + +- va_debug_trace = (getenv("LIBVA_DEBUG_TRACE") != NULL); ++ CHECK_DISPLAY(dpy); + +- va_infoMessage("libva version %s\n", VA_VERSION_S); ++ va_debug_trace = (getenv("LIBVA_DEBUG_TRACE") != NULL); + +- vaStatus = va_getDriverName(dpy, &driver_name); +- va_infoMessage("va_getDriverName() returns %d\n", vaStatus); +- +- if (VA_STATUS_SUCCESS == vaStatus) +- { +- vaStatus = va_openDriver(dpy, driver_name); +- va_infoMessage("va_openDriver() returns %d\n", vaStatus); +- +- *major_version = VA_MAJOR_VERSION; +- *minor_version = VA_MINOR_VERSION; +- } ++ va_infoMessage("libva version %s\n", VA_VERSION_S); + +- if (driver_name) +- free(driver_name); +- return vaStatus; ++ driver_name_env = getenv("LIBVA_DRIVER_NAME"); ++ if (driver_name_env && geteuid() == getuid()) ++ { ++ /* Don't allow setuid apps to use LIBVA_DRIVER_NAME */ ++ driver_name = strdup(driver_name_env); ++ vaStatus = VA_STATUS_SUCCESS; ++ va_infoMessage("User requested driver '%s'\n", driver_name); ++ } ++ else ++ { ++ vaStatus = va_getDriverName(dpy, &driver_name); ++ va_infoMessage("va_getDriverName() returns %d\n", vaStatus); ++ } ++ ++ if (VA_STATUS_SUCCESS == vaStatus) ++ { ++ vaStatus = va_openDriver(dpy, driver_name); ++ va_infoMessage("va_openDriver() returns %d\n", vaStatus); ++ ++ *major_version = VA_MAJOR_VERSION; ++ *minor_version = VA_MINOR_VERSION; ++ } ++ ++ if (driver_name) ++ free(driver_name); ++ return vaStatus; + } + + +diff --git a/va/x11/va_x11.c b/va/x11/va_x11.c +index 29e81c8..78e38de 100644 +--- a/va/x11/va_x11.c ++++ b/va/x11/va_x11.c +@@ -136,19 +136,10 @@ static VAStatus va_DisplayContextGetDriverName ( + ) + { + VAStatus vaStatus; +- char *driver_name_env; + + if (driver_name) + *driver_name = NULL; + +- if ((driver_name_env = getenv("LIBVA_DRIVER_NAME")) != NULL +- && geteuid() == getuid()) +- { +- /* don't allow setuid apps to use LIBVA_DRIVER_NAME */ +- *driver_name = strdup(driver_name_env); +- return VA_STATUS_SUCCESS; +- } +- + vaStatus = va_DRI2GetDriverName(pDisplayContext, driver_name); + if (vaStatus != VA_STATUS_SUCCESS) + vaStatus = va_DRIGetDriverName(pDisplayContext, driver_name); diff --git a/packages/multimedia/libva/patches/202_check_crystalhd.diff b/packages/multimedia/libva/patches/202_check_crystalhd.diff new file mode 100644 index 0000000000..b1dd8b2908 --- /dev/null +++ b/packages/multimedia/libva/patches/202_check_crystalhd.diff @@ -0,0 +1,155 @@ +commit 0eeee71bcd334512a6b86702ee612b35feb644b2 +Author: Gwenole Beauchesne +Date: Tue Feb 23 10:05:25 2010 +0000 + + Detect Broadcom Crystal HD chip. + +diff --git a/va/Makefile.am b/va/Makefile.am +index aeaf82f..f382c0e 100644 +--- a/va/Makefile.am ++++ b/va/Makefile.am +@@ -42,7 +42,7 @@ libva_x11_la_DEPENDENCIES = $(libvacorelib) x11/libva_x11.la + + SUBDIRS = x11 + +-libva_la_SOURCES = va.c ++libva_la_SOURCES = va.c va_crystalhd.c + + libvaincludedir = ${includedir}/va + libvainclude_HEADERS = va.h va_x11.h va_backend.h va_version.h +@@ -51,4 +51,5 @@ DISTCLEANFILES = \ + va_version.h + + EXTRA_DIST = \ +- va_version.h.in ++ va_version.h.in \ ++ va_crystalhd.h +diff --git a/va/va.c b/va/va.c +index b5940e5..fd68481 100644 +--- a/va/va.c ++++ b/va/va.c +@@ -24,8 +24,10 @@ + + #define _GNU_SOURCE 1 + ++#include "config.h" + #include "va.h" + #include "va_backend.h" ++#include "va_crystalhd.h" + + #include + #include +@@ -349,6 +351,15 @@ VAStatus vaInitialize ( + vaStatus = va_openDriver(dpy, driver_name); + va_infoMessage("va_openDriver() returns %d\n", vaStatus); + ++ if (vaStatus != VA_STATUS_SUCCESS && !driver_name_env) ++ { ++ if (va_hasCrystalHD()) ++ { ++ vaStatus = va_openDriver(dpy, "crystalhd"); ++ va_infoMessage("va_openDriver() returns %d\n", vaStatus); ++ } ++ } ++ + *major_version = VA_MAJOR_VERSION; + *minor_version = VA_MINOR_VERSION; + } +diff --git a/va/va_crystalhd.c b/va/va_crystalhd.c +new file mode 100644 +index 0000000..1ddd4fe +--- /dev/null ++++ b/va/va_crystalhd.c +@@ -0,0 +1,54 @@ ++/* ++ * Copyright (C) 2010 Splitted-Desktop Systems. All Rights Reserved. ++ * ++ * 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, sub license, 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 PRECISION INSIGHT AND/OR ITS 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. ++ */ ++ ++#include ++#include ++#include ++#include "config.h" ++#include "va_crystalhd.h" ++ ++/* Checks if the Broadcom Crystal HD decoder is available */ ++int va_hasCrystalHD(void) ++{ ++ char line[1024]; ++ int len, vendor, device, dummy, found = 0; ++ FILE *fp; ++ ++ fp = fopen("/proc/bus/pci/devices", "r"); ++ if (!fp) ++ return 0; ++ ++ while (!found && fgets(line, sizeof(line), fp)) { ++ len = strlen(line); ++ if (len == 0) ++ continue; ++ line[len - 1] = 0; ++ if (sscanf(line, "%x %04x%04x", &dummy, &vendor, &device) == 3) { ++ if (vendor == 0x14e4 && device == 0x1612) /* BCM70012 */ ++ found = 1; ++ } ++ } ++ fclose(fp); ++ return found; ++} +diff --git a/va/va_crystalhd.h b/va/va_crystalhd.h +new file mode 100644 +index 0000000..44a39d9 +--- /dev/null ++++ b/va/va_crystalhd.h +@@ -0,0 +1,32 @@ ++/* ++ * Copyright (C) 2010 Splitted-Desktop Systems. All Rights Reserved. ++ * ++ * 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, sub license, 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 PRECISION INSIGHT AND/OR ITS 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 VA_CRYSTALHD_H ++#define VA_CRYSTALHD_H ++ ++/** Checks if the Broadcom Crystal HD decoder is available */ ++int va_hasCrystalHD(void) ++ ATTRIBUTE_HIDDEN; ++ ++#endif /* VA_CRYSTALHD_H */ diff --git a/packages/multimedia/libva/patches/203_fix_fglrx_detection.diff b/packages/multimedia/libva/patches/203_fix_fglrx_detection.diff new file mode 100644 index 0000000000..1c904d594f --- /dev/null +++ b/packages/multimedia/libva/patches/203_fix_fglrx_detection.diff @@ -0,0 +1,538 @@ +commit 02c2bb46ae11a1674927e6e65f990df1dc9ed1ce +Author: Gwenole Beauchesne +Date: Mon Mar 8 09:17:09 2010 +0100 + + Don't link against libdrm to workaround XvBA / fglrx >= 8.66-RC1 bugs. + +diff --git a/va/Makefile.am b/va/Makefile.am +index f382c0e..3b9ccfc 100644 +--- a/va/Makefile.am ++++ b/va/Makefile.am +@@ -36,7 +36,7 @@ libva_la_LDFLAGS = $(LDADD) -no-undefined + libva_la_LIBADD = $(LIBVA_LIBS) -ldl + + libva_x11_la_SOURCES = +-libva_x11_la_LIBADD = $(libvacorelib) x11/libva_x11.la $(LIBVA_LIBS) $(X11_LIBS) $(XEXT_LIBS) $(DRM_LIBS) $(XFIXES_LIBS) ++libva_x11_la_LIBADD = $(libvacorelib) x11/libva_x11.la $(LIBVA_LIBS) $(X11_LIBS) $(XEXT_LIBS) $(XFIXES_LIBS) + libva_x11_la_LDFLAGS = $(LDADD) + libva_x11_la_DEPENDENCIES = $(libvacorelib) x11/libva_x11.la + +diff --git a/va/x11/Makefile.am b/va/x11/Makefile.am +index 40346f1..7466fda 100644 +--- a/va/x11/Makefile.am ++++ b/va/x11/Makefile.am +@@ -25,6 +25,6 @@ noinst_LTLIBRARIES = libva_x11.la + libva_x11includedir = ${includedir}/va + libva_x11include_HEADERS = va_dri.h va_dri2.h va_dricommon.h + +-libva_x11_la_SOURCES = va_x11.c va_dri.c va_dri2.c va_dricommon.c dri2_util.c dri1_util.c va_nvctrl.c ++libva_x11_la_SOURCES = va_x11.c va_dri.c va_dri2.c va_dricommon.c dri2_util.c dri1_util.c va_nvctrl.c libdrm_glue.c + +-EXTRA_DIST = va_dristr.h va_dri2str.h va_dri2tokens.h va_nvctrl.h ++EXTRA_DIST = va_dristr.h va_dri2str.h va_dri2tokens.h va_nvctrl.h libdrm_glue.h +diff --git a/va/x11/dri1_util.c b/va/x11/dri1_util.c +index 3e67e2a..f6ce1ba 100644 +--- a/va/x11/dri1_util.c ++++ b/va/x11/dri1_util.c +@@ -1,10 +1,13 @@ ++#include "config.h" ++#include + #include ++#include /* strcasecmp() */ + #include + #include + #include + #include + +-#include ++#include "libdrm_glue.h" + + #include "X11/Xlib.h" + #include "va.h" +@@ -21,6 +24,75 @@ struct dri1_drawable + int height; + }; + ++static int ++firegl_drmOpenMinor(int minor) ++{ ++ char buf[64]; ++ int fd; ++ ++ sprintf(buf, "/dev/ati/card%d", minor); ++ if ((fd = open(buf, O_RDWR, 0)) >= 0) ++ return fd; ++ return -1; ++} ++ ++static int ++firegl_drmOpenByBusID(const char *busid) ++{ ++ int i, fd; ++ drmSetVersion sv; ++ const char *buf; ++ ++ for (i = 0; i < DRM_MAX_MINOR; i++) { ++ if ((fd = firegl_drmOpenMinor(i)) < 0) ++ continue; ++ sv.drm_di_major = 1; ++ sv.drm_di_minor = 1; ++ sv.drm_dd_major = -1; ++ sv.drm_dd_minor = -1; ++ libdrm_drmSetInterfaceVersion(fd, &sv); ++ buf = libdrm_drmGetBusid(fd); ++ if (buf && strcasecmp(buf, busid) == 0) { /* XXX: drmMatchBusID() */ ++ libdrm_drmFreeBusid(buf); ++ return fd; ++ } ++ if (buf) ++ libdrm_drmFreeBusid(buf); ++ close(fd); ++ } ++ return -1; ++} ++ ++static int ++drm_open_once(struct dri_state *dri_state, const char *BusID, int *newlyopened) ++{ ++ dri_state->driConnectedFlag = VA_NONE; ++ dri_state->fd = libdrm_drmOpenOnce(NULL, BusID, newlyopened); ++ if (dri_state->fd < 0) { ++ dri_state->fd = firegl_drmOpenByBusID(BusID); ++ if (dri_state->fd >= 0) { ++ *newlyopened = 1; ++ dri_state->driConnectedFlag |= VA_DRI_AMD; ++ } ++ } ++ return dri_state->fd; ++} ++ ++static void ++drm_close_once(struct dri_state *dri_state) ++{ ++ /* XXX: dri_state->close() doesn't seem to be called, thus this ++ function is never called either */ ++ if (dri_state->fd < 0) ++ return; ++ if (dri_state->driConnectedFlag & VA_DRI_AMD) ++ close(dri_state->fd); ++ else ++ libdrm_drmCloseOnce(dri_state->fd); ++ dri_state->fd = -1; ++ dri_state->driConnectedFlag = VA_NONE; ++} ++ + static struct dri_drawable * + dri1CreateDrawable(VADriverContextP ctx, XID x_drawable) + { +@@ -64,9 +136,9 @@ dri1Close(VADriverContextP ctx) + free_drawable_hashtable(ctx); + VA_DRIDestroyContext(ctx->x11_dpy, ctx->x11_screen, dri_state->hwContextID); + assert(dri_state->pSAREA != MAP_FAILED); +- drmUnmap(dri_state->pSAREA, SAREA_MAX); ++ libdrm_drmUnmap(dri_state->pSAREA, SAREA_MAX); + assert(dri_state->fd >= 0); +- drmCloseOnce(dri_state->fd); ++ drm_close_once(dri_state); + VA_DRICloseConnection(ctx->x11_dpy, ctx->x11_screen); + } + +@@ -104,21 +176,20 @@ isDRI1Connected(VADriverContextP ctx, char **driver_name) + &dri_state->hSAREA, &BusID)) + goto err_out0; + +- +- dri_state->fd = drmOpenOnce(NULL, BusID, &newlyopened); ++ drm_open_once(dri_state, BusID, &newlyopened); + XFree(BusID); + + if (dri_state->fd < 0) + goto err_out1; + + +- if (drmGetMagic(dri_state->fd, &magic)) ++ if (libdrm_drmGetMagic(dri_state->fd, &magic)) + goto err_out1; + + if (newlyopened && !VA_DRIAuthConnection(ctx->x11_dpy, ctx->x11_screen, magic)) + goto err_out1; + +- if (drmMap(dri_state->fd, dri_state->hSAREA, SAREA_MAX, &dri_state->pSAREA)) ++ if (libdrm_drmMap(dri_state->fd, dri_state->hSAREA, SAREA_MAX, &dri_state->pSAREA)) + goto err_out1; + + if (!VA_DRICreateContext(ctx->x11_dpy, ctx->x11_screen, +@@ -126,7 +197,8 @@ isDRI1Connected(VADriverContextP ctx, char **driver_name) + &dri_state->hwContextID, &dri_state->hwContext)) + goto err_out1; + +- dri_state->driConnectedFlag = VA_DRI1; ++ dri_state->driConnectedFlag &= VA_DRI_AMD; /* clear flags but AMD bit */ ++ dri_state->driConnectedFlag |= VA_DRI1; + dri_state->createDrawable = dri1CreateDrawable; + dri_state->destroyDrawable = dri1DestroyDrawable; + dri_state->swapBuffer = dri1SwapBuffer; +@@ -137,10 +209,10 @@ isDRI1Connected(VADriverContextP ctx, char **driver_name) + + err_out1: + if (dri_state->pSAREA != MAP_FAILED) +- drmUnmap(dri_state->pSAREA, SAREA_MAX); ++ libdrm_drmUnmap(dri_state->pSAREA, SAREA_MAX); + + if (dri_state->fd >= 0) +- drmCloseOnce(dri_state->fd); ++ drm_close_once(dri_state); + + VA_DRICloseConnection(ctx->x11_dpy, ctx->x11_screen); + +diff --git a/va/x11/dri2_util.c b/va/x11/dri2_util.c +index ebe7a2c..b727e97 100644 +--- a/va/x11/dri2_util.c ++++ b/va/x11/dri2_util.c +@@ -3,7 +3,7 @@ + #include + #include + +-#include ++#include "libdrm_glue.h" + + #include + #include +@@ -166,7 +166,7 @@ isDRI2Connected(VADriverContextP ctx, char **driver_name) + if (dri_state->fd < 0) + goto err_out; + +- if (drmGetMagic(dri_state->fd, &magic)) ++ if (libdrm_drmGetMagic(dri_state->fd, &magic)) + goto err_out; + + if (!VA_DRI2Authenticate(ctx->x11_dpy, RootWindow(ctx->x11_dpy, ctx->x11_screen), +diff --git a/va/x11/libdrm_glue.c b/va/x11/libdrm_glue.c +new file mode 100644 +index 0000000..92c7d60 +--- /dev/null ++++ b/va/x11/libdrm_glue.c +@@ -0,0 +1,209 @@ ++/* ++ * Copyright (C) 2009 Splitted-Desktop Systems. All Rights Reserved. ++ * ++ * 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, sub license, 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 PRECISION INSIGHT AND/OR ITS 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. ++ */ ++ ++#define _GNU_SOURCE 1 ++#include "libdrm_glue.h" ++#include ++#include ++#include ++#include ++#include ++ ++#define LOAD_FUNC_(NAME, RET, ARGS, FALLBACK) \ ++ static RET (*lib_##NAME) ARGS; \ ++ if (lib_##NAME == NULL) { \ ++ lib_##NAME = libdrm_symbol(#NAME); \ ++ if (!lib_##NAME) \ ++ lib_##NAME = FALLBACK; \ ++ } \ ++ assert(lib_##NAME != NULL) ++ ++#define LOAD_FUNC(NAME, RET, ARGS) \ ++ LOAD_FUNC_(NAME, RET, ARGS, NULL) ++ ++static void *libdrm_handle; ++static int libdrm_handle_ok = -1; ++ ++static inline void *libdrm_symbol(const char *name) ++{ ++ if (!libdrm_open()) ++ return NULL; ++ return dlsym(libdrm_handle, name); ++} ++ ++int libdrm_open(void) ++{ ++ if (libdrm_handle_ok < 0) { ++ libdrm_handle = dlopen("libdrm.so.2", RTLD_LOCAL|RTLD_LAZY); ++ libdrm_handle_ok = libdrm_handle != NULL; ++ } ++ assert(libdrm_handle); ++ return libdrm_handle_ok; ++} ++ ++void libdrm_close(void) ++{ ++ if (libdrm_handle) ++ dlclose(libdrm_handle); ++} ++ ++// Default drmOpenOnce() and drmCloseOnce() implementations based on current GIT ++#define DRM_MAX_FDS 16 ++static struct { ++ char *BusID; ++ int fd; ++ int refcount; ++} connection[DRM_MAX_FDS]; ++ ++static int nr_fds = 0; ++ ++// Default implementation for drmOpenOnce() if none exists in the library ++static int ++libdrm_default_drmOpenOnce(void *unused, const char *BusID, int *newlyopened) ++{ ++ int i; ++ int fd; ++ ++ for (i = 0; i < nr_fds; i++) ++ if (strcmp(BusID, connection[i].BusID) == 0) { ++ connection[i].refcount++; ++ *newlyopened = 0; ++ return connection[i].fd; ++ } ++ ++ fd = libdrm_drmOpen(unused, BusID); ++ if (fd <= 0 || nr_fds == DRM_MAX_FDS) ++ return fd; ++ ++ connection[nr_fds].BusID = strdup(BusID); ++ connection[nr_fds].fd = fd; ++ connection[nr_fds].refcount = 1; ++ *newlyopened = 1; ++ ++ if (0) ++ fprintf(stderr, "saved connection %d for %s %d\n", ++ nr_fds, connection[nr_fds].BusID, ++ strcmp(BusID, connection[nr_fds].BusID)); ++ nr_fds++; ++ return fd; ++} ++ ++// Default implementation for drmCloseOnce() if none exists in the library ++static void libdrm_default_drmCloseOnce(int fd) ++{ ++ int i; ++ ++ for (i = 0; i < nr_fds; i++) { ++ if (fd == connection[i].fd) { ++ if (--connection[i].refcount == 0) { ++ libdrm_drmClose(connection[i].fd); ++ free(connection[i].BusID); ++ if (i < --nr_fds) ++ connection[i] = connection[nr_fds]; ++ return; ++ } ++ } ++ } ++} ++ ++// Determine whether the DRM kernel driver has been loaded ++int libdrm_drmAvailable(void) ++{ ++ LOAD_FUNC(drmAvailable, int, (void)); ++ return lib_drmAvailable(); ++} ++ ++// Open the DRM device ++int libdrm_drmOpen(const char *name, const char *busid) ++{ ++ LOAD_FUNC(drmOpen, int, (const char *, const char *)); ++ return lib_drmOpen(name, busid); ++} ++ ++// Close the device ++int libdrm_drmClose(int fd) ++{ ++ LOAD_FUNC(drmClose, int, (int)); ++ return lib_drmClose(fd); ++} ++ ++// Open the DRM device (re-use an existing connection) ++int libdrm_drmOpenOnce(void *unused, const char *BusID, int *newlyopened) ++{ ++ LOAD_FUNC_(drmOpenOnce, int, (void *, const char *, int *), ++ libdrm_default_drmOpenOnce); ++ return lib_drmOpenOnce(unused, BusID, newlyopened); ++} ++ ++// Close the device (unref an existing connection prior to actually closing it) ++void libdrm_drmCloseOnce(int fd) ++{ ++ LOAD_FUNC_(drmCloseOnce, void, (int), libdrm_default_drmCloseOnce); ++ lib_drmCloseOnce(fd); ++} ++ ++// DRM connection cookie ++int libdrm_drmGetMagic(int fd, drm_magic_t * magic) ++{ ++ LOAD_FUNC(drmGetMagic, int, (int, drm_magic_t *)); ++ return lib_drmGetMagic(fd, magic); ++} ++ ++// Issue a set-version ioctl ++int libdrm_drmSetInterfaceVersion(int fd, drmSetVersion *version) ++{ ++ LOAD_FUNC(drmSetInterfaceVersion, int, (int, drmSetVersion *)); ++ return lib_drmSetInterfaceVersion(fd, version); ++} ++ ++// Get the bus ID of the device ++char *libdrm_drmGetBusid(int fd) ++{ ++ LOAD_FUNC(drmGetBusid, char *, (int)); ++ return lib_drmGetBusid(fd); ++} ++ ++// Free the bus ID information ++void libdrm_drmFreeBusid(const char *busid) ++{ ++ LOAD_FUNC(drmFreeBusid, void, (const char *)); ++ lib_drmFreeBusid(busid); ++} ++ ++// Map a region of memory ++int libdrm_drmMap(int fd, ++ drm_handle_t handle, ++ drmSize size, ++ drmAddressPtr address) ++{ ++ LOAD_FUNC(drmMap, int, (int, drm_handle_t, drmSize, drmAddressPtr)); ++ return lib_drmMap(fd, handle, size, address); ++} ++ ++// Unmap mappings obtained with drmMap() ++int libdrm_drmUnmap(drmAddress address, drmSize size) ++{ ++ LOAD_FUNC(drmUnmap, int, (drmAddress, drmSize)); ++ return lib_drmUnmap(address, size); ++} +diff --git a/va/x11/libdrm_glue.h b/va/x11/libdrm_glue.h +new file mode 100644 +index 0000000..878470b +--- /dev/null ++++ b/va/x11/libdrm_glue.h +@@ -0,0 +1,73 @@ ++/* ++ * Copyright (C) 2009 Splitted-Desktop Systems. All Rights Reserved. ++ * ++ * 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, sub license, 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 PRECISION INSIGHT AND/OR ITS 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 LIBDRM_GLUE_H ++#define LIBDRM_GLUE_H ++ ++#include "config.h" ++#include ++ ++int libdrm_open(void) ++ ATTRIBUTE_HIDDEN; ++ ++void libdrm_close(void) ++ ATTRIBUTE_HIDDEN; ++ ++int libdrm_drmAvailable(void) ++ ATTRIBUTE_HIDDEN; ++ ++int libdrm_drmOpen(const char *name, const char *busid) ++ ATTRIBUTE_HIDDEN; ++ ++int libdrm_drmClose(int fd) ++ ATTRIBUTE_HIDDEN; ++ ++int libdrm_drmOpenOnce(void *unused, const char *BusID, int *newlyopened) ++ ATTRIBUTE_HIDDEN; ++ ++void libdrm_drmCloseOnce(int fd) ++ ATTRIBUTE_HIDDEN; ++ ++int libdrm_drmGetMagic(int fd, drm_magic_t * magic) ++ ATTRIBUTE_HIDDEN; ++ ++int libdrm_drmSetInterfaceVersion(int fd, drmSetVersion *version) ++ ATTRIBUTE_HIDDEN; ++ ++char *libdrm_drmGetBusid(int fd) ++ ATTRIBUTE_HIDDEN; ++ ++void libdrm_drmFreeBusid(const char *busid) ++ ATTRIBUTE_HIDDEN; ++ ++int libdrm_drmMap(int fd, ++ drm_handle_t handle, ++ drmSize size, ++ drmAddressPtr address) ++ ATTRIBUTE_HIDDEN; ++ ++int libdrm_drmUnmap(drmAddress address, drmSize size) ++ ATTRIBUTE_HIDDEN; ++ ++#endif /* LIBDRM_GLUE_H */ +diff --git a/va/x11/va_dricommon.h b/va/x11/va_dricommon.h +index b762bd0..5ed7a6a 100644 +--- a/va/x11/va_dricommon.h ++++ b/va/x11/va_dricommon.h +@@ -13,7 +13,8 @@ enum + { + VA_NONE = 0, + VA_DRI1 = 1, +- VA_DRI2 = 2 ++ VA_DRI2 = 2, ++ VA_DRI_AMD = 4 /* AMD DRI implementation */ + }; + + union dri_buffer +diff --git a/va/x11/va_x11.c b/va/x11/va_x11.c +index 78e38de..1216093 100644 +--- a/va/x11/va_x11.c ++++ b/va/x11/va_x11.c +@@ -31,6 +31,7 @@ + #include "va_dri2.h" + #include "va_dricommon.h" + #include "va_nvctrl.h" ++#include "libdrm_glue.h" + #include + #include + #include +@@ -75,6 +76,8 @@ static void va_DisplayContextDestroy ( + } + ctx = &((*ctx)->pNext); + } ++ ++ libdrm_close(); + free(pDisplayContext->pDriverContext->dri_state); + free(pDisplayContext->pDriverContext); + free(pDisplayContext); diff --git a/packages/multimedia/libva/patches/204_check_ATIFGLEXTENSION.diff b/packages/multimedia/libva/patches/204_check_ATIFGLEXTENSION.diff new file mode 100644 index 0000000000..462fc5da65 --- /dev/null +++ b/packages/multimedia/libva/patches/204_check_ATIFGLEXTENSION.diff @@ -0,0 +1,325 @@ +commit 595a044901ee32acc3212100966f5a1a9e181515 +Author: Gwenole Beauchesne +Date: Fri Nov 20 15:51:22 2009 +0000 + + Fix detection of fglrx. + +diff --git a/va/Makefile.am b/va/Makefile.am +index 3b9ccfc..99f6bbf 100644 +--- a/va/Makefile.am ++++ b/va/Makefile.am +@@ -36,7 +36,7 @@ libva_la_LDFLAGS = $(LDADD) -no-undefined + libva_la_LIBADD = $(LIBVA_LIBS) -ldl + + libva_x11_la_SOURCES = +-libva_x11_la_LIBADD = $(libvacorelib) x11/libva_x11.la $(LIBVA_LIBS) $(X11_LIBS) $(XEXT_LIBS) $(XFIXES_LIBS) ++libva_x11_la_LIBADD = $(libvacorelib) x11/libva_x11.la $(LIBVA_LIBS) $(X11_LIBS) $(XEXT_LIBS) $(XFIXES_LIBS) -ldl + libva_x11_la_LDFLAGS = $(LDADD) + libva_x11_la_DEPENDENCIES = $(libvacorelib) x11/libva_x11.la + +diff --git a/va/x11/Makefile.am b/va/x11/Makefile.am +index 7466fda..a6d9323 100644 +--- a/va/x11/Makefile.am ++++ b/va/x11/Makefile.am +@@ -25,6 +25,23 @@ noinst_LTLIBRARIES = libva_x11.la + libva_x11includedir = ${includedir}/va + libva_x11include_HEADERS = va_dri.h va_dri2.h va_dricommon.h + +-libva_x11_la_SOURCES = va_x11.c va_dri.c va_dri2.c va_dricommon.c dri2_util.c dri1_util.c va_nvctrl.c libdrm_glue.c ++libva_x11_la_SOURCES = \ ++ dri1_util.c \ ++ dri2_util.c \ ++ libdrm_glue.c \ ++ va_dri.c \ ++ va_dri2.c \ ++ va_dricommon.c \ ++ va_fglext.c \ ++ va_nvctrl.c \ ++ va_x11.c \ ++ $(NULL) + +-EXTRA_DIST = va_dristr.h va_dri2str.h va_dri2tokens.h va_nvctrl.h libdrm_glue.h ++EXTRA_DIST = \ ++ libdrm_glue.h \ ++ va_dri2str.h \ ++ va_dri2tokens.h \ ++ va_dristr.h \ ++ va_fglext.h \ ++ va_nvctrl.h \ ++ $(NULL) +diff --git a/va/x11/va_fglext.c b/va/x11/va_fglext.c +new file mode 100644 +index 0000000..add1f28 +--- /dev/null ++++ b/va/x11/va_fglext.c +@@ -0,0 +1,175 @@ ++/* ++ * Copyright (C) 2009 Splitted-Desktop Systems. All Rights Reserved. ++ * ++ * 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, sub license, 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 PRECISION INSIGHT AND/OR ITS 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. ++ */ ++ ++#define _GNU_SOURCE 1 ++#include ++ ++#define NEED_REPLIES ++#include ++#include ++#include ++#include ++#include ++#include "va_fglext.h" ++ ++#define ATIFGL_EXTENSION_NAME "ATIFGLEXTENSION" ++#define ATIFGL_EXTENSION_EVENTS 0 ++ ++typedef struct _FGLGetDriverData { ++ CARD8 reqType; ++ CARD8 fireglReqType; ++ CARD16 length B16; ++ CARD32 screen B32; ++ CARD16 size B16; ++ CARD16 pad1; ++} xFGLGetDriverDataReq; ++#define sz_xFGLGetDriverDataReq sizeof(xFGLGetDriverDataReq) ++ ++typedef struct { ++ BYTE type; ++ BYTE pad1; ++ CARD16 sequenceNumber B16; ++ CARD32 length B32; ++ CARD8 majorVersion; ++ CARD8 minorVersion; ++ CARD8 patchlevel B16; ++ CARD8 BIOSVersionMajor; ++ CARD8 BIOSVersionMinor; ++ CARD8 HasSecondary; ++ CARD16 pad3 B16; ++ CARD32 pad4 B32; ++ CARD32 pad5 B32; ++ CARD32 pad6 B32; ++ CARD32 pad7 B32; ++ // ... there are more fields ++} xFGLGetDriverDataReply; ++#define sz_xFGLGetDriverDataReply sizeof(xFGLGetDriverDataReply) ++ ++#define X_FGLGetDriverData 0 ++ ++static XExtensionInfo _fglext_ext_info_data; ++static XExtensionInfo *fglext_ext_info = &_fglext_ext_info_data; ++static /* const */ char *fglext_extension_name = ATIFGL_EXTENSION_NAME; ++ ++#define xFGLCheckExtension(dpy,i,val) \ ++ XextCheckExtension (dpy, i, fglext_extension_name, val) ++ ++static int close_display(); ++static /* const */ XExtensionHooks fglext_extension_hooks = { ++ NULL, /* create_gc */ ++ NULL, /* copy_gc */ ++ NULL, /* flush_gc */ ++ NULL, /* free_gc */ ++ NULL, /* create_font */ ++ NULL, /* free_font */ ++ close_display, /* close_display */ ++ NULL, /* wire_to_event */ ++ NULL, /* event_to_wire */ ++ NULL, /* error */ ++ NULL, /* error_string */ ++}; ++ ++static XEXT_GENERATE_FIND_DISPLAY (find_display, fglext_ext_info, ++ fglext_extension_name, ++ &fglext_extension_hooks, ++ ATIFGL_EXTENSION_EVENTS, NULL) ++ ++static XEXT_GENERATE_CLOSE_DISPLAY (close_display, fglext_ext_info) ++ ++Bool VA_FGLEXTQueryDirectRenderingCapable( Display *dpy, int screen, ++ Bool *isCapable ) ++{ ++ char **extensions; ++ int i, n_extensions, has_fglext = 0, has_fglrxdri = 0; ++ ++ if (isCapable) ++ *isCapable = False; ++ ++ extensions = XListExtensions(dpy, &n_extensions); ++ if (!extensions) ++ return False; ++ ++ for (i = 0; i < n_extensions; i++) { ++ if (strcmp(extensions[i], ATIFGL_EXTENSION_NAME) == 0) ++ has_fglext = 1; ++ if (strcmp(extensions[i], "ATIFGLRXDRI") == 0) ++ has_fglrxdri = 1; ++ } ++ XFreeExtensionList(extensions); ++ ++ if (!has_fglext) ++ return False; ++ ++ if (isCapable) ++ *isCapable = has_fglrxdri; ++ ++ return True; ++} ++ ++Bool VA_FGLEXTGetClientDriverName( Display *dpy, int screen, ++ int *ddxDriverMajorVersion, int *ddxDriverMinorVersion, ++ int *ddxDriverPatchVersion, char **clientDriverName ) ++{ ++ XExtDisplayInfo *info = find_display (dpy); ++ xFGLGetDriverDataReply rep; ++ xFGLGetDriverDataReq *req; ++ ++ if (ddxDriverMajorVersion) ++ *ddxDriverMajorVersion = 0; ++ if (ddxDriverMinorVersion) ++ *ddxDriverMinorVersion = 0; ++ if (ddxDriverPatchVersion) ++ *ddxDriverPatchVersion = 0; ++ if (clientDriverName) ++ *clientDriverName = NULL; ++ ++ if(!XextHasExtension(info)) ++ return False; ++ ++ xFGLCheckExtension (dpy, info, False); ++ ++ LockDisplay (dpy); ++ GetReq (FGLGetDriverData, req); ++ req->reqType = info->codes->major_opcode; ++ req->fireglReqType = X_FGLGetDriverData; ++ req->screen = screen; ++ if (!_XReply (dpy, (xReply *) &rep, 0, xTrue)) { ++ UnlockDisplay (dpy); ++ SyncHandle (); ++ return False; ++ } ++ UnlockDisplay (dpy); ++ SyncHandle (); ++ ++ if (ddxDriverMajorVersion) ++ *ddxDriverMajorVersion = rep.majorVersion; ++ if (ddxDriverMinorVersion) ++ *ddxDriverMinorVersion = rep.minorVersion; ++ if (ddxDriverPatchVersion) ++ *ddxDriverPatchVersion = rep.patchlevel; ++ if (clientDriverName) ++ *clientDriverName = strdup("fglrx"); ++ ++ return True; ++} +diff --git a/va/x11/va_fglext.h b/va/x11/va_fglext.h +new file mode 100644 +index 0000000..f2d87c3 +--- /dev/null ++++ b/va/x11/va_fglext.h +@@ -0,0 +1,37 @@ ++/* ++ * Copyright (C) 2009 Splitted-Desktop Systems. All Rights Reserved. ++ * ++ * 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, sub license, 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 PRECISION INSIGHT AND/OR ITS 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 VA_FGLEXTLIB_H ++#define VA_FGLEXTLIB_H ++ ++#include ++ ++Bool VA_FGLEXTQueryDirectRenderingCapable( Display *dpy, int screen, ++ Bool *isCapable ); ++ ++Bool VA_FGLEXTGetClientDriverName( Display *dpy, int screen, ++ int *ddxDriverMajorVersion, int *ddxDriverMinorVersion, ++ int *ddxDriverPatchVersion, char **clientDriverName ); ++ ++#endif /* VA_FGLEXTLIB_H */ +diff --git a/va/x11/va_x11.c b/va/x11/va_x11.c +index 1216093..71cc36f 100644 +--- a/va/x11/va_x11.c ++++ b/va/x11/va_x11.c +@@ -31,6 +31,7 @@ + #include "va_dri2.h" + #include "va_dricommon.h" + #include "va_nvctrl.h" ++#include "va_fglext.h" + #include "libdrm_glue.h" + #include + #include +@@ -133,6 +134,29 @@ static VAStatus va_NVCTRL_GetDriverName ( + return VA_STATUS_SUCCESS; + } + ++static VAStatus va_FGLEXT_GetDriverName( ++ VADisplayContextP pDisplayContext, ++ char **driver_name ++) ++{ ++ VADriverContextP ctx = pDisplayContext->pDriverContext; ++ int direct_capable, driver_major, driver_minor, driver_patch; ++ Bool result; ++ ++ result = VA_FGLEXTQueryDirectRenderingCapable(ctx->x11_dpy, ctx->x11_screen, ++ &direct_capable); ++ if (!result || !direct_capable) ++ return VA_STATUS_ERROR_UNKNOWN; ++ ++ result = VA_FGLEXTGetClientDriverName(ctx->x11_dpy, ctx->x11_screen, ++ &driver_major, &driver_minor, ++ &driver_patch, driver_name); ++ if (!result) ++ return VA_STATUS_ERROR_UNKNOWN; ++ ++ return VA_STATUS_SUCCESS; ++} ++ + static VAStatus va_DisplayContextGetDriverName ( + VADisplayContextP pDisplayContext, + char **driver_name +@@ -148,7 +172,8 @@ static VAStatus va_DisplayContextGetDriverName ( + vaStatus = va_DRIGetDriverName(pDisplayContext, driver_name); + if (vaStatus != VA_STATUS_SUCCESS) + vaStatus = va_NVCTRL_GetDriverName(pDisplayContext, driver_name); +- ++ if (vaStatus != VA_STATUS_SUCCESS) ++ vaStatus = va_FGLEXT_GetDriverName(pDisplayContext, driver_name); + return vaStatus; + } + diff --git a/packages/multimedia/libva/patches/300_sds_version.diff b/packages/multimedia/libva/patches/300_sds_version.diff new file mode 100644 index 0000000000..98382c4004 --- /dev/null +++ b/packages/multimedia/libva/patches/300_sds_version.diff @@ -0,0 +1,96 @@ +commit 1821919f68487c5e4fec33bd242208f49cb58c1e +Author: Gwenole Beauchesne +Date: Wed Jun 24 11:32:40 2009 +0000 + + Explicit API extensions from SDS. + +diff --git a/configure.ac b/configure.ac +index ebe5df6..95cf992 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -28,6 +28,9 @@ m4_define([libva_micro_version], [0]) + m4_define([libva_version], + [libva_major_version.libva_minor_version.libva_micro_version]) + ++# increase this number for each API change ++m4_define([libva_sds_version], [6]) ++ + # if the library source code has changed, increment revision + m4_define([libva_lt_revision], [1]) + # if any interface was added/removed/changed, then inc current, reset revision +@@ -52,11 +55,14 @@ AC_SUBST(LIBVA_MINOR_VERSION) + AC_SUBST(LIBVA_MICRO_VERSION) + AC_SUBST(LIBVA_VERSION) + ++LIBVA_SDS_VERSION=libva_sds_version ++AC_SUBST(LIBVA_SDS_VERSION) ++ + LIBVA_LT_CURRENT=libva_lt_current + LIBVA_LT_REV=libva_lt_revision + LIBVA_LT_AGE=libva_lt_age + LIBVA_LT_VERSION="$LIBVA_LT_CURRENT:$LIBVA_LT_REV:$LIBVA_LT_AGE" +-LIBVA_LT_LDFLAGS="-version-info $LIBVA_LT_VERSION" ++LIBVA_LT_LDFLAGS="-version-info $LIBVA_LT_VERSION -release $LIBVA_VERSION.$LIBVA_SDS_VERSION" + AC_SUBST(LIBVA_LT_VERSION) + AC_SUBST(LIBVA_LT_LDFLAGS) + +diff --git a/libva.pc.in b/libva.pc.in +index 60f1483..0b37945 100644 +--- a/libva.pc.in ++++ b/libva.pc.in +@@ -3,6 +3,7 @@ exec_prefix=@exec_prefix@ + libdir=@libdir@ + includedir=@includedir@ + driverdir=@LIBVA_DRIVERS_PATH@ ++sdsversion=@LIBVA_SDS_VERSION@ + + Name: libva + Description: Userspace Video Acceleration (VA) core interface +diff --git a/va/va.c b/va/va.c +index fd68481..0d208d8 100644 +--- a/va/va.c ++++ b/va/va.c +@@ -162,7 +162,15 @@ static VAStatus va_openDriver(VADisplay dpy, char *driver_name) + else + { + VADriverInit init_func; +- init_func = (VADriverInit) dlsym(handle, DRIVER_INIT_FUNC); ++ char driver_init_func_sds[32]; ++ /* First, try SDS extensions (VDPAU and XvBA backends) */ ++ sprintf(driver_init_func_sds, "%s_%d_sds%d", ++ DRIVER_INIT_FUNC, VA_MICRO_VERSION, VA_SDS_VERSION); ++ init_func = (VADriverInit) dlsym(handle, driver_init_func_sds); ++ if (!init_func) ++ { ++ init_func = (VADriverInit) dlsym(handle, DRIVER_INIT_FUNC); ++ } + if (!init_func) + { + va_errorMessage("%s has no function %s\n", driver_path, DRIVER_INIT_FUNC); +diff --git a/va/va_version.h.in b/va/va_version.h.in +index c9ea97a..197c482 100644 +--- a/va/va_version.h.in ++++ b/va/va_version.h.in +@@ -47,6 +47,13 @@ + #define VA_MICRO_VERSION (@LIBVA_MICRO_VERSION@) + + /** ++ * VA_SDS_VERSION: ++ * ++ * The version of the SDS API extensions to the VA library ++ */ ++#define VA_SDS_VERSION (@LIBVA_SDS_VERSION@) ++ ++/** + * VA_VERSION: + * + * The full version of the VA library, like 1.2.3 +@@ -59,7 +66,7 @@ + * The full version of the VA library, in string form (suited for + * string concatenation) + */ +-#define VA_VERSION_S "@LIBVA_VERSION@" ++#define VA_VERSION_S "@LIBVA_VERSION@-sds@LIBVA_SDS_VERSION@" + + /** + * VA_VERSION_HEX: diff --git a/packages/multimedia/libva/patches/321_libva_glx.base.diff b/packages/multimedia/libva/patches/321_libva_glx.base.diff new file mode 100644 index 0000000000..82e49c1cac --- /dev/null +++ b/packages/multimedia/libva/patches/321_libva_glx.base.diff @@ -0,0 +1,202 @@ +commit e69075435675d356c7c9b4ff734a60e8cd031604 +Author: Gwenole Beauchesne +Date: Mon Mar 8 09:44:25 2010 +0100 + + Add OpenGL extensions (v3) and generic implementation with TFP and FBO. + +diff --git a/Makefile.am b/Makefile.am +index 459660b..e75a2db 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -32,10 +32,13 @@ endif + + pcfiles = libva.pc + pcfiles += libva-x11.pc ++if USE_GLX ++pcfiles += libva-glx.pc ++endif + + pkgconfigdir = @pkgconfigdir@ + pkgconfig_DATA = $(pcfiles) + +-EXTRA_DIST = libva.pc.in libva-x11.pc.in ++EXTRA_DIST = libva.pc.in libva-x11.pc.in libva-glx.pc.in + + CLEANFILES = $(pcfiles) +diff --git a/configure.ac b/configure.ac +index 95cf992..86366e9 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -66,6 +66,11 @@ LIBVA_LT_LDFLAGS="-version-info $LIBVA_LT_VERSION -release $LIBVA_VERSION.$LIBVA + AC_SUBST(LIBVA_LT_VERSION) + AC_SUBST(LIBVA_LT_LDFLAGS) + ++AC_ARG_ENABLE(glx, ++ [AC_HELP_STRING([--enable-glx], ++ [build with OpenGL for X11 support])], ++ [], [enable_glx=yes]) ++ + AC_ARG_ENABLE(dummy-driver, + [AC_HELP_STRING([--enable-dummy-driver], + [build dummy video driver])], +@@ -130,6 +135,22 @@ fi + AC_DEFINE_UNQUOTED([ATTRIBUTE_HIDDEN], [$ATTRIBUTE_HIDDEN], + [Defined to __attribute__((visibility("hidden"))) when available]) + ++# Check for OpenGL (X11) ++USE_GLX="no" ++GL_DEPS_CFLAGS="" ++GL_DEPS_LIBS="" ++if test x$enable_glx = xyes; then ++ AC_CHECK_HEADERS([GL/gl.h]) ++ AC_CHECK_HEADERS([GL/glx.h]) ++ AC_CHECK_LIB(GL, glXCreateContext, [ ++ USE_GLX="yes" ++ GL_DEPS_LIBS="-lX11 -lGL" ++ ]) ++fi ++AC_SUBST(GL_DEPS_CFLAGS) ++AC_SUBST(GL_DEPS_LIBS) ++AM_CONDITIONAL(USE_GLX, test "$USE_GLX" = "yes") ++ + # We only need the headers, we don't link against the DRM libraries + LIBVA_CFLAGS="$DRM_CFLAGS" + AC_SUBST(LIBVA_CFLAGS) +@@ -149,6 +170,7 @@ AC_OUTPUT([ + va/Makefile + va/va_version.h + va/x11/Makefile ++ va/glx/Makefile + dummy_drv_video/Makefile + i965_drv_video/Makefile + i965_drv_video/shaders/Makefile +@@ -162,5 +184,6 @@ AC_OUTPUT([ + test/encode/Makefile + libva.pc + libva-x11.pc ++ libva-glx.pc + ]) + +diff --git a/libva-glx.pc.in b/libva-glx.pc.in +new file mode 100644 +index 0000000..2019915 +--- /dev/null ++++ b/libva-glx.pc.in +@@ -0,0 +1,12 @@ ++prefix=@prefix@ ++exec_prefix=@exec_prefix@ ++libdir=@libdir@ ++includedir=@includedir@ ++display=glx ++ ++Name: libva-${display} ++Description: Userspace Video Acceleration (VA) ${display} interface ++Requires: libva ++Version: @PACKAGE_VERSION@ ++Libs: -L${libdir} -lva-${display} ++Cflags: -I${includedir} +diff --git a/va/Makefile.am b/va/Makefile.am +index 99f6bbf..ebff3d5 100644 +--- a/va/Makefile.am ++++ b/va/Makefile.am +@@ -27,9 +27,17 @@ INCLUDES = \ + LDADD = \ + $(LIBVA_LT_LDFLAGS) + +-lib_LTLIBRARIES = \ +- libva.la \ +- libva-x11.la ++libva_x11_backend = libva-x11.la ++libva_x11_backenddir = x11 ++if USE_GLX ++libva_glx_backend = libva-glx.la ++libva_glx_backenddir = glx ++else ++libva_glx_backend = ++libva_glx_backenddir = ++endif ++ ++lib_LTLIBRARIES = libva.la $(libva_x11_backend) $(libva_glx_backend) + + libva_ladir = $(libdir) + libva_la_LDFLAGS = $(LDADD) -no-undefined +@@ -40,7 +48,14 @@ libva_x11_la_LIBADD = $(libvacorelib) x11/libva_x11.la $(LIBVA_LIBS) $(X11_LIBS + libva_x11_la_LDFLAGS = $(LDADD) + libva_x11_la_DEPENDENCIES = $(libvacorelib) x11/libva_x11.la + +-SUBDIRS = x11 ++libva_glx_la_SOURCES = ++libva_glx_la_LIBADD = $(libvacorelib) glx/libva_glx.la libva-x11.la $(GL_DEPS_LIBS) -ldl ++libva_glx_la_LDFLAGS = $(LDADD) ++libva_glx_la_DEPENDENCIES = $(libvacorelib) glx/libva_glx.la libva-x11.la ++ ++SUBDIRS = $(libva_x11_backenddir) $(libva_glx_backenddir) ++ ++DIST_SUBDIRS = x11 glx + + libva_la_SOURCES = va.c va_crystalhd.c + +diff --git a/va/glx/Makefile.am b/va/glx/Makefile.am +new file mode 100644 +index 0000000..337f34e +diff --git a/va/glx/va_backend_glx.h b/va/glx/va_backend_glx.h +new file mode 100644 +index 0000000..d110485 +diff --git a/va/glx/va_glx.c b/va/glx/va_glx.c +new file mode 100644 +index 0000000..ec50a0e +diff --git a/va/glx/va_glx.h b/va/glx/va_glx.h +new file mode 100644 +index 0000000..1a0624d +diff --git a/va/glx/va_glx_impl.c b/va/glx/va_glx_impl.c +new file mode 100644 +index 0000000..b0f24bb +diff --git a/va/glx/va_glx_impl.h b/va/glx/va_glx_impl.h +new file mode 100644 +index 0000000..977bfcc +diff --git a/va/glx/va_glx_private.h b/va/glx/va_glx_private.h +new file mode 100644 +index 0000000..d416729 +diff --git a/va/va_backend.h b/va/va_backend.h +index ff86744..06fef7f 100644 +--- a/va/va_backend.h ++++ b/va/va_backend.h +@@ -365,6 +365,9 @@ struct VADriverVTable + unsigned int *chroma_v_offset, + void **buffer + ); ++ ++ /* Optional: GLX support hooks */ ++ struct VADriverVTableGLX *glx; + }; + + struct VADriverContext +@@ -387,6 +390,7 @@ struct VADriverContext + void *handle; /* dlopen handle */ + + void *dri_state; ++ void *glx; /* opaque for GLX code */ + }; + + #define VA_DISPLAY_MAGIC 0x56414430 /* VAD0 */ +@@ -409,6 +413,8 @@ struct VADisplayContext + VADisplayContextP ctx, + char **driver_name + ); ++ ++ void *opaque; /* opaque for display extensions (e.g. GLX) */ + }; + + typedef VAStatus (*VADriverInit) ( +diff --git a/va/x11/va_x11.c b/va/x11/va_x11.c +index 71cc36f..6826b31 100644 +--- a/va/x11/va_x11.c ++++ b/va/x11/va_x11.c +@@ -217,6 +217,7 @@ VADisplay vaGetDisplay ( + pDisplayContext->vaIsValid = va_DisplayContextIsValid; + pDisplayContext->vaDestroy = va_DisplayContextDestroy; + pDisplayContext->vaGetDriverName = va_DisplayContextGetDriverName; ++ pDisplayContext->opaque = NULL; + pDisplayContexts = pDisplayContext; + pDriverContext->dri_state = dri_state; + dpy = (VADisplay)pDisplayContext; diff --git a/packages/multimedia/libva/patches/322_libva_glx.diff b/packages/multimedia/libva/patches/322_libva_glx.diff new file mode 100644 index 0000000000..99e8bdd7fd --- /dev/null +++ b/packages/multimedia/libva/patches/322_libva_glx.diff @@ -0,0 +1,1602 @@ +commit acf3ec6b5176bf4cd09136a1d8c9bc3ff63f9d4e +Author: Gwenole Beauchesne +Date: Sun Apr 4 08:06:59 2010 +0200 + + Add OpenGL extensions (v3) and generic implementation with TFP and FBO. + +diff --git a/Makefile.am b/Makefile.am +index 459660b..e75a2db 100644 +diff --git a/configure.ac b/configure.ac +index 95cf992..86366e9 100644 +diff --git a/libva-glx.pc.in b/libva-glx.pc.in +new file mode 100644 +index 0000000..2019915 +diff --git a/va/Makefile.am b/va/Makefile.am +index 99f6bbf..ebff3d5 100644 +diff --git a/va/glx/Makefile.am b/va/glx/Makefile.am +new file mode 100644 +index 0000000..337f34e +--- /dev/null ++++ b/va/glx/Makefile.am +@@ -0,0 +1,41 @@ ++# Copyright (C) 2009 Splitted-Desktop Systems. All Rights Reserved. ++# ++# 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, sub license, 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 PRECISION INSIGHT AND/OR ITS 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. ++ ++AM_CFLAGS = -DLINUX -I$(top_srcdir)/va -I$(top_srcdir)/va/x11 ++ ++source_c = \ ++ va_glx.c \ ++ va_glx_impl.c ++ ++source_h = \ ++ va_glx.h \ ++ va_backend_glx.h ++ ++source_h_priv = \ ++ va_glx_impl.h \ ++ va_glx_private.h ++ ++noinst_LTLIBRARIES = libva_glx.la ++libva_glxincludedir = ${includedir}/va ++libva_glxinclude_HEADERS = $(source_h) ++libva_glx_la_SOURCES = $(source_c) ++noinst_HEADERS = $(source_h_priv) +diff --git a/va/glx/va_backend_glx.h b/va/glx/va_backend_glx.h +new file mode 100644 +index 0000000..d110485 +--- /dev/null ++++ b/va/glx/va_backend_glx.h +@@ -0,0 +1,54 @@ ++/* ++ * Copyright (C) 2009 Splitted-Desktop Systems. All Rights Reserved. ++ * ++ * 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, sub license, 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 PRECISION INSIGHT AND/OR ITS 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 VA_BACKEND_GLX_H ++#define VA_BACKEND_GLX_H ++ ++struct VADriverContext; ++ ++struct VADriverVTableGLX { ++ /* Optional: create a surface used for display to OpenGL */ ++ VAStatus (*vaCreateSurfaceGLX)( ++ struct VADriverContext *ctx, ++ unsigned int gl_target, ++ unsigned int gl_texture, ++ void **gl_surface ++ ); ++ ++ /* Optional: destroy a VA/GLX surface */ ++ VAStatus (*vaDestroySurfaceGLX)( ++ struct VADriverContext *ctx, ++ void *gl_surface ++ ); ++ ++ /* Optional: copy a VA surface to a VA/GLX surface */ ++ VAStatus (*vaCopySurfaceGLX)( ++ struct VADriverContext *ctx, ++ void *gl_surface, ++ VASurfaceID surface, ++ unsigned int flags ++ ); ++}; ++ ++#endif /* VA_BACKEND_GLX_H */ +diff --git a/va/glx/va_glx.c b/va/glx/va_glx.c +new file mode 100644 +index 0000000..27145ce +--- /dev/null ++++ b/va/glx/va_glx.c +@@ -0,0 +1,174 @@ ++/* ++ * Copyright (C) 2009 Splitted-Desktop Systems. All Rights Reserved. ++ * ++ * 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, sub license, 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 PRECISION INSIGHT AND/OR ITS 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. ++ */ ++ ++#include ++#include "va_glx_private.h" ++#include "va_glx_impl.h" ++ ++#define INIT_CONTEXT(ctx, dpy) do { \ ++ if (!vaDisplayIsValid(dpy)) \ ++ return VA_STATUS_ERROR_INVALID_DISPLAY; \ ++ \ ++ ctx = ((VADisplayContextP)(dpy))->pDriverContext; \ ++ if (!(ctx)) \ ++ return VA_STATUS_ERROR_INVALID_DISPLAY; \ ++ \ ++ VAStatus status = va_glx_init_context(ctx); \ ++ if (status != VA_STATUS_SUCCESS) \ ++ return status; \ ++ } while (0) ++ ++#define INVOKE(ctx, func, args) do { \ ++ VADriverVTableGLXP vtable; \ ++ vtable = &VA_DRIVER_CONTEXT_GLX(ctx)->vtable; \ ++ if (!vtable->va##func##GLX) \ ++ return VA_STATUS_ERROR_UNIMPLEMENTED; \ ++ status = vtable->va##func##GLX args; \ ++ } while (0) ++ ++// Check VADisplay is valid ++static inline int vaDisplayIsValid(VADisplay dpy) ++{ ++ VADisplayContextP pDisplayContext = (VADisplayContextP)dpy; ++ ++ return (pDisplayContext && ++ pDisplayContext->vaIsValid && ++ pDisplayContext->vaIsValid(pDisplayContext)); ++} ++ ++// Destroy VA/GLX display context ++static void va_DisplayContextDestroy(VADisplayContextP pDisplayContext) ++{ ++ VADisplayContextGLXP pDisplayContextGLX; ++ VADriverContextP pDriverContext; ++ VADriverContextGLXP pDriverContextGLX; ++ ++ if (!pDisplayContext) ++ return; ++ ++ pDriverContext = pDisplayContext->pDriverContext; ++ pDriverContextGLX = pDriverContext->glx; ++ if (pDriverContextGLX) { ++ free(pDriverContextGLX); ++ pDriverContext->glx = NULL; ++ } ++ ++ pDisplayContextGLX = pDisplayContext->opaque; ++ if (pDisplayContextGLX) { ++ vaDestroyFunc vaDestroy = pDisplayContextGLX->vaDestroy; ++ free(pDisplayContextGLX); ++ pDisplayContext->opaque = NULL; ++ if (vaDestroy) ++ vaDestroy(pDisplayContext); ++ } ++} ++ ++// Return a suitable VADisplay for VA API ++VADisplay vaGetDisplayGLX(Display *native_dpy) ++{ ++ VADisplay dpy = NULL; ++ VADisplayContextP pDisplayContext = NULL; ++ VADisplayContextGLXP pDisplayContextGLX = NULL; ++ VADriverContextP pDriverContext; ++ VADriverContextGLXP pDriverContextGLX = NULL; ++ ++ dpy = vaGetDisplay(native_dpy); ++ if (!dpy) ++ return NULL; ++ pDisplayContext = (VADisplayContextP)dpy; ++ pDriverContext = pDisplayContext->pDriverContext; ++ ++ pDisplayContextGLX = calloc(1, sizeof(*pDisplayContextGLX)); ++ if (!pDisplayContextGLX) ++ goto error; ++ ++ pDriverContextGLX = calloc(1, sizeof(*pDriverContextGLX)); ++ if (!pDriverContextGLX) ++ goto error; ++ ++ pDisplayContextGLX->vaDestroy = pDisplayContext->vaDestroy; ++ pDisplayContext->vaDestroy = va_DisplayContextDestroy; ++ pDisplayContext->opaque = pDisplayContextGLX; ++ pDriverContext->glx = pDriverContextGLX; ++ return dpy; ++ ++error: ++ free(pDriverContextGLX); ++ free(pDisplayContextGLX); ++ pDisplayContext->vaDestroy(pDisplayContext); ++ return NULL; ++} ++ ++// Create a surface used for display to OpenGL ++VAStatus vaCreateSurfaceGLX( ++ VADisplay dpy, ++ GLenum target, ++ GLuint texture, ++ void **gl_surface ++) ++{ ++ VADriverContextP ctx; ++ VAStatus status; ++ ++ /* Make sure it is a valid GL texture object */ ++ if (!glIsTexture(texture)) ++ return VA_STATUS_ERROR_INVALID_PARAMETER; ++ ++ INIT_CONTEXT(ctx, dpy); ++ ++ INVOKE(ctx, CreateSurface, (ctx, target, texture, gl_surface)); ++ return status; ++} ++ ++// Destroy a VA/GLX surface ++VAStatus vaDestroySurfaceGLX( ++ VADisplay dpy, ++ void *gl_surface ++) ++{ ++ VADriverContextP ctx; ++ VAStatus status; ++ ++ INIT_CONTEXT(ctx, dpy); ++ ++ INVOKE(ctx, DestroySurface, (ctx, gl_surface)); ++ return status; ++} ++ ++// Copy a VA surface to a VA/GLX surface ++VAStatus vaCopySurfaceGLX( ++ VADisplay dpy, ++ void *gl_surface, ++ VASurfaceID surface, ++ unsigned int flags ++) ++{ ++ VADriverContextP ctx; ++ VAStatus status; ++ ++ INIT_CONTEXT(ctx, dpy); ++ ++ INVOKE(ctx, CopySurface, (ctx, gl_surface, surface, flags)); ++ return status; ++} +diff --git a/va/glx/va_glx.h b/va/glx/va_glx.h +new file mode 100644 +index 0000000..1a0624d +--- /dev/null ++++ b/va/glx/va_glx.h +@@ -0,0 +1,109 @@ ++/* ++ * Copyright (C) 2009 Splitted-Desktop Systems. All Rights Reserved. ++ * ++ * 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, sub license, 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 PRECISION INSIGHT AND/OR ITS 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 VA_GLX_H ++#define VA_GLX_H ++ ++#include ++#include ++ ++#ifdef __cplusplus ++extern "C" { ++#endif ++ ++/** ++ * Return a suitable VADisplay for VA API ++ * ++ * @param[in] dpy the X11 display ++ * @return a VADisplay ++ */ ++VADisplay vaGetDisplayGLX( ++ Display *dpy ++); ++ ++/** ++ * Create a surface used for display to OpenGL ++ * ++ * The application shall maintain the live GLX context itself. ++ * Implementations are free to use glXGetCurrentContext() and ++ * glXGetCurrentDrawable() functions for internal purposes. ++ * ++ * @param[in] dpy the VA display ++ * @param[in] target the GL target to which the texture needs to be bound ++ * @param[in] texture the GL texture ++ * @param[out] gl_surface the VA/GLX surface ++ * @return VA_STATUS_SUCCESS if successful ++ */ ++VAStatus vaCreateSurfaceGLX( ++ VADisplay dpy, ++ GLenum target, ++ GLuint texture, ++ void **gl_surface ++); ++ ++/** ++ * Destroy a VA/GLX surface ++ * ++ * The application shall maintain the live GLX context itself. ++ * Implementations are free to use glXGetCurrentContext() and ++ * glXGetCurrentDrawable() functions for internal purposes. ++ * ++ * @param[in] dpy the VA display ++ * @param[in] gl_surface the VA surface ++ * @return VA_STATUS_SUCCESS if successful ++ */ ++VAStatus vaDestroySurfaceGLX( ++ VADisplay dpy, ++ void *gl_surface ++); ++ ++/** ++ * Copy a VA surface to a VA/GLX surface ++ * ++ * This function will not return until the copy is completed. At this ++ * point, the underlying GL texture will contain the surface pixels ++ * in an RGB format defined by the user. ++ * ++ * The application shall maintain the live GLX context itself. ++ * Implementations are free to use glXGetCurrentContext() and ++ * glXGetCurrentDrawable() functions for internal purposes. ++ * ++ * @param[in] dpy the VA display ++ * @param[in] gl_surface the VA/GLX destination surface ++ * @param[in] surface the VA source surface ++ * @param[in] flags the PutSurface flags ++ * @return VA_STATUS_SUCCESS if successful ++ */ ++VAStatus vaCopySurfaceGLX( ++ VADisplay dpy, ++ void *gl_surface, ++ VASurfaceID surface, ++ unsigned int flags ++); ++ ++#ifdef __cplusplus ++} ++#endif ++ ++#endif /* VA_GLX_H */ +diff --git a/va/glx/va_glx_impl.c b/va/glx/va_glx_impl.c +new file mode 100644 +index 0000000..7c26648 +--- /dev/null ++++ b/va/glx/va_glx_impl.c +@@ -0,0 +1,1050 @@ ++/* ++ * Copyright (C) 2009 Splitted-Desktop Systems. All Rights Reserved. ++ * ++ * 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, sub license, 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 PRECISION INSIGHT AND/OR ITS 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. ++ */ ++ ++#define _GNU_SOURCE 1 ++#include "va_glx_private.h" ++#include "va_glx_impl.h" ++#include ++#include ++#include ++#include ++#include ++#include ++ ++static void va_glx_error_message(const char *format, ...) ++{ ++ va_list args; ++ va_start(args, format); ++ fprintf(stderr, "[%s] ", PACKAGE_NAME); ++ vfprintf(stderr, format, args); ++ va_end(args); ++} ++ ++// X error trap ++static int x11_error_code = 0; ++static int (*old_error_handler)(Display *, XErrorEvent *); ++ ++static int error_handler(Display *dpy, XErrorEvent *error) ++{ ++ x11_error_code = error->error_code; ++ return 0; ++} ++ ++static void x11_trap_errors(void) ++{ ++ x11_error_code = 0; ++ old_error_handler = XSetErrorHandler(error_handler); ++} ++ ++static int x11_untrap_errors(void) ++{ ++ XSetErrorHandler(old_error_handler); ++ return x11_error_code; ++} ++ ++// Returns a string representation of an OpenGL error ++static const char *gl_get_error_string(GLenum error) ++{ ++ static const struct { ++ GLenum val; ++ const char *str; ++ } ++ gl_errors[] = { ++ { GL_NO_ERROR, "no error" }, ++ { GL_INVALID_ENUM, "invalid enumerant" }, ++ { GL_INVALID_VALUE, "invalid value" }, ++ { GL_INVALID_OPERATION, "invalid operation" }, ++ { GL_STACK_OVERFLOW, "stack overflow" }, ++ { GL_STACK_UNDERFLOW, "stack underflow" }, ++ { GL_OUT_OF_MEMORY, "out of memory" }, ++#ifdef GL_INVALID_FRAMEBUFFER_OPERATION_EXT ++ { GL_INVALID_FRAMEBUFFER_OPERATION_EXT, "invalid framebuffer operation" }, ++#endif ++ { ~0, NULL } ++ }; ++ ++ int i; ++ for (i = 0; gl_errors[i].str; i++) { ++ if (gl_errors[i].val == error) ++ return gl_errors[i].str; ++ } ++ return "unknown"; ++} ++ ++static inline int gl_do_check_error(int report) ++{ ++ GLenum error; ++ int is_error = 0; ++ while ((error = glGetError()) != GL_NO_ERROR) { ++ if (report) ++ va_glx_error_message("glError: %s caught\n", ++ gl_get_error_string(error)); ++ is_error = 1; ++ } ++ return is_error; ++} ++ ++static inline void gl_purge_errors(void) ++{ ++ gl_do_check_error(0); ++} ++ ++static inline int gl_check_error(void) ++{ ++ return gl_do_check_error(1); ++} ++ ++// glGetTexLevelParameteriv() wrapper ++static int gl_get_texture_param(GLenum param, unsigned int *pval) ++{ ++ GLint val; ++ ++ gl_purge_errors(); ++ glGetTexLevelParameteriv(GL_TEXTURE_2D, 0, param, &val); ++ if (gl_check_error()) ++ return 0; ++ if (pval) ++ *pval = val; ++ return 1; ++} ++ ++// Returns the OpenGL VTable ++static inline VAOpenGLVTableP gl_get_vtable(VADriverContextP ctx) ++{ ++ return &VA_DRIVER_CONTEXT_GLX(ctx)->gl_vtable; ++} ++ ++// Lookup for a GLX function ++typedef void (*GLFuncPtr)(void); ++typedef GLFuncPtr (*GLXGetProcAddressProc)(const char *); ++ ++static GLFuncPtr get_proc_address_default(const char *name) ++{ ++ return NULL; ++} ++ ++static GLXGetProcAddressProc get_proc_address_func(void) ++{ ++ GLXGetProcAddressProc get_proc_func; ++ ++ dlerror(); ++ get_proc_func = (GLXGetProcAddressProc) ++ dlsym(RTLD_DEFAULT, "glXGetProcAddress"); ++ if (!dlerror()) ++ return get_proc_func; ++ ++ get_proc_func = (GLXGetProcAddressProc) ++ dlsym(RTLD_DEFAULT, "glXGetProcAddressARB"); ++ if (!dlerror()) ++ return get_proc_func; ++ ++ return get_proc_address_default; ++} ++ ++static inline GLFuncPtr get_proc_address(const char *name) ++{ ++ static GLXGetProcAddressProc get_proc_func = NULL; ++ if (!get_proc_func) ++ get_proc_func = get_proc_address_func(); ++ return get_proc_func(name); ++} ++ ++// Check for GLX extensions (TFP, FBO) ++static int check_extension(const char *name, const char *ext) ++{ ++ const char *end; ++ int name_len, n; ++ ++ if (!name || !ext) ++ return 0; ++ ++ end = ext + strlen(ext); ++ name_len = strlen(name); ++ while (ext < end) { ++ n = strcspn(ext, " "); ++ if (n == name_len && strncmp(name, ext, n) == 0) ++ return 1; ++ ext += (n + 1); ++ } ++ return 0; ++} ++ ++static int check_tfp_extensions(VADriverContextP ctx) ++{ ++ const char *gl_extensions; ++ const char *glx_extensions; ++ ++ gl_extensions = (const char *)glGetString(GL_EXTENSIONS); ++ if (!check_extension("GL_ARB_texture_non_power_of_two", gl_extensions)) ++ return 0; ++ ++ glx_extensions = glXQueryExtensionsString(ctx->x11_dpy, ctx->x11_screen); ++ if (!check_extension("GLX_EXT_texture_from_pixmap", glx_extensions)) ++ return 0; ++ return 1; ++} ++ ++static int check_fbo_extensions(VADriverContextP ctx) ++{ ++ const char *gl_extensions; ++ ++ gl_extensions = (const char *)glGetString(GL_EXTENSIONS); ++ if (check_extension("GL_ARB_framebuffer_object", gl_extensions)) ++ return 1; ++ if (check_extension("GL_EXT_framebuffer_object", gl_extensions)) ++ return 1; ++ return 0; ++} ++ ++// Load GLX extensions ++static int load_tfp_extensions(VADriverContextP ctx) ++{ ++ VAOpenGLVTableP pOpenGLVTable = gl_get_vtable(ctx); ++ ++ pOpenGLVTable->glx_bind_tex_image = (PFNGLXBINDTEXIMAGEEXTPROC) ++ get_proc_address("glXBindTexImageEXT"); ++ if (!pOpenGLVTable->glx_bind_tex_image) ++ return 0; ++ pOpenGLVTable->glx_release_tex_image = (PFNGLXRELEASETEXIMAGEEXTPROC) ++ get_proc_address("glXReleaseTexImageEXT"); ++ if (!pOpenGLVTable->glx_release_tex_image) ++ return 0; ++ return 1; ++} ++ ++static int load_fbo_extensions(VADriverContextP ctx) ++{ ++ VAOpenGLVTableP pOpenGLVTable = gl_get_vtable(ctx); ++ ++ pOpenGLVTable->gl_gen_framebuffers = (PFNGLGENFRAMEBUFFERSEXTPROC) ++ get_proc_address("glGenFramebuffersEXT"); ++ if (!pOpenGLVTable->gl_gen_framebuffers) ++ return 0; ++ pOpenGLVTable->gl_delete_framebuffers = (PFNGLDELETEFRAMEBUFFERSEXTPROC) ++ get_proc_address("glDeleteFramebuffersEXT"); ++ if (!pOpenGLVTable->gl_delete_framebuffers) ++ return 0; ++ pOpenGLVTable->gl_bind_framebuffer = (PFNGLBINDFRAMEBUFFEREXTPROC) ++ get_proc_address("glBindFramebufferEXT"); ++ if (!pOpenGLVTable->gl_bind_framebuffer) ++ return 0; ++ pOpenGLVTable->gl_gen_renderbuffers = (PFNGLGENRENDERBUFFERSEXTPROC) ++ get_proc_address("glGenRenderbuffersEXT"); ++ if (!pOpenGLVTable->gl_gen_renderbuffers) ++ return 0; ++ pOpenGLVTable->gl_delete_renderbuffers = (PFNGLDELETERENDERBUFFERSEXTPROC) ++ get_proc_address("glDeleteRenderbuffersEXT"); ++ if (!pOpenGLVTable->gl_delete_renderbuffers) ++ return 0; ++ pOpenGLVTable->gl_bind_renderbuffer = (PFNGLBINDRENDERBUFFEREXTPROC) ++ get_proc_address("glBindRenderbufferEXT"); ++ if (!pOpenGLVTable->gl_bind_renderbuffer) ++ return 0; ++ pOpenGLVTable->gl_renderbuffer_storage = (PFNGLRENDERBUFFERSTORAGEEXTPROC) ++ get_proc_address("glRenderbufferStorageEXT"); ++ if (!pOpenGLVTable->gl_renderbuffer_storage) ++ return 0; ++ pOpenGLVTable->gl_framebuffer_renderbuffer = (PFNGLFRAMEBUFFERRENDERBUFFEREXTPROC) ++ get_proc_address("glFramebufferRenderbufferEXT"); ++ if (!pOpenGLVTable->gl_framebuffer_renderbuffer) ++ return 0; ++ pOpenGLVTable->gl_framebuffer_texture_2d = (PFNGLFRAMEBUFFERTEXTURE2DEXTPROC) ++ get_proc_address("glFramebufferTexture2DEXT"); ++ if (!pOpenGLVTable->gl_framebuffer_texture_2d) ++ return 0; ++ pOpenGLVTable->gl_check_framebuffer_status = (PFNGLCHECKFRAMEBUFFERSTATUSEXTPROC) ++ get_proc_address("glCheckFramebufferStatusEXT"); ++ if (!pOpenGLVTable->gl_check_framebuffer_status) ++ return 0; ++ return 1; ++} ++ ++ ++/* ========================================================================= */ ++/* === VA/GLX helpers === */ ++/* ========================================================================= */ ++ ++// OpenGL context state ++typedef struct OpenGLContextState *OpenGLContextStateP; ++ ++struct OpenGLContextState { ++ Display *display; ++ Window window; ++ XVisualInfo *visual; ++ GLXContext context; ++}; ++ ++static void ++gl_destroy_context(OpenGLContextStateP cs) ++{ ++ if (!cs) ++ return; ++ ++ if (cs->visual) { ++ XFree(cs->visual); ++ cs->visual = NULL; ++ } ++ ++ if (cs->display && cs->context) { ++ if (glXGetCurrentContext() == cs->context) ++ glXMakeCurrent(cs->display, None, NULL); ++ glXDestroyContext(cs->display, cs->context); ++ cs->display = NULL; ++ cs->context = NULL; ++ } ++ free(cs); ++} ++ ++static OpenGLContextStateP ++gl_create_context(VADriverContextP ctx, OpenGLContextStateP parent) ++{ ++ OpenGLContextStateP cs; ++ GLXFBConfig *fbconfigs = NULL; ++ int n_fbconfigs; ++ ++ static GLint fbconfig_attrs[] = { ++ GLX_DRAWABLE_TYPE, GLX_WINDOW_BIT, ++ GLX_RENDER_TYPE, GLX_RGBA_BIT, ++ GLX_DOUBLEBUFFER, True, ++ GLX_RED_SIZE, 1, ++ GLX_GREEN_SIZE, 1, ++ GLX_BLUE_SIZE, 1, ++ None ++ }; ++ ++ cs = malloc(sizeof(*cs)); ++ if (!cs) ++ goto error; ++ ++ cs->display = ctx->x11_dpy; ++ cs->window = parent ? parent->window : None; ++ cs->visual = NULL; ++ cs->context = NULL; ++ ++ fbconfigs = glXChooseFBConfig( ++ ctx->x11_dpy, ++ ctx->x11_screen, ++ fbconfig_attrs, ++ &n_fbconfigs ++ ); ++ if (!fbconfigs) ++ goto error; ++ ++ cs->visual = glXGetVisualFromFBConfig(ctx->x11_dpy, fbconfigs[0]); ++ if (!cs->visual) ++ goto error; ++ ++ cs->context = glXCreateNewContext( ++ ctx->x11_dpy, ++ fbconfigs[0], ++ GLX_RGBA_TYPE, ++ parent ? parent->context : NULL, ++ True ++ ); ++ if (cs->context) ++ goto end; ++ ++error: ++ gl_destroy_context(cs); ++ cs = NULL; ++end: ++ if (fbconfigs) ++ XFree(fbconfigs); ++ return cs; ++} ++ ++static void gl_get_current_context(OpenGLContextStateP cs) ++{ ++ cs->display = glXGetCurrentDisplay(); ++ cs->window = glXGetCurrentDrawable(); ++ cs->context = glXGetCurrentContext(); ++} ++ ++static int ++gl_set_current_context(OpenGLContextStateP new_cs, OpenGLContextStateP old_cs) ++{ ++ /* If display is NULL, this could be that new_cs was retrieved from ++ gl_get_current_context() with none set previously. If that case, ++ the other fields are also NULL and we don't return an error */ ++ if (!new_cs->display) ++ return !new_cs->window && !new_cs->context; ++ ++ if (old_cs) { ++ if (old_cs == new_cs) ++ return 1; ++ gl_get_current_context(old_cs); ++ if (old_cs->display == new_cs->display && ++ old_cs->window == new_cs->window && ++ old_cs->context == new_cs->context) ++ return 1; ++ } ++ return glXMakeCurrent(new_cs->display, new_cs->window, new_cs->context); ++} ++ ++/** Unique VASurfaceGLX identifier */ ++#define VA_SURFACE_GLX_MAGIC VA_FOURCC('V','A','G','L') ++ ++struct VASurfaceGLX { ++ uint32_t magic; ///< Magic number identifying a VASurfaceGLX ++ GLenum target; ///< GL target to which the texture is bound ++ GLuint texture; ///< GL texture ++ VASurfaceID surface; ///< Associated VA surface ++ unsigned int width; ++ unsigned int height; ++ OpenGLContextStateP gl_context; ++ int is_bound; ++ Pixmap pixmap; ++ GLuint pix_texture; ++ GLXPixmap glx_pixmap; ++ GLuint fbo; ++}; ++ ++// Create Pixmaps for GLX texture-from-pixmap extension ++static int create_tfp_surface(VADriverContextP ctx, VASurfaceGLXP pSurfaceGLX) ++{ ++ const unsigned int width = pSurfaceGLX->width; ++ const unsigned int height = pSurfaceGLX->height; ++ Pixmap pixmap = None; ++ GLXFBConfig *fbconfig = NULL; ++ GLXPixmap glx_pixmap = None; ++ Window root_window; ++ XWindowAttributes wattr; ++ int *attrib; ++ int n_fbconfig_attrs; ++ ++ root_window = RootWindow(ctx->x11_dpy, ctx->x11_screen); ++ XGetWindowAttributes(ctx->x11_dpy, root_window, &wattr); ++ if (wattr.depth != 24 && wattr.depth != 32) ++ return 0; ++ pixmap = XCreatePixmap( ++ ctx->x11_dpy, ++ root_window, ++ width, ++ height, ++ wattr.depth ++ ); ++ if (!pixmap) ++ return 0; ++ pSurfaceGLX->pixmap = pixmap; ++ ++ int fbconfig_attrs[32] = { ++ GLX_DRAWABLE_TYPE, GLX_PIXMAP_BIT, ++ GLX_DOUBLEBUFFER, GL_TRUE, ++ GLX_RENDER_TYPE, GLX_RGBA_BIT, ++ GLX_X_RENDERABLE, GL_TRUE, ++ GLX_Y_INVERTED_EXT, GL_TRUE, ++ GLX_RED_SIZE, 8, ++ GLX_GREEN_SIZE, 8, ++ GLX_BLUE_SIZE, 8, ++ GL_NONE, ++ }; ++ for (attrib = fbconfig_attrs; *attrib != GL_NONE; attrib += 2) ++ ; ++ *attrib++ = GLX_DEPTH_SIZE; *attrib++ = wattr.depth; ++ if (wattr.depth == 32) { ++ *attrib++ = GLX_ALPHA_SIZE; *attrib++ = 8; ++ *attrib++ = GLX_BIND_TO_TEXTURE_RGBA_EXT; *attrib++ = GL_TRUE; ++ } ++ else { ++ *attrib++ = GLX_BIND_TO_TEXTURE_RGB_EXT; *attrib++ = GL_TRUE; ++ } ++ *attrib++ = GL_NONE; ++ ++ fbconfig = glXChooseFBConfig( ++ ctx->x11_dpy, ++ ctx->x11_screen, ++ fbconfig_attrs, ++ &n_fbconfig_attrs ++ ); ++ if (!fbconfig) ++ return 0; ++ ++ int pixmap_attrs[10] = { ++ GLX_TEXTURE_TARGET_EXT, GLX_TEXTURE_2D_EXT, ++ GLX_MIPMAP_TEXTURE_EXT, GL_FALSE, ++ GL_NONE, ++ }; ++ for (attrib = pixmap_attrs; *attrib != GL_NONE; attrib += 2) ++ ; ++ *attrib++ = GLX_TEXTURE_FORMAT_EXT; ++ if (wattr.depth == 32) ++ *attrib++ = GLX_TEXTURE_FORMAT_RGBA_EXT; ++ else ++ *attrib++ = GLX_TEXTURE_FORMAT_RGB_EXT; ++ *attrib++ = GL_NONE; ++ ++ x11_trap_errors(); ++ glx_pixmap = glXCreatePixmap( ++ ctx->x11_dpy, ++ fbconfig[0], ++ pixmap, ++ pixmap_attrs ++ ); ++ free(fbconfig); ++ if (x11_untrap_errors() != 0) ++ return 0; ++ pSurfaceGLX->glx_pixmap = glx_pixmap; ++ ++ glGenTextures(1, &pSurfaceGLX->pix_texture); ++ glBindTexture(GL_TEXTURE_2D, pSurfaceGLX->pix_texture); ++ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); ++ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); ++ return 1; ++} ++ ++// Destroy Pixmaps used for TFP ++static void destroy_tfp_surface(VADriverContextP ctx, VASurfaceGLXP pSurfaceGLX) ++{ ++ if (pSurfaceGLX->pix_texture) { ++ glDeleteTextures(1, &pSurfaceGLX->pix_texture); ++ pSurfaceGLX->pix_texture = 0; ++ } ++ ++ if (pSurfaceGLX->glx_pixmap) { ++ glXDestroyPixmap(ctx->x11_dpy, pSurfaceGLX->glx_pixmap); ++ pSurfaceGLX->glx_pixmap = None; ++ } ++ ++ if (pSurfaceGLX->pixmap) { ++ XFreePixmap(ctx->x11_dpy, pSurfaceGLX->pixmap); ++ pSurfaceGLX->pixmap = None; ++ } ++} ++ ++// Bind GLX Pixmap to texture ++static int bind_pixmap(VADriverContextP ctx, VASurfaceGLXP pSurfaceGLX) ++{ ++ VAOpenGLVTableP pOpenGLVTable = gl_get_vtable(ctx); ++ ++ if (pSurfaceGLX->is_bound) ++ return 1; ++ ++ glBindTexture(GL_TEXTURE_2D, pSurfaceGLX->pix_texture); ++ ++ x11_trap_errors(); ++ pOpenGLVTable->glx_bind_tex_image( ++ ctx->x11_dpy, ++ pSurfaceGLX->glx_pixmap, ++ GLX_FRONT_LEFT_EXT, ++ NULL ++ ); ++ XSync(ctx->x11_dpy, False); ++ if (x11_untrap_errors() != 0) { ++ va_glx_error_message("failed to bind pixmap\n"); ++ return 0; ++ } ++ ++ pSurfaceGLX->is_bound = 1; ++ return 1; ++} ++ ++// Release GLX Pixmap from texture ++static int unbind_pixmap(VADriverContextP ctx, VASurfaceGLXP pSurfaceGLX) ++{ ++ VAOpenGLVTableP pOpenGLVTable = gl_get_vtable(ctx); ++ ++ if (!pSurfaceGLX->is_bound) ++ return 1; ++ ++ x11_trap_errors(); ++ pOpenGLVTable->glx_release_tex_image( ++ ctx->x11_dpy, ++ pSurfaceGLX->glx_pixmap, ++ GLX_FRONT_LEFT_EXT ++ ); ++ XSync(ctx->x11_dpy, False); ++ if (x11_untrap_errors() != 0) { ++ va_glx_error_message("failed to release pixmap\n"); ++ return 0; ++ } ++ ++ glBindTexture(GL_TEXTURE_2D, 0); ++ ++ pSurfaceGLX->is_bound = 0; ++ return 1; ++} ++ ++// Render GLX Pixmap to texture ++static void render_pixmap(VADriverContextP ctx, VASurfaceGLXP pSurfaceGLX) ++{ ++ const unsigned int w = pSurfaceGLX->width; ++ const unsigned int h = pSurfaceGLX->height; ++ ++ glColor4f(1.0f, 1.0f, 1.0f, 1.0f); ++ glBegin(GL_QUADS); ++ { ++ glTexCoord2f(0.0f, 0.0f); glVertex2i(0, 0); ++ glTexCoord2f(0.0f, 1.0f); glVertex2i(0, h); ++ glTexCoord2f(1.0f, 1.0f); glVertex2i(w, h); ++ glTexCoord2f(1.0f, 0.0f); glVertex2i(w, 0); ++ } ++ glEnd(); ++} ++ ++// Create offscreen surface ++static int create_fbo_surface(VADriverContextP ctx, VASurfaceGLXP pSurfaceGLX) ++{ ++ VAOpenGLVTableP pOpenGLVTable = gl_get_vtable(ctx); ++ GLuint fbo; ++ GLenum status; ++ ++ pOpenGLVTable->gl_gen_framebuffers(1, &fbo); ++ pOpenGLVTable->gl_bind_framebuffer(GL_FRAMEBUFFER_EXT, fbo); ++ pOpenGLVTable->gl_framebuffer_texture_2d( ++ GL_FRAMEBUFFER_EXT, ++ GL_COLOR_ATTACHMENT0_EXT, ++ GL_TEXTURE_2D, ++ pSurfaceGLX->texture, ++ 0 ++ ); ++ ++ status = pOpenGLVTable->gl_check_framebuffer_status(GL_DRAW_FRAMEBUFFER_EXT); ++ pOpenGLVTable->gl_bind_framebuffer(GL_FRAMEBUFFER_EXT, 0); ++ if (status != GL_FRAMEBUFFER_COMPLETE_EXT) ++ return 0; ++ ++ pSurfaceGLX->fbo = fbo; ++ return 1; ++} ++ ++// Destroy offscreen surface ++static void destroy_fbo_surface(VADriverContextP ctx, VASurfaceGLXP pSurfaceGLX) ++{ ++ VAOpenGLVTableP pOpenGLVTable = gl_get_vtable(ctx); ++ ++ if (pSurfaceGLX->fbo) { ++ pOpenGLVTable->gl_delete_framebuffers(1, &pSurfaceGLX->fbo); ++ pSurfaceGLX->fbo = 0; ++ } ++} ++ ++// Setup matrices to match the FBO texture dimensions ++static void fbo_enter(VADriverContextP ctx, VASurfaceGLXP pSurfaceGLX) ++{ ++ VAOpenGLVTableP pOpenGLVTable = gl_get_vtable(ctx); ++ const unsigned int width = pSurfaceGLX->width; ++ const unsigned int height = pSurfaceGLX->height; ++ ++ pOpenGLVTable->gl_bind_framebuffer(GL_FRAMEBUFFER_EXT, pSurfaceGLX->fbo); ++ glPushAttrib(GL_VIEWPORT_BIT); ++ glMatrixMode(GL_PROJECTION); ++ glPushMatrix(); ++ glLoadIdentity(); ++ glMatrixMode(GL_MODELVIEW); ++ glPushMatrix(); ++ glLoadIdentity(); ++ glViewport(0, 0, width, height); ++ glTranslatef(-1.0f, -1.0f, 0.0f); ++ glScalef(2.0f / width, 2.0f / height, 1.0f); ++} ++ ++// Restore original OpenGL matrices ++static void fbo_leave(VADriverContextP ctx) ++{ ++ VAOpenGLVTableP pOpenGLVTable = gl_get_vtable(ctx); ++ ++ glPopAttrib(); ++ glMatrixMode(GL_PROJECTION); ++ glPopMatrix(); ++ glMatrixMode(GL_MODELVIEW); ++ glPopMatrix(); ++ pOpenGLVTable->gl_bind_framebuffer(GL_FRAMEBUFFER_EXT, 0); ++} ++ ++// Check internal texture format is supported ++static int is_supported_internal_format(GLenum format) ++{ ++ /* XXX: we don't support other textures than RGBA */ ++ switch (format) { ++ case 4: ++ case GL_RGBA: ++ case GL_RGBA8: ++ return 1; ++ } ++ return 0; ++} ++ ++// Destroy VA/GLX surface ++static void ++destroy_surface(VADriverContextP ctx, VASurfaceGLXP pSurfaceGLX) ++{ ++ unbind_pixmap(ctx, pSurfaceGLX); ++ destroy_fbo_surface(ctx, pSurfaceGLX); ++ destroy_tfp_surface(ctx, pSurfaceGLX); ++ free(pSurfaceGLX); ++} ++ ++// Create VA/GLX surface ++static VASurfaceGLXP ++create_surface(VADriverContextP ctx, GLenum target, GLuint texture) ++{ ++ VASurfaceGLXP pSurfaceGLX = NULL; ++ unsigned int internal_format, border_width, width, height; ++ int is_error = 1; ++ ++ pSurfaceGLX = malloc(sizeof(*pSurfaceGLX)); ++ if (!pSurfaceGLX) ++ goto end; ++ ++ pSurfaceGLX->magic = VA_SURFACE_GLX_MAGIC; ++ pSurfaceGLX->target = target; ++ pSurfaceGLX->texture = texture; ++ pSurfaceGLX->surface = VA_INVALID_SURFACE; ++ pSurfaceGLX->gl_context = NULL; ++ pSurfaceGLX->is_bound = 0; ++ pSurfaceGLX->pixmap = None; ++ pSurfaceGLX->pix_texture = 0; ++ pSurfaceGLX->glx_pixmap = None; ++ pSurfaceGLX->fbo = 0; ++ ++ glEnable(target); ++ glBindTexture(target, texture); ++ if (!gl_get_texture_param(GL_TEXTURE_INTERNAL_FORMAT, &internal_format)) ++ goto end; ++ if (!is_supported_internal_format(internal_format)) ++ goto end; ++ ++ /* Check texture dimensions */ ++ if (!gl_get_texture_param(GL_TEXTURE_BORDER, &border_width)) ++ goto end; ++ if (!gl_get_texture_param(GL_TEXTURE_WIDTH, &width)) ++ goto end; ++ if (!gl_get_texture_param(GL_TEXTURE_HEIGHT, &height)) ++ goto end; ++ ++ width -= 2 * border_width; ++ height -= 2 * border_width; ++ if (width == 0 || height == 0) ++ goto end; ++ ++ pSurfaceGLX->width = width; ++ pSurfaceGLX->height = height; ++ ++ /* Create TFP objects */ ++ if (!create_tfp_surface(ctx, pSurfaceGLX)) ++ goto end; ++ ++ /* Create FBO objects */ ++ if (!create_fbo_surface(ctx, pSurfaceGLX)) ++ goto end; ++ ++ is_error = 0; ++end: ++ if (is_error && pSurfaceGLX) { ++ destroy_surface(ctx, pSurfaceGLX); ++ pSurfaceGLX = NULL; ++ } ++ return pSurfaceGLX; ++} ++ ++ ++/* ========================================================================= */ ++/* === VA/GLX implementation from the driver (fordward calls) === */ ++/* ========================================================================= */ ++ ++#define INVOKE(ctx, func, args) do { \ ++ VADriverVTableGLXP vtable = (ctx)->vtable.glx; \ ++ if (!vtable->va##func##GLX) \ ++ return VA_STATUS_ERROR_UNIMPLEMENTED; \ ++ \ ++ VAStatus status = vtable->va##func##GLX args; \ ++ if (status != VA_STATUS_SUCCESS) \ ++ return status; \ ++ } while (0) ++ ++static VAStatus ++vaCreateSurfaceGLX_impl_driver( ++ VADriverContextP ctx, ++ GLenum target, ++ GLuint texture, ++ void **gl_surface ++) ++{ ++ INVOKE(ctx, CreateSurface, (ctx, target, texture, gl_surface)); ++ return VA_STATUS_SUCCESS; ++} ++ ++static VAStatus ++vaDestroySurfaceGLX_impl_driver(VADriverContextP ctx, void *gl_surface) ++{ ++ INVOKE(ctx, DestroySurface, (ctx, gl_surface)); ++ return VA_STATUS_SUCCESS; ++} ++ ++static VAStatus ++vaCopySurfaceGLX_impl_driver( ++ VADriverContextP ctx, ++ void *gl_surface, ++ VASurfaceID surface, ++ unsigned int flags ++) ++{ ++ INVOKE(ctx, CopySurface, (ctx, gl_surface, surface, flags)); ++ return VA_STATUS_SUCCESS; ++} ++ ++#undef INVOKE ++ ++ ++/* ========================================================================= */ ++/* === VA/GLX implementation from libVA (generic and suboptimal path) === */ ++/* ========================================================================= */ ++ ++#define INIT_SURFACE(surface, surface_arg) do { \ ++ surface = (VASurfaceGLXP)(surface_arg); \ ++ if (!check_surface(surface)) \ ++ return VA_STATUS_ERROR_INVALID_SURFACE; \ ++ } while (0) ++ ++// Check VASurfaceGLX is valid ++static inline int check_surface(VASurfaceGLXP pSurfaceGLX) ++{ ++ return pSurfaceGLX && pSurfaceGLX->magic == VA_SURFACE_GLX_MAGIC; ++} ++ ++static VAStatus ++vaCreateSurfaceGLX_impl_libva( ++ VADriverContextP ctx, ++ GLenum target, ++ GLuint texture, ++ void **gl_surface ++) ++{ ++ VASurfaceGLXP pSurfaceGLX; ++ struct OpenGLContextState old_cs, *new_cs; ++ ++ gl_get_current_context(&old_cs); ++ new_cs = gl_create_context(ctx, &old_cs); ++ if (!new_cs) ++ return VA_STATUS_ERROR_ALLOCATION_FAILED; ++ if (!gl_set_current_context(new_cs, NULL)) ++ return VA_STATUS_ERROR_OPERATION_FAILED; ++ ++ pSurfaceGLX = create_surface(ctx, target, texture); ++ if (!pSurfaceGLX) ++ return VA_STATUS_ERROR_ALLOCATION_FAILED; ++ ++ pSurfaceGLX->gl_context = new_cs; ++ *gl_surface = pSurfaceGLX; ++ ++ gl_set_current_context(&old_cs, NULL); ++ return VA_STATUS_SUCCESS; ++} ++ ++static VAStatus ++vaDestroySurfaceGLX_impl_libva(VADriverContextP ctx, void *gl_surface) ++{ ++ VASurfaceGLXP pSurfaceGLX; ++ struct OpenGLContextState old_cs, *new_cs; ++ ++ INIT_SURFACE(pSurfaceGLX, gl_surface); ++ ++ new_cs = pSurfaceGLX->gl_context; ++ if (!gl_set_current_context(new_cs, &old_cs)) ++ return VA_STATUS_ERROR_OPERATION_FAILED; ++ ++ destroy_surface(ctx, pSurfaceGLX); ++ ++ gl_destroy_context(new_cs); ++ gl_set_current_context(&old_cs, NULL); ++ return VA_STATUS_SUCCESS; ++} ++ ++static inline VAStatus ++deassociate_surface(VADriverContextP ctx, VASurfaceGLXP pSurfaceGLX) ++{ ++ if (!unbind_pixmap(ctx, pSurfaceGLX)) ++ return VA_STATUS_ERROR_OPERATION_FAILED; ++ ++ pSurfaceGLX->surface = VA_INVALID_SURFACE; ++ return VA_STATUS_SUCCESS; ++} ++ ++static VAStatus ++associate_surface( ++ VADriverContextP ctx, ++ VASurfaceGLXP pSurfaceGLX, ++ VASurfaceID surface, ++ unsigned int flags ++) ++{ ++ VAStatus status; ++ ++ /* XXX: optimise case where we are associating the same VA surface ++ as before an no changed occurred to it */ ++ status = deassociate_surface(ctx, pSurfaceGLX); ++ if (status != VA_STATUS_SUCCESS) ++ return status; ++ ++ x11_trap_errors(); ++ status = ctx->vtable.vaPutSurface( ++ ctx, ++ surface, ++ pSurfaceGLX->pixmap, ++ 0, 0, pSurfaceGLX->width, pSurfaceGLX->height, ++ 0, 0, pSurfaceGLX->width, pSurfaceGLX->height, ++ NULL, 0, ++ flags ++ ); ++ XSync(ctx->x11_dpy, False); ++ if (x11_untrap_errors() != 0) ++ return VA_STATUS_ERROR_OPERATION_FAILED; ++ if (status != VA_STATUS_SUCCESS) ++ return status; ++ ++ pSurfaceGLX->surface = surface; ++ return VA_STATUS_SUCCESS; ++} ++ ++static inline VAStatus ++sync_surface(VADriverContextP ctx, VASurfaceGLXP pSurfaceGLX) ++{ ++ if (pSurfaceGLX->surface == VA_INVALID_SURFACE) ++ return VA_STATUS_ERROR_INVALID_SURFACE; ++ ++ return ctx->vtable.vaSyncSurface(ctx, pSurfaceGLX->surface); ++} ++ ++static inline VAStatus ++begin_render_surface(VADriverContextP ctx, VASurfaceGLXP pSurfaceGLX) ++{ ++ VAStatus status; ++ ++ status = sync_surface(ctx, pSurfaceGLX); ++ if (status != VA_STATUS_SUCCESS) ++ return status; ++ ++ if (!bind_pixmap(ctx, pSurfaceGLX)) ++ return VA_STATUS_ERROR_OPERATION_FAILED; ++ ++ return VA_STATUS_SUCCESS; ++} ++ ++static inline VAStatus ++end_render_surface(VADriverContextP ctx, VASurfaceGLXP pSurfaceGLX) ++{ ++ if (!unbind_pixmap(ctx, pSurfaceGLX)) ++ return VA_STATUS_ERROR_OPERATION_FAILED; ++ ++ return VA_STATUS_SUCCESS; ++} ++ ++static VAStatus ++copy_surface( ++ VADriverContextP ctx, ++ VASurfaceGLXP pSurfaceGLX, ++ VASurfaceID surface, ++ unsigned int flags ++) ++{ ++ VAStatus status; ++ ++ /* Associate VA surface */ ++ status = associate_surface(ctx, pSurfaceGLX, surface, flags); ++ if (status != VA_STATUS_SUCCESS) ++ return status; ++ ++ /* Render to FBO */ ++ fbo_enter(ctx, pSurfaceGLX); ++ status = begin_render_surface(ctx, pSurfaceGLX); ++ if (status == VA_STATUS_SUCCESS) { ++ render_pixmap(ctx, pSurfaceGLX); ++ status = end_render_surface(ctx, pSurfaceGLX); ++ } ++ fbo_leave(ctx); ++ if (status != VA_STATUS_SUCCESS) ++ return status; ++ ++ return deassociate_surface(ctx, pSurfaceGLX); ++} ++ ++static VAStatus ++vaCopySurfaceGLX_impl_libva( ++ VADriverContextP ctx, ++ void *gl_surface, ++ VASurfaceID surface, ++ unsigned int flags ++) ++{ ++ VASurfaceGLXP pSurfaceGLX; ++ VAStatus status; ++ struct OpenGLContextState old_cs; ++ ++ INIT_SURFACE(pSurfaceGLX, gl_surface); ++ ++ if (!gl_set_current_context(pSurfaceGLX->gl_context, &old_cs)) ++ return VA_STATUS_ERROR_OPERATION_FAILED; ++ ++ status = copy_surface(ctx, pSurfaceGLX, surface, flags); ++ ++ gl_set_current_context(&old_cs, NULL); ++ return status; ++} ++ ++#undef INIT_SURFACE ++ ++ ++/* ========================================================================= */ ++/* === Private VA/GLX vtable initialization === */ ++/* ========================================================================= */ ++ ++// Initialize GLX driver context ++VAStatus va_glx_init_context(VADriverContextP ctx) ++{ ++ VADriverContextGLXP glx_ctx = VA_DRIVER_CONTEXT_GLX(ctx); ++ VADriverVTableGLXP vtable = &glx_ctx->vtable; ++ int glx_major, glx_minor; ++ ++ if (glx_ctx->is_initialized) ++ return VA_STATUS_SUCCESS; ++ ++ if (ctx->vtable.glx && ctx->vtable.glx->vaCopySurfaceGLX) { ++ vtable->vaCreateSurfaceGLX = vaCreateSurfaceGLX_impl_driver; ++ vtable->vaDestroySurfaceGLX = vaDestroySurfaceGLX_impl_driver; ++ vtable->vaCopySurfaceGLX = vaCopySurfaceGLX_impl_driver; ++ } ++ else { ++ vtable->vaCreateSurfaceGLX = vaCreateSurfaceGLX_impl_libva; ++ vtable->vaDestroySurfaceGLX = vaDestroySurfaceGLX_impl_libva; ++ vtable->vaCopySurfaceGLX = vaCopySurfaceGLX_impl_libva; ++ ++ if (!glXQueryVersion(ctx->x11_dpy, &glx_major, &glx_minor)) ++ return VA_STATUS_ERROR_UNIMPLEMENTED; ++ if (glx_major < 1 || (glx_major == 1 && glx_minor < 3)) { /* GLX 1.3 */ ++ va_glx_error_message("GLX version 1.3 expected but only " ++ "version %d.%d is available\n", ++ glx_major, glx_minor); ++ return VA_STATUS_ERROR_UNIMPLEMENTED; ++ } ++ ++ if (!check_tfp_extensions(ctx) || !load_tfp_extensions(ctx)) ++ return VA_STATUS_ERROR_UNIMPLEMENTED; ++ ++ if (!check_fbo_extensions(ctx) || !load_fbo_extensions(ctx)) ++ return VA_STATUS_ERROR_UNIMPLEMENTED; ++ } ++ ++ glx_ctx->is_initialized = 1; ++ return VA_STATUS_SUCCESS; ++} +diff --git a/va/glx/va_glx_impl.h b/va/glx/va_glx_impl.h +new file mode 100644 +index 0000000..ca1095e +--- /dev/null ++++ b/va/glx/va_glx_impl.h +@@ -0,0 +1,37 @@ ++/* ++ * Copyright (C) 2009 Splitted-Desktop Systems. All Rights Reserved. ++ * ++ * 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, sub license, 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 PRECISION INSIGHT AND/OR ITS 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 VA_GLX_IMPL_H ++#define VA_GLX_IMPL_H ++ ++/** ++ * Initialize GLX driver context ++ * ++ * @param[in] ctx the VA driver context ++ * @return VA_STATUS_SUCCESS if successful ++ */ ++VAStatus va_glx_init_context(VADriverContextP ctx) ++ ATTRIBUTE_HIDDEN; ++ ++#endif /* VA_GLX_IMPL_H */ +diff --git a/va/glx/va_glx_private.h b/va/glx/va_glx_private.h +new file mode 100644 +index 0000000..6667de9 +--- /dev/null ++++ b/va/glx/va_glx_private.h +@@ -0,0 +1,76 @@ ++/* ++ * Copyright (C) 2009 Splitted-Desktop Systems. All Rights Reserved. ++ * ++ * 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, sub license, 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 PRECISION INSIGHT AND/OR ITS 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 VA_GLX_PRIVATE_H ++#define VA_GLX_PRIVATE_H ++ ++#include "config.h" ++#include "va.h" ++#include "va_backend.h" ++#include "va_x11.h" ++#include "va_glx.h" ++#include "va_backend_glx.h" ++ ++#if GLX_GLXEXT_VERSION < 18 ++typedef void (*PFNGLXBINDTEXIMAGEEXTPROC)(Display *, GLXDrawable, int, const int *); ++typedef void (*PFNGLXRELEASETEXIMAGEEXTPROC)(Display *, GLXDrawable, int); ++#endif ++ ++typedef struct VAOpenGLVTable *VAOpenGLVTableP; ++ ++struct VAOpenGLVTable { ++ PFNGLXBINDTEXIMAGEEXTPROC glx_bind_tex_image; ++ PFNGLXRELEASETEXIMAGEEXTPROC glx_release_tex_image; ++ PFNGLGENFRAMEBUFFERSEXTPROC gl_gen_framebuffers; ++ PFNGLDELETEFRAMEBUFFERSEXTPROC gl_delete_framebuffers; ++ PFNGLBINDFRAMEBUFFEREXTPROC gl_bind_framebuffer; ++ PFNGLGENRENDERBUFFERSEXTPROC gl_gen_renderbuffers; ++ PFNGLDELETERENDERBUFFERSEXTPROC gl_delete_renderbuffers; ++ PFNGLBINDRENDERBUFFEREXTPROC gl_bind_renderbuffer; ++ PFNGLRENDERBUFFERSTORAGEEXTPROC gl_renderbuffer_storage; ++ PFNGLFRAMEBUFFERRENDERBUFFEREXTPROC gl_framebuffer_renderbuffer; ++ PFNGLFRAMEBUFFERTEXTURE2DEXTPROC gl_framebuffer_texture_2d; ++ PFNGLCHECKFRAMEBUFFERSTATUSEXTPROC gl_check_framebuffer_status; ++}; ++ ++typedef struct VADisplayContextGLX *VADisplayContextGLXP; ++typedef struct VADriverContextGLX *VADriverContextGLXP; ++typedef struct VASurfaceGLX *VASurfaceGLXP; ++typedef struct VADriverVTableGLX *VADriverVTableGLXP; ++ ++typedef void (*vaDestroyFunc)(VADisplayContextP); ++ ++struct VADisplayContextGLX { ++ vaDestroyFunc vaDestroy; ++}; ++ ++#define VA_DRIVER_CONTEXT_GLX(ctx) ((VADriverContextGLXP)((ctx)->glx)) ++ ++struct VADriverContextGLX { ++ struct VADriverVTableGLX vtable; ++ struct VAOpenGLVTable gl_vtable; ++ unsigned int is_initialized : 1; ++}; ++ ++#endif /* VA_GLX_PRIVATE_H */ +diff --git a/va/va_backend.h b/va/va_backend.h +index ff86744..06fef7f 100644 +diff --git a/va/x11/va_x11.c b/va/x11/va_x11.c +index 71cc36f..6826b31 100644 diff --git a/packages/multimedia/libva/patches/390_compat.base.diff b/packages/multimedia/libva/patches/390_compat.base.diff new file mode 100644 index 0000000000..0a854a89f6 --- /dev/null +++ b/packages/multimedia/libva/patches/390_compat.base.diff @@ -0,0 +1,143 @@ +commit 94db34ae392a7787afac9087799bb0421c844b83 +Author: Gwenole Beauchesne +Date: Wed Jun 24 11:40:56 2009 +0000 + + Add compatibility layer with original VA-API 0.29 to 0.31. + +diff --git a/va/Makefile.am b/va/Makefile.am +index ebff3d5..1752526 100644 +--- a/va/Makefile.am ++++ b/va/Makefile.am +@@ -57,7 +57,7 @@ SUBDIRS = $(libva_x11_backenddir) $(libva_glx_backenddir) + + DIST_SUBDIRS = x11 glx + +-libva_la_SOURCES = va.c va_crystalhd.c ++libva_la_SOURCES = va.c va_crystalhd.c va_compat.c + + libvaincludedir = ${includedir}/va + libvainclude_HEADERS = va.h va_x11.h va_backend.h va_version.h +@@ -67,4 +67,8 @@ DISTCLEANFILES = \ + + EXTRA_DIST = \ + va_version.h.in \ +- va_crystalhd.h ++ va_crystalhd.h \ ++ va_compat.h \ ++ va_compat_template.h ++ ++va_compat.c: va_compat_template.h +diff --git a/va/va.c b/va/va.c +index 0d208d8..ad201fa 100644 +--- a/va/va.c ++++ b/va/va.c +@@ -28,6 +28,7 @@ + #include "va.h" + #include "va_backend.h" + #include "va_crystalhd.h" ++#include "va_compat.h" + + #include + #include +@@ -39,6 +40,8 @@ + + + #define DRIVER_INIT_FUNC "__vaDriverInit_0_31" ++#define DRIVER_INIT_FUNC_0_29 "__vaDriverInit_0_29" ++#define DRIVER_INIT_FUNC_0_30 "__vaDriverInit_0_30" + + #define DRIVER_EXTENSION "_drv_video.so" + +@@ -163,13 +166,24 @@ static VAStatus va_openDriver(VADisplay dpy, char *driver_name) + { + VADriverInit init_func; + char driver_init_func_sds[32]; ++ int compat_version = 0; + /* First, try SDS extensions (VDPAU and XvBA backends) */ + sprintf(driver_init_func_sds, "%s_%d_sds%d", + DRIVER_INIT_FUNC, VA_MICRO_VERSION, VA_SDS_VERSION); + init_func = (VADriverInit) dlsym(handle, driver_init_func_sds); + if (!init_func) + { ++ /* Otherwise, we need the compatibility layer for some buffers */ + init_func = (VADriverInit) dlsym(handle, DRIVER_INIT_FUNC); ++ compat_version = VA_MINOR_VERSION; ++ if (!init_func) { ++ init_func = (VADriverInit) dlsym(handle, DRIVER_INIT_FUNC_0_29); ++ compat_version = 29; ++ } ++ if (!init_func) { ++ init_func = (VADriverInit) dlsym(handle, DRIVER_INIT_FUNC_0_30); ++ compat_version = 30; ++ } + } + if (!init_func) + { +@@ -178,7 +192,36 @@ static VAStatus va_openDriver(VADisplay dpy, char *driver_name) + } + else + { +- vaStatus = (*init_func)(ctx); ++ struct VADriverContext_0_29 ctx_0_29; ++ struct VADriverContext_0_30 ctx_0_30; ++ void *compat_ctx = NULL; ++ ++ switch (compat_version) { ++ case 29: ++ compat_ctx = &ctx_0_29; ++ ctx_0_29.pDriverData = NULL; ++ ctx_0_29.x11_dpy = ctx->x11_dpy; ++ ctx_0_29.x11_screen = ctx->x11_screen; ++ break; ++ case 30: ++ compat_ctx = &ctx_0_30; ++ ctx_0_30.pDriverData = NULL; ++ ctx_0_30.x11_dpy = ctx->x11_dpy; ++ ctx_0_30.x11_screen = ctx->x11_screen; ++ break; ++ case VA_MINOR_VERSION: ++ compat_ctx = ctx; ++ break; ++ default: ++ ASSERT(compat_version == 0); ++ vaStatus = VA_STATUS_ERROR_UNKNOWN; ++ break; ++ } ++ ++ vaStatus = (*init_func)(compat_ctx ? compat_ctx : ctx); ++ ++ if (VA_STATUS_SUCCESS == vaStatus) ++ vaStatus = va_compat_init(dpy, compat_version, compat_ctx); + + if (VA_STATUS_SUCCESS == vaStatus) + { +@@ -399,6 +442,8 @@ VAStatus vaTerminate ( + old_ctx->handle = NULL; + } + ++ va_compat_fini(dpy); ++ + if (VA_STATUS_SUCCESS == vaStatus) + pDisplayContext->vaDestroy(pDisplayContext); + return vaStatus; +diff --git a/va/va_backend.h b/va/va_backend.h +index 06fef7f..9cf8911 100644 +--- a/va/va_backend.h ++++ b/va/va_backend.h +@@ -391,6 +391,7 @@ struct VADriverContext + + void *dri_state; + void *glx; /* opaque for GLX code */ ++ void *compat; /* opaque for compat code */ + }; + + #define VA_DISPLAY_MAGIC 0x56414430 /* VAD0 */ +diff --git a/va/va_compat.c b/va/va_compat.c +new file mode 100644 +index 0000000..af43188 +diff --git a/va/va_compat.h b/va/va_compat.h +new file mode 100644 +index 0000000..2c9d801 +diff --git a/va/va_compat_template.h b/va/va_compat_template.h +new file mode 100644 +index 0000000..18349de diff --git a/packages/multimedia/libva/patches/391_compat.diff b/packages/multimedia/libva/patches/391_compat.diff new file mode 100644 index 0000000000..28b47e0b90 --- /dev/null +++ b/packages/multimedia/libva/patches/391_compat.diff @@ -0,0 +1,3214 @@ +commit 94db34ae392a7787afac9087799bb0421c844b83 +Author: Gwenole Beauchesne +Date: Wed Jun 24 11:40:56 2009 +0000 + + Add compatibility layer with original VA-API 0.29 to 0.31. + +diff --git a/va/Makefile.am b/va/Makefile.am +index ebff3d5..1752526 100644 +diff --git a/va/va.c b/va/va.c +index 0d208d8..ad201fa 100644 +diff --git a/va/va_backend.h b/va/va_backend.h +index 06fef7f..9cf8911 100644 +diff --git a/va/va_compat.c b/va/va_compat.c +new file mode 100644 +index 0000000..af43188 +--- /dev/null ++++ b/va/va_compat.c +@@ -0,0 +1,1178 @@ ++/* ++ * Copyright (C) 2009 Splitted-Desktop Systems. All Rights Reserved. ++ * ++ * 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, sub license, 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 PRECISION INSIGHT AND/OR ITS 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. ++ */ ++ ++#include "config.h" ++#include "va.h" ++#include "va_compat.h" ++#include "va_backend.h" ++#include ++#include ++#include ++#include ++ ++#define CTX(dpy) (((VADisplayContextP)dpy)->pDriverContext) ++#define COMPAT_CTX(ctx) ((VACompatContextP)(ctx)->compat) ++#define ASSERT assert ++ ++/* Invoke the normal VA API entry-point. This one can be replaced with ++ one of the va_compat_*() functions */ ++#define VA_INVOKE(FUNC, CTX, ...) \ ++ (CTX)->vtable.FUNC(CTX, __VA_ARGS__) ++ ++/* Invoke the real VA API entry-point. That is, the driver's function */ ++#define VA_INVOKE_COMPAT_ARGS(CTX, ...) \ ++ (COMPAT_CTX(CTX)->compat_ctx, __VA_ARGS__) ++#define VA_INVOKE_COMPAT(FUNC, CTX, ...) \ ++ COMPAT_CTX(CTX)->vtable.FUNC VA_INVOKE_COMPAT_ARGS(CTX, __VA_ARGS__) ++ ++typedef struct VACompatContext *VACompatContextP; ++ ++typedef VAStatus (*VABufferTranslateFunc)(VACompatContextP ctx, void *dest, const void *src); ++ ++typedef enum { ++ VA_DRIVER_ID_UNKNOWN, ++ VA_DRIVER_ID_POULSBO, ++ VA_DRIVER_ID_IEGD ++} VADriverID; ++ ++typedef struct { ++ VABufferID id; ++ VABufferType type; ++ unsigned int size; ++ unsigned int num_elements; ++ unsigned char *data; ++ VABufferTranslateFunc translate; ++ VABufferID compat_id; ++ unsigned int compat_size; ++ unsigned char *compat_data; ++ unsigned int map_count; ++} VABufferCompat; ++ ++typedef struct VAContextMap *VAContextMapP; ++typedef struct VAContextMap { ++ VASurfaceID surface; ++ VAContextID context; ++ VAContextMapP next; ++} VAContextMap; ++ ++typedef struct { ++ VAStatus (*vaTerminate)(void *); ++ VAStatus (*vaQueryConfigProfiles)(void *, VAProfile *, int *); ++ VAStatus (*vaQueryConfigEntrypoints)(void *, VAProfile, VAEntrypoint *, int *); ++ VAStatus (*vaGetConfigAttributes)(void *, VAProfile, VAEntrypoint, VAConfigAttrib *, int); ++ VAStatus (*vaCreateConfig)(void *, VAProfile, VAEntrypoint, VAConfigAttrib *, int, VAConfigID *); ++ VAStatus (*vaDestroyConfig)(void *, VAConfigID); ++ VAStatus (*vaQueryConfigAttributes)(void *, VAConfigID, VAProfile *, VAEntrypoint *, VAConfigAttrib *, int *); ++ VAStatus (*vaCreateSurfaces)(void *, int, int, int, int, VASurfaceID *); ++ VAStatus (*vaDestroySurfaces)(void *, VASurfaceID *, int); ++ VAStatus (*vaCreateContext)(void *, VAConfigID, int, int, int, VASurfaceID *, int, VAContextID *); ++ VAStatus (*vaDestroyContext)(void *, VAContextID); ++ VAStatus (*vaCreateBuffer)(void *, VAContextID, VABufferType, unsigned int, unsigned int, void *, VABufferID *); ++ VAStatus (*vaBufferSetNumElements)(void *, VABufferID, unsigned int); ++ VAStatus (*vaMapBuffer)(void *, VABufferID, void **); ++ VAStatus (*vaUnmapBuffer)(void *, VABufferID); ++ VAStatus (*vaDestroyBuffer)(void *, VABufferID); ++ VAStatus (*vaBeginPicture)(void *, VAContextID, VASurfaceID); ++ VAStatus (*vaRenderPicture)(void *, VAContextID, VABufferID *, int); ++ VAStatus (*vaEndPicture)(void *, VAContextID); ++ VAStatus (*vaSyncSurface_pre31)(void *, VAContextID, VASurfaceID); ++ VAStatus (*vaQuerySurfaceStatus)(void *, VASurfaceID, VASurfaceStatus *); ++ VAStatus (*vaPutSurface)(void *, VASurfaceID, unsigned long, short, short, unsigned short, unsigned short, short, short, unsigned short, unsigned short, VARectangle *, unsigned int, unsigned int); ++ VAStatus (*vaQueryImageFormats)(void *, VAImageFormat *, int *); ++ VAStatus (*vaCreateImage)(void *, VAImageFormat *, int, int, VAImage *); ++ VAStatus (*vaDeriveImage)(void *, VASurfaceID, VAImage *); ++ VAStatus (*vaDestroyImage)(void *, VAImageID); ++ VAStatus (*vaSetImagePalette)(void *, VAImageID, unsigned char *); ++ VAStatus (*vaGetImage)(void *, VASurfaceID, int, int, unsigned int, unsigned int, VAImageID); ++ VAStatus (*vaPutImage_pre31)(void *, VASurfaceID, VAImageID, int, int, unsigned int, unsigned int, int, int); ++ VAStatus (*vaPutImage2_pre31)(void *, VASurfaceID, VAImageID, int, int, unsigned int, unsigned int, int, int, unsigned int, unsigned int); ++ VAStatus (*vaQuerySubpictureFormats)(void *, VAImageFormat *, unsigned int *, unsigned int *); ++ VAStatus (*vaCreateSubpicture)(void *, VAImageID, VASubpictureID *); ++ VAStatus (*vaDestroySubpicture)(void *, VASubpictureID); ++ VAStatus (*vaSetSubpictureImage)(void *, VASubpictureID, VAImageID); ++ VAStatus (*vaSetSubpictureChromakey)(void *, VASubpictureID, unsigned int, unsigned int, unsigned int); ++ VAStatus (*vaSetSubpictureGlobalAlpha)(void *, VASubpictureID, float); ++ VAStatus (*vaAssociateSubpicture_pre31)(void *, VASubpictureID, VASurfaceID *, int, short, short, short, short, unsigned short, unsigned short, unsigned int); ++ VAStatus (*vaAssociateSubpicture2_pre31)(void *, VASubpictureID, VASurfaceID *, int, short, short, unsigned short, unsigned short, short, short, unsigned short, unsigned short, unsigned int); ++ VAStatus (*vaDeassociateSubpicture)(void *, VASubpictureID, VASurfaceID *, int); ++ VAStatus (*vaQueryDisplayAttributes)(void *, VADisplayAttribute *, int *); ++ VAStatus (*vaGetDisplayAttributes)(void *, VADisplayAttribute *, int); ++ VAStatus (*vaSetDisplayAttributes)(void *, VADisplayAttribute *, int); ++ ++ /* 0.29 hooks */ ++ VAStatus (*vaSetSubpicturePalette)(void *, VASubpictureID, unsigned char *); ++ VAStatus (*vaDbgCopySurfaceToBuffer)(void *, VASurfaceID, void **, unsigned int *); ++ ++ /* 0.30 hooks */ ++ VAStatus (*vaCreateSurfaceFromCIFrame)(void *, unsigned long, VASurfaceID *); ++ VAStatus (*vaCreateSurfaceFromV4L2Buf)(void *, int, struct v4l2_format *, struct v4l2_buffer *, VASurfaceID *); ++ VAStatus (*vaCopySurfaceToBuffer)(void *, VASurfaceID, unsigned int *, unsigned int *, unsigned int *, unsigned int *, unsigned int *, unsigned int *, unsigned int *, void **); ++ ++ /* 0.31 hooks */ ++ VAStatus (*vaPutImage)(void *, VASurfaceID, VAImageID, int, int, unsigned int, unsigned int, int, int, unsigned int, unsigned int); ++ VAStatus (*vaAssociateSubpicture)(void *, VASubpictureID, VASurfaceID *, int, short, short, unsigned short, unsigned short, short, short, unsigned short, unsigned short, unsigned int); ++ VAStatus (*vaSyncSurface)(void *, VASurfaceID); ++} VACompatDriverVTable; ++ ++typedef struct VACompatContext { ++ VABufferCompat *buffers; ++ unsigned int buffers_count_max; ++ unsigned int compat_version; ++ void *compat_ctx; ++ VACompatDriverVTable vtable; /* original vtable */ ++ VADriverID driver_id; ++ char *driver_name; ++ VAContextMapP context_map; ++ VAContextMapP last_context_map_match; ++ unsigned int skip_frame : 1; ++} VACompatContext; ++ ++#define COMPAT_MAJOR 0 ++#define COMPAT_MINOR 29 ++#include "va_compat_template.h" ++ ++#define COMPAT_MAJOR 0 ++#define COMPAT_MINOR 30 ++#include "va_compat_template.h" ++ ++#define COMPAT_MAJOR 0 ++#define COMPAT_MINOR 31 ++#include "va_compat_template.h" ++ ++static inline int va_IsIntelBuffer(VADriverContextP ctx, VABufferID id) ++{ ++ VACompatContextP compat = ctx->compat; ++ ++ if (compat->driver_id == VA_DRIVER_ID_POULSBO) { ++ /* There were only Intel implementations for VA API. Besides, the ++ returned buffer IDs had the following format [ 0 BASE ID ] where ++ BASE is the 7-bit value 0x04 and ID an index into the heap of ++ objects */ ++ return (id & 0x7f000000) == 0x04000000; ++ } ++ ++ if (compat->driver_id == VA_DRIVER_ID_IEGD) { ++ /* XXX: there is no means to differentiate the buffers, they ++ are linearly generated (IEGD 10.0 build 1335) */ ++ return 1; ++ } ++ ++ return 0; ++} ++ ++static VAContextMapP va_context_map_lookup_p( ++ VACompatContextP ctx, ++ VASurfaceID surface ++) ++{ ++ VAContextMapP m = ctx->context_map; ++ ++ while (m) { ++ if (m->surface == surface) ++ return m; ++ m = m->next; ++ } ++ return NULL; ++} ++ ++static VAContextID va_context_map_lookup( ++ VACompatContextP ctx, ++ VASurfaceID surface ++) ++{ ++ VAContextMapP m; ++ ++ /* Lookup in cached */ ++ m = ctx->last_context_map_match; ++ if (m && m->surface == surface) ++ return m->context; ++ ++ /* Full (slow) lookup */ ++ m = va_context_map_lookup_p(ctx, surface); ++ if (m) { ++ ctx->last_context_map_match = m; ++ return m->context; ++ } ++ return VA_INVALID_ID; ++} ++ ++static void va_context_map_add( ++ VACompatContextP ctx, ++ VAContextID context, ++ VASurfaceID surface ++) ++{ ++ VAContextMapP m; ++ ++ /* Update existing entry */ ++ m = va_context_map_lookup_p(ctx, surface); ++ if (m) { ++ m->context = context; ++ return; ++ } ++ ++ /* Create new mapping */ ++ m = malloc(sizeof(*m)); ++ ASSERT(m); ++ if (m) { ++ m->surface = surface; ++ m->context = context; ++ m->next = ctx->context_map; ++ ctx->context_map = m; ++ } ++} ++ ++static void va_context_map_remove( ++ VACompatContextP ctx, ++ VAContextID context ++) ++{ ++ VAContextMapP p = NULL; ++ VAContextMapP m = ctx->context_map; ++ VAContextMapP d; ++ ++ while (m) { ++ if (m->context == context) { ++ d = m; ++ ++ /* Unlink current node */ ++ if (p) ++ p->next = m->next; ++ else ++ ctx->context_map = m->next; ++ m = m->next; ++ ++ /* Reset cache */ ++ if (ctx->last_context_map_match == d) ++ ctx->last_context_map_match = NULL; ++ ++ free(d); ++ } ++ else { ++ p = m; ++ m = m->next; ++ } ++ } ++} ++ ++static VABufferCompat *va_GetBufferCompat ( ++ VADriverContextP ctx, ++ VABufferID id ++) ++{ ++ VACompatContextP compat = ctx->compat; ++ int index; ++ ++ if (!va_IsIntelBuffer(ctx, id)) ++ return NULL; ++ ++ index = id & 0x00ffffff; ++ if (index >= compat->buffers_count_max) ++ return NULL; ++ ++ if (compat->buffers[index].id != id) ++ return NULL; ++ ++ return &compat->buffers[index]; ++} ++ ++static VAStatus va_TranslateBufferCompat ( ++ VADriverContextP ctx, ++ VABufferCompat *compat_buffer ++) ++{ ++ VAStatus status; ++ unsigned char *src, *dest; ++ int i; ++ ++ status = VA_INVOKE(vaMapBuffer, ctx, compat_buffer->id, (void **)&src); ++ if (status != VA_STATUS_SUCCESS) ++ return status; ++ ++ ASSERT(compat_buffer->data); ++ ASSERT(src == compat_buffer->data); ++ ASSERT(compat_buffer->compat_data); ++ dest = compat_buffer->compat_data; ++ for (i = 0; i < compat_buffer->num_elements; i++) ++ { ++ /* XXX: check errors */ ++ status = compat_buffer->translate(ctx->compat, dest, src); ++ ++ src += compat_buffer->size; ++ dest += compat_buffer->compat_size; ++ } ++ ++ return VA_INVOKE(vaUnmapBuffer, ctx, compat_buffer->id); ++} ++ ++static VAStatus va_CreateBufferCompat ( ++ VADriverContextP ctx, ++ VAContextID context, ++ VABufferID id, ++ VABufferType type, ++ unsigned int size, ++ unsigned int num_elements, ++ unsigned int compat_size, ++ VABufferTranslateFunc translate_func ++) ++{ ++ VACompatContextP compat = ctx->compat; ++ VABufferCompat *compat_buffer; ++ int index; ++ ++ if (!va_IsIntelBuffer(ctx, id)) ++ return VA_STATUS_ERROR_INVALID_BUFFER; ++ index = id & 0x00ffffff; ++ ++ /* XXX: this allocation strategy is not really space efficient... */ ++ if (index >= compat->buffers_count_max) ++ { ++ compat->buffers_count_max = index + 1; ++ compat->buffers = realloc(compat->buffers, ++ (compat->buffers_count_max * ++ sizeof(VABufferCompat))); ++ if (compat->buffers == NULL) ++ return VA_STATUS_ERROR_ALLOCATION_FAILED; ++ } ++ ++ compat_buffer = &compat->buffers[index]; ++ compat_buffer->id = id; ++ compat_buffer->type = type; ++ compat_buffer->size = size; ++ compat_buffer->num_elements = num_elements; ++ compat_buffer->data = NULL; ++ compat_buffer->translate = translate_func; ++ compat_buffer->compat_size = compat_size; ++ compat_buffer->compat_data = NULL; ++ compat_buffer->map_count = 0; ++ ++ return VA_INVOKE_COMPAT(vaCreateBuffer, ++ ctx, ++ context, ++ type, ++ compat_size, ++ num_elements, ++ NULL, ++ &compat_buffer->compat_id); ++} ++ ++static VAStatus va_DestroyBufferCompat ( ++ VADriverContextP ctx, ++ VABufferID id ++) ++{ ++ VABufferCompat *compat_buffer; ++ VAStatus status; ++ ++ if ((compat_buffer = va_GetBufferCompat(ctx, id)) == NULL) ++ return VA_STATUS_SUCCESS; ++ ++ /* Force unmap if there were more maps than unmaps */ ++ if (compat_buffer->map_count > 1) ++ compat_buffer->map_count = 1; ++ if (compat_buffer->map_count > 1) ++ { ++ if ((status = VA_INVOKE(vaUnmapBuffer, ctx, id)) != VA_STATUS_SUCCESS) ++ return status; ++ } ++ ++ compat_buffer->id = 0; ++ return VA_INVOKE_COMPAT(vaDestroyBuffer, ctx, compat_buffer->compat_id); ++} ++ ++static VAStatus va_compat_CreateBuffer ( ++ VADriverContextP ctx, ++ VAContextID context, /* in */ ++ VABufferType type, /* in */ ++ unsigned int size, /* in */ ++ unsigned int num_elements, /* in */ ++ void *data, /* in */ ++ VABufferID *buf_id /* out */ ++) ++{ ++ VABufferTranslateFunc translate_func = NULL; ++ unsigned int compat_size = 0; ++ VAStatus status; ++ ++ status = VA_INVOKE_COMPAT(vaCreateBuffer, ++ ctx, ++ context, ++ type, ++ size, ++ num_elements, ++ data, ++ buf_id); ++ ++ if (status != VA_STATUS_SUCCESS) ++ return status; ++ ++#define INIT_TRANSLATE_FUNC_(STRUCT, MAJOR, MINOR) do { \ ++ translate_func = va_compat_translate_VA##STRUCT##_##MAJOR##_##MINOR; \ ++ compat_size = sizeof(VA##STRUCT##_##MAJOR##_##MINOR); \ ++} while (0) ++#define INIT_TRANSLATE_FUNC(BUFFER, CODEC, MAJOR, MINOR) \ ++ INIT_TRANSLATE_FUNC_(BUFFER##Buffer##CODEC, MAJOR, MINOR) ++ ++ /* XXX: this assumes all structures have different sizes from each other */ ++ switch (size) { ++ case sizeof(VAPictureParameterBufferH264): ++ if (type == VAPictureParameterBufferType && ctx->version_major == 0) ++ { ++ switch (ctx->version_minor) { ++ case 29: INIT_TRANSLATE_FUNC(PictureParameter,H264, 0,29); break; ++ case 30: INIT_TRANSLATE_FUNC(PictureParameter,H264, 0,30); break; ++ } ++ } ++ break; ++ case sizeof(VASliceParameterBufferH264): ++ if (type == VASliceParameterBufferType && ctx->version_major == 0) ++ { ++ switch (ctx->version_minor) { ++ case 29: INIT_TRANSLATE_FUNC(SliceParameter,H264, 0,29); break; ++ case 30: INIT_TRANSLATE_FUNC(SliceParameter,H264, 0,30); break; ++ } ++ } ++ break; ++ case sizeof(VAPictureParameterBufferVC1): ++ if (type == VAPictureParameterBufferType && ctx->version_major == 0) ++ { ++ switch (ctx->version_minor) { ++ case 29: INIT_TRANSLATE_FUNC(PictureParameter,VC1, 0,29); break; ++ case 30: INIT_TRANSLATE_FUNC(PictureParameter,VC1, 0,30); break; ++ } ++ } ++ break; ++ case sizeof(VAPictureParameterBufferMPEG2): ++ if (type == VAPictureParameterBufferType && ctx->version_major == 0) ++ { ++ switch (ctx->version_minor) { ++ case 29: INIT_TRANSLATE_FUNC(PictureParameter,MPEG2, 0,29); break; ++ case 30: INIT_TRANSLATE_FUNC(PictureParameter,MPEG2, 0,30); break; ++ } ++ } ++ break; ++ case sizeof(VASliceParameterBufferMPEG2): ++ if (type == VASliceParameterBufferType && ctx->version_major == 0) ++ { ++ switch (ctx->version_minor) { ++ case 29: INIT_TRANSLATE_FUNC(SliceParameter,MPEG2, 0,29); break; ++ case 30: INIT_TRANSLATE_FUNC(SliceParameter,MPEG2, 0,30); break; ++ } ++ } ++ break; ++ case sizeof(VAPictureParameterBufferMPEG4): ++ if (type == VAPictureParameterBufferType && ctx->version_major == 0) ++ { ++ switch (ctx->version_minor) { ++ case 29: INIT_TRANSLATE_FUNC(PictureParameter,MPEG4, 0,29); break; ++ case 30: INIT_TRANSLATE_FUNC(PictureParameter,MPEG4, 0,30); break; ++ case 31: INIT_TRANSLATE_FUNC(PictureParameter,MPEG4, 0,31); break; ++ } ++ } ++ break; ++ case sizeof(VAEncSliceParameterBuffer): ++ if (type == VAEncSliceParameterBufferType && ctx->version_major == 0) ++ { ++ switch (ctx->version_minor) { ++ case 30: INIT_TRANSLATE_FUNC_(EncSliceParameterBuffer, 0,30); break; ++ } ++ } ++ break; ++ } ++ ++#undef INIT_TRANSLATE_FUNC ++ ++ /* Create thunk */ ++ if (buf_id && translate_func) ++ { ++ ASSERT(compat_size > 0); ++ ++ status = va_CreateBufferCompat(ctx, ++ context, ++ *buf_id, ++ type, ++ size, ++ num_elements, ++ compat_size, ++ translate_func); ++ } ++ ++ return status; ++} ++ ++static VAStatus va_compat_BufferSetNumElements ( ++ VADriverContextP ctx, ++ VABufferID buf_id, /* in */ ++ unsigned int num_elements /* in */ ++) ++{ ++ VABufferCompat *compat_buffer; ++ VAStatus status; ++ ++ status = VA_INVOKE_COMPAT(vaBufferSetNumElements, ctx, buf_id, num_elements); ++ if (status != VA_STATUS_SUCCESS) ++ return status; ++ ++ if ((compat_buffer = va_GetBufferCompat(ctx, buf_id)) != NULL) ++ { ++ compat_buffer->num_elements = num_elements; ++ status = VA_INVOKE_COMPAT(vaBufferSetNumElements, ++ ctx, ++ compat_buffer->compat_id, ++ num_elements); ++ } ++ ++ return status; ++} ++ ++static VAStatus va_compat_DestroyBuffer ( ++ VADriverContextP ctx, ++ VABufferID buffer_id ++) ++{ ++ VAStatus status; ++ if ((status = va_DestroyBufferCompat(ctx, buffer_id)) != VA_STATUS_SUCCESS) ++ return status; ++ ++ return VA_INVOKE_COMPAT(vaDestroyBuffer, ctx, buffer_id); ++} ++ ++static VAStatus va_compat_MapBuffer ( ++ VADriverContextP ctx, ++ VABufferID buf_id, /* in */ ++ void **pbuf /* out */ ++) ++{ ++ VABufferCompat *compat_buffer; ++ VAStatus status; ++ ++ if ((compat_buffer = va_GetBufferCompat(ctx, buf_id)) == NULL) ++ return VA_INVOKE_COMPAT(vaMapBuffer, ctx, buf_id, pbuf); ++ ++ if (compat_buffer->map_count++ == 0) ++ { ++ status = VA_INVOKE_COMPAT(vaMapBuffer, ctx, buf_id, (void **)&compat_buffer->data); ++ if (status != VA_STATUS_SUCCESS) ++ return status; ++ ++ status = VA_INVOKE_COMPAT(vaMapBuffer, ctx, compat_buffer->compat_id, (void **)&compat_buffer->compat_data); ++ if (status != VA_STATUS_SUCCESS) ++ return status; ++ } ++ ++ if (pbuf) ++ *pbuf = compat_buffer->data; ++ ++ return VA_STATUS_SUCCESS; ++} ++ ++static VAStatus va_compat_UnmapBuffer ( ++ VADriverContextP ctx, ++ VABufferID buf_id /* in */ ++) ++{ ++ VABufferCompat *compat_buffer; ++ VAStatus status; ++ ++ if ((compat_buffer = va_GetBufferCompat(ctx, buf_id)) == NULL) ++ return VA_INVOKE_COMPAT(vaUnmapBuffer, ctx, buf_id); ++ ++ if (--compat_buffer->map_count == 0) ++ { ++ status = VA_INVOKE_COMPAT(vaUnmapBuffer, ctx, compat_buffer->compat_id); ++ if (status != VA_STATUS_SUCCESS) ++ return status; ++ compat_buffer->compat_data = NULL; ++ ++ status = VA_INVOKE_COMPAT(vaUnmapBuffer, ctx, compat_buffer->id); ++ if (status != VA_STATUS_SUCCESS) ++ return status; ++ compat_buffer->data = NULL; ++ } ++ ++ return VA_STATUS_SUCCESS; ++} ++ ++static VAStatus va_compat_BeginPicture ( ++ VADriverContextP ctx, ++ VAContextID context, ++ VASurfaceID render_target ++) ++{ ++ VACompatContextP compat = ctx->compat; ++ compat->skip_frame = 0; ++ return VA_INVOKE_COMPAT(vaBeginPicture, ctx, context, render_target); ++} ++ ++static VAStatus va_compat_EndPicture ( ++ VADriverContextP ctx, ++ VAContextID context ++) ++{ ++ VACompatContextP compat = ctx->compat; ++ VAStatus status = VA_INVOKE_COMPAT(vaEndPicture, ctx, context); ++ ++ /* Ignore errors if the HW decoder did not handle VC-1 skipped P-frames */ ++ if (compat->skip_frame && status == VA_STATUS_ERROR_UNKNOWN) ++ status = VA_STATUS_SUCCESS; ++ ++ return status; ++} ++ ++static VAStatus va_compat_RenderPicture ( ++ VADriverContextP ctx, ++ VAContextID context, ++ VABufferID *buffers, ++ int num_buffers ++) ++{ ++ VACompatContextP compat = ctx->compat; ++ VABufferCompat *compat_buffer; ++ VABufferID *compat_buffer_ids; ++ VAStatus status; ++ int i, n; ++ ++ if ((n = num_buffers) < 1) ++ n = 1; ++ compat_buffer_ids = alloca(n * sizeof(compat_buffer_ids[0])); ++ ++ for (i = 0; i < num_buffers; i++) ++ { ++ if ((compat_buffer = va_GetBufferCompat(ctx, buffers[i])) == NULL) ++ compat_buffer_ids[i] = buffers[i]; ++ else ++ { ++ status = va_TranslateBufferCompat(ctx, compat_buffer); ++ if (status != VA_STATUS_SUCCESS) ++ return status; ++ compat_buffer_ids[i] = compat_buffer->compat_id; ++ } ++ } ++ ++ if (!compat->skip_frame) ++ { ++ status = VA_INVOKE_COMPAT(vaRenderPicture, ctx, context, compat_buffer_ids, num_buffers); ++ if (status != VA_STATUS_SUCCESS) ++ return status; ++ } ++ ++ /* Buffers are automatically destroyed afterwards */ ++ for (i = 0; i < num_buffers; i++) ++ { ++ if ((compat_buffer = va_GetBufferCompat(ctx, buffers[i])) != NULL) ++ { ++ status = VA_INVOKE_COMPAT(vaDestroyBuffer, ctx, compat_buffer->id); ++ if (status != VA_STATUS_SUCCESS) ++ return status; ++ } ++ } ++ ++ return VA_STATUS_SUCCESS; ++} ++ ++#define DEFINE_VTABLE_ENTRY_(RETVAL, PROC, ARGS, COMPAT_PROC, COMPAT_ARGS, COMPAT_PRE, COMPAT_POST) \ ++static RETVAL va_compat_##PROC ARGS \ ++{ \ ++ if (COMPAT_CTX(ctx)->vtable.va##COMPAT_PROC == NULL) \ ++ return VA_STATUS_ERROR_OPERATION_FAILED; \ ++ COMPAT_PRE; \ ++ RETVAL ret = COMPAT_CTX(ctx)->vtable.va##COMPAT_PROC VA_INVOKE_COMPAT_ARGS COMPAT_ARGS; \ ++ COMPAT_POST; \ ++ return ret; \ ++} ++ ++#define DEFINE_VTABLE_ENTRY(RETVAL, PROC, DECL_ARGS, CALL_ARGS) \ ++DEFINE_VTABLE_ENTRY_(RETVAL, PROC, DECL_ARGS, PROC, CALL_ARGS, {}, {}) ++ ++static VAStatus va_compat_Terminate(VADriverContextP ctx) ++{ ++ if (COMPAT_CTX(ctx)->vtable.vaTerminate == NULL) ++ return VA_STATUS_ERROR_OPERATION_FAILED; ++ return COMPAT_CTX(ctx)->vtable.vaTerminate(COMPAT_CTX(ctx)->compat_ctx); ++} ++ ++DEFINE_VTABLE_ENTRY( ++ VAStatus, QueryConfigProfiles, ++ (VADriverContextP ctx, VAProfile *profile_list, int *num_profiles), ++ (ctx, profile_list, num_profiles)) ++ ++DEFINE_VTABLE_ENTRY( ++ VAStatus, QueryConfigEntrypoints, ++ (VADriverContextP ctx, VAProfile profile, ++ VAEntrypoint *entrypoint_list, int *num_entrypoints), ++ (ctx, profile, entrypoint_list, num_entrypoints)) ++ ++DEFINE_VTABLE_ENTRY( ++ VAStatus, GetConfigAttributes, ++ (VADriverContextP ctx, VAProfile profile, VAEntrypoint entrypoint, ++ VAConfigAttrib *attrib_list, int num_attribs), ++ (ctx, profile, entrypoint, attrib_list, num_attribs)) ++ ++DEFINE_VTABLE_ENTRY( ++ VAStatus, CreateConfig, ++ (VADriverContextP ctx, VAProfile profile, VAEntrypoint entrypoint, ++ VAConfigAttrib *attrib_list, int num_attribs, VAConfigID *config_id), ++ (ctx, profile, entrypoint, attrib_list, num_attribs, config_id)) ++ ++DEFINE_VTABLE_ENTRY( ++ VAStatus, DestroyConfig, ++ (VADriverContextP ctx, VAConfigID config_id), ++ (ctx, config_id)) ++ ++DEFINE_VTABLE_ENTRY( ++ VAStatus, QueryConfigAttributes, ++ (VADriverContextP ctx, VAConfigID config_id, VAProfile *profile, ++ VAEntrypoint *entrypoint, VAConfigAttrib *attrib_list, int *num_attribs), ++ (ctx, config_id, profile, entrypoint, attrib_list, num_attribs)) ++ ++DEFINE_VTABLE_ENTRY( ++ VAStatus, CreateSurfaces, ++ (VADriverContextP ctx, int width, int height, int format, ++ int num_surfaces, VASurfaceID *surfaces), ++ (ctx, width, height, format, num_surfaces, surfaces)) ++ ++DEFINE_VTABLE_ENTRY( ++ VAStatus, DestroySurfaces, ++ (VADriverContextP ctx, VASurfaceID *surface_list, int num_surfaces), ++ (ctx, surface_list, num_surfaces)) ++ ++DEFINE_VTABLE_ENTRY( ++ VAStatus, CreateContext, ++ (VADriverContextP ctx, VAConfigID config_id, ++ int picture_width, int picture_height, int flag, ++ VASurfaceID *render_targets, int num_render_targets, VAContextID *context), ++ (ctx, config_id, picture_width, picture_height, flag, ++ render_targets, num_render_targets, context)) ++ ++DEFINE_VTABLE_ENTRY( ++ VAStatus, DestroyContext, ++ (VADriverContextP ctx, VAContextID context), ++ (ctx, context)) ++ ++DEFINE_VTABLE_ENTRY( ++ VAStatus, SyncSurface, ++ (VADriverContextP ctx, VASurfaceID render_target), ++ (ctx, render_target)) ++ ++DEFINE_VTABLE_ENTRY( ++ VAStatus, QuerySurfaceStatus, ++ (VADriverContextP ctx, VASurfaceID render_target, VASurfaceStatus *status), ++ (ctx, render_target, status)) ++ ++DEFINE_VTABLE_ENTRY_( ++ VAStatus, PutSurface, ++ (VADriverContextP ctx, VASurfaceID surface, Drawable draw, ++ short srcx, short srcy, unsigned short srcw, unsigned short srch, ++ short destx, short desty, unsigned short destw, unsigned short desth, ++ VARectangle *cliprects, unsigned int number_cliprects, unsigned int flags), ++ PutSurface, ++ (ctx, surface, draw, srcx, srcy, srcw, srch, destx, desty, destw, desth, ++ cliprects, number_cliprects, flags), ++ { ++ if (COMPAT_CTX(ctx)->compat_version < 30) /* 0.30 */ ++ flags &= (VA_TOP_FIELD|VA_BOTTOM_FIELD|VA_CLEAR_DRAWABLE); ++ }, ++ {}) ++ ++DEFINE_VTABLE_ENTRY( ++ VAStatus, QueryImageFormats, ++ (VADriverContextP ctx, VAImageFormat *format_list, int *num_formats), ++ (ctx, format_list, num_formats)) ++ ++DEFINE_VTABLE_ENTRY( ++ VAStatus, CreateImage, ++ (VADriverContextP ctx, VAImageFormat *format, ++ int width, int height, VAImage *image), ++ (ctx, format, width, height, image)) ++ ++DEFINE_VTABLE_ENTRY( ++ VAStatus, DeriveImage, ++ (VADriverContextP ctx, VASurfaceID surface, VAImage *image), ++ (ctx, surface, image)) ++ ++DEFINE_VTABLE_ENTRY( ++ VAStatus, DestroyImage, ++ (VADriverContextP ctx, VAImageID image), ++ (ctx, image)) ++ ++DEFINE_VTABLE_ENTRY( ++ VAStatus, SetImagePalette, ++ (VADriverContextP ctx, VAImageID image, unsigned char *palette), ++ (ctx, image, palette)) ++ ++DEFINE_VTABLE_ENTRY( ++ VAStatus, GetImage, ++ (VADriverContextP ctx, VASurfaceID surface, ++ int x, int y, unsigned int width, unsigned int height, VAImageID image), ++ (ctx, surface, x, y, width, height, image)) ++ ++DEFINE_VTABLE_ENTRY( ++ VAStatus, PutImage, ++ (VADriverContextP ctx, VASurfaceID surface, VAImageID image, ++ int srcx, int srcy, unsigned int srcw, unsigned int srch, ++ int destx, int desty, unsigned int destw, unsigned int desth), ++ (ctx, surface, image, srcx, srcy, srcw, srch, destx, desty, destw, desth)) ++ ++DEFINE_VTABLE_ENTRY( ++ VAStatus, QuerySubpictureFormats, ++ (VADriverContextP ctx, VAImageFormat *format_list, ++ unsigned int *flags, unsigned int *num_formats), ++ (ctx, format_list, flags, num_formats)) ++ ++DEFINE_VTABLE_ENTRY( ++ VAStatus, CreateSubpicture, ++ (VADriverContextP ctx, VAImageID image, VASubpictureID *subpicture), ++ (ctx, image, subpicture)) ++ ++DEFINE_VTABLE_ENTRY( ++ VAStatus, DestroySubpicture, ++ (VADriverContextP ctx, VASubpictureID subpicture), ++ (ctx, subpicture)) ++ ++DEFINE_VTABLE_ENTRY( ++ VAStatus, SetSubpictureImage, ++ (VADriverContextP ctx, VASubpictureID subpicture, VAImageID image), ++ (ctx, subpicture, image)) ++ ++DEFINE_VTABLE_ENTRY( ++ VAStatus, SetSubpictureChromakey, ++ (VADriverContextP ctx, VASubpictureID subpicture, ++ unsigned int chromakey_min, ++ unsigned int chromakey_max, ++ unsigned int chromakey_mask), ++ (ctx, subpicture, chromakey_min, chromakey_max, chromakey_mask)) ++ ++DEFINE_VTABLE_ENTRY( ++ VAStatus, SetSubpictureGlobalAlpha, ++ (VADriverContextP ctx, VASubpictureID subpicture, float global_alpha), ++ (ctx, subpicture, global_alpha)) ++ ++DEFINE_VTABLE_ENTRY( ++ VAStatus, AssociateSubpicture, ++ (VADriverContextP ctx, VASubpictureID subpicture, ++ VASurfaceID *target_surfaces, int num_surfaces, ++ short srcx, short srcy, unsigned short srcw, unsigned short srch, ++ short destx, short desty, unsigned short destw, unsigned short desth, ++ unsigned int flags), ++ (ctx, subpicture, target_surfaces, num_surfaces, ++ srcx, srcy, srcw, srch, destx, desty, destw, desth, flags)) ++ ++DEFINE_VTABLE_ENTRY( ++ VAStatus, DeassociateSubpicture, ++ (VADriverContextP ctx, VASubpictureID subpicture, ++ VASurfaceID *target_surfaces, int num_surfaces), ++ (ctx, subpicture, target_surfaces, num_surfaces)) ++ ++DEFINE_VTABLE_ENTRY( ++ VAStatus, QueryDisplayAttributes, ++ (VADriverContextP ctx, VADisplayAttribute *attr_list, int *num_attributes), ++ (ctx, attr_list, num_attributes)) ++ ++DEFINE_VTABLE_ENTRY( ++ VAStatus, GetDisplayAttributes, ++ (VADriverContextP ctx, VADisplayAttribute *attr_list, int num_attributes), ++ (ctx, attr_list, num_attributes)) ++ ++DEFINE_VTABLE_ENTRY( ++ VAStatus, SetDisplayAttributes, ++ (VADriverContextP ctx, VADisplayAttribute *attr_list, int num_attributes), ++ (ctx, attr_list, num_attributes)) ++ ++DEFINE_VTABLE_ENTRY( ++ VAStatus, CreateSurfaceFromCIFrame, ++ (VADriverContextP ctx, unsigned long frame_id, VASurfaceID *surface), ++ (ctx, frame_id, surface)) ++ ++DEFINE_VTABLE_ENTRY( ++ VAStatus, CreateSurfaceFromV4L2Buf, ++ (VADriverContextP ctx, int v4l2_fd, ++ struct v4l2_format *v4l2_fmt, struct v4l2_buffer *v4l2_buf, ++ VASurfaceID *surface), ++ (ctx, v4l2_fd, v4l2_fmt, v4l2_buf, surface)) ++ ++DEFINE_VTABLE_ENTRY( ++ VAStatus, CopySurfaceToBuffer, ++ (VADriverContextP ctx, VASurfaceID surface, unsigned int *fourcc, ++ unsigned int *luma_stride, ++ unsigned int *chroma_u_stride, unsigned int *chroma_v_stride, ++ unsigned int *luma_offset, ++ unsigned int *chroma_u_offset, unsigned int *chroma_v_offset, ++ void **buffer), ++ (ctx, surface, fourcc, ++ luma_stride, chroma_u_stride, chroma_v_stride, ++ luma_offset, chroma_u_offset, chroma_v_offset, ++ buffer)) ++ ++DEFINE_VTABLE_ENTRY_( ++ VAStatus, SyncSurface_pre31, ++ (VADriverContextP ctx, VASurfaceID render_target), ++ SyncSurface_pre31, ++ (ctx, va_context_map_lookup(COMPAT_CTX(ctx), render_target), render_target), ++ {}, {}) ++ ++DEFINE_VTABLE_ENTRY_( ++ VAStatus, PutImage_pre31, ++ (VADriverContextP ctx, VASurfaceID surface, VAImageID image, ++ int srcx, int srcy, unsigned int srcw, unsigned int srch, ++ int destx, int desty, unsigned int destw, unsigned int desth), ++ PutImage2_pre31, ++ (ctx, surface, image, srcx, srcy, srcw, srch, destx, desty, destw, desth), ++ {}, {}) ++ ++DEFINE_VTABLE_ENTRY_( ++ VAStatus, AssociateSubpicture_pre31, ++ (VADriverContextP ctx, VASubpictureID subpicture, ++ VASurfaceID *target_surfaces, int num_surfaces, ++ short srcx, short srcy, unsigned short srcw, unsigned short srch, ++ short destx, short desty, unsigned short destw, unsigned short desth, ++ unsigned int flags), ++ AssociateSubpicture2_pre31, ++ (ctx, subpicture, target_surfaces, num_surfaces, ++ srcx, srcy, srcw, srch, destx, desty, destw, desth, flags), ++ {}, {}) ++ ++DEFINE_VTABLE_ENTRY_( ++ VAStatus, CreateContext_pre31, ++ (VADriverContextP ctx, VAConfigID config_id, ++ int picture_width, int picture_height, int flag, ++ VASurfaceID *render_targets, int num_render_targets, VAContextID *context), ++ CreateContext, ++ (ctx, config_id, picture_width, picture_height, flag, ++ render_targets, num_render_targets, context), ++ {}, { ++ VACompatContextP const compat_ctx = COMPAT_CTX(ctx); ++ int i; ++ for (i = 0; i < num_render_targets; i++) ++ va_context_map_add(compat_ctx, *context, render_targets[i]); ++ }) ++ ++DEFINE_VTABLE_ENTRY_( ++ VAStatus, DestroyContext_pre31, ++ (VADriverContextP ctx, VAContextID context), ++ DestroyContext, ++ (ctx, context), ++ {}, { va_context_map_remove(COMPAT_CTX(ctx), context); }) ++ ++#undef DEFINE_VTABLE_ENTRY ++#undef DEFINE_VTABLE_ENTRY_ ++ ++static void va_compat_init_VADriverVTable(VADriverContextP ctx, int compat_version) ++{ ++#define INIT_VTABLE_(CTX, DST_PROC, SRC_PROC) \ ++ (CTX)->vtable.va##DST_PROC = va_compat_##SRC_PROC ++#define INIT_VTABLE(CTX, PROC) \ ++ INIT_VTABLE_(CTX, PROC, PROC) ++ ++ INIT_VTABLE(ctx, Terminate); ++ INIT_VTABLE(ctx, QueryConfigProfiles); ++ INIT_VTABLE(ctx, QueryConfigEntrypoints); ++ INIT_VTABLE(ctx, GetConfigAttributes); ++ INIT_VTABLE(ctx, CreateConfig); ++ INIT_VTABLE(ctx, DestroyConfig); ++ INIT_VTABLE(ctx, QueryConfigAttributes); ++ INIT_VTABLE(ctx, CreateSurfaces); ++ INIT_VTABLE(ctx, DestroySurfaces); ++ INIT_VTABLE(ctx, CreateContext); ++ INIT_VTABLE(ctx, DestroyContext); ++ INIT_VTABLE(ctx, CreateBuffer); ++ INIT_VTABLE(ctx, BufferSetNumElements); ++ INIT_VTABLE(ctx, MapBuffer); ++ INIT_VTABLE(ctx, UnmapBuffer); ++ INIT_VTABLE(ctx, DestroyBuffer); ++ INIT_VTABLE(ctx, BeginPicture); ++ INIT_VTABLE(ctx, RenderPicture); ++ INIT_VTABLE(ctx, EndPicture); ++ INIT_VTABLE(ctx, SyncSurface); ++ INIT_VTABLE(ctx, QuerySurfaceStatus); ++ INIT_VTABLE(ctx, PutSurface); ++ INIT_VTABLE(ctx, QueryImageFormats); ++ INIT_VTABLE(ctx, CreateImage); ++ INIT_VTABLE(ctx, DeriveImage); ++ INIT_VTABLE(ctx, DestroyImage); ++ INIT_VTABLE(ctx, SetImagePalette); ++ INIT_VTABLE(ctx, GetImage); ++ INIT_VTABLE(ctx, PutImage); ++ INIT_VTABLE(ctx, QuerySubpictureFormats); ++ INIT_VTABLE(ctx, CreateSubpicture); ++ INIT_VTABLE(ctx, DestroySubpicture); ++ INIT_VTABLE(ctx, SetSubpictureImage); ++ INIT_VTABLE(ctx, SetSubpictureChromakey); ++ INIT_VTABLE(ctx, SetSubpictureGlobalAlpha); ++ INIT_VTABLE(ctx, AssociateSubpicture); ++ INIT_VTABLE(ctx, DeassociateSubpicture); ++ INIT_VTABLE(ctx, QueryDisplayAttributes); ++ INIT_VTABLE(ctx, GetDisplayAttributes); ++ INIT_VTABLE(ctx, SetDisplayAttributes); ++ INIT_VTABLE(ctx, CreateSurfaceFromCIFrame); ++ INIT_VTABLE(ctx, CreateSurfaceFromV4L2Buf); ++ INIT_VTABLE(ctx, CopySurfaceToBuffer); ++ ++ if (compat_version && compat_version < 31) { ++ INIT_VTABLE_(ctx, CreateContext, CreateContext_pre31); ++ INIT_VTABLE_(ctx, DestroyContext, DestroyContext_pre31); ++ INIT_VTABLE_(ctx, SyncSurface, SyncSurface_pre31); ++ INIT_VTABLE_(ctx, PutImage, PutImage_pre31); ++ INIT_VTABLE_(ctx, AssociateSubpicture, AssociateSubpicture_pre31); ++ } ++ ++#undef INIT_VTABLE ++#undef INIT_VTABLE__ ++} ++ ++VAStatus va_compat_init(VADisplay dpy, int compat_version, void *compat_ctx) ++{ ++ VADisplayContextP pDisplayContext = (VADisplayContextP)dpy; ++ VADriverContextP ctx = CTX(dpy); ++ VADriverContextP_0_29 ctx_0_29; ++ VADriverContextP_0_30 ctx_0_30; ++ VACompatContextP compat; ++ VAStatus status; ++ char *driver_name; ++ ++ ctx->compat = NULL; ++ ++ if (compat_version == 0) ++ return VA_STATUS_SUCCESS; ++ ++ ASSERT(compat_ctx); ++ if (compat_ctx == NULL) ++ return VA_STATUS_ERROR_UNKNOWN; ++ ++ driver_name = NULL; ++ status = pDisplayContext->vaGetDriverName(pDisplayContext, &driver_name); ++ ASSERT(status == VA_STATUS_SUCCESS); ++ if (status != VA_STATUS_SUCCESS) ++ return status; ++ ++ if ((compat = malloc(sizeof(*compat))) == NULL) ++ return VA_STATUS_ERROR_ALLOCATION_FAILED; ++ compat->buffers = NULL; ++ compat->buffers_count_max = 0; ++ compat->compat_version = compat_version; ++ compat->compat_ctx = NULL; ++ compat->driver_name = driver_name; ++ compat->context_map = NULL; ++ compat->last_context_map_match = NULL; ++ ctx->compat = compat; ++ ++ if (strcmp(driver_name, "psb") == 0) ++ compat->driver_id = VA_DRIVER_ID_POULSBO; ++ else if (strcmp(driver_name, "iegd") == 0) ++ compat->driver_id = VA_DRIVER_ID_IEGD; ++ else ++ compat->driver_id = VA_DRIVER_ID_UNKNOWN; ++ ++ switch (compat_version) { ++ case 29: ++ if ((ctx_0_29 = malloc(sizeof(*ctx_0_29))) == NULL) ++ return VA_STATUS_ERROR_ALLOCATION_FAILED; ++ memcpy(ctx_0_29, compat_ctx, sizeof(*ctx_0_29)); ++ va_compat_translate_VADriverContext_0_29(compat, ctx_0_29); ++ compat->compat_ctx = ctx_0_29; ++ COPY_FIELD(ctx, ctx_0_29, version_major); ++ COPY_FIELD(ctx, ctx_0_29, version_minor); ++ COPY_FIELD(ctx, ctx_0_29, max_profiles); ++ COPY_FIELD(ctx, ctx_0_29, max_entrypoints); ++ COPY_FIELD(ctx, ctx_0_29, max_attributes); ++ COPY_FIELD(ctx, ctx_0_29, max_image_formats); ++ COPY_FIELD(ctx, ctx_0_29, max_subpic_formats); ++ COPY_FIELD(ctx, ctx_0_29, max_display_attributes); ++ COPY_FIELD(ctx, ctx_0_29, str_vendor); ++ break; ++ case 30: ++ if ((ctx_0_30 = malloc(sizeof(*ctx_0_30))) == NULL) ++ return VA_STATUS_ERROR_ALLOCATION_FAILED; ++ memcpy(ctx_0_30, compat_ctx, sizeof(*ctx_0_30)); ++ va_compat_translate_VADriverContext_0_30(compat, ctx_0_30); ++ compat->compat_ctx = ctx_0_30; ++ COPY_FIELD(ctx, ctx_0_30, version_major); ++ COPY_FIELD(ctx, ctx_0_30, version_minor); ++ COPY_FIELD(ctx, ctx_0_30, max_profiles); ++ COPY_FIELD(ctx, ctx_0_30, max_entrypoints); ++ COPY_FIELD(ctx, ctx_0_30, max_attributes); ++ COPY_FIELD(ctx, ctx_0_30, max_image_formats); ++ COPY_FIELD(ctx, ctx_0_30, max_subpic_formats); ++ COPY_FIELD(ctx, ctx_0_30, max_display_attributes); ++ COPY_FIELD(ctx, ctx_0_30, str_vendor); ++ break; ++ case VA_MINOR_VERSION: ++ va_compat_translate_VADriverContext(compat, compat_ctx); ++ compat->compat_ctx = compat_ctx; ++ break; ++ default: ++ ASSERT(compat_version == 0); ++ return VA_STATUS_ERROR_UNKNOWN; ++ } ++ ++ va_compat_init_VADriverVTable(ctx, compat_version); ++ return VA_STATUS_SUCCESS; ++} ++ ++VAStatus va_compat_fini(VADisplay dpy) ++{ ++ VADriverContextP ctx = CTX(dpy); ++ VACompatContextP compat = ctx->compat; ++ int i; ++ ++ if (compat == NULL) ++ return VA_STATUS_SUCCESS; ++ ++ if (compat->driver_name) ++ { ++ free(compat->driver_name); ++ compat->driver_name = NULL; ++ } ++ ++ if (compat->buffers) ++ { ++ for (i = 0; i < compat->buffers_count_max; i++) ++ { ++ if (compat->buffers[i].id) ++ va_DestroyBufferCompat(ctx, compat->buffers[i].id); ++ } ++ free(compat->buffers); ++ compat->buffers = NULL; ++ } ++ ++ if (compat->compat_ctx && compat->compat_version != VA_MINOR_VERSION) ++ { ++ free(compat->compat_ctx); ++ compat->compat_ctx = NULL; ++ } ++ ++ if (compat->context_map) ++ { ++ VAContextMapP d, m = compat->context_map; ++ while (m) { ++ d = m; ++ m = m->next; ++ free(d); ++ } ++ } ++ compat->last_context_map_match = NULL; ++ ++ free(compat); ++ ctx->compat = NULL; ++ return VA_STATUS_SUCCESS; ++} +diff --git a/va/va_compat.h b/va/va_compat.h +new file mode 100644 +index 0000000..2c9d801 +--- /dev/null ++++ b/va/va_compat.h +@@ -0,0 +1,1467 @@ ++/* ++ * Copyright (C) 2009 Splitted-Desktop Systems. All Rights Reserved. ++ * ++ * 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, sub license, 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 PRECISION INSIGHT AND/OR ITS 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 VA_COMPAT_H ++#define VA_COMPAT_H ++ ++VAStatus va_compat_init(VADisplay dpy, int compat_version, void *compat_ctx); ++VAStatus va_compat_fini(VADisplay dpy); ++ ++/* H.264 Picture (0.29) */ ++typedef struct _VAPictureH264_0_29 ++{ ++ VASurfaceID picture_id; ++ unsigned int flags; ++ unsigned int TopFieldOrderCnt; ++ unsigned int BottomFieldOrderCnt; ++} VAPictureH264_0_29; ++ ++/* H.264 Picture Parameter Buffer (0.29) */ ++typedef struct _VAPictureParameterBufferH264_0_29 ++{ ++ VAPictureH264_0_29 CurrPic; ++ VAPictureH264_0_29 ReferenceFrames[16]; /* in DPB */ ++ unsigned short picture_width_in_mbs_minus1; ++ unsigned short picture_height_in_mbs_minus1; ++ unsigned char bit_depth_luma_minus8; ++ unsigned char bit_depth_chroma_minus8; ++ unsigned char num_ref_frames; ++ union { ++ struct { ++ unsigned char chroma_format_idc : 2; ++ unsigned char residual_colour_transform_flag : 1; ++ unsigned char frame_mbs_only_flag : 1; ++ unsigned char mb_adaptive_frame_field_flag : 1; ++ unsigned char direct_8x8_inference_flag : 1; ++ unsigned char MinLumaBiPredSize8x8 : 1; /* see A.3.3.2 */ ++ }; ++ unsigned char seq_fields; ++ }; ++ unsigned char num_slice_groups_minus1; ++ unsigned char slice_group_map_type; ++ signed char pic_init_qp_minus26; ++ signed char chroma_qp_index_offset; ++ signed char second_chroma_qp_index_offset; ++ union { ++ struct { ++ unsigned char entropy_coding_mode_flag : 1; ++ unsigned char weighted_pred_flag : 1; ++ unsigned char weighted_bipred_idc : 2; ++ unsigned char transform_8x8_mode_flag : 1; ++ unsigned char field_pic_flag : 1; ++ unsigned char constrained_intra_pred_flag : 1; ++ }; ++ unsigned char pic_fields; ++ }; ++ unsigned short frame_num; ++} VAPictureParameterBufferH264_0_29; ++ ++/* H.264 Slice Parameter Buffer (0.29) */ ++typedef struct _VASliceParameterBufferH264_0_29 ++{ ++ unsigned int slice_data_size;/* number of bytes in the slice data buffer for this slice */ ++ unsigned int slice_data_offset;/* the offset to the NAL start code for this slice */ ++ unsigned int slice_data_flag; /* see VA_SLICE_DATA_FLAG_XXX defintions */ ++ unsigned short slice_data_bit_offset; /* bit offset from NAL start code to the beginning of slice data */ ++ unsigned short first_mb_in_slice; ++ unsigned char slice_type; ++ unsigned char direct_spatial_mv_pred_flag; ++ unsigned char num_ref_idx_l0_active_minus1; ++ unsigned char num_ref_idx_l1_active_minus1; ++ unsigned char cabac_init_idc; ++ char slice_qp_delta; ++ unsigned char disable_deblocking_filter_idc; ++ char slice_alpha_c0_offset_div2; ++ char slice_beta_offset_div2; ++ VAPictureH264_0_29 RefPicList0[32]; /* See 8.2.4.2 */ ++ VAPictureH264_0_29 RefPicList1[32]; /* See 8.2.4.2 */ ++ unsigned char luma_log2_weight_denom; ++ unsigned char chroma_log2_weight_denom; ++ unsigned char luma_weight_l0_flag; ++ short luma_weight_l0[32]; ++ short luma_offset_l0[32]; ++ unsigned char chroma_weight_l0_flag; ++ short chroma_weight_l0[32][2]; ++ short chroma_offset_l0[32][2]; ++ unsigned char luma_weight_l1_flag; ++ short luma_weight_l1[32]; ++ short luma_offset_l1[32]; ++ unsigned char chroma_weight_l1_flag; ++ short chroma_weight_l1[32][2]; ++ short chroma_offset_l1[32][2]; ++} VASliceParameterBufferH264_0_29; ++ ++/* VC-1 Picture Parameter Buffer (0.29) */ ++typedef struct _VAPictureParameterBufferVC1_0_29 ++{ ++ VASurfaceID forward_reference_picture; ++ VASurfaceID backward_reference_picture; ++ /* if out-of-loop post-processing is done on the render ++ target, then we need to keep the in-loop decoded ++ picture as a reference picture */ ++ VASurfaceID inloop_decoded_picture; ++ ++ /* sequence layer for AP or meta data for SP and MP */ ++ union { ++ struct { ++ unsigned char interlace : 1; /* SEQUENCE_LAYER::INTERLACE */ ++ unsigned char syncmarker : 1;/* METADATA::SYNCMARKER */ ++ unsigned char overlap : 1;/* METADATA::OVERLAP */ ++ }; ++ unsigned char sequence_fields; ++ }; ++ ++ unsigned short coded_width; /* ENTRY_POINT_LAYER::CODED_WIDTH */ ++ unsigned short coded_height; /* ENTRY_POINT_LAYER::CODED_HEIGHT */ ++ unsigned char closed_entry; /* ENTRY_POINT_LAYER::CLOSED_ENTRY */ ++ unsigned char broken_link; /* ENTRY_POINT_LAYER::BROKEN_LINK */ ++ unsigned char loopfilter; /* ENTRY_POINT_LAYER::LOOPFILTER */ ++ unsigned char conditional_overlap_flag; /* ENTRY_POINT_LAYER::CONDOVER */ ++ unsigned char fast_uvmc_flag; /* ENTRY_POINT_LAYER::FASTUVMC */ ++ union { ++ struct { ++ unsigned char range_mapping_luma_flag: 1; /* ENTRY_POINT_LAYER::RANGE_MAPY_FLAG */ ++ unsigned char range_mapping_luma: 3; /* ENTRY_POINT_LAYER::RANGE_MAPY */ ++ unsigned char range_mapping_chroma_flag: 1; /* ENTRY_POINT_LAYER::RANGE_MAPUV_FLAG */ ++ unsigned char range_mapping_chroma: 3; /* ENTRY_POINT_LAYER::RANGE_MAPUV */ ++ }; ++ unsigned char range_mapping_fields; ++ }; ++ ++ unsigned char b_picture_fraction; /* PICTURE_LAYER::BFRACTION */ ++ unsigned char cbp_table; /* PICTURE_LAYER::CBPTAB/ICBPTAB */ ++ unsigned char mb_mode_table; /* PICTURE_LAYER::MBMODETAB */ ++ unsigned char range_reduction_frame;/* PICTURE_LAYER::RANGEREDFRM */ ++ unsigned char rounding_control; /* PICTURE_LAYER::RNDCTRL */ ++ unsigned char post_processing; /* PICTURE_LAYER::POSTPROC */ ++ unsigned char picture_resolution_index; /* PICTURE_LAYER::RESPIC */ ++ unsigned char luma_scale; /* PICTURE_LAYER::LUMSCALE */ ++ unsigned char luma_shift; /* PICTURE_LAYER::LUMSHIFT */ ++ union { ++ struct { ++ unsigned char picture_type : 2; /* PICTURE_LAYER::PTYPE */ ++ unsigned char frame_coding_mode : 3;/* PICTURE_LAYER::FCM */ ++ unsigned char top_field_first : 1;/* PICTURE_LAYER::TFF */ ++ unsigned char is_first_field : 1; /* set to 1 if it is the first field */ ++ unsigned char intensity_compensation: 1;/* PICTURE_LAYER::INTCOMP */ ++ }; ++ unsigned char picture_fields; ++ }; ++ union { ++ struct { ++ unsigned char mv_type_mb : 1; /* PICTURE::MVTYPEMB */ ++ unsigned char direct_mb : 1; /* PICTURE::DIRECTMB */ ++ unsigned char skip_mb : 1; /* PICTURE::SKIPMB */ ++ unsigned char field_tx : 1; /* PICTURE::FIELDTX */ ++ unsigned char forward_mb : 1; /* PICTURE::FORWARDMB */ ++ unsigned char ac_pred : 1; /* PICTURE::ACPRED */ ++ unsigned char overflags : 1; /* PICTURE::OVERFLAGS */ ++ }; ++ unsigned char raw_coding_flag; ++ }; ++ union { ++ struct { ++ unsigned char bp_mv_type_mb : 1; /* PICTURE::MVTYPEMB */ ++ unsigned char bp_direct_mb : 1; /* PICTURE::DIRECTMB */ ++ unsigned char bp_skip_mb : 1; /* PICTURE::SKIPMB */ ++ unsigned char bp_field_tx : 1; /* PICTURE::FIELDTX */ ++ unsigned char bp_forward_mb : 1; /* PICTURE::FORWARDMB */ ++ unsigned char bp_ac_pred : 1; /* PICTURE::ACPRED */ ++ unsigned char bp_overflags : 1; /* PICTURE::OVERFLAGS */ ++ }; ++ unsigned char bitplane_present_flag; /* signal what bitplane is being passed via the bitplane buffer */ ++ }; ++ union { ++ struct { ++ unsigned char reference_distance_flag : 1;/* PICTURE_LAYER::REFDIST_FLAG */ ++ unsigned char reference_distance : 5;/* PICTURE_LAYER::REFDIST */ ++ unsigned char num_reference_pictures: 1;/* PICTURE_LAYER::NUMREF */ ++ unsigned char reference_field_pic_indicator : 1;/* PICTURE_LAYER::REFFIELD */ ++ }; ++ unsigned short reference_fields; ++ }; ++ union { ++ struct { ++ VAMvModeVC1 mv_mode : 3; /* PICTURE_LAYER::MVMODE */ ++ VAMvModeVC1 mv_mode2 : 3; /* PICTURE_LAYER::MVMODE2 */ ++ unsigned char mv_table : 3; /* PICTURE_LAYER::MVTAB/IMVTAB */ ++ unsigned char two_mv_block_pattern_table: 2; /* PICTURE_LAYER::2MVBPTAB */ ++ unsigned char four_mv_switch : 1; /* PICTURE_LAYER::4MVSWITCH */ ++ unsigned char four_mv_block_pattern_table : 2; /* PICTURE_LAYER::4MVBPTAB */ ++ unsigned char extended_mv_flag : 1; /* ENTRY_POINT_LAYER::EXTENDED_MV */ ++ unsigned char extended_mv_range : 2; /* PICTURE_LAYER::MVRANGE */ ++ unsigned char extended_dmv_flag : 1; /* ENTRY_POINT_LAYER::EXTENDED_DMV */ ++ unsigned char extended_dmv_range : 2; /* PICTURE_LAYER::DMVRANGE */ ++ }; ++ unsigned int mv_fields; ++ }; ++ union { ++ struct { ++ unsigned char dquant : 2; /* ENTRY_POINT_LAYER::DQUANT */ ++ unsigned char quantizer : 2; /* ENTRY_POINT_LAYER::QUANTIZER */ ++ unsigned char half_qp : 1; /* PICTURE_LAYER::HALFQP */ ++ unsigned char pic_quantizer_scale : 5;/* PICTURE_LAYER::PQUANT */ ++ unsigned char pic_quantizer_type : 1;/* PICTURE_LAYER::PQUANTIZER */ ++ unsigned char dq_frame : 1; /* VOPDQUANT::DQUANTFRM */ ++ unsigned char dq_profile : 2; /* VOPDQUANT::DQPROFILE */ ++ unsigned char dq_sb_edge : 2; /* VOPDQUANT::DQSBEDGE */ ++ unsigned char dq_db_edge : 2; /* VOPDQUANT::DQDBEDGE */ ++ unsigned char dq_binary_level : 1; /* VOPDQUANT::DQBILEVEL */ ++ unsigned char alt_pic_quantizer : 5;/* VOPDQUANT::ALTPQUANT */ ++ }; ++ unsigned long pic_quantizer_fields; ++ }; ++ union { ++ struct { ++ unsigned char variable_sized_transform_flag : 1;/* ENTRY_POINT_LAYER::VSTRANSFORM */ ++ unsigned char mb_level_transform_type_flag : 1;/* PICTURE_LAYER::TTMBF */ ++ unsigned char frame_level_transform_type : 2;/* PICTURE_LAYER::TTFRM */ ++ unsigned char transform_ac_codingset_idx1 : 2;/* PICTURE_LAYER::TRANSACFRM */ ++ unsigned char transform_ac_codingset_idx2 : 2;/* PICTURE_LAYER::TRANSACFRM2 */ ++ unsigned char intra_transform_dc_table : 1;/* PICTURE_LAYER::TRANSDCTAB */ ++ }; ++ unsigned short transform_fields; ++ }; ++} VAPictureParameterBufferVC1_0_29; ++ ++/* MPEG-2 Picture Parameter Buffer (0.29) */ ++typedef struct _VAPictureParameterBufferMPEG2_0_29 ++{ ++ unsigned short horizontal_size; ++ unsigned short vertical_size; ++ VASurfaceID forward_reference_picture; ++ VASurfaceID backward_reference_picture; ++ /* meanings of the following fields are the same as in the standard */ ++ int picture_coding_type; ++ int f_code; /* pack all four fcode into this */ ++ union { ++ struct { ++ unsigned char intra_dc_precision : 2; ++ unsigned char picture_structure : 2; ++ unsigned char top_field_first : 1; ++ unsigned char frame_pred_frame_dct : 1; ++ unsigned char concealment_motion_vectors : 1; ++ unsigned char q_scale_type : 1; ++ unsigned char intra_vlc_format : 1; ++ unsigned char alternate_scan : 1; ++ unsigned char repeat_first_field : 1; ++ unsigned char progressive_frame : 1; ++ unsigned char is_first_field : 1; /* indicate whether the current field ++ * is the first field for field picture ++ */ ++ }; ++ unsigned int picture_coding_extension; ++ }; ++} VAPictureParameterBufferMPEG2_0_29; ++ ++/* MPEG-2 Slice Parameter Buffer (0.29) */ ++typedef struct _VASliceParameterBufferMPEG2_0_29 ++{ ++ unsigned int slice_data_size;/* number of bytes in the slice data buffer for this slice */ ++ unsigned int slice_data_offset;/* the offset to the first byte of slice data */ ++ unsigned int slice_data_flag; /* see VA_SLICE_DATA_FLAG_XXX defintions */ ++ unsigned int macroblock_offset;/* the offset to the first bit of MB from the first byte of slice data */ ++ unsigned int slice_vertical_position; ++ int quantiser_scale_code; ++ int intra_slice_flag; ++} VASliceParameterBufferMPEG2_0_29; ++ ++/* MPEG-4 Picture Parameter Buffer (0.29) */ ++typedef struct _VAPictureParameterBufferMPEG4_0_29 ++{ ++ unsigned short vop_width; ++ unsigned short vop_height; ++ VASurfaceID forward_reference_picture; ++ VASurfaceID backward_reference_picture; ++ union { ++ struct { ++ unsigned char short_video_header : 1; ++ unsigned char chroma_format : 2; ++ unsigned char interlaced : 1; ++ unsigned char obmc_disable : 1; ++ unsigned char sprite_enable : 2; ++ unsigned char sprite_warping_accuracy : 2; ++ unsigned char quant_type : 1; ++ unsigned char quarter_sample : 1; ++ unsigned char data_partitioned : 1; ++ unsigned char reversible_vlc : 1; ++ }; ++ unsigned short vol_fields; ++ }; ++ unsigned char no_of_sprite_warping_points; ++ short sprite_trajectory_du[3]; ++ short sprite_trajectory_dv[3]; ++ unsigned char quant_precision; ++ union { ++ struct { ++ unsigned char vop_coding_type : 2; ++ unsigned char backward_reference_vop_coding_type : 2; ++ unsigned char vop_rounding_type : 1; ++ unsigned char intra_dc_vlc_thr : 3; ++ unsigned char top_field_first : 1; ++ unsigned char alternate_vertical_scan_flag : 1; ++ }; ++ unsigned short vop_fields; ++ }; ++ unsigned char vop_fcode_forward; ++ unsigned char vop_fcode_backward; ++ /* short header related */ ++ unsigned char num_gobs_in_vop; ++ unsigned char num_macroblocks_in_gob; ++ /* for direct mode prediction */ ++ short TRB; ++ short TRD; ++} VAPictureParameterBufferMPEG4_0_29; ++ ++/* H.264 Picture (0.30) */ ++typedef struct _VAPictureH264_0_30 ++{ ++ VASurfaceID picture_id; ++ unsigned int flags; ++ unsigned int TopFieldOrderCnt; ++ unsigned int BottomFieldOrderCnt; ++} VAPictureH264_0_30; ++ ++/* H.264 Picture Parameter Buffer (0.30) */ ++typedef struct _VAPictureParameterBufferH264_0_30 ++{ ++ VAPictureH264 CurrPic; ++ VAPictureH264 ReferenceFrames[16]; /* in DPB */ ++ unsigned short picture_width_in_mbs_minus1; ++ unsigned short picture_height_in_mbs_minus1; ++ unsigned char bit_depth_luma_minus8; ++ unsigned char bit_depth_chroma_minus8; ++ unsigned char num_ref_frames; ++ union { ++ struct { ++ unsigned char chroma_format_idc : 2; ++ unsigned char residual_colour_transform_flag : 1; ++ unsigned char frame_mbs_only_flag : 1; ++ unsigned char mb_adaptive_frame_field_flag : 1; ++ unsigned char direct_8x8_inference_flag : 1; ++ unsigned char MinLumaBiPredSize8x8 : 1; /* see A.3.3.2 */ ++ } bits; ++ unsigned char value; ++ } seq_fields; ++ unsigned char num_slice_groups_minus1; ++ unsigned char slice_group_map_type; ++ signed char pic_init_qp_minus26; ++ signed char chroma_qp_index_offset; ++ signed char second_chroma_qp_index_offset; ++ union { ++ struct { ++ unsigned char entropy_coding_mode_flag : 1; ++ unsigned char weighted_pred_flag : 1; ++ unsigned char weighted_bipred_idc : 2; ++ unsigned char transform_8x8_mode_flag : 1; ++ unsigned char field_pic_flag : 1; ++ unsigned char constrained_intra_pred_flag : 1; ++ } bits; ++ unsigned char value; ++ } pic_fields; ++ unsigned short frame_num; ++} VAPictureParameterBufferH264_0_30; ++ ++/* H.264 Slice Parameter Buffer (0.30) */ ++typedef struct _VASliceParameterBufferH264_0_30 ++{ ++ unsigned int slice_data_size;/* number of bytes in the slice data buffer for this slice */ ++ unsigned int slice_data_offset;/* the offset to the NAL start code for this slice */ ++ unsigned int slice_data_flag; /* see VA_SLICE_DATA_FLAG_XXX defintions */ ++ unsigned short slice_data_bit_offset; /* bit offset from NAL start code to the beginning of slice data */ ++ unsigned short first_mb_in_slice; ++ unsigned char slice_type; ++ unsigned char direct_spatial_mv_pred_flag; ++ unsigned char num_ref_idx_l0_active_minus1; ++ unsigned char num_ref_idx_l1_active_minus1; ++ unsigned char cabac_init_idc; ++ char slice_qp_delta; ++ unsigned char disable_deblocking_filter_idc; ++ char slice_alpha_c0_offset_div2; ++ char slice_beta_offset_div2; ++ VAPictureH264 RefPicList0[32]; /* See 8.2.4.2 */ ++ VAPictureH264 RefPicList1[32]; /* See 8.2.4.2 */ ++ unsigned char luma_log2_weight_denom; ++ unsigned char chroma_log2_weight_denom; ++ unsigned char luma_weight_l0_flag; ++ short luma_weight_l0[32]; ++ short luma_offset_l0[32]; ++ unsigned char chroma_weight_l0_flag; ++ short chroma_weight_l0[32][2]; ++ short chroma_offset_l0[32][2]; ++ unsigned char luma_weight_l1_flag; ++ short luma_weight_l1[32]; ++ short luma_offset_l1[32]; ++ unsigned char chroma_weight_l1_flag; ++ short chroma_weight_l1[32][2]; ++ short chroma_offset_l1[32][2]; ++} VASliceParameterBufferH264_0_30; ++ ++/* VC-1 Picture Parameter Buffer (0.30) */ ++typedef struct _VAPictureParameterBufferVC1_0_30 ++{ ++ VASurfaceID forward_reference_picture; ++ VASurfaceID backward_reference_picture; ++ /* if out-of-loop post-processing is done on the render ++ target, then we need to keep the in-loop decoded ++ picture as a reference picture */ ++ VASurfaceID inloop_decoded_picture; ++ ++ /* sequence layer for AP or meta data for SP and MP */ ++ union { ++ struct { ++ unsigned char interlace : 1; /* SEQUENCE_LAYER::INTERLACE */ ++ unsigned char syncmarker : 1;/* METADATA::SYNCMARKER */ ++ unsigned char overlap : 1;/* METADATA::OVERLAP */ ++ } bits; ++ unsigned char value; ++ } sequence_fields; ++ ++ unsigned short coded_width; /* ENTRY_POINT_LAYER::CODED_WIDTH */ ++ unsigned short coded_height; /* ENTRY_POINT_LAYER::CODED_HEIGHT */ ++ unsigned char closed_entry; /* ENTRY_POINT_LAYER::CLOSED_ENTRY */ ++ unsigned char broken_link; /* ENTRY_POINT_LAYER::BROKEN_LINK */ ++ unsigned char loopfilter; /* ENTRY_POINT_LAYER::LOOPFILTER */ ++ unsigned char conditional_overlap_flag; /* ENTRY_POINT_LAYER::CONDOVER */ ++ unsigned char fast_uvmc_flag; /* ENTRY_POINT_LAYER::FASTUVMC */ ++ union { ++ struct { ++ unsigned char luma_flag : 1; /* ENTRY_POINT_LAYER::RANGE_MAPY_FLAG */ ++ unsigned char luma : 3; /* ENTRY_POINT_LAYER::RANGE_MAPY */ ++ unsigned char chroma_flag : 1; /* ENTRY_POINT_LAYER::RANGE_MAPUV_FLAG */ ++ unsigned char chroma : 3; /* ENTRY_POINT_LAYER::RANGE_MAPUV */ ++ } bits; ++ unsigned char value; ++ } range_mapping_fields; ++ ++ unsigned char b_picture_fraction; /* PICTURE_LAYER::BFRACTION */ ++ unsigned char cbp_table; /* PICTURE_LAYER::CBPTAB/ICBPTAB */ ++ unsigned char mb_mode_table; /* PICTURE_LAYER::MBMODETAB */ ++ unsigned char range_reduction_frame;/* PICTURE_LAYER::RANGEREDFRM */ ++ unsigned char rounding_control; /* PICTURE_LAYER::RNDCTRL */ ++ unsigned char post_processing; /* PICTURE_LAYER::POSTPROC */ ++ unsigned char picture_resolution_index; /* PICTURE_LAYER::RESPIC */ ++ unsigned char luma_scale; /* PICTURE_LAYER::LUMSCALE */ ++ unsigned char luma_shift; /* PICTURE_LAYER::LUMSHIFT */ ++ union { ++ struct { ++ unsigned char picture_type : 2; /* PICTURE_LAYER::PTYPE */ ++ unsigned char frame_coding_mode : 3; /* PICTURE_LAYER::FCM */ ++ unsigned char top_field_first : 1; /* PICTURE_LAYER::TFF */ ++ unsigned char is_first_field : 1; /* set to 1 if it is the first field */ ++ unsigned char intensity_compensation : 1; /* PICTURE_LAYER::INTCOMP */ ++ } bits; ++ unsigned char value; ++ } picture_fields; ++ union { ++ struct { ++ unsigned char mv_type_mb : 1; /* PICTURE::MVTYPEMB */ ++ unsigned char direct_mb : 1; /* PICTURE::DIRECTMB */ ++ unsigned char skip_mb : 1; /* PICTURE::SKIPMB */ ++ unsigned char field_tx : 1; /* PICTURE::FIELDTX */ ++ unsigned char forward_mb : 1; /* PICTURE::FORWARDMB */ ++ unsigned char ac_pred : 1; /* PICTURE::ACPRED */ ++ unsigned char overflags : 1; /* PICTURE::OVERFLAGS */ ++ } flags; ++ unsigned char value; ++ } raw_coding; ++ union { ++ struct { ++ unsigned char bp_mv_type_mb : 1; /* PICTURE::MVTYPEMB */ ++ unsigned char bp_direct_mb : 1; /* PICTURE::DIRECTMB */ ++ unsigned char bp_skip_mb : 1; /* PICTURE::SKIPMB */ ++ unsigned char bp_field_tx : 1; /* PICTURE::FIELDTX */ ++ unsigned char bp_forward_mb : 1; /* PICTURE::FORWARDMB */ ++ unsigned char bp_ac_pred : 1; /* PICTURE::ACPRED */ ++ unsigned char bp_overflags : 1; /* PICTURE::OVERFLAGS */ ++ } flags; ++ unsigned char value; ++ } bitplane_present; /* signal what bitplane is being passed via the bitplane buffer */ ++ union { ++ struct { ++ unsigned char reference_distance_flag : 1;/* PICTURE_LAYER::REFDIST_FLAG */ ++ unsigned char reference_distance : 5;/* PICTURE_LAYER::REFDIST */ ++ unsigned char num_reference_pictures: 1;/* PICTURE_LAYER::NUMREF */ ++ unsigned char reference_field_pic_indicator : 1;/* PICTURE_LAYER::REFFIELD */ ++ } bits; ++ unsigned short value; ++ } reference_fields; ++ union { ++ struct { ++ unsigned char mv_mode : 3; /* PICTURE_LAYER::MVMODE */ ++ unsigned char mv_mode2 : 3; /* PICTURE_LAYER::MVMODE2 */ ++ unsigned char mv_table : 3; /* PICTURE_LAYER::MVTAB/IMVTAB */ ++ unsigned char two_mv_block_pattern_table: 2; /* PICTURE_LAYER::2MVBPTAB */ ++ unsigned char four_mv_switch : 1; /* PICTURE_LAYER::4MVSWITCH */ ++ unsigned char four_mv_block_pattern_table : 2; /* PICTURE_LAYER::4MVBPTAB */ ++ unsigned char extended_mv_flag : 1; /* ENTRY_POINT_LAYER::EXTENDED_MV */ ++ unsigned char extended_mv_range : 2; /* PICTURE_LAYER::MVRANGE */ ++ unsigned char extended_dmv_flag : 1; /* ENTRY_POCHAR_LAYER::EXTENDED_DMV */ ++ unsigned char extended_dmv_range : 2; /* PICTURE_LAYER::DMVRANGE */ ++ } bits; ++ unsigned int value; ++ } mv_fields; ++ union { ++ struct { ++ unsigned char dquant : 2; /* ENTRY_POINT_LAYER::DQUANT */ ++ unsigned char quantizer : 2; /* ENTRY_POINT_LAYER::QUANTIZER */ ++ unsigned char half_qp : 1; /* PICTURE_LAYER::HALFQP */ ++ unsigned char pic_quantizer_scale : 5;/* PICTURE_LAYER::PQUANT */ ++ unsigned char pic_quantizer_type : 1;/* PICTURE_LAYER::PQUANTIZER */ ++ unsigned char dq_frame : 1; /* VOPDQUANT::DQUANTFRM */ ++ unsigned char dq_profile : 2; /* VOPDQUANT::DQPROFILE */ ++ unsigned char dq_sb_edge : 2; /* VOPDQUANT::DQSBEDGE */ ++ unsigned char dq_db_edge : 2; /* VOPDQUANT::DQDBEDGE */ ++ unsigned char dq_binary_level : 1; /* VOPDQUANT::DQBILEVEL */ ++ unsigned char alt_pic_quantizer : 5;/* VOPDQUANT::ALTPQUANT */ ++ } bits; ++ unsigned long value; ++ } pic_quantizer_fields; ++ union { ++ struct { ++ unsigned char variable_sized_transform_flag : 1;/* ENTRY_POINT_LAYER::VSTRANSFORM */ ++ unsigned char mb_level_transform_type_flag : 1;/* PICTURE_LAYER::TTMBF */ ++ unsigned char frame_level_transform_type : 2;/* PICTURE_LAYER::TTFRM */ ++ unsigned char transform_ac_codingset_idx1 : 2;/* PICTURE_LAYER::TRANSACFRM */ ++ unsigned char transform_ac_codingset_idx2 : 2;/* PICTURE_LAYER::TRANSACFRM2 */ ++ unsigned char intra_transform_dc_table : 1;/* PICTURE_LAYER::TRANSDCTAB */ ++ } bits; ++ unsigned short value; ++ } transform_fields; ++} VAPictureParameterBufferVC1_0_30; ++ ++/* MPEG-2 Picture Parameter Buffer (0.30) */ ++typedef struct _VAPictureParameterBufferMPEG2_0_30 ++{ ++ unsigned short horizontal_size; ++ unsigned short vertical_size; ++ VASurfaceID forward_reference_picture; ++ VASurfaceID backward_reference_picture; ++ /* meanings of the following fields are the same as in the standard */ ++ int picture_coding_type; ++ int f_code; /* pack all four fcode into this */ ++ union { ++ struct { ++ unsigned int intra_dc_precision : 2; ++ unsigned int picture_structure : 2; ++ unsigned int top_field_first : 1; ++ unsigned int frame_pred_frame_dct : 1; ++ unsigned int concealment_motion_vectors : 1; ++ unsigned int q_scale_type : 1; ++ unsigned int intra_vlc_format : 1; ++ unsigned int alternate_scan : 1; ++ unsigned int repeat_first_field : 1; ++ unsigned int progressive_frame : 1; ++ unsigned int is_first_field : 1; /* indicate whether the current field ++ * is the first field for field picture ++ */ ++ } bits; ++ unsigned int value; ++ } picture_coding_extension; ++} VAPictureParameterBufferMPEG2_0_30; ++ ++/* MPEG-2 Slice Parameter Buffer (0.29) */ ++typedef VASliceParameterBufferMPEG2_0_29 VASliceParameterBufferMPEG2_0_30; ++ ++/* MPEG-4 Picture Parameter Buffer (0.30) */ ++typedef struct _VAPictureParameterBufferMPEG4_0_30 ++{ ++ unsigned short vop_width; ++ unsigned short vop_height; ++ VASurfaceID forward_reference_picture; ++ VASurfaceID backward_reference_picture; ++ union { ++ struct { ++ unsigned char short_video_header : 1; ++ unsigned char chroma_format : 2; ++ unsigned char interlaced : 1; ++ unsigned char obmc_disable : 1; ++ unsigned char sprite_enable : 2; ++ unsigned char sprite_warping_accuracy : 2; ++ unsigned char quant_type : 1; ++ unsigned char quarter_sample : 1; ++ unsigned char data_partitioned : 1; ++ unsigned char reversible_vlc : 1; ++ } bits; ++ unsigned short value; ++ } vol_fields; ++ unsigned char no_of_sprite_warping_points; ++ short sprite_trajectory_du[3]; ++ short sprite_trajectory_dv[3]; ++ unsigned char quant_precision; ++ union { ++ struct { ++ unsigned char vop_coding_type : 2; ++ unsigned char backward_reference_vop_coding_type : 2; ++ unsigned char vop_rounding_type : 1; ++ unsigned char intra_dc_vlc_thr : 3; ++ unsigned char top_field_first : 1; ++ unsigned char alternate_vertical_scan_flag : 1; ++ } bits; ++ unsigned short value; ++ } vop_fields; ++ unsigned char vop_fcode_forward; ++ unsigned char vop_fcode_backward; ++ /* short header related */ ++ unsigned char num_gobs_in_vop; ++ unsigned char num_macroblocks_in_gob; ++ /* for direct mode prediction */ ++ short TRB; ++ short TRD; ++} VAPictureParameterBufferMPEG4_0_30; ++ ++/* Encode Slice Parameter Buffer (0.30) */ ++typedef struct _VAEncSliceParameterBuffer_0_30 ++{ ++ unsigned int start_row_number; /* starting MB row number for this slice */ ++ unsigned int slice_height; /* slice height measured in MB */ ++ union { ++ struct { ++ unsigned char is_intra : 1; ++ unsigned char disable_deblocking_filter_idc : 2; ++ } bits; ++ unsigned char value; ++ } slice_flags; ++} VAEncSliceParameterBuffer_0_30; ++ ++/* MPEG-4 Picture Parameter Buffer (0.31) */ ++typedef struct _VAPictureParameterBufferMPEG4_0_31 ++{ ++ unsigned short vop_width; ++ unsigned short vop_height; ++ VASurfaceID forward_reference_picture; ++ VASurfaceID backward_reference_picture; ++ union { ++ struct { ++ unsigned int short_video_header : 1; ++ unsigned int chroma_format : 2; ++ unsigned int interlaced : 1; ++ unsigned int obmc_disable : 1; ++ unsigned int sprite_enable : 2; ++ unsigned int sprite_warping_accuracy : 2; ++ unsigned int quant_type : 1; ++ unsigned int quarter_sample : 1; ++ unsigned int data_partitioned : 1; ++ unsigned int reversible_vlc : 1; ++ } bits; ++ unsigned int value; ++ } vol_fields; ++ unsigned char no_of_sprite_warping_points; ++ short sprite_trajectory_du[3]; ++ short sprite_trajectory_dv[3]; ++ unsigned char quant_precision; ++ union { ++ struct { ++ unsigned int vop_coding_type : 2; ++ unsigned int backward_reference_vop_coding_type : 2; ++ unsigned int vop_rounding_type : 1; ++ unsigned int intra_dc_vlc_thr : 3; ++ unsigned int top_field_first : 1; ++ unsigned int alternate_vertical_scan_flag : 1; ++ } bits; ++ unsigned int value; ++ } vop_fields; ++ unsigned char vop_fcode_forward; ++ unsigned char vop_fcode_backward; ++ /* short header related */ ++ unsigned char num_gobs_in_vop; ++ unsigned char num_macroblocks_in_gob; ++ /* for direct mode prediction */ ++ short TRB; ++ short TRD; ++} VAPictureParameterBufferMPEG4_0_31; ++ ++typedef struct VADriverContext_0_29 *VADriverContextP_0_29; ++ ++/* Driver VTable (0.29) */ ++struct VADriverVTable_0_29 ++{ ++ VAStatus (*vaTerminate) ( VADriverContextP_0_29 ctx ); ++ ++ VAStatus (*vaQueryConfigProfiles) ( ++ VADriverContextP_0_29 ctx, ++ VAProfile *profile_list, /* out */ ++ int *num_profiles /* out */ ++ ); ++ ++ VAStatus (*vaQueryConfigEntrypoints) ( ++ VADriverContextP_0_29 ctx, ++ VAProfile profile, ++ VAEntrypoint *entrypoint_list, /* out */ ++ int *num_entrypoints /* out */ ++ ); ++ ++ VAStatus (*vaGetConfigAttributes) ( ++ VADriverContextP_0_29 ctx, ++ VAProfile profile, ++ VAEntrypoint entrypoint, ++ VAConfigAttrib *attrib_list, /* in/out */ ++ int num_attribs ++ ); ++ ++ VAStatus (*vaCreateConfig) ( ++ VADriverContextP_0_29 ctx, ++ VAProfile profile, ++ VAEntrypoint entrypoint, ++ VAConfigAttrib *attrib_list, ++ int num_attribs, ++ VAConfigID *config_id /* out */ ++ ); ++ ++ VAStatus (*vaDestroyConfig) ( ++ VADriverContextP_0_29 ctx, ++ VAConfigID config_id ++ ); ++ ++ VAStatus (*vaQueryConfigAttributes) ( ++ VADriverContextP_0_29 ctx, ++ VAConfigID config_id, ++ VAProfile *profile, /* out */ ++ VAEntrypoint *entrypoint, /* out */ ++ VAConfigAttrib *attrib_list, /* out */ ++ int *num_attribs /* out */ ++ ); ++ ++ VAStatus (*vaCreateSurfaces) ( ++ VADriverContextP_0_29 ctx, ++ int width, ++ int height, ++ int format, ++ int num_surfaces, ++ VASurfaceID *surfaces /* out */ ++ ); ++ ++ VAStatus (*vaDestroySurfaces) ( ++ VADriverContextP_0_29 ctx, ++ VASurfaceID *surface_list, ++ int num_surfaces ++ ); ++ ++ VAStatus (*vaCreateContext) ( ++ VADriverContextP_0_29 ctx, ++ VAConfigID config_id, ++ int picture_width, ++ int picture_height, ++ int flag, ++ VASurfaceID *render_targets, ++ int num_render_targets, ++ VAContextID *context /* out */ ++ ); ++ ++ VAStatus (*vaDestroyContext) ( ++ VADriverContextP_0_29 ctx, ++ VAContextID context ++ ); ++ ++ VAStatus (*vaCreateBuffer) ( ++ VADriverContextP_0_29 ctx, ++ VAContextID context, /* in */ ++ VABufferType type, /* in */ ++ unsigned int size, /* in */ ++ unsigned int num_elements, /* in */ ++ void *data, /* in */ ++ VABufferID *buf_id /* out */ ++ ); ++ ++ VAStatus (*vaBufferSetNumElements) ( ++ VADriverContextP_0_29 ctx, ++ VABufferID buf_id, /* in */ ++ unsigned int num_elements /* in */ ++ ); ++ ++ VAStatus (*vaMapBuffer) ( ++ VADriverContextP_0_29 ctx, ++ VABufferID buf_id, /* in */ ++ void **pbuf /* out */ ++ ); ++ ++ VAStatus (*vaUnmapBuffer) ( ++ VADriverContextP_0_29 ctx, ++ VABufferID buf_id /* in */ ++ ); ++ ++ VAStatus (*vaDestroyBuffer) ( ++ VADriverContextP_0_29 ctx, ++ VABufferID buffer_id ++ ); ++ ++ VAStatus (*vaBeginPicture) ( ++ VADriverContextP_0_29 ctx, ++ VAContextID context, ++ VASurfaceID render_target ++ ); ++ ++ VAStatus (*vaRenderPicture) ( ++ VADriverContextP_0_29 ctx, ++ VAContextID context, ++ VABufferID *buffers, ++ int num_buffers ++ ); ++ ++ VAStatus (*vaEndPicture) ( ++ VADriverContextP_0_29 ctx, ++ VAContextID context ++ ); ++ ++ VAStatus (*vaSyncSurface) ( ++ VADriverContextP_0_29 ctx, ++ VAContextID context, ++ VASurfaceID render_target ++ ); ++ ++ VAStatus (*vaQuerySurfaceStatus) ( ++ VADriverContextP_0_29 ctx, ++ VASurfaceID render_target, ++ VASurfaceStatus *status /* out */ ++ ); ++ ++ VAStatus (*vaPutSurface) ( ++ VADriverContextP_0_29 ctx, ++ VASurfaceID surface, ++ unsigned long draw, /* X Drawable */ ++ short srcx, ++ short srcy, ++ unsigned short srcw, ++ unsigned short srch, ++ short destx, ++ short desty, ++ unsigned short destw, ++ unsigned short desth, ++ VARectangle *cliprects, /* client supplied clip list */ ++ unsigned int number_cliprects, /* number of clip rects in the clip list */ ++ unsigned int flags /* de-interlacing flags */ ++ ); ++ ++ VAStatus (*vaQueryImageFormats) ( ++ VADriverContextP_0_29 ctx, ++ VAImageFormat *format_list, /* out */ ++ int *num_formats /* out */ ++ ); ++ ++ VAStatus (*vaCreateImage) ( ++ VADriverContextP_0_29 ctx, ++ VAImageFormat *format, ++ int width, ++ int height, ++ VAImage *image /* out */ ++ ); ++ ++ VAStatus (*vaDeriveImage) ( ++ VADriverContextP_0_29 ctx, ++ VASurfaceID surface, ++ VAImage *image /* out */ ++ ); ++ ++ VAStatus (*vaDestroyImage) ( ++ VADriverContextP_0_29 ctx, ++ VAImageID image ++ ); ++ ++ VAStatus (*vaSetImagePalette) ( ++ VADriverContextP_0_29 ctx, ++ VAImageID image, ++ /* ++ * pointer to an array holding the palette data. The size of the array is ++ * num_palette_entries * entry_bytes in size. The order of the components ++ * in the palette is described by the component_order in VAImage struct ++ */ ++ unsigned char *palette ++ ); ++ ++ VAStatus (*vaGetImage) ( ++ VADriverContextP_0_29 ctx, ++ VASurfaceID surface, ++ int x, /* coordinates of the upper left source pixel */ ++ int y, ++ unsigned int width, /* width and height of the region */ ++ unsigned int height, ++ VAImageID image ++ ); ++ ++ VAStatus (*vaPutImage) ( ++ VADriverContextP_0_29 ctx, ++ VASurfaceID surface, ++ VAImageID image, ++ int src_x, ++ int src_y, ++ unsigned int width, ++ unsigned int height, ++ int dest_x, ++ int dest_y ++ ); ++ ++ VAStatus (*vaPutImage2) ( ++ VADriverContextP_0_29 ctx, ++ VASurfaceID surface, ++ VAImageID image, ++ int src_x, ++ int src_y, ++ unsigned int src_width, ++ unsigned int src_height, ++ int dest_x, ++ int dest_y, ++ unsigned int dest_width, ++ unsigned int dest_height ++ ); ++ ++ VAStatus (*vaQuerySubpictureFormats) ( ++ VADriverContextP_0_29 ctx, ++ VAImageFormat *format_list, /* out */ ++ unsigned int *flags, /* out */ ++ unsigned int *num_formats /* out */ ++ ); ++ ++ VAStatus (*vaCreateSubpicture) ( ++ VADriverContextP_0_29 ctx, ++ VAImageID image, ++ VASubpictureID *subpicture /* out */ ++ ); ++ ++ VAStatus (*vaDestroySubpicture) ( ++ VADriverContextP_0_29 ctx, ++ VASubpictureID subpicture ++ ); ++ ++ VAStatus (*vaSetSubpictureImage) ( ++ VADriverContextP_0_29 ctx, ++ VASubpictureID subpicture, ++ VAImageID image ++ ); ++ ++ VAStatus (*vaSetSubpicturePalette) ( ++ VADriverContextP_0_29 ctx, ++ VASubpictureID subpicture, ++ /* ++ * pointer to an array holding the palette data. The size of the array is ++ * num_palette_entries * entry_bytes in size. The order of the components ++ * in the palette is described by the component_order in VASubpicture struct ++ */ ++ unsigned char *palette ++ ); ++ ++ VAStatus (*vaSetSubpictureChromakey) ( ++ VADriverContextP_0_29 ctx, ++ VASubpictureID subpicture, ++ unsigned int chromakey_min, ++ unsigned int chromakey_max, ++ unsigned int chromakey_mask ++ ); ++ ++ VAStatus (*vaSetSubpictureGlobalAlpha) ( ++ VADriverContextP_0_29 ctx, ++ VASubpictureID subpicture, ++ float global_alpha ++ ); ++ ++ VAStatus (*vaAssociateSubpicture) ( ++ VADriverContextP_0_29 ctx, ++ VASubpictureID subpicture, ++ VASurfaceID *target_surfaces, ++ int num_surfaces, ++ short src_x, /* upper left offset in subpicture */ ++ short src_y, ++ short dest_x, /* upper left offset in surface */ ++ short dest_y, ++ unsigned short width, ++ unsigned short height, ++ /* ++ * whether to enable chroma-keying or global-alpha ++ * see VA_SUBPICTURE_XXX values ++ */ ++ unsigned int flags ++ ); ++ ++ VAStatus (*vaAssociateSubpicture2) ( ++ VADriverContextP_0_29 ctx, ++ VASubpictureID subpicture, ++ VASurfaceID *target_surfaces, ++ int num_surfaces, ++ short src_x, /* upper left offset in subpicture */ ++ short src_y, ++ unsigned short src_width, ++ unsigned short src_height, ++ short dest_x, /* upper left offset in surface */ ++ short dest_y, ++ unsigned short dest_width, ++ unsigned short dest_height, ++ /* ++ * whether to enable chroma-keying or global-alpha ++ * see VA_SUBPICTURE_XXX values ++ */ ++ unsigned int flags ++ ); ++ ++ VAStatus (*vaDeassociateSubpicture) ( ++ VADriverContextP_0_29 ctx, ++ VASubpictureID subpicture, ++ VASurfaceID *target_surfaces, ++ int num_surfaces ++ ); ++ ++ VAStatus (*vaQueryDisplayAttributes) ( ++ VADriverContextP_0_29 ctx, ++ VADisplayAttribute *attr_list, /* out */ ++ int *num_attributes /* out */ ++ ); ++ ++ VAStatus (*vaGetDisplayAttributes) ( ++ VADriverContextP_0_29 ctx, ++ VADisplayAttribute *attr_list, /* in/out */ ++ int num_attributes ++ ); ++ ++ VAStatus (*vaSetDisplayAttributes) ( ++ VADriverContextP_0_29 ctx, ++ VADisplayAttribute *attr_list, ++ int num_attributes ++ ); ++ ++ ++ VAStatus (*vaDbgCopySurfaceToBuffer) ( ++ VADriverContextP_0_29 ctx, ++ VASurfaceID surface, ++ void **buffer, /* out */ ++ unsigned int *stride /* out */ ++ ); ++}; ++ ++/* Driver context (0.29) */ ++struct VADriverContext_0_29 ++{ ++ void *old_pNext; /* preserved for binary compatibility */ ++ ++ void *pDriverData; ++ struct VADriverVTable_0_29 vtable; ++ ++ void *x11_dpy; ++ int x11_screen; ++ ++ int version_major; ++ int version_minor; ++ int max_profiles; ++ int max_entrypoints; ++ int max_attributes; ++ int max_image_formats; ++ int max_subpic_formats; ++ int max_display_attributes; ++ const char *str_vendor; ++ ++ void *handle; /* dlopen handle */ ++}; ++ ++/* Forward declarations for VA API 0.30 */ ++struct v4l2_format; ++struct v4l2_buffer; ++typedef struct VADriverContext_0_30 *VADriverContextP_0_30; ++ ++/* Driver VTable (0.30) */ ++struct VADriverVTable_0_30 ++{ ++ VAStatus (*vaTerminate) ( VADriverContextP_0_30 ctx ); ++ ++ VAStatus (*vaQueryConfigProfiles) ( ++ VADriverContextP_0_30 ctx, ++ VAProfile *profile_list, /* out */ ++ int *num_profiles /* out */ ++ ); ++ ++ VAStatus (*vaQueryConfigEntrypoints) ( ++ VADriverContextP_0_30 ctx, ++ VAProfile profile, ++ VAEntrypoint *entrypoint_list, /* out */ ++ int *num_entrypoints /* out */ ++ ); ++ ++ VAStatus (*vaGetConfigAttributes) ( ++ VADriverContextP_0_30 ctx, ++ VAProfile profile, ++ VAEntrypoint entrypoint, ++ VAConfigAttrib *attrib_list, /* in/out */ ++ int num_attribs ++ ); ++ ++ VAStatus (*vaCreateConfig) ( ++ VADriverContextP_0_30 ctx, ++ VAProfile profile, ++ VAEntrypoint entrypoint, ++ VAConfigAttrib *attrib_list, ++ int num_attribs, ++ VAConfigID *config_id /* out */ ++ ); ++ ++ VAStatus (*vaDestroyConfig) ( ++ VADriverContextP_0_30 ctx, ++ VAConfigID config_id ++ ); ++ ++ VAStatus (*vaQueryConfigAttributes) ( ++ VADriverContextP_0_30 ctx, ++ VAConfigID config_id, ++ VAProfile *profile, /* out */ ++ VAEntrypoint *entrypoint, /* out */ ++ VAConfigAttrib *attrib_list, /* out */ ++ int *num_attribs /* out */ ++ ); ++ ++ VAStatus (*vaCreateSurfaces) ( ++ VADriverContextP_0_30 ctx, ++ int width, ++ int height, ++ int format, ++ int num_surfaces, ++ VASurfaceID *surfaces /* out */ ++ ); ++ ++ VAStatus (*vaDestroySurfaces) ( ++ VADriverContextP_0_30 ctx, ++ VASurfaceID *surface_list, ++ int num_surfaces ++ ); ++ ++ VAStatus (*vaCreateContext) ( ++ VADriverContextP_0_30 ctx, ++ VAConfigID config_id, ++ int picture_width, ++ int picture_height, ++ int flag, ++ VASurfaceID *render_targets, ++ int num_render_targets, ++ VAContextID *context /* out */ ++ ); ++ ++ VAStatus (*vaDestroyContext) ( ++ VADriverContextP_0_30 ctx, ++ VAContextID context ++ ); ++ ++ VAStatus (*vaCreateBuffer) ( ++ VADriverContextP_0_30 ctx, ++ VAContextID context, /* in */ ++ VABufferType type, /* in */ ++ unsigned int size, /* in */ ++ unsigned int num_elements, /* in */ ++ void *data, /* in */ ++ VABufferID *buf_id /* out */ ++ ); ++ ++ VAStatus (*vaBufferSetNumElements) ( ++ VADriverContextP_0_30 ctx, ++ VABufferID buf_id, /* in */ ++ unsigned int num_elements /* in */ ++ ); ++ ++ VAStatus (*vaMapBuffer) ( ++ VADriverContextP_0_30 ctx, ++ VABufferID buf_id, /* in */ ++ void **pbuf /* out */ ++ ); ++ ++ VAStatus (*vaUnmapBuffer) ( ++ VADriverContextP_0_30 ctx, ++ VABufferID buf_id /* in */ ++ ); ++ ++ VAStatus (*vaDestroyBuffer) ( ++ VADriverContextP_0_30 ctx, ++ VABufferID buffer_id ++ ); ++ ++ VAStatus (*vaBeginPicture) ( ++ VADriverContextP_0_30 ctx, ++ VAContextID context, ++ VASurfaceID render_target ++ ); ++ ++ VAStatus (*vaRenderPicture) ( ++ VADriverContextP_0_30 ctx, ++ VAContextID context, ++ VABufferID *buffers, ++ int num_buffers ++ ); ++ ++ VAStatus (*vaEndPicture) ( ++ VADriverContextP_0_30 ctx, ++ VAContextID context ++ ); ++ ++ VAStatus (*vaSyncSurface) ( ++ VADriverContextP_0_30 ctx, ++ VAContextID context, ++ VASurfaceID render_target ++ ); ++ ++ VAStatus (*vaQuerySurfaceStatus) ( ++ VADriverContextP_0_30 ctx, ++ VASurfaceID render_target, ++ VASurfaceStatus *status /* out */ ++ ); ++ ++ VAStatus (*vaPutSurface) ( ++ VADriverContextP_0_30 ctx, ++ VASurfaceID surface, ++ unsigned long draw, /* X Drawable */ ++ short srcx, ++ short srcy, ++ unsigned short srcw, ++ unsigned short srch, ++ short destx, ++ short desty, ++ unsigned short destw, ++ unsigned short desth, ++ VARectangle *cliprects, /* client supplied clip list */ ++ unsigned int number_cliprects, /* number of clip rects in the clip list */ ++ unsigned int flags /* de-interlacing flags */ ++ ); ++ ++ VAStatus (*vaQueryImageFormats) ( ++ VADriverContextP_0_30 ctx, ++ VAImageFormat *format_list, /* out */ ++ int *num_formats /* out */ ++ ); ++ ++ VAStatus (*vaCreateImage) ( ++ VADriverContextP_0_30 ctx, ++ VAImageFormat *format, ++ int width, ++ int height, ++ VAImage *image /* out */ ++ ); ++ ++ VAStatus (*vaDeriveImage) ( ++ VADriverContextP_0_30 ctx, ++ VASurfaceID surface, ++ VAImage *image /* out */ ++ ); ++ ++ VAStatus (*vaDestroyImage) ( ++ VADriverContextP_0_30 ctx, ++ VAImageID image ++ ); ++ ++ VAStatus (*vaSetImagePalette) ( ++ VADriverContextP_0_30 ctx, ++ VAImageID image, ++ /* ++ * pointer to an array holding the palette data. The size of the array is ++ * num_palette_entries * entry_bytes in size. The order of the components ++ * in the palette is described by the component_order in VAImage struct ++ */ ++ unsigned char *palette ++ ); ++ ++ VAStatus (*vaGetImage) ( ++ VADriverContextP_0_30 ctx, ++ VASurfaceID surface, ++ int x, /* coordinates of the upper left source pixel */ ++ int y, ++ unsigned int width, /* width and height of the region */ ++ unsigned int height, ++ VAImageID image ++ ); ++ ++ VAStatus (*vaPutImage) ( ++ VADriverContextP_0_30 ctx, ++ VASurfaceID surface, ++ VAImageID image, ++ int src_x, ++ int src_y, ++ unsigned int width, ++ unsigned int height, ++ int dest_x, ++ int dest_y ++ ); ++ ++ VAStatus (*vaPutImage2) ( ++ VADriverContextP_0_30 ctx, ++ VASurfaceID surface, ++ VAImageID image, ++ int src_x, ++ int src_y, ++ unsigned int src_width, ++ unsigned int src_height, ++ int dest_x, ++ int dest_y, ++ unsigned int dest_width, ++ unsigned int dest_height ++ ); ++ ++ VAStatus (*vaQuerySubpictureFormats) ( ++ VADriverContextP_0_30 ctx, ++ VAImageFormat *format_list, /* out */ ++ unsigned int *flags, /* out */ ++ unsigned int *num_formats /* out */ ++ ); ++ ++ VAStatus (*vaCreateSubpicture) ( ++ VADriverContextP_0_30 ctx, ++ VAImageID image, ++ VASubpictureID *subpicture /* out */ ++ ); ++ ++ VAStatus (*vaDestroySubpicture) ( ++ VADriverContextP_0_30 ctx, ++ VASubpictureID subpicture ++ ); ++ ++ VAStatus (*vaSetSubpictureImage) ( ++ VADriverContextP_0_30 ctx, ++ VASubpictureID subpicture, ++ VAImageID image ++ ); ++ ++ VAStatus (*vaSetSubpictureChromakey) ( ++ VADriverContextP_0_30 ctx, ++ VASubpictureID subpicture, ++ unsigned int chromakey_min, ++ unsigned int chromakey_max, ++ unsigned int chromakey_mask ++ ); ++ ++ VAStatus (*vaSetSubpictureGlobalAlpha) ( ++ VADriverContextP_0_30 ctx, ++ VASubpictureID subpicture, ++ float global_alpha ++ ); ++ ++ VAStatus (*vaAssociateSubpicture) ( ++ VADriverContextP_0_30 ctx, ++ VASubpictureID subpicture, ++ VASurfaceID *target_surfaces, ++ int num_surfaces, ++ short src_x, /* upper left offset in subpicture */ ++ short src_y, ++ short dest_x, /* upper left offset in surface */ ++ short dest_y, ++ unsigned short width, ++ unsigned short height, ++ /* ++ * whether to enable chroma-keying or global-alpha ++ * see VA_SUBPICTURE_XXX values ++ */ ++ unsigned int flags ++ ); ++ ++ VAStatus (*vaAssociateSubpicture2) ( ++ VADriverContextP_0_30 ctx, ++ VASubpictureID subpicture, ++ VASurfaceID *target_surfaces, ++ int num_surfaces, ++ short src_x, /* upper left offset in subpicture */ ++ short src_y, ++ unsigned short src_width, ++ unsigned short src_height, ++ short dest_x, /* upper left offset in surface */ ++ short dest_y, ++ unsigned short dest_width, ++ unsigned short dest_height, ++ /* ++ * whether to enable chroma-keying or global-alpha ++ * see VA_SUBPICTURE_XXX values ++ */ ++ unsigned int flags ++ ); ++ ++ VAStatus (*vaDeassociateSubpicture) ( ++ VADriverContextP_0_30 ctx, ++ VASubpictureID subpicture, ++ VASurfaceID *target_surfaces, ++ int num_surfaces ++ ); ++ ++ VAStatus (*vaQueryDisplayAttributes) ( ++ VADriverContextP_0_30 ctx, ++ VADisplayAttribute *attr_list, /* out */ ++ int *num_attributes /* out */ ++ ); ++ ++ VAStatus (*vaGetDisplayAttributes) ( ++ VADriverContextP_0_30 ctx, ++ VADisplayAttribute *attr_list, /* in/out */ ++ int num_attributes ++ ); ++ ++ VAStatus (*vaSetDisplayAttributes) ( ++ VADriverContextP_0_30 ctx, ++ VADisplayAttribute *attr_list, ++ int num_attributes ++ ); ++ ++ /* device specific */ ++ VAStatus (*vaCreateSurfaceFromCIFrame) ( ++ VADriverContextP_0_30 ctx, ++ unsigned long frame_id, ++ VASurfaceID *surface /* out */ ++ ); ++ ++ ++ VAStatus (*vaCreateSurfaceFromV4L2Buf) ( ++ VADriverContextP_0_30 ctx, ++ int v4l2_fd, /* file descriptor of V4L2 device */ ++ struct v4l2_format *v4l2_fmt, /* format of V4L2 */ ++ struct v4l2_buffer *v4l2_buf, /* V4L2 buffer */ ++ VASurfaceID *surface /* out */ ++ ); ++ ++ VAStatus (*vaCopySurfaceToBuffer) ( ++ VADriverContextP_0_30 ctx, ++ VASurfaceID surface, ++ unsigned int *fourcc, /* out for follow argument */ ++ unsigned int *luma_stride, ++ unsigned int *chroma_u_stride, ++ unsigned int *chroma_v_stride, ++ unsigned int *luma_offset, ++ unsigned int *chroma_u_offset, ++ unsigned int *chroma_v_offset, ++ void **buffer ++ ); ++}; ++ ++/* Driver context (0.30) */ ++struct VADriverContext_0_30 ++{ ++ void *pDriverData; ++ struct VADriverVTable_0_30 vtable; ++ ++ void *x11_dpy; ++ int x11_screen; ++ int version_major; ++ int version_minor; ++ int max_profiles; ++ int max_entrypoints; ++ int max_attributes; ++ int max_image_formats; ++ int max_subpic_formats; ++ int max_display_attributes; ++ const char *str_vendor; ++ ++ void *handle; /* dlopen handle */ ++ ++ void *dri_state; ++}; ++ ++/* Driver VTable and context (0.31) */ ++#define VADriverVTable_0_31 VADriverVTable ++#define VADriverContext_0_31 VADriverContext ++ ++#endif /* VA_COMPAT_H */ +diff --git a/va/va_compat_template.h b/va/va_compat_template.h +new file mode 100644 +index 0000000..18349de +--- /dev/null ++++ b/va/va_compat_template.h +@@ -0,0 +1,539 @@ ++/* ++ * Copyright (C) 2009 Splitted-Desktop Systems. All Rights Reserved. ++ * ++ * 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, sub license, 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 PRECISION INSIGHT AND/OR ITS 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. ++ */ ++ ++#undef CONCAT_ ++#define CONCAT_(x, y) x##y ++#undef CONCAT ++#define CONCAT(x, y) CONCAT_(x, y) ++#undef MKCOMPAT_ ++#define MKCOMPAT_(NAME,MINOR) CONCAT(CONCAT(NAME,_0_),MINOR) ++#undef MKCOMPAT ++#define MKCOMPAT(NAME) MKCOMPAT_(NAME,COMPAT_MINOR) ++#undef STRUCT ++#define STRUCT(BUFFER, CODEC) MKCOMPAT(VA##BUFFER##Buffer##CODEC) ++#undef TRANSLATE_1 ++#define TRANSLATE_1(NAME) CONCAT(va_compat_translate_,NAME) ++#undef TRANSLATE_ ++#define TRANSLATE_(NAME) TRANSLATE_1(MKCOMPAT(NAME)) ++#undef TRANSLATE ++#define TRANSLATE(BUFFER, CODEC) TRANSLATE_1(STRUCT(BUFFER,CODEC)) ++ ++#undef COPY_ARRAY ++#define COPY_ARRAY(DST, SRC, ARRAY) \ ++ memcpy((DST)->ARRAY, (SRC)->ARRAY, sizeof((DST)->ARRAY)) ++ ++#undef COPY_FIELD ++#define COPY_FIELD(DST, SRC, MEMBER) \ ++ (DST)->MEMBER = (SRC)->MEMBER ++ ++#undef COPY_VTABLE__ ++#define COPY_VTABLE__(DST, DST_MEMBER, SRC, SRC_MEMBER) \ ++ (DST##_vtable)->DST_MEMBER = (SRC##_vtable)->SRC_MEMBER ++ ++#undef COPY_VTABLE_ ++#define COPY_VTABLE_(DST, DST_SUFFIX, SRC, MEMBER) \ ++ COPY_VTABLE__(DST, MEMBER##_##DST_SUFFIX, SRC, MEMBER) ++ ++#undef COPY_VTABLE ++#define COPY_VTABLE(DST, SRC, MEMBER) \ ++ COPY_VTABLE__(DST, MEMBER, SRC, MEMBER) ++ ++/* 0.29 */ ++#if COMPAT_MAJOR == 0 && COMPAT_MINOR == 29 ++#undef BFV ++#define BFV(a, b) a ++#undef BFM ++#define BFM(a, b, c) c ++#undef COPY_BIT_FIELD ++#define COPY_BIT_FIELD(DST, SRC, FIELD, MEMBER) \ ++ (DST)->MEMBER = (SRC)->FIELD.bits.MEMBER ++#undef COPY_BIT_FLAG ++#define COPY_BIT_FLAG(DST, SRC, FIELD, MEMBER) \ ++ (DST)->MEMBER = (SRC)->FIELD.flags.MEMBER ++#endif ++ ++/* 0.29 glue to match 0.30 names */ ++#undef M_raw_coding ++#undef M_bitplane_present ++#undef M_luma_flag ++#undef M_luma ++#undef M_chroma_flag ++#undef M_chroma ++ ++#if COMPAT_MAJOR == 0 && COMPAT_MINOR == 29 ++#define M_raw_coding raw_coding_flag ++#define M_bitplane_present bitplane_present_flag ++#define M_luma_flag range_mapping_luma_flag ++#define M_luma range_mapping_luma ++#define M_chroma_flag range_mapping_chroma_flag ++#define M_chroma range_mapping_chroma ++#else ++#define M_raw_coding raw_coding ++#define M_bitplane_present bitplane_present ++#define M_luma_flag luma_flag ++#define M_luma luma ++#define M_chroma_flag chroma_flag ++#define M_chroma chroma ++#endif ++ ++/* 0.30 */ ++#if COMPAT_MAJOR == 0 && COMPAT_MINOR == 30 ++#undef BFV ++#define BFV(a, b) a.b ++#undef BFM ++#define BFM(a, b, c) a.b.c ++#undef COPY_BIT_FIELD ++#define COPY_BIT_FIELD(DST, SRC, FIELD, MEMBER) \ ++ (DST)->FIELD.bits.MEMBER = (SRC)->FIELD.bits.MEMBER ++#undef COPY_BIT_FLAG ++#define COPY_BIT_FLAG(DST, SRC, FIELD, MEMBER) \ ++ (DST)->FIELD.flags.MEMBER = (SRC)->FIELD.flags.MEMBER ++#endif ++ ++#if COMPAT_MAJOR == 0 && COMPAT_MINOR < 31 ++static VAStatus TRANSLATE_(VAPictureH264)( ++ VACompatContextP ctx, ++ void *dest_pic, ++ const void *src_pic ++) ++{ ++ MKCOMPAT(VAPictureH264) *dest = dest_pic; ++ const VAPictureH264 *src = src_pic; ++ ++ COPY_FIELD(dest, src, picture_id); ++ COPY_FIELD(dest, src, flags); ++ COPY_FIELD(dest, src, TopFieldOrderCnt); ++ COPY_FIELD(dest, src, BottomFieldOrderCnt); ++ ++ return VA_STATUS_SUCCESS; ++} ++ ++static VAStatus TRANSLATE(PictureParameter,H264)( ++ VACompatContextP ctx, ++ void *dest_buffer, ++ const void *src_buffer ++) ++{ ++ STRUCT(PictureParameter,H264) *dest = dest_buffer; ++ const VAPictureParameterBufferH264 *src = src_buffer; ++ VAStatus status; ++ int i; ++ ++ status = TRANSLATE_(VAPictureH264)(ctx, ++ &dest->CurrPic, &src->CurrPic); ++ if (status != VA_STATUS_SUCCESS) ++ return status; ++ ++ for (i = 0; i < 16; i++) { ++ status = TRANSLATE_(VAPictureH264)(ctx, ++ &dest->ReferenceFrames[i], ++ &src->ReferenceFrames[i]); ++ if (status != VA_STATUS_SUCCESS) ++ return status; ++ } ++ ++ COPY_FIELD(dest, src, picture_width_in_mbs_minus1); ++ COPY_FIELD(dest, src, picture_height_in_mbs_minus1); ++ COPY_FIELD(dest, src, bit_depth_luma_minus8); ++ COPY_FIELD(dest, src, bit_depth_chroma_minus8); ++ COPY_FIELD(dest, src, num_ref_frames); ++ dest->BFV(seq_fields, value) = 0; /* reset all bits */ ++ COPY_BIT_FIELD(dest, src, seq_fields, chroma_format_idc); ++ COPY_BIT_FIELD(dest, src, seq_fields, residual_colour_transform_flag); ++ COPY_BIT_FIELD(dest, src, seq_fields, frame_mbs_only_flag); ++ COPY_BIT_FIELD(dest, src, seq_fields, mb_adaptive_frame_field_flag); ++ COPY_BIT_FIELD(dest, src, seq_fields, direct_8x8_inference_flag); ++ COPY_BIT_FIELD(dest, src, seq_fields, MinLumaBiPredSize8x8); ++ COPY_FIELD(dest, src, num_slice_groups_minus1); ++ COPY_FIELD(dest, src, slice_group_map_type); ++ COPY_FIELD(dest, src, pic_init_qp_minus26); ++ COPY_FIELD(dest, src, chroma_qp_index_offset); ++ COPY_FIELD(dest, src, second_chroma_qp_index_offset); ++ dest->BFV(pic_fields, value) = 0; /* reset all bits */ ++ COPY_BIT_FIELD(dest, src, pic_fields, entropy_coding_mode_flag); ++ COPY_BIT_FIELD(dest, src, pic_fields, weighted_pred_flag); ++ COPY_BIT_FIELD(dest, src, pic_fields, weighted_bipred_idc); ++ COPY_BIT_FIELD(dest, src, pic_fields, transform_8x8_mode_flag); ++ COPY_BIT_FIELD(dest, src, pic_fields, field_pic_flag); ++ COPY_BIT_FIELD(dest, src, pic_fields, constrained_intra_pred_flag); ++ COPY_FIELD(dest, src, frame_num); ++ ++ return VA_STATUS_SUCCESS; ++} ++ ++static VAStatus TRANSLATE(SliceParameter,H264)( ++ VACompatContextP ctx, ++ void *dest_buffer, ++ const void *src_buffer ++) ++{ ++ STRUCT(SliceParameter,H264) *dest = dest_buffer; ++ const VASliceParameterBufferH264 *src = src_buffer; ++ VAStatus status; ++ int i; ++ ++ COPY_FIELD(dest, src, slice_data_size); ++ COPY_FIELD(dest, src, slice_data_offset); ++ COPY_FIELD(dest, src, slice_data_flag); ++ COPY_FIELD(dest, src, slice_data_bit_offset); ++ COPY_FIELD(dest, src, first_mb_in_slice); ++ COPY_FIELD(dest, src, slice_type); ++ COPY_FIELD(dest, src, direct_spatial_mv_pred_flag); ++ COPY_FIELD(dest, src, num_ref_idx_l0_active_minus1); ++ COPY_FIELD(dest, src, num_ref_idx_l1_active_minus1); ++ COPY_FIELD(dest, src, cabac_init_idc); ++ COPY_FIELD(dest, src, slice_qp_delta); ++ COPY_FIELD(dest, src, disable_deblocking_filter_idc); ++ COPY_FIELD(dest, src, slice_alpha_c0_offset_div2); ++ COPY_FIELD(dest, src, slice_beta_offset_div2); ++ for (i = 0; i < 32; i++) { ++ status = TRANSLATE_(VAPictureH264)(ctx, ++ &dest->RefPicList0[i], ++ &src->RefPicList0[i]); ++ if (status != VA_STATUS_SUCCESS) ++ return status; ++ status = TRANSLATE_(VAPictureH264)(ctx, ++ &dest->RefPicList1[i], ++ &src->RefPicList1[i]); ++ if (status != VA_STATUS_SUCCESS) ++ return status; ++ } ++ COPY_FIELD(dest, src, luma_log2_weight_denom); ++ COPY_FIELD(dest, src, chroma_log2_weight_denom); ++ COPY_FIELD(dest, src, luma_weight_l0_flag); ++ COPY_ARRAY(dest, src, luma_weight_l0); ++ COPY_ARRAY(dest, src, luma_offset_l0); ++ COPY_FIELD(dest, src, chroma_weight_l0_flag); ++ COPY_ARRAY(dest, src, chroma_weight_l0); ++ COPY_ARRAY(dest, src, chroma_offset_l0); ++ COPY_FIELD(dest, src, luma_weight_l1_flag); ++ COPY_ARRAY(dest, src, luma_weight_l1); ++ COPY_ARRAY(dest, src, luma_offset_l1); ++ COPY_FIELD(dest, src, chroma_weight_l1_flag); ++ COPY_ARRAY(dest, src, chroma_weight_l1); ++ COPY_ARRAY(dest, src, chroma_offset_l1); ++ ++ return VA_STATUS_SUCCESS; ++} ++ ++static VAStatus TRANSLATE(PictureParameter,VC1)( ++ VACompatContextP ctx, ++ void *dest_buffer, ++ const void *src_buffer ++) ++{ ++ STRUCT(PictureParameter,VC1) *dest = dest_buffer; ++ const VAPictureParameterBufferVC1 *src = src_buffer; ++ ++ COPY_FIELD(dest, src, forward_reference_picture); ++ COPY_FIELD(dest, src, backward_reference_picture); ++ COPY_FIELD(dest, src, inloop_decoded_picture); ++ dest->BFV(sequence_fields, value) = 0; /* reset all bits */ ++ COPY_BIT_FIELD(dest, src, sequence_fields, interlace); ++ COPY_BIT_FIELD(dest, src, sequence_fields, syncmarker); ++ COPY_BIT_FIELD(dest, src, sequence_fields, overlap); ++ COPY_FIELD(dest, src, coded_width); ++ COPY_FIELD(dest, src, coded_height); ++#if COMPAT_MAJOR == 0 && COMPAT_MINOR == 30 ++ dest->closed_entry = src->entrypoint_fields.bits.closed_entry; ++ dest->broken_link = src->entrypoint_fields.bits.broken_link; ++ dest->loopfilter = src->entrypoint_fields.bits.loopfilter; ++#else ++ COPY_BIT_FIELD(dest, src, entrypoint_fields, closed_entry); ++ COPY_BIT_FIELD(dest, src, entrypoint_fields, broken_link); ++ COPY_BIT_FIELD(dest, src, entrypoint_fields, loopfilter); ++#endif ++ COPY_FIELD(dest, src, conditional_overlap_flag); ++ COPY_FIELD(dest, src, fast_uvmc_flag); ++ dest->BFV(range_mapping_fields, value) = 0; /* reset all bits */ ++ dest->BFM(range_mapping_fields, bits, M_luma_flag) = ++ src->range_mapping_fields.bits.luma_flag; ++ dest->BFM(range_mapping_fields, bits, M_luma) = ++ src->range_mapping_fields.bits.luma; ++ dest->BFM(range_mapping_fields, bits, M_chroma_flag) = ++ src->range_mapping_fields.bits.chroma_flag; ++ dest->BFM(range_mapping_fields, bits, M_chroma) = ++ src->range_mapping_fields.bits.chroma; ++ COPY_FIELD(dest, src, b_picture_fraction); ++ COPY_FIELD(dest, src, cbp_table); ++ COPY_FIELD(dest, src, mb_mode_table); ++ COPY_FIELD(dest, src, range_reduction_frame); ++ COPY_FIELD(dest, src, rounding_control); ++ COPY_FIELD(dest, src, post_processing); ++ COPY_FIELD(dest, src, picture_resolution_index); ++ COPY_FIELD(dest, src, luma_scale); ++ COPY_FIELD(dest, src, luma_shift); ++ dest->BFV(picture_fields, value) = 0; /* reset all bits */ ++ COPY_BIT_FIELD(dest, src, picture_fields, picture_type); ++ COPY_BIT_FIELD(dest, src, picture_fields, frame_coding_mode); ++ COPY_BIT_FIELD(dest, src, picture_fields, top_field_first); ++ COPY_BIT_FIELD(dest, src, picture_fields, is_first_field); ++ COPY_BIT_FIELD(dest, src, picture_fields, intensity_compensation); ++ dest->BFV(M_raw_coding, value) = 0; /* reset all bits */ ++ COPY_BIT_FLAG(dest, src, raw_coding, mv_type_mb); ++ COPY_BIT_FLAG(dest, src, raw_coding, direct_mb); ++ COPY_BIT_FLAG(dest, src, raw_coding, skip_mb); ++ COPY_BIT_FLAG(dest, src, raw_coding, field_tx); ++ COPY_BIT_FLAG(dest, src, raw_coding, forward_mb); ++ COPY_BIT_FLAG(dest, src, raw_coding, ac_pred); ++ COPY_BIT_FLAG(dest, src, raw_coding, overflags); ++ dest->BFV(M_bitplane_present, value) = 0; /* reset all bits */ ++ COPY_BIT_FLAG(dest, src, bitplane_present, bp_mv_type_mb); ++ COPY_BIT_FLAG(dest, src, bitplane_present, bp_direct_mb); ++ COPY_BIT_FLAG(dest, src, bitplane_present, bp_skip_mb); ++ COPY_BIT_FLAG(dest, src, bitplane_present, bp_field_tx); ++ COPY_BIT_FLAG(dest, src, bitplane_present, bp_forward_mb); ++ COPY_BIT_FLAG(dest, src, bitplane_present, bp_ac_pred); ++ COPY_BIT_FLAG(dest, src, bitplane_present, bp_overflags); ++ dest->BFV(reference_fields, value) = 0; /* reset all bits */ ++ COPY_BIT_FIELD(dest, src, reference_fields, reference_distance_flag); ++ COPY_BIT_FIELD(dest, src, reference_fields, reference_distance); ++ COPY_BIT_FIELD(dest, src, reference_fields, num_reference_pictures); ++ COPY_BIT_FIELD(dest, src, reference_fields, reference_field_pic_indicator); ++ dest->BFV(mv_fields, value) = 0; /* reset all bits */ ++ COPY_BIT_FIELD(dest, src, mv_fields, mv_mode); ++ COPY_BIT_FIELD(dest, src, mv_fields, mv_mode2); ++ COPY_BIT_FIELD(dest, src, mv_fields, mv_table); ++ COPY_BIT_FIELD(dest, src, mv_fields, two_mv_block_pattern_table); ++ COPY_BIT_FIELD(dest, src, mv_fields, four_mv_switch); ++ COPY_BIT_FIELD(dest, src, mv_fields, four_mv_block_pattern_table); ++ COPY_BIT_FIELD(dest, src, mv_fields, extended_mv_flag); ++ COPY_BIT_FIELD(dest, src, mv_fields, extended_mv_range); ++ COPY_BIT_FIELD(dest, src, mv_fields, extended_dmv_flag); ++ COPY_BIT_FIELD(dest, src, mv_fields, extended_dmv_range); ++ dest->BFV(pic_quantizer_fields, value) = 0; /* reset all bits */ ++ COPY_BIT_FIELD(dest, src, pic_quantizer_fields, dquant); ++ COPY_BIT_FIELD(dest, src, pic_quantizer_fields, quantizer); ++ COPY_BIT_FIELD(dest, src, pic_quantizer_fields, half_qp); ++ COPY_BIT_FIELD(dest, src, pic_quantizer_fields, pic_quantizer_scale); ++ COPY_BIT_FIELD(dest, src, pic_quantizer_fields, pic_quantizer_type); ++ COPY_BIT_FIELD(dest, src, pic_quantizer_fields, dq_frame); ++ COPY_BIT_FIELD(dest, src, pic_quantizer_fields, dq_profile); ++ COPY_BIT_FIELD(dest, src, pic_quantizer_fields, dq_sb_edge); ++ COPY_BIT_FIELD(dest, src, pic_quantizer_fields, dq_db_edge); ++ COPY_BIT_FIELD(dest, src, pic_quantizer_fields, dq_binary_level); ++ COPY_BIT_FIELD(dest, src, pic_quantizer_fields, alt_pic_quantizer); ++ dest->BFV(transform_fields, value) = 0; /* reset all bits */ ++ COPY_BIT_FIELD(dest, src, transform_fields, variable_sized_transform_flag); ++ COPY_BIT_FIELD(dest, src, transform_fields, mb_level_transform_type_flag); ++ COPY_BIT_FIELD(dest, src, transform_fields, frame_level_transform_type); ++ COPY_BIT_FIELD(dest, src, transform_fields, transform_ac_codingset_idx1); ++ COPY_BIT_FIELD(dest, src, transform_fields, transform_ac_codingset_idx2); ++ COPY_BIT_FIELD(dest, src, transform_fields, intra_transform_dc_table); ++ ++ if (src->picture_fields.bits.picture_type == 4) { ++ dest->BFM(picture_fields, bits, picture_type) = 1; /* P-frame */ ++ ctx->skip_frame = 1; ++ } ++ ++ return VA_STATUS_SUCCESS; ++} ++ ++static VAStatus TRANSLATE(PictureParameter,MPEG2)( ++ VACompatContextP ctx, ++ void *dest_buffer, ++ const void *src_buffer ++) ++{ ++ STRUCT(PictureParameter,MPEG2) *dest = dest_buffer; ++ const VAPictureParameterBufferMPEG2 *src = src_buffer; ++ ++ COPY_FIELD(dest, src, horizontal_size); ++ COPY_FIELD(dest, src, vertical_size); ++ COPY_FIELD(dest, src, forward_reference_picture); ++ COPY_FIELD(dest, src, backward_reference_picture); ++ COPY_FIELD(dest, src, picture_coding_type); ++ COPY_FIELD(dest, src, f_code); ++ dest->BFV(picture_coding_extension, value) = 0; /* reset all bits */ ++ COPY_BIT_FIELD(dest, src, picture_coding_extension, intra_dc_precision); ++ COPY_BIT_FIELD(dest, src, picture_coding_extension, picture_structure); ++ COPY_BIT_FIELD(dest, src, picture_coding_extension, top_field_first); ++ COPY_BIT_FIELD(dest, src, picture_coding_extension, frame_pred_frame_dct); ++ COPY_BIT_FIELD(dest, src, picture_coding_extension, concealment_motion_vectors); ++ COPY_BIT_FIELD(dest, src, picture_coding_extension, q_scale_type); ++ COPY_BIT_FIELD(dest, src, picture_coding_extension, intra_vlc_format); ++ COPY_BIT_FIELD(dest, src, picture_coding_extension, alternate_scan); ++ COPY_BIT_FIELD(dest, src, picture_coding_extension, repeat_first_field); ++ COPY_BIT_FIELD(dest, src, picture_coding_extension, progressive_frame); ++ COPY_BIT_FIELD(dest, src, picture_coding_extension, is_first_field); ++ ++ return VA_STATUS_SUCCESS; ++} ++ ++static VAStatus TRANSLATE(SliceParameter,MPEG2)( ++ VACompatContextP ctx, ++ void *dest_buffer, ++ const void *src_buffer ++) ++{ ++ STRUCT(SliceParameter,MPEG2) *dest = dest_buffer; ++ const VASliceParameterBufferMPEG2 *src = src_buffer; ++ ++ COPY_FIELD(dest, src, slice_data_size); ++ COPY_FIELD(dest, src, slice_data_offset); ++ COPY_FIELD(dest, src, slice_data_flag); ++ COPY_FIELD(dest, src, macroblock_offset); ++ COPY_FIELD(dest, src, slice_vertical_position); ++ COPY_FIELD(dest, src, quantiser_scale_code); ++ COPY_FIELD(dest, src, intra_slice_flag); ++ ++ return VA_STATUS_SUCCESS; ++} ++#endif ++ ++static VAStatus TRANSLATE(PictureParameter,MPEG4)( ++ VACompatContextP ctx, ++ void *dest_buffer, ++ const void *src_buffer ++) ++{ ++ STRUCT(PictureParameter,MPEG4) *dest = dest_buffer; ++ const VAPictureParameterBufferMPEG4 *src = src_buffer; ++ ++ COPY_FIELD(dest, src, vop_width); ++ COPY_FIELD(dest, src, vop_height); ++ COPY_FIELD(dest, src, forward_reference_picture); ++ COPY_FIELD(dest, src, backward_reference_picture); ++ dest->BFV(vol_fields, value) = 0; /* reset all bits */ ++ COPY_BIT_FIELD(dest, src, vol_fields, short_video_header); ++ COPY_BIT_FIELD(dest, src, vol_fields, chroma_format); ++ COPY_BIT_FIELD(dest, src, vol_fields, interlaced); ++ COPY_BIT_FIELD(dest, src, vol_fields, obmc_disable); ++ COPY_BIT_FIELD(dest, src, vol_fields, sprite_enable); ++ COPY_BIT_FIELD(dest, src, vol_fields, sprite_warping_accuracy); ++ COPY_BIT_FIELD(dest, src, vol_fields, quant_type); ++ COPY_BIT_FIELD(dest, src, vol_fields, quarter_sample); ++ COPY_BIT_FIELD(dest, src, vol_fields, data_partitioned); ++ COPY_BIT_FIELD(dest, src, vol_fields, reversible_vlc); ++ COPY_FIELD(dest, src, no_of_sprite_warping_points); ++ COPY_ARRAY(dest, src, sprite_trajectory_du); ++ COPY_ARRAY(dest, src, sprite_trajectory_dv); ++ COPY_FIELD(dest, src, quant_precision); ++ dest->BFV(vop_fields, value) = 0; /* reset all bits */ ++ COPY_BIT_FIELD(dest, src, vop_fields, vop_coding_type); ++ COPY_BIT_FIELD(dest, src, vop_fields, backward_reference_vop_coding_type); ++ COPY_BIT_FIELD(dest, src, vop_fields, vop_rounding_type); ++ COPY_BIT_FIELD(dest, src, vop_fields, intra_dc_vlc_thr); ++ COPY_BIT_FIELD(dest, src, vop_fields, top_field_first); ++ COPY_BIT_FIELD(dest, src, vop_fields, alternate_vertical_scan_flag); ++ COPY_FIELD(dest, src, vop_fcode_forward); ++ COPY_FIELD(dest, src, vop_fcode_backward); ++ COPY_FIELD(dest, src, num_gobs_in_vop); ++ COPY_FIELD(dest, src, num_macroblocks_in_gob); ++ COPY_FIELD(dest, src, TRB); ++ COPY_FIELD(dest, src, TRD); ++ ++ return VA_STATUS_SUCCESS; ++} ++ ++#if COMPAT_MAJOR == 0 && COMPAT_MINOR == 30 ++static VAStatus TRANSLATE_(VAEncSliceParameterBuffer)( ++ VACompatContextP ctx, ++ void *dest_buffer, ++ const void *src_buffer ++) ++{ ++ MKCOMPAT(VAEncSliceParameterBuffer) * const dest = dest_buffer; ++ const VAEncSliceParameterBuffer * const src = src_buffer; ++ ++ COPY_FIELD(dest, src, start_row_number); ++ COPY_FIELD(dest, src, slice_height); ++ dest->BFV(slice_flags, value) = 0; /* reset all bits */ ++ COPY_BIT_FIELD(dest, src, slice_flags, is_intra); ++ COPY_BIT_FIELD(dest, src, slice_flags, disable_deblocking_filter_idc); ++ ++ return VA_STATUS_SUCCESS; ++} ++#endif ++ ++static void TRANSLATE_(VADriverContext)( ++ VACompatContext *dest, ++ const struct MKCOMPAT(VADriverContext) *src ++) ++{ ++ VACompatDriverVTable *dest_vtable = &dest->vtable; ++ const struct MKCOMPAT(VADriverVTable) *src_vtable = &src->vtable; ++ ++ memset(dest_vtable, 0, sizeof(*dest_vtable)); ++ COPY_VTABLE(dest, src, vaTerminate); ++ COPY_VTABLE(dest, src, vaQueryConfigProfiles); ++ COPY_VTABLE(dest, src, vaQueryConfigEntrypoints); ++ COPY_VTABLE(dest, src, vaGetConfigAttributes); ++ COPY_VTABLE(dest, src, vaCreateConfig); ++ COPY_VTABLE(dest, src, vaDestroyConfig); ++ COPY_VTABLE(dest, src, vaQueryConfigAttributes); ++ COPY_VTABLE(dest, src, vaCreateSurfaces); ++ COPY_VTABLE(dest, src, vaDestroySurfaces); ++ COPY_VTABLE(dest, src, vaCreateContext); ++ COPY_VTABLE(dest, src, vaDestroyContext); ++ COPY_VTABLE(dest, src, vaCreateBuffer); ++ COPY_VTABLE(dest, src, vaBufferSetNumElements); ++ COPY_VTABLE(dest, src, vaMapBuffer); ++ COPY_VTABLE(dest, src, vaUnmapBuffer); ++ COPY_VTABLE(dest, src, vaDestroyBuffer); ++ COPY_VTABLE(dest, src, vaBeginPicture); ++ COPY_VTABLE(dest, src, vaRenderPicture); ++ COPY_VTABLE(dest, src, vaEndPicture); ++ COPY_VTABLE(dest, src, vaQuerySurfaceStatus); ++ COPY_VTABLE(dest, src, vaPutSurface); ++ COPY_VTABLE(dest, src, vaQueryImageFormats); ++ COPY_VTABLE(dest, src, vaCreateImage); ++ COPY_VTABLE(dest, src, vaDeriveImage); ++ COPY_VTABLE(dest, src, vaDestroyImage); ++ COPY_VTABLE(dest, src, vaSetImagePalette); ++ COPY_VTABLE(dest, src, vaGetImage); ++ COPY_VTABLE(dest, src, vaQuerySubpictureFormats); ++ COPY_VTABLE(dest, src, vaCreateSubpicture); ++ COPY_VTABLE(dest, src, vaDestroySubpicture); ++ COPY_VTABLE(dest, src, vaSetSubpictureImage); ++ COPY_VTABLE(dest, src, vaSetSubpictureChromakey); ++ COPY_VTABLE(dest, src, vaSetSubpictureGlobalAlpha); ++ COPY_VTABLE(dest, src, vaDeassociateSubpicture); ++ COPY_VTABLE(dest, src, vaQueryDisplayAttributes); ++ COPY_VTABLE(dest, src, vaGetDisplayAttributes); ++ COPY_VTABLE(dest, src, vaSetDisplayAttributes); ++#if COMPAT_MAJOR == 0 && COMPAT_MINOR <= 29 ++ COPY_VTABLE(dest, src, vaSetSubpicturePalette); ++ COPY_VTABLE(dest, src, vaDbgCopySurfaceToBuffer); ++#endif ++#if COMPAT_MAJOR == 0 && COMPAT_MINOR >= 30 ++ COPY_VTABLE(dest, src, vaCreateSurfaceFromCIFrame); ++ COPY_VTABLE(dest, src, vaCreateSurfaceFromV4L2Buf); ++ COPY_VTABLE(dest, src, vaCopySurfaceToBuffer); ++#endif ++#if COMPAT_MAJOR == 0 && COMPAT_MINOR >= 31 ++ COPY_VTABLE(dest, src, vaSyncSurface); ++ COPY_VTABLE(dest, src, vaPutImage); ++ COPY_VTABLE(dest, src, vaAssociateSubpicture); ++#else ++ COPY_VTABLE_(dest, pre31, src, vaSyncSurface); ++ COPY_VTABLE_(dest, pre31, src, vaPutImage); ++ COPY_VTABLE_(dest, pre31, src, vaPutImage2); ++ COPY_VTABLE_(dest, pre31, src, vaAssociateSubpicture); ++ COPY_VTABLE_(dest, pre31, src, vaAssociateSubpicture2); ++#endif ++} ++ ++#undef COMPAT_MAJOR ++#undef COMPAT_MINOR diff --git a/packages/multimedia/libva/patches/392_compat.dso.diff b/packages/multimedia/libva/patches/392_compat.dso.diff new file mode 100644 index 0000000000..ec0805994c --- /dev/null +++ b/packages/multimedia/libva/patches/392_compat.dso.diff @@ -0,0 +1,183 @@ +commit 23dc87f7a37ea245e9797b947df6fbd3c911dd76 +Author: Gwenole Beauchesne +Date: Fri Oct 16 12:39:06 2009 +0000 + + Fix compatibility with older programs linked against libva.so.0. + +diff --git a/va/Makefile.am b/va/Makefile.am +index 1752526..f92ba8a 100644 +--- a/va/Makefile.am ++++ b/va/Makefile.am +@@ -72,3 +72,8 @@ EXTRA_DIST = \ + va_compat_template.h + + va_compat.c: va_compat_template.h ++ ++lib_LTLIBRARIES += libva-compat.la ++libva_compat_la_SOURCES = va_compat_lib.c ++libva_compat_la_LIBADD = libva-x11.la -ldl ++libva_compat_la_DEPENDENCIES = libva-x11.la +diff --git a/va/va_compat_lib.c b/va/va_compat_lib.c +new file mode 100644 +index 0000000..b7e9ea5 +--- /dev/null ++++ b/va/va_compat_lib.c +@@ -0,0 +1,158 @@ ++/* ++ * Copyright (C) 2009 Splitted-Desktop Systems. All Rights Reserved. ++ * ++ * 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, sub license, 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 PRECISION INSIGHT AND/OR ITS 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. ++ */ ++ ++#define _GNU_SOURCE 1 ++#include ++#include ++#include ++ ++typedef void *VADisplay; ++typedef int VAStatus; ++typedef unsigned int VAGenericID; ++typedef VAGenericID VAContextID; ++typedef VAGenericID VASurfaceID; ++typedef VAGenericID VAImageID; ++typedef VAGenericID VASubpictureID; ++ ++#define PREPARE_FUNC(NAME, RET, ARGS) \ ++ static RET (*lib_##NAME) ARGS; \ ++ if (lib_##NAME == NULL) \ ++ lib_##NAME = dlsym(RTLD_NEXT, #NAME); \ ++ assert(lib_##NAME != NULL) ++ ++VAStatus ++vaSyncSurface( ++ VADisplay dpy, ++ VAContextID context, ++ VASurfaceID render_target ++) ++{ ++ PREPARE_FUNC(vaSyncSurface, VAStatus, (VADisplay, VASurfaceID)); ++ ++ return lib_vaSyncSurface(dpy, render_target); ++} ++ ++VAStatus ++vaPutImage( ++ VADisplay dpy, ++ VASurfaceID surface, ++ VAImageID image, ++ int src_x, ++ int src_y, ++ unsigned int width, ++ unsigned int height, ++ int dest_x, ++ int dest_y ++) ++{ ++ PREPARE_FUNC(vaPutImage, VAStatus, (VADisplay, VASurfaceID, VAImageID, ++ int, int, unsigned int, unsigned int, ++ int, int, unsigned int, unsigned int)); ++ ++ return lib_vaPutImage(dpy, surface, image, ++ src_x, src_y, width, height, ++ dest_x, dest_y, width, height); ++} ++ ++VAStatus ++vaPutImage2( ++ VADisplay dpy, ++ VASurfaceID surface, ++ VAImageID image, ++ int src_x, ++ int src_y, ++ unsigned int src_width, ++ unsigned int src_height, ++ int dest_x, ++ int dest_y, ++ unsigned int dest_width, ++ unsigned int dest_height ++) ++{ ++ PREPARE_FUNC(vaPutImage, VAStatus, (VADisplay, VASurfaceID, VAImageID, ++ int, int, unsigned int, unsigned int, ++ int, int, unsigned int, unsigned int)); ++ ++ return lib_vaPutImage(dpy, surface, image, ++ src_x, src_y, src_width, src_height, ++ dest_x, dest_y, dest_width, dest_height); ++} ++ ++VAStatus ++vaAssociateSubpicture( ++ VADisplay dpy, ++ VASubpictureID subpicture, ++ VASurfaceID *target_surfaces, ++ int num_surfaces, ++ short src_x, ++ short src_y, ++ short dest_x, ++ short dest_y, ++ unsigned short width, ++ unsigned short height, ++ unsigned int flags ++) ++{ ++ PREPARE_FUNC(vaAssociateSubpicture, ++ VAStatus, (VADisplay, VASubpictureID, VASurfaceID *, int, ++ short, short, unsigned short, unsigned short, ++ short, short, unsigned short, unsigned short, ++ unsigned int)); ++ ++ return lib_vaAssociateSubpicture(dpy, subpicture, ++ target_surfaces, num_surfaces, ++ src_x, src_y, width, height, ++ dest_x, dest_y, width, height, ++ flags); ++} ++ ++VAStatus ++vaAssociateSubpicture2( ++ VADisplay dpy, ++ VASubpictureID subpicture, ++ VASurfaceID *target_surfaces, ++ int num_surfaces, ++ short src_x, ++ short src_y, ++ unsigned short src_width, ++ unsigned short src_height, ++ short dest_x, ++ short dest_y, ++ unsigned short dest_width, ++ unsigned short dest_height, ++ unsigned int flags ++) ++{ ++ PREPARE_FUNC(vaAssociateSubpicture, ++ VAStatus, (VADisplay, VASubpictureID, VASurfaceID *, int, ++ short, short, unsigned short, unsigned short, ++ short, short, unsigned short, unsigned short, ++ unsigned int)); ++ ++ return lib_vaAssociateSubpicture(dpy, subpicture, ++ target_surfaces, num_surfaces, ++ src_x, src_y, src_width, src_height, ++ dest_x, dest_y, dest_width, dest_height, ++ flags); ++} diff --git a/packages/multimedia/libva/patches/libva-0.31.0-1+sds9.diff b/packages/multimedia/libva/patches/libva-0.31.0-1+sds9.diff deleted file mode 100644 index ae764859ec..0000000000 --- a/packages/multimedia/libva/patches/libva-0.31.0-1+sds9.diff +++ /dev/null @@ -1,74354 +0,0 @@ -diff -Naur libva-0.31.0/aclocal.m4 libva-0.31.0.patch/aclocal.m4 ---- libva-0.31.0/aclocal.m4 2009-06-25 17:34:55.000000000 +0200 -+++ libva-0.31.0.patch/aclocal.m4 2009-12-15 13:51:52.057321685 +0100 -@@ -1,7 +1,7 @@ --# generated automatically by aclocal 1.10.1 -*- Autoconf -*- -+# generated automatically by aclocal 1.11 -*- Autoconf -*- - - # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, --# 2005, 2006, 2007, 2008 Free Software Foundation, Inc. -+# 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc. - # This file is free software; the Free Software Foundation - # gives unlimited permission to copy and/or distribute it, - # with or without modifications, as long as this notice is preserved. -@@ -13,6664 +13,12 @@ - - m4_ifndef([AC_AUTOCONF_VERSION], - [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl --m4_if(AC_AUTOCONF_VERSION, [2.61],, --[m4_warning([this file was generated for autoconf 2.61. -+m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.63],, -+[m4_warning([this file was generated for autoconf 2.63. - You have another version of autoconf. It may work, but is not guaranteed to. - If you have problems, you may need to regenerate the build system entirely. - To do so, use the procedure documented by the package, typically `autoreconf'.])]) - --# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- -- --# serial 52 Debian 1.5.26-1ubuntu1 AC_PROG_LIBTOOL -- -- --# AC_PROVIDE_IFELSE(MACRO-NAME, IF-PROVIDED, IF-NOT-PROVIDED) --# ----------------------------------------------------------- --# If this macro is not defined by Autoconf, define it here. --m4_ifdef([AC_PROVIDE_IFELSE], -- [], -- [m4_define([AC_PROVIDE_IFELSE], -- [m4_ifdef([AC_PROVIDE_$1], -- [$2], [$3])])]) -- -- --# AC_PROG_LIBTOOL --# --------------- --AC_DEFUN([AC_PROG_LIBTOOL], --[AC_REQUIRE([_AC_PROG_LIBTOOL])dnl --dnl If AC_PROG_CXX has already been expanded, run AC_LIBTOOL_CXX --dnl immediately, otherwise, hook it in at the end of AC_PROG_CXX. -- AC_PROVIDE_IFELSE([AC_PROG_CXX], -- [AC_LIBTOOL_CXX], -- [define([AC_PROG_CXX], defn([AC_PROG_CXX])[AC_LIBTOOL_CXX -- ])]) --dnl And a similar setup for Fortran 77 support -- AC_PROVIDE_IFELSE([AC_PROG_F77], -- [AC_LIBTOOL_F77], -- [define([AC_PROG_F77], defn([AC_PROG_F77])[AC_LIBTOOL_F77 --])]) -- --dnl Quote A][M_PROG_GCJ so that aclocal doesn't bring it in needlessly. --dnl If either AC_PROG_GCJ or A][M_PROG_GCJ have already been expanded, run --dnl AC_LIBTOOL_GCJ immediately, otherwise, hook it in at the end of both. -- AC_PROVIDE_IFELSE([AC_PROG_GCJ], -- [AC_LIBTOOL_GCJ], -- [AC_PROVIDE_IFELSE([A][M_PROG_GCJ], -- [AC_LIBTOOL_GCJ], -- [AC_PROVIDE_IFELSE([LT_AC_PROG_GCJ], -- [AC_LIBTOOL_GCJ], -- [ifdef([AC_PROG_GCJ], -- [define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[AC_LIBTOOL_GCJ])]) -- ifdef([A][M_PROG_GCJ], -- [define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[AC_LIBTOOL_GCJ])]) -- ifdef([LT_AC_PROG_GCJ], -- [define([LT_AC_PROG_GCJ], -- defn([LT_AC_PROG_GCJ])[AC_LIBTOOL_GCJ])])])]) --])])# AC_PROG_LIBTOOL -- -- --# _AC_PROG_LIBTOOL --# ---------------- --AC_DEFUN([_AC_PROG_LIBTOOL], --[AC_REQUIRE([AC_LIBTOOL_SETUP])dnl --AC_BEFORE([$0],[AC_LIBTOOL_CXX])dnl --AC_BEFORE([$0],[AC_LIBTOOL_F77])dnl --AC_BEFORE([$0],[AC_LIBTOOL_GCJ])dnl -- --# This can be used to rebuild libtool when needed --LIBTOOL_DEPS="$ac_aux_dir/ltmain.sh" -- --# Always use our own libtool. --LIBTOOL='$(SHELL) $(top_builddir)/libtool' --AC_SUBST(LIBTOOL)dnl -- --# Prevent multiple expansion --define([AC_PROG_LIBTOOL], []) --])# _AC_PROG_LIBTOOL -- -- --# AC_LIBTOOL_SETUP --# ---------------- --AC_DEFUN([AC_LIBTOOL_SETUP], --[AC_PREREQ(2.50)dnl --AC_REQUIRE([AC_ENABLE_SHARED])dnl --AC_REQUIRE([AC_ENABLE_STATIC])dnl --AC_REQUIRE([AC_ENABLE_FAST_INSTALL])dnl --AC_REQUIRE([AC_CANONICAL_HOST])dnl --AC_REQUIRE([AC_CANONICAL_BUILD])dnl --AC_REQUIRE([AC_PROG_CC])dnl --AC_REQUIRE([AC_PROG_LD])dnl --AC_REQUIRE([AC_PROG_LD_RELOAD_FLAG])dnl --AC_REQUIRE([AC_PROG_NM])dnl -- --AC_REQUIRE([AC_PROG_LN_S])dnl --AC_REQUIRE([AC_DEPLIBS_CHECK_METHOD])dnl --# Autoconf 2.13's AC_OBJEXT and AC_EXEEXT macros only works for C compilers! --AC_REQUIRE([AC_OBJEXT])dnl --AC_REQUIRE([AC_EXEEXT])dnl --dnl --AC_LIBTOOL_SYS_MAX_CMD_LEN --AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE --AC_LIBTOOL_OBJDIR -- --AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl --_LT_AC_PROG_ECHO_BACKSLASH -- --case $host_os in --aix3*) -- # AIX sometimes has problems with the GCC collect2 program. For some -- # reason, if we set the COLLECT_NAMES environment variable, the problems -- # vanish in a puff of smoke. -- if test "X${COLLECT_NAMES+set}" != Xset; then -- COLLECT_NAMES= -- export COLLECT_NAMES -- fi -- ;; --esac -- --# Sed substitution that helps us do robust quoting. It backslashifies --# metacharacters that are still active within double-quoted strings. --Xsed='sed -e 1s/^X//' --[sed_quote_subst='s/\([\\"\\`$\\\\]\)/\\\1/g'] -- --# Same as above, but do not quote variable references. --[double_quote_subst='s/\([\\"\\`\\\\]\)/\\\1/g'] -- --# Sed substitution to delay expansion of an escaped shell variable in a --# double_quote_subst'ed string. --delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' -- --# Sed substitution to avoid accidental globbing in evaled expressions --no_glob_subst='s/\*/\\\*/g' -- --# Constants: --rm="rm -f" -- --# Global variables: --default_ofile=libtool --can_build_shared=yes -- --# All known linkers require a `.a' archive for static linking (except MSVC, --# which needs '.lib'). --libext=a --ltmain="$ac_aux_dir/ltmain.sh" --ofile="$default_ofile" --with_gnu_ld="$lt_cv_prog_gnu_ld" -- --AC_CHECK_TOOL(AR, ar, false) --AC_CHECK_TOOL(RANLIB, ranlib, :) --AC_CHECK_TOOL(STRIP, strip, :) -- --old_CC="$CC" --old_CFLAGS="$CFLAGS" -- --# Set sane defaults for various variables --test -z "$AR" && AR=ar --test -z "$AR_FLAGS" && AR_FLAGS=cru --test -z "$AS" && AS=as --test -z "$CC" && CC=cc --test -z "$LTCC" && LTCC=$CC --test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS --test -z "$DLLTOOL" && DLLTOOL=dlltool --test -z "$LD" && LD=ld --test -z "$LN_S" && LN_S="ln -s" --test -z "$MAGIC_CMD" && MAGIC_CMD=file --test -z "$NM" && NM=nm --test -z "$SED" && SED=sed --test -z "$OBJDUMP" && OBJDUMP=objdump --test -z "$RANLIB" && RANLIB=: --test -z "$STRIP" && STRIP=: --test -z "$ac_objext" && ac_objext=o -- --# Determine commands to create old-style static archives. --old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' --old_postinstall_cmds='chmod 644 $oldlib' --old_postuninstall_cmds= -- --if test -n "$RANLIB"; then -- case $host_os in -- openbsd*) -- old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib" -- ;; -- *) -- old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib" -- ;; -- esac -- old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" --fi -- --_LT_CC_BASENAME([$compiler]) -- --# Only perform the check for file, if the check method requires it --case $deplibs_check_method in --file_magic*) -- if test "$file_magic_cmd" = '$MAGIC_CMD'; then -- AC_PATH_MAGIC -- fi -- ;; --esac -- --_LT_REQUIRED_DARWIN_CHECKS -- --AC_PROVIDE_IFELSE([AC_LIBTOOL_DLOPEN], enable_dlopen=yes, enable_dlopen=no) --AC_PROVIDE_IFELSE([AC_LIBTOOL_WIN32_DLL], --enable_win32_dll=yes, enable_win32_dll=no) -- --AC_ARG_ENABLE([libtool-lock], -- [AC_HELP_STRING([--disable-libtool-lock], -- [avoid locking (might break parallel builds)])]) --test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes -- --AC_ARG_WITH([pic], -- [AC_HELP_STRING([--with-pic], -- [try to use only PIC/non-PIC objects @<:@default=use both@:>@])], -- [pic_mode="$withval"], -- [pic_mode=default]) --test -z "$pic_mode" && pic_mode=default -- --# Use C for the default configuration in the libtool script --tagname= --AC_LIBTOOL_LANG_C_CONFIG --_LT_AC_TAGCONFIG --])# AC_LIBTOOL_SETUP -- -- --# _LT_AC_SYS_COMPILER --# ------------------- --AC_DEFUN([_LT_AC_SYS_COMPILER], --[AC_REQUIRE([AC_PROG_CC])dnl -- --# If no C compiler was specified, use CC. --LTCC=${LTCC-"$CC"} -- --# If no C compiler flags were specified, use CFLAGS. --LTCFLAGS=${LTCFLAGS-"$CFLAGS"} -- --# Allow CC to be a program name with arguments. --compiler=$CC --])# _LT_AC_SYS_COMPILER -- -- --# _LT_CC_BASENAME(CC) --# ------------------- --# Calculate cc_basename. Skip known compiler wrappers and cross-prefix. --AC_DEFUN([_LT_CC_BASENAME], --[for cc_temp in $1""; do -- case $cc_temp in -- compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;; -- distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;; -- \-*) ;; -- *) break;; -- esac --done --cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` --]) -- -- --# _LT_COMPILER_BOILERPLATE --# ------------------------ --# Check for compiler boilerplate output or warnings with --# the simple compiler test code. --AC_DEFUN([_LT_COMPILER_BOILERPLATE], --[AC_REQUIRE([LT_AC_PROG_SED])dnl --ac_outfile=conftest.$ac_objext --echo "$lt_simple_compile_test_code" >conftest.$ac_ext --eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err --_lt_compiler_boilerplate=`cat conftest.err` --$rm conftest* --])# _LT_COMPILER_BOILERPLATE -- -- --# _LT_LINKER_BOILERPLATE --# ---------------------- --# Check for linker boilerplate output or warnings with --# the simple link test code. --AC_DEFUN([_LT_LINKER_BOILERPLATE], --[AC_REQUIRE([LT_AC_PROG_SED])dnl --ac_outfile=conftest.$ac_objext --echo "$lt_simple_link_test_code" >conftest.$ac_ext --eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err --_lt_linker_boilerplate=`cat conftest.err` --$rm -r conftest* --])# _LT_LINKER_BOILERPLATE -- --# _LT_REQUIRED_DARWIN_CHECKS --# -------------------------- --# Check for some things on darwin --AC_DEFUN([_LT_REQUIRED_DARWIN_CHECKS],[ -- case $host_os in -- rhapsody* | darwin*) -- AC_CHECK_TOOL([DSYMUTIL], [dsymutil], [:]) -- AC_CHECK_TOOL([NMEDIT], [nmedit], [:]) -- -- AC_CACHE_CHECK([for -single_module linker flag],[lt_cv_apple_cc_single_mod], -- [lt_cv_apple_cc_single_mod=no -- if test -z "${LT_MULTI_MODULE}"; then -- # By default we will add the -single_module flag. You can override -- # by either setting the environment variable LT_MULTI_MODULE -- # non-empty at configure time, or by adding -multi_module to the -- # link flags. -- echo "int foo(void){return 1;}" > conftest.c -- $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -- -dynamiclib ${wl}-single_module conftest.c -- if test -f libconftest.dylib; then -- lt_cv_apple_cc_single_mod=yes -- rm -rf libconftest.dylib* -- fi -- rm conftest.c -- fi]) -- AC_CACHE_CHECK([for -exported_symbols_list linker flag], -- [lt_cv_ld_exported_symbols_list], -- [lt_cv_ld_exported_symbols_list=no -- save_LDFLAGS=$LDFLAGS -- echo "_main" > conftest.sym -- LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" -- AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], -- [lt_cv_ld_exported_symbols_list=yes], -- [lt_cv_ld_exported_symbols_list=no]) -- LDFLAGS="$save_LDFLAGS" -- ]) -- case $host_os in -- rhapsody* | darwin1.[[0123]]) -- _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;; -- darwin1.*) -- _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; -- darwin*) -- # if running on 10.5 or later, the deployment target defaults -- # to the OS version, if on x86, and 10.4, the deployment -- # target defaults to 10.4. Don't you love it? -- case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in -- 10.0,*86*-darwin8*|10.0,*-darwin[[91]]*) -- _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; -- 10.[[012]]*) -- _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; -- 10.*) -- _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; -- esac -- ;; -- esac -- if test "$lt_cv_apple_cc_single_mod" = "yes"; then -- _lt_dar_single_mod='$single_module' -- fi -- if test "$lt_cv_ld_exported_symbols_list" = "yes"; then -- _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym' -- else -- _lt_dar_export_syms="~$NMEDIT -s \$output_objdir/\${libname}-symbols.expsym \${lib}" -- fi -- if test "$DSYMUTIL" != ":"; then -- _lt_dsymutil="~$DSYMUTIL \$lib || :" -- else -- _lt_dsymutil= -- fi -- ;; -- esac --]) -- --# _LT_AC_SYS_LIBPATH_AIX --# ---------------------- --# Links a minimal program and checks the executable --# for the system default hardcoded library path. In most cases, --# this is /usr/lib:/lib, but when the MPI compilers are used --# the location of the communication and MPI libs are included too. --# If we don't find anything, use the default library path according --# to the aix ld manual. --AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX], --[AC_REQUIRE([LT_AC_PROG_SED])dnl --AC_LINK_IFELSE(AC_LANG_PROGRAM,[ --lt_aix_libpath_sed=' -- /Import File Strings/,/^$/ { -- /^0/ { -- s/^0 *\(.*\)$/\1/ -- p -- } -- }' --aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` --# Check for a 64-bit object if we didn't find anything. --if test -z "$aix_libpath"; then -- aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` --fi],[]) --if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi --])# _LT_AC_SYS_LIBPATH_AIX -- -- --# _LT_AC_SHELL_INIT(ARG) --# ---------------------- --AC_DEFUN([_LT_AC_SHELL_INIT], --[ifdef([AC_DIVERSION_NOTICE], -- [AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)], -- [AC_DIVERT_PUSH(NOTICE)]) --$1 --AC_DIVERT_POP --])# _LT_AC_SHELL_INIT -- -- --# _LT_AC_PROG_ECHO_BACKSLASH --# -------------------------- --# Add some code to the start of the generated configure script which --# will find an echo command which doesn't interpret backslashes. --AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH], --[_LT_AC_SHELL_INIT([ --# Check that we are running under the correct shell. --SHELL=${CONFIG_SHELL-/bin/sh} -- --case X$ECHO in --X*--fallback-echo) -- # Remove one level of quotation (which was required for Make). -- ECHO=`echo "$ECHO" | sed 's,\\\\\[$]\\[$]0,'[$]0','` -- ;; --esac -- --echo=${ECHO-echo} --if test "X[$]1" = X--no-reexec; then -- # Discard the --no-reexec flag, and continue. -- shift --elif test "X[$]1" = X--fallback-echo; then -- # Avoid inline document here, it may be left over -- : --elif test "X`($echo '\t') 2>/dev/null`" = 'X\t' ; then -- # Yippee, $echo works! -- : --else -- # Restart under the correct shell. -- exec $SHELL "[$]0" --no-reexec ${1+"[$]@"} --fi -- --if test "X[$]1" = X--fallback-echo; then -- # used as fallback echo -- shift -- cat </dev/null 2>&1 && unset CDPATH -- --if test -z "$ECHO"; then --if test "X${echo_test_string+set}" != Xset; then --# find a string as large as possible, as long as the shell can cope with it -- for cmd in 'sed 50q "[$]0"' 'sed 20q "[$]0"' 'sed 10q "[$]0"' 'sed 2q "[$]0"' 'echo test'; do -- # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ... -- if (echo_test_string=`eval $cmd`) 2>/dev/null && -- echo_test_string=`eval $cmd` && -- (test "X$echo_test_string" = "X$echo_test_string") 2>/dev/null -- then -- break -- fi -- done --fi -- --if test "X`($echo '\t') 2>/dev/null`" = 'X\t' && -- echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` && -- test "X$echo_testing_string" = "X$echo_test_string"; then -- : --else -- # The Solaris, AIX, and Digital Unix default echo programs unquote -- # backslashes. This makes it impossible to quote backslashes using -- # echo "$something" | sed 's/\\/\\\\/g' -- # -- # So, first we look for a working echo in the user's PATH. -- -- lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR -- for dir in $PATH /usr/ucb; do -- IFS="$lt_save_ifs" -- if (test -f $dir/echo || test -f $dir/echo$ac_exeext) && -- test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' && -- echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` && -- test "X$echo_testing_string" = "X$echo_test_string"; then -- echo="$dir/echo" -- break -- fi -- done -- IFS="$lt_save_ifs" -- -- if test "X$echo" = Xecho; then -- # We didn't find a better echo, so look for alternatives. -- if test "X`(print -r '\t') 2>/dev/null`" = 'X\t' && -- echo_testing_string=`(print -r "$echo_test_string") 2>/dev/null` && -- test "X$echo_testing_string" = "X$echo_test_string"; then -- # This shell has a builtin print -r that does the trick. -- echo='print -r' -- elif (test -f /bin/ksh || test -f /bin/ksh$ac_exeext) && -- test "X$CONFIG_SHELL" != X/bin/ksh; then -- # If we have ksh, try running configure again with it. -- ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh} -- export ORIGINAL_CONFIG_SHELL -- CONFIG_SHELL=/bin/ksh -- export CONFIG_SHELL -- exec $CONFIG_SHELL "[$]0" --no-reexec ${1+"[$]@"} -- else -- # Try using printf. -- echo='printf %s\n' -- if test "X`($echo '\t') 2>/dev/null`" = 'X\t' && -- echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` && -- test "X$echo_testing_string" = "X$echo_test_string"; then -- # Cool, printf works -- : -- elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` && -- test "X$echo_testing_string" = 'X\t' && -- echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` && -- test "X$echo_testing_string" = "X$echo_test_string"; then -- CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL -- export CONFIG_SHELL -- SHELL="$CONFIG_SHELL" -- export SHELL -- echo="$CONFIG_SHELL [$]0 --fallback-echo" -- elif echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` && -- test "X$echo_testing_string" = 'X\t' && -- echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` && -- test "X$echo_testing_string" = "X$echo_test_string"; then -- echo="$CONFIG_SHELL [$]0 --fallback-echo" -- else -- # maybe with a smaller string... -- prev=: -- -- for cmd in 'echo test' 'sed 2q "[$]0"' 'sed 10q "[$]0"' 'sed 20q "[$]0"' 'sed 50q "[$]0"'; do -- if (test "X$echo_test_string" = "X`eval $cmd`") 2>/dev/null -- then -- break -- fi -- prev="$cmd" -- done -- -- if test "$prev" != 'sed 50q "[$]0"'; then -- echo_test_string=`eval $prev` -- export echo_test_string -- exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "[$]0" ${1+"[$]@"} -- else -- # Oops. We lost completely, so just stick with echo. -- echo=echo -- fi -- fi -- fi -- fi --fi --fi -- --# Copy echo and quote the copy suitably for passing to libtool from --# the Makefile, instead of quoting the original, which is used later. --ECHO=$echo --if test "X$ECHO" = "X$CONFIG_SHELL [$]0 --fallback-echo"; then -- ECHO="$CONFIG_SHELL \\\$\[$]0 --fallback-echo" --fi -- --AC_SUBST(ECHO) --])])# _LT_AC_PROG_ECHO_BACKSLASH -- -- --# _LT_AC_LOCK --# ----------- --AC_DEFUN([_LT_AC_LOCK], --[AC_ARG_ENABLE([libtool-lock], -- [AC_HELP_STRING([--disable-libtool-lock], -- [avoid locking (might break parallel builds)])]) --test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes -- --# Some flags need to be propagated to the compiler or linker for good --# libtool support. --case $host in --ia64-*-hpux*) -- # Find out which ABI we are using. -- echo 'int i;' > conftest.$ac_ext -- if AC_TRY_EVAL(ac_compile); then -- case `/usr/bin/file conftest.$ac_objext` in -- *ELF-32*) -- HPUX_IA64_MODE="32" -- ;; -- *ELF-64*) -- HPUX_IA64_MODE="64" -- ;; -- esac -- fi -- rm -rf conftest* -- ;; --*-*-irix6*) -- # Find out which ABI we are using. -- echo '[#]line __oline__ "configure"' > conftest.$ac_ext -- if AC_TRY_EVAL(ac_compile); then -- if test "$lt_cv_prog_gnu_ld" = yes; then -- case `/usr/bin/file conftest.$ac_objext` in -- *32-bit*) -- LD="${LD-ld} -melf32bsmip" -- ;; -- *N32*) -- LD="${LD-ld} -melf32bmipn32" -- ;; -- *64-bit*) -- LD="${LD-ld} -melf64bmip" -- ;; -- esac -- else -- case `/usr/bin/file conftest.$ac_objext` in -- *32-bit*) -- LD="${LD-ld} -32" -- ;; -- *N32*) -- LD="${LD-ld} -n32" -- ;; -- *64-bit*) -- LD="${LD-ld} -64" -- ;; -- esac -- fi -- fi -- rm -rf conftest* -- ;; -- --x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \ --s390*-*linux*|sparc*-*linux*) -- # Find out which ABI we are using. -- echo 'int i;' > conftest.$ac_ext -- if AC_TRY_EVAL(ac_compile); then -- case `/usr/bin/file conftest.o` in -- *32-bit*) -- case $host in -- x86_64-*kfreebsd*-gnu) -- LD="${LD-ld} -m elf_i386_fbsd" -- ;; -- x86_64-*linux*) -- LD="${LD-ld} -m elf_i386" -- ;; -- ppc64-*linux*|powerpc64-*linux*) -- LD="${LD-ld} -m elf32ppclinux" -- ;; -- s390x-*linux*) -- LD="${LD-ld} -m elf_s390" -- ;; -- sparc64-*linux*) -- LD="${LD-ld} -m elf32_sparc" -- ;; -- esac -- ;; -- *64-bit*) -- case $host in -- x86_64-*kfreebsd*-gnu) -- LD="${LD-ld} -m elf_x86_64_fbsd" -- ;; -- x86_64-*linux*) -- LD="${LD-ld} -m elf_x86_64" -- ;; -- ppc*-*linux*|powerpc*-*linux*) -- LD="${LD-ld} -m elf64ppc" -- ;; -- s390*-*linux*) -- LD="${LD-ld} -m elf64_s390" -- ;; -- sparc*-*linux*) -- LD="${LD-ld} -m elf64_sparc" -- ;; -- esac -- ;; -- esac -- fi -- rm -rf conftest* -- ;; -- --*-*-sco3.2v5*) -- # On SCO OpenServer 5, we need -belf to get full-featured binaries. -- SAVE_CFLAGS="$CFLAGS" -- CFLAGS="$CFLAGS -belf" -- AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf, -- [AC_LANG_PUSH(C) -- AC_TRY_LINK([],[],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no]) -- AC_LANG_POP]) -- 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" -- fi -- ;; --sparc*-*solaris*) -- # Find out which ABI we are using. -- echo 'int i;' > conftest.$ac_ext -- if AC_TRY_EVAL(ac_compile); then -- case `/usr/bin/file conftest.o` in -- *64-bit*) -- case $lt_cv_prog_gnu_ld in -- yes*) LD="${LD-ld} -m elf64_sparc" ;; -- *) -- if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then -- LD="${LD-ld} -64" -- fi -- ;; -- esac -- ;; -- esac -- fi -- rm -rf conftest* -- ;; -- --AC_PROVIDE_IFELSE([AC_LIBTOOL_WIN32_DLL], --[*-*-cygwin* | *-*-mingw* | *-*-pw32*) -- AC_CHECK_TOOL(DLLTOOL, dlltool, false) -- AC_CHECK_TOOL(AS, as, false) -- AC_CHECK_TOOL(OBJDUMP, objdump, false) -- ;; -- ]) --esac -- --need_locks="$enable_libtool_lock" -- --])# _LT_AC_LOCK -- -- --# AC_LIBTOOL_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, --# [OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE]) --# ---------------------------------------------------------------- --# Check whether the given compiler option works --AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], --[AC_REQUIRE([LT_AC_PROG_SED]) --AC_CACHE_CHECK([$1], [$2], -- [$2=no -- ifelse([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4]) -- echo "$lt_simple_compile_test_code" > conftest.$ac_ext -- lt_compiler_flag="$3" -- # Insert the option either (1) after the last *FLAGS variable, or -- # (2) before a word containing "conftest.", or (3) at the end. -- # Note that $ac_compile itself does not contain backslashes and begins -- # with a dollar sign (not a hyphen), so the echo should work correctly. -- # The option is referenced via a variable to avoid confusing sed. -- lt_compile=`echo "$ac_compile" | $SED \ -- -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -- -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ -- -e 's:$: $lt_compiler_flag:'` -- (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD) -- (eval "$lt_compile" 2>conftest.err) -- ac_status=$? -- cat conftest.err >&AS_MESSAGE_LOG_FD -- echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD -- if (exit $ac_status) && test -s "$ac_outfile"; then -- # The compiler can only warn and ignore the option if not recognized -- # So say no if there are warnings other than the usual output. -- $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp -- $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 -- if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then -- $2=yes -- fi -- fi -- $rm conftest* --]) -- --if test x"[$]$2" = xyes; then -- ifelse([$5], , :, [$5]) --else -- ifelse([$6], , :, [$6]) --fi --])# AC_LIBTOOL_COMPILER_OPTION -- -- --# AC_LIBTOOL_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, --# [ACTION-SUCCESS], [ACTION-FAILURE]) --# ------------------------------------------------------------ --# Check whether the given compiler option works --AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], --[AC_REQUIRE([LT_AC_PROG_SED])dnl --AC_CACHE_CHECK([$1], [$2], -- [$2=no -- save_LDFLAGS="$LDFLAGS" -- LDFLAGS="$LDFLAGS $3" -- echo "$lt_simple_link_test_code" > conftest.$ac_ext -- if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then -- # The linker can only warn and ignore the option if not recognized -- # So say no if there are warnings -- if test -s conftest.err; then -- # Append any errors to the config.log. -- cat conftest.err 1>&AS_MESSAGE_LOG_FD -- $echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp -- $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 -- if diff conftest.exp conftest.er2 >/dev/null; then -- $2=yes -- fi -- else -- $2=yes -- fi -- fi -- $rm -r conftest* -- LDFLAGS="$save_LDFLAGS" --]) -- --if test x"[$]$2" = xyes; then -- ifelse([$4], , :, [$4]) --else -- ifelse([$5], , :, [$5]) --fi --])# AC_LIBTOOL_LINKER_OPTION -- -- --# AC_LIBTOOL_SYS_MAX_CMD_LEN --# -------------------------- --AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], --[# find the maximum length of command line arguments --AC_MSG_CHECKING([the maximum length of command line arguments]) --AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl -- i=0 -- teststring="ABCD" -- -- case $build_os in -- msdosdjgpp*) -- # On DJGPP, this test can blow up pretty badly due to problems in libc -- # (any single argument exceeding 2000 bytes causes a buffer overrun -- # during glob expansion). Even if it were fixed, the result of this -- # check would be larger than it should be. -- lt_cv_sys_max_cmd_len=12288; # 12K is about right -- ;; -- -- gnu*) -- # Under GNU Hurd, this test is not required because there is -- # no limit to the length of command line arguments. -- # Libtool will interpret -1 as no limit whatsoever -- lt_cv_sys_max_cmd_len=-1; -- ;; -- -- cygwin* | mingw*) -- # On Win9x/ME, this test blows up -- it succeeds, but takes -- # about 5 minutes as the teststring grows exponentially. -- # Worse, since 9x/ME are not pre-emptively multitasking, -- # you end up with a "frozen" computer, even though with patience -- # the test eventually succeeds (with a max line length of 256k). -- # Instead, let's just punt: use the minimum linelength reported by -- # all of the supported platforms: 8192 (on NT/2K/XP). -- lt_cv_sys_max_cmd_len=8192; -- ;; -- -- amigaos*) -- # On AmigaOS with pdksh, this test takes hours, literally. -- # So we just punt and use a minimum line length of 8192. -- lt_cv_sys_max_cmd_len=8192; -- ;; -- -- netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) -- # This has been around since 386BSD, at least. Likely further. -- if test -x /sbin/sysctl; then -- lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` -- elif test -x /usr/sbin/sysctl; then -- lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` -- else -- lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs -- fi -- # And add a safety zone -- lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` -- lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` -- ;; -- -- interix*) -- # We know the value 262144 and hardcode it with a safety zone (like BSD) -- lt_cv_sys_max_cmd_len=196608 -- ;; -- -- osf*) -- # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure -- # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not -- # nice to cause kernel panics so lets avoid the loop below. -- # First set a reasonable default. -- lt_cv_sys_max_cmd_len=16384 -- # -- if test -x /sbin/sysconfig; then -- case `/sbin/sysconfig -q proc exec_disable_arg_limit` in -- *1*) lt_cv_sys_max_cmd_len=-1 ;; -- esac -- fi -- ;; -- sco3.2v5*) -- lt_cv_sys_max_cmd_len=102400 -- ;; -- sysv5* | sco5v6* | sysv4.2uw2*) -- kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` -- if test -n "$kargmax"; then -- lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[[ ]]//'` -- else -- lt_cv_sys_max_cmd_len=32768 -- fi -- ;; -- *) -- lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` -- if test -n "$lt_cv_sys_max_cmd_len"; then -- lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` -- lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` -- else -- SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} -- while (test "X"`$SHELL [$]0 --fallback-echo "X$teststring" 2>/dev/null` \ -- = "XX$teststring") >/dev/null 2>&1 && -- new_result=`expr "X$teststring" : ".*" 2>&1` && -- lt_cv_sys_max_cmd_len=$new_result && -- test $i != 17 # 1/2 MB should be enough -- do -- i=`expr $i + 1` -- teststring=$teststring$teststring -- done -- teststring= -- # Add a significant safety factor because C++ compilers can tack on massive -- # amounts of additional arguments before passing them to the linker. -- # It appears as though 1/2 is a usable value. -- lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` -- fi -- ;; -- esac --]) --if test -n $lt_cv_sys_max_cmd_len ; then -- AC_MSG_RESULT($lt_cv_sys_max_cmd_len) --else -- AC_MSG_RESULT(none) --fi --])# AC_LIBTOOL_SYS_MAX_CMD_LEN -- -- --# _LT_AC_CHECK_DLFCN --# ------------------ --AC_DEFUN([_LT_AC_CHECK_DLFCN], --[AC_CHECK_HEADERS(dlfcn.h)dnl --])# _LT_AC_CHECK_DLFCN -- -- --# _LT_AC_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE, --# ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING) --# --------------------------------------------------------------------- --AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF], --[AC_REQUIRE([_LT_AC_CHECK_DLFCN])dnl --if test "$cross_compiling" = yes; then : -- [$4] --else -- lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 -- lt_status=$lt_dlunknown -- cat > conftest.$ac_ext < --#endif -- --#include -- --#ifdef RTLD_GLOBAL --# define LT_DLGLOBAL RTLD_GLOBAL --#else --# ifdef DL_GLOBAL --# define LT_DLGLOBAL DL_GLOBAL --# else --# define LT_DLGLOBAL 0 --# endif --#endif -- --/* We may have to define LT_DLLAZY_OR_NOW in the command line if we -- find out it does not work in some platform. */ --#ifndef LT_DLLAZY_OR_NOW --# ifdef RTLD_LAZY --# define LT_DLLAZY_OR_NOW RTLD_LAZY --# else --# ifdef DL_LAZY --# define LT_DLLAZY_OR_NOW DL_LAZY --# else --# ifdef RTLD_NOW --# define LT_DLLAZY_OR_NOW RTLD_NOW --# else --# ifdef DL_NOW --# define LT_DLLAZY_OR_NOW DL_NOW --# else --# define LT_DLLAZY_OR_NOW 0 --# endif --# endif --# endif --# endif --#endif -- --#ifdef __cplusplus --extern "C" void exit (int); --#endif -- --void fnord() { int i=42;} --int main () --{ -- void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); -- int status = $lt_dlunknown; -- -- if (self) -- { -- if (dlsym (self,"fnord")) status = $lt_dlno_uscore; -- else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; -- /* dlclose (self); */ -- } -- else -- puts (dlerror ()); -- -- exit (status); --}] --EOF -- if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then -- (./conftest; exit; ) >&AS_MESSAGE_LOG_FD 2>/dev/null -- lt_status=$? -- case x$lt_status in -- x$lt_dlno_uscore) $1 ;; -- x$lt_dlneed_uscore) $2 ;; -- x$lt_dlunknown|x*) $3 ;; -- esac -- else : -- # compilation failed -- $3 -- fi --fi --rm -fr conftest* --])# _LT_AC_TRY_DLOPEN_SELF -- -- --# AC_LIBTOOL_DLOPEN_SELF --# ---------------------- --AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], --[AC_REQUIRE([_LT_AC_CHECK_DLFCN])dnl --if test "x$enable_dlopen" != xyes; then -- enable_dlopen=unknown -- enable_dlopen_self=unknown -- enable_dlopen_self_static=unknown --else -- lt_cv_dlopen=no -- lt_cv_dlopen_libs= -- -- case $host_os in -- beos*) -- lt_cv_dlopen="load_add_on" -- lt_cv_dlopen_libs= -- lt_cv_dlopen_self=yes -- ;; -- -- mingw* | pw32*) -- lt_cv_dlopen="LoadLibrary" -- lt_cv_dlopen_libs= -- ;; -- -- cygwin*) -- lt_cv_dlopen="dlopen" -- lt_cv_dlopen_libs= -- ;; -- -- darwin*) -- # if libdl is installed we need to link against it -- AC_CHECK_LIB([dl], [dlopen], -- [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],[ -- lt_cv_dlopen="dyld" -- lt_cv_dlopen_libs= -- lt_cv_dlopen_self=yes -- ]) -- ;; -- -- *) -- AC_CHECK_FUNC([shl_load], -- [lt_cv_dlopen="shl_load"], -- [AC_CHECK_LIB([dld], [shl_load], -- [lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"], -- [AC_CHECK_FUNC([dlopen], -- [lt_cv_dlopen="dlopen"], -- [AC_CHECK_LIB([dl], [dlopen], -- [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"], -- [AC_CHECK_LIB([svld], [dlopen], -- [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"], -- [AC_CHECK_LIB([dld], [dld_link], -- [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"]) -- ]) -- ]) -- ]) -- ]) -- ]) -- ;; -- esac -- -- if test "x$lt_cv_dlopen" != xno; then -- enable_dlopen=yes -- else -- enable_dlopen=no -- fi -- -- case $lt_cv_dlopen in -- dlopen) -- save_CPPFLAGS="$CPPFLAGS" -- test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" -- -- save_LDFLAGS="$LDFLAGS" -- wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" -- -- save_LIBS="$LIBS" -- LIBS="$lt_cv_dlopen_libs $LIBS" -- -- AC_CACHE_CHECK([whether a program can dlopen itself], -- lt_cv_dlopen_self, [dnl -- _LT_AC_TRY_DLOPEN_SELF( -- lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes, -- lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross) -- ]) -- -- if test "x$lt_cv_dlopen_self" = xyes; then -- wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" -- AC_CACHE_CHECK([whether a statically linked program can dlopen itself], -- lt_cv_dlopen_self_static, [dnl -- _LT_AC_TRY_DLOPEN_SELF( -- lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes, -- lt_cv_dlopen_self_static=no, lt_cv_dlopen_self_static=cross) -- ]) -- fi -- -- CPPFLAGS="$save_CPPFLAGS" -- LDFLAGS="$save_LDFLAGS" -- LIBS="$save_LIBS" -- ;; -- esac -- -- case $lt_cv_dlopen_self in -- yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; -- *) enable_dlopen_self=unknown ;; -- esac -- -- case $lt_cv_dlopen_self_static in -- yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; -- *) enable_dlopen_self_static=unknown ;; -- esac --fi --])# AC_LIBTOOL_DLOPEN_SELF -- -- --# AC_LIBTOOL_PROG_CC_C_O([TAGNAME]) --# --------------------------------- --# Check to see if options -c and -o are simultaneously supported by compiler --AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O], --[AC_REQUIRE([LT_AC_PROG_SED])dnl --AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl --AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext], -- [_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)], -- [_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no -- $rm -r conftest 2>/dev/null -- mkdir conftest -- cd conftest -- mkdir out -- echo "$lt_simple_compile_test_code" > conftest.$ac_ext -- -- lt_compiler_flag="-o out/conftest2.$ac_objext" -- # Insert the option either (1) after the last *FLAGS variable, or -- # (2) before a word containing "conftest.", or (3) at the end. -- # Note that $ac_compile itself does not contain backslashes and begins -- # with a dollar sign (not a hyphen), so the echo should work correctly. -- lt_compile=`echo "$ac_compile" | $SED \ -- -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -- -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ -- -e 's:$: $lt_compiler_flag:'` -- (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD) -- (eval "$lt_compile" 2>out/conftest.err) -- ac_status=$? -- cat out/conftest.err >&AS_MESSAGE_LOG_FD -- echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD -- if (exit $ac_status) && test -s out/conftest2.$ac_objext -- then -- # The compiler can only warn and ignore the option if not recognized -- # So say no if there are warnings -- $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp -- $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 -- if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then -- _LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes -- fi -- fi -- chmod u+w . 2>&AS_MESSAGE_LOG_FD -- $rm conftest* -- # SGI C++ compiler will create directory out/ii_files/ for -- # template instantiation -- test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files -- $rm out/* && rmdir out -- cd .. -- rmdir conftest -- $rm conftest* --]) --])# AC_LIBTOOL_PROG_CC_C_O -- -- --# AC_LIBTOOL_SYS_HARD_LINK_LOCKS([TAGNAME]) --# ----------------------------------------- --# Check to see if we can do hard links to lock some files if needed --AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS], --[AC_REQUIRE([_LT_AC_LOCK])dnl -- --hard_links="nottested" --if test "$_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)" = no && test "$need_locks" != no; then -- # do not overwrite the value of need_locks provided by the user -- AC_MSG_CHECKING([if we can lock with hard links]) -- hard_links=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 -- AC_MSG_RESULT([$hard_links]) -- if test "$hard_links" = no; then -- AC_MSG_WARN([`$CC' does not support `-c -o', so `make -j' may be unsafe]) -- need_locks=warn -- fi --else -- need_locks=no --fi --])# AC_LIBTOOL_SYS_HARD_LINK_LOCKS -- -- --# AC_LIBTOOL_OBJDIR --# ----------------- --AC_DEFUN([AC_LIBTOOL_OBJDIR], --[AC_CACHE_CHECK([for objdir], [lt_cv_objdir], --[rm -f .libs 2>/dev/null --mkdir .libs 2>/dev/null --if test -d .libs; then -- lt_cv_objdir=.libs --else -- # MS-DOS does not allow filenames that begin with a dot. -- lt_cv_objdir=_libs --fi --rmdir .libs 2>/dev/null]) --objdir=$lt_cv_objdir --])# AC_LIBTOOL_OBJDIR -- -- --# AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH([TAGNAME]) --# ---------------------------------------------- --# Check hardcoding attributes. --AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH], --[AC_MSG_CHECKING([how to hardcode library paths into programs]) --_LT_AC_TAGVAR(hardcode_action, $1)= --if test -n "$_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)" || \ -- test -n "$_LT_AC_TAGVAR(runpath_var, $1)" || \ -- test "X$_LT_AC_TAGVAR(hardcode_automatic, $1)" = "Xyes" ; then -- -- # We can hardcode non-existant directories. -- if test "$_LT_AC_TAGVAR(hardcode_direct, $1)" != no && -- # If the only mechanism to avoid hardcoding is shlibpath_var, we -- # have to relink, otherwise we might link with an installed library -- # when we should be linking with a yet-to-be-installed one -- ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)" != no && -- test "$_LT_AC_TAGVAR(hardcode_minus_L, $1)" != no; then -- # Linking always hardcodes the temporary library directory. -- _LT_AC_TAGVAR(hardcode_action, $1)=relink -- else -- # We can link without hardcoding, and we can hardcode nonexisting dirs. -- _LT_AC_TAGVAR(hardcode_action, $1)=immediate -- fi --else -- # We cannot hardcode anything, or else we can only hardcode existing -- # directories. -- _LT_AC_TAGVAR(hardcode_action, $1)=unsupported --fi --AC_MSG_RESULT([$_LT_AC_TAGVAR(hardcode_action, $1)]) -- --if test "$_LT_AC_TAGVAR(hardcode_action, $1)" = relink; then -- # Fast installation is not supported -- enable_fast_install=no --elif test "$shlibpath_overrides_runpath" = yes || -- test "$enable_shared" = no; then -- # Fast installation is not necessary -- enable_fast_install=needless --fi --])# AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH -- -- --# AC_LIBTOOL_SYS_LIB_STRIP --# ------------------------ --AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP], --[striplib= --old_striplib= --AC_MSG_CHECKING([whether stripping libraries is possible]) --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" -- AC_MSG_RESULT([yes]) --else --# FIXME - insert some real tests, host_os isn't really good enough -- case $host_os in -- darwin*) -- if test -n "$STRIP" ; then -- striplib="$STRIP -x" -- old_striplib="$STRIP -S" -- AC_MSG_RESULT([yes]) -- else -- AC_MSG_RESULT([no]) --fi -- ;; -- *) -- AC_MSG_RESULT([no]) -- ;; -- esac --fi --])# AC_LIBTOOL_SYS_LIB_STRIP -- -- --# AC_LIBTOOL_SYS_DYNAMIC_LINKER --# ----------------------------- --# PORTME Fill in your ld.so characteristics --AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER], --[AC_REQUIRE([LT_AC_PROG_SED])dnl --AC_MSG_CHECKING([dynamic linker characteristics]) --library_names_spec= --libname_spec='lib$name' --soname_spec= --shrext_cmds=".so" --postinstall_cmds= --postuninstall_cmds= --finish_cmds= --finish_eval= --shlibpath_var= --shlibpath_overrides_runpath=unknown --version_type=none --dynamic_linker="$host_os ld.so" --sys_lib_dlsearch_path_spec="/lib /usr/lib" --m4_if($1,[],[ --if test "$GCC" = yes; then -- case $host_os in -- darwin*) lt_awk_arg="/^libraries:/,/LR/" ;; -- *) lt_awk_arg="/^libraries:/" ;; -- esac -- lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e "s,=/,/,g"` -- if echo "$lt_search_path_spec" | grep ';' >/dev/null ; then -- # if the path contains ";" then we assume it to be the separator -- # otherwise default to the standard path separator (i.e. ":") - it is -- # assumed that no part of a normal pathname contains ";" but that should -- # okay in the real world where ";" in dirpaths is itself problematic. -- lt_search_path_spec=`echo "$lt_search_path_spec" | $SED -e 's/;/ /g'` -- else -- lt_search_path_spec=`echo "$lt_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` -- fi -- # Ok, now we have the path, separated by spaces, we can step through it -- # and add multilib dir if necessary. -- lt_tmp_lt_search_path_spec= -- lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` -- for lt_sys_path in $lt_search_path_spec; do -- if test -d "$lt_sys_path/$lt_multi_os_dir"; then -- lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir" -- else -- test -d "$lt_sys_path" && \ -- lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" -- fi -- done -- lt_search_path_spec=`echo $lt_tmp_lt_search_path_spec | awk ' --BEGIN {RS=" "; FS="/|\n";} { -- lt_foo=""; -- lt_count=0; -- for (lt_i = NF; lt_i > 0; lt_i--) { -- if ($lt_i != "" && $lt_i != ".") { -- if ($lt_i == "..") { -- lt_count++; -- } else { -- if (lt_count == 0) { -- lt_foo="/" $lt_i lt_foo; -- } else { -- lt_count--; -- } -- } -- } -- } -- if (lt_foo != "") { lt_freq[[lt_foo]]++; } -- if (lt_freq[[lt_foo]] == 1) { print lt_foo; } --}'` -- sys_lib_search_path_spec=`echo $lt_search_path_spec` --else -- sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" --fi]) --need_lib_prefix=unknown --hardcode_into_libs=no -- --# when you set need_version to no, make sure it does not cause -set_version --# flags to be left without arguments --need_version=unknown -- --case $host_os in --aix3*) -- version_type=linux -- library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' -- shlibpath_var=LIBPATH -- -- # AIX 3 has no versioning support, so we append a major version to the name. -- soname_spec='${libname}${release}${shared_ext}$major' -- ;; -- --aix[[4-9]]*) -- version_type=linux -- need_lib_prefix=no -- need_version=no -- hardcode_into_libs=yes -- if test "$host_cpu" = ia64; then -- # AIX 5 supports IA64 -- library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' -- shlibpath_var=LD_LIBRARY_PATH -- else -- # With GCC up to 2.95.x, collect2 would create an import file -- # for dependence libraries. The import file would start with -- # the line `#! .'. This would cause the generated library to -- # depend on `.', always an invalid library. This was fixed in -- # development snapshots of GCC prior to 3.0. -- case $host_os in -- aix4 | aix4.[[01]] | aix4.[[01]].*) -- if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' -- echo ' yes ' -- echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then -- : -- else -- can_build_shared=no -- fi -- ;; -- esac -- # AIX (on Power*) has no versioning support, so currently we can not hardcode correct -- # soname into executable. Probably we can add versioning support to -- # collect2, so additional links can be useful in future. -- if test "$aix_use_runtimelinking" = yes; then -- # If using run time linking (on AIX 4.2 or later) use lib.so -- # instead of lib.a to let people know that these are not -- # typical AIX shared libraries. -- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' -- else -- # We preserve .a as extension for shared libraries through AIX4.2 -- # and later when we are not doing run time linking. -- library_names_spec='${libname}${release}.a $libname.a' -- soname_spec='${libname}${release}${shared_ext}$major' -- fi -- shlibpath_var=LIBPATH -- fi -- ;; -- --amigaos*) -- library_names_spec='$libname.ixlibrary $libname.a' -- # Create ${libname}_ixlibrary.a entries in /sys/libs. -- finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' -- ;; -- --beos*) -- library_names_spec='${libname}${shared_ext}' -- dynamic_linker="$host_os ld.so" -- shlibpath_var=LIBRARY_PATH -- ;; -- --bsdi[[45]]*) -- version_type=linux -- need_version=no -- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' -- soname_spec='${libname}${release}${shared_ext}$major' -- finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' -- shlibpath_var=LD_LIBRARY_PATH -- sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" -- sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" -- # the default ld.so.conf also contains /usr/contrib/lib and -- # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow -- # libtool to hard-code these into programs -- ;; -- --cygwin* | mingw* | pw32*) -- version_type=windows -- shrext_cmds=".dll" -- need_version=no -- need_lib_prefix=no -- -- case $GCC,$host_os in -- yes,cygwin* | yes,mingw* | yes,pw32*) -- library_names_spec='$libname.dll.a' -- # DLL is installed to $(libdir)/../bin by postinstall_cmds -- postinstall_cmds='base_file=`basename \${file}`~ -- dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~ -- dldir=$destdir/`dirname \$dlpath`~ -- test -d \$dldir || mkdir -p \$dldir~ -- $install_prog $dir/$dlname \$dldir/$dlname~ -- chmod a+x \$dldir/$dlname' -- postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ -- dlpath=$dir/\$dldll~ -- $rm \$dlpath' -- shlibpath_overrides_runpath=yes -- -- case $host_os in -- cygwin*) -- # Cygwin DLLs use 'cyg' prefix rather than 'lib' -- soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' -- sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" -- ;; -- mingw*) -- # MinGW DLLs use traditional 'lib' prefix -- soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' -- sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` -- if echo "$sys_lib_search_path_spec" | [grep ';[c-zC-Z]:/' >/dev/null]; then -- # It is most probably a Windows format PATH printed by -- # mingw gcc, but we are running on Cygwin. Gcc prints its search -- # path with ; separators, and with drive letters. We can handle the -- # drive letters (cygwin fileutils understands them), so leave them, -- # especially as we might pass files found there to a mingw objdump, -- # which wouldn't understand a cygwinified path. Ahh. -- sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` -- else -- sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` -- fi -- ;; -- pw32*) -- # pw32 DLLs use 'pw' prefix rather than 'lib' -- library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' -- ;; -- esac -- ;; -- -- *) -- library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib' -- ;; -- esac -- dynamic_linker='Win32 ld.exe' -- # FIXME: first we should search . and the directory the executable is in -- shlibpath_var=PATH -- ;; -- --darwin* | rhapsody*) -- dynamic_linker="$host_os dyld" -- version_type=darwin -- need_lib_prefix=no -- need_version=no -- library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext' -- soname_spec='${libname}${release}${major}$shared_ext' -- shlibpath_overrides_runpath=yes -- shlibpath_var=DYLD_LIBRARY_PATH -- shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' -- m4_if([$1], [],[ -- sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"]) -- sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' -- ;; -- --dgux*) -- version_type=linux -- need_lib_prefix=no -- need_version=no -- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' -- soname_spec='${libname}${release}${shared_ext}$major' -- shlibpath_var=LD_LIBRARY_PATH -- ;; -- --freebsd1*) -- dynamic_linker=no -- ;; -- --freebsd* | dragonfly*) -- # DragonFly does not have aout. When/if they implement a new -- # versioning mechanism, adjust this. -- if test -x /usr/bin/objformat; then -- objformat=`/usr/bin/objformat` -- else -- case $host_os in -- freebsd[[123]]*) objformat=aout ;; -- *) objformat=elf ;; -- esac -- fi -- version_type=freebsd-$objformat -- case $version_type in -- freebsd-elf*) -- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' -- need_version=no -- need_lib_prefix=no -- ;; -- freebsd-*) -- library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' -- need_version=yes -- ;; -- esac -- shlibpath_var=LD_LIBRARY_PATH -- case $host_os in -- freebsd2*) -- shlibpath_overrides_runpath=yes -- ;; -- freebsd3.[[01]]* | freebsdelf3.[[01]]*) -- shlibpath_overrides_runpath=yes -- hardcode_into_libs=yes -- ;; -- freebsd3.[[2-9]]* | freebsdelf3.[[2-9]]* | \ -- freebsd4.[[0-5]] | freebsdelf4.[[0-5]] | freebsd4.1.1 | freebsdelf4.1.1) -- shlibpath_overrides_runpath=no -- hardcode_into_libs=yes -- ;; -- *) # from 4.6 on, and DragonFly -- shlibpath_overrides_runpath=yes -- hardcode_into_libs=yes -- ;; -- esac -- ;; -- --gnu*) -- version_type=linux -- need_lib_prefix=no -- need_version=no -- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' -- soname_spec='${libname}${release}${shared_ext}$major' -- shlibpath_var=LD_LIBRARY_PATH -- hardcode_into_libs=yes -- ;; -- --hpux9* | hpux10* | hpux11*) -- # Give a soname corresponding to the major version so that dld.sl refuses to -- # link against other versions. -- version_type=sunos -- need_lib_prefix=no -- need_version=no -- case $host_cpu in -- ia64*) -- shrext_cmds='.so' -- hardcode_into_libs=yes -- dynamic_linker="$host_os dld.so" -- shlibpath_var=LD_LIBRARY_PATH -- shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. -- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' -- soname_spec='${libname}${release}${shared_ext}$major' -- if test "X$HPUX_IA64_MODE" = X32; then -- sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" -- else -- sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" -- fi -- sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec -- ;; -- hppa*64*) -- shrext_cmds='.sl' -- hardcode_into_libs=yes -- dynamic_linker="$host_os dld.sl" -- shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH -- shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. -- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' -- soname_spec='${libname}${release}${shared_ext}$major' -- sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" -- sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec -- ;; -- *) -- shrext_cmds='.sl' -- dynamic_linker="$host_os dld.sl" -- shlibpath_var=SHLIB_PATH -- shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH -- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' -- soname_spec='${libname}${release}${shared_ext}$major' -- ;; -- esac -- # HP-UX runs *really* slowly unless shared libraries are mode 555. -- postinstall_cmds='chmod 555 $lib' -- ;; -- --interix[[3-9]]*) -- version_type=linux -- need_lib_prefix=no -- need_version=no -- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' -- soname_spec='${libname}${release}${shared_ext}$major' -- dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' -- shlibpath_var=LD_LIBRARY_PATH -- shlibpath_overrides_runpath=no -- hardcode_into_libs=yes -- ;; -- --irix5* | irix6* | nonstopux*) -- case $host_os in -- nonstopux*) version_type=nonstopux ;; -- *) -- if test "$lt_cv_prog_gnu_ld" = yes; then -- version_type=linux -- else -- version_type=irix -- fi ;; -- esac -- need_lib_prefix=no -- need_version=no -- soname_spec='${libname}${release}${shared_ext}$major' -- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' -- case $host_os in -- irix5* | nonstopux*) -- libsuff= shlibsuff= -- ;; -- *) -- case $LD in # libtool.m4 will add one of these switches to LD -- *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") -- libsuff= shlibsuff= libmagic=32-bit;; -- *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") -- libsuff=32 shlibsuff=N32 libmagic=N32;; -- *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") -- libsuff=64 shlibsuff=64 libmagic=64-bit;; -- *) libsuff= shlibsuff= libmagic=never-match;; -- esac -- ;; -- esac -- shlibpath_var=LD_LIBRARY${shlibsuff}_PATH -- shlibpath_overrides_runpath=no -- sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" -- sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" -- hardcode_into_libs=yes -- ;; -- --# No shared lib support for Linux oldld, aout, or coff. --linux*oldld* | linux*aout* | linux*coff*) -- dynamic_linker=no -- ;; -- --# This must be Linux ELF. --linux* | k*bsd*-gnu) -- version_type=linux -- need_lib_prefix=no -- need_version=no -- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' -- soname_spec='${libname}${release}${shared_ext}$major' -- finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' -- shlibpath_var=LD_LIBRARY_PATH -- shlibpath_overrides_runpath=no -- # This implies no fast_install, which is unacceptable. -- # Some rework will be needed to allow for fast_install -- # before this can be enabled. -- hardcode_into_libs=yes -- -- # Append ld.so.conf contents to the search path -- if test -f /etc/ld.so.conf; then -- lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` -- sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" -- fi -- -- # We used to test for /lib/ld.so.1 and disable shared libraries on -- # powerpc, because MkLinux only supported shared libraries with the -- # GNU dynamic linker. Since this was broken with cross compilers, -- # most powerpc-linux boxes support dynamic linking these days and -- # people can always --disable-shared, the test was removed, and we -- # assume the GNU/Linux dynamic linker is in use. -- dynamic_linker='GNU/Linux ld.so' -- ;; -- --netbsdelf*-gnu) -- version_type=linux -- need_lib_prefix=no -- need_version=no -- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' -- soname_spec='${libname}${release}${shared_ext}$major' -- shlibpath_var=LD_LIBRARY_PATH -- shlibpath_overrides_runpath=no -- hardcode_into_libs=yes -- dynamic_linker='NetBSD ld.elf_so' -- ;; -- --netbsd*) -- version_type=sunos -- need_lib_prefix=no -- need_version=no -- if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then -- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' -- finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' -- dynamic_linker='NetBSD (a.out) ld.so' -- else -- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' -- soname_spec='${libname}${release}${shared_ext}$major' -- dynamic_linker='NetBSD ld.elf_so' -- fi -- shlibpath_var=LD_LIBRARY_PATH -- shlibpath_overrides_runpath=yes -- hardcode_into_libs=yes -- ;; -- --newsos6) -- version_type=linux -- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' -- shlibpath_var=LD_LIBRARY_PATH -- shlibpath_overrides_runpath=yes -- ;; -- --nto-qnx*) -- version_type=linux -- need_lib_prefix=no -- need_version=no -- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' -- soname_spec='${libname}${release}${shared_ext}$major' -- shlibpath_var=LD_LIBRARY_PATH -- shlibpath_overrides_runpath=yes -- ;; -- --openbsd*) -- version_type=sunos -- sys_lib_dlsearch_path_spec="/usr/lib" -- need_lib_prefix=no -- # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. -- case $host_os in -- openbsd3.3 | openbsd3.3.*) need_version=yes ;; -- *) need_version=no ;; -- esac -- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' -- finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' -- shlibpath_var=LD_LIBRARY_PATH -- if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then -- case $host_os in -- openbsd2.[[89]] | openbsd2.[[89]].*) -- shlibpath_overrides_runpath=no -- ;; -- *) -- shlibpath_overrides_runpath=yes -- ;; -- esac -- else -- shlibpath_overrides_runpath=yes -- fi -- ;; -- --os2*) -- libname_spec='$name' -- shrext_cmds=".dll" -- need_lib_prefix=no -- library_names_spec='$libname${shared_ext} $libname.a' -- dynamic_linker='OS/2 ld.exe' -- shlibpath_var=LIBPATH -- ;; -- --osf3* | osf4* | osf5*) -- version_type=osf -- need_lib_prefix=no -- need_version=no -- soname_spec='${libname}${release}${shared_ext}$major' -- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' -- shlibpath_var=LD_LIBRARY_PATH -- sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" -- sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" -- ;; -- --rdos*) -- dynamic_linker=no -- ;; -- --solaris*) -- version_type=linux -- need_lib_prefix=no -- need_version=no -- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' -- soname_spec='${libname}${release}${shared_ext}$major' -- shlibpath_var=LD_LIBRARY_PATH -- shlibpath_overrides_runpath=yes -- hardcode_into_libs=yes -- # ldd complains unless libraries are executable -- postinstall_cmds='chmod +x $lib' -- ;; -- --sunos4*) -- version_type=sunos -- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' -- finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' -- shlibpath_var=LD_LIBRARY_PATH -- shlibpath_overrides_runpath=yes -- if test "$with_gnu_ld" = yes; then -- need_lib_prefix=no -- fi -- need_version=yes -- ;; -- --sysv4 | sysv4.3*) -- version_type=linux -- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' -- soname_spec='${libname}${release}${shared_ext}$major' -- shlibpath_var=LD_LIBRARY_PATH -- case $host_vendor in -- sni) -- shlibpath_overrides_runpath=no -- need_lib_prefix=no -- export_dynamic_flag_spec='${wl}-Blargedynsym' -- runpath_var=LD_RUN_PATH -- ;; -- siemens) -- need_lib_prefix=no -- ;; -- motorola) -- need_lib_prefix=no -- need_version=no -- shlibpath_overrides_runpath=no -- sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' -- ;; -- esac -- ;; -- --sysv4*MP*) -- if test -d /usr/nec ;then -- version_type=linux -- library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' -- soname_spec='$libname${shared_ext}.$major' -- shlibpath_var=LD_LIBRARY_PATH -- fi -- ;; -- --sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) -- version_type=freebsd-elf -- need_lib_prefix=no -- need_version=no -- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' -- soname_spec='${libname}${release}${shared_ext}$major' -- shlibpath_var=LD_LIBRARY_PATH -- hardcode_into_libs=yes -- if test "$with_gnu_ld" = yes; then -- sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' -- shlibpath_overrides_runpath=no -- else -- sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' -- shlibpath_overrides_runpath=yes -- case $host_os in -- sco3.2v5*) -- sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" -- ;; -- esac -- fi -- sys_lib_dlsearch_path_spec='/usr/lib' -- ;; -- --uts4*) -- version_type=linux -- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' -- soname_spec='${libname}${release}${shared_ext}$major' -- shlibpath_var=LD_LIBRARY_PATH -- ;; -- --*) -- dynamic_linker=no -- ;; --esac --AC_MSG_RESULT([$dynamic_linker]) --test "$dynamic_linker" = no && can_build_shared=no -- --AC_CACHE_VAL([lt_cv_sys_lib_search_path_spec], --[lt_cv_sys_lib_search_path_spec="$sys_lib_search_path_spec"]) --sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" --AC_CACHE_VAL([lt_cv_sys_lib_dlsearch_path_spec], --[lt_cv_sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec"]) --sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" -- --variables_saved_for_relink="PATH $shlibpath_var $runpath_var" --if test "$GCC" = yes; then -- variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" --fi --])# AC_LIBTOOL_SYS_DYNAMIC_LINKER -- -- --# _LT_AC_TAGCONFIG --# ---------------- --AC_DEFUN([_LT_AC_TAGCONFIG], --[AC_REQUIRE([LT_AC_PROG_SED])dnl --AC_ARG_WITH([tags], -- [AC_HELP_STRING([--with-tags@<:@=TAGS@:>@], -- [include additional configurations @<:@automatic@:>@])], -- [tagnames="$withval"]) -- --if test -f "$ltmain" && test -n "$tagnames"; then -- if test ! -f "${ofile}"; then -- AC_MSG_WARN([output file `$ofile' does not exist]) -- fi -- -- if test -z "$LTCC"; then -- eval "`$SHELL ${ofile} --config | grep '^LTCC='`" -- if test -z "$LTCC"; then -- AC_MSG_WARN([output file `$ofile' does not look like a libtool script]) -- else -- AC_MSG_WARN([using `LTCC=$LTCC', extracted from `$ofile']) -- fi -- fi -- if test -z "$LTCFLAGS"; then -- eval "`$SHELL ${ofile} --config | grep '^LTCFLAGS='`" -- fi -- -- # Extract list of available tagged configurations in $ofile. -- # Note that this assumes the entire list is on one line. -- available_tags=`grep "^available_tags=" "${ofile}" | $SED -e 's/available_tags=\(.*$\)/\1/' -e 's/\"//g'` -- -- lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," -- for tagname in $tagnames; do -- IFS="$lt_save_ifs" -- # Check whether tagname contains only valid characters -- case `$echo "X$tagname" | $Xsed -e 's:[[-_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890,/]]::g'` in -- "") ;; -- *) AC_MSG_ERROR([invalid tag name: $tagname]) -- ;; -- esac -- -- if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "${ofile}" > /dev/null -- then -- AC_MSG_ERROR([tag name \"$tagname\" already exists]) -- fi -- -- # Update the list of available tags. -- if test -n "$tagname"; then -- echo appending configuration tag \"$tagname\" to $ofile -- -- case $tagname in -- CXX) -- if test -n "$CXX" && ( test "X$CXX" != "Xno" && -- ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || -- (test "X$CXX" != "Xg++"))) ; then -- AC_LIBTOOL_LANG_CXX_CONFIG -- else -- tagname="" -- fi -- ;; -- -- F77) -- if test -n "$F77" && test "X$F77" != "Xno"; then -- AC_LIBTOOL_LANG_F77_CONFIG -- else -- tagname="" -- fi -- ;; -- -- GCJ) -- if test -n "$GCJ" && test "X$GCJ" != "Xno"; then -- AC_LIBTOOL_LANG_GCJ_CONFIG -- else -- tagname="" -- fi -- ;; -- -- RC) -- AC_LIBTOOL_LANG_RC_CONFIG -- ;; -- -- *) -- AC_MSG_ERROR([Unsupported tag name: $tagname]) -- ;; -- esac -- -- # Append the new tag name to the list of available tags. -- if test -n "$tagname" ; then -- available_tags="$available_tags $tagname" -- fi -- fi -- done -- IFS="$lt_save_ifs" -- -- # Now substitute the updated list of available tags. -- if eval "sed -e 's/^available_tags=.*\$/available_tags=\"$available_tags\"/' \"$ofile\" > \"${ofile}T\""; then -- mv "${ofile}T" "$ofile" -- chmod +x "$ofile" -- else -- rm -f "${ofile}T" -- AC_MSG_ERROR([unable to update list of available tagged configurations.]) -- fi --fi --])# _LT_AC_TAGCONFIG -- -- --# AC_LIBTOOL_DLOPEN --# ----------------- --# enable checks for dlopen support --AC_DEFUN([AC_LIBTOOL_DLOPEN], -- [AC_BEFORE([$0],[AC_LIBTOOL_SETUP]) --])# AC_LIBTOOL_DLOPEN -- -- --# AC_LIBTOOL_WIN32_DLL --# -------------------- --# declare package support for building win32 DLLs --AC_DEFUN([AC_LIBTOOL_WIN32_DLL], --[AC_BEFORE([$0], [AC_LIBTOOL_SETUP]) --])# AC_LIBTOOL_WIN32_DLL -- -- --# AC_ENABLE_SHARED([DEFAULT]) --# --------------------------- --# implement the --enable-shared flag --# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. --AC_DEFUN([AC_ENABLE_SHARED], --[define([AC_ENABLE_SHARED_DEFAULT], ifelse($1, no, no, yes))dnl --AC_ARG_ENABLE([shared], -- [AC_HELP_STRING([--enable-shared@<:@=PKGS@:>@], -- [build shared libraries @<:@default=]AC_ENABLE_SHARED_DEFAULT[@:>@])], -- [p=${PACKAGE-default} -- case $enableval in -- yes) enable_shared=yes ;; -- no) enable_shared=no ;; -- *) -- enable_shared=no -- # Look at the argument we got. We use all the common list separators. -- lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," -- for pkg in $enableval; do -- IFS="$lt_save_ifs" -- if test "X$pkg" = "X$p"; then -- enable_shared=yes -- fi -- done -- IFS="$lt_save_ifs" -- ;; -- esac], -- [enable_shared=]AC_ENABLE_SHARED_DEFAULT) --])# AC_ENABLE_SHARED -- -- --# AC_DISABLE_SHARED --# ----------------- --# set the default shared flag to --disable-shared --AC_DEFUN([AC_DISABLE_SHARED], --[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl --AC_ENABLE_SHARED(no) --])# AC_DISABLE_SHARED -- -- --# AC_ENABLE_STATIC([DEFAULT]) --# --------------------------- --# implement the --enable-static flag --# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. --AC_DEFUN([AC_ENABLE_STATIC], --[define([AC_ENABLE_STATIC_DEFAULT], ifelse($1, no, no, yes))dnl --AC_ARG_ENABLE([static], -- [AC_HELP_STRING([--enable-static@<:@=PKGS@:>@], -- [build static libraries @<:@default=]AC_ENABLE_STATIC_DEFAULT[@:>@])], -- [p=${PACKAGE-default} -- case $enableval in -- yes) enable_static=yes ;; -- no) enable_static=no ;; -- *) -- enable_static=no -- # Look at the argument we got. We use all the common list separators. -- lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," -- for pkg in $enableval; do -- IFS="$lt_save_ifs" -- if test "X$pkg" = "X$p"; then -- enable_static=yes -- fi -- done -- IFS="$lt_save_ifs" -- ;; -- esac], -- [enable_static=]AC_ENABLE_STATIC_DEFAULT) --])# AC_ENABLE_STATIC -- -- --# AC_DISABLE_STATIC --# ----------------- --# set the default static flag to --disable-static --AC_DEFUN([AC_DISABLE_STATIC], --[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl --AC_ENABLE_STATIC(no) --])# AC_DISABLE_STATIC -- -- --# AC_ENABLE_FAST_INSTALL([DEFAULT]) --# --------------------------------- --# implement the --enable-fast-install flag --# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. --AC_DEFUN([AC_ENABLE_FAST_INSTALL], --[define([AC_ENABLE_FAST_INSTALL_DEFAULT], ifelse($1, no, no, yes))dnl --AC_ARG_ENABLE([fast-install], -- [AC_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@], -- [optimize for fast installation @<:@default=]AC_ENABLE_FAST_INSTALL_DEFAULT[@:>@])], -- [p=${PACKAGE-default} -- case $enableval in -- yes) enable_fast_install=yes ;; -- no) enable_fast_install=no ;; -- *) -- enable_fast_install=no -- # Look at the argument we got. We use all the common list separators. -- lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," -- for pkg in $enableval; do -- IFS="$lt_save_ifs" -- if test "X$pkg" = "X$p"; then -- enable_fast_install=yes -- fi -- done -- IFS="$lt_save_ifs" -- ;; -- esac], -- [enable_fast_install=]AC_ENABLE_FAST_INSTALL_DEFAULT) --])# AC_ENABLE_FAST_INSTALL -- -- --# AC_DISABLE_FAST_INSTALL --# ----------------------- --# set the default to --disable-fast-install --AC_DEFUN([AC_DISABLE_FAST_INSTALL], --[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl --AC_ENABLE_FAST_INSTALL(no) --])# AC_DISABLE_FAST_INSTALL -- -- --# AC_LIBTOOL_PICMODE([MODE]) --# -------------------------- --# implement the --with-pic flag --# MODE is either `yes' or `no'. If omitted, it defaults to `both'. --AC_DEFUN([AC_LIBTOOL_PICMODE], --[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl --pic_mode=ifelse($#,1,$1,default) --])# AC_LIBTOOL_PICMODE -- -- --# AC_PROG_EGREP --# ------------- --# This is predefined starting with Autoconf 2.54, so this conditional --# definition can be removed once we require Autoconf 2.54 or later. --m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP], --[AC_CACHE_CHECK([for egrep], [ac_cv_prog_egrep], -- [if echo a | (grep -E '(a|b)') >/dev/null 2>&1 -- then ac_cv_prog_egrep='grep -E' -- else ac_cv_prog_egrep='egrep' -- fi]) -- EGREP=$ac_cv_prog_egrep -- AC_SUBST([EGREP]) --])]) -- -- --# AC_PATH_TOOL_PREFIX --# ------------------- --# find a file program which can recognize shared library --AC_DEFUN([AC_PATH_TOOL_PREFIX], --[AC_REQUIRE([AC_PROG_EGREP])dnl --AC_MSG_CHECKING([for $1]) --AC_CACHE_VAL(lt_cv_path_MAGIC_CMD, --[case $MAGIC_CMD in --[[\\/*] | ?:[\\/]*]) -- lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. -- ;; --*) -- lt_save_MAGIC_CMD="$MAGIC_CMD" -- lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR --dnl $ac_dummy forces splitting on constant user-supplied paths. --dnl POSIX.2 word splitting is done only on the output of word expansions, --dnl not every word. This closes a longstanding sh security hole. -- ac_dummy="ifelse([$2], , $PATH, [$2])" -- for ac_dir in $ac_dummy; do -- IFS="$lt_save_ifs" -- test -z "$ac_dir" && ac_dir=. -- if test -f $ac_dir/$1; then -- lt_cv_path_MAGIC_CMD="$ac_dir/$1" -- if test -n "$file_magic_test_file"; then -- case $deplibs_check_method in -- "file_magic "*) -- file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` -- MAGIC_CMD="$lt_cv_path_MAGIC_CMD" -- if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | -- $EGREP "$file_magic_regex" > /dev/null; then -- : -- else -- cat <&2 -- --*** Warning: the command libtool uses to detect shared libraries, --*** $file_magic_cmd, produces output that libtool cannot recognize. --*** The result is that libtool may fail to recognize shared libraries --*** as such. This will affect the creation of libtool libraries that --*** depend on shared libraries, but programs linked with such libtool --*** libraries will work regardless of this problem. Nevertheless, you --*** may want to report the problem to your system manager and/or to --*** bug-libtool@gnu.org -- --EOF -- fi ;; -- esac -- fi -- break -- fi -- done -- IFS="$lt_save_ifs" -- MAGIC_CMD="$lt_save_MAGIC_CMD" -- ;; --esac]) --MAGIC_CMD="$lt_cv_path_MAGIC_CMD" --if test -n "$MAGIC_CMD"; then -- AC_MSG_RESULT($MAGIC_CMD) --else -- AC_MSG_RESULT(no) --fi --])# AC_PATH_TOOL_PREFIX -- -- --# AC_PATH_MAGIC --# ------------- --# find a file program which can recognize a shared library --AC_DEFUN([AC_PATH_MAGIC], --[AC_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH) --if test -z "$lt_cv_path_MAGIC_CMD"; then -- if test -n "$ac_tool_prefix"; then -- AC_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH) -- else -- MAGIC_CMD=: -- fi --fi --])# AC_PATH_MAGIC -- -- --# AC_PROG_LD --# ---------- --# find the pathname to the GNU or non-GNU linker --AC_DEFUN([AC_PROG_LD], --[AC_ARG_WITH([gnu-ld], -- [AC_HELP_STRING([--with-gnu-ld], -- [assume the C compiler uses GNU ld @<:@default=no@:>@])], -- [test "$withval" = no || with_gnu_ld=yes], -- [with_gnu_ld=no]) --AC_REQUIRE([LT_AC_PROG_SED])dnl --AC_REQUIRE([AC_PROG_CC])dnl --AC_REQUIRE([AC_CANONICAL_HOST])dnl --AC_REQUIRE([AC_CANONICAL_BUILD])dnl --ac_prog=ld --if test "$GCC" = yes; then -- # Check if gcc -print-prog-name=ld gives a path. -- AC_MSG_CHECKING([for ld used by $CC]) -- case $host in -- *-*-mingw*) -- # gcc leaves a trailing carriage return which upsets mingw -- ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; -- *) -- ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; -- esac -- case $ac_prog in -- # Accept absolute paths. -- [[\\/]]* | ?:[[\\/]]*) -- re_direlt='/[[^/]][[^/]]*/\.\./' -- # Canonicalize the pathname of ld -- ac_prog=`echo $ac_prog| $SED 's%\\\\%/%g'` -- while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do -- ac_prog=`echo $ac_prog| $SED "s%$re_direlt%/%"` -- done -- test -z "$LD" && LD="$ac_prog" -- ;; -- "") -- # If it fails, then pretend we aren't using GCC. -- ac_prog=ld -- ;; -- *) -- # If it is relative, then search for the first ld in PATH. -- with_gnu_ld=unknown -- ;; -- esac --elif test "$with_gnu_ld" = yes; then -- AC_MSG_CHECKING([for GNU ld]) --else -- AC_MSG_CHECKING([for non-GNU ld]) --fi --AC_CACHE_VAL(lt_cv_path_LD, --[if test -z "$LD"; then -- lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR -- for ac_dir in $PATH; do -- IFS="$lt_save_ifs" -- test -z "$ac_dir" && ac_dir=. -- if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then -- lt_cv_path_LD="$ac_dir/$ac_prog" -- # Check to see if the program is GNU ld. I'd rather use --version, -- # but apparently some variants of GNU ld only accept -v. -- # Break only if it was the GNU/non-GNU ld that we prefer. -- case `"$lt_cv_path_LD" -v 2>&1 &1 /dev/null 2>&1; then -- lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' -- lt_cv_file_magic_cmd='func_win32_libid' -- else -- lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' -- lt_cv_file_magic_cmd='$OBJDUMP -f' -- fi -- ;; -- --darwin* | rhapsody*) -- lt_cv_deplibs_check_method=pass_all -- ;; -- --freebsd* | dragonfly*) -- if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then -- case $host_cpu in -- i*86 ) -- # Not sure whether the presence of OpenBSD here was a mistake. -- # Let's accept both of them until this is cleared up. -- lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[[3-9]]86 (compact )?demand paged shared library' -- lt_cv_file_magic_cmd=/usr/bin/file -- lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` -- ;; -- esac -- else -- lt_cv_deplibs_check_method=pass_all -- fi -- ;; -- --gnu*) -- lt_cv_deplibs_check_method=pass_all -- ;; -- --hpux10.20* | hpux11*) -- lt_cv_file_magic_cmd=/usr/bin/file -- case $host_cpu in -- ia64*) -- lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64' -- lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so -- ;; -- hppa*64*) -- [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]'] -- lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl -- ;; -- *) -- lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]].[[0-9]]) shared library' -- lt_cv_file_magic_test_file=/usr/lib/libc.sl -- ;; -- esac -- ;; -- --interix[[3-9]]*) -- # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here -- lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|\.a)$' -- ;; -- --irix5* | irix6* | nonstopux*) -- case $LD in -- *-32|*"-32 ") libmagic=32-bit;; -- *-n32|*"-n32 ") libmagic=N32;; -- *-64|*"-64 ") libmagic=64-bit;; -- *) libmagic=never-match;; -- esac -- lt_cv_deplibs_check_method=pass_all -- ;; -- --# This must be Linux ELF. --linux* | k*bsd*-gnu) -- lt_cv_deplibs_check_method=pass_all -- ;; -- --netbsd* | netbsdelf*-gnu) -- if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then -- lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' -- else -- lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$' -- fi -- ;; -- --newos6*) -- lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)' -- lt_cv_file_magic_cmd=/usr/bin/file -- lt_cv_file_magic_test_file=/usr/lib/libnls.so -- ;; -- --nto-qnx*) -- lt_cv_deplibs_check_method=unknown -- ;; -- --openbsd*) -- if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then -- lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|\.so|_pic\.a)$' -- else -- lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' -- fi -- ;; -- --osf3* | osf4* | osf5*) -- lt_cv_deplibs_check_method=pass_all -- ;; -- --rdos*) -- lt_cv_deplibs_check_method=pass_all -- ;; -- --solaris*) -- lt_cv_deplibs_check_method=pass_all -- ;; -- --sysv4 | sysv4.3*) -- case $host_vendor in -- motorola) -- lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]' -- lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` -- ;; -- ncr) -- lt_cv_deplibs_check_method=pass_all -- ;; -- sequent) -- lt_cv_file_magic_cmd='/bin/file' -- lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )' -- ;; -- sni) -- lt_cv_file_magic_cmd='/bin/file' -- lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib" -- lt_cv_file_magic_test_file=/lib/libc.so -- ;; -- siemens) -- lt_cv_deplibs_check_method=pass_all -- ;; -- pc) -- lt_cv_deplibs_check_method=pass_all -- ;; -- esac -- ;; -- --sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) -- lt_cv_deplibs_check_method=pass_all -- ;; --esac --]) --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 --])# AC_DEPLIBS_CHECK_METHOD -- -- --# AC_PROG_NM --# ---------- --# find the pathname to a BSD-compatible name lister --AC_DEFUN([AC_PROG_NM], --[AC_CACHE_CHECK([for BSD-compatible nm], lt_cv_path_NM, --[if test -n "$NM"; then -- # Let the user override the test. -- lt_cv_path_NM="$NM" --else -- lt_nm_to_check="${ac_tool_prefix}nm" -- if test -n "$ac_tool_prefix" && test "$build" = "$host"; then -- lt_nm_to_check="$lt_nm_to_check nm" -- fi -- for lt_tmp_nm in $lt_nm_to_check; do -- lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR -- for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do -- IFS="$lt_save_ifs" -- test -z "$ac_dir" && ac_dir=. -- tmp_nm="$ac_dir/$lt_tmp_nm" -- if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then -- # Check to see if the nm accepts a BSD-compat flag. -- # Adding the `sed 1q' prevents false positives on HP-UX, which says: -- # nm: unknown option "B" ignored -- # Tru64's nm complains that /dev/null is an invalid object file -- case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in -- */dev/null* | *'Invalid file or object type'*) -- lt_cv_path_NM="$tmp_nm -B" -- break -- ;; -- *) -- case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in -- */dev/null*) -- lt_cv_path_NM="$tmp_nm -p" -- break -- ;; -- *) -- lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but -- continue # so that we can try to find one that supports BSD flags -- ;; -- esac -- ;; -- esac -- fi -- done -- IFS="$lt_save_ifs" -- done -- test -z "$lt_cv_path_NM" && lt_cv_path_NM=nm --fi]) --NM="$lt_cv_path_NM" --])# AC_PROG_NM -- -- --# AC_CHECK_LIBM --# ------------- --# check for math library --AC_DEFUN([AC_CHECK_LIBM], --[AC_REQUIRE([AC_CANONICAL_HOST])dnl --LIBM= --case $host in --*-*-beos* | *-*-cygwin* | *-*-pw32* | *-*-darwin*) -- # These system don't have libm, or don't need it -- ;; --*-ncr-sysv4.3*) -- AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw") -- AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm") -- ;; --*) -- AC_CHECK_LIB(m, cos, LIBM="-lm") -- ;; --esac --])# AC_CHECK_LIBM -- -- --# AC_LIBLTDL_CONVENIENCE([DIRECTORY]) --# ----------------------------------- --# sets LIBLTDL to the link flags for the libltdl convenience library and --# LTDLINCL to the include flags for the libltdl header and adds --# --enable-ltdl-convenience to the configure arguments. Note that --# AC_CONFIG_SUBDIRS is not called here. If DIRECTORY is not provided, --# it is assumed to be `libltdl'. LIBLTDL will be prefixed with --# '${top_builddir}/' and LTDLINCL will be prefixed with '${top_srcdir}/' --# (note the single quotes!). If your package is not flat and you're not --# using automake, define top_builddir and top_srcdir appropriately in --# the Makefiles. --AC_DEFUN([AC_LIBLTDL_CONVENIENCE], --[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl -- case $enable_ltdl_convenience in -- no) AC_MSG_ERROR([this package needs a convenience libltdl]) ;; -- "") enable_ltdl_convenience=yes -- ac_configure_args="$ac_configure_args --enable-ltdl-convenience" ;; -- esac -- LIBLTDL='${top_builddir}/'ifelse($#,1,[$1],['libltdl'])/libltdlc.la -- LTDLINCL='-I${top_srcdir}/'ifelse($#,1,[$1],['libltdl']) -- # For backwards non-gettext consistent compatibility... -- INCLTDL="$LTDLINCL" --])# AC_LIBLTDL_CONVENIENCE -- -- --# AC_LIBLTDL_INSTALLABLE([DIRECTORY]) --# ----------------------------------- --# sets LIBLTDL to the link flags for the libltdl installable library and --# LTDLINCL to the include flags for the libltdl header and adds --# --enable-ltdl-install to the configure arguments. Note that --# AC_CONFIG_SUBDIRS is not called here. If DIRECTORY is not provided, --# and an installed libltdl is not found, it is assumed to be `libltdl'. --# LIBLTDL will be prefixed with '${top_builddir}/'# and LTDLINCL with --# '${top_srcdir}/' (note the single quotes!). If your package is not --# flat and you're not using automake, define top_builddir and top_srcdir --# appropriately in the Makefiles. --# In the future, this macro may have to be called after AC_PROG_LIBTOOL. --AC_DEFUN([AC_LIBLTDL_INSTALLABLE], --[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl -- AC_CHECK_LIB(ltdl, lt_dlinit, -- [test x"$enable_ltdl_install" != xyes && enable_ltdl_install=no], -- [if test x"$enable_ltdl_install" = xno; then -- AC_MSG_WARN([libltdl not installed, but installation disabled]) -- else -- enable_ltdl_install=yes -- fi -- ]) -- if test x"$enable_ltdl_install" = x"yes"; then -- ac_configure_args="$ac_configure_args --enable-ltdl-install" -- LIBLTDL='${top_builddir}/'ifelse($#,1,[$1],['libltdl'])/libltdl.la -- LTDLINCL='-I${top_srcdir}/'ifelse($#,1,[$1],['libltdl']) -- else -- ac_configure_args="$ac_configure_args --enable-ltdl-install=no" -- LIBLTDL="-lltdl" -- LTDLINCL= -- fi -- # For backwards non-gettext consistent compatibility... -- INCLTDL="$LTDLINCL" --])# AC_LIBLTDL_INSTALLABLE -- -- --# AC_LIBTOOL_CXX --# -------------- --# enable support for C++ libraries --AC_DEFUN([AC_LIBTOOL_CXX], --[AC_REQUIRE([_LT_AC_LANG_CXX]) --])# AC_LIBTOOL_CXX -- -- --# _LT_AC_LANG_CXX --# --------------- --AC_DEFUN([_LT_AC_LANG_CXX], --[AC_REQUIRE([AC_PROG_CXX]) --AC_REQUIRE([_LT_AC_PROG_CXXCPP]) --_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}CXX]) --])# _LT_AC_LANG_CXX -- --# _LT_AC_PROG_CXXCPP --# ------------------ --AC_DEFUN([_LT_AC_PROG_CXXCPP], --[ --AC_REQUIRE([AC_PROG_CXX]) --if test -n "$CXX" && ( test "X$CXX" != "Xno" && -- ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || -- (test "X$CXX" != "Xg++"))) ; then -- AC_PROG_CXXCPP --fi --])# _LT_AC_PROG_CXXCPP -- --# AC_LIBTOOL_F77 --# -------------- --# enable support for Fortran 77 libraries --AC_DEFUN([AC_LIBTOOL_F77], --[AC_REQUIRE([_LT_AC_LANG_F77]) --])# AC_LIBTOOL_F77 -- -- --# _LT_AC_LANG_F77 --# --------------- --AC_DEFUN([_LT_AC_LANG_F77], --[AC_REQUIRE([AC_PROG_F77]) --_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}F77]) --])# _LT_AC_LANG_F77 -- -- --# AC_LIBTOOL_GCJ --# -------------- --# enable support for GCJ libraries --AC_DEFUN([AC_LIBTOOL_GCJ], --[AC_REQUIRE([_LT_AC_LANG_GCJ]) --])# AC_LIBTOOL_GCJ -- -- --# _LT_AC_LANG_GCJ --# --------------- --AC_DEFUN([_LT_AC_LANG_GCJ], --[AC_PROVIDE_IFELSE([AC_PROG_GCJ],[], -- [AC_PROVIDE_IFELSE([A][M_PROG_GCJ],[], -- [AC_PROVIDE_IFELSE([LT_AC_PROG_GCJ],[], -- [ifdef([AC_PROG_GCJ],[AC_REQUIRE([AC_PROG_GCJ])], -- [ifdef([A][M_PROG_GCJ],[AC_REQUIRE([A][M_PROG_GCJ])], -- [AC_REQUIRE([A][C_PROG_GCJ_OR_A][M_PROG_GCJ])])])])])]) --_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}GCJ]) --])# _LT_AC_LANG_GCJ -- -- --# AC_LIBTOOL_RC --# ------------- --# enable support for Windows resource files --AC_DEFUN([AC_LIBTOOL_RC], --[AC_REQUIRE([LT_AC_PROG_RC]) --_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}RC]) --])# AC_LIBTOOL_RC -- -- --# AC_LIBTOOL_LANG_C_CONFIG --# ------------------------ --# Ensure that the configuration vars for the C compiler are --# suitably defined. Those variables are subsequently used by --# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'. --AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG], [_LT_AC_LANG_C_CONFIG]) --AC_DEFUN([_LT_AC_LANG_C_CONFIG], --[lt_save_CC="$CC" --AC_LANG_PUSH(C) -- --# Source file extension for C test sources. --ac_ext=c -- --# Object file extension for compiled C test sources. --objext=o --_LT_AC_TAGVAR(objext, $1)=$objext -- --# Code to be used in simple compile tests --lt_simple_compile_test_code="int some_variable = 0;" -- --# Code to be used in simple link tests --lt_simple_link_test_code='int main(){return(0);}' -- --_LT_AC_SYS_COMPILER -- --# save warnings/boilerplate of simple test code --_LT_COMPILER_BOILERPLATE --_LT_LINKER_BOILERPLATE -- --AC_LIBTOOL_PROG_COMPILER_NO_RTTI($1) --AC_LIBTOOL_PROG_COMPILER_PIC($1) --AC_LIBTOOL_PROG_CC_C_O($1) --AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1) --AC_LIBTOOL_PROG_LD_SHLIBS($1) --AC_LIBTOOL_SYS_DYNAMIC_LINKER($1) --AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1) --AC_LIBTOOL_SYS_LIB_STRIP --AC_LIBTOOL_DLOPEN_SELF -- --# Report which library types will actually be built --AC_MSG_CHECKING([if libtool supports shared libraries]) --AC_MSG_RESULT([$can_build_shared]) -- --AC_MSG_CHECKING([whether to build shared libraries]) --test "$can_build_shared" = "no" && enable_shared=no -- --# On AIX, shared libraries and static libraries use the same namespace, and --# are all built from PIC. --case $host_os in --aix3*) -- test "$enable_shared" = yes && enable_static=no -- if test -n "$RANLIB"; then -- archive_cmds="$archive_cmds~\$RANLIB \$lib" -- postinstall_cmds='$RANLIB $lib' -- fi -- ;; -- --aix[[4-9]]*) -- if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then -- test "$enable_shared" = yes && enable_static=no -- fi -- ;; --esac --AC_MSG_RESULT([$enable_shared]) -- --AC_MSG_CHECKING([whether to build static libraries]) --# Make sure either enable_shared or enable_static is yes. --test "$enable_shared" = yes || enable_static=yes --AC_MSG_RESULT([$enable_static]) -- --AC_LIBTOOL_CONFIG($1) -- --AC_LANG_POP --CC="$lt_save_CC" --])# AC_LIBTOOL_LANG_C_CONFIG -- -- --# AC_LIBTOOL_LANG_CXX_CONFIG --# -------------------------- --# Ensure that the configuration vars for the C compiler are --# suitably defined. Those variables are subsequently used by --# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'. --AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG], [_LT_AC_LANG_CXX_CONFIG(CXX)]) --AC_DEFUN([_LT_AC_LANG_CXX_CONFIG], --[AC_LANG_PUSH(C++) --AC_REQUIRE([AC_PROG_CXX]) --AC_REQUIRE([_LT_AC_PROG_CXXCPP]) -- --_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no --_LT_AC_TAGVAR(allow_undefined_flag, $1)= --_LT_AC_TAGVAR(always_export_symbols, $1)=no --_LT_AC_TAGVAR(archive_expsym_cmds, $1)= --_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)= --_LT_AC_TAGVAR(hardcode_direct, $1)=no --_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)= --_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= --_LT_AC_TAGVAR(hardcode_libdir_separator, $1)= --_LT_AC_TAGVAR(hardcode_minus_L, $1)=no --_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported --_LT_AC_TAGVAR(hardcode_automatic, $1)=no --_LT_AC_TAGVAR(module_cmds, $1)= --_LT_AC_TAGVAR(module_expsym_cmds, $1)= --_LT_AC_TAGVAR(link_all_deplibs, $1)=unknown --_LT_AC_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds --_LT_AC_TAGVAR(no_undefined_flag, $1)= --_LT_AC_TAGVAR(whole_archive_flag_spec, $1)= --_LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=no -- --# Dependencies to place before and after the object being linked: --_LT_AC_TAGVAR(predep_objects, $1)= --_LT_AC_TAGVAR(postdep_objects, $1)= --_LT_AC_TAGVAR(predeps, $1)= --_LT_AC_TAGVAR(postdeps, $1)= --_LT_AC_TAGVAR(compiler_lib_search_path, $1)= --_LT_AC_TAGVAR(compiler_lib_search_dirs, $1)= -- --# Source file extension for C++ test sources. --ac_ext=cpp -- --# Object file extension for compiled C++ test sources. --objext=o --_LT_AC_TAGVAR(objext, $1)=$objext -- --# Code to be used in simple compile tests --lt_simple_compile_test_code="int some_variable = 0;" -- --# Code to be used in simple link tests --lt_simple_link_test_code='int main(int, char *[[]]) { return(0); }' -- --# ltmain only uses $CC for tagged configurations so make sure $CC is set. --_LT_AC_SYS_COMPILER -- --# save warnings/boilerplate of simple test code --_LT_COMPILER_BOILERPLATE --_LT_LINKER_BOILERPLATE -- --# Allow CC to be a program name with arguments. --lt_save_CC=$CC --lt_save_LD=$LD --lt_save_GCC=$GCC --GCC=$GXX --lt_save_with_gnu_ld=$with_gnu_ld --lt_save_path_LD=$lt_cv_path_LD --if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then -- lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx --else -- $as_unset lt_cv_prog_gnu_ld --fi --if test -n "${lt_cv_path_LDCXX+set}"; then -- lt_cv_path_LD=$lt_cv_path_LDCXX --else -- $as_unset lt_cv_path_LD --fi --test -z "${LDCXX+set}" || LD=$LDCXX --CC=${CXX-"c++"} --compiler=$CC --_LT_AC_TAGVAR(compiler, $1)=$CC --_LT_CC_BASENAME([$compiler]) -- --# We don't want -fno-exception wen compiling C++ code, so set the --# no_builtin_flag separately --if test "$GXX" = yes; then -- _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' --else -- _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= --fi -- --if test "$GXX" = yes; then -- # Set up default GNU C++ configuration -- -- AC_PROG_LD -- -- # Check if GNU C++ uses GNU ld as the underlying linker, since the -- # archiving commands below assume that GNU ld is being used. -- if test "$with_gnu_ld" = yes; then -- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' -- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' -- -- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir' -- _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' -- -- # If archive_cmds runs LD, not CC, wlarc should be empty -- # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to -- # investigate it a little bit more. (MM) -- wlarc='${wl}' -- -- # ancient GNU ld didn't support --whole-archive et. al. -- if eval "`$CC -print-prog-name=ld` --help 2>&1" | \ -- grep 'no-whole-archive' > /dev/null; then -- _LT_AC_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' -- else -- _LT_AC_TAGVAR(whole_archive_flag_spec, $1)= -- fi -- else -- with_gnu_ld=no -- wlarc= -- -- # A generic and very simple default shared library creation -- # command for GNU C++ for the case where it uses the native -- # linker, instead of GNU ld. If possible, this setting should -- # overridden to take advantage of the native linker features on -- # the platform it is being used on. -- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' -- fi -- -- # Commands to make compiler produce verbose output that lists -- # what "hidden" libraries, object files and flags are used when -- # linking a shared library. -- output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"' -- --else -- GXX=no -- with_gnu_ld=no -- wlarc= --fi -- --# PORTME: fill in a description of your system's C++ link characteristics --AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) --_LT_AC_TAGVAR(ld_shlibs, $1)=yes --case $host_os in -- aix3*) -- # FIXME: insert proper C++ library support -- _LT_AC_TAGVAR(ld_shlibs, $1)=no -- ;; -- aix[[4-9]]*) -- if test "$host_cpu" = ia64; then -- # On IA64, the linker does run time linking by default, so we don't -- # have to do anything special. -- aix_use_runtimelinking=no -- exp_sym_flag='-Bexport' -- no_entry_flag="" -- else -- aix_use_runtimelinking=no -- -- # Test if we are trying to use run time linking or normal -- # AIX style linking. If -brtl is somewhere in LDFLAGS, we -- # need to do runtime linking. -- case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) -- for ld_flag in $LDFLAGS; do -- case $ld_flag in -- *-brtl*) -- aix_use_runtimelinking=yes -- break -- ;; -- esac -- done -- ;; -- esac -- -- exp_sym_flag='-bexport' -- no_entry_flag='-bnoentry' -- fi -- -- # When large executables or shared objects are built, AIX ld can -- # have problems creating the table of contents. If linking a library -- # or program results in "error TOC overflow" add -mminimal-toc to -- # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not -- # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. -- -- _LT_AC_TAGVAR(archive_cmds, $1)='' -- _LT_AC_TAGVAR(hardcode_direct, $1)=yes -- _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':' -- _LT_AC_TAGVAR(link_all_deplibs, $1)=yes -- -- if test "$GXX" = yes; then -- case $host_os in aix4.[[012]]|aix4.[[012]].*) -- # We only want to do this on AIX 4.2 and lower, the check -- # below for broken collect2 doesn't work under 4.3+ -- collect2name=`${CC} -print-prog-name=collect2` -- if test -f "$collect2name" && \ -- strings "$collect2name" | grep resolve_lib_name >/dev/null -- then -- # We have reworked collect2 -- : -- else -- # We have old collect2 -- _LT_AC_TAGVAR(hardcode_direct, $1)=unsupported -- # It fails to find uninstalled libraries when the uninstalled -- # path is not listed in the libpath. Setting hardcode_minus_L -- # to unsupported forces relinking -- _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes -- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' -- _LT_AC_TAGVAR(hardcode_libdir_separator, $1)= -- fi -- ;; -- esac -- shared_flag='-shared' -- if test "$aix_use_runtimelinking" = yes; then -- shared_flag="$shared_flag "'${wl}-G' -- fi -- else -- # not using gcc -- if test "$host_cpu" = ia64; then -- # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release -- # chokes on -Wl,-G. The following line is correct: -- shared_flag='-G' -- else -- if test "$aix_use_runtimelinking" = yes; then -- shared_flag='${wl}-G' -- else -- shared_flag='${wl}-bM:SRE' -- fi -- fi -- fi -- -- # It seems that -bexpall does not export symbols beginning with -- # underscore (_), so it is better to generate a list of symbols to export. -- _LT_AC_TAGVAR(always_export_symbols, $1)=yes -- if test "$aix_use_runtimelinking" = yes; then -- # Warning - without using the other runtime loading flags (-brtl), -- # -berok will link without error, but may produce a broken library. -- _LT_AC_TAGVAR(allow_undefined_flag, $1)='-berok' -- # Determine the default libpath from the value encoded in an empty executable. -- _LT_AC_SYS_LIBPATH_AIX -- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" -- -- _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" -- else -- if test "$host_cpu" = ia64; then -- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' -- _LT_AC_TAGVAR(allow_undefined_flag, $1)="-z nodefs" -- _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" -- else -- # Determine the default libpath from the value encoded in an empty executable. -- _LT_AC_SYS_LIBPATH_AIX -- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" -- # Warning - without using the other run time loading flags, -- # -berok will link without error, but may produce a broken library. -- _LT_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' -- _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' -- # Exported symbols can be pulled into shared objects from archives -- _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='$convenience' -- _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes -- # This is similar to how AIX traditionally builds its shared libraries. -- _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' -- fi -- fi -- ;; -- -- beos*) -- if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then -- _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported -- # Joseph Beckenbach says some releases of gcc -- # support --undefined. This deserves some investigation. FIXME -- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -- else -- _LT_AC_TAGVAR(ld_shlibs, $1)=no -- fi -- ;; -- -- chorus*) -- case $cc_basename in -- *) -- # FIXME: insert proper C++ library support -- _LT_AC_TAGVAR(ld_shlibs, $1)=no -- ;; -- esac -- ;; -- -- cygwin* | mingw* | pw32*) -- # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, -- # as there is no search path for DLLs. -- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' -- _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported -- _LT_AC_TAGVAR(always_export_symbols, $1)=no -- _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes -- -- if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then -- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' -- # If the export-symbols file already is a .def file (1st line -- # is EXPORTS), use it as is; otherwise, prepend... -- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then -- cp $export_symbols $output_objdir/$soname.def; -- else -- echo EXPORTS > $output_objdir/$soname.def; -- cat $export_symbols >> $output_objdir/$soname.def; -- fi~ -- $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' -- else -- _LT_AC_TAGVAR(ld_shlibs, $1)=no -- fi -- ;; -- darwin* | rhapsody*) -- _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no -- _LT_AC_TAGVAR(hardcode_direct, $1)=no -- _LT_AC_TAGVAR(hardcode_automatic, $1)=yes -- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported -- _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='' -- _LT_AC_TAGVAR(link_all_deplibs, $1)=yes -- _LT_AC_TAGVAR(allow_undefined_flag, $1)="$_lt_dar_allow_undefined" -- if test "$GXX" = yes ; then -- output_verbose_link_cmd='echo' -- _LT_AC_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" -- _LT_AC_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" -- _LT_AC_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" -- _LT_AC_TAGVAR(module_expsym_cmds, $1)="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" -- if test "$lt_cv_apple_cc_single_mod" != "yes"; then -- _LT_AC_TAGVAR(archive_cmds, $1)="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}" -- _LT_AC_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dar_export_syms}${_lt_dsymutil}" -- fi -- else -- case $cc_basename in -- xlc*) -- output_verbose_link_cmd='echo' -- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $xlcverstring' -- _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' -- # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds -- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $xlcverstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' -- _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' -- ;; -- *) -- _LT_AC_TAGVAR(ld_shlibs, $1)=no -- ;; -- esac -- fi -- ;; -- -- dgux*) -- case $cc_basename in -- ec++*) -- # FIXME: insert proper C++ library support -- _LT_AC_TAGVAR(ld_shlibs, $1)=no -- ;; -- ghcx*) -- # Green Hills C++ Compiler -- # FIXME: insert proper C++ library support -- _LT_AC_TAGVAR(ld_shlibs, $1)=no -- ;; -- *) -- # FIXME: insert proper C++ library support -- _LT_AC_TAGVAR(ld_shlibs, $1)=no -- ;; -- esac -- ;; -- freebsd[[12]]*) -- # C++ shared libraries reported to be fairly broken before switch to ELF -- _LT_AC_TAGVAR(ld_shlibs, $1)=no -- ;; -- freebsd-elf*) -- _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no -- ;; -- freebsd* | dragonfly*) -- # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF -- # conventions -- _LT_AC_TAGVAR(ld_shlibs, $1)=yes -- ;; -- gnu*) -- ;; -- hpux9*) -- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' -- _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: -- _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' -- _LT_AC_TAGVAR(hardcode_direct, $1)=yes -- _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, -- # but as the default -- # location of the library. -- -- case $cc_basename in -- CC*) -- # FIXME: insert proper C++ library support -- _LT_AC_TAGVAR(ld_shlibs, $1)=no -- ;; -- aCC*) -- _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' -- # Commands to make compiler produce verbose output that lists -- # what "hidden" libraries, object files and flags are used when -- # linking a shared library. -- # -- # There doesn't appear to be a way to prevent this compiler from -- # explicitly linking system object files so we need to strip them -- # from the output so that they don't get included in the library -- # dependencies. -- output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | grep "[[-]]L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' -- ;; -- *) -- if test "$GXX" = yes; then -- _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' -- else -- # FIXME: insert proper C++ library support -- _LT_AC_TAGVAR(ld_shlibs, $1)=no -- fi -- ;; -- esac -- ;; -- hpux10*|hpux11*) -- if test $with_gnu_ld = no; then -- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' -- _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: -- -- case $host_cpu in -- hppa*64*|ia64*) ;; -- *) -- _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' -- ;; -- esac -- fi -- case $host_cpu in -- hppa*64*|ia64*) -- _LT_AC_TAGVAR(hardcode_direct, $1)=no -- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no -- ;; -- *) -- _LT_AC_TAGVAR(hardcode_direct, $1)=yes -- _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, -- # but as the default -- # location of the library. -- ;; -- esac -- -- case $cc_basename in -- CC*) -- # FIXME: insert proper C++ library support -- _LT_AC_TAGVAR(ld_shlibs, $1)=no -- ;; -- aCC*) -- case $host_cpu in -- hppa*64*) -- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' -- ;; -- ia64*) -- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' -- ;; -- *) -- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' -- ;; -- esac -- # Commands to make compiler produce verbose output that lists -- # what "hidden" libraries, object files and flags are used when -- # linking a shared library. -- # -- # There doesn't appear to be a way to prevent this compiler from -- # explicitly linking system object files so we need to strip them -- # from the output so that they don't get included in the library -- # dependencies. -- output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | grep "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' -- ;; -- *) -- if test "$GXX" = yes; then -- if test $with_gnu_ld = no; then -- case $host_cpu in -- hppa*64*) -- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' -- ;; -- ia64*) -- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' -- ;; -- *) -- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' -- ;; -- esac -- fi -- else -- # FIXME: insert proper C++ library support -- _LT_AC_TAGVAR(ld_shlibs, $1)=no -- fi -- ;; -- esac -- ;; -- interix[[3-9]]*) -- _LT_AC_TAGVAR(hardcode_direct, $1)=no -- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no -- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' -- _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' -- # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. -- # Instead, shared libraries are loaded at an image base (0x10000000 by -- # default) and relocated if they conflict, which is a slow very memory -- # consuming and fragmenting process. To avoid this, we pick a random, -- # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link -- # time. Moving up from 0x10000000 also allows more sbrk(2) space. -- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' -- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' -- ;; -- irix5* | irix6*) -- case $cc_basename in -- CC*) -- # SGI C++ -- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' -- -- # Archives containing C++ object files must be created using -- # "CC -ar", where "CC" is the IRIX C++ compiler. This is -- # necessary to make sure instantiated templates are included -- # in the archive. -- _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs' -- ;; -- *) -- if test "$GXX" = yes; then -- if test "$with_gnu_ld" = no; then -- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' -- else -- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` -o $lib' -- fi -- fi -- _LT_AC_TAGVAR(link_all_deplibs, $1)=yes -- ;; -- esac -- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' -- _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: -- ;; -- linux* | k*bsd*-gnu) -- case $cc_basename in -- KCC*) -- # Kuck and Associates, Inc. (KAI) C++ Compiler -- -- # KCC will only create a shared library if the output file -- # ends with ".so" (or ".sl" for HP-UX), so rename the library -- # to its proper name (with version) after linking. -- _LT_AC_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' -- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib' -- # Commands to make compiler produce verbose output that lists -- # what "hidden" libraries, object files and flags are used when -- # linking a shared library. -- # -- # There doesn't appear to be a way to prevent this compiler from -- # explicitly linking system object files so we need to strip them -- # from the output so that they don't get included in the library -- # dependencies. -- output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | grep "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' -- -- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath,$libdir' -- _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' -- -- # Archives containing C++ object files must be created using -- # "CC -Bstatic", where "CC" is the KAI C++ compiler. -- _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' -- ;; -- icpc*) -- # Intel C++ -- with_gnu_ld=yes -- # version 8.0 and above of icpc choke on multiply defined symbols -- # if we add $predep_objects and $postdep_objects, however 7.1 and -- # earlier do not add the objects themselves. -- case `$CC -V 2>&1` in -- *"Version 7."*) -- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' -- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' -- ;; -- *) # Version 8.0 or newer -- tmp_idyn= -- case $host_cpu in -- ia64*) tmp_idyn=' -i_dynamic';; -- esac -- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' -- ;; -- esac -- _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no -- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' -- _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' -- _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' -- ;; -- pgCC* | pgcpp*) -- # Portland Group C++ compiler -- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' -- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' -- -- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir' -- _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' -- _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' -- ;; -- cxx*) -- # Compaq C++ -- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' -- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols' -- -- runpath_var=LD_RUN_PATH -- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' -- _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: -- -- # Commands to make compiler produce verbose output that lists -- # what "hidden" libraries, object files and flags are used when -- # linking a shared library. -- # -- # There doesn't appear to be a way to prevent this compiler from -- # explicitly linking system object files so we need to strip them -- # from the output so that they don't get included in the library -- # dependencies. -- output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' -- ;; -- *) -- case `$CC -V 2>&1 | sed 5q` in -- *Sun\ C*) -- # Sun C++ 5.9 -- _LT_AC_TAGVAR(no_undefined_flag, $1)=' -zdefs' -- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' -- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols' -- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' -- _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' -- -- # Not sure whether something based on -- # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 -- # would be better. -- output_verbose_link_cmd='echo' -- -- # Archives containing C++ object files must be created using -- # "CC -xar", where "CC" is the Sun C++ compiler. This is -- # necessary to make sure instantiated templates are included -- # in the archive. -- _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' -- ;; -- esac -- ;; -- esac -- ;; -- lynxos*) -- # FIXME: insert proper C++ library support -- _LT_AC_TAGVAR(ld_shlibs, $1)=no -- ;; -- m88k*) -- # FIXME: insert proper C++ library support -- _LT_AC_TAGVAR(ld_shlibs, $1)=no -- ;; -- mvs*) -- case $cc_basename in -- cxx*) -- # FIXME: insert proper C++ library support -- _LT_AC_TAGVAR(ld_shlibs, $1)=no -- ;; -- *) -- # FIXME: insert proper C++ library support -- _LT_AC_TAGVAR(ld_shlibs, $1)=no -- ;; -- esac -- ;; -- netbsd* | netbsdelf*-gnu) -- if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then -- _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' -- wlarc= -- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' -- _LT_AC_TAGVAR(hardcode_direct, $1)=yes -- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no -- fi -- # Workaround some broken pre-1.5 toolchains -- output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"' -- ;; -- openbsd2*) -- # C++ shared libraries are fairly broken -- _LT_AC_TAGVAR(ld_shlibs, $1)=no -- ;; -- openbsd*) -- if test -f /usr/libexec/ld.so; then -- _LT_AC_TAGVAR(hardcode_direct, $1)=yes -- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no -- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' -- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' -- if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then -- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib' -- _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' -- _LT_AC_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' -- fi -- output_verbose_link_cmd='echo' -- else -- _LT_AC_TAGVAR(ld_shlibs, $1)=no -- fi -- ;; -- osf3*) -- case $cc_basename in -- KCC*) -- # Kuck and Associates, Inc. (KAI) C++ Compiler -- -- # KCC will only create a shared library if the output file -- # ends with ".so" (or ".sl" for HP-UX), so rename the library -- # to its proper name (with version) after linking. -- _LT_AC_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' -- -- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' -- _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: -- -- # Archives containing C++ object files must be created using -- # "CC -Bstatic", where "CC" is the KAI C++ compiler. -- _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' -- -- ;; -- RCC*) -- # Rational C++ 2.4.1 -- # FIXME: insert proper C++ library support -- _LT_AC_TAGVAR(ld_shlibs, $1)=no -- ;; -- cxx*) -- _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' -- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && echo ${wl}-set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' -- -- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' -- _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: -- -- # Commands to make compiler produce verbose output that lists -- # what "hidden" libraries, object files and flags are used when -- # linking a shared library. -- # -- # There doesn't appear to be a way to prevent this compiler from -- # explicitly linking system object files so we need to strip them -- # from the output so that they don't get included in the library -- # dependencies. -- output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' -- ;; -- *) -- if test "$GXX" = yes && test "$with_gnu_ld" = no; then -- _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' -- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' -- -- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' -- _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: -- -- # Commands to make compiler produce verbose output that lists -- # what "hidden" libraries, object files and flags are used when -- # linking a shared library. -- output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"' -- -- else -- # FIXME: insert proper C++ library support -- _LT_AC_TAGVAR(ld_shlibs, $1)=no -- fi -- ;; -- esac -- ;; -- osf4* | osf5*) -- case $cc_basename in -- KCC*) -- # Kuck and Associates, Inc. (KAI) C++ Compiler -- -- # KCC will only create a shared library if the output file -- # ends with ".so" (or ".sl" for HP-UX), so rename the library -- # to its proper name (with version) after linking. -- _LT_AC_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' -- -- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' -- _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: -- -- # Archives containing C++ object files must be created using -- # the KAI C++ compiler. -- _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs' -- ;; -- RCC*) -- # Rational C++ 2.4.1 -- # FIXME: insert proper C++ library support -- _LT_AC_TAGVAR(ld_shlibs, $1)=no -- ;; -- cxx*) -- _LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' -- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' -- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ -- echo "-hidden">> $lib.exp~ -- $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname -Wl,-input -Wl,$lib.exp `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~ -- $rm $lib.exp' -- -- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' -- _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: -- -- # Commands to make compiler produce verbose output that lists -- # what "hidden" libraries, object files and flags are used when -- # linking a shared library. -- # -- # There doesn't appear to be a way to prevent this compiler from -- # explicitly linking system object files so we need to strip them -- # from the output so that they don't get included in the library -- # dependencies. -- output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' -- ;; -- *) -- if test "$GXX" = yes && test "$with_gnu_ld" = no; then -- _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' -- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' -- -- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' -- _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: -- -- # Commands to make compiler produce verbose output that lists -- # what "hidden" libraries, object files and flags are used when -- # linking a shared library. -- output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"' -- -- else -- # FIXME: insert proper C++ library support -- _LT_AC_TAGVAR(ld_shlibs, $1)=no -- fi -- ;; -- esac -- ;; -- psos*) -- # FIXME: insert proper C++ library support -- _LT_AC_TAGVAR(ld_shlibs, $1)=no -- ;; -- sunos4*) -- case $cc_basename in -- CC*) -- # Sun C++ 4.x -- # FIXME: insert proper C++ library support -- _LT_AC_TAGVAR(ld_shlibs, $1)=no -- ;; -- lcc*) -- # Lucid -- # FIXME: insert proper C++ library support -- _LT_AC_TAGVAR(ld_shlibs, $1)=no -- ;; -- *) -- # FIXME: insert proper C++ library support -- _LT_AC_TAGVAR(ld_shlibs, $1)=no -- ;; -- esac -- ;; -- solaris*) -- case $cc_basename in -- CC*) -- # Sun C++ 4.2, 5.x and Centerline C++ -- _LT_AC_TAGVAR(archive_cmds_need_lc,$1)=yes -- _LT_AC_TAGVAR(no_undefined_flag, $1)=' -zdefs' -- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' -- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ -- $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp' -- -- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' -- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no -- case $host_os in -- solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; -- *) -- # The compiler driver will combine and reorder linker options, -- # but understands `-z linker_flag'. -- # Supported since Solaris 2.6 (maybe 2.5.1?) -- _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' -- ;; -- esac -- _LT_AC_TAGVAR(link_all_deplibs, $1)=yes -- -- output_verbose_link_cmd='echo' -- -- # Archives containing C++ object files must be created using -- # "CC -xar", where "CC" is the Sun C++ compiler. This is -- # necessary to make sure instantiated templates are included -- # in the archive. -- _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' -- ;; -- gcx*) -- # Green Hills C++ Compiler -- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' -- -- # The C++ compiler must be used to create the archive. -- _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs' -- ;; -- *) -- # GNU C++ compiler with Solaris linker -- if test "$GXX" = yes && test "$with_gnu_ld" = no; then -- _LT_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs' -- if $CC --version | grep -v '^2\.7' > /dev/null; then -- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' -- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ -- $CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp' -- -- # Commands to make compiler produce verbose output that lists -- # what "hidden" libraries, object files and flags are used when -- # linking a shared library. -- output_verbose_link_cmd="$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\"" -- else -- # g++ 2.7 appears to require `-G' NOT `-shared' on this -- # platform. -- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' -- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ -- $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp' -- -- # Commands to make compiler produce verbose output that lists -- # what "hidden" libraries, object files and flags are used when -- # linking a shared library. -- output_verbose_link_cmd="$CC -G $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\"" -- fi -- -- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $wl$libdir' -- case $host_os in -- solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; -- *) -- _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' -- ;; -- esac -- fi -- ;; -- esac -- ;; -- sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) -- _LT_AC_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' -- _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no -- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no -- runpath_var='LD_RUN_PATH' -- -- case $cc_basename in -- CC*) -- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' -- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' -- ;; -- *) -- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' -- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' -- ;; -- esac -- ;; -- sysv5* | sco3.2v5* | sco5v6*) -- # Note: We can NOT use -z defs as we might desire, because we do not -- # link with -lc, and that would cause any symbols used from libc to -- # always be unresolved, which means just about no library would -- # ever link correctly. If we're not using GNU ld we use -z text -- # though, which does catch some bad symbols but isn't as heavy-handed -- # as -z defs. -- # For security reasons, it is highly recommended that you always -- # use absolute paths for naming shared libraries, and exclude the -- # DT_RUNPATH tag from executables and libraries. But doing so -- # requires that you compile everything twice, which is a pain. -- # So that behaviour is only enabled if SCOABSPATH is set to a -- # non-empty value in the environment. Most likely only useful for -- # creating official distributions of packages. -- # This is a hack until libtool officially supports absolute path -- # names for shared libraries. -- _LT_AC_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' -- _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs' -- _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no -- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no -- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' -- _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':' -- _LT_AC_TAGVAR(link_all_deplibs, $1)=yes -- _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' -- runpath_var='LD_RUN_PATH' -- -- case $cc_basename in -- CC*) -- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' -- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' -- ;; -- *) -- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' -- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' -- ;; -- esac -- ;; -- tandem*) -- case $cc_basename in -- NCC*) -- # NonStop-UX NCC 3.20 -- # FIXME: insert proper C++ library support -- _LT_AC_TAGVAR(ld_shlibs, $1)=no -- ;; -- *) -- # FIXME: insert proper C++ library support -- _LT_AC_TAGVAR(ld_shlibs, $1)=no -- ;; -- esac -- ;; -- vxworks*) -- # FIXME: insert proper C++ library support -- _LT_AC_TAGVAR(ld_shlibs, $1)=no -- ;; -- *) -- # FIXME: insert proper C++ library support -- _LT_AC_TAGVAR(ld_shlibs, $1)=no -- ;; --esac --AC_MSG_RESULT([$_LT_AC_TAGVAR(ld_shlibs, $1)]) --test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no -- --_LT_AC_TAGVAR(GCC, $1)="$GXX" --_LT_AC_TAGVAR(LD, $1)="$LD" -- --AC_LIBTOOL_POSTDEP_PREDEP($1) --AC_LIBTOOL_PROG_COMPILER_PIC($1) --AC_LIBTOOL_PROG_CC_C_O($1) --AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1) --AC_LIBTOOL_PROG_LD_SHLIBS($1) --AC_LIBTOOL_SYS_DYNAMIC_LINKER($1) --AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1) -- --AC_LIBTOOL_CONFIG($1) -- --AC_LANG_POP --CC=$lt_save_CC --LDCXX=$LD --LD=$lt_save_LD --GCC=$lt_save_GCC --with_gnu_ldcxx=$with_gnu_ld --with_gnu_ld=$lt_save_with_gnu_ld --lt_cv_path_LDCXX=$lt_cv_path_LD --lt_cv_path_LD=$lt_save_path_LD --lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld --lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld --])# AC_LIBTOOL_LANG_CXX_CONFIG -- --# AC_LIBTOOL_POSTDEP_PREDEP([TAGNAME]) --# ------------------------------------ --# Figure out "hidden" library dependencies from verbose --# compiler output when linking a shared library. --# Parse the compiler output and extract the necessary --# objects, libraries and library flags. --AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP], --[AC_REQUIRE([LT_AC_PROG_SED])dnl --dnl we can't use the lt_simple_compile_test_code here, --dnl because it contains code intended for an executable, --dnl not a library. It's possible we should let each --dnl tag define a new lt_????_link_test_code variable, --dnl but it's only used here... --ifelse([$1],[],[cat > conftest.$ac_ext < conftest.$ac_ext < conftest.$ac_ext < conftest.$ac_ext <&1 | sed 5q` in -- *Sun\ C*) -- # Sun C++ 5.9 -- # -- # The more standards-conforming stlport4 library is -- # incompatible with the Cstd library. Avoid specifying -- # it if it's in CXXFLAGS. Ignore libCrun as -- # -library=stlport4 depends on it. -- case " $CXX $CXXFLAGS " in -- *" -library=stlport4 "*) -- solaris_use_stlport4=yes -- ;; -- esac -- if test "$solaris_use_stlport4" != yes; then -- _LT_AC_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun' -- fi -- ;; -- esac -- ;; -- --solaris*) -- case $cc_basename in -- CC*) -- # The more standards-conforming stlport4 library is -- # incompatible with the Cstd library. Avoid specifying -- # it if it's in CXXFLAGS. Ignore libCrun as -- # -library=stlport4 depends on it. -- case " $CXX $CXXFLAGS " in -- *" -library=stlport4 "*) -- solaris_use_stlport4=yes -- ;; -- esac -- -- # Adding this requires a known-good setup of shared libraries for -- # Sun compiler versions before 5.6, else PIC objects from an old -- # archive will be linked into the output, leading to subtle bugs. -- if test "$solaris_use_stlport4" != yes; then -- _LT_AC_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun' -- fi -- ;; -- esac -- ;; --esac --]) --case " $_LT_AC_TAGVAR(postdeps, $1) " in --*" -lc "*) _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no ;; --esac --])# AC_LIBTOOL_POSTDEP_PREDEP -- --# AC_LIBTOOL_LANG_F77_CONFIG --# -------------------------- --# Ensure that the configuration vars for the C compiler are --# suitably defined. Those variables are subsequently used by --# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'. --AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG], [_LT_AC_LANG_F77_CONFIG(F77)]) --AC_DEFUN([_LT_AC_LANG_F77_CONFIG], --[AC_REQUIRE([AC_PROG_F77]) --AC_LANG_PUSH(Fortran 77) -- --_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no --_LT_AC_TAGVAR(allow_undefined_flag, $1)= --_LT_AC_TAGVAR(always_export_symbols, $1)=no --_LT_AC_TAGVAR(archive_expsym_cmds, $1)= --_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)= --_LT_AC_TAGVAR(hardcode_direct, $1)=no --_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)= --_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= --_LT_AC_TAGVAR(hardcode_libdir_separator, $1)= --_LT_AC_TAGVAR(hardcode_minus_L, $1)=no --_LT_AC_TAGVAR(hardcode_automatic, $1)=no --_LT_AC_TAGVAR(module_cmds, $1)= --_LT_AC_TAGVAR(module_expsym_cmds, $1)= --_LT_AC_TAGVAR(link_all_deplibs, $1)=unknown --_LT_AC_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds --_LT_AC_TAGVAR(no_undefined_flag, $1)= --_LT_AC_TAGVAR(whole_archive_flag_spec, $1)= --_LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=no -- --# Source file extension for f77 test sources. --ac_ext=f -- --# Object file extension for compiled f77 test sources. --objext=o --_LT_AC_TAGVAR(objext, $1)=$objext -- --# Code to be used in simple compile tests --lt_simple_compile_test_code="\ -- subroutine t -- return -- end --" -- --# Code to be used in simple link tests --lt_simple_link_test_code="\ -- program t -- end --" -- --# ltmain only uses $CC for tagged configurations so make sure $CC is set. --_LT_AC_SYS_COMPILER -- --# save warnings/boilerplate of simple test code --_LT_COMPILER_BOILERPLATE --_LT_LINKER_BOILERPLATE -- --# Allow CC to be a program name with arguments. --lt_save_CC="$CC" --CC=${F77-"f77"} --compiler=$CC --_LT_AC_TAGVAR(compiler, $1)=$CC --_LT_CC_BASENAME([$compiler]) -- --AC_MSG_CHECKING([if libtool supports shared libraries]) --AC_MSG_RESULT([$can_build_shared]) -- --AC_MSG_CHECKING([whether to build shared libraries]) --test "$can_build_shared" = "no" && enable_shared=no -- --# On AIX, shared libraries and static libraries use the same namespace, and --# are all built from PIC. --case $host_os in --aix3*) -- test "$enable_shared" = yes && enable_static=no -- if test -n "$RANLIB"; then -- archive_cmds="$archive_cmds~\$RANLIB \$lib" -- postinstall_cmds='$RANLIB $lib' -- fi -- ;; --aix[[4-9]]*) -- if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then -- test "$enable_shared" = yes && enable_static=no -- fi -- ;; --esac --AC_MSG_RESULT([$enable_shared]) -- --AC_MSG_CHECKING([whether to build static libraries]) --# Make sure either enable_shared or enable_static is yes. --test "$enable_shared" = yes || enable_static=yes --AC_MSG_RESULT([$enable_static]) -- --_LT_AC_TAGVAR(GCC, $1)="$G77" --_LT_AC_TAGVAR(LD, $1)="$LD" -- --AC_LIBTOOL_PROG_COMPILER_PIC($1) --AC_LIBTOOL_PROG_CC_C_O($1) --AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1) --AC_LIBTOOL_PROG_LD_SHLIBS($1) --AC_LIBTOOL_SYS_DYNAMIC_LINKER($1) --AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1) -- --AC_LIBTOOL_CONFIG($1) -- --AC_LANG_POP --CC="$lt_save_CC" --])# AC_LIBTOOL_LANG_F77_CONFIG -- -- --# AC_LIBTOOL_LANG_GCJ_CONFIG --# -------------------------- --# Ensure that the configuration vars for the C compiler are --# suitably defined. Those variables are subsequently used by --# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'. --AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG], [_LT_AC_LANG_GCJ_CONFIG(GCJ)]) --AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG], --[AC_LANG_SAVE -- --# Source file extension for Java test sources. --ac_ext=java -- --# Object file extension for compiled Java test sources. --objext=o --_LT_AC_TAGVAR(objext, $1)=$objext -- --# Code to be used in simple compile tests --lt_simple_compile_test_code="class foo {}" -- --# Code to be used in simple link tests --lt_simple_link_test_code='public class conftest { public static void main(String[[]] argv) {}; }' -- --# ltmain only uses $CC for tagged configurations so make sure $CC is set. --_LT_AC_SYS_COMPILER -- --# save warnings/boilerplate of simple test code --_LT_COMPILER_BOILERPLATE --_LT_LINKER_BOILERPLATE -- --# Allow CC to be a program name with arguments. --lt_save_CC="$CC" --CC=${GCJ-"gcj"} --compiler=$CC --_LT_AC_TAGVAR(compiler, $1)=$CC --_LT_CC_BASENAME([$compiler]) -- --# GCJ did not exist at the time GCC didn't implicitly link libc in. --_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no -- --_LT_AC_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds -- --AC_LIBTOOL_PROG_COMPILER_NO_RTTI($1) --AC_LIBTOOL_PROG_COMPILER_PIC($1) --AC_LIBTOOL_PROG_CC_C_O($1) --AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1) --AC_LIBTOOL_PROG_LD_SHLIBS($1) --AC_LIBTOOL_SYS_DYNAMIC_LINKER($1) --AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1) -- --AC_LIBTOOL_CONFIG($1) -- --AC_LANG_RESTORE --CC="$lt_save_CC" --])# AC_LIBTOOL_LANG_GCJ_CONFIG -- -- --# AC_LIBTOOL_LANG_RC_CONFIG --# ------------------------- --# Ensure that the configuration vars for the Windows resource compiler are --# suitably defined. Those variables are subsequently used by --# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'. --AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG], [_LT_AC_LANG_RC_CONFIG(RC)]) --AC_DEFUN([_LT_AC_LANG_RC_CONFIG], --[AC_LANG_SAVE -- --# Source file extension for RC test sources. --ac_ext=rc -- --# Object file extension for compiled RC test sources. --objext=o --_LT_AC_TAGVAR(objext, $1)=$objext -- --# Code to be used in simple compile tests --lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }' -- --# Code to be used in simple link tests --lt_simple_link_test_code="$lt_simple_compile_test_code" -- --# ltmain only uses $CC for tagged configurations so make sure $CC is set. --_LT_AC_SYS_COMPILER -- --# save warnings/boilerplate of simple test code --_LT_COMPILER_BOILERPLATE --_LT_LINKER_BOILERPLATE -- --# Allow CC to be a program name with arguments. --lt_save_CC="$CC" --CC=${RC-"windres"} --compiler=$CC --_LT_AC_TAGVAR(compiler, $1)=$CC --_LT_CC_BASENAME([$compiler]) --_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes -- --AC_LIBTOOL_CONFIG($1) -- --AC_LANG_RESTORE --CC="$lt_save_CC" --])# AC_LIBTOOL_LANG_RC_CONFIG -- -- --# AC_LIBTOOL_CONFIG([TAGNAME]) --# ---------------------------- --# If TAGNAME is not passed, then create an initial libtool script --# with a default configuration from the untagged config vars. Otherwise --# add code to config.status for appending the configuration named by --# TAGNAME from the matching tagged config vars. --AC_DEFUN([AC_LIBTOOL_CONFIG], --[# The else clause should only fire when bootstrapping the --# libtool distribution, otherwise you forgot to ship ltmain.sh --# with your package, and you will get complaints that there are --# no rules to generate ltmain.sh. --if test -f "$ltmain"; then -- # See if we are running on zsh, and set the options which allow our commands through -- # without removal of \ escapes. -- if test -n "${ZSH_VERSION+set}" ; then -- setopt NO_GLOB_SUBST -- fi -- # Now quote all the things that may contain metacharacters while being -- # careful not to overquote the AC_SUBSTed values. We take copies of the -- # variables and quote the copies for generation of the libtool script. -- for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \ -- SED SHELL STRIP \ -- libname_spec library_names_spec soname_spec extract_expsyms_cmds \ -- old_striplib striplib file_magic_cmd finish_cmds finish_eval \ -- deplibs_check_method reload_flag reload_cmds need_locks \ -- lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ -- lt_cv_sys_global_symbol_to_c_name_address \ -- sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ -- old_postinstall_cmds old_postuninstall_cmds \ -- _LT_AC_TAGVAR(compiler, $1) \ -- _LT_AC_TAGVAR(CC, $1) \ -- _LT_AC_TAGVAR(LD, $1) \ -- _LT_AC_TAGVAR(lt_prog_compiler_wl, $1) \ -- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1) \ -- _LT_AC_TAGVAR(lt_prog_compiler_static, $1) \ -- _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) \ -- _LT_AC_TAGVAR(export_dynamic_flag_spec, $1) \ -- _LT_AC_TAGVAR(thread_safe_flag_spec, $1) \ -- _LT_AC_TAGVAR(whole_archive_flag_spec, $1) \ -- _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1) \ -- _LT_AC_TAGVAR(old_archive_cmds, $1) \ -- _LT_AC_TAGVAR(old_archive_from_new_cmds, $1) \ -- _LT_AC_TAGVAR(predep_objects, $1) \ -- _LT_AC_TAGVAR(postdep_objects, $1) \ -- _LT_AC_TAGVAR(predeps, $1) \ -- _LT_AC_TAGVAR(postdeps, $1) \ -- _LT_AC_TAGVAR(compiler_lib_search_path, $1) \ -- _LT_AC_TAGVAR(compiler_lib_search_dirs, $1) \ -- _LT_AC_TAGVAR(archive_cmds, $1) \ -- _LT_AC_TAGVAR(archive_expsym_cmds, $1) \ -- _LT_AC_TAGVAR(postinstall_cmds, $1) \ -- _LT_AC_TAGVAR(postuninstall_cmds, $1) \ -- _LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1) \ -- _LT_AC_TAGVAR(allow_undefined_flag, $1) \ -- _LT_AC_TAGVAR(no_undefined_flag, $1) \ -- _LT_AC_TAGVAR(export_symbols_cmds, $1) \ -- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) \ -- _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1) \ -- _LT_AC_TAGVAR(hardcode_libdir_separator, $1) \ -- _LT_AC_TAGVAR(hardcode_automatic, $1) \ -- _LT_AC_TAGVAR(module_cmds, $1) \ -- _LT_AC_TAGVAR(module_expsym_cmds, $1) \ -- _LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1) \ -- _LT_AC_TAGVAR(fix_srcfile_path, $1) \ -- _LT_AC_TAGVAR(exclude_expsyms, $1) \ -- _LT_AC_TAGVAR(include_expsyms, $1); do -- -- case $var in -- _LT_AC_TAGVAR(old_archive_cmds, $1) | \ -- _LT_AC_TAGVAR(old_archive_from_new_cmds, $1) | \ -- _LT_AC_TAGVAR(archive_cmds, $1) | \ -- _LT_AC_TAGVAR(archive_expsym_cmds, $1) | \ -- _LT_AC_TAGVAR(module_cmds, $1) | \ -- _LT_AC_TAGVAR(module_expsym_cmds, $1) | \ -- _LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1) | \ -- _LT_AC_TAGVAR(export_symbols_cmds, $1) | \ -- extract_expsyms_cmds | reload_cmds | finish_cmds | \ -- postinstall_cmds | postuninstall_cmds | \ -- old_postinstall_cmds | old_postuninstall_cmds | \ -- sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) -- # Double-quote double-evaled strings. -- eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" -- ;; -- *) -- eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" -- ;; -- esac -- done -- -- case $lt_echo in -- *'\[$]0 --fallback-echo"') -- lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\[$]0 --fallback-echo"[$]/[$]0 --fallback-echo"/'` -- ;; -- esac -- --ifelse([$1], [], -- [cfgfile="${ofile}T" -- trap "$rm \"$cfgfile\"; exit 1" 1 2 15 -- $rm -f "$cfgfile" -- AC_MSG_NOTICE([creating $ofile])], -- [cfgfile="$ofile"]) -- -- cat <<__EOF__ >> "$cfgfile" --ifelse([$1], [], --[#! $SHELL -- --# `$echo "$cfgfile" | sed 's%^.*/%%'` - Provide generalized library-building support services. --# Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP) --# NOTE: Changes made to this file will be lost: look at ltmain.sh. --# --# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 --# Free Software Foundation, Inc. --# --# This file is part of GNU Libtool: --# Originally by Gordon Matzigkeit , 1996 --# --# This program is free software; you can redistribute it and/or modify --# it under the terms of the GNU General Public License as published by --# the Free Software Foundation; either version 2 of the License, or --# (at your option) any later version. --# --# This program is distributed in the hope that it will be useful, but --# WITHOUT ANY WARRANTY; without even the implied warranty of --# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU --# General Public License for more details. --# --# You should have received a copy of the GNU General Public License --# along with this program; if not, write to the Free Software --# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. --# --# As a special exception to the GNU General Public License, if you --# distribute this file as part of a program that contains a --# configuration script generated by Autoconf, you may include it under --# the same distribution terms that you use for the rest of that program. -- --# A sed program that does not truncate output. --SED=$lt_SED -- --# Sed that helps us avoid accidentally triggering echo(1) options like -n. --Xsed="$SED -e 1s/^X//" -- --# The HP-UX ksh and POSIX shell print the target directory to stdout --# if CDPATH is set. --(unset CDPATH) >/dev/null 2>&1 && unset CDPATH -- --# The names of the tagged configurations supported by this script. --available_tags= -- --# ### BEGIN LIBTOOL CONFIG], --[# ### BEGIN LIBTOOL TAG CONFIG: $tagname]) -- --# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: -- --# Shell to use when invoking shell scripts. --SHELL=$lt_SHELL -- --# Whether or not to build shared libraries. --build_libtool_libs=$enable_shared -- --# Whether or not to build static libraries. --build_old_libs=$enable_static -- --# Whether or not to add -lc for building shared libraries. --build_libtool_need_lc=$_LT_AC_TAGVAR(archive_cmds_need_lc, $1) -- --# Whether or not to disallow shared libs when runtime libs are static --allow_libtool_libs_with_static_runtimes=$_LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1) -- --# Whether or not to optimize for fast installation. --fast_install=$enable_fast_install -- --# The host system. --host_alias=$host_alias --host=$host --host_os=$host_os -- --# The build system. --build_alias=$build_alias --build=$build --build_os=$build_os -- --# An echo program that does not interpret backslashes. --echo=$lt_echo -- --# The archiver. --AR=$lt_AR --AR_FLAGS=$lt_AR_FLAGS -- --# A C compiler. --LTCC=$lt_LTCC -- --# LTCC compiler flags. --LTCFLAGS=$lt_LTCFLAGS -- --# A language-specific compiler. --CC=$lt_[]_LT_AC_TAGVAR(compiler, $1) -- --# Is the compiler the GNU C compiler? --with_gcc=$_LT_AC_TAGVAR(GCC, $1) -- --# An ERE matcher. --EGREP=$lt_EGREP -- --# The linker used to build libraries. --LD=$lt_[]_LT_AC_TAGVAR(LD, $1) -- --# Whether we need hard or soft links. --LN_S=$lt_LN_S -- --# A BSD-compatible nm program. --NM=$lt_NM -- --# A symbol stripping program --STRIP=$lt_STRIP -- --# Used to examine libraries when file_magic_cmd begins "file" --MAGIC_CMD=$MAGIC_CMD -- --# Used on cygwin: DLL creation program. --DLLTOOL="$DLLTOOL" -- --# Used on cygwin: object dumper. --OBJDUMP="$OBJDUMP" -- --# Used on cygwin: assembler. --AS="$AS" -- --# The name of the directory that contains temporary libtool files. --objdir=$objdir -- --# How to create reloadable object files. --reload_flag=$lt_reload_flag --reload_cmds=$lt_reload_cmds -- --# How to pass a linker flag through the compiler. --wl=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_wl, $1) -- --# Object file suffix (normally "o"). --objext="$ac_objext" -- --# Old archive suffix (normally "a"). --libext="$libext" -- --# Shared library suffix (normally ".so"). --shrext_cmds='$shrext_cmds' -- --# Executable file suffix (normally ""). --exeext="$exeext" -- --# Additional compiler flags for building library objects. --pic_flag=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) --pic_mode=$pic_mode -- --# What is the maximum length of a command? --max_cmd_len=$lt_cv_sys_max_cmd_len -- --# Does compiler simultaneously support -c and -o options? --compiler_c_o=$lt_[]_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1) -- --# Must we lock files when doing compilation? --need_locks=$lt_need_locks -- --# Do we need the lib prefix for modules? --need_lib_prefix=$need_lib_prefix -- --# Do we need a version for libraries? --need_version=$need_version -- --# Whether dlopen is supported. --dlopen_support=$enable_dlopen -- --# Whether dlopen of programs is supported. --dlopen_self=$enable_dlopen_self -- --# Whether dlopen of statically linked programs is supported. --dlopen_self_static=$enable_dlopen_self_static -- --# Compiler flag to prevent dynamic linking. --link_static_flag=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_static, $1) -- --# Compiler flag to turn off builtin functions. --no_builtin_flag=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -- --# Compiler flag to allow reflexive dlopens. --export_dynamic_flag_spec=$lt_[]_LT_AC_TAGVAR(export_dynamic_flag_spec, $1) -- --# Compiler flag to generate shared objects directly from archives. --whole_archive_flag_spec=$lt_[]_LT_AC_TAGVAR(whole_archive_flag_spec, $1) -- --# Compiler flag to generate thread-safe objects. --thread_safe_flag_spec=$lt_[]_LT_AC_TAGVAR(thread_safe_flag_spec, $1) -- --# Library versioning type. --version_type=$version_type -- --# Format of library name prefix. --libname_spec=$lt_libname_spec -- --# List of archive names. First name is the real one, the rest are links. --# The last name is the one that the linker finds with -lNAME. --library_names_spec=$lt_library_names_spec -- --# The coded name of the library, if different from the real name. --soname_spec=$lt_soname_spec -- --# Commands used to build and install an old-style archive. --RANLIB=$lt_RANLIB --old_archive_cmds=$lt_[]_LT_AC_TAGVAR(old_archive_cmds, $1) --old_postinstall_cmds=$lt_old_postinstall_cmds --old_postuninstall_cmds=$lt_old_postuninstall_cmds -- --# Create an old-style archive from a shared archive. --old_archive_from_new_cmds=$lt_[]_LT_AC_TAGVAR(old_archive_from_new_cmds, $1) -- --# Create a temporary old-style archive to link instead of a shared archive. --old_archive_from_expsyms_cmds=$lt_[]_LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1) -- --# Commands used to build and install a shared archive. --archive_cmds=$lt_[]_LT_AC_TAGVAR(archive_cmds, $1) --archive_expsym_cmds=$lt_[]_LT_AC_TAGVAR(archive_expsym_cmds, $1) --postinstall_cmds=$lt_postinstall_cmds --postuninstall_cmds=$lt_postuninstall_cmds -- --# Commands used to build a loadable module (assumed same as above if empty) --module_cmds=$lt_[]_LT_AC_TAGVAR(module_cmds, $1) --module_expsym_cmds=$lt_[]_LT_AC_TAGVAR(module_expsym_cmds, $1) -- --# Commands to strip libraries. --old_striplib=$lt_old_striplib --striplib=$lt_striplib -- --# Dependencies to place before the objects being linked to create a --# shared library. --predep_objects=$lt_[]_LT_AC_TAGVAR(predep_objects, $1) -- --# Dependencies to place after the objects being linked to create a --# shared library. --postdep_objects=$lt_[]_LT_AC_TAGVAR(postdep_objects, $1) -- --# Dependencies to place before the objects being linked to create a --# shared library. --predeps=$lt_[]_LT_AC_TAGVAR(predeps, $1) -- --# Dependencies to place after the objects being linked to create a --# shared library. --postdeps=$lt_[]_LT_AC_TAGVAR(postdeps, $1) -- --# The directories searched by this compiler when creating a shared --# library --compiler_lib_search_dirs=$lt_[]_LT_AC_TAGVAR(compiler_lib_search_dirs, $1) -- --# The library search path used internally by the compiler when linking --# a shared library. --compiler_lib_search_path=$lt_[]_LT_AC_TAGVAR(compiler_lib_search_path, $1) -- --# Method to check whether dependent libraries are shared objects. --deplibs_check_method=$lt_deplibs_check_method -- --# Command to use when deplibs_check_method == file_magic. --file_magic_cmd=$lt_file_magic_cmd -- --# Flag that allows shared libraries with undefined symbols to be built. --allow_undefined_flag=$lt_[]_LT_AC_TAGVAR(allow_undefined_flag, $1) -- --# Flag that forces no undefined symbols. --no_undefined_flag=$lt_[]_LT_AC_TAGVAR(no_undefined_flag, $1) -- --# Commands used to finish a libtool library installation in a directory. --finish_cmds=$lt_finish_cmds -- --# Same as above, but a single script fragment to be evaled but not shown. --finish_eval=$lt_finish_eval -- --# Take the output of nm and produce a listing of raw symbols and C names. --global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe -- --# Transform the output of nm in a proper C declaration --global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl -- --# Transform the output of nm in a C name address pair --global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address -- --# This is the shared library runtime path variable. --runpath_var=$runpath_var -- --# This is the shared library path variable. --shlibpath_var=$shlibpath_var -- --# Is shlibpath searched before the hard-coded library search path? --shlibpath_overrides_runpath=$shlibpath_overrides_runpath -- --# How to hardcode a shared library path into an executable. --hardcode_action=$_LT_AC_TAGVAR(hardcode_action, $1) -- --# Whether we should hardcode library paths into libraries. --hardcode_into_libs=$hardcode_into_libs -- --# Flag to hardcode \$libdir into a binary during linking. --# This must work even if \$libdir does not exist. --hardcode_libdir_flag_spec=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) -- --# If ld is used when linking, flag to hardcode \$libdir into --# a binary during linking. This must work even if \$libdir does --# not exist. --hardcode_libdir_flag_spec_ld=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1) -- --# Whether we need a single -rpath flag with a separated argument. --hardcode_libdir_separator=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_separator, $1) -- --# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the --# resulting binary. --hardcode_direct=$_LT_AC_TAGVAR(hardcode_direct, $1) -- --# Set to yes if using the -LDIR flag during linking hardcodes DIR into the --# resulting binary. --hardcode_minus_L=$_LT_AC_TAGVAR(hardcode_minus_L, $1) -- --# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into --# the resulting binary. --hardcode_shlibpath_var=$_LT_AC_TAGVAR(hardcode_shlibpath_var, $1) -- --# Set to yes if building a shared library automatically hardcodes DIR into the library --# and all subsequent libraries and executables linked against it. --hardcode_automatic=$_LT_AC_TAGVAR(hardcode_automatic, $1) -- --# Variables whose values should be saved in libtool wrapper scripts and --# restored at relink time. --variables_saved_for_relink="$variables_saved_for_relink" -- --# Whether libtool must link a program against all its dependency libraries. --link_all_deplibs=$_LT_AC_TAGVAR(link_all_deplibs, $1) -- --# Compile-time system search path for libraries --sys_lib_search_path_spec=$lt_sys_lib_search_path_spec -- --# Run-time system search path for libraries --sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec -- --# Fix the shell variable \$srcfile for the compiler. --fix_srcfile_path=$lt_fix_srcfile_path -- --# Set to yes if exported symbols are required. --always_export_symbols=$_LT_AC_TAGVAR(always_export_symbols, $1) -- --# The commands to list exported symbols. --export_symbols_cmds=$lt_[]_LT_AC_TAGVAR(export_symbols_cmds, $1) -- --# The commands to extract the exported symbol list from a shared archive. --extract_expsyms_cmds=$lt_extract_expsyms_cmds -- --# Symbols that should not be listed in the preloaded symbols. --exclude_expsyms=$lt_[]_LT_AC_TAGVAR(exclude_expsyms, $1) -- --# Symbols that must always be exported. --include_expsyms=$lt_[]_LT_AC_TAGVAR(include_expsyms, $1) -- --ifelse([$1],[], --[# ### END LIBTOOL CONFIG], --[# ### END LIBTOOL TAG CONFIG: $tagname]) -- --__EOF__ -- --ifelse([$1],[], [ -- case $host_os in -- aix3*) -- cat <<\EOF >> "$cfgfile" -- --# AIX sometimes has problems with the GCC collect2 program. For some --# reason, if we set the COLLECT_NAMES environment variable, the problems --# vanish in a puff of smoke. --if test "X${COLLECT_NAMES+set}" != Xset; then -- COLLECT_NAMES= -- export COLLECT_NAMES --fi --EOF -- ;; -- esac -- -- # We use sed instead of cat because bash on DJGPP gets confused if -- # if finds mixed CR/LF and LF-only lines. Since sed operates in -- # text mode, it properly converts lines to CR/LF. This bash problem -- # is reportedly fixed, but why not run on old versions too? -- sed '$q' "$ltmain" >> "$cfgfile" || (rm -f "$cfgfile"; exit 1) -- -- mv -f "$cfgfile" "$ofile" || \ -- (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") -- chmod +x "$ofile" --]) --else -- # If there is no Makefile yet, we rely on a make rule to execute -- # `config.status --recheck' to rerun these tests and create the -- # libtool script then. -- ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` -- if test -f "$ltmain_in"; then -- test -f Makefile && make "$ltmain" -- fi --fi --])# AC_LIBTOOL_CONFIG -- -- --# AC_LIBTOOL_PROG_COMPILER_NO_RTTI([TAGNAME]) --# ------------------------------------------- --AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI], --[AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl -- --_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= -- --if test "$GCC" = yes; then -- _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' -- -- AC_LIBTOOL_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions], -- lt_cv_prog_compiler_rtti_exceptions, -- [-fno-rtti -fno-exceptions], [], -- [_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"]) --fi --])# AC_LIBTOOL_PROG_COMPILER_NO_RTTI -- -- --# AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE --# --------------------------------- --AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], --[AC_REQUIRE([AC_CANONICAL_HOST]) --AC_REQUIRE([LT_AC_PROG_SED]) --AC_REQUIRE([AC_PROG_NM]) --AC_REQUIRE([AC_OBJEXT]) --# Check for command to grab the raw symbol name followed by C symbol from nm. --AC_MSG_CHECKING([command to parse $NM output from $compiler object]) --AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe], --[ --# These are sane defaults that work on at least a few old systems. --# [They come from Ultrix. What could be older than Ultrix?!! ;)] -- --# Character class describing NM global symbol codes. --symcode='[[BCDEGRST]]' -- --# Regexp to match symbols that can be accessed directly from C. --sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)' -- --# Transform an extracted symbol line into a proper C declaration --lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern int \1;/p'" -- --# Transform an extracted symbol line into symbol name and symbol address --lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" -- --# Define system-specific variables. --case $host_os in --aix*) -- symcode='[[BCDT]]' -- ;; --cygwin* | mingw* | pw32*) -- symcode='[[ABCDGISTW]]' -- ;; --hpux*) # Its linker distinguishes data from code symbols -- if test "$host_cpu" = ia64; then -- symcode='[[ABCDEGRST]]' -- fi -- lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" -- lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" -- ;; --linux* | k*bsd*-gnu) -- if test "$host_cpu" = ia64; then -- symcode='[[ABCDGIRSTW]]' -- lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" -- lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" -- fi -- ;; --irix* | nonstopux*) -- symcode='[[BCDEGRST]]' -- ;; --osf*) -- symcode='[[BCDEGQRST]]' -- ;; --solaris*) -- symcode='[[BDRT]]' -- ;; --sco3.2v5*) -- symcode='[[DT]]' -- ;; --sysv4.2uw2*) -- symcode='[[DT]]' -- ;; --sysv5* | sco5v6* | unixware* | OpenUNIX*) -- symcode='[[ABDT]]' -- ;; --sysv4) -- symcode='[[DFNSTU]]' -- ;; --esac -- --# Handle CRLF in mingw tool chain --opt_cr= --case $build_os in --mingw*) -- opt_cr=`echo 'x\{0,1\}' | tr x '\015'` # option cr in regexp -- ;; --esac -- --# If we're using GNU nm, then use its standard symbol codes. --case `$NM -V 2>&1` in --*GNU* | *'with BFD'*) -- symcode='[[ABCDGIRSTW]]' ;; --esac -- --# Try without a prefix undercore, then with it. --for ac_symprfx in "" "_"; do -- -- # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. -- symxfrm="\\1 $ac_symprfx\\2 \\2" -- -- # Write the raw and C identifiers. -- lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" -- -- # Check to see that the pipe works correctly. -- pipe_works=no -- -- rm -f conftest* -- cat > conftest.$ac_ext < $nlist) && test -s "$nlist"; then -- # Try sorting and uniquifying the output. -- if sort "$nlist" | uniq > "$nlist"T; then -- mv -f "$nlist"T "$nlist" -- else -- rm -f "$nlist"T -- fi -- -- # Make sure that we snagged all the symbols we need. -- if grep ' nm_test_var$' "$nlist" >/dev/null; then -- if grep ' nm_test_func$' "$nlist" >/dev/null; then -- cat < conftest.$ac_ext --#ifdef __cplusplus --extern "C" { --#endif -- --EOF -- # Now generate the symbol file. -- eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | grep -v main >> conftest.$ac_ext' -- -- cat <> conftest.$ac_ext --#if defined (__STDC__) && __STDC__ --# define lt_ptr_t void * --#else --# define lt_ptr_t char * --# define const --#endif -- --/* The mapping between symbol names and symbols. */ --const struct { -- const char *name; -- lt_ptr_t address; --} --lt_preloaded_symbols[[]] = --{ --EOF -- $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (lt_ptr_t) \&\2},/" < "$nlist" | grep -v main >> conftest.$ac_ext -- cat <<\EOF >> conftest.$ac_ext -- {0, (lt_ptr_t) 0} --}; -- --#ifdef __cplusplus --} --#endif --EOF -- # Now try linking the two files. -- mv conftest.$ac_objext conftstm.$ac_objext -- lt_save_LIBS="$LIBS" -- lt_save_CFLAGS="$CFLAGS" -- LIBS="conftstm.$ac_objext" -- CFLAGS="$CFLAGS$_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)" -- if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext}; then -- pipe_works=yes -- fi -- LIBS="$lt_save_LIBS" -- CFLAGS="$lt_save_CFLAGS" -- else -- echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD -- fi -- else -- echo "cannot find nm_test_var in $nlist" >&AS_MESSAGE_LOG_FD -- fi -- else -- echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD -- fi -- else -- echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD -- cat conftest.$ac_ext >&5 -- fi -- rm -rf conftest* conftst* -- -- # Do not use the global_symbol_pipe unless it works. -- if test "$pipe_works" = yes; then -- break -- else -- lt_cv_sys_global_symbol_pipe= -- fi --done --]) --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 -- AC_MSG_RESULT(failed) --else -- AC_MSG_RESULT(ok) --fi --]) # AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE -- -- --# AC_LIBTOOL_PROG_COMPILER_PIC([TAGNAME]) --# --------------------------------------- --AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC], --[_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)= --_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= --_LT_AC_TAGVAR(lt_prog_compiler_static, $1)= -- --AC_MSG_CHECKING([for $compiler option to produce PIC]) -- ifelse([$1],[CXX],[ -- # C++ specific cases for pic, static, wl, etc. -- if test "$GXX" = yes; then -- _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' -- _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static' -- -- case $host_os in -- aix*) -- # All AIX code is PIC. -- if test "$host_cpu" = ia64; then -- # AIX 5 now supports IA64 processor -- _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' -- fi -- ;; -- amigaos*) -- # FIXME: we need at least 68020 code to build shared libraries, but -- # adding the `-m68020' flag to GCC prevents building anything better, -- # like `-m68040'. -- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' -- ;; -- beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) -- # PIC is the default for these OSes. -- ;; -- mingw* | cygwin* | os2* | pw32*) -- # This hack is so that the source file can tell whether it is being -- # built for inclusion in a dll (and should export symbols for example). -- # Although the cygwin gcc ignores -fPIC, still need this for old-style -- # (--disable-auto-import) libraries -- m4_if([$1], [GCJ], [], -- [_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) -- ;; -- darwin* | rhapsody*) -- # PIC is the default on this platform -- # Common symbols not allowed in MH_DYLIB files -- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' -- ;; -- *djgpp*) -- # DJGPP does not support shared libraries at all -- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= -- ;; -- interix[[3-9]]*) -- # Interix 3.x gcc -fpic/-fPIC options generate broken code. -- # Instead, we relocate shared libraries at runtime. -- ;; -- sysv4*MP*) -- if test -d /usr/nec; then -- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic -- fi -- ;; -- hpux*) -- # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but -- # not for PA HP-UX. -- case $host_cpu in -- hppa*64*|ia64*) -- ;; -- *) -- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' -- ;; -- esac -- ;; -- *) -- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' -- ;; -- esac -- else -- case $host_os in -- aix[[4-9]]*) -- # All AIX code is PIC. -- if test "$host_cpu" = ia64; then -- # AIX 5 now supports IA64 processor -- _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' -- else -- _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' -- fi -- ;; -- chorus*) -- case $cc_basename in -- cxch68*) -- # Green Hills C++ Compiler -- # _LT_AC_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a" -- ;; -- esac -- ;; -- darwin*) -- # PIC is the default on this platform -- # Common symbols not allowed in MH_DYLIB files -- case $cc_basename in -- xlc*) -- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-qnocommon' -- _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' -- ;; -- esac -- ;; -- dgux*) -- case $cc_basename in -- ec++*) -- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' -- ;; -- ghcx*) -- # Green Hills C++ Compiler -- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic' -- ;; -- *) -- ;; -- esac -- ;; -- freebsd* | dragonfly*) -- # FreeBSD uses GNU C++ -- ;; -- hpux9* | hpux10* | hpux11*) -- case $cc_basename in -- CC*) -- _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' -- _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' -- if test "$host_cpu" != ia64; then -- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z' -- fi -- ;; -- aCC*) -- _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' -- _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' -- case $host_cpu in -- hppa*64*|ia64*) -- # +Z the default -- ;; -- *) -- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z' -- ;; -- esac -- ;; -- *) -- ;; -- esac -- ;; -- interix*) -- # This is c89, which is MS Visual C++ (no shared libs) -- # Anyone wants to do a port? -- ;; -- irix5* | irix6* | nonstopux*) -- case $cc_basename in -- CC*) -- _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' -- _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' -- # CC pic flag -KPIC is the default. -- ;; -- *) -- ;; -- esac -- ;; -- linux* | k*bsd*-gnu) -- case $cc_basename in -- KCC*) -- # KAI C++ Compiler -- _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' -- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' -- ;; -- icpc* | ecpc*) -- # Intel C++ -- _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' -- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' -- _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static' -- ;; -- pgCC* | pgcpp*) -- # Portland Group C++ compiler. -- _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' -- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' -- _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' -- ;; -- cxx*) -- # Compaq C++ -- # Make sure the PIC flag is empty. It appears that all Alpha -- # Linux and Compaq Tru64 Unix objects are PIC. -- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= -- _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' -- ;; -- *) -- case `$CC -V 2>&1 | sed 5q` in -- *Sun\ C*) -- # Sun C++ 5.9 -- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' -- _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' -- _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' -- ;; -- esac -- ;; -- esac -- ;; -- lynxos*) -- ;; -- m88k*) -- ;; -- mvs*) -- case $cc_basename in -- cxx*) -- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall' -- ;; -- *) -- ;; -- esac -- ;; -- netbsd* | netbsdelf*-gnu) -- ;; -- osf3* | osf4* | osf5*) -- case $cc_basename in -- KCC*) -- _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' -- ;; -- RCC*) -- # Rational C++ 2.4.1 -- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic' -- ;; -- cxx*) -- # Digital/Compaq C++ -- _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' -- # Make sure the PIC flag is empty. It appears that all Alpha -- # Linux and Compaq Tru64 Unix objects are PIC. -- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= -- _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' -- ;; -- *) -- ;; -- esac -- ;; -- psos*) -- ;; -- solaris*) -- case $cc_basename in -- CC*) -- # Sun C++ 4.2, 5.x and Centerline C++ -- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' -- _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' -- _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' -- ;; -- gcx*) -- # Green Hills C++ Compiler -- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' -- ;; -- *) -- ;; -- esac -- ;; -- sunos4*) -- case $cc_basename in -- CC*) -- # Sun C++ 4.x -- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic' -- _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' -- ;; -- lcc*) -- # Lucid -- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic' -- ;; -- *) -- ;; -- esac -- ;; -- tandem*) -- case $cc_basename in -- NCC*) -- # NonStop-UX NCC 3.20 -- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' -- ;; -- *) -- ;; -- esac -- ;; -- sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) -- case $cc_basename in -- CC*) -- _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' -- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' -- _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' -- ;; -- esac -- ;; -- vxworks*) -- ;; -- *) -- _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no -- ;; -- esac -- fi --], --[ -- if test "$GCC" = yes; then -- _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' -- _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static' -- -- case $host_os in -- aix*) -- # All AIX code is PIC. -- if test "$host_cpu" = ia64; then -- # AIX 5 now supports IA64 processor -- _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' -- fi -- ;; -- -- amigaos*) -- # FIXME: we need at least 68020 code to build shared libraries, but -- # adding the `-m68020' flag to GCC prevents building anything better, -- # like `-m68040'. -- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' -- ;; -- -- beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) -- # PIC is the default for these OSes. -- ;; -- -- mingw* | cygwin* | pw32* | os2*) -- # This hack is so that the source file can tell whether it is being -- # built for inclusion in a dll (and should export symbols for example). -- # Although the cygwin gcc ignores -fPIC, still need this for old-style -- # (--disable-auto-import) libraries -- m4_if([$1], [GCJ], [], -- [_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) -- ;; -- -- darwin* | rhapsody*) -- # PIC is the default on this platform -- # Common symbols not allowed in MH_DYLIB files -- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' -- ;; -- -- interix[[3-9]]*) -- # Interix 3.x gcc -fpic/-fPIC options generate broken code. -- # Instead, we relocate shared libraries at runtime. -- ;; -- -- msdosdjgpp*) -- # Just because we use GCC doesn't mean we suddenly get shared libraries -- # on systems that don't support them. -- _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no -- enable_shared=no -- ;; -- -- sysv4*MP*) -- if test -d /usr/nec; then -- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic -- fi -- ;; -- -- hpux*) -- # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but -- # not for PA HP-UX. -- case $host_cpu in -- hppa*64*|ia64*) -- # +Z the default -- ;; -- *) -- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' -- ;; -- esac -- ;; -- -- *) -- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' -- ;; -- esac -- else -- # PORTME Check for flag to pass linker flags through the system compiler. -- case $host_os in -- aix*) -- _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' -- if test "$host_cpu" = ia64; then -- # AIX 5 now supports IA64 processor -- _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' -- else -- _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' -- fi -- ;; -- darwin*) -- # PIC is the default on this platform -- # Common symbols not allowed in MH_DYLIB files -- case $cc_basename in -- xlc*) -- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-qnocommon' -- _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' -- ;; -- esac -- ;; -- -- mingw* | cygwin* | pw32* | os2*) -- # This hack is so that the source file can tell whether it is being -- # built for inclusion in a dll (and should export symbols for example). -- m4_if([$1], [GCJ], [], -- [_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) -- ;; -- -- hpux9* | hpux10* | hpux11*) -- _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' -- # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but -- # not for PA HP-UX. -- case $host_cpu in -- hppa*64*|ia64*) -- # +Z the default -- ;; -- *) -- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z' -- ;; -- esac -- # Is there a better lt_prog_compiler_static that works with the bundled CC? -- _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' -- ;; -- -- irix5* | irix6* | nonstopux*) -- _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' -- # PIC (with -KPIC) is the default. -- _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' -- ;; -- -- newsos6) -- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' -- _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' -- ;; -- -- linux* | k*bsd*-gnu) -- case $cc_basename in -- icc* | ecc*) -- _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' -- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' -- _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static' -- ;; -- pgcc* | pgf77* | pgf90* | pgf95*) -- # Portland Group compilers (*not* the Pentium gcc compiler, -- # which looks to be a dead project) -- _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' -- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' -- _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' -- ;; -- ccc*) -- _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' -- # All Alpha code is PIC. -- _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' -- ;; -- *) -- case `$CC -V 2>&1 | sed 5q` in -- *Sun\ C*) -- # Sun C 5.9 -- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' -- _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' -- _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' -- ;; -- *Sun\ F*) -- # Sun Fortran 8.3 passes all unrecognized flags to the linker -- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' -- _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' -- _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='' -- ;; -- esac -- ;; -- esac -- ;; -- -- osf3* | osf4* | osf5*) -- _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' -- # All OSF/1 code is PIC. -- _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' -- ;; -- -- rdos*) -- _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' -- ;; -- -- solaris*) -- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' -- _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' -- case $cc_basename in -- f77* | f90* | f95*) -- _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';; -- *) -- _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';; -- esac -- ;; -- -- sunos4*) -- _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' -- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' -- _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' -- ;; -- -- sysv4 | sysv4.2uw2* | sysv4.3*) -- _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' -- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' -- _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' -- ;; -- -- sysv4*MP*) -- if test -d /usr/nec ;then -- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic' -- _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' -- fi -- ;; -- -- sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) -- _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' -- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' -- _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' -- ;; -- -- unicos*) -- _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' -- _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no -- ;; -- -- uts4*) -- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic' -- _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' -- ;; -- -- *) -- _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no -- ;; -- esac -- fi --]) --AC_MSG_RESULT([$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)]) -- --# --# Check to make sure the PIC flag actually works. --# --if test -n "$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)"; then -- AC_LIBTOOL_COMPILER_OPTION([if $compiler PIC flag $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) works], -- _LT_AC_TAGVAR(lt_cv_prog_compiler_pic_works, $1), -- [$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)ifelse([$1],[],[ -DPIC],[ifelse([$1],[CXX],[ -DPIC],[])])], [], -- [case $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) in -- "" | " "*) ;; -- *) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)" ;; -- esac], -- [_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= -- _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no]) --fi --case $host_os in -- # For platforms which do not support PIC, -DPIC is meaningless: -- *djgpp*) -- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= -- ;; -- *) -- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)ifelse([$1],[],[ -DPIC],[ifelse([$1],[CXX],[ -DPIC],[])])" -- ;; --esac -- --# --# Check to make sure the static flag actually works. --# --wl=$_LT_AC_TAGVAR(lt_prog_compiler_wl, $1) eval lt_tmp_static_flag=\"$_LT_AC_TAGVAR(lt_prog_compiler_static, $1)\" --AC_LIBTOOL_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works], -- _LT_AC_TAGVAR(lt_cv_prog_compiler_static_works, $1), -- $lt_tmp_static_flag, -- [], -- [_LT_AC_TAGVAR(lt_prog_compiler_static, $1)=]) --]) -- -- --# AC_LIBTOOL_PROG_LD_SHLIBS([TAGNAME]) --# ------------------------------------ --# See if the linker supports building shared libraries. --AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS], --[AC_REQUIRE([LT_AC_PROG_SED])dnl --AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) --ifelse([$1],[CXX],[ -- _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' -- case $host_os in -- aix[[4-9]]*) -- # If we're using GNU nm, then we don't want the "-C" option. -- # -C means demangle to AIX nm, but means don't demangle with GNU nm -- if $NM -V 2>&1 | grep 'GNU' > /dev/null; then -- _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols' -- else -- _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols' -- fi -- ;; -- pw32*) -- _LT_AC_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds" -- ;; -- cygwin* | mingw*) -- _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;/^.*[[ ]]__nm__/s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols' -- ;; -- linux* | k*bsd*-gnu) -- _LT_AC_TAGVAR(link_all_deplibs, $1)=no -- ;; -- *) -- _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' -- ;; -- esac -- _LT_AC_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] --],[ -- runpath_var= -- _LT_AC_TAGVAR(allow_undefined_flag, $1)= -- _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=no -- _LT_AC_TAGVAR(archive_cmds, $1)= -- _LT_AC_TAGVAR(archive_expsym_cmds, $1)= -- _LT_AC_TAGVAR(old_archive_From_new_cmds, $1)= -- _LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1)= -- _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)= -- _LT_AC_TAGVAR(whole_archive_flag_spec, $1)= -- _LT_AC_TAGVAR(thread_safe_flag_spec, $1)= -- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)= -- _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= -- _LT_AC_TAGVAR(hardcode_libdir_separator, $1)= -- _LT_AC_TAGVAR(hardcode_direct, $1)=no -- _LT_AC_TAGVAR(hardcode_minus_L, $1)=no -- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported -- _LT_AC_TAGVAR(link_all_deplibs, $1)=unknown -- _LT_AC_TAGVAR(hardcode_automatic, $1)=no -- _LT_AC_TAGVAR(module_cmds, $1)= -- _LT_AC_TAGVAR(module_expsym_cmds, $1)= -- _LT_AC_TAGVAR(always_export_symbols, $1)=no -- _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' -- # include_expsyms should be a list of space-separated symbols to be *always* -- # included in the symbol list -- _LT_AC_TAGVAR(include_expsyms, $1)= -- # exclude_expsyms can be an extended regexp of symbols to exclude -- # it will be wrapped by ` (' and `)$', so one must not match beginning or -- # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', -- # as well as any symbol that contains `d'. -- _LT_AC_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] -- # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out -- # platforms (ab)use it in PIC code, but their linkers get confused if -- # the symbol is explicitly referenced. Since portable code cannot -- # rely on this symbol name, it's probably fine to never include it in -- # preloaded symbol tables. -- # Exclude shared library initialization/finalization symbols. --dnl Note also adjust exclude_expsyms for C++ above. -- extract_expsyms_cmds= -- # Just being paranoid about ensuring that cc_basename is set. -- _LT_CC_BASENAME([$compiler]) -- case $host_os in -- cygwin* | mingw* | pw32*) -- # FIXME: the MSVC++ port hasn't been tested in a loooong time -- # When not using gcc, we currently assume that we are using -- # Microsoft Visual C++. -- if test "$GCC" != yes; then -- with_gnu_ld=no -- fi -- ;; -- interix*) -- # we just hope/assume this is gcc and not c89 (= MSVC++) -- with_gnu_ld=yes -- ;; -- openbsd*) -- with_gnu_ld=no -- ;; -- esac -- -- _LT_AC_TAGVAR(ld_shlibs, $1)=yes -- if test "$with_gnu_ld" = yes; then -- # If archive_cmds runs LD, not CC, wlarc should be empty -- wlarc='${wl}' -- -- # Set some defaults for GNU ld with shared library support. These -- # are reset later if shared libraries are not supported. Putting them -- # here allows them to be overridden if necessary. -- runpath_var=LD_RUN_PATH -- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir' -- _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' -- # ancient GNU ld didn't support --whole-archive et. al. -- if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then -- _LT_AC_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' -- else -- _LT_AC_TAGVAR(whole_archive_flag_spec, $1)= -- fi -- supports_anon_versioning=no -- case `$LD -v 2>/dev/null` in -- *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11 -- *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... -- *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... -- *\ 2.11.*) ;; # other 2.11 versions -- *) supports_anon_versioning=yes ;; -- esac -- -- # See if GNU ld supports shared libraries. -- case $host_os in -- aix[[3-9]]*) -- # On AIX/PPC, the GNU linker is very broken -- if test "$host_cpu" != ia64; then -- _LT_AC_TAGVAR(ld_shlibs, $1)=no -- cat <&2 -- --*** Warning: the GNU linker, at least up to release 2.9.1, is reported --*** to be unable to reliably create shared libraries on AIX. --*** Therefore, libtool is disabling shared libraries support. If you --*** really care for shared libraries, you may want to modify your PATH --*** so that a non-GNU linker is found, and then restart. -- --EOF -- fi -- ;; -- -- amigaos*) -- _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' -- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' -- _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes -- -- # Samuel A. Falvo II reports -- # that the semantics of dynamic libraries on AmigaOS, at least up -- # to version 4, is to share data among multiple programs linked -- # with the same dynamic library. Since this doesn't match the -- # behavior of shared libraries on other platforms, we can't use -- # them. -- _LT_AC_TAGVAR(ld_shlibs, $1)=no -- ;; -- -- beos*) -- if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then -- _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported -- # Joseph Beckenbach says some releases of gcc -- # support --undefined. This deserves some investigation. FIXME -- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -- else -- _LT_AC_TAGVAR(ld_shlibs, $1)=no -- fi -- ;; -- -- cygwin* | mingw* | pw32*) -- # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, -- # as there is no search path for DLLs. -- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' -- _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported -- _LT_AC_TAGVAR(always_export_symbols, $1)=no -- _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes -- _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/'\'' -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols' -- -- if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then -- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' -- # If the export-symbols file already is a .def file (1st line -- # is EXPORTS), use it as is; otherwise, prepend... -- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then -- cp $export_symbols $output_objdir/$soname.def; -- else -- echo EXPORTS > $output_objdir/$soname.def; -- cat $export_symbols >> $output_objdir/$soname.def; -- fi~ -- $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' -- else -- _LT_AC_TAGVAR(ld_shlibs, $1)=no -- fi -- ;; -- -- interix[[3-9]]*) -- _LT_AC_TAGVAR(hardcode_direct, $1)=no -- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no -- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' -- _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' -- # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. -- # Instead, shared libraries are loaded at an image base (0x10000000 by -- # default) and relocated if they conflict, which is a slow very memory -- # consuming and fragmenting process. To avoid this, we pick a random, -- # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link -- # time. Moving up from 0x10000000 also allows more sbrk(2) space. -- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' -- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' -- ;; -- -- gnu* | linux* | k*bsd*-gnu) -- if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then -- tmp_addflag= -- case $cc_basename,$host_cpu in -- pgcc*) # Portland Group C compiler -- _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' -- tmp_addflag=' $pic_flag' -- ;; -- pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers -- _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' -- tmp_addflag=' $pic_flag -Mnomain' ;; -- ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 -- tmp_addflag=' -i_dynamic' ;; -- efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 -- tmp_addflag=' -i_dynamic -nofor_main' ;; -- ifc* | ifort*) # Intel Fortran compiler -- tmp_addflag=' -nofor_main' ;; -- esac -- case `$CC -V 2>&1 | sed 5q` in -- *Sun\ C*) # Sun C 5.9 -- _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' -- tmp_sharedflag='-G' ;; -- *Sun\ F*) # Sun Fortran 8.3 -- tmp_sharedflag='-G' ;; -- *) -- tmp_sharedflag='-shared' ;; -- esac -- _LT_AC_TAGVAR(archive_cmds, $1)='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -- -- if test $supports_anon_versioning = yes; then -- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $output_objdir/$libname.ver~ -- cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ -- $echo "local: *; };" >> $output_objdir/$libname.ver~ -- $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' -- fi -- _LT_AC_TAGVAR(link_all_deplibs, $1)=no -- else -- _LT_AC_TAGVAR(ld_shlibs, $1)=no -- fi -- ;; -- -- netbsd* | netbsdelf*-gnu) -- if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then -- _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' -- wlarc= -- else -- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' -- fi -- ;; -- -- solaris*) -- if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then -- _LT_AC_TAGVAR(ld_shlibs, $1)=no -- cat <&2 -- --*** Warning: The releases 2.8.* of the GNU linker cannot reliably --*** create shared libraries on Solaris systems. Therefore, libtool --*** is disabling shared libraries support. We urge you to upgrade GNU --*** binutils to release 2.9.1 or newer. Another option is to modify --*** your PATH or compiler configuration so that the native linker is --*** used, and then restart. -- --EOF -- elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then -- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' -- else -- _LT_AC_TAGVAR(ld_shlibs, $1)=no -- fi -- ;; -- -- sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) -- case `$LD -v 2>&1` in -- *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.1[[0-5]].*) -- _LT_AC_TAGVAR(ld_shlibs, $1)=no -- cat <<_LT_EOF 1>&2 -- --*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not --*** reliably create shared libraries on SCO systems. Therefore, libtool --*** is disabling shared libraries support. We urge you to upgrade GNU --*** binutils to release 2.16.91.0.3 or newer. Another option is to modify --*** your PATH or compiler configuration so that the native linker is --*** used, and then restart. -- --_LT_EOF -- ;; -- *) -- if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then -- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`' -- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib' -- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname,-retain-symbols-file,$export_symbols -o $lib' -- else -- _LT_AC_TAGVAR(ld_shlibs, $1)=no -- fi -- ;; -- esac -- ;; -- -- sunos4*) -- _LT_AC_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' -- wlarc= -- _LT_AC_TAGVAR(hardcode_direct, $1)=yes -- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no -- ;; -- -- *) -- if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then -- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' -- else -- _LT_AC_TAGVAR(ld_shlibs, $1)=no -- fi -- ;; -- esac -- -- if test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no; then -- runpath_var= -- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)= -- _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)= -- _LT_AC_TAGVAR(whole_archive_flag_spec, $1)= -- fi -- else -- # PORTME fill in a description of your system's linker (not GNU ld) -- case $host_os in -- aix3*) -- _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported -- _LT_AC_TAGVAR(always_export_symbols, $1)=yes -- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' -- # Note: this linker hardcodes the directories in LIBPATH if there -- # are no directories specified by -L. -- _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes -- if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then -- # Neither direct hardcoding nor static linking is supported with a -- # broken collect2. -- _LT_AC_TAGVAR(hardcode_direct, $1)=unsupported -- fi -- ;; -- -- aix[[4-9]]*) -- if test "$host_cpu" = ia64; then -- # On IA64, the linker does run time linking by default, so we don't -- # have to do anything special. -- aix_use_runtimelinking=no -- exp_sym_flag='-Bexport' -- no_entry_flag="" -- else -- # If we're using GNU nm, then we don't want the "-C" option. -- # -C means demangle to AIX nm, but means don't demangle with GNU nm -- if $NM -V 2>&1 | grep 'GNU' > /dev/null; then -- _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols' -- else -- _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols' -- fi -- aix_use_runtimelinking=no -- -- # Test if we are trying to use run time linking or normal -- # AIX style linking. If -brtl is somewhere in LDFLAGS, we -- # need to do runtime linking. -- case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) -- for ld_flag in $LDFLAGS; do -- if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then -- aix_use_runtimelinking=yes -- break -- fi -- done -- ;; -- esac -- -- exp_sym_flag='-bexport' -- no_entry_flag='-bnoentry' -- fi -- -- # When large executables or shared objects are built, AIX ld can -- # have problems creating the table of contents. If linking a library -- # or program results in "error TOC overflow" add -mminimal-toc to -- # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not -- # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. -- -- _LT_AC_TAGVAR(archive_cmds, $1)='' -- _LT_AC_TAGVAR(hardcode_direct, $1)=yes -- _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':' -- _LT_AC_TAGVAR(link_all_deplibs, $1)=yes -- -- if test "$GCC" = yes; then -- case $host_os in aix4.[[012]]|aix4.[[012]].*) -- # We only want to do this on AIX 4.2 and lower, the check -- # below for broken collect2 doesn't work under 4.3+ -- collect2name=`${CC} -print-prog-name=collect2` -- if test -f "$collect2name" && \ -- strings "$collect2name" | grep resolve_lib_name >/dev/null -- then -- # We have reworked collect2 -- : -- else -- # We have old collect2 -- _LT_AC_TAGVAR(hardcode_direct, $1)=unsupported -- # It fails to find uninstalled libraries when the uninstalled -- # path is not listed in the libpath. Setting hardcode_minus_L -- # to unsupported forces relinking -- _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes -- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' -- _LT_AC_TAGVAR(hardcode_libdir_separator, $1)= -- fi -- ;; -- esac -- shared_flag='-shared' -- if test "$aix_use_runtimelinking" = yes; then -- shared_flag="$shared_flag "'${wl}-G' -- fi -- else -- # not using gcc -- if test "$host_cpu" = ia64; then -- # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release -- # chokes on -Wl,-G. The following line is correct: -- shared_flag='-G' -- else -- if test "$aix_use_runtimelinking" = yes; then -- shared_flag='${wl}-G' -- else -- shared_flag='${wl}-bM:SRE' -- fi -- fi -- fi -- -- # It seems that -bexpall does not export symbols beginning with -- # underscore (_), so it is better to generate a list of symbols to export. -- _LT_AC_TAGVAR(always_export_symbols, $1)=yes -- if test "$aix_use_runtimelinking" = yes; then -- # Warning - without using the other runtime loading flags (-brtl), -- # -berok will link without error, but may produce a broken library. -- _LT_AC_TAGVAR(allow_undefined_flag, $1)='-berok' -- # Determine the default libpath from the value encoded in an empty executable. -- _LT_AC_SYS_LIBPATH_AIX -- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" -- _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" -- else -- if test "$host_cpu" = ia64; then -- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' -- _LT_AC_TAGVAR(allow_undefined_flag, $1)="-z nodefs" -- _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" -- else -- # Determine the default libpath from the value encoded in an empty executable. -- _LT_AC_SYS_LIBPATH_AIX -- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" -- # Warning - without using the other run time loading flags, -- # -berok will link without error, but may produce a broken library. -- _LT_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' -- _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' -- # Exported symbols can be pulled into shared objects from archives -- _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='$convenience' -- _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes -- # This is similar to how AIX traditionally builds its shared libraries. -- _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' -- fi -- fi -- ;; -- -- amigaos*) -- _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' -- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' -- _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes -- # see comment about different semantics on the GNU ld section -- _LT_AC_TAGVAR(ld_shlibs, $1)=no -- ;; -- -- bsdi[[45]]*) -- _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic -- ;; -- -- cygwin* | mingw* | pw32*) -- # When not using gcc, we currently assume that we are using -- # Microsoft Visual C++. -- # hardcode_libdir_flag_spec is actually meaningless, as there is -- # no search path for DLLs. -- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' -- _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported -- # Tell ltmain to make .lib files, not .a files. -- libext=lib -- # Tell ltmain to make .dll files, not .so files. -- shrext_cmds=".dll" -- # FIXME: Setting linknames here is a bad hack. -- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames=' -- # The linker will automatically build a .lib file if we build a DLL. -- _LT_AC_TAGVAR(old_archive_From_new_cmds, $1)='true' -- # FIXME: Should let the user specify the lib program. -- _LT_AC_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs' -- _LT_AC_TAGVAR(fix_srcfile_path, $1)='`cygpath -w "$srcfile"`' -- _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes -- ;; -- -- darwin* | rhapsody*) -- case $host_os in -- rhapsody* | darwin1.[[012]]) -- _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-undefined ${wl}suppress' -- ;; -- *) # Darwin 1.3 on -- if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then -- _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' -- else -- case ${MACOSX_DEPLOYMENT_TARGET} in -- 10.[[012]]) -- _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' -- ;; -- 10.*) -- _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-undefined ${wl}dynamic_lookup' -- ;; -- esac -- fi -- ;; -- esac -- _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no -- _LT_AC_TAGVAR(hardcode_direct, $1)=no -- _LT_AC_TAGVAR(hardcode_automatic, $1)=yes -- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported -- _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='' -- _LT_AC_TAGVAR(link_all_deplibs, $1)=yes -- if test "$GCC" = yes ; then -- output_verbose_link_cmd='echo' -- _LT_AC_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" -- _LT_AC_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" -- _LT_AC_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" -- _LT_AC_TAGVAR(module_expsym_cmds, $1)="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" -- else -- case $cc_basename in -- xlc*) -- output_verbose_link_cmd='echo' -- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $xlcverstring' -- _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' -- # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds -- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $xlcverstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' -- _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' -- ;; -- *) -- _LT_AC_TAGVAR(ld_shlibs, $1)=no -- ;; -- esac -- fi -- ;; -- -- dgux*) -- _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' -- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' -- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no -- ;; -- -- freebsd1*) -- _LT_AC_TAGVAR(ld_shlibs, $1)=no -- ;; -- -- # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor -- # support. Future versions do this automatically, but an explicit c++rt0.o -- # does not break anything, and helps significantly (at the cost of a little -- # extra space). -- freebsd2.2*) -- _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' -- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' -- _LT_AC_TAGVAR(hardcode_direct, $1)=yes -- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no -- ;; -- -- # Unfortunately, older versions of FreeBSD 2 do not have this feature. -- freebsd2*) -- _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' -- _LT_AC_TAGVAR(hardcode_direct, $1)=yes -- _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes -- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no -- ;; -- -- # FreeBSD 3 and greater uses gcc -shared to do shared libraries. -- freebsd* | dragonfly*) -- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' -- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' -- _LT_AC_TAGVAR(hardcode_direct, $1)=yes -- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no -- ;; -- -- hpux9*) -- if test "$GCC" = yes; then -- _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' -- else -- _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' -- fi -- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' -- _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: -- _LT_AC_TAGVAR(hardcode_direct, $1)=yes -- -- # hardcode_minus_L: Not really in the search PATH, -- # but as the default location of the library. -- _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes -- _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' -- ;; -- -- hpux10*) -- if test "$GCC" = yes -a "$with_gnu_ld" = no; then -- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' -- else -- _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' -- fi -- if test "$with_gnu_ld" = no; then -- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' -- _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: -- -- _LT_AC_TAGVAR(hardcode_direct, $1)=yes -- _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' -- -- # hardcode_minus_L: Not really in the search PATH, -- # but as the default location of the library. -- _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes -- fi -- ;; -- -- hpux11*) -- if test "$GCC" = yes -a "$with_gnu_ld" = no; then -- case $host_cpu in -- hppa*64*) -- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' -- ;; -- ia64*) -- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' -- ;; -- *) -- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' -- ;; -- esac -- else -- case $host_cpu in -- hppa*64*) -- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' -- ;; -- ia64*) -- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' -- ;; -- *) -- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' -- ;; -- esac -- fi -- if test "$with_gnu_ld" = no; then -- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' -- _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: -- -- case $host_cpu in -- hppa*64*|ia64*) -- _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir' -- _LT_AC_TAGVAR(hardcode_direct, $1)=no -- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no -- ;; -- *) -- _LT_AC_TAGVAR(hardcode_direct, $1)=yes -- _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' -- -- # hardcode_minus_L: Not really in the search PATH, -- # but as the default location of the library. -- _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes -- ;; -- esac -- fi -- ;; -- -- irix5* | irix6* | nonstopux*) -- if test "$GCC" = yes; then -- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' -- else -- _LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' -- _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='-rpath $libdir' -- fi -- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' -- _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: -- _LT_AC_TAGVAR(link_all_deplibs, $1)=yes -- ;; -- -- netbsd* | netbsdelf*-gnu) -- if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then -- _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out -- else -- _LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF -- fi -- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' -- _LT_AC_TAGVAR(hardcode_direct, $1)=yes -- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no -- ;; -- -- newsos6) -- _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' -- _LT_AC_TAGVAR(hardcode_direct, $1)=yes -- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' -- _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: -- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no -- ;; -- -- openbsd*) -- if test -f /usr/libexec/ld.so; then -- _LT_AC_TAGVAR(hardcode_direct, $1)=yes -- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no -- if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then -- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' -- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' -- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' -- _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' -- else -- case $host_os in -- openbsd[[01]].* | openbsd2.[[0-7]] | openbsd2.[[0-7]].*) -- _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' -- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' -- ;; -- *) -- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' -- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' -- ;; -- esac -- fi -- else -- _LT_AC_TAGVAR(ld_shlibs, $1)=no -- fi -- ;; -- -- os2*) -- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' -- _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes -- _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported -- _LT_AC_TAGVAR(archive_cmds, $1)='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' -- _LT_AC_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' -- ;; -- -- osf3*) -- if test "$GCC" = yes; then -- _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' -- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' -- else -- _LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' -- _LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' -- fi -- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' -- _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: -- ;; -- -- osf4* | osf5*) # as osf3* with the addition of -msym flag -- if test "$GCC" = yes; then -- _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' -- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' -- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' -- else -- _LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' -- _LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' -- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~ -- $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~$rm $lib.exp' -- -- # Both c and cxx compiler support -rpath directly -- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' -- fi -- _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: -- ;; -- -- solaris*) -- _LT_AC_TAGVAR(no_undefined_flag, $1)=' -z text' -- if test "$GCC" = yes; then -- wlarc='${wl}' -- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' -- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ -- $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp' -- else -- wlarc='' -- _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' -- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ -- $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp' -- fi -- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' -- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no -- case $host_os in -- solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; -- *) -- # The compiler driver will combine and reorder linker options, -- # but understands `-z linker_flag'. GCC discards it without `$wl', -- # but is careful enough not to reorder. -- # Supported since Solaris 2.6 (maybe 2.5.1?) -- if test "$GCC" = yes; then -- _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' -- else -- _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' -- fi -- ;; -- esac -- _LT_AC_TAGVAR(link_all_deplibs, $1)=yes -- ;; -- -- sunos4*) -- if test "x$host_vendor" = xsequent; then -- # Use $CC to link under sequent, because it throws in some extra .o -- # files that make .init and .fini sections work. -- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' -- else -- _LT_AC_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' -- fi -- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' -- _LT_AC_TAGVAR(hardcode_direct, $1)=yes -- _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes -- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no -- ;; -- -- sysv4) -- case $host_vendor in -- sni) -- _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' -- _LT_AC_TAGVAR(hardcode_direct, $1)=yes # is this really true??? -- ;; -- siemens) -- ## LD is ld it makes a PLAMLIB -- ## CC just makes a GrossModule. -- _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags' -- _LT_AC_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs' -- _LT_AC_TAGVAR(hardcode_direct, $1)=no -- ;; -- motorola) -- _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' -- _LT_AC_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie -- ;; -- esac -- runpath_var='LD_RUN_PATH' -- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no -- ;; -- -- sysv4.3*) -- _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' -- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no -- _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport' -- ;; -- -- sysv4*MP*) -- if test -d /usr/nec; then -- _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' -- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no -- runpath_var=LD_RUN_PATH -- hardcode_runpath_var=yes -- _LT_AC_TAGVAR(ld_shlibs, $1)=yes -- fi -- ;; -- -- sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) -- _LT_AC_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' -- _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no -- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no -- runpath_var='LD_RUN_PATH' -- -- if test "$GCC" = yes; then -- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' -- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' -- else -- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' -- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' -- fi -- ;; -- -- sysv5* | sco3.2v5* | sco5v6*) -- # Note: We can NOT use -z defs as we might desire, because we do not -- # link with -lc, and that would cause any symbols used from libc to -- # always be unresolved, which means just about no library would -- # ever link correctly. If we're not using GNU ld we use -z text -- # though, which does catch some bad symbols but isn't as heavy-handed -- # as -z defs. -- _LT_AC_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' -- _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs' -- _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no -- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no -- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' -- _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':' -- _LT_AC_TAGVAR(link_all_deplibs, $1)=yes -- _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' -- runpath_var='LD_RUN_PATH' -- -- if test "$GCC" = yes; then -- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' -- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' -- else -- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' -- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' -- fi -- ;; -- -- uts4*) -- _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' -- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' -- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no -- ;; -- -- *) -- _LT_AC_TAGVAR(ld_shlibs, $1)=no -- ;; -- esac -- fi --]) --AC_MSG_RESULT([$_LT_AC_TAGVAR(ld_shlibs, $1)]) --test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no -- --# --# Do we need to explicitly link libc? --# --case "x$_LT_AC_TAGVAR(archive_cmds_need_lc, $1)" in --x|xyes) -- # Assume -lc should be added -- _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes -- -- if test "$enable_shared" = yes && test "$GCC" = yes; then -- case $_LT_AC_TAGVAR(archive_cmds, $1) in -- *'~'*) -- # FIXME: we may have to deal with multi-command sequences. -- ;; -- '$CC '*) -- # Test whether the compiler implicitly links with -lc since on some -- # systems, -lgcc has to come before -lc. If gcc already passes -lc -- # to ld, don't add -lc before -lgcc. -- AC_MSG_CHECKING([whether -lc should be explicitly linked in]) -- $rm conftest* -- echo "$lt_simple_compile_test_code" > conftest.$ac_ext -- -- if AC_TRY_EVAL(ac_compile) 2>conftest.err; then -- soname=conftest -- lib=conftest -- libobjs=conftest.$ac_objext -- deplibs= -- wl=$_LT_AC_TAGVAR(lt_prog_compiler_wl, $1) -- pic_flag=$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) -- compiler_flags=-v -- linker_flags=-v -- verstring= -- output_objdir=. -- libname=conftest -- lt_save_allow_undefined_flag=$_LT_AC_TAGVAR(allow_undefined_flag, $1) -- _LT_AC_TAGVAR(allow_undefined_flag, $1)= -- if AC_TRY_EVAL(_LT_AC_TAGVAR(archive_cmds, $1) 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) -- then -- _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no -- else -- _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes -- fi -- _LT_AC_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag -- else -- cat conftest.err 1>&5 -- fi -- $rm conftest* -- AC_MSG_RESULT([$_LT_AC_TAGVAR(archive_cmds_need_lc, $1)]) -- ;; -- esac -- fi -- ;; --esac --])# AC_LIBTOOL_PROG_LD_SHLIBS -- -- --# _LT_AC_FILE_LTDLL_C --# ------------------- --# Be careful that the start marker always follows a newline. --AC_DEFUN([_LT_AC_FILE_LTDLL_C], [ --# /* ltdll.c starts here */ --# #define WIN32_LEAN_AND_MEAN --# #include --# #undef WIN32_LEAN_AND_MEAN --# #include --# --# #ifndef __CYGWIN__ --# # ifdef __CYGWIN32__ --# # define __CYGWIN__ __CYGWIN32__ --# # endif --# #endif --# --# #ifdef __cplusplus --# extern "C" { --# #endif --# BOOL APIENTRY DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved); --# #ifdef __cplusplus --# } --# #endif --# --# #ifdef __CYGWIN__ --# #include --# DECLARE_CYGWIN_DLL( DllMain ); --# #endif --# HINSTANCE __hDllInstance_base; --# --# BOOL APIENTRY --# DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved) --# { --# __hDllInstance_base = hInst; --# return TRUE; --# } --# /* ltdll.c ends here */ --])# _LT_AC_FILE_LTDLL_C -- -- --# _LT_AC_TAGVAR(VARNAME, [TAGNAME]) --# --------------------------------- --AC_DEFUN([_LT_AC_TAGVAR], [ifelse([$2], [], [$1], [$1_$2])]) -- -- --# old names --AC_DEFUN([AM_PROG_LIBTOOL], [AC_PROG_LIBTOOL]) --AC_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)]) --AC_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)]) --AC_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)]) --AC_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)]) --AC_DEFUN([AM_PROG_LD], [AC_PROG_LD]) --AC_DEFUN([AM_PROG_NM], [AC_PROG_NM]) -- --# This is just to silence aclocal about the macro not being used --ifelse([AC_DISABLE_FAST_INSTALL]) -- --AC_DEFUN([LT_AC_PROG_GCJ], --[AC_CHECK_TOOL(GCJ, gcj, no) -- test "x${GCJFLAGS+set}" = xset || GCJFLAGS="-g -O2" -- AC_SUBST(GCJFLAGS) --]) -- --AC_DEFUN([LT_AC_PROG_RC], --[AC_CHECK_TOOL(RC, windres, no) --]) -- -- --# Cheap backport of AS_EXECUTABLE_P and required macros --# from Autoconf 2.59; we should not use $as_executable_p directly. -- --# _AS_TEST_PREPARE --# ---------------- --m4_ifndef([_AS_TEST_PREPARE], --[m4_defun([_AS_TEST_PREPARE], --[if test -x / >/dev/null 2>&1; then -- as_executable_p='test -x' --else -- as_executable_p='test -f' --fi --])])# _AS_TEST_PREPARE -- --# AS_EXECUTABLE_P --# --------------- --# Check whether a file is executable. --m4_ifndef([AS_EXECUTABLE_P], --[m4_defun([AS_EXECUTABLE_P], --[AS_REQUIRE([_AS_TEST_PREPARE])dnl --$as_executable_p $1[]dnl --])])# AS_EXECUTABLE_P -- --# NOTE: This macro has been submitted for inclusion into # --# GNU Autoconf as AC_PROG_SED. When it is available in # --# a released version of Autoconf we should remove this # --# macro and use it instead. # --# LT_AC_PROG_SED --# -------------- --# Check for a fully-functional sed program, that truncates --# as few characters as possible. Prefer GNU sed if found. --AC_DEFUN([LT_AC_PROG_SED], --[AC_MSG_CHECKING([for a sed that does not truncate output]) --AC_CACHE_VAL(lt_cv_path_SED, --[# Loop through the user's path and test for sed and gsed. --# Then use that list of sed's as ones to test for truncation. --as_save_IFS=$IFS; IFS=$PATH_SEPARATOR --for as_dir in $PATH --do -- IFS=$as_save_IFS -- 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 -- lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext" -- fi -- done -- done --done --IFS=$as_save_IFS --lt_ac_max=0 --lt_ac_count=0 --# Add /usr/xpg4/bin/sed as it is typically found on Solaris --# along with /bin/sed that truncates output. --for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do -- test ! -f $lt_ac_sed && continue -- cat /dev/null > conftest.in -- lt_ac_count=0 -- echo $ECHO_N "0123456789$ECHO_C" >conftest.in -- # Check for GNU sed and select it if it is found. -- if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then -- lt_cv_path_SED=$lt_ac_sed -- break -- fi -- while true; do -- cat conftest.in conftest.in >conftest.tmp -- mv conftest.tmp conftest.in -- cp conftest.in conftest.nl -- echo >>conftest.nl -- $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break -- cmp -s conftest.out conftest.nl || break -- # 10000 chars as input seems more than enough -- test $lt_ac_count -gt 10 && break -- lt_ac_count=`expr $lt_ac_count + 1` -- if test $lt_ac_count -gt $lt_ac_max; then -- lt_ac_max=$lt_ac_count -- lt_cv_path_SED=$lt_ac_sed -- fi -- done --done --]) --SED=$lt_cv_path_SED --AC_SUBST([SED]) --AC_MSG_RESULT([$SED]) --]) -- - # pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*- - # - # Copyright © 2004 Scott James Remnant . -@@ -6739,16 +87,14 @@ - # _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES]) - # --------------------------------------------- - m4_define([_PKG_CONFIG], --[if test -n "$PKG_CONFIG"; then -- if test -n "$$1"; then -- pkg_cv_[]$1="$$1" -- else -- PKG_CHECK_EXISTS([$3], -- [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`], -- [pkg_failed=yes]) -- fi --else -- pkg_failed=untried -+[if test -n "$$1"; then -+ pkg_cv_[]$1="$$1" -+ elif test -n "$PKG_CONFIG"; then -+ PKG_CHECK_EXISTS([$3], -+ [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`], -+ [pkg_failed=yes]) -+ else -+ pkg_failed=untried - fi[]dnl - ])# _PKG_CONFIG - -@@ -6792,9 +138,9 @@ - if test $pkg_failed = yes; then - _PKG_SHORT_ERRORS_SUPPORTED - if test $_pkg_short_errors_supported = yes; then -- $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "$2"` -+ $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "$2" 2>&1` - else -- $1[]_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$2"` -+ $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors "$2" 2>&1` - fi - # Put the nasty error message in config.log where it belongs - echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD -@@ -6829,7 +175,7 @@ - fi[]dnl - ])# PKG_CHECK_MODULES - --# Copyright (C) 2002, 2003, 2005, 2006, 2007 Free Software Foundation, Inc. -+# Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. - # - # This file is free software; the Free Software Foundation - # gives unlimited permission to copy and/or distribute it, -@@ -6841,10 +187,10 @@ - # generated from the m4 files accompanying Automake X.Y. - # (This private macro should not be called outside this file.) - AC_DEFUN([AM_AUTOMAKE_VERSION], --[am__api_version='1.10' -+[am__api_version='1.11' - dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to - dnl require some minimum version. Point them to the right macro. --m4_if([$1], [1.10.1], [], -+m4_if([$1], [1.11], [], - [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl - ]) - -@@ -6858,12 +204,12 @@ - # AM_SET_CURRENT_AUTOMAKE_VERSION - # ------------------------------- - # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. --# This function is AC_REQUIREd by AC_INIT_AUTOMAKE. -+# This function is AC_REQUIREd by AM_INIT_AUTOMAKE. - AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], --[AM_AUTOMAKE_VERSION([1.10.1])dnl -+[AM_AUTOMAKE_VERSION([1.11])dnl - m4_ifndef([AC_AUTOCONF_VERSION], - [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl --_AM_AUTOCONF_VERSION(AC_AUTOCONF_VERSION)]) -+_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) - - # AM_AUX_DIR_EXPAND -*- Autoconf -*- - -@@ -6920,14 +266,14 @@ - - # AM_CONDITIONAL -*- Autoconf -*- - --# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006 -+# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006, 2008 - # Free Software Foundation, Inc. - # - # This file is free software; the Free Software Foundation - # gives unlimited permission to copy and/or distribute it, - # with or without modifications, as long as this notice is preserved. - --# serial 8 -+# serial 9 - - # AM_CONDITIONAL(NAME, SHELL-CONDITION) - # ------------------------------------- -@@ -6940,6 +286,7 @@ - AC_SUBST([$1_FALSE])dnl - _AM_SUBST_NOTMAKE([$1_TRUE])dnl - _AM_SUBST_NOTMAKE([$1_FALSE])dnl -+m4_define([_AM_COND_VALUE_$1], [$2])dnl - if $2; then - $1_TRUE= - $1_FALSE='#' -@@ -6953,14 +300,14 @@ - Usually this means the macro was only invoked conditionally.]]) - fi])]) - --# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 -+# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2009 - # Free Software Foundation, Inc. - # - # This file is free software; the Free Software Foundation - # gives unlimited permission to copy and/or distribute it, - # with or without modifications, as long as this notice is preserved. - --# serial 9 -+# serial 10 - - # There are a few dirty hacks below to avoid letting `AC_PROG_CC' be - # written in clear, in which case automake, when reading aclocal.m4, -@@ -7017,6 +364,16 @@ - if test "$am_compiler_list" = ""; then - am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp` - fi -+ am__universal=false -+ m4_case([$1], [CC], -+ [case " $depcc " in #( -+ *\ -arch\ *\ -arch\ *) am__universal=true ;; -+ esac], -+ [CXX], -+ [case " $depcc " in #( -+ *\ -arch\ *\ -arch\ *) am__universal=true ;; -+ esac]) -+ - for depmode in $am_compiler_list; do - # Setup a source with many dependencies, because some compilers - # like to wrap large dependency lists on column 80 (with \), and -@@ -7034,7 +391,17 @@ - done - echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf - -+ # We check with `-c' and `-o' for the sake of the "dashmstdout" -+ # mode. It turns out that the SunPro C++ compiler does not properly -+ # handle `-M -o', and we need to detect this. Also, some Intel -+ # versions had trouble with output in subdirs -+ am__obj=sub/conftest.${OBJEXT-o} -+ am__minus_obj="-o $am__obj" - case $depmode in -+ gcc) -+ # This depmode causes a compiler race in universal mode. -+ test "$am__universal" = false || continue -+ ;; - nosideeffect) - # after this tag, mechanisms are not by side-effect, so they'll - # only be used when explicitly requested -@@ -7044,19 +411,23 @@ - break - fi - ;; -+ msvisualcpp | msvcmsys) -+ # This compiler won't grok `-c -o', but also, the minuso test has -+ # not run yet. These depmodes are late enough in the game, and -+ # so weak that their functioning should not be impacted. -+ am__obj=conftest.${OBJEXT-o} -+ am__minus_obj= -+ ;; - none) break ;; - esac -- # We check with `-c' and `-o' for the sake of the "dashmstdout" -- # mode. It turns out that the SunPro C++ compiler does not properly -- # handle `-M -o', and we need to detect this. - if depmode=$depmode \ -- source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \ -+ source=sub/conftest.c object=$am__obj \ - depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ -- $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \ -+ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ - >/dev/null 2>conftest.err && - grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && - grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && -- grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 && -+ grep $am__obj sub/conftest.Po > /dev/null 2>&1 && - ${MAKE-make} -s -f confmf > /dev/null 2>&1; then - # icc doesn't choke on unknown options, it will just issue warnings - # or remarks (even with -Werror). So we grep stderr for any message -@@ -7113,57 +484,68 @@ - - # Generate code to set up dependency tracking. -*- Autoconf -*- - --# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005 -+# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2008 - # Free Software Foundation, Inc. - # - # This file is free software; the Free Software Foundation - # gives unlimited permission to copy and/or distribute it, - # with or without modifications, as long as this notice is preserved. - --#serial 3 -+#serial 5 - - # _AM_OUTPUT_DEPENDENCY_COMMANDS - # ------------------------------ - AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], --[for mf in $CONFIG_FILES; do -- # Strip MF so we end up with the name of the file. -- mf=`echo "$mf" | sed -e 's/:.*$//'` -- # Check whether this is an Automake generated Makefile or not. -- # We used to match only the files named `Makefile.in', but -- # some people rename them; so instead we look at the file content. -- # Grep'ing the first line is not enough: some people post-process -- # each Makefile.in and add a new line on top of each file to say so. -- # Grep'ing the whole file is not good either: AIX grep has a line -- # limit of 2048, but all sed's we know have understand at least 4000. -- if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then -- dirpart=`AS_DIRNAME("$mf")` -- else -- continue -- fi -- # Extract the definition of DEPDIR, am__include, and am__quote -- # from the Makefile without running `make'. -- DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` -- test -z "$DEPDIR" && continue -- am__include=`sed -n 's/^am__include = //p' < "$mf"` -- test -z "am__include" && continue -- am__quote=`sed -n 's/^am__quote = //p' < "$mf"` -- # When using ansi2knr, U may be empty or an underscore; expand it -- U=`sed -n 's/^U = //p' < "$mf"` -- # Find all dependency output files, they are included files with -- # $(DEPDIR) in their names. We invoke sed twice because it is the -- # simplest approach to changing $(DEPDIR) to its actual value in the -- # expansion. -- for file in `sed -n " -- s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ -- sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do -- # Make sure the directory exists. -- test -f "$dirpart/$file" && continue -- fdir=`AS_DIRNAME(["$file"])` -- AS_MKDIR_P([$dirpart/$fdir]) -- # echo "creating $dirpart/$file" -- echo '# dummy' > "$dirpart/$file" -+[{ -+ # Autoconf 2.62 quotes --file arguments for eval, but not when files -+ # are listed without --file. Let's play safe and only enable the eval -+ # if we detect the quoting. -+ case $CONFIG_FILES in -+ *\'*) eval set x "$CONFIG_FILES" ;; -+ *) set x $CONFIG_FILES ;; -+ esac -+ shift -+ for mf -+ 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. -+ # We used to match only the files named `Makefile.in', but -+ # some people rename them; so instead we look at the file content. -+ # Grep'ing the first line is not enough: some people post-process -+ # each Makefile.in and add a new line on top of each file to say so. -+ # Grep'ing the whole file is not good either: AIX grep has a line -+ # limit of 2048, but all sed's we know have understand at least 4000. -+ if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then -+ dirpart=`AS_DIRNAME("$mf")` -+ else -+ continue -+ fi -+ # Extract the definition of DEPDIR, am__include, and am__quote -+ # from the Makefile without running `make'. -+ DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` -+ test -z "$DEPDIR" && continue -+ am__include=`sed -n 's/^am__include = //p' < "$mf"` -+ test -z "am__include" && continue -+ am__quote=`sed -n 's/^am__quote = //p' < "$mf"` -+ # When using ansi2knr, U may be empty or an underscore; expand it -+ U=`sed -n 's/^U = //p' < "$mf"` -+ # Find all dependency output files, they are included files with -+ # $(DEPDIR) in their names. We invoke sed twice because it is the -+ # simplest approach to changing $(DEPDIR) to its actual value in the -+ # expansion. -+ for file in `sed -n " -+ s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ -+ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do -+ # Make sure the directory exists. -+ test -f "$dirpart/$file" && continue -+ fdir=`AS_DIRNAME(["$file"])` -+ AS_MKDIR_P([$dirpart/$fdir]) -+ # echo "creating $dirpart/$file" -+ echo '# dummy' > "$dirpart/$file" -+ done - done --done -+} - ])# _AM_OUTPUT_DEPENDENCY_COMMANDS - - -@@ -7195,13 +577,13 @@ - # Do all the work for Automake. -*- Autoconf -*- - - # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, --# 2005, 2006, 2008 Free Software Foundation, Inc. -+# 2005, 2006, 2008, 2009 Free Software Foundation, Inc. - # - # This file is free software; the Free Software Foundation - # gives unlimited permission to copy and/or distribute it, - # with or without modifications, as long as this notice is preserved. - --# serial 13 -+# serial 16 - - # This macro actually does too much. Some checks are only needed if - # your package does certain things. But this isn't really a big deal. -@@ -7218,7 +600,7 @@ - # arguments mandatory, and then we can depend on a new Autoconf - # release and drop the old call support. - AC_DEFUN([AM_INIT_AUTOMAKE], --[AC_PREREQ([2.60])dnl -+[AC_PREREQ([2.62])dnl - dnl Autoconf wants to disallow AM_ names. We explicitly allow - dnl the ones we care about. - m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl -@@ -7269,8 +651,8 @@ - AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version}) - AM_MISSING_PROG(AUTOHEADER, autoheader) - AM_MISSING_PROG(MAKEINFO, makeinfo) --AM_PROG_INSTALL_SH --AM_PROG_INSTALL_STRIP -+AC_REQUIRE([AM_PROG_INSTALL_SH])dnl -+AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl - AC_REQUIRE([AM_PROG_MKDIR_P])dnl - # We need awk for the "check" target. The system "awk" is bad on - # some platforms. -@@ -7278,23 +660,36 @@ - AC_REQUIRE([AC_PROG_MAKE_SET])dnl - AC_REQUIRE([AM_SET_LEADING_DOT])dnl - _AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], -- [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], -- [_AM_PROG_TAR([v7])])]) -+ [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], -+ [_AM_PROG_TAR([v7])])]) - _AM_IF_OPTION([no-dependencies],, - [AC_PROVIDE_IFELSE([AC_PROG_CC], -- [_AM_DEPENDENCIES(CC)], -- [define([AC_PROG_CC], -- defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl -+ [_AM_DEPENDENCIES(CC)], -+ [define([AC_PROG_CC], -+ defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl - AC_PROVIDE_IFELSE([AC_PROG_CXX], -- [_AM_DEPENDENCIES(CXX)], -- [define([AC_PROG_CXX], -- defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl -+ [_AM_DEPENDENCIES(CXX)], -+ [define([AC_PROG_CXX], -+ defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl - AC_PROVIDE_IFELSE([AC_PROG_OBJC], -- [_AM_DEPENDENCIES(OBJC)], -- [define([AC_PROG_OBJC], -- defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl --]) --]) -+ [_AM_DEPENDENCIES(OBJC)], -+ [define([AC_PROG_OBJC], -+ defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl -+]) -+_AM_IF_OPTION([silent-rules], [AC_REQUIRE([AM_SILENT_RULES])])dnl -+dnl The `parallel-tests' driver may need to know about EXEEXT, so add the -+dnl `am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This macro -+dnl is hooked onto _AC_COMPILER_EXEEXT early, see below. -+AC_CONFIG_COMMANDS_PRE(dnl -+[m4_provide_if([_AM_COMPILER_EXEEXT], -+ [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl -+]) -+ -+dnl Hook into `_AC_COMPILER_EXEEXT' early to learn its expansion. Do not -+dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further -+dnl mangled by Autoconf and run in a shell conditional statement. -+m4_define([_AC_COMPILER_EXEEXT], -+m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])]) - - - # When config.status generates a header, we must update the stamp-h file. -@@ -7318,7 +713,7 @@ - done - echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) - --# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. -+# Copyright (C) 2001, 2003, 2005, 2008 Free Software Foundation, Inc. - # - # This file is free software; the Free Software Foundation - # gives unlimited permission to copy and/or distribute it, -@@ -7329,7 +724,14 @@ - # Define $install_sh. - AC_DEFUN([AM_PROG_INSTALL_SH], - [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl --install_sh=${install_sh-"\$(SHELL) $am_aux_dir/install-sh"} -+if test x"${install_sh}" != xset; then -+ case $am_aux_dir in -+ *\ * | *\ *) -+ install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; -+ *) -+ install_sh="\${SHELL} $am_aux_dir/install-sh" -+ esac -+fi - AC_SUBST(install_sh)]) - - # Copyright (C) 2003, 2005 Free Software Foundation, Inc. -@@ -7355,13 +757,13 @@ - - # Check to see how 'make' treats includes. -*- Autoconf -*- - --# Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc. -+# Copyright (C) 2001, 2002, 2003, 2005, 2009 Free Software Foundation, Inc. - # - # This file is free software; the Free Software Foundation - # gives unlimited permission to copy and/or distribute it, - # with or without modifications, as long as this notice is preserved. - --# serial 3 -+# serial 4 - - # AM_MAKE_INCLUDE() - # ----------------- -@@ -7370,7 +772,7 @@ - [am_make=${MAKE-make} - cat > confinc << 'END' - am__doit: -- @echo done -+ @echo this is the am__doit target - .PHONY: am__doit - END - # If we don't find an include directive, just comment out the code. -@@ -7380,24 +782,24 @@ - _am_result=none - # First try GNU make style include. - echo "include confinc" > confmf --# We grep out `Entering directory' and `Leaving directory' --# messages which can occur if `w' ends up in MAKEFLAGS. --# In particular we don't look at `^make:' because GNU make might --# be invoked under some other name (usually "gmake"), in which --# case it prints its new name instead of `make'. --if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then -- am__include=include -- am__quote= -- _am_result=GNU --fi -+# Ignore all kinds of additional output from `make'. -+case `$am_make -s -f confmf 2> /dev/null` in #( -+*the\ am__doit\ target*) -+ am__include=include -+ am__quote= -+ _am_result=GNU -+ ;; -+esac - # Now try BSD make style include. - if test "$am__include" = "#"; then - echo '.include "confinc"' > confmf -- if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then -- am__include=.include -- am__quote="\"" -- _am_result=BSD -- fi -+ case `$am_make -s -f confmf 2> /dev/null` in #( -+ *the\ am__doit\ target*) -+ am__include=.include -+ am__quote="\"" -+ _am_result=BSD -+ ;; -+ esac - fi - AC_SUBST([am__include]) - AC_SUBST([am__quote]) -@@ -7407,14 +809,14 @@ - - # Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- - --# Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2005 -+# Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2005, 2008 - # Free Software Foundation, Inc. - # - # This file is free software; the Free Software Foundation - # gives unlimited permission to copy and/or distribute it, - # with or without modifications, as long as this notice is preserved. - --# serial 5 -+# serial 6 - - # AM_MISSING_PROG(NAME, PROGRAM) - # ------------------------------ -@@ -7431,7 +833,14 @@ - AC_DEFUN([AM_MISSING_HAS_RUN], - [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl - AC_REQUIRE_AUX_FILE([missing])dnl --test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing" -+if test x"${MISSING+set}" != xset; then -+ case $am_aux_dir in -+ *\ * | *\ *) -+ MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; -+ *) -+ MISSING="\${SHELL} $am_aux_dir/missing" ;; -+ esac -+fi - # Use eval to expand $SHELL - if eval "$MISSING --run true"; then - am_missing_run="$MISSING --run " -@@ -7469,13 +878,13 @@ - - # Helper functions for option handling. -*- Autoconf -*- - --# Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc. -+# Copyright (C) 2001, 2002, 2003, 2005, 2008 Free Software Foundation, Inc. - # - # This file is free software; the Free Software Foundation - # gives unlimited permission to copy and/or distribute it, - # with or without modifications, as long as this notice is preserved. - --# serial 3 -+# serial 4 - - # _AM_MANGLE_OPTION(NAME) - # ----------------------- -@@ -7492,7 +901,7 @@ - # ---------------------------------- - # OPTIONS is a space-separated list of Automake options. - AC_DEFUN([_AM_SET_OPTIONS], --[AC_FOREACH([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) -+[m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) - - # _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET]) - # ------------------------------------------- -@@ -7502,14 +911,14 @@ - - # Check to make sure that the build environment is sane. -*- Autoconf -*- - --# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005 -+# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005, 2008 - # Free Software Foundation, Inc. - # - # This file is free software; the Free Software Foundation - # gives unlimited permission to copy and/or distribute it, - # with or without modifications, as long as this notice is preserved. - --# serial 4 -+# serial 5 - - # AM_SANITY_CHECK - # --------------- -@@ -7518,16 +927,29 @@ - # Just in case - sleep 1 - echo timestamp > conftest.file -+# Reject unsafe characters in $srcdir or the absolute working directory -+# name. Accept space and tab only in the latter. -+am_lf=' -+' -+case `pwd` in -+ *[[\\\"\#\$\&\'\`$am_lf]]*) -+ AC_MSG_ERROR([unsafe absolute working directory name]);; -+esac -+case $srcdir in -+ *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*) -+ AC_MSG_ERROR([unsafe srcdir value: `$srcdir']);; -+esac -+ - # Do `set' in a subshell so we don't clobber the current shell's - # arguments. Must try -L first in case configure is actually a - # symlink; some systems play weird games with the mod time of symlinks - # (eg FreeBSD returns the mod time of the symlink's containing - # directory). - if ( -- set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null` -+ set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` - if test "$[*]" = "X"; then - # -L didn't work. -- set X `ls -t $srcdir/configure conftest.file` -+ set X `ls -t "$srcdir/configure" conftest.file` - fi - rm -f conftest.file - if test "$[*]" != "X $srcdir/configure conftest.file" \ -@@ -7580,18 +1002,25 @@ - INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" - AC_SUBST([INSTALL_STRIP_PROGRAM])]) - --# Copyright (C) 2006 Free Software Foundation, Inc. -+# Copyright (C) 2006, 2008 Free Software Foundation, Inc. - # - # This file is free software; the Free Software Foundation - # gives unlimited permission to copy and/or distribute it, - # with or without modifications, as long as this notice is preserved. - -+# serial 2 -+ - # _AM_SUBST_NOTMAKE(VARIABLE) - # --------------------------- - # Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in. - # This macro is traced by Automake. - AC_DEFUN([_AM_SUBST_NOTMAKE]) - -+# AM_SUBST_NOTMAKE(VARIABLE) -+# --------------------------- -+# Public sister of _AM_SUBST_NOTMAKE. -+AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) -+ - # Check how to create a tarball. -*- Autoconf -*- - - # Copyright (C) 2004, 2005 Free Software Foundation, Inc. -@@ -7688,3 +1117,8 @@ - AC_SUBST([am__untar]) - ]) # _AM_PROG_TAR - -+m4_include([m4/libtool.m4]) -+m4_include([m4/ltoptions.m4]) -+m4_include([m4/ltsugar.m4]) -+m4_include([m4/ltversion.m4]) -+m4_include([m4/lt~obsolete.m4]) -diff -Naur libva-0.31.0/config.h.in libva-0.31.0.patch/config.h.in ---- libva-0.31.0/config.h.in 2009-07-06 12:44:32.000000000 +0200 -+++ libva-0.31.0.patch/config.h.in 2009-12-15 13:45:59.000000000 +0100 -@@ -1,8 +1,17 @@ - /* config.h.in. Generated from configure.ac by autoheader. */ - -+/* Defined to __attribute__((visibility("hidden"))) when available */ -+#undef ATTRIBUTE_HIDDEN -+ - /* Define to 1 if you have the header file. */ - #undef HAVE_DLFCN_H - -+/* Define to 1 if you have the header file. */ -+#undef HAVE_GL_GLX_H -+ -+/* Define to 1 if you have the header file. */ -+#undef HAVE_GL_GL_H -+ - /* Define to 1 if you have the header file. */ - #undef HAVE_INTTYPES_H - -@@ -30,6 +39,10 @@ - /* Define to 1 if you have the header file. */ - #undef HAVE_UNISTD_H - -+/* Define to the sub-directory in which libtool stores uninstalled libraries. -+ */ -+#undef LT_OBJDIR -+ - /* Name of package */ - #undef PACKAGE - -diff -Naur libva-0.31.0/configure libva-0.31.0.patch/configure ---- libva-0.31.0/configure 2009-09-10 17:18:49.000000000 +0200 -+++ libva-0.31.0.patch/configure 2009-12-15 13:51:53.830446399 +0100 -@@ -1,11 +1,11 @@ - #! /bin/sh - # Guess values for system-dependent variables and create Makefiles. --# Generated by GNU Autoconf 2.61 for libva 0.31.0. -+# Generated by GNU Autoconf 2.63 for libva 0.31.0. - # - # Report bugs to . - # - # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, --# 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. -+# 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. - ## --------------------- ## -@@ -17,7 +17,7 @@ - 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+"$@"}'='"$@"' - setopt NO_GLOB_SUBST -@@ -39,17 +39,45 @@ - 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 -- 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 -+ 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 - - # Support unset when possible. -@@ -65,8 +93,6 @@ - # 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.) --as_nl=' --' - IFS=" "" $as_nl" - - # Find who we are. Look in the path if we contain no directory separator. -@@ -89,7 +115,7 @@ - as_myself=$0 - fi - if test ! -f "$as_myself"; then -- echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 -+ $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 - { (exit 1); exit 1; } - fi - -@@ -102,17 +128,10 @@ - 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) >/dev/null 2>&1 && $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 && -@@ -134,7 +153,7 @@ - $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ - X"$0" : 'X\(//\)$' \| \ - X"$0" : 'X\(/\)' \| . 2>/dev/null || --echo X/"$0" | -+$as_echo X/"$0" | - sed '/^.*\/\([^/][^/]*\)\/*$/{ - s//\1/ - q -@@ -160,7 +179,7 @@ - as_have_required=no - fi - -- if test $as_have_required = yes && (eval ": -+ if test $as_have_required = yes && (eval ": - (as_func_return () { - (exit \$1) - } -@@ -242,7 +261,7 @@ - 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+"$@"}'='"$@"' - setopt NO_GLOB_SUBST -@@ -263,7 +282,7 @@ - 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+"$@"}'='"$@"' - setopt NO_GLOB_SUBST -@@ -343,10 +362,10 @@ - - 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+"$@"} -+ do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var -+ done -+ export CONFIG_SHELL -+ exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"} - fi - - -@@ -415,9 +434,10 @@ - - test \$exitcode = 0") || { - echo No shell found that supports shell functions. -- echo Please tell autoconf@gnu.org about your system, -- echo including any error possibly output before this -- echo message -+ 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. - } - - -@@ -453,7 +473,7 @@ - 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 -+ { $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 -@@ -481,7 +501,6 @@ - *) - ECHO_N='-n';; - esac -- - if expr a : '\(a\)' >/dev/null 2>&1 && - test "X`expr 00001 : '.*\(...\)'`" = X001; then - as_expr=expr -@@ -494,19 +513,22 @@ - rm -f conf$$.dir/conf$$.file - else - rm -f conf$$.dir -- mkdir conf$$.dir -+ mkdir conf$$.dir 2>/dev/null - fi --echo >conf$$.file --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 || -+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' --elif ln conf$$.file conf$$ 2>/dev/null; then -- as_ln_s=ln -+ fi - else - as_ln_s='cp -p' - fi -@@ -531,10 +553,10 @@ - as_test_x=' - eval sh -c '\'' - if test -d "$1"; then -- test -d "$1/."; -+ test -d "$1/."; - else - case $1 in -- -*)set "./$1";; -+ -*)set "./$1";; - esac; - case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in - ???[sx]*):;;*)false;;esac;fi -@@ -555,22 +577,22 @@ - # Check that we are running under the correct shell. - SHELL=${CONFIG_SHELL-/bin/sh} - --case X$ECHO in -+case X$lt_ECHO in - X*--fallback-echo) - # Remove one level of quotation (which was required for Make). -- ECHO=`echo "$ECHO" | sed 's,\\\\\$\\$0,'$0','` -+ ECHO=`echo "$lt_ECHO" | sed 's,\\\\\$\\$0,'$0','` - ;; - esac - --echo=${ECHO-echo} -+ECHO=${lt_ECHO-echo} - if test "X$1" = X--no-reexec; then - # Discard the --no-reexec flag, and continue. - shift - elif test "X$1" = X--fallback-echo; then - # Avoid inline document here, it may be left over - : --elif test "X`($echo '\t') 2>/dev/null`" = 'X\t' ; then -- # Yippee, $echo works! -+elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' ; then -+ # Yippee, $ECHO works! - : - else - # Restart under the correct shell. -@@ -580,9 +602,9 @@ - if test "X$1" = X--fallback-echo; then - # used as fallback echo - shift -- cat </dev/null 2>&1 && unset CDPATH - --if test -z "$ECHO"; then --if test "X${echo_test_string+set}" != Xset; then --# find a string as large as possible, as long as the shell can cope with it -- for cmd in 'sed 50q "$0"' 'sed 20q "$0"' 'sed 10q "$0"' 'sed 2q "$0"' 'echo test'; do -- # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ... -- if (echo_test_string=`eval $cmd`) 2>/dev/null && -- echo_test_string=`eval $cmd` && -- (test "X$echo_test_string" = "X$echo_test_string") 2>/dev/null -- then -- break -- fi -- done --fi -+if test -z "$lt_ECHO"; then -+ if test "X${echo_test_string+set}" != Xset; then -+ # find a string as large as possible, as long as the shell can cope with it -+ for cmd in 'sed 50q "$0"' 'sed 20q "$0"' 'sed 10q "$0"' 'sed 2q "$0"' 'echo test'; do -+ # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ... -+ if { echo_test_string=`eval $cmd`; } 2>/dev/null && -+ { test "X$echo_test_string" = "X$echo_test_string"; } 2>/dev/null -+ then -+ break -+ fi -+ done -+ fi - --if test "X`($echo '\t') 2>/dev/null`" = 'X\t' && -- echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` && -- test "X$echo_testing_string" = "X$echo_test_string"; then -- : --else -- # The Solaris, AIX, and Digital Unix default echo programs unquote -- # backslashes. This makes it impossible to quote backslashes using -- # echo "$something" | sed 's/\\/\\\\/g' -- # -- # So, first we look for a working echo in the user's PATH. -+ if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' && -+ echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` && -+ test "X$echo_testing_string" = "X$echo_test_string"; then -+ : -+ else -+ # The Solaris, AIX, and Digital Unix default echo programs unquote -+ # backslashes. This makes it impossible to quote backslashes using -+ # echo "$something" | sed 's/\\/\\\\/g' -+ # -+ # So, first we look for a working echo in the user's PATH. - -- lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR -- for dir in $PATH /usr/ucb; do -+ lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR -+ for dir in $PATH /usr/ucb; do -+ IFS="$lt_save_ifs" -+ if (test -f $dir/echo || test -f $dir/echo$ac_exeext) && -+ test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' && -+ echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` && -+ test "X$echo_testing_string" = "X$echo_test_string"; then -+ ECHO="$dir/echo" -+ break -+ fi -+ done - IFS="$lt_save_ifs" -- if (test -f $dir/echo || test -f $dir/echo$ac_exeext) && -- test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' && -- echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` && -- test "X$echo_testing_string" = "X$echo_test_string"; then -- echo="$dir/echo" -- break -- fi -- done -- IFS="$lt_save_ifs" - -- if test "X$echo" = Xecho; then -- # We didn't find a better echo, so look for alternatives. -- if test "X`(print -r '\t') 2>/dev/null`" = 'X\t' && -- echo_testing_string=`(print -r "$echo_test_string") 2>/dev/null` && -- test "X$echo_testing_string" = "X$echo_test_string"; then -- # This shell has a builtin print -r that does the trick. -- echo='print -r' -- elif (test -f /bin/ksh || test -f /bin/ksh$ac_exeext) && -- test "X$CONFIG_SHELL" != X/bin/ksh; then -- # If we have ksh, try running configure again with it. -- ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh} -- export ORIGINAL_CONFIG_SHELL -- CONFIG_SHELL=/bin/ksh -- export CONFIG_SHELL -- exec $CONFIG_SHELL "$0" --no-reexec ${1+"$@"} -- else -- # Try using printf. -- echo='printf %s\n' -- if test "X`($echo '\t') 2>/dev/null`" = 'X\t' && -- echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` && -- test "X$echo_testing_string" = "X$echo_test_string"; then -- # Cool, printf works -- : -- elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` && -- test "X$echo_testing_string" = 'X\t' && -- echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` && -- test "X$echo_testing_string" = "X$echo_test_string"; then -- CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL -- export CONFIG_SHELL -- SHELL="$CONFIG_SHELL" -- export SHELL -- echo="$CONFIG_SHELL $0 --fallback-echo" -- elif echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` && -- test "X$echo_testing_string" = 'X\t' && -- echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` && -- test "X$echo_testing_string" = "X$echo_test_string"; then -- echo="$CONFIG_SHELL $0 --fallback-echo" -+ if test "X$ECHO" = Xecho; then -+ # We didn't find a better echo, so look for alternatives. -+ if test "X`{ print -r '\t'; } 2>/dev/null`" = 'X\t' && -+ echo_testing_string=`{ print -r "$echo_test_string"; } 2>/dev/null` && -+ test "X$echo_testing_string" = "X$echo_test_string"; then -+ # This shell has a builtin print -r that does the trick. -+ ECHO='print -r' -+ elif { test -f /bin/ksh || test -f /bin/ksh$ac_exeext; } && -+ test "X$CONFIG_SHELL" != X/bin/ksh; then -+ # If we have ksh, try running configure again with it. -+ ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh} -+ export ORIGINAL_CONFIG_SHELL -+ CONFIG_SHELL=/bin/ksh -+ export CONFIG_SHELL -+ exec $CONFIG_SHELL "$0" --no-reexec ${1+"$@"} - else -- # maybe with a smaller string... -- prev=: -+ # Try using printf. -+ ECHO='printf %s\n' -+ if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' && -+ echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` && -+ test "X$echo_testing_string" = "X$echo_test_string"; then -+ # Cool, printf works -+ : -+ elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` && -+ test "X$echo_testing_string" = 'X\t' && -+ echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` && -+ test "X$echo_testing_string" = "X$echo_test_string"; then -+ CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL -+ export CONFIG_SHELL -+ SHELL="$CONFIG_SHELL" -+ export SHELL -+ ECHO="$CONFIG_SHELL $0 --fallback-echo" -+ elif echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` && -+ test "X$echo_testing_string" = 'X\t' && -+ echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` && -+ test "X$echo_testing_string" = "X$echo_test_string"; then -+ ECHO="$CONFIG_SHELL $0 --fallback-echo" -+ else -+ # maybe with a smaller string... -+ prev=: - -- for cmd in 'echo test' 'sed 2q "$0"' 'sed 10q "$0"' 'sed 20q "$0"' 'sed 50q "$0"'; do -- if (test "X$echo_test_string" = "X`eval $cmd`") 2>/dev/null -- then -- break -- fi -- prev="$cmd" -- done -+ for cmd in 'echo test' 'sed 2q "$0"' 'sed 10q "$0"' 'sed 20q "$0"' 'sed 50q "$0"'; do -+ if { test "X$echo_test_string" = "X`eval $cmd`"; } 2>/dev/null -+ then -+ break -+ fi -+ prev="$cmd" -+ done - -- if test "$prev" != 'sed 50q "$0"'; then -- echo_test_string=`eval $prev` -- export echo_test_string -- exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "$0" ${1+"$@"} -- else -- # Oops. We lost completely, so just stick with echo. -- echo=echo -- fi -+ if test "$prev" != 'sed 50q "$0"'; then -+ echo_test_string=`eval $prev` -+ export echo_test_string -+ exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "$0" ${1+"$@"} -+ else -+ # Oops. We lost completely, so just stick with echo. -+ ECHO=echo -+ fi -+ fi - fi - fi - fi - fi --fi - - # Copy echo and quote the copy suitably for passing to libtool from - # the Makefile, instead of quoting the original, which is used later. --ECHO=$echo --if test "X$ECHO" = "X$CONFIG_SHELL $0 --fallback-echo"; then -- ECHO="$CONFIG_SHELL \\\$\$0 --fallback-echo" -+lt_ECHO=$ECHO -+if test "X$lt_ECHO" = "X$CONFIG_SHELL $0 --fallback-echo"; then -+ lt_ECHO="$CONFIG_SHELL \\\$\$0 --fallback-echo" - fi - - - - --tagnames=${tagnames+${tagnames},}CXX -- --tagnames=${tagnames+${tagnames},}F77 -- - exec 7<&0 &1 - - # Name of the host. -@@ -769,144 +786,165 @@ - # include - #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 --datarootdir --datadir --sysconfdir --sharedstatedir --localstatedir --includedir --oldincludedir --docdir --infodir --htmldir --dvidir --pdfdir --psdir --libdir --localedir --mandir --DEFS --ECHO_C --ECHO_N --ECHO_T --LIBS -+ac_subst_vars='am__EXEEXT_FALSE -+am__EXEEXT_TRUE -+LTLIBOBJS -+LIBOBJS -+libvabackendlib -+libvacorelib -+pkgconfigdir -+LIBVA_LIBS -+LIBVA_CFLAGS -+USE_GLX_FALSE -+USE_GLX_TRUE -+GL_DEPS_LIBS -+GL_DEPS_CFLAGS -+BUILD_I965_DRIVER_FALSE -+BUILD_I965_DRIVER_TRUE -+HAVE_GEN4ASM_FALSE -+HAVE_GEN4ASM_TRUE -+GEN4ASM_LIBS -+GEN4ASM_CFLAGS -+DRM_LIBS -+DRM_CFLAGS -+XFIXES_LIBS -+XFIXES_CFLAGS -+XEXT_LIBS -+XEXT_CFLAGS -+X11_LIBS -+X11_CFLAGS -+PKG_CONFIG -+CPP -+OTOOL64 -+OTOOL -+LIPO -+NMEDIT -+DSYMUTIL -+lt_ECHO -+RANLIB -+AR -+OBJDUMP -+LN_S -+NM -+ac_ct_DUMPBIN -+DUMPBIN -+LD -+FGREP -+EGREP -+GREP -+SED -+am__fastdepCC_FALSE -+am__fastdepCC_TRUE -+CCDEPMODE -+AMDEPBACKSLASH -+AMDEP_FALSE -+AMDEP_TRUE -+am__quote -+am__include -+DEPDIR -+OBJEXT -+EXEEXT -+ac_ct_CC -+CPPFLAGS -+LDFLAGS -+CFLAGS -+CC -+host_os -+host_vendor -+host_cpu -+host -+build_os -+build_vendor -+build_cpu -+build -+LIBTOOL -+LIBVA_DRIVERS_PATH -+BUILD_DUMMY_DRIVER_FALSE -+BUILD_DUMMY_DRIVER_TRUE -+LIBVA_LT_LDFLAGS -+LIBVA_LT_VERSION -+LIBVA_SDS_VERSION -+LIBVA_VERSION -+LIBVA_MICRO_VERSION -+LIBVA_MINOR_VERSION -+LIBVA_MAJOR_VERSION -+am__untar -+am__tar -+AMTAR -+am__leading_dot -+SET_MAKE -+AWK -+mkdir_p -+MKDIR_P -+INSTALL_STRIP_PROGRAM -+STRIP -+install_sh -+MAKEINFO -+AUTOHEADER -+AUTOMAKE -+AUTOCONF -+ACLOCAL -+VERSION -+PACKAGE -+CYGPATH_W -+am__isrc -+INSTALL_DATA -+INSTALL_SCRIPT -+INSTALL_PROGRAM -+target_alias -+host_alias - build_alias --host_alias --target_alias --INSTALL_PROGRAM --INSTALL_SCRIPT --INSTALL_DATA --am__isrc --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 --LIBVA_MAJOR_VERSION --LIBVA_MINOR_VERSION --LIBVA_MICRO_VERSION --LIBVA_VERSION --LIBVA_LT_VERSION --LIBVA_LT_LDFLAGS --BUILD_DUMMY_DRIVER_TRUE --BUILD_DUMMY_DRIVER_FALSE --LIBVA_DRIVERS_PATH --build --build_cpu --build_vendor --build_os --host --host_cpu --host_vendor --host_os --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 --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 --X11_CFLAGS --X11_LIBS --XEXT_CFLAGS --XEXT_LIBS --XFIXES_CFLAGS --XFIXES_LIBS --DRM_CFLAGS --DRM_LIBS --GEN4ASM_CFLAGS --GEN4ASM_LIBS --HAVE_GEN4ASM_TRUE --HAVE_GEN4ASM_FALSE --BUILD_I965_DRIVER_TRUE --BUILD_I965_DRIVER_FALSE --LIBVA_CFLAGS --LIBVA_LIBS --pkgconfigdir --libvacorelib --libvabackendlib --LIBVA_DISPLAY --LIBOBJS --LTLIBOBJS' --ac_subst_files='' -- ac_precious_vars='build_alias -+LIBS -+ECHO_T -+ECHO_N -+ECHO_C -+DEFS -+mandir -+localedir -+libdir -+psdir -+pdfdir -+dvidir -+htmldir -+infodir -+docdir -+oldincludedir -+includedir -+localstatedir -+sharedstatedir -+sysconfdir -+datadir -+datarootdir -+libexecdir -+sbindir -+bindir -+program_transform_name -+prefix -+exec_prefix -+PACKAGE_BUGREPORT -+PACKAGE_STRING -+PACKAGE_VERSION -+PACKAGE_TARNAME -+PACKAGE_NAME -+PATH_SEPARATOR -+SHELL' -+ac_subst_files='' -+ac_user_opts=' -+enable_option_checking -+enable_glx -+enable_dummy_driver -+enable_i965_driver -+with_drivers_path -+enable_static -+enable_shared -+with_pic -+enable_fast_install -+enable_dependency_tracking -+with_gnu_ld -+enable_libtool_lock -+enable_largefile -+' -+ ac_precious_vars='build_alias - host_alias - target_alias - CC -@@ -915,12 +953,6 @@ - LIBS - CPPFLAGS - CPP --CXX --CXXFLAGS --CCC --CXXCPP --F77 --FFLAGS - PKG_CONFIG - X11_CFLAGS - X11_LIBS -@@ -937,6 +969,8 @@ - # 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 -@@ -1035,13 +1069,21 @@ - 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 ;; -@@ -1054,13 +1096,21 @@ - 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'` -- eval enable_$ac_feature=\$ac_optarg ;; -+ 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_useropt=\$ac_optarg ;; - - -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ - | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ -@@ -1251,22 +1301,38 @@ - 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'` -- eval with_$ac_package=\$ac_optarg ;; -+ 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_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. -@@ -1286,7 +1352,7 @@ - | --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; }; } - ;; -@@ -1295,16 +1361,16 @@ - 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; }; } - 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} - ;; - -@@ -1313,22 +1379,38 @@ - - 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 directory names. -+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 -+fi -+ -+# 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=\$$ac_var -+ # Remove trailing slashes. -+ case $ac_val in -+ */ ) -+ 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 -- { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 -+ { $as_echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 - { (exit 1); exit 1; }; } - done - -@@ -1343,7 +1425,7 @@ - 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 -@@ -1359,10 +1441,10 @@ - ac_pwd=`pwd` && test -n "$ac_pwd" && - ac_ls_di=`ls -di .` && - ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || -- { echo "$as_me: error: Working directory cannot be determined" >&2 -+ { $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" || -- { echo "$as_me: error: pwd does not report name of working directory" >&2 -+ { $as_echo "$as_me: error: pwd does not report name of working directory" >&2 - { (exit 1); exit 1; }; } - - -@@ -1370,12 +1452,12 @@ - if test -z "$srcdir"; then - ac_srcdir_defaulted=yes - # Try the directory containing this script, then the parent directory. -- ac_confdir=`$as_dirname -- "$0" || --$as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ -- X"$0" : 'X\(//\)[^/]' \| \ -- X"$0" : 'X\(//\)$' \| \ -- X"$0" : 'X\(/\)' \| . 2>/dev/null || --echo X"$0" | -+ 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 -@@ -1402,12 +1484,12 @@ - fi - if test ! -r "$srcdir/$ac_unique_file"; then - test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." -- { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2 -+ { $as_echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2 - { (exit 1); exit 1; }; } - fi - ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" - ac_abs_confdir=`( -- cd "$srcdir" && test -r "./$ac_unique_file" || { echo "$as_me: error: $ac_msg" >&2 -+ cd "$srcdir" && test -r "./$ac_unique_file" || { $as_echo "$as_me: error: $ac_msg" >&2 - { (exit 1); exit 1; }; } - pwd)` - # When building in place, set srcdir=. -@@ -1456,9 +1538,9 @@ - - 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 -@@ -1468,25 +1550,25 @@ - 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] -- --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/libva] -- --htmldir=DIR html documentation [DOCDIR] -- --dvidir=DIR dvi documentation [DOCDIR] -- --pdfdir=DIR pdf documentation [DOCDIR] -- --psdir=DIR ps documentation [DOCDIR] -+ --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/libva] -+ --htmldir=DIR html documentation [DOCDIR] -+ --dvidir=DIR dvi documentation [DOCDIR] -+ --pdfdir=DIR pdf documentation [DOCDIR] -+ --psdir=DIR ps documentation [DOCDIR] - _ACEOF - - cat <<\_ACEOF -@@ -1509,8 +1591,10 @@ - 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-glx build with OpenGL for X11 support - --enable-dummy-driver build dummy video driver - --enable-i965-driver build i965 video driver - --enable-static[=PKGS] build static libraries [default=no] -@@ -1525,12 +1609,11 @@ - Optional Packages: - --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] - --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) -- --with-drivers-path=path -+ --with-drivers-path=[path] - drivers path -- --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-gnu-ld assume the C compiler uses GNU ld [default=no] - - Some influential environment variables: - CC C compiler command -@@ -1541,11 +1624,6 @@ - CPPFLAGS C/C++/Objective C preprocessor flags, e.g. -I if - you have headers in a nonstandard directory - CPP C preprocessor -- CXX C++ compiler command -- CXXFLAGS C++ compiler flags -- CXXCPP C++ preprocessor -- F77 Fortran 77 compiler command -- FFLAGS Fortran 77 compiler flags - PKG_CONFIG path to pkg-config utility - X11_CFLAGS C compiler flags for X11, overriding pkg-config - X11_LIBS linker flags for X11, overriding pkg-config -@@ -1572,15 +1650,17 @@ - if test "$ac_init_help" = "recursive"; then - # If there are subdirs, report their specific --help. - 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=. - - case "$ac_dir" in - .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; - *) -- ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` -+ ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` - # A ".." for each directory in $ac_dir_suffix. -- ac_top_builddir_sub=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,/..,g;s,/,,'` -+ 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/ ;; -@@ -1616,7 +1696,7 @@ - echo && - $SHELL "$ac_srcdir/configure" --help=recursive - else -- echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 -+ $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 - fi || ac_status=$? - cd "$ac_pwd" || { ac_status=$?; break; } - done -@@ -1626,10 +1706,10 @@ - if $ac_init_version; then - cat <<\_ACEOF - libva configure 0.31.0 --generated by GNU Autoconf 2.61 -+generated by GNU Autoconf 2.63 - - Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, --2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. -+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 -@@ -1640,7 +1720,7 @@ - running configure, to aid debugging if configure makes a mistake. - - It was created by libva $as_me 0.31.0, which was --generated by GNU Autoconf 2.61. Invocation command line was -+generated by GNU Autoconf 2.63. Invocation command line was - - $ $0 $@ - -@@ -1676,7 +1756,7 @@ - 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 - -@@ -1711,7 +1791,7 @@ - | -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'" ;; -@@ -1763,11 +1843,12 @@ - case $ac_val in #( - *${as_nl}*) - case $ac_var in #( -- *_cv_*) { echo "$as_me:$LINENO: WARNING: Cache variable $ac_var contains a newline." >&5 --echo "$as_me: WARNING: Cache variable $ac_var contains a newline." >&2;} ;; -+ *_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 -@@ -1797,9 +1878,9 @@ - do - eval ac_val=\$$ac_var - case $ac_val in -- *\'\''*) ac_val=`echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; -+ *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; - esac -- echo "$ac_var='\''$ac_val'\''" -+ $as_echo "$ac_var='\''$ac_val'\''" - done | sort - echo - -@@ -1814,9 +1895,9 @@ - do - eval ac_val=\$$ac_var - case $ac_val in -- *\'\''*) ac_val=`echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; -+ *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; - esac -- echo "$ac_var='\''$ac_val'\''" -+ $as_echo "$ac_var='\''$ac_val'\''" - done | sort - echo - fi -@@ -1832,8 +1913,8 @@ - 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 core.conftest.* && - rm -f -r conftest* confdefs* conf$$* $ac_clean_files && -@@ -1875,21 +1956,24 @@ - - - # Let the site file select an alternate cache file if it wants to. --# Prefer explicitly selected file to automatically selected ones. -+# Prefer an explicitly selected file to automatically selected ones. -+ac_site_file1=NONE -+ac_site_file2=NONE - if test -n "$CONFIG_SITE"; then -- set x "$CONFIG_SITE" -+ ac_site_file1=$CONFIG_SITE - elif test "x$prefix" != xNONE; then -- set x "$prefix/share/config.site" "$prefix/etc/config.site" -+ ac_site_file1=$prefix/share/config.site -+ ac_site_file2=$prefix/etc/config.site - else -- set x "$ac_default_prefix/share/config.site" \ -- "$ac_default_prefix/etc/config.site" -+ ac_site_file1=$ac_default_prefix/share/config.site -+ ac_site_file2=$ac_default_prefix/etc/config.site - fi --shift --for ac_site_file -+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 -@@ -1899,16 +1983,16 @@ - # 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";; - 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 - -@@ -1922,29 +2006,38 @@ - 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 -@@ -1954,10 +2047,12 @@ - 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: in \`$ac_pwd':" >&5 -+$as_echo "$as_me: error: in \`$ac_pwd':" >&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 - -@@ -1993,7 +2088,7 @@ - - - --am__api_version='1.10' -+am__api_version='1.11' - - ac_aux_dir= - for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do -@@ -2012,8 +2107,8 @@ - fi - done - if test -z "$ac_aux_dir"; then -- { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" >&5 --echo "$as_me: error: cannot find install-sh or install.sh in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" >&2;} -+ { { $as_echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" >&5 -+$as_echo "$as_me: error: cannot find install-sh or install.sh in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" >&2;} - { (exit 1); exit 1; }; } - fi - -@@ -2039,11 +2134,12 @@ - # 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 -@@ -2072,17 +2168,29 @@ - # 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 -@@ -2095,8 +2203,8 @@ - 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. -@@ -2106,21 +2214,38 @@ - - test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' - --{ echo "$as_me:$LINENO: checking whether build environment is sane" >&5 --echo $ECHO_N "checking whether build environment is sane... $ECHO_C" >&6; } -+{ $as_echo "$as_me:$LINENO: checking whether build environment is sane" >&5 -+$as_echo_n "checking whether build environment is sane... " >&6; } - # Just in case - sleep 1 - echo timestamp > conftest.file -+# Reject unsafe characters in $srcdir or the absolute working directory -+# name. Accept space and tab only in the latter. -+am_lf=' -+' -+case `pwd` in -+ *[\\\"\#\$\&\'\`$am_lf]*) -+ { { $as_echo "$as_me:$LINENO: error: unsafe absolute working directory name" >&5 -+$as_echo "$as_me: error: unsafe absolute working directory name" >&2;} -+ { (exit 1); exit 1; }; };; -+esac -+case $srcdir in -+ *[\\\"\#\$\&\'\`$am_lf\ \ ]*) -+ { { $as_echo "$as_me:$LINENO: error: unsafe srcdir value: \`$srcdir'" >&5 -+$as_echo "$as_me: error: unsafe srcdir value: \`$srcdir'" >&2;} -+ { (exit 1); exit 1; }; };; -+esac -+ - # Do `set' in a subshell so we don't clobber the current shell's - # arguments. Must try -L first in case configure is actually a - # symlink; some systems play weird games with the mod time of symlinks - # (eg FreeBSD returns the mod time of the symlink's containing - # directory). - if ( -- set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null` -+ set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` - if test "$*" = "X"; then - # -L didn't work. -- set X `ls -t $srcdir/configure conftest.file` -+ set X `ls -t "$srcdir/configure" conftest.file` - fi - rm -f conftest.file - if test "$*" != "X $srcdir/configure conftest.file" \ -@@ -2130,9 +2255,9 @@ - # if, for instance, CONFIG_SHELL is bash and it inherits a - # broken ls alias from the environment. This has actually - # happened. Such a system could not be considered "sane". -- { { echo "$as_me:$LINENO: error: ls -t appears to fail. Make sure there is not a broken -+ { { $as_echo "$as_me:$LINENO: error: ls -t appears to fail. Make sure there is not a broken - alias in your environment" >&5 --echo "$as_me: error: ls -t appears to fail. Make sure there is not a broken -+$as_echo "$as_me: error: ls -t appears to fail. Make sure there is not a broken - alias in your environment" >&2;} - { (exit 1); exit 1; }; } - fi -@@ -2143,45 +2268,158 @@ - # Ok. - : - else -- { { echo "$as_me:$LINENO: error: newly created file is older than distributed files! -+ { { $as_echo "$as_me:$LINENO: error: newly created file is older than distributed files! - Check your system clock" >&5 --echo "$as_me: error: newly created file is older than distributed files! -+$as_echo "$as_me: error: newly created file is older than distributed files! - Check your system clock" >&2;} - { (exit 1); exit 1; }; } - 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; } - test "$program_prefix" != NONE && - 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. -+# 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 -f 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` - --test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing" -+if test x"${MISSING+set}" != xset; then -+ case $am_aux_dir in -+ *\ * | *\ *) -+ MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; -+ *) -+ MISSING="\${SHELL} $am_aux_dir/missing" ;; -+ esac -+fi - # Use eval to expand $SHELL - 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 test x"${install_sh}" != xset; then -+ case $am_aux_dir in -+ *\ * | *\ *) -+ install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; -+ *) -+ install_sh="\${SHELL} $am_aux_dir/install-sh" -+ esac -+fi -+ -+# Installed binaries are usually stripped using `strip' when the user -+# run `make install-strip'. However `strip' might not be the right -+# tool to use in cross-compilation environments, therefore Automake -+# will honor the `STRIP' environment variable to overrule this program. -+if test "$cross_compiling" != 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 -+{ $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 -+ $as_echo_n "(cached) " >&6 -+else -+ if test -n "$STRIP"; then -+ ac_cv_prog_STRIP="$STRIP" # 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_STRIP="${ac_tool_prefix}strip" -+ $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 -+ { $as_echo "$as_me:$LINENO: result: $STRIP" >&5 -+$as_echo "$STRIP" >&6; } -+else -+ { $as_echo "$as_me:$LINENO: result: no" >&5 -+$as_echo "no" >&6; } - fi - --{ echo "$as_me:$LINENO: checking for a thread-safe mkdir -p" >&5 --echo $ECHO_N "checking for a thread-safe mkdir -p... $ECHO_C" >&6; } -+ -+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 -+{ $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 -+ $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. -+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_ac_ct_STRIP="strip" -+ $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_STRIP=$ac_cv_prog_ac_ct_STRIP -+if test -n "$ac_ct_STRIP"; then -+ { $as_echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5 -+$as_echo "$ac_ct_STRIP" >&6; } -+else -+ { $as_echo "$as_me:$LINENO: result: no" >&5 -+$as_echo "no" >&6; } -+fi -+ -+ if test "x$ac_ct_STRIP" = x; then -+ STRIP=":" -+ else -+ case $cross_compiling:$ac_tool_warned in -+yes:) -+{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 -+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -+ac_tool_warned=yes ;; -+esac -+ STRIP=$ac_ct_STRIP -+ fi -+else -+ STRIP="$ac_cv_prog_STRIP" -+fi -+ -+fi -+INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" -+ -+{ $as_echo "$as_me:$LINENO: checking for a thread-safe mkdir -p" >&5 -+$as_echo_n "checking for a thread-safe mkdir -p... " >&6; } - if test -z "$MKDIR_P"; then - if test "${ac_cv_path_mkdir+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$PATH_SEPARATOR/opt/sfw/bin -@@ -2216,8 +2454,8 @@ - MKDIR_P="$ac_install_sh -d" - fi - fi --{ echo "$as_me:$LINENO: result: $MKDIR_P" >&5 --echo "${ECHO_T}$MKDIR_P" >&6; } -+{ $as_echo "$as_me:$LINENO: result: $MKDIR_P" >&5 -+$as_echo "$MKDIR_P" >&6; } - - mkdir_p="$MKDIR_P" - case $mkdir_p in -@@ -2229,10 +2467,10 @@ - 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. -@@ -2245,7 +2483,7 @@ - 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_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 -@@ -2256,22 +2494,23 @@ - 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 x ${MAKE-make}; ac_make=`echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` -+{ $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 -- echo $ECHO_N "(cached) $ECHO_C" >&6 -+ $as_echo_n "(cached) " >&6 - else - cat >conftest.make <<\_ACEOF - SHELL = /bin/sh -@@ -2288,12 +2527,12 @@ - rm -f conftest.make - fi - if eval test \$ac_cv_prog_make_${ac_make}_set = yes; 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; } - 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 - -@@ -2312,8 +2551,8 @@ - am__isrc=' -I$(srcdir)' - # test to see if srcdir already configured - if 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 - fi -@@ -2358,166 +2597,72 @@ - - MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} - --install_sh=${install_sh-"\$(SHELL) $am_aux_dir/install-sh"} -+# We need awk for the "check" target. The system "awk" is bad on -+# some platforms. -+# Always define AMTAR for backward compatibility. -+ -+AMTAR=${AMTAR-"${am_missing_run}tar"} -+ -+am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -' -+ -+ -+ -+ -+ -+ -+ac_config_headers="$ac_config_headers config.h" -+ -+ -+ -+LIBVA_MAJOR_VERSION=0 -+LIBVA_MINOR_VERSION=31 -+LIBVA_MICRO_VERSION=0 -+LIBVA_VERSION=0.31.0 -+ - --# Installed binaries are usually stripped using `strip' when the user --# run `make install-strip'. However `strip' might not be the right --# tool to use in cross-compilation environments, therefore Automake --# will honor the `STRIP' environment variable to overrule this program. --if test "$cross_compiling" != 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; } --if test "${ac_cv_prog_STRIP+set}" = set; then -- echo $ECHO_N "(cached) $ECHO_C" >&6 --else -- if test -n "$STRIP"; then -- ac_cv_prog_STRIP="$STRIP" # 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_STRIP="${ac_tool_prefix}strip" -- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 -- break 2 -- fi --done --done --IFS=$as_save_IFS - -+ -+ -+LIBVA_SDS_VERSION=4 -+ -+ -+LIBVA_LT_CURRENT=1 -+LIBVA_LT_REV=0 -+LIBVA_LT_AGE=0 -+LIBVA_LT_VERSION="$LIBVA_LT_CURRENT:$LIBVA_LT_REV:$LIBVA_LT_AGE" -+LIBVA_LT_LDFLAGS="-version-info $LIBVA_LT_VERSION -release $LIBVA_VERSION.$LIBVA_SDS_VERSION" -+ -+ -+ -+# Check whether --enable-glx was given. -+if test "${enable_glx+set}" = set; then -+ enableval=$enable_glx; -+else -+ enable_glx=yes - fi -+ -+ -+# Check whether --enable-dummy-driver was given. -+if test "${enable_dummy_driver+set}" = set; then -+ enableval=$enable_dummy_driver; -+else -+ enable_dummy_driver=yes - fi --STRIP=$ac_cv_prog_STRIP --if test -n "$STRIP"; then -- { echo "$as_me:$LINENO: result: $STRIP" >&5 --echo "${ECHO_T}$STRIP" >&6; } -+ -+ if test x$enable_dummy_driver = xyes; then -+ BUILD_DUMMY_DRIVER_TRUE= -+ BUILD_DUMMY_DRIVER_FALSE='#' - else -- { echo "$as_me:$LINENO: result: no" >&5 --echo "${ECHO_T}no" >&6; } -+ BUILD_DUMMY_DRIVER_TRUE='#' -+ BUILD_DUMMY_DRIVER_FALSE= - 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; } --if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then -- echo $ECHO_N "(cached) $ECHO_C" >&6 --else -- if test -n "$ac_ct_STRIP"; then -- ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # 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_ac_ct_STRIP="strip" -- 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_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; } --else -- { echo "$as_me:$LINENO: result: no" >&5 --echo "${ECHO_T}no" >&6; } --fi -- -- if test "x$ac_ct_STRIP" = x; then -- STRIP=":" -- else -- case $cross_compiling:$ac_tool_warned in --yes:) --{ 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 --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 -- --fi --INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" -- --# We need awk for the "check" target. The system "awk" is bad on --# some platforms. --# Always define AMTAR for backward compatibility. -- --AMTAR=${AMTAR-"${am_missing_run}tar"} -- --am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -' -- -- -- -- -- -- --ac_config_headers="$ac_config_headers config.h" -- -- --LIBVA_MAJOR_VERSION=0 --LIBVA_MINOR_VERSION=31 --LIBVA_MICRO_VERSION=0 --LIBVA_VERSION=0.31.0 -- -- -- -- -- --LIBVA_LT_CURRENT=1 --LIBVA_LT_REV=0 --LIBVA_LT_AGE=0 --LIBVA_LT_VERSION="$LIBVA_LT_CURRENT:$LIBVA_LT_REV:$LIBVA_LT_AGE" --LIBVA_LT_LDFLAGS="-version-info $LIBVA_LT_VERSION" -- -- -- --# Check whether --enable-dummy-driver was given. --if test "${enable_dummy_driver+set}" = set; then -- enableval=$enable_dummy_driver; --else -- enable_dummy_driver=yes --fi -- -- if test x$enable_dummy_driver = xyes; then -- BUILD_DUMMY_DRIVER_TRUE= -- BUILD_DUMMY_DRIVER_FALSE='#' --else -- BUILD_DUMMY_DRIVER_TRUE='#' -- BUILD_DUMMY_DRIVER_FALSE= --fi -- -- --# Check whether --enable-i965-driver was given. --if test "${enable_i965_driver+set}" = set; then -- enableval=$enable_i965_driver; --else -- enable_i965_driver=no -+# Check whether --enable-i965-driver was given. -+if test "${enable_i965_driver+set}" = set; then -+ enableval=$enable_i965_driver; -+else -+ enable_i965_driver=no - fi - - -@@ -2526,7 +2671,7 @@ - if test "${with_drivers_path+set}" = set; then - withval=$with_drivers_path; - else -- with_drivers_path="$libdir/dri" -+ with_drivers_path="$libdir/va/drivers" - fi - - -@@ -2558,84 +2703,67 @@ - - - --# Check whether --enable-shared was given. --if test "${enable_shared+set}" = set; then -- enableval=$enable_shared; p=${PACKAGE-default} -- case $enableval in -- yes) enable_shared=yes ;; -- no) enable_shared=no ;; -- *) -- enable_shared=no -- # Look at the argument we got. We use all the common list separators. -- lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," -- for pkg in $enableval; do -- IFS="$lt_save_ifs" -- if test "X$pkg" = "X$p"; then -- enable_shared=yes -- fi -- done -- IFS="$lt_save_ifs" -- ;; -- esac --else -- enable_shared=yes --fi - - --# Check whether --enable-fast-install was given. --if test "${enable_fast_install+set}" = set; then -- enableval=$enable_fast_install; p=${PACKAGE-default} -- case $enableval in -- yes) enable_fast_install=yes ;; -- no) enable_fast_install=no ;; -- *) -- enable_fast_install=no -- # Look at the argument we got. We use all the common list separators. -- lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," -- for pkg in $enableval; do -- IFS="$lt_save_ifs" -- if test "X$pkg" = "X$p"; then -- enable_fast_install=yes -- fi -- done -- IFS="$lt_save_ifs" -- ;; -- esac --else -- enable_fast_install=yes --fi - - -+ -+ -+case `pwd` in -+ *\ * | *\ *) -+ { $as_echo "$as_me:$LINENO: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5 -+$as_echo "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;; -+esac -+ -+ -+ -+macro_version='2.2.6' -+macro_revision='1.3012' -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ltmain="$ac_aux_dir/ltmain.sh" -+ - # Make sure we can run config.sub. - $SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || -- { { echo "$as_me:$LINENO: error: cannot run $SHELL $ac_aux_dir/config.sub" >&5 --echo "$as_me: error: cannot run $SHELL $ac_aux_dir/config.sub" >&2;} -+ { { $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 -+ $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 && -- { { 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 "$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=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || -- { { echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&5 --echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&2;} -+ { { $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 - *-*-*) ;; --*) { { echo "$as_me:$LINENO: error: invalid value of canonical build" >&5 --echo "$as_me: error: invalid value of canonical build" >&2;} -+*) { { $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 -@@ -2652,27 +2780,27 @@ - case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac - - --{ echo "$as_me:$LINENO: checking host system type" >&5 --echo $ECHO_N "checking host system type... $ECHO_C" >&6; } -+{ $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 -+ $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` || -- { { echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&5 --echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&2;} -+ { { $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 - *-*-*) ;; --*) { { echo "$as_me:$LINENO: error: invalid value of canonical host" >&5 --echo "$as_me: error: invalid value of canonical host" >&2;} -+*) { { $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 -@@ -2697,40 +2825,40 @@ - am_make=${MAKE-make} - cat > confinc << 'END' - am__doit: -- @echo done -+ @echo this is the am__doit target - .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 - # First try GNU make style include. - echo "include confinc" > confmf --# We grep out `Entering directory' and `Leaving directory' --# messages which can occur if `w' ends up in MAKEFLAGS. --# In particular we don't look at `^make:' because GNU make might --# be invoked under some other name (usually "gmake"), in which --# case it prints its new name instead of `make'. --if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then -- am__include=include -- am__quote= -- _am_result=GNU --fi -+# Ignore all kinds of additional output from `make'. -+case `$am_make -s -f confmf 2> /dev/null` in #( -+*the\ am__doit\ target*) -+ am__include=include -+ am__quote= -+ _am_result=GNU -+ ;; -+esac - # Now try BSD make style include. - if test "$am__include" = "#"; then - echo '.include "confinc"' > confmf -- if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then -- am__include=.include -- am__quote="\"" -- _am_result=BSD -- fi -+ case `$am_make -s -f confmf 2> /dev/null` in #( -+ *the\ am__doit\ target*) -+ am__include=.include -+ am__quote="\"" -+ _am_result=BSD -+ ;; -+ esac - 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 was given. -@@ -2759,10 +2887,10 @@ - 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. -@@ -2775,7 +2903,7 @@ - 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_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 -@@ -2786,11 +2914,11 @@ - 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 - - -@@ -2799,10 +2927,10 @@ - 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. -@@ -2815,7 +2943,7 @@ - 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_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 -@@ -2826,11 +2954,11 @@ - 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 - - if test "x$ac_ct_CC" = x; then -@@ -2838,12 +2966,8 @@ - else - case $cross_compiling:$ac_tool_warned in - yes:) --{ 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 --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;} -+{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 -+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} - ac_tool_warned=yes ;; - esac - CC=$ac_ct_CC -@@ -2856,10 +2980,10 @@ - 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. -@@ -2872,7 +2996,7 @@ - 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_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 -@@ -2883,11 +3007,11 @@ - 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 - - -@@ -2896,10 +3020,10 @@ - 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. -@@ -2917,7 +3041,7 @@ - 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 -@@ -2940,11 +3064,11 @@ - 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 - - -@@ -2955,10 +3079,10 @@ - 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. -@@ -2971,7 +3095,7 @@ - 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_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 -@@ -2982,11 +3106,11 @@ - 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 - - -@@ -2999,10 +3123,10 @@ - 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. -@@ -3015,7 +3139,7 @@ - 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_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 -@@ -3026,11 +3150,11 @@ - 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 - - -@@ -3042,12 +3166,8 @@ - else - case $cross_compiling:$ac_tool_warned in - yes:) --{ 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 --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;} -+{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 -+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} - ac_tool_warned=yes ;; - esac - CC=$ac_ct_CC -@@ -3057,44 +3177,50 @@ - 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: in \`$ac_pwd':" >&5 -+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -+{ { $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; }; } -+ { (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` -+$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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 -+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); } - { (ac_try="$ac_compiler -v >&5" - case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; - esac --eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 -+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); } - { (ac_try="$ac_compiler -V >&5" - case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; - esac --eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 -+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 -@@ -3113,27 +3239,22 @@ - } - _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[^ ]*//'` --# --# List of possible output files, starting from the most likely. --# The algorithm is not robust to junk in `.', hence go to wildcards (a.*) --# only as a last resort. b.out is created by i960 compilers. --ac_files='a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out' --# --# The IRIX 6 linker writes into existing files which may not be --# executable, retaining their permissions. Remove them first so a --# subsequent execution test works. -+{ $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 | *.o | *.obj ) ;; -+ *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; - * ) ac_rmfiles="$ac_rmfiles $ac_file";; - esac - done -@@ -3144,10 +3265,11 @@ - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; - esac --eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 -+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 - # 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' -@@ -3158,7 +3280,7 @@ - do - test -f "$ac_file" || continue - case $ac_file in -- *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) -+ *.$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 -@@ -3185,25 +3307,27 @@ - ac_file='' - fi - --{ echo "$as_me:$LINENO: result: $ac_file" >&5 --echo "${ECHO_T}$ac_file" >&6; } -+{ $as_echo "$as_me:$LINENO: result: $ac_file" >&5 -+$as_echo "$ac_file" >&6; } - if test -z "$ac_file"; then -- 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: C compiler cannot create executables -+{ { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 -+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -+{ { $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; }; } -+ { (exit 77); exit 77; }; }; } - fi - - ac_exeext=$ac_cv_exeext - - # 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 -@@ -3212,49 +3336,53 @@ - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; - esac --eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 -+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: in \`$ac_pwd':" >&5 -+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -+{ { $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; }; } -+ { (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 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; } -+{ $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; } - --{ echo "$as_me:$LINENO: checking for suffix of executables" >&5 --echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 -+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 -@@ -3263,31 +3391,33 @@ - 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 | *.map | *.inf | *.o | *.obj ) ;; -+ *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; - *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` - 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: in \`$ac_pwd':" >&5 -+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -+{ { $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; }; } -+ { (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. */ -@@ -3310,40 +3440,43 @@ - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; - esac --eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 -+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 conftest.o conftest.obj conftest.*; do - test -f "$ac_file" || continue; - case $ac_file in -- *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf ) ;; -+ *.$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: in \`$ac_pwd':" >&5 -+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -+{ { $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; }; } -+ { (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. */ -@@ -3369,20 +3502,21 @@ - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; - esac --eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 -+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 -+ $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 -@@ -3392,15 +3526,19 @@ - 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 --{ 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 - ac_save_c_werror_flag=$ac_c_werror_flag - ac_c_werror_flag=yes -@@ -3427,20 +3565,21 @@ - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; - esac --eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 -+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 -+ $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 - - CFLAGS="" -@@ -3465,20 +3604,21 @@ - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; - esac --eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 -+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 -+ $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 -- echo "$as_me: failed program was:" >&5 -+ $as_echo "$as_me: failed program was:" >&5 - sed 's/^/| /' conftest.$ac_ext >&5 - - ac_c_werror_flag=$ac_save_c_werror_flag -@@ -3504,20 +3644,21 @@ - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; - esac --eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 -+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 -+ $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 - - -@@ -3532,8 +3673,8 @@ - rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - ac_c_werror_flag=$ac_save_c_werror_flag - fi --{ echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5 --echo "${ECHO_T}$ac_cv_prog_cc_g" >&6; } -+{ $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 -@@ -3549,10 +3690,10 @@ - CFLAGS= - fi - fi --{ echo "$as_me:$LINENO: checking for $CC option to accept ISO C89" >&5 --echo $ECHO_N "checking for $CC option to accept ISO C89... $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 -- echo $ECHO_N "(cached) $ECHO_C" >&6 -+ $as_echo_n "(cached) " >&6 - else - ac_cv_prog_cc_c89=no - ac_save_CC=$CC -@@ -3623,20 +3764,21 @@ - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; - esac --eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 -+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 -+ $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 -- echo "$as_me: failed program was:" >&5 -+ $as_echo "$as_me: failed program was:" >&5 - sed 's/^/| /' conftest.$ac_ext >&5 - - -@@ -3652,15 +3794,15 @@ - # AC_CACHE_VAL - case "x$ac_cv_prog_cc_c89" in - x) -- { echo "$as_me:$LINENO: result: none needed" >&5 --echo "${ECHO_T}none needed" >&6; } ;; -+ { $as_echo "$as_me:$LINENO: result: none needed" >&5 -+$as_echo "none needed" >&6; } ;; - xno) -- { echo "$as_me:$LINENO: result: unsupported" >&5 --echo "${ECHO_T}unsupported" >&6; } ;; -+ { $as_echo "$as_me:$LINENO: result: unsupported" >&5 -+$as_echo "unsupported" >&6; } ;; - *) - CC="$CC $ac_cv_prog_cc_c89" -- { echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c89" >&5 --echo "${ECHO_T}$ac_cv_prog_cc_c89" >&6; } ;; -+ { $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c89" >&5 -+$as_echo "$ac_cv_prog_cc_c89" >&6; } ;; - esac - - -@@ -3672,10 +3814,10 @@ - - 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 -@@ -3700,6 +3842,11 @@ - if test "$am_compiler_list" = ""; then - am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` - fi -+ am__universal=false -+ case " $depcc " in #( -+ *\ -arch\ *\ -arch\ *) am__universal=true ;; -+ esac -+ - for depmode in $am_compiler_list; do - # Setup a source with many dependencies, because some compilers - # like to wrap large dependency lists on column 80 (with \), and -@@ -3717,7 +3864,17 @@ - done - echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf - -+ # We check with `-c' and `-o' for the sake of the "dashmstdout" -+ # mode. It turns out that the SunPro C++ compiler does not properly -+ # handle `-M -o', and we need to detect this. Also, some Intel -+ # versions had trouble with output in subdirs -+ am__obj=sub/conftest.${OBJEXT-o} -+ am__minus_obj="-o $am__obj" - case $depmode in -+ gcc) -+ # This depmode causes a compiler race in universal mode. -+ test "$am__universal" = false || continue -+ ;; - nosideeffect) - # after this tag, mechanisms are not by side-effect, so they'll - # only be used when explicitly requested -@@ -3727,19 +3884,23 @@ - break - fi - ;; -+ msvisualcpp | msvcmsys) -+ # This compiler won't grok `-c -o', but also, the minuso test has -+ # not run yet. These depmodes are late enough in the game, and -+ # so weak that their functioning should not be impacted. -+ am__obj=conftest.${OBJEXT-o} -+ am__minus_obj= -+ ;; - none) break ;; - esac -- # We check with `-c' and `-o' for the sake of the "dashmstdout" -- # mode. It turns out that the SunPro C++ compiler does not properly -- # handle `-M -o', and we need to detect this. - if depmode=$depmode \ -- source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \ -+ source=sub/conftest.c object=$am__obj \ - depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ -- $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \ -+ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ - >/dev/null 2>conftest.err && - grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && - grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && -- grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 && -+ grep $am__obj sub/conftest.Po > /dev/null 2>&1 && - ${MAKE-make} -s -f confmf > /dev/null 2>&1; then - # icc doesn't choke on unknown options, it will just issue warnings - # or remarks (even with -Werror). So we grep stderr for any message -@@ -3763,8 +3924,8 @@ - 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 - - if -@@ -3778,101 +3939,121 @@ - fi - - --{ 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; } --if test "${lt_cv_path_SED+set}" = set; then -- echo $ECHO_N "(cached) $ECHO_C" >&6 --else -- # Loop through the user's path and test for sed and gsed. --# Then use that list of sed's as ones to test for truncation. --as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -+{ $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 lt_ac_prog in sed gsed; do -+ for ac_prog in sed gsed; do - for ac_exec_ext in '' $ac_executable_extensions; do -- 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 -+ 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 --lt_ac_max=0 --lt_ac_count=0 --# Add /usr/xpg4/bin/sed as it is typically found on Solaris --# along with /bin/sed that truncates output. --for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do -- test ! -f $lt_ac_sed && continue -- cat /dev/null > conftest.in -- lt_ac_count=0 -- echo $ECHO_N "0123456789$ECHO_C" >conftest.in -- # Check for GNU sed and select it if it is found. -- if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then -- lt_cv_path_SED=$lt_ac_sed -- break -+ 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 -- while true; do -- cat conftest.in conftest.in >conftest.tmp -- mv conftest.tmp conftest.in -- cp conftest.in conftest.nl -- echo >>conftest.nl -- $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break -- cmp -s conftest.out conftest.nl || break -- # 10000 chars as input seems more than enough -- test $lt_ac_count -gt 10 && break -- lt_ac_count=`expr $lt_ac_count + 1` -- if test $lt_ac_count -gt $lt_ac_max; then -- lt_ac_max=$lt_ac_count -- lt_cv_path_SED=$lt_ac_sed -- fi -- done --done -+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 - --SED=$lt_cv_path_SED -+test -z "$SED" && SED=sed -+Xsed="$SED -e 1s/^X//" - --{ echo "$as_me:$LINENO: result: $SED" >&5 --echo "${ECHO_T}$SED" >&6; } - --{ echo "$as_me:$LINENO: checking for grep that handles long lines and -e" >&5 --echo $ECHO_N "checking for grep that handles long lines and -e... $ECHO_C" >&6; } --if test "${ac_cv_path_GREP+set}" = set; then -- echo $ECHO_N "(cached) $ECHO_C" >&6 --else -- # Extract the first word of "grep ggrep" to use in msg output --if test -z "$GREP"; then --set dummy grep ggrep; ac_prog_name=$2 -+ -+ -+ -+ -+ -+ -+ -+ -+ -+{ $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 -- echo $ECHO_N "(cached) $ECHO_C" >&6 -+ $as_echo_n "(cached) " >&6 - else -+ 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 -+ # 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. -+ 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 -- echo $ECHO_N "0123456789$ECHO_C" >"conftest.in" -+ $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" -- echo 'GREP' >> "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` -@@ -3887,74 +4068,60 @@ - rm -f conftest.in conftest.tmp conftest.nl conftest.out;; - esac - -- -- $ac_path_GREP_found && break 3 -+ $ac_path_GREP_found && break 3 -+ done - done - done -- --done - IFS=$as_save_IFS -- -- --fi -- --GREP="$ac_cv_path_GREP" --if test -z "$GREP"; then -- { { echo "$as_me:$LINENO: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5 --echo "$as_me: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;} -+ 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 -- -+ fi - else - ac_cv_path_GREP=$GREP - fi - -- - fi --{ echo "$as_me:$LINENO: result: $ac_cv_path_GREP" >&5 --echo "${ECHO_T}$ac_cv_path_GREP" >&6; } -+{ $as_echo "$as_me:$LINENO: result: $ac_cv_path_GREP" >&5 -+$as_echo "$ac_cv_path_GREP" >&6; } - GREP="$ac_cv_path_GREP" - - --{ echo "$as_me:$LINENO: checking for egrep" >&5 --echo $ECHO_N "checking for egrep... $ECHO_C" >&6; } -+{ $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 -- echo $ECHO_N "(cached) $ECHO_C" >&6 -+ $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 -- # Extract the first word of "egrep" to use in msg output --if test -z "$EGREP"; then --set dummy egrep; ac_prog_name=$2 --if test "${ac_cv_path_EGREP+set}" = set; then -- echo $ECHO_N "(cached) $ECHO_C" >&6 --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 -+ # 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. -+ 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 -- echo $ECHO_N "0123456789$ECHO_C" >"conftest.in" -+ $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" -- echo 'EGREP' >> "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` -@@ -3969,34 +4136,113 @@ - rm -f conftest.in conftest.tmp conftest.nl conftest.out;; - esac - -- -- $ac_path_EGREP_found && break 3 -+ $ac_path_EGREP_found && break 3 -+ done - 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 - --EGREP="$ac_cv_path_EGREP" --if test -z "$EGREP"; then -- { { echo "$as_me:$LINENO: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5 --echo "$as_me: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;} -- { (exit 1); exit 1; }; } -+ 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" - -+ -+{ $as_echo "$as_me:$LINENO: checking for fgrep" >&5 -+$as_echo_n "checking for fgrep... " >&6; } -+if test "${ac_cv_path_FGREP+set}" = set; then -+ $as_echo_n "(cached) " >&6 - else -- ac_cv_path_EGREP=$EGREP --fi -+ if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1 -+ then ac_cv_path_FGREP="$GREP -F" -+ else -+ if test -z "$FGREP"; then -+ ac_path_FGREP_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 fgrep; do -+ for ac_exec_ext in '' $ac_executable_extensions; do -+ ac_path_FGREP="$as_dir/$ac_prog$ac_exec_ext" -+ { test -f "$ac_path_FGREP" && $as_test_x "$ac_path_FGREP"; } || continue -+# Check for GNU ac_path_FGREP and select it if it is found. -+ # Check for GNU $ac_path_FGREP -+case `"$ac_path_FGREP" --version 2>&1` in -+*GNU*) -+ ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_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 'FGREP' >> "conftest.nl" -+ "$ac_path_FGREP" FGREP < "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_FGREP_max-0}; then -+ # Best one so far, save it but keep looking for a better one -+ ac_cv_path_FGREP="$ac_path_FGREP" -+ ac_path_FGREP_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_FGREP_found && break 3 -+ done -+ done -+done -+IFS=$as_save_IFS -+ if test -z "$ac_cv_path_FGREP"; then -+ { { $as_echo "$as_me:$LINENO: error: no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5 -+$as_echo "$as_me: error: no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;} -+ { (exit 1); exit 1; }; } -+ fi -+else -+ ac_cv_path_FGREP=$FGREP -+fi - - fi - fi --{ echo "$as_me:$LINENO: result: $ac_cv_path_EGREP" >&5 --echo "${ECHO_T}$ac_cv_path_EGREP" >&6; } -- EGREP="$ac_cv_path_EGREP" -+{ $as_echo "$as_me:$LINENO: result: $ac_cv_path_FGREP" >&5 -+$as_echo "$ac_cv_path_FGREP" >&6; } -+ FGREP="$ac_cv_path_FGREP" -+ -+ -+test -z "$GREP" && GREP=grep -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ - - - -@@ -4010,8 +4256,8 @@ - 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 -@@ -4024,9 +4270,9 @@ - [\\/]* | ?:[\\/]*) - re_direlt='/[^/][^/]*/\.\./' - # Canonicalize the pathname of ld -- ac_prog=`echo $ac_prog| $SED 's%\\\\%/%g'` -- while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do -- ac_prog=`echo $ac_prog| $SED "s%$re_direlt%/%"` -+ ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` -+ while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do -+ ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` - done - test -z "$LD" && LD="$ac_prog" - ;; -@@ -4040,14 +4286,14 @@ - ;; - 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 -@@ -4077,19 +4323,19 @@ - - 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 &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; } --if test "${lt_cv_ld_reload_flag+set}" = set; then -- echo $ECHO_N "(cached) $ECHO_C" >&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; } --reload_flag=$lt_cv_ld_reload_flag --case $reload_flag in --"" | " "*) ;; --*) reload_flag=" $reload_flag" ;; --esac --reload_cmds='$LD$reload_flag -o $output$reload_objs' --case $host_os in -- darwin*) -- if test "$GCC" = yes; then -- reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs' -- else -- reload_cmds='$LD$reload_flag -o $output$reload_objs' -- fi -- ;; --esac - --{ echo "$as_me:$LINENO: checking for BSD-compatible nm" >&5 --echo $ECHO_N "checking for BSD-compatible nm... $ECHO_C" >&6; } -+ -+ -+ -+ -+ -+ -+{ $as_echo "$as_me:$LINENO: checking for BSD- or MS-compatible name lister (nm)" >&5 -+$as_echo_n "checking for BSD- or MS-compatible name lister (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. -@@ -4177,1090 +4405,712 @@ - done - IFS="$lt_save_ifs" - done -- test -z "$lt_cv_path_NM" && lt_cv_path_NM=nm -+ : ${lt_cv_path_NM=no} - fi - fi --{ echo "$as_me:$LINENO: result: $lt_cv_path_NM" >&5 --echo "${ECHO_T}$lt_cv_path_NM" >&6; } --NM="$lt_cv_path_NM" -+{ $as_echo "$as_me:$LINENO: result: $lt_cv_path_NM" >&5 -+$as_echo "$lt_cv_path_NM" >&6; } -+if test "$lt_cv_path_NM" != "no"; then -+ NM="$lt_cv_path_NM" -+else -+ # Didn't find any BSD compatible name lister, look for dumpbin. -+ if test -n "$ac_tool_prefix"; then -+ for ac_prog in "dumpbin -symbols" "link -dump -symbols" -+ 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 -+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 -+$as_echo_n "checking for $ac_word... " >&6; } -+if test "${ac_cv_prog_DUMPBIN+set}" = set; then -+ $as_echo_n "(cached) " >&6 -+else -+ if test -n "$DUMPBIN"; then -+ ac_cv_prog_DUMPBIN="$DUMPBIN" # 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_DUMPBIN="$ac_tool_prefix$ac_prog" -+ $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 -+ break 2 -+ fi -+done -+done -+IFS=$as_save_IFS - --{ echo "$as_me:$LINENO: checking whether ln -s works" >&5 --echo $ECHO_N "checking whether ln -s works... $ECHO_C" >&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; } -+fi -+fi -+DUMPBIN=$ac_cv_prog_DUMPBIN -+if test -n "$DUMPBIN"; then -+ { $as_echo "$as_me:$LINENO: result: $DUMPBIN" >&5 -+$as_echo "$DUMPBIN" >&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" >&5 -+$as_echo "no" >&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; } --if test "${lt_cv_deplibs_check_method+set}" = set; then -- echo $ECHO_N "(cached) $ECHO_C" >&6 --else -- lt_cv_file_magic_cmd='$MAGIC_CMD' --lt_cv_file_magic_test_file= --lt_cv_deplibs_check_method='unknown' --# Need to set the preceding variable on all platforms that support --# interlibrary dependencies. --# 'none' -- dependencies not supported. --# `unknown' -- same as none, but documents that we really don't know. --# 'pass_all' -- all dependencies passed with no checks. --# 'test_compile' -- check by making test program. --# 'file_magic [[regex]]' -- check by looking for files in library path --# which responds to the $file_magic_cmd with a given extended regex. --# If you have `file' or equivalent on your system and you're not sure --# whether `pass_all' will *always* work, you probably want this one. - --case $host_os in --aix[4-9]*) -- lt_cv_deplibs_check_method=pass_all -- ;; -+ test -n "$DUMPBIN" && break -+ done -+fi -+if test -z "$DUMPBIN"; then -+ ac_ct_DUMPBIN=$DUMPBIN -+ for ac_prog in "dumpbin -symbols" "link -dump -symbols" -+do -+ # Extract the first word of "$ac_prog", so it can be a program name with args. -+set dummy $ac_prog; 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_ac_ct_DUMPBIN+set}" = set; then -+ $as_echo_n "(cached) " >&6 -+else -+ if test -n "$ac_ct_DUMPBIN"; then -+ ac_cv_prog_ac_ct_DUMPBIN="$ac_ct_DUMPBIN" # 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_ac_ct_DUMPBIN="$ac_prog" -+ $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 -+ break 2 -+ fi -+done -+done -+IFS=$as_save_IFS - --beos*) -- lt_cv_deplibs_check_method=pass_all -- ;; -+fi -+fi -+ac_ct_DUMPBIN=$ac_cv_prog_ac_ct_DUMPBIN -+if test -n "$ac_ct_DUMPBIN"; then -+ { $as_echo "$as_me:$LINENO: result: $ac_ct_DUMPBIN" >&5 -+$as_echo "$ac_ct_DUMPBIN" >&6; } -+else -+ { $as_echo "$as_me:$LINENO: result: no" >&5 -+$as_echo "no" >&6; } -+fi - --bsdi[45]*) -- lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)' -- lt_cv_file_magic_cmd='/usr/bin/file -L' -- lt_cv_file_magic_test_file=/shlib/libc.so -- ;; - --cygwin*) -- # func_win32_libid is a shell function defined in ltmain.sh -- lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' -- lt_cv_file_magic_cmd='func_win32_libid' -- ;; -+ test -n "$ac_ct_DUMPBIN" && break -+done - --mingw* | pw32*) -- # Base MSYS/MinGW do not provide the 'file' command needed by -- # func_win32_libid shell function, so use a weaker test based on 'objdump', -- # unless we find 'file', for example because we are cross-compiling. -- if ( file / ) >/dev/null 2>&1; then -- lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' -- lt_cv_file_magic_cmd='func_win32_libid' -+ if test "x$ac_ct_DUMPBIN" = x; then -+ DUMPBIN=":" - else -- lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' -- lt_cv_file_magic_cmd='$OBJDUMP -f' -+ case $cross_compiling:$ac_tool_warned in -+yes:) -+{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 -+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -+ac_tool_warned=yes ;; -+esac -+ DUMPBIN=$ac_ct_DUMPBIN - fi -- ;; -+fi - --darwin* | rhapsody*) -- lt_cv_deplibs_check_method=pass_all -- ;; - --freebsd* | dragonfly*) -- if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then -- case $host_cpu in -- i*86 ) -- # Not sure whether the presence of OpenBSD here was a mistake. -- # Let's accept both of them until this is cleared up. -- lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library' -- lt_cv_file_magic_cmd=/usr/bin/file -- lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` -- ;; -- esac -- else -- lt_cv_deplibs_check_method=pass_all -+ if test "$DUMPBIN" != ":"; then -+ NM="$DUMPBIN" - fi -- ;; -+fi -+test -z "$NM" && NM=nm - --gnu*) -- lt_cv_deplibs_check_method=pass_all -- ;; - --hpux10.20* | hpux11*) -- lt_cv_file_magic_cmd=/usr/bin/file -- case $host_cpu in -- ia64*) -- lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64' -- lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so -- ;; -- hppa*64*) -- lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]' -- lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl -- ;; -- *) -- lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9].[0-9]) shared library' -- lt_cv_file_magic_test_file=/usr/lib/libc.sl -- ;; -- esac -- ;; - --interix[3-9]*) -- # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here -- lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$' -- ;; - --irix5* | irix6* | nonstopux*) -- case $LD in -- *-32|*"-32 ") libmagic=32-bit;; -- *-n32|*"-n32 ") libmagic=N32;; -- *-64|*"-64 ") libmagic=64-bit;; -- *) libmagic=never-match;; -- esac -- lt_cv_deplibs_check_method=pass_all -- ;; - --# This must be Linux ELF. --linux* | k*bsd*-gnu) -- lt_cv_deplibs_check_method=pass_all -- ;; - --netbsd* | netbsdelf*-gnu) -- if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then -- lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' -- else -- lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$' -+{ $as_echo "$as_me:$LINENO: checking the name lister ($NM) interface" >&5 -+$as_echo_n "checking the name lister ($NM) interface... " >&6; } -+if test "${lt_cv_nm_interface+set}" = set; then -+ $as_echo_n "(cached) " >&6 -+else -+ lt_cv_nm_interface="BSD nm" -+ echo "int some_variable = 0;" > conftest.$ac_ext -+ (eval echo "\"\$as_me:4536: $ac_compile\"" >&5) -+ (eval "$ac_compile" 2>conftest.err) -+ cat conftest.err >&5 -+ (eval echo "\"\$as_me:4539: $NM \\\"conftest.$ac_objext\\\"\"" >&5) -+ (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) -+ cat conftest.err >&5 -+ (eval echo "\"\$as_me:4542: output\"" >&5) -+ cat conftest.out >&5 -+ if $GREP 'External.*some_variable' conftest.out > /dev/null; then -+ lt_cv_nm_interface="MS dumpbin" - fi -- ;; -+ rm -f conftest* -+fi -+{ $as_echo "$as_me:$LINENO: result: $lt_cv_nm_interface" >&5 -+$as_echo "$lt_cv_nm_interface" >&6; } - --newos6*) -- lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)' -- lt_cv_file_magic_cmd=/usr/bin/file -- lt_cv_file_magic_test_file=/usr/lib/libnls.so -- ;; -+{ $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 -+ { $as_echo "$as_me:$LINENO: result: yes" >&5 -+$as_echo "yes" >&6; } -+else -+ { $as_echo "$as_me:$LINENO: result: no, using $LN_S" >&5 -+$as_echo "no, using $LN_S" >&6; } -+fi - --nto-qnx*) -- lt_cv_deplibs_check_method=unknown -- ;; -+# find the maximum length of command line arguments -+{ $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 -+ $as_echo_n "(cached) " >&6 -+else -+ i=0 -+ teststring="ABCD" - --openbsd*) -- if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then -- lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$' -- else -- lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' -- fi -- ;; -+ case $build_os in -+ msdosdjgpp*) -+ # On DJGPP, this test can blow up pretty badly due to problems in libc -+ # (any single argument exceeding 2000 bytes causes a buffer overrun -+ # during glob expansion). Even if it were fixed, the result of this -+ # check would be larger than it should be. -+ lt_cv_sys_max_cmd_len=12288; # 12K is about right -+ ;; - --osf3* | osf4* | osf5*) -- lt_cv_deplibs_check_method=pass_all -- ;; -+ gnu*) -+ # Under GNU Hurd, this test is not required because there is -+ # no limit to the length of command line arguments. -+ # Libtool will interpret -1 as no limit whatsoever -+ lt_cv_sys_max_cmd_len=-1; -+ ;; - --rdos*) -- lt_cv_deplibs_check_method=pass_all -- ;; -+ cygwin* | mingw* | cegcc*) -+ # On Win9x/ME, this test blows up -- it succeeds, but takes -+ # about 5 minutes as the teststring grows exponentially. -+ # Worse, since 9x/ME are not pre-emptively multitasking, -+ # you end up with a "frozen" computer, even though with patience -+ # the test eventually succeeds (with a max line length of 256k). -+ # Instead, let's just punt: use the minimum linelength reported by -+ # all of the supported platforms: 8192 (on NT/2K/XP). -+ lt_cv_sys_max_cmd_len=8192; -+ ;; - --solaris*) -- lt_cv_deplibs_check_method=pass_all -- ;; -+ amigaos*) -+ # On AmigaOS with pdksh, this test takes hours, literally. -+ # So we just punt and use a minimum line length of 8192. -+ lt_cv_sys_max_cmd_len=8192; -+ ;; - --sysv4 | sysv4.3*) -- case $host_vendor in -- motorola) -- lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]' -- lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` -+ netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) -+ # This has been around since 386BSD, at least. Likely further. -+ if test -x /sbin/sysctl; then -+ lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` -+ elif test -x /usr/sbin/sysctl; then -+ lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` -+ else -+ lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs -+ fi -+ # And add a safety zone -+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` -+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` - ;; -- ncr) -- lt_cv_deplibs_check_method=pass_all -+ -+ interix*) -+ # We know the value 262144 and hardcode it with a safety zone (like BSD) -+ lt_cv_sys_max_cmd_len=196608 - ;; -- sequent) -- lt_cv_file_magic_cmd='/bin/file' -- lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' -+ -+ osf*) -+ # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure -+ # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not -+ # nice to cause kernel panics so lets avoid the loop below. -+ # First set a reasonable default. -+ lt_cv_sys_max_cmd_len=16384 -+ # -+ if test -x /sbin/sysconfig; then -+ case `/sbin/sysconfig -q proc exec_disable_arg_limit` in -+ *1*) lt_cv_sys_max_cmd_len=-1 ;; -+ esac -+ fi - ;; -- sni) -- lt_cv_file_magic_cmd='/bin/file' -- lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib" -- lt_cv_file_magic_test_file=/lib/libc.so -+ sco3.2v5*) -+ lt_cv_sys_max_cmd_len=102400 - ;; -- siemens) -- lt_cv_deplibs_check_method=pass_all -+ sysv5* | sco5v6* | sysv4.2uw2*) -+ kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` -+ if test -n "$kargmax"; then -+ lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[ ]//'` -+ else -+ lt_cv_sys_max_cmd_len=32768 -+ fi - ;; -- pc) -- lt_cv_deplibs_check_method=pass_all -+ *) -+ lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` -+ if test -n "$lt_cv_sys_max_cmd_len"; then -+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` -+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` -+ else -+ # Make teststring a little bigger before we do anything with it. -+ # a 1K string should be a reasonable start. -+ for i in 1 2 3 4 5 6 7 8 ; do -+ teststring=$teststring$teststring -+ done -+ SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} -+ # If test is not a shell built-in, we'll probably end up computing a -+ # maximum length that is only half of the actual maximum length, but -+ # we can't tell. -+ while { test "X"`$SHELL $0 --fallback-echo "X$teststring$teststring" 2>/dev/null` \ -+ = "XX$teststring$teststring"; } >/dev/null 2>&1 && -+ test $i != 17 # 1/2 MB should be enough -+ do -+ i=`expr $i + 1` -+ teststring=$teststring$teststring -+ done -+ # Only check the string length outside the loop. -+ lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` -+ teststring= -+ # Add a significant safety factor because C++ compilers can tack on -+ # massive amounts of additional arguments before passing them to the -+ # linker. It appears as though 1/2 is a usable value. -+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` -+ fi - ;; - esac -- ;; - --sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) -- lt_cv_deplibs_check_method=pass_all -- ;; --esac -+fi - -+if test -n $lt_cv_sys_max_cmd_len ; then -+ { $as_echo "$as_me:$LINENO: result: $lt_cv_sys_max_cmd_len" >&5 -+$as_echo "$lt_cv_sys_max_cmd_len" >&6; } -+else -+ { $as_echo "$as_me:$LINENO: result: none" >&5 -+$as_echo "none" >&6; } - fi --{ echo "$as_me:$LINENO: result: $lt_cv_deplibs_check_method" >&5 --echo "${ECHO_T}$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 -+max_cmd_len=$lt_cv_sys_max_cmd_len - - - - --# If no C compiler was specified, use CC. --LTCC=${LTCC-"$CC"} - --# If no C compiler flags were specified, use CFLAGS. --LTCFLAGS=${LTCFLAGS-"$CFLAGS"} - --# Allow CC to be a program name with arguments. --compiler=$CC -+: ${CP="cp -f"} -+: ${MV="mv -f"} -+: ${RM="rm -f"} -+ -+{ $as_echo "$as_me:$LINENO: checking whether the shell understands some XSI constructs" >&5 -+$as_echo_n "checking whether the shell understands some XSI constructs... " >&6; } -+# Try some XSI features -+xsi_shell=no -+( _lt_dummy="a/b/c" -+ test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \ -+ = c,a/b,, \ -+ && eval 'test $(( 1 + 1 )) -eq 2 \ -+ && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ -+ && xsi_shell=yes -+{ $as_echo "$as_me:$LINENO: result: $xsi_shell" >&5 -+$as_echo "$xsi_shell" >&6; } -+ -+ -+{ $as_echo "$as_me:$LINENO: checking whether the shell understands \"+=\"" >&5 -+$as_echo_n "checking whether the shell understands \"+=\"... " >&6; } -+lt_shell_append=no -+( foo=bar; set foo baz; eval "$1+=\$2" && test "$foo" = barbaz ) \ -+ >/dev/null 2>&1 \ -+ && lt_shell_append=yes -+{ $as_echo "$as_me:$LINENO: result: $lt_shell_append" >&5 -+$as_echo "$lt_shell_append" >&6; } - - --# Check whether --enable-libtool-lock was given. --if test "${enable_libtool_lock+set}" = set; then -- enableval=$enable_libtool_lock; -+if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then -+ lt_unset=unset -+else -+ lt_unset=false - fi - --test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes - --# Some flags need to be propagated to the compiler or linker for good --# libtool support. --case $host in --ia64-*-hpux*) -- # Find out which ABI we are using. -- echo 'int i;' > conftest.$ac_ext -- if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 -- (eval $ac_compile) 2>&5 -- ac_status=$? -- echo "$as_me:$LINENO: \$? = $ac_status" >&5 -- (exit $ac_status); }; then -- case `/usr/bin/file conftest.$ac_objext` in -- *ELF-32*) -- HPUX_IA64_MODE="32" -- ;; -- *ELF-64*) -- HPUX_IA64_MODE="64" -- ;; -- esac -- fi -- rm -rf conftest* -+ -+ -+ -+# test EBCDIC or ASCII -+case `echo X|tr X '\101'` in -+ A) # ASCII based system -+ # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr -+ lt_SP2NL='tr \040 \012' -+ lt_NL2SP='tr \015\012 \040\040' - ;; --*-*-irix6*) -- # Find out which ABI we are using. -- echo '#line 4434 "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 -- (exit $ac_status); }; then -- if test "$lt_cv_prog_gnu_ld" = yes; then -- case `/usr/bin/file conftest.$ac_objext` in -- *32-bit*) -- LD="${LD-ld} -melf32bsmip" -- ;; -- *N32*) -- LD="${LD-ld} -melf32bmipn32" -- ;; -- *64-bit*) -- LD="${LD-ld} -melf64bmip" -- ;; -- esac -- else -- case `/usr/bin/file conftest.$ac_objext` in -- *32-bit*) -- LD="${LD-ld} -32" -- ;; -- *N32*) -- LD="${LD-ld} -n32" -- ;; -- *64-bit*) -- LD="${LD-ld} -64" -- ;; -- esac -- fi -- fi -- rm -rf conftest* -+ *) # EBCDIC based system -+ lt_SP2NL='tr \100 \n' -+ lt_NL2SP='tr \r\n \100\100' - ;; -+esac - --x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \ --s390*-*linux*|sparc*-*linux*) -- # Find out which ABI we are using. -- echo 'int i;' > conftest.$ac_ext -- if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 -- (eval $ac_compile) 2>&5 -- ac_status=$? -- echo "$as_me:$LINENO: \$? = $ac_status" >&5 -- (exit $ac_status); }; then -- case `/usr/bin/file conftest.o` in -- *32-bit*) -- case $host in -- x86_64-*kfreebsd*-gnu) -- LD="${LD-ld} -m elf_i386_fbsd" -- ;; -- x86_64-*linux*) -- LD="${LD-ld} -m elf_i386" -- ;; -- ppc64-*linux*|powerpc64-*linux*) -- LD="${LD-ld} -m elf32ppclinux" -- ;; -- s390x-*linux*) -- LD="${LD-ld} -m elf_s390" -- ;; -- sparc64-*linux*) -- LD="${LD-ld} -m elf32_sparc" -- ;; -- esac -- ;; -- *64-bit*) -- case $host in -- x86_64-*kfreebsd*-gnu) -- LD="${LD-ld} -m elf_x86_64_fbsd" -- ;; -- x86_64-*linux*) -- LD="${LD-ld} -m elf_x86_64" -- ;; -- ppc*-*linux*|powerpc*-*linux*) -- LD="${LD-ld} -m elf64ppc" -- ;; -- s390*-*linux*) -- LD="${LD-ld} -m elf64_s390" -- ;; -- sparc*-*linux*) -- LD="${LD-ld} -m elf64_sparc" -- ;; -- esac -- ;; -- esac -- fi -- rm -rf conftest* -- ;; - --*-*-sco3.2v5*) -- # On SCO OpenServer 5, we need -belf to get full-featured binaries. -- SAVE_CFLAGS="$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; } --if test "${lt_cv_cc_needs_belf+set}" = set; then -- echo $ECHO_N "(cached) $ECHO_C" >&6 --else -- 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 - -- cat >conftest.$ac_ext <<_ACEOF --/* confdefs.h. */ --_ACEOF --cat confdefs.h >>conftest.$ac_ext --cat >>conftest.$ac_ext <<_ACEOF --/* end confdefs.h. */ - --int --main () --{ - -- ; -- return 0; --} --_ACEOF --rm -f conftest.$ac_objext conftest$ac_exeext --if { (ac_try="$ac_link" --case "(($ac_try" in -- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; -- *) ac_try_echo=$ac_try;; --esac --eval "echo \"\$as_me:$LINENO: $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); } && { -- test -z "$ac_c_werror_flag" || -- test ! -s conftest.err -- } && test -s conftest$ac_exeext && -- $as_test_x conftest$ac_exeext; then -- lt_cv_cc_needs_belf=yes --else -- echo "$as_me: failed program was:" >&5 --sed 's/^/| /' conftest.$ac_ext >&5 - -- lt_cv_cc_needs_belf=no --fi - --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' --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 -- --fi --{ echo "$as_me:$LINENO: result: $lt_cv_cc_needs_belf" >&5 --echo "${ECHO_T}$lt_cv_cc_needs_belf" >&6; } -- if test x"$lt_cv_cc_needs_belf" != x"yes"; then -- # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf -- CFLAGS="$SAVE_CFLAGS" -- fi -- ;; --sparc*-*solaris*) -- # Find out which ABI we are using. -- echo 'int i;' > conftest.$ac_ext -- if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 -- (eval $ac_compile) 2>&5 -- ac_status=$? -- echo "$as_me:$LINENO: \$? = $ac_status" >&5 -- (exit $ac_status); }; then -- case `/usr/bin/file conftest.o` in -- *64-bit*) -- case $lt_cv_prog_gnu_ld in -- yes*) LD="${LD-ld} -m elf64_sparc" ;; -- *) -- if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then -- LD="${LD-ld} -64" -- fi -- ;; -- esac -- ;; -- esac -- fi -- rm -rf conftest* -- ;; - - -+{ $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 -+ $as_echo_n "(cached) " >&6 -+else -+ lt_cv_ld_reload_flag='-r' -+fi -+{ $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 -+"" | " "*) ;; -+*) reload_flag=" $reload_flag" ;; -+esac -+reload_cmds='$LD$reload_flag -o $output$reload_objs' -+case $host_os in -+ darwin*) -+ if test "$GCC" = yes; then -+ reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs' -+ else -+ reload_cmds='$LD$reload_flag -o $output$reload_objs' -+ fi -+ ;; - esac - --need_locks="$enable_libtool_lock" - - --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 --{ echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5 --echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6; } --# On Suns, sometimes $CPP names a directory. --if test -n "$CPP" && test -d "$CPP"; then -- CPP= --fi --if test -z "$CPP"; then -- if test "${ac_cv_prog_CPP+set}" = set; then -- echo $ECHO_N "(cached) $ECHO_C" >&6 --else -- # Double quotes because CPP needs to be expanded -- for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" -- do -- ac_preproc_ok=false --for ac_c_preproc_warn_flag in '' yes --do -- # Use a header file that comes with gcc, so configuring glibc -- # with a fresh cross-compiler works. -- # Prefer to if __STDC__ is defined, since -- # exists even on freestanding compilers. -- # On the NeXT, cc -E runs the code through the compiler's parser, -- # not just through cpp. "Syntax error" is here to catch this case. -- cat >conftest.$ac_ext <<_ACEOF --/* confdefs.h. */ --_ACEOF --cat confdefs.h >>conftest.$ac_ext --cat >>conftest.$ac_ext <<_ACEOF --/* end confdefs.h. */ --#ifdef __STDC__ --# include --#else --# include --#endif -- Syntax error --_ACEOF --if { (ac_try="$ac_cpp conftest.$ac_ext" --case "(($ac_try" in -- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; -- *) ac_try_echo=$ac_try;; --esac --eval "echo \"\$as_me:$LINENO: $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 && { -- test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || -- test ! -s conftest.err -- }; then -- : --else -- echo "$as_me: failed program was:" >&5 --sed 's/^/| /' conftest.$ac_ext >&5 - -- # Broken: fails on valid input. --continue --fi - --rm -f conftest.err conftest.$ac_ext - -- # OK, works on sane cases. Now check whether nonexistent headers -- # can be detected and how. -- cat >conftest.$ac_ext <<_ACEOF --/* confdefs.h. */ --_ACEOF --cat confdefs.h >>conftest.$ac_ext --cat >>conftest.$ac_ext <<_ACEOF --/* end confdefs.h. */ --#include --_ACEOF --if { (ac_try="$ac_cpp conftest.$ac_ext" --case "(($ac_try" in -- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; -- *) ac_try_echo=$ac_try;; --esac --eval "echo \"\$as_me:$LINENO: $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 && { -- 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 --sed 's/^/| /' conftest.$ac_ext >&5 - -- # Passes both tests. --ac_preproc_ok=: --break --fi - --rm -f conftest.err conftest.$ac_ext - -+if test -n "$ac_tool_prefix"; then -+ # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args. -+set dummy ${ac_tool_prefix}objdump; 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_OBJDUMP+set}" = set; then -+ $as_echo_n "(cached) " >&6 -+else -+ if test -n "$OBJDUMP"; then -+ ac_cv_prog_OBJDUMP="$OBJDUMP" # 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_OBJDUMP="${ac_tool_prefix}objdump" -+ $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 -+ break 2 -+ fi - done --# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. --rm -f conftest.err conftest.$ac_ext --if $ac_preproc_ok; then -- break -+done -+IFS=$as_save_IFS -+ -+fi -+fi -+OBJDUMP=$ac_cv_prog_OBJDUMP -+if test -n "$OBJDUMP"; then -+ { $as_echo "$as_me:$LINENO: result: $OBJDUMP" >&5 -+$as_echo "$OBJDUMP" >&6; } -+else -+ { $as_echo "$as_me:$LINENO: result: no" >&5 -+$as_echo "no" >&6; } - fi - -- done -- ac_cv_prog_CPP=$CPP - - fi -- CPP=$ac_cv_prog_CPP -+if test -z "$ac_cv_prog_OBJDUMP"; then -+ ac_ct_OBJDUMP=$OBJDUMP -+ # Extract the first word of "objdump", so it can be a program name with args. -+set dummy objdump; 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_ac_ct_OBJDUMP+set}" = set; then -+ $as_echo_n "(cached) " >&6 - else -- ac_cv_prog_CPP=$CPP --fi --{ echo "$as_me:$LINENO: result: $CPP" >&5 --echo "${ECHO_T}$CPP" >&6; } --ac_preproc_ok=false --for ac_c_preproc_warn_flag in '' yes --do -- # Use a header file that comes with gcc, so configuring glibc -- # with a fresh cross-compiler works. -- # Prefer to if __STDC__ is defined, since -- # exists even on freestanding compilers. -- # On the NeXT, cc -E runs the code through the compiler's parser, -- # not just through cpp. "Syntax error" is here to catch this case. -- cat >conftest.$ac_ext <<_ACEOF --/* confdefs.h. */ --_ACEOF --cat confdefs.h >>conftest.$ac_ext --cat >>conftest.$ac_ext <<_ACEOF --/* end confdefs.h. */ --#ifdef __STDC__ --# include --#else --# include --#endif -- Syntax error --_ACEOF --if { (ac_try="$ac_cpp conftest.$ac_ext" --case "(($ac_try" in -- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; -- *) ac_try_echo=$ac_try;; --esac --eval "echo \"\$as_me:$LINENO: $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 && { -- test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || -- test ! -s conftest.err -- }; then -- : -+ if test -n "$ac_ct_OBJDUMP"; then -+ ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test. - else -- echo "$as_me: failed program was:" >&5 --sed 's/^/| /' conftest.$ac_ext >&5 -+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_ac_ct_OBJDUMP="objdump" -+ $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 -+ break 2 -+ fi -+done -+done -+IFS=$as_save_IFS - -- # Broken: fails on valid input. --continue -+fi -+fi -+ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP -+if test -n "$ac_ct_OBJDUMP"; then -+ { $as_echo "$as_me:$LINENO: result: $ac_ct_OBJDUMP" >&5 -+$as_echo "$ac_ct_OBJDUMP" >&6; } -+else -+ { $as_echo "$as_me:$LINENO: result: no" >&5 -+$as_echo "no" >&6; } - fi - --rm -f conftest.err conftest.$ac_ext -- -- # OK, works on sane cases. Now check whether nonexistent headers -- # can be detected and how. -- cat >conftest.$ac_ext <<_ACEOF --/* confdefs.h. */ --_ACEOF --cat confdefs.h >>conftest.$ac_ext --cat >>conftest.$ac_ext <<_ACEOF --/* end confdefs.h. */ --#include --_ACEOF --if { (ac_try="$ac_cpp conftest.$ac_ext" --case "(($ac_try" in -- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; -- *) ac_try_echo=$ac_try;; -+ if test "x$ac_ct_OBJDUMP" = x; then -+ OBJDUMP="false" -+ else -+ case $cross_compiling:$ac_tool_warned in -+yes:) -+{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 -+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -+ac_tool_warned=yes ;; - esac --eval "echo \"\$as_me:$LINENO: $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 && { -- test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || -- test ! -s conftest.err -- }; then -- # Broken: success on invalid input. --continue -+ OBJDUMP=$ac_ct_OBJDUMP -+ fi - else -- echo "$as_me: failed program was:" >&5 --sed 's/^/| /' conftest.$ac_ext >&5 -- -- # Passes both tests. --ac_preproc_ok=: --break -+ OBJDUMP="$ac_cv_prog_OBJDUMP" - fi - --rm -f conftest.err conftest.$ac_ext -- --done --# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. --rm -f conftest.err conftest.$ac_ext --if $ac_preproc_ok; then -- : --else -- { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check --See \`config.log' for more details." >&5 --echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check --See \`config.log' for more details." >&2;} -- { (exit 1); exit 1; }; } --fi -+test -z "$OBJDUMP" && OBJDUMP=objdump - --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 - - --{ echo "$as_me:$LINENO: checking for ANSI C header files" >&5 --echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6; } --if test "${ac_cv_header_stdc+set}" = set; then -- echo $ECHO_N "(cached) $ECHO_C" >&6 --else -- cat >conftest.$ac_ext <<_ACEOF --/* confdefs.h. */ --_ACEOF --cat confdefs.h >>conftest.$ac_ext --cat >>conftest.$ac_ext <<_ACEOF --/* end confdefs.h. */ --#include --#include --#include --#include - --int --main () --{ - -- ; -- return 0; --} --_ACEOF --rm -f conftest.$ac_objext --if { (ac_try="$ac_compile" --case "(($ac_try" in -- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; -- *) ac_try_echo=$ac_try;; --esac --eval "echo \"\$as_me:$LINENO: $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); } && { -- 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 --sed 's/^/| /' conftest.$ac_ext >&5 - -- ac_cv_header_stdc=no --fi - --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. -- cat >conftest.$ac_ext <<_ACEOF --/* confdefs.h. */ --_ACEOF --cat confdefs.h >>conftest.$ac_ext --cat >>conftest.$ac_ext <<_ACEOF --/* end confdefs.h. */ --#include - --_ACEOF --if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | -- $EGREP "memchr" >/dev/null 2>&1; then -- : -+{ $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 -+ $as_echo_n "(cached) " >&6 - else -- ac_cv_header_stdc=no --fi --rm -f conftest* -- --fi -- --if test $ac_cv_header_stdc = yes; then -- # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. -- cat >conftest.$ac_ext <<_ACEOF --/* confdefs.h. */ --_ACEOF --cat confdefs.h >>conftest.$ac_ext --cat >>conftest.$ac_ext <<_ACEOF --/* end confdefs.h. */ --#include -+ lt_cv_file_magic_cmd='$MAGIC_CMD' -+lt_cv_file_magic_test_file= -+lt_cv_deplibs_check_method='unknown' -+# Need to set the preceding variable on all platforms that support -+# interlibrary dependencies. -+# 'none' -- dependencies not supported. -+# `unknown' -- same as none, but documents that we really don't know. -+# 'pass_all' -- all dependencies passed with no checks. -+# 'test_compile' -- check by making test program. -+# 'file_magic [[regex]]' -- check by looking for files in library path -+# which responds to the $file_magic_cmd with a given extended regex. -+# If you have `file' or equivalent on your system and you're not sure -+# whether `pass_all' will *always* work, you probably want this one. - --_ACEOF --if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | -- $EGREP "free" >/dev/null 2>&1; then -- : --else -- ac_cv_header_stdc=no --fi --rm -f conftest* -+case $host_os in -+aix[4-9]*) -+ lt_cv_deplibs_check_method=pass_all -+ ;; - --fi -+beos*) -+ lt_cv_deplibs_check_method=pass_all -+ ;; - --if test $ac_cv_header_stdc = yes; then -- # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. -- if test "$cross_compiling" = yes; then -- : --else -- cat >conftest.$ac_ext <<_ACEOF --/* confdefs.h. */ --_ACEOF --cat confdefs.h >>conftest.$ac_ext --cat >>conftest.$ac_ext <<_ACEOF --/* end confdefs.h. */ --#include --#include --#if ((' ' & 0x0FF) == 0x020) --# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') --# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) --#else --# define ISLOWER(c) \ -- (('a' <= (c) && (c) <= 'i') \ -- || ('j' <= (c) && (c) <= 'r') \ -- || ('s' <= (c) && (c) <= 'z')) --# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) --#endif -+bsdi[45]*) -+ lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)' -+ lt_cv_file_magic_cmd='/usr/bin/file -L' -+ lt_cv_file_magic_test_file=/shlib/libc.so -+ ;; - --#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) --int --main () --{ -- int i; -- for (i = 0; i < 256; i++) -- if (XOR (islower (i), ISLOWER (i)) -- || toupper (i) != TOUPPER (i)) -- return 2; -- return 0; --} --_ACEOF --rm -f conftest$ac_exeext --if { (ac_try="$ac_link" --case "(($ac_try" in -- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; -- *) ac_try_echo=$ac_try;; --esac --eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 -- (eval "$ac_link") 2>&5 -- ac_status=$? -- echo "$as_me:$LINENO: \$? = $ac_status" >&5 -- (exit $ac_status); } && { ac_try='./conftest$ac_exeext' -- { (case "(($ac_try" in -- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; -- *) ac_try_echo=$ac_try;; --esac --eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 -- (eval "$ac_try") 2>&5 -- ac_status=$? -- 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 --sed 's/^/| /' conftest.$ac_ext >&5 -+cygwin*) -+ # func_win32_libid is a shell function defined in ltmain.sh -+ lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' -+ lt_cv_file_magic_cmd='func_win32_libid' -+ ;; - --( exit $ac_status ) --ac_cv_header_stdc=no --fi --rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext --fi -+mingw* | pw32*) -+ # Base MSYS/MinGW do not provide the 'file' command needed by -+ # func_win32_libid shell function, so use a weaker test based on 'objdump', -+ # unless we find 'file', for example because we are cross-compiling. -+ if ( file / ) >/dev/null 2>&1; then -+ lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' -+ lt_cv_file_magic_cmd='func_win32_libid' -+ else -+ lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' -+ lt_cv_file_magic_cmd='$OBJDUMP -f' -+ fi -+ ;; - -+cegcc) -+ # use the weaker test based on 'objdump'. See mingw*. -+ lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' -+ lt_cv_file_magic_cmd='$OBJDUMP -f' -+ ;; - --fi --fi --{ echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 --echo "${ECHO_T}$ac_cv_header_stdc" >&6; } --if test $ac_cv_header_stdc = yes; then -+darwin* | rhapsody*) -+ lt_cv_deplibs_check_method=pass_all -+ ;; - --cat >>confdefs.h <<\_ACEOF --#define STDC_HEADERS 1 --_ACEOF -+freebsd* | dragonfly*) -+ if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then -+ case $host_cpu in -+ i*86 ) -+ # Not sure whether the presence of OpenBSD here was a mistake. -+ # Let's accept both of them until this is cleared up. -+ lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library' -+ lt_cv_file_magic_cmd=/usr/bin/file -+ lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` -+ ;; -+ esac -+ else -+ lt_cv_deplibs_check_method=pass_all -+ fi -+ ;; - --fi -- --# On IRIX 5.3, sys/types and inttypes.h are conflicting. -+gnu*) -+ lt_cv_deplibs_check_method=pass_all -+ ;; - -+hpux10.20* | hpux11*) -+ lt_cv_file_magic_cmd=/usr/bin/file -+ case $host_cpu in -+ ia64*) -+ lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64' -+ lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so -+ ;; -+ hppa*64*) -+ lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]' -+ lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl -+ ;; -+ *) -+ lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9].[0-9]) shared library' -+ lt_cv_file_magic_test_file=/usr/lib/libc.sl -+ ;; -+ esac -+ ;; - -+interix[3-9]*) -+ # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here -+ lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$' -+ ;; - -+irix5* | irix6* | nonstopux*) -+ case $LD in -+ *-32|*"-32 ") libmagic=32-bit;; -+ *-n32|*"-n32 ") libmagic=N32;; -+ *-64|*"-64 ") libmagic=64-bit;; -+ *) libmagic=never-match;; -+ esac -+ lt_cv_deplibs_check_method=pass_all -+ ;; - -+# This must be Linux ELF. -+linux* | k*bsd*-gnu) -+ lt_cv_deplibs_check_method=pass_all -+ ;; - -+netbsd*) -+ if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then -+ lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' -+ else -+ lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$' -+ fi -+ ;; - -+newos6*) -+ lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)' -+ lt_cv_file_magic_cmd=/usr/bin/file -+ lt_cv_file_magic_test_file=/usr/lib/libnls.so -+ ;; - -+*nto* | *qnx*) -+ lt_cv_deplibs_check_method=pass_all -+ ;; - -+openbsd*) -+ if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then -+ lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$' -+ else -+ lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' -+ 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 { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then -- echo $ECHO_N "(cached) $ECHO_C" >&6 --else -- cat >conftest.$ac_ext <<_ACEOF --/* confdefs.h. */ --_ACEOF --cat confdefs.h >>conftest.$ac_ext --cat >>conftest.$ac_ext <<_ACEOF --/* end confdefs.h. */ --$ac_includes_default -+osf3* | osf4* | osf5*) -+ lt_cv_deplibs_check_method=pass_all -+ ;; - --#include <$ac_header> --_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 "echo \"\$as_me:$LINENO: $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); } && { -- 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 --sed 's/^/| /' conftest.$ac_ext >&5 -+rdos*) -+ lt_cv_deplibs_check_method=pass_all -+ ;; - -- eval "$as_ac_Header=no" --fi -+solaris*) -+ lt_cv_deplibs_check_method=pass_all -+ ;; - --rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext --fi --ac_res=`eval echo '${'$as_ac_Header'}'` -- { echo "$as_me:$LINENO: result: $ac_res" >&5 --echo "${ECHO_T}$ac_res" >&6; } --if test `eval echo '${'$as_ac_Header'}'` = yes; then -- cat >>confdefs.h <<_ACEOF --#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 --_ACEOF -+sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) -+ lt_cv_deplibs_check_method=pass_all -+ ;; - --fi -+sysv4 | sysv4.3*) -+ case $host_vendor in -+ motorola) -+ lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]' -+ lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` -+ ;; -+ ncr) -+ lt_cv_deplibs_check_method=pass_all -+ ;; -+ sequent) -+ lt_cv_file_magic_cmd='/bin/file' -+ lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' -+ ;; -+ sni) -+ lt_cv_file_magic_cmd='/bin/file' -+ lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib" -+ lt_cv_file_magic_test_file=/lib/libc.so -+ ;; -+ siemens) -+ lt_cv_deplibs_check_method=pass_all -+ ;; -+ pc) -+ lt_cv_deplibs_check_method=pass_all -+ ;; -+ esac -+ ;; - --done -+tpf*) -+ lt_cv_deplibs_check_method=pass_all -+ ;; -+esac - -+fi -+{ $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 - - --for ac_header in dlfcn.h --do --as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` --if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then -- { echo "$as_me:$LINENO: checking for $ac_header" >&5 --echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } --if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then -- echo $ECHO_N "(cached) $ECHO_C" >&6 --fi --ac_res=`eval echo '${'$as_ac_Header'}'` -- { echo "$as_me:$LINENO: result: $ac_res" >&5 --echo "${ECHO_T}$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; } --cat >conftest.$ac_ext <<_ACEOF --/* confdefs.h. */ --_ACEOF --cat confdefs.h >>conftest.$ac_ext --cat >>conftest.$ac_ext <<_ACEOF --/* end confdefs.h. */ --$ac_includes_default --#include <$ac_header> --_ACEOF --rm -f conftest.$ac_objext --if { (ac_try="$ac_compile" --case "(($ac_try" in -- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; -- *) ac_try_echo=$ac_try;; --esac --eval "echo \"\$as_me:$LINENO: $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); } && { -- 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 --sed 's/^/| /' conftest.$ac_ext >&5 - -- ac_header_compiler=no --fi - --rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext --{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 --echo "${ECHO_T}$ac_header_compiler" >&6; } - --# Is the header present? --{ echo "$as_me:$LINENO: checking $ac_header presence" >&5 --echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; } --cat >conftest.$ac_ext <<_ACEOF --/* confdefs.h. */ --_ACEOF --cat confdefs.h >>conftest.$ac_ext --cat >>conftest.$ac_ext <<_ACEOF --/* end confdefs.h. */ --#include <$ac_header> --_ACEOF --if { (ac_try="$ac_cpp conftest.$ac_ext" --case "(($ac_try" in -- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; -- *) ac_try_echo=$ac_try;; --esac --eval "echo \"\$as_me:$LINENO: $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 && { -- 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 --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; } - --# 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;} -- 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 --## -------------------------------------- ## --## Report this to waldo.bastian@intel.com ## --## -------------------------------------- ## --_ASBOX -- ) | sed "s/^/$as_me: WARNING: /" >&2 -- ;; --esac --{ echo "$as_me:$LINENO: checking for $ac_header" >&5 --echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } --if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then -- echo $ECHO_N "(cached) $ECHO_C" >&6 --else -- eval "$as_ac_Header=\$ac_header_preproc" --fi --ac_res=`eval echo '${'$as_ac_Header'}'` -- { echo "$as_me:$LINENO: result: $ac_res" >&5 --echo "${ECHO_T}$ac_res" >&6; } - --fi --if test `eval echo '${'$as_ac_Header'}'` = yes; then -- cat >>confdefs.h <<_ACEOF --#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 --_ACEOF - --fi - --done - --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 -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; } --if test "${ac_cv_prog_CXX+set}" = set; then -- echo $ECHO_N "(cached) $ECHO_C" >&6 -+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 -+{ $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 -+ $as_echo_n "(cached) " >&6 - else -- if test -n "$CXX"; then -- ac_cv_prog_CXX="$CXX" # Let the user override the test. -+ if test -n "$AR"; then -+ ac_cv_prog_AR="$AR" # Let the user override the test. - else - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR - for as_dir in $PATH -@@ -5269,8 +5119,8 @@ - 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_CXX="$ac_tool_prefix$ac_prog" -- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 -+ ac_cv_prog_AR="${ac_tool_prefix}ar" -+ $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi - done -@@ -5279,32 +5129,28 @@ - - fi - fi --CXX=$ac_cv_prog_CXX --if test -n "$CXX"; then -- { echo "$as_me:$LINENO: result: $CXX" >&5 --echo "${ECHO_T}$CXX" >&6; } -+AR=$ac_cv_prog_AR -+if test -n "$AR"; then -+ { $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 - - -- test -n "$CXX" && break -- done - fi --if test -z "$CXX"; then -- ac_ct_CXX=$CXX -- 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; } --if test "${ac_cv_prog_ac_ct_CXX+set}" = set; then -- echo $ECHO_N "(cached) $ECHO_C" >&6 -+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 -+{ $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 -+ $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. -+ if test -n "$ac_ct_AR"; then -+ ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. - else - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR - for as_dir in $PATH -@@ -5313,8 +5159,8 @@ - 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_ac_ct_CXX="$ac_prog" -- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 -+ ac_cv_prog_ac_ct_AR="ar" -+ $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi - done -@@ -5323,645 +5169,152 @@ - - 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; } -+ac_ct_AR=$ac_cv_prog_ac_ct_AR -+if test -n "$ac_ct_AR"; then -+ { $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 - -- -- test -n "$ac_ct_CXX" && break --done -- -- if test "x$ac_ct_CXX" = x; then -- CXX="g++" -+ if test "x$ac_ct_AR" = x; then -+ AR="false" - else - case $cross_compiling:$ac_tool_warned in - yes:) --{ 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 --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;} -+{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 -+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} - ac_tool_warned=yes ;; - esac -- CXX=$ac_ct_CXX -+ AR=$ac_ct_AR - fi -+else -+ AR="$ac_cv_prog_AR" - 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` --{ (ac_try="$ac_compiler --version >&5" --case "(($ac_try" in -- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; -- *) ac_try_echo=$ac_try;; --esac --eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 -- (eval "$ac_compiler --version >&5") 2>&5 -- ac_status=$? -- echo "$as_me:$LINENO: \$? = $ac_status" >&5 -- (exit $ac_status); } --{ (ac_try="$ac_compiler -v >&5" --case "(($ac_try" in -- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; -- *) ac_try_echo=$ac_try;; --esac --eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 -- (eval "$ac_compiler -v >&5") 2>&5 -- ac_status=$? -- echo "$as_me:$LINENO: \$? = $ac_status" >&5 -- (exit $ac_status); } --{ (ac_try="$ac_compiler -V >&5" --case "(($ac_try" in -- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; -- *) ac_try_echo=$ac_try;; --esac --eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 -- (eval "$ac_compiler -V >&5") 2>&5 -- ac_status=$? -- echo "$as_me:$LINENO: \$? = $ac_status" >&5 -- (exit $ac_status); } -+test -z "$AR" && AR=ar -+test -z "$AR_FLAGS" && AR_FLAGS=cru - --{ 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; } --if test "${ac_cv_cxx_compiler_gnu+set}" = set; then -- echo $ECHO_N "(cached) $ECHO_C" >&6 --else -- cat >conftest.$ac_ext <<_ACEOF --/* confdefs.h. */ --_ACEOF --cat confdefs.h >>conftest.$ac_ext --cat >>conftest.$ac_ext <<_ACEOF --/* end confdefs.h. */ - --int --main () --{ --#ifndef __GNUC__ -- choke me --#endif - -- ; -- return 0; --} --_ACEOF --rm -f conftest.$ac_objext --if { (ac_try="$ac_compile" --case "(($ac_try" in -- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; -- *) ac_try_echo=$ac_try;; --esac --eval "echo \"\$as_me:$LINENO: $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); } && { -- 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 --sed 's/^/| /' conftest.$ac_ext >&5 - -- ac_compiler_gnu=no --fi - --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` --ac_test_CXXFLAGS=${CXXFLAGS+set} --ac_save_CXXFLAGS=$CXXFLAGS --{ echo "$as_me:$LINENO: checking whether $CXX accepts -g" >&5 --echo $ECHO_N "checking whether $CXX accepts -g... $ECHO_C" >&6; } --if test "${ac_cv_prog_cxx_g+set}" = set; then -- echo $ECHO_N "(cached) $ECHO_C" >&6 --else -- 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 --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 "echo \"\$as_me:$LINENO: $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); } && { -- 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 --sed 's/^/| /' conftest.$ac_ext >&5 - -- CXXFLAGS="" -- 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 "echo \"\$as_me:$LINENO: $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); } && { -- test -z "$ac_cxx_werror_flag" || -- test ! -s conftest.err -- } && test -s conftest.$ac_objext; 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 -+{ $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 -+ $as_echo_n "(cached) " >&6 - else -- echo "$as_me: failed program was:" >&5 --sed 's/^/| /' conftest.$ac_ext >&5 -- -- 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. */ -- --int --main () --{ -+ if test -n "$STRIP"; then -+ ac_cv_prog_STRIP="$STRIP" # 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_STRIP="${ac_tool_prefix}strip" -+ $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 -+ break 2 -+ fi -+done -+done -+IFS=$as_save_IFS - -- ; -- 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 "echo \"\$as_me:$LINENO: $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); } && { -- test -z "$ac_cxx_werror_flag" || -- test ! -s conftest.err -- } && test -s conftest.$ac_objext; then -- ac_cv_prog_cxx_g=yes -+fi -+fi -+STRIP=$ac_cv_prog_STRIP -+if test -n "$STRIP"; then -+ { $as_echo "$as_me:$LINENO: result: $STRIP" >&5 -+$as_echo "$STRIP" >&6; } - else -- echo "$as_me: failed program was:" >&5 --sed 's/^/| /' conftest.$ac_ext >&5 -+ { $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 -+{ $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 -+ $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. -+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_ac_ct_STRIP="strip" -+ $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 -+ break 2 -+ fi -+done -+done -+IFS=$as_save_IFS - --rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi -- --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 -+ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP -+if test -n "$ac_ct_STRIP"; then -+ { $as_echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5 -+$as_echo "$ac_ct_STRIP" >&6; } -+else -+ { $as_echo "$as_me:$LINENO: result: no" >&5 -+$as_echo "no" >&6; } - 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" -+ -+ if test "x$ac_ct_STRIP" = x; then -+ STRIP=":" - else -- CXXFLAGS="-g" -+ case $cross_compiling:$ac_tool_warned in -+yes:) -+{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 -+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -+ac_tool_warned=yes ;; -+esac -+ STRIP=$ac_ct_STRIP - fi - else -- if test "$GXX" = yes; then -- CXXFLAGS="-O2" -- else -- CXXFLAGS= -- fi -+ STRIP="$ac_cv_prog_STRIP" - 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' --ac_compiler_gnu=$ac_cv_cxx_compiler_gnu - --depcc="$CXX" am_compiler_list= -+test -z "$STRIP" && STRIP=: - --{ echo "$as_me:$LINENO: checking dependency style of $depcc" >&5 --echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6; } --if test "${am_cv_CXX_dependencies_compiler_type+set}" = set; then -- echo $ECHO_N "(cached) $ECHO_C" >&6 --else -- if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then -- # We make a subdir and do the tests there. Otherwise we can end up -- # making bogus files that we don't know about and never remove. For -- # instance it was reported that on HP-UX the gcc test will end up -- # making a dummy file named `D' -- because `-MD' means `put the output -- # in D'. -- mkdir conftest.dir -- # Copy depcomp to subdir because otherwise we won't find it if we're -- # using a relative directory. -- cp "$am_depcomp" conftest.dir -- cd conftest.dir -- # We will build objects and dependencies in a subdirectory because -- # it helps to detect inapplicable dependency modes. For instance -- # both Tru64's cc and ICC support -MD to output dependencies as a -- # side effect of compilation, but ICC will put the dependencies in -- # the current directory while Tru64 will put them in the object -- # directory. -- mkdir sub - -- am_cv_CXX_dependencies_compiler_type=none -- if test "$am_compiler_list" = ""; then -- am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` -- fi -- for depmode in $am_compiler_list; do -- # Setup a source with many dependencies, because some compilers -- # like to wrap large dependency lists on column 80 (with \), and -- # we should not choose a depcomp mode which is confused by this. -- # -- # We need to recreate these files for each test, as the compiler may -- # overwrite some of them when testing with obscure command lines. -- # This happens at least with the AIX C compiler. -- : > sub/conftest.c -- for i in 1 2 3 4 5 6; do -- echo '#include "conftst'$i'.h"' >> sub/conftest.c -- # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with -- # Solaris 8's {/usr,}/bin/sh. -- touch sub/conftst$i.h -- done -- echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf - -- case $depmode in -- nosideeffect) -- # after this tag, mechanisms are not by side-effect, so they'll -- # only be used when explicitly requested -- if test "x$enable_dependency_tracking" = xyes; then -- continue -- else -- break -- fi -- ;; -- none) break ;; -- esac -- # We check with `-c' and `-o' for the sake of the "dashmstdout" -- # mode. It turns out that the SunPro C++ compiler does not properly -- # handle `-M -o', and we need to detect this. -- if depmode=$depmode \ -- source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \ -- depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ -- $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \ -- >/dev/null 2>conftest.err && -- grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && -- grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && -- grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 && -- ${MAKE-make} -s -f confmf > /dev/null 2>&1; then -- # icc doesn't choke on unknown options, it will just issue warnings -- # or remarks (even with -Werror). So we grep stderr for any message -- # that says an option was ignored or not supported. -- # When given -MP, icc 7.0 and 7.1 complain thusly: -- # icc: Command line warning: ignoring option '-M'; no argument required -- # The diagnosis changed in icc 8.0: -- # icc: Command line remark: option '-MP' not supported -- if (grep 'ignoring option' conftest.err || -- grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else -- am_cv_CXX_dependencies_compiler_type=$depmode -- break -- fi -- fi -- done -- -- cd .. -- rm -rf conftest.dir --else -- am_cv_CXX_dependencies_compiler_type=none --fi -- --fi --{ echo "$as_me:$LINENO: result: $am_cv_CXX_dependencies_compiler_type" >&5 --echo "${ECHO_T}$am_cv_CXX_dependencies_compiler_type" >&6; } --CXXDEPMODE=depmode=$am_cv_CXX_dependencies_compiler_type -- -- if -- test "x$enable_dependency_tracking" != xno \ -- && test "$am_cv_CXX_dependencies_compiler_type" = gcc3; then -- am__fastdepCXX_TRUE= -- am__fastdepCXX_FALSE='#' --else -- am__fastdepCXX_TRUE='#' -- am__fastdepCXX_FALSE= --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=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; } --if test -z "$CXXCPP"; then -- if test "${ac_cv_prog_CXXCPP+set}" = set; then -- echo $ECHO_N "(cached) $ECHO_C" >&6 --else -- # Double quotes because CXXCPP needs to be expanded -- for CXXCPP in "$CXX -E" "/lib/cpp" -- do -- ac_preproc_ok=false --for ac_cxx_preproc_warn_flag in '' yes --do -- # Use a header file that comes with gcc, so configuring glibc -- # with a fresh cross-compiler works. -- # Prefer to if __STDC__ is defined, since -- # exists even on freestanding compilers. -- # On the NeXT, cc -E runs the code through the compiler's parser, -- # not just through cpp. "Syntax error" is here to catch this case. -- cat >conftest.$ac_ext <<_ACEOF --/* confdefs.h. */ --_ACEOF --cat confdefs.h >>conftest.$ac_ext --cat >>conftest.$ac_ext <<_ACEOF --/* end confdefs.h. */ --#ifdef __STDC__ --# include --#else --# include --#endif -- Syntax error --_ACEOF --if { (ac_try="$ac_cpp conftest.$ac_ext" --case "(($ac_try" in -- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; -- *) ac_try_echo=$ac_try;; --esac --eval "echo \"\$as_me:$LINENO: $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 && { -- test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" || -- test ! -s conftest.err -- }; then -- : --else -- echo "$as_me: failed program was:" >&5 --sed 's/^/| /' conftest.$ac_ext >&5 -- -- # Broken: fails on valid input. --continue --fi -- --rm -f conftest.err conftest.$ac_ext -- -- # OK, works on sane cases. Now check whether nonexistent headers -- # can be detected and how. -- cat >conftest.$ac_ext <<_ACEOF --/* confdefs.h. */ --_ACEOF --cat confdefs.h >>conftest.$ac_ext --cat >>conftest.$ac_ext <<_ACEOF --/* end confdefs.h. */ --#include --_ACEOF --if { (ac_try="$ac_cpp conftest.$ac_ext" --case "(($ac_try" in -- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; -- *) ac_try_echo=$ac_try;; --esac --eval "echo \"\$as_me:$LINENO: $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 && { -- 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 --sed 's/^/| /' conftest.$ac_ext >&5 -- -- # Passes both tests. --ac_preproc_ok=: --break --fi -- --rm -f conftest.err conftest.$ac_ext -- --done --# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. --rm -f conftest.err conftest.$ac_ext --if $ac_preproc_ok; then -- break --fi -- -- done -- ac_cv_prog_CXXCPP=$CXXCPP -- --fi -- CXXCPP=$ac_cv_prog_CXXCPP --else -- ac_cv_prog_CXXCPP=$CXXCPP --fi --{ echo "$as_me:$LINENO: result: $CXXCPP" >&5 --echo "${ECHO_T}$CXXCPP" >&6; } --ac_preproc_ok=false --for ac_cxx_preproc_warn_flag in '' yes --do -- # Use a header file that comes with gcc, so configuring glibc -- # with a fresh cross-compiler works. -- # Prefer to if __STDC__ is defined, since -- # exists even on freestanding compilers. -- # On the NeXT, cc -E runs the code through the compiler's parser, -- # not just through cpp. "Syntax error" is here to catch this case. -- cat >conftest.$ac_ext <<_ACEOF --/* confdefs.h. */ --_ACEOF --cat confdefs.h >>conftest.$ac_ext --cat >>conftest.$ac_ext <<_ACEOF --/* end confdefs.h. */ --#ifdef __STDC__ --# include --#else --# include --#endif -- Syntax error --_ACEOF --if { (ac_try="$ac_cpp conftest.$ac_ext" --case "(($ac_try" in -- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; -- *) ac_try_echo=$ac_try;; --esac --eval "echo \"\$as_me:$LINENO: $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 && { -- test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" || -- test ! -s conftest.err -- }; then -- : --else -- echo "$as_me: failed program was:" >&5 --sed 's/^/| /' conftest.$ac_ext >&5 -- -- # Broken: fails on valid input. --continue --fi -- --rm -f conftest.err conftest.$ac_ext -- -- # OK, works on sane cases. Now check whether nonexistent headers -- # can be detected and how. -- cat >conftest.$ac_ext <<_ACEOF --/* confdefs.h. */ --_ACEOF --cat confdefs.h >>conftest.$ac_ext --cat >>conftest.$ac_ext <<_ACEOF --/* end confdefs.h. */ --#include --_ACEOF --if { (ac_try="$ac_cpp conftest.$ac_ext" --case "(($ac_try" in -- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; -- *) ac_try_echo=$ac_try;; --esac --eval "echo \"\$as_me:$LINENO: $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 && { -- 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 --sed 's/^/| /' conftest.$ac_ext >&5 -- -- # Passes both tests. --ac_preproc_ok=: --break --fi -- --rm -f conftest.err conftest.$ac_ext -- --done --# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. --rm -f conftest.err conftest.$ac_ext --if $ac_preproc_ok; then -- : --else -- { { echo "$as_me:$LINENO: error: C++ preprocessor \"$CXXCPP\" fails sanity check --See \`config.log' for more details." >&5 --echo "$as_me: error: C++ preprocessor \"$CXXCPP\" fails sanity check --See \`config.log' for more details." >&2;} -- { (exit 1); exit 1; }; } --fi -- --ac_ext=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 - --fi - - --ac_ext=f --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 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; } --if test "${ac_cv_prog_F77+set}" = set; then -- echo $ECHO_N "(cached) $ECHO_C" >&6 -+ # 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 -+{ $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 -+ $as_echo_n "(cached) " >&6 - else -- if test -n "$F77"; then -- ac_cv_prog_F77="$F77" # Let the user override the test. -+ if test -n "$RANLIB"; then -+ ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. - else - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR - for as_dir in $PATH -@@ -5970,8 +5323,8 @@ - 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_F77="$ac_tool_prefix$ac_prog" -- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 -+ ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" -+ $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi - done -@@ -5980,32 +5333,28 @@ - - fi - fi --F77=$ac_cv_prog_F77 --if test -n "$F77"; then -- { echo "$as_me:$LINENO: result: $F77" >&5 --echo "${ECHO_T}$F77" >&6; } -+RANLIB=$ac_cv_prog_RANLIB -+if test -n "$RANLIB"; then -+ { $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 - - -- test -n "$F77" && break -- done - fi --if test -z "$F77"; then -- ac_ct_F77=$F77 -- 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; } --if test "${ac_cv_prog_ac_ct_F77+set}" = set; then -- echo $ECHO_N "(cached) $ECHO_C" >&6 -+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 -+{ $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 -+ $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. -+ if test -n "$ac_ct_RANLIB"; then -+ ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. - else - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR - for as_dir in $PATH -@@ -6014,8 +5363,8 @@ - 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_ac_ct_F77="$ac_prog" -- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 -+ ac_cv_prog_ac_ct_RANLIB="ranlib" -+ $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi - done -@@ -6024,320 +5373,102 @@ - - 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; } -+ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB -+if test -n "$ac_ct_RANLIB"; then -+ { $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 - -- -- test -n "$ac_ct_F77" && break --done -- -- if test "x$ac_ct_F77" = x; then -- F77="" -+ if test "x$ac_ct_RANLIB" = x; then -+ RANLIB=":" - else - case $cross_compiling:$ac_tool_warned in - yes:) --{ 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 --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;} -+{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 -+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} - ac_tool_warned=yes ;; - esac -- F77=$ac_ct_F77 -+ RANLIB=$ac_ct_RANLIB - fi -+else -+ RANLIB="$ac_cv_prog_RANLIB" - fi - -+test -z "$RANLIB" && RANLIB=: - --# Provide some information about the compiler. --echo "$as_me:$LINENO: checking for Fortran 77 compiler version" >&5 --ac_compiler=`set X $ac_compile; echo $2` --{ (ac_try="$ac_compiler --version >&5" --case "(($ac_try" in -- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; -- *) ac_try_echo=$ac_try;; --esac --eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 -- (eval "$ac_compiler --version >&5") 2>&5 -- ac_status=$? -- echo "$as_me:$LINENO: \$? = $ac_status" >&5 -- (exit $ac_status); } --{ (ac_try="$ac_compiler -v >&5" --case "(($ac_try" in -- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; -- *) ac_try_echo=$ac_try;; --esac --eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 -- (eval "$ac_compiler -v >&5") 2>&5 -- ac_status=$? -- echo "$as_me:$LINENO: \$? = $ac_status" >&5 -- (exit $ac_status); } --{ (ac_try="$ac_compiler -V >&5" --case "(($ac_try" in -- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; -- *) ac_try_echo=$ac_try;; --esac --eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 -- (eval "$ac_compiler -V >&5") 2>&5 -- ac_status=$? -- echo "$as_me:$LINENO: \$? = $ac_status" >&5 -- (exit $ac_status); } --rm -f a.out - --# If we don't use `.F' as extension, the preprocessor is not run on the --# 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; } --if test "${ac_cv_f77_compiler_gnu+set}" = set; then -- echo $ECHO_N "(cached) $ECHO_C" >&6 --else -- cat >conftest.$ac_ext <<_ACEOF -- program main --#ifndef __GNUC__ -- choke me --#endif - -- end --_ACEOF --rm -f conftest.$ac_objext --if { (ac_try="$ac_compile" --case "(($ac_try" in -- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; -- *) ac_try_echo=$ac_try;; --esac --eval "echo \"\$as_me:$LINENO: $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); } && { -- 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 --sed 's/^/| /' conftest.$ac_ext >&5 - -- ac_compiler_gnu=no --fi - --rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext --ac_cv_f77_compiler_gnu=$ac_compiler_gnu - -+# Determine commands to create old-style static archives. -+old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' -+old_postinstall_cmds='chmod 644 $oldlib' -+old_postuninstall_cmds= -+ -+if test -n "$RANLIB"; then -+ case $host_os in -+ openbsd*) -+ old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib" -+ ;; -+ *) -+ old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib" -+ ;; -+ esac -+ old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" - fi --{ echo "$as_me:$LINENO: result: $ac_cv_f77_compiler_gnu" >&5 --echo "${ECHO_T}$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; } --if test "${ac_cv_prog_f77_g+set}" = set; then -- echo $ECHO_N "(cached) $ECHO_C" >&6 --else -- FFLAGS=-g --cat >conftest.$ac_ext <<_ACEOF -- program main - -- end --_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 "echo \"\$as_me:$LINENO: $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); } && { -- 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 --sed 's/^/| /' conftest.$ac_ext >&5 - -- ac_cv_prog_f77_g=no --fi - --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; } --if test "$ac_test_FFLAGS" = set; then -- FFLAGS=$ac_save_FFLAGS --elif test $ac_cv_prog_f77_g = yes; then -- if test "x$ac_cv_f77_compiler_gnu" = xyes; then -- FFLAGS="-g -O2" -- else -- FFLAGS="-g" -- fi --else -- if test "x$ac_cv_f77_compiler_gnu" = xyes; then -- FFLAGS="-O2" -- else -- FFLAGS= -- fi --fi - --G77=`test $ac_compiler_gnu = yes && echo yes` --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 - - - --# 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; } --if test "${lt_cv_sys_max_cmd_len+set}" = set; then -- echo $ECHO_N "(cached) $ECHO_C" >&6 --else -- i=0 -- teststring="ABCD" - -- case $build_os in -- msdosdjgpp*) -- # On DJGPP, this test can blow up pretty badly due to problems in libc -- # (any single argument exceeding 2000 bytes causes a buffer overrun -- # during glob expansion). Even if it were fixed, the result of this -- # check would be larger than it should be. -- lt_cv_sys_max_cmd_len=12288; # 12K is about right -- ;; - -- gnu*) -- # Under GNU Hurd, this test is not required because there is -- # no limit to the length of command line arguments. -- # Libtool will interpret -1 as no limit whatsoever -- lt_cv_sys_max_cmd_len=-1; -- ;; - -- cygwin* | mingw*) -- # On Win9x/ME, this test blows up -- it succeeds, but takes -- # about 5 minutes as the teststring grows exponentially. -- # Worse, since 9x/ME are not pre-emptively multitasking, -- # you end up with a "frozen" computer, even though with patience -- # the test eventually succeeds (with a max line length of 256k). -- # Instead, let's just punt: use the minimum linelength reported by -- # all of the supported platforms: 8192 (on NT/2K/XP). -- lt_cv_sys_max_cmd_len=8192; -- ;; - -- amigaos*) -- # On AmigaOS with pdksh, this test takes hours, literally. -- # So we just punt and use a minimum line length of 8192. -- lt_cv_sys_max_cmd_len=8192; -- ;; - -- netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) -- # This has been around since 386BSD, at least. Likely further. -- if test -x /sbin/sysctl; then -- lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` -- elif test -x /usr/sbin/sysctl; then -- lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` -- else -- lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs -- fi -- # And add a safety zone -- lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` -- lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` -- ;; - -- interix*) -- # We know the value 262144 and hardcode it with a safety zone (like BSD) -- lt_cv_sys_max_cmd_len=196608 -- ;; - -- osf*) -- # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure -- # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not -- # nice to cause kernel panics so lets avoid the loop below. -- # First set a reasonable default. -- lt_cv_sys_max_cmd_len=16384 -- # -- if test -x /sbin/sysconfig; then -- case `/sbin/sysconfig -q proc exec_disable_arg_limit` in -- *1*) lt_cv_sys_max_cmd_len=-1 ;; -- esac -- fi -- ;; -- sco3.2v5*) -- lt_cv_sys_max_cmd_len=102400 -- ;; -- sysv5* | sco5v6* | sysv4.2uw2*) -- kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` -- if test -n "$kargmax"; then -- lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[ ]//'` -- else -- lt_cv_sys_max_cmd_len=32768 -- fi -- ;; -- *) -- lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` -- if test -n "$lt_cv_sys_max_cmd_len"; then -- lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` -- lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` -- else -- SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} -- while (test "X"`$SHELL $0 --fallback-echo "X$teststring" 2>/dev/null` \ -- = "XX$teststring") >/dev/null 2>&1 && -- new_result=`expr "X$teststring" : ".*" 2>&1` && -- lt_cv_sys_max_cmd_len=$new_result && -- test $i != 17 # 1/2 MB should be enough -- do -- i=`expr $i + 1` -- teststring=$teststring$teststring -- done -- teststring= -- # Add a significant safety factor because C++ compilers can tack on massive -- # amounts of additional arguments before passing them to the linker. -- # It appears as though 1/2 is a usable value. -- lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` -- fi -- ;; -- esac - --fi - --if test -n $lt_cv_sys_max_cmd_len ; then -- { echo "$as_me:$LINENO: result: $lt_cv_sys_max_cmd_len" >&5 --echo "${ECHO_T}$lt_cv_sys_max_cmd_len" >&6; } --else -- { echo "$as_me:$LINENO: result: none" >&5 --echo "${ECHO_T}none" >&6; } --fi - - - - - -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+# If no C compiler was specified, use CC. -+LTCC=${LTCC-"$CC"} -+ -+# If no C compiler flags were specified, use CFLAGS. -+LTCFLAGS=${LTCFLAGS-"$CFLAGS"} -+ -+# Allow CC to be a program name with arguments. -+compiler=$CC -+ -+ - # 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. -@@ -6349,33 +5480,18 @@ - # Regexp to match symbols that can be accessed directly from C. - sympat='\([_A-Za-z][_A-Za-z0-9]*\)' - --# Transform an extracted symbol line into a proper C declaration --lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern int \1;/p'" -- --# Transform an extracted symbol line into symbol name and symbol address --lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode \([^ ]*\) \([^ ]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" -- - # Define system-specific variables. - case $host_os in - aix*) - symcode='[BCDT]' - ;; --cygwin* | mingw* | pw32*) -+cygwin* | mingw* | pw32* | cegcc*) - symcode='[ABCDGISTW]' - ;; --hpux*) # Its linker distinguishes data from code symbols -+hpux*) - if test "$host_cpu" = ia64; then - symcode='[ABCDEGRST]' - fi -- lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" -- lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" -- ;; --linux* | k*bsd*-gnu) -- if test "$host_cpu" = ia64; then -- symcode='[ABCDGIRSTW]' -- lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" -- lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" -- fi - ;; - irix* | nonstopux*) - symcode='[BCDEGRST]' -@@ -6400,56 +5516,84 @@ - ;; - esac - -+# If we're using GNU nm, then use its standard symbol codes. -+case `$NM -V 2>&1` in -+*GNU* | *'with BFD'*) -+ symcode='[ABCDGIRSTW]' ;; -+esac -+ -+# Transform an extracted symbol line into a proper C declaration. -+# Some systems (esp. on ia64) link data and code symbols differently, -+# so use this general approach. -+lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" -+ -+# Transform an extracted symbol line into symbol name and symbol address -+lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'" -+lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'" -+ - # Handle CRLF in mingw tool chain - opt_cr= - case $build_os in - mingw*) -- opt_cr=`echo 'x\{0,1\}' | tr x '\015'` # option cr in regexp -+ opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp - ;; - esac - --# If we're using GNU nm, then use its standard symbol codes. --case `$NM -V 2>&1` in --*GNU* | *'with BFD'*) -- symcode='[ABCDGIRSTW]' ;; --esac -- --# Try without a prefix undercore, then with it. -+# Try without a prefix underscore, then with it. - for ac_symprfx in "" "_"; do - - # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. - symxfrm="\\1 $ac_symprfx\\2 \\2" - - # Write the raw and C identifiers. -- lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" -+ if test "$lt_cv_nm_interface" = "MS dumpbin"; then -+ # Fake it for dumpbin and say T for any non-static function -+ # and D for any global variable. -+ # Also find C++ and __fastcall symbols from MSVC++, -+ # which start with @ or ?. -+ lt_cv_sys_global_symbol_pipe="$AWK '"\ -+" {last_section=section; section=\$ 3};"\ -+" /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ -+" \$ 0!~/External *\|/{next};"\ -+" / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ -+" {if(hide[section]) next};"\ -+" {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\ -+" {split(\$ 0, a, /\||\r/); split(a[2], s)};"\ -+" s[1]~/^[@?]/{print s[1], s[1]; next};"\ -+" s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\ -+" ' prfx=^$ac_symprfx" -+ else -+ lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" -+ fi - - # Check to see that the pipe works correctly. - pipe_works=no - - rm -f conftest* -- cat > conftest.$ac_ext < conftest.$ac_ext <<_LT_EOF - #ifdef __cplusplus - extern "C" { - #endif - char nm_test_var; --void nm_test_func(){} -+void nm_test_func(void); -+void nm_test_func(void){} - #ifdef __cplusplus - } - #endif - int main(){nm_test_var='a';nm_test_func();return(0);} --EOF -+_LT_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 -@@ -6459,42 +5603,44 @@ - fi - - # Make sure that we snagged all the symbols we need. -- if grep ' nm_test_var$' "$nlist" >/dev/null; then -- if grep ' nm_test_func$' "$nlist" >/dev/null; then -- cat < conftest.$ac_ext -+ if $GREP ' nm_test_var$' "$nlist" >/dev/null; then -+ if $GREP ' nm_test_func$' "$nlist" >/dev/null; then -+ cat <<_LT_EOF > conftest.$ac_ext - #ifdef __cplusplus - extern "C" { - #endif - --EOF -+_LT_EOF - # Now generate the symbol file. -- eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | grep -v main >> conftest.$ac_ext' -+ eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' - -- cat <> conftest.$ac_ext --#if defined (__STDC__) && __STDC__ --# define lt_ptr_t void * --#else --# define lt_ptr_t char * --# define const --#endif -+ cat <<_LT_EOF >> conftest.$ac_ext - --/* The mapping between symbol names and symbols. */ -+/* The mapping between symbol names and symbols. */ - const struct { - const char *name; -- lt_ptr_t address; -+ void *address; - } --lt_preloaded_symbols[] = -+lt__PROGRAM__LTX_preloaded_symbols[] = - { --EOF -- $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (lt_ptr_t) \&\2},/" < "$nlist" | grep -v main >> conftest.$ac_ext -- cat <<\EOF >> conftest.$ac_ext -- {0, (lt_ptr_t) 0} -+ { "@PROGRAM@", (void *) 0 }, -+_LT_EOF -+ $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext -+ cat <<\_LT_EOF >> conftest.$ac_ext -+ {0, (void *) 0} - }; - -+/* This works around a problem in FreeBSD linker */ -+#ifdef FREEBSD_WORKAROUND -+static const void *lt_preloaded_setup() { -+ return lt__PROGRAM__LTX_preloaded_symbols; -+} -+#endif -+ - #ifdef __cplusplus - } - #endif --EOF -+_LT_EOF - # Now try linking the two files. - mv conftest.$ac_objext conftstm.$ac_objext - lt_save_LIBS="$LIBS" -@@ -6504,7 +5650,7 @@ - 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 -@@ -6539,87 +5685,270 @@ - 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; } --if test "${lt_cv_objdir+set}" = set; then -- echo $ECHO_N "(cached) $ECHO_C" >&6 --else -- rm -f .libs 2>/dev/null --mkdir .libs 2>/dev/null --if test -d .libs; then -- lt_cv_objdir=.libs --else -- # MS-DOS does not allow filenames that begin with a dot. -- lt_cv_objdir=_libs --fi --rmdir .libs 2>/dev/null --fi --{ echo "$as_me:$LINENO: result: $lt_cv_objdir" >&5 --echo "${ECHO_T}$lt_cv_objdir" >&6; } --objdir=$lt_cv_objdir - - - - - --case $host_os in --aix3*) -- # AIX sometimes has problems with the GCC collect2 program. For some -- # reason, if we set the COLLECT_NAMES environment variable, the problems -- # vanish in a puff of smoke. -- if test "X${COLLECT_NAMES+set}" != Xset; then -- COLLECT_NAMES= -- export COLLECT_NAMES -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+# Check whether --enable-libtool-lock was given. -+if test "${enable_libtool_lock+set}" = set; then -+ enableval=$enable_libtool_lock; -+fi -+ -+test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes -+ -+# Some flags need to be propagated to the compiler or linker for good -+# libtool support. -+case $host in -+ia64-*-hpux*) -+ # Find out which ABI we are using. -+ echo 'int i;' > conftest.$ac_ext -+ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 -+ (eval $ac_compile) 2>&5 -+ ac_status=$? -+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); }; then -+ case `/usr/bin/file conftest.$ac_objext` in -+ *ELF-32*) -+ HPUX_IA64_MODE="32" -+ ;; -+ *ELF-64*) -+ HPUX_IA64_MODE="64" -+ ;; -+ esac - fi -+ rm -rf conftest* -+ ;; -+*-*-irix6*) -+ # Find out which ABI we are using. -+ echo '#line 5748 "configure"' > conftest.$ac_ext -+ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 -+ (eval $ac_compile) 2>&5 -+ ac_status=$? -+ $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 -+ *32-bit*) -+ LD="${LD-ld} -melf32bsmip" -+ ;; -+ *N32*) -+ LD="${LD-ld} -melf32bmipn32" -+ ;; -+ *64-bit*) -+ LD="${LD-ld} -melf64bmip" -+ ;; -+ esac -+ else -+ case `/usr/bin/file conftest.$ac_objext` in -+ *32-bit*) -+ LD="${LD-ld} -32" -+ ;; -+ *N32*) -+ LD="${LD-ld} -n32" -+ ;; -+ *64-bit*) -+ LD="${LD-ld} -64" -+ ;; -+ esac -+ fi -+ fi -+ rm -rf conftest* - ;; --esac - --# Sed substitution that helps us do robust quoting. It backslashifies --# metacharacters that are still active within double-quoted strings. --Xsed='sed -e 1s/^X//' --sed_quote_subst='s/\([\\"\\`$\\\\]\)/\\\1/g' -+x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \ -+s390*-*linux*|s390*-*tpf*|sparc*-*linux*) -+ # Find out which ABI we are using. -+ echo 'int i;' > conftest.$ac_ext -+ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 -+ (eval $ac_compile) 2>&5 -+ ac_status=$? -+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); }; then -+ case `/usr/bin/file conftest.o` in -+ *32-bit*) -+ case $host in -+ x86_64-*kfreebsd*-gnu) -+ LD="${LD-ld} -m elf_i386_fbsd" -+ ;; -+ x86_64-*linux*) -+ LD="${LD-ld} -m elf_i386" -+ ;; -+ ppc64-*linux*|powerpc64-*linux*) -+ LD="${LD-ld} -m elf32ppclinux" -+ ;; -+ s390x-*linux*) -+ LD="${LD-ld} -m elf_s390" -+ ;; -+ sparc64-*linux*) -+ LD="${LD-ld} -m elf32_sparc" -+ ;; -+ esac -+ ;; -+ *64-bit*) -+ case $host in -+ x86_64-*kfreebsd*-gnu) -+ LD="${LD-ld} -m elf_x86_64_fbsd" -+ ;; -+ x86_64-*linux*) -+ LD="${LD-ld} -m elf_x86_64" -+ ;; -+ ppc*-*linux*|powerpc*-*linux*) -+ LD="${LD-ld} -m elf64ppc" -+ ;; -+ s390*-*linux*|s390*-*tpf*) -+ LD="${LD-ld} -m elf64_s390" -+ ;; -+ sparc*-*linux*) -+ LD="${LD-ld} -m elf64_sparc" -+ ;; -+ esac -+ ;; -+ esac -+ fi -+ rm -rf conftest* -+ ;; - --# Same as above, but do not quote variable references. --double_quote_subst='s/\([\\"\\`\\\\]\)/\\\1/g' -+*-*-sco3.2v5*) -+ # On SCO OpenServer 5, we need -belf to get full-featured binaries. -+ SAVE_CFLAGS="$CFLAGS" -+ CFLAGS="$CFLAGS -belf" -+ { $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 -+ $as_echo_n "(cached) " >&6 -+else -+ 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 - --# Sed substitution to delay expansion of an escaped shell variable in a --# double_quote_subst'ed string. --delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' -+ cat >conftest.$ac_ext <<_ACEOF -+/* confdefs.h. */ -+_ACEOF -+cat confdefs.h >>conftest.$ac_ext -+cat >>conftest.$ac_ext <<_ACEOF -+/* end confdefs.h. */ - --# Sed substitution to avoid accidental globbing in evaled expressions --no_glob_subst='s/\*/\\\*/g' -+int -+main () -+{ -+ -+ ; -+ return 0; -+} -+_ACEOF -+rm -f conftest.$ac_objext conftest$ac_exeext -+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 -+ $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 -+ $as_echo "$as_me: failed program was:" >&5 -+sed 's/^/| /' conftest.$ac_ext >&5 - --# Constants: --rm="rm -f" -+ lt_cv_cc_needs_belf=no -+fi - --# Global variables: --default_ofile=libtool --can_build_shared=yes -+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' -+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 - --# All known linkers require a `.a' archive for static linking (except MSVC, --# which needs '.lib'). --libext=a --ltmain="$ac_aux_dir/ltmain.sh" --ofile="$default_ofile" --with_gnu_ld="$lt_cv_prog_gnu_ld" -+fi -+{ $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" -+ fi -+ ;; -+sparc*-*solaris*) -+ # Find out which ABI we are using. -+ echo 'int i;' > conftest.$ac_ext -+ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 -+ (eval $ac_compile) 2>&5 -+ ac_status=$? -+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); }; then -+ case `/usr/bin/file conftest.o` in -+ *64-bit*) -+ case $lt_cv_prog_gnu_ld in -+ yes*) LD="${LD-ld} -m elf64_sparc" ;; -+ *) -+ if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then -+ LD="${LD-ld} -64" -+ fi -+ ;; -+ esac -+ ;; -+ esac -+ fi -+ rm -rf conftest* -+ ;; -+esac - --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; } --if test "${ac_cv_prog_AR+set}" = set; then -- echo $ECHO_N "(cached) $ECHO_C" >&6 -+need_locks="$enable_libtool_lock" -+ -+ -+ case $host_os in -+ rhapsody* | darwin*) -+ 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 -+{ $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 -+ $as_echo_n "(cached) " >&6 - else -- if test -n "$AR"; then -- ac_cv_prog_AR="$AR" # Let the user override the test. -+ if test -n "$DSYMUTIL"; then -+ ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test. - else - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR - for as_dir in $PATH -@@ -6628,8 +5957,8 @@ - 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_AR="${ac_tool_prefix}ar" -- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 -+ ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil" -+ $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi - done -@@ -6638,28 +5967,28 @@ - - fi - fi --AR=$ac_cv_prog_AR --if test -n "$AR"; then -- { echo "$as_me:$LINENO: result: $AR" >&5 --echo "${ECHO_T}$AR" >&6; } -+DSYMUTIL=$ac_cv_prog_DSYMUTIL -+if test -n "$DSYMUTIL"; then -+ { $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_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; } --if test "${ac_cv_prog_ac_ct_AR+set}" = set; then -- echo $ECHO_N "(cached) $ECHO_C" >&6 -+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 -+{ $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 -+ $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. -+ if test -n "$ac_ct_DSYMUTIL"; then -+ ac_cv_prog_ac_ct_DSYMUTIL="$ac_ct_DSYMUTIL" # Let the user override the test. - else - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR - for as_dir in $PATH -@@ -6668,8 +5997,8 @@ - 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_ac_ct_AR="ar" -- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 -+ ac_cv_prog_ac_ct_DSYMUTIL="dsymutil" -+ $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi - done -@@ -6678,44 +6007,40 @@ - - 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; } -+ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL -+if test -n "$ac_ct_DSYMUTIL"; then -+ { $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 - -- if test "x$ac_ct_AR" = x; then -- AR="false" -+ if test "x$ac_ct_DSYMUTIL" = x; then -+ DSYMUTIL=":" - else - case $cross_compiling:$ac_tool_warned in - yes:) --{ 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 --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;} -+{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 -+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} - ac_tool_warned=yes ;; - esac -- AR=$ac_ct_AR -+ DSYMUTIL=$ac_ct_DSYMUTIL - fi - else -- AR="$ac_cv_prog_AR" -+ DSYMUTIL="$ac_cv_prog_DSYMUTIL" - 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; } --if test "${ac_cv_prog_RANLIB+set}" = set; then -- echo $ECHO_N "(cached) $ECHO_C" >&6 -+ 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 -+{ $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 -+ $as_echo_n "(cached) " >&6 - else -- if test -n "$RANLIB"; then -- ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. -+ if test -n "$NMEDIT"; then -+ ac_cv_prog_NMEDIT="$NMEDIT" # Let the user override the test. - else - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR - for as_dir in $PATH -@@ -6724,8 +6049,8 @@ - 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_RANLIB="${ac_tool_prefix}ranlib" -- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 -+ ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit" -+ $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi - done -@@ -6734,28 +6059,28 @@ - - fi - fi --RANLIB=$ac_cv_prog_RANLIB --if test -n "$RANLIB"; then -- { echo "$as_me:$LINENO: result: $RANLIB" >&5 --echo "${ECHO_T}$RANLIB" >&6; } -+NMEDIT=$ac_cv_prog_NMEDIT -+if test -n "$NMEDIT"; then -+ { $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_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; } --if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then -- echo $ECHO_N "(cached) $ECHO_C" >&6 -+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 -+{ $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 -+ $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. -+ if test -n "$ac_ct_NMEDIT"; then -+ ac_cv_prog_ac_ct_NMEDIT="$ac_ct_NMEDIT" # Let the user override the test. - else - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR - for as_dir in $PATH -@@ -6764,8 +6089,8 @@ - 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_ac_ct_RANLIB="ranlib" -- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 -+ ac_cv_prog_ac_ct_NMEDIT="nmedit" -+ $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi - done -@@ -6774,44 +6099,40 @@ - - 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; } -+ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT -+if test -n "$ac_ct_NMEDIT"; then -+ { $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 - -- if test "x$ac_ct_RANLIB" = x; then -- RANLIB=":" -+ if test "x$ac_ct_NMEDIT" = x; then -+ NMEDIT=":" - else - case $cross_compiling:$ac_tool_warned in - yes:) --{ 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 --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;} -+{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 -+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} - ac_tool_warned=yes ;; - esac -- RANLIB=$ac_ct_RANLIB -+ NMEDIT=$ac_ct_NMEDIT - fi - else -- RANLIB="$ac_cv_prog_RANLIB" -+ NMEDIT="$ac_cv_prog_NMEDIT" - 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; } --if test "${ac_cv_prog_STRIP+set}" = set; then -- echo $ECHO_N "(cached) $ECHO_C" >&6 -+ if test -n "$ac_tool_prefix"; then -+ # Extract the first word of "${ac_tool_prefix}lipo", so it can be a program name with args. -+set dummy ${ac_tool_prefix}lipo; 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_LIPO+set}" = set; then -+ $as_echo_n "(cached) " >&6 - else -- if test -n "$STRIP"; then -- ac_cv_prog_STRIP="$STRIP" # Let the user override the test. -+ if test -n "$LIPO"; then -+ ac_cv_prog_LIPO="$LIPO" # Let the user override the test. - else - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR - for as_dir in $PATH -@@ -6820,8 +6141,8 @@ - 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_STRIP="${ac_tool_prefix}strip" -- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 -+ ac_cv_prog_LIPO="${ac_tool_prefix}lipo" -+ $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi - done -@@ -6830,28 +6151,28 @@ - - fi - fi --STRIP=$ac_cv_prog_STRIP --if test -n "$STRIP"; then -- { echo "$as_me:$LINENO: result: $STRIP" >&5 --echo "${ECHO_T}$STRIP" >&6; } -+LIPO=$ac_cv_prog_LIPO -+if test -n "$LIPO"; then -+ { $as_echo "$as_me:$LINENO: result: $LIPO" >&5 -+$as_echo "$LIPO" >&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; } --if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then -- echo $ECHO_N "(cached) $ECHO_C" >&6 -+if test -z "$ac_cv_prog_LIPO"; then -+ ac_ct_LIPO=$LIPO -+ # Extract the first word of "lipo", so it can be a program name with args. -+set dummy lipo; 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_ac_ct_LIPO+set}" = set; then -+ $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. -+ if test -n "$ac_ct_LIPO"; then -+ ac_cv_prog_ac_ct_LIPO="$ac_ct_LIPO" # Let the user override the test. - else - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR - for as_dir in $PATH -@@ -6860,8 +6181,8 @@ - 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_ac_ct_STRIP="strip" -- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 -+ ac_cv_prog_ac_ct_LIPO="lipo" -+ $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi - done -@@ -6870,232 +6191,40 @@ - - 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; } -+ac_ct_LIPO=$ac_cv_prog_ac_ct_LIPO -+if test -n "$ac_ct_LIPO"; then -+ { $as_echo "$as_me:$LINENO: result: $ac_ct_LIPO" >&5 -+$as_echo "$ac_ct_LIPO" >&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 "x$ac_ct_STRIP" = x; then -- STRIP=":" -+ if test "x$ac_ct_LIPO" = x; then -+ LIPO=":" - else - case $cross_compiling:$ac_tool_warned in - yes:) --{ 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 --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;} -+{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 -+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} - ac_tool_warned=yes ;; - esac -- STRIP=$ac_ct_STRIP -+ LIPO=$ac_ct_LIPO - fi - else -- STRIP="$ac_cv_prog_STRIP" --fi -- -- --old_CC="$CC" --old_CFLAGS="$CFLAGS" -- --# Set sane defaults for various variables --test -z "$AR" && AR=ar --test -z "$AR_FLAGS" && AR_FLAGS=cru --test -z "$AS" && AS=as --test -z "$CC" && CC=cc --test -z "$LTCC" && LTCC=$CC --test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS --test -z "$DLLTOOL" && DLLTOOL=dlltool --test -z "$LD" && LD=ld --test -z "$LN_S" && LN_S="ln -s" --test -z "$MAGIC_CMD" && MAGIC_CMD=file --test -z "$NM" && NM=nm --test -z "$SED" && SED=sed --test -z "$OBJDUMP" && OBJDUMP=objdump --test -z "$RANLIB" && RANLIB=: --test -z "$STRIP" && STRIP=: --test -z "$ac_objext" && ac_objext=o -- --# Determine commands to create old-style static archives. --old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' --old_postinstall_cmds='chmod 644 $oldlib' --old_postuninstall_cmds= -- --if test -n "$RANLIB"; then -- case $host_os in -- openbsd*) -- old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib" -- ;; -- *) -- old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib" -- ;; -- esac -- old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" --fi -- --for cc_temp in $compiler""; do -- case $cc_temp in -- compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; -- distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; -- \-*) ;; -- *) break;; -- esac --done --cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` -- -- --# Only perform the check for file, if the check method requires it --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; } --if test "${lt_cv_path_MAGIC_CMD+set}" = set; then -- echo $ECHO_N "(cached) $ECHO_C" >&6 --else -- case $MAGIC_CMD in --[\\/*] | ?:[\\/]*) -- lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. -- ;; --*) -- lt_save_MAGIC_CMD="$MAGIC_CMD" -- lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR -- ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" -- for ac_dir in $ac_dummy; do -- IFS="$lt_save_ifs" -- test -z "$ac_dir" && ac_dir=. -- if test -f $ac_dir/${ac_tool_prefix}file; then -- lt_cv_path_MAGIC_CMD="$ac_dir/${ac_tool_prefix}file" -- if test -n "$file_magic_test_file"; then -- case $deplibs_check_method in -- "file_magic "*) -- file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` -- MAGIC_CMD="$lt_cv_path_MAGIC_CMD" -- if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | -- $EGREP "$file_magic_regex" > /dev/null; then -- : -- else -- cat <&2 -- --*** Warning: the command libtool uses to detect shared libraries, --*** $file_magic_cmd, produces output that libtool cannot recognize. --*** The result is that libtool may fail to recognize shared libraries --*** as such. This will affect the creation of libtool libraries that --*** depend on shared libraries, but programs linked with such libtool --*** libraries will work regardless of this problem. Nevertheless, you --*** may want to report the problem to your system manager and/or to --*** bug-libtool@gnu.org -- --EOF -- fi ;; -- esac -- fi -- break -- fi -- done -- IFS="$lt_save_ifs" -- MAGIC_CMD="$lt_save_MAGIC_CMD" -- ;; --esac --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; } --else -- { echo "$as_me:$LINENO: result: no" >&5 --echo "${ECHO_T}no" >&6; } --fi -- --if test -z "$lt_cv_path_MAGIC_CMD"; then -- if test -n "$ac_tool_prefix"; then -- { echo "$as_me:$LINENO: checking for file" >&5 --echo $ECHO_N "checking for file... $ECHO_C" >&6; } --if test "${lt_cv_path_MAGIC_CMD+set}" = set; then -- echo $ECHO_N "(cached) $ECHO_C" >&6 --else -- case $MAGIC_CMD in --[\\/*] | ?:[\\/]*) -- lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. -- ;; --*) -- lt_save_MAGIC_CMD="$MAGIC_CMD" -- lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR -- ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" -- for ac_dir in $ac_dummy; do -- IFS="$lt_save_ifs" -- test -z "$ac_dir" && ac_dir=. -- if test -f $ac_dir/file; then -- lt_cv_path_MAGIC_CMD="$ac_dir/file" -- if test -n "$file_magic_test_file"; then -- case $deplibs_check_method in -- "file_magic "*) -- file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` -- MAGIC_CMD="$lt_cv_path_MAGIC_CMD" -- if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | -- $EGREP "$file_magic_regex" > /dev/null; then -- : -- else -- cat <&2 -- --*** Warning: the command libtool uses to detect shared libraries, --*** $file_magic_cmd, produces output that libtool cannot recognize. --*** The result is that libtool may fail to recognize shared libraries --*** as such. This will affect the creation of libtool libraries that --*** depend on shared libraries, but programs linked with such libtool --*** libraries will work regardless of this problem. Nevertheless, you --*** may want to report the problem to your system manager and/or to --*** bug-libtool@gnu.org -- --EOF -- fi ;; -- esac -- fi -- break -- fi -- done -- IFS="$lt_save_ifs" -- MAGIC_CMD="$lt_save_MAGIC_CMD" -- ;; --esac --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; } --else -- { echo "$as_me:$LINENO: result: no" >&5 --echo "${ECHO_T}no" >&6; } --fi -- -- else -- MAGIC_CMD=: -- fi -+ LIPO="$ac_cv_prog_LIPO" - fi - -- fi -- ;; --esac -- -- -- case $host_os in -- rhapsody* | darwin*) - 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; } --if test "${ac_cv_prog_DSYMUTIL+set}" = set; then -- echo $ECHO_N "(cached) $ECHO_C" >&6 -+ # Extract the first word of "${ac_tool_prefix}otool", so it can be a program name with args. -+set dummy ${ac_tool_prefix}otool; 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_OTOOL+set}" = set; then -+ $as_echo_n "(cached) " >&6 - else -- if test -n "$DSYMUTIL"; then -- ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test. -+ if test -n "$OTOOL"; then -+ ac_cv_prog_OTOOL="$OTOOL" # Let the user override the test. - else - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR - for as_dir in $PATH -@@ -7104,8 +6233,8 @@ - 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_DSYMUTIL="${ac_tool_prefix}dsymutil" -- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 -+ ac_cv_prog_OTOOL="${ac_tool_prefix}otool" -+ $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi - done -@@ -7114,28 +6243,28 @@ - - fi - fi --DSYMUTIL=$ac_cv_prog_DSYMUTIL --if test -n "$DSYMUTIL"; then -- { echo "$as_me:$LINENO: result: $DSYMUTIL" >&5 --echo "${ECHO_T}$DSYMUTIL" >&6; } -+OTOOL=$ac_cv_prog_OTOOL -+if test -n "$OTOOL"; then -+ { $as_echo "$as_me:$LINENO: result: $OTOOL" >&5 -+$as_echo "$OTOOL" >&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; } --if test "${ac_cv_prog_ac_ct_DSYMUTIL+set}" = set; then -- echo $ECHO_N "(cached) $ECHO_C" >&6 -+if test -z "$ac_cv_prog_OTOOL"; then -+ ac_ct_OTOOL=$OTOOL -+ # Extract the first word of "otool", so it can be a program name with args. -+set dummy otool; 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_ac_ct_OTOOL+set}" = set; then -+ $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. -+ if test -n "$ac_ct_OTOOL"; then -+ ac_cv_prog_ac_ct_OTOOL="$ac_ct_OTOOL" # Let the user override the test. - else - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR - for as_dir in $PATH -@@ -7144,8 +6273,8 @@ - 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_ac_ct_DSYMUTIL="dsymutil" -- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 -+ ac_cv_prog_ac_ct_OTOOL="otool" -+ $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi - done -@@ -7154,44 +6283,40 @@ - - 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; } -+ac_ct_OTOOL=$ac_cv_prog_ac_ct_OTOOL -+if test -n "$ac_ct_OTOOL"; then -+ { $as_echo "$as_me:$LINENO: result: $ac_ct_OTOOL" >&5 -+$as_echo "$ac_ct_OTOOL" >&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 "x$ac_ct_DSYMUTIL" = x; then -- DSYMUTIL=":" -+ if test "x$ac_ct_OTOOL" = x; then -+ OTOOL=":" - else - case $cross_compiling:$ac_tool_warned in - yes:) --{ 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 --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;} -+{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 -+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} - ac_tool_warned=yes ;; - esac -- DSYMUTIL=$ac_ct_DSYMUTIL -+ OTOOL=$ac_ct_OTOOL - fi - else -- DSYMUTIL="$ac_cv_prog_DSYMUTIL" -+ OTOOL="$ac_cv_prog_OTOOL" - 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; } --if test "${ac_cv_prog_NMEDIT+set}" = set; then -- echo $ECHO_N "(cached) $ECHO_C" >&6 -+ # Extract the first word of "${ac_tool_prefix}otool64", so it can be a program name with args. -+set dummy ${ac_tool_prefix}otool64; 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_OTOOL64+set}" = set; then -+ $as_echo_n "(cached) " >&6 - else -- if test -n "$NMEDIT"; then -- ac_cv_prog_NMEDIT="$NMEDIT" # Let the user override the test. -+ if test -n "$OTOOL64"; then -+ ac_cv_prog_OTOOL64="$OTOOL64" # Let the user override the test. - else - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR - for as_dir in $PATH -@@ -7200,8 +6325,8 @@ - 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_NMEDIT="${ac_tool_prefix}nmedit" -- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 -+ ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64" -+ $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi - done -@@ -7210,28 +6335,28 @@ - - fi - fi --NMEDIT=$ac_cv_prog_NMEDIT --if test -n "$NMEDIT"; then -- { echo "$as_me:$LINENO: result: $NMEDIT" >&5 --echo "${ECHO_T}$NMEDIT" >&6; } -+OTOOL64=$ac_cv_prog_OTOOL64 -+if test -n "$OTOOL64"; then -+ { $as_echo "$as_me:$LINENO: result: $OTOOL64" >&5 -+$as_echo "$OTOOL64" >&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; } --if test "${ac_cv_prog_ac_ct_NMEDIT+set}" = set; then -- echo $ECHO_N "(cached) $ECHO_C" >&6 -+if test -z "$ac_cv_prog_OTOOL64"; then -+ ac_ct_OTOOL64=$OTOOL64 -+ # Extract the first word of "otool64", so it can be a program name with args. -+set dummy otool64; 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_ac_ct_OTOOL64+set}" = set; then -+ $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. -+ if test -n "$ac_ct_OTOOL64"; then -+ ac_cv_prog_ac_ct_OTOOL64="$ac_ct_OTOOL64" # Let the user override the test. - else - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR - for as_dir in $PATH -@@ -7240,8 +6365,8 @@ - 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_ac_ct_NMEDIT="nmedit" -- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 -+ ac_cv_prog_ac_ct_OTOOL64="otool64" -+ $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi - done -@@ -7250,62 +6375,89 @@ - - 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; } -+ac_ct_OTOOL64=$ac_cv_prog_ac_ct_OTOOL64 -+if test -n "$ac_ct_OTOOL64"; then -+ { $as_echo "$as_me:$LINENO: result: $ac_ct_OTOOL64" >&5 -+$as_echo "$ac_ct_OTOOL64" >&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 "x$ac_ct_NMEDIT" = x; then -- NMEDIT=":" -+ if test "x$ac_ct_OTOOL64" = x; then -+ OTOOL64=":" - else - case $cross_compiling:$ac_tool_warned in - yes:) --{ 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 --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;} -+{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 -+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} - ac_tool_warned=yes ;; - esac -- NMEDIT=$ac_ct_NMEDIT -+ OTOOL64=$ac_ct_OTOOL64 - fi - else -- NMEDIT="$ac_cv_prog_NMEDIT" -+ OTOOL64="$ac_cv_prog_OTOOL64" - 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 -- # By default we will add the -single_module flag. You can override -- # by either setting the environment variable LT_MULTI_MODULE -- # non-empty at configure time, or by adding -multi_module to the -- # link flags. -- echo "int foo(void){return 1;}" > conftest.c -- $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -- -dynamiclib ${wl}-single_module conftest.c -- if test -f libconftest.dylib; then -- lt_cv_apple_cc_single_mod=yes -- rm -rf libconftest.dylib* -- fi -- rm conftest.c -+ # By default we will add the -single_module flag. You can override -+ # by either setting the environment variable LT_MULTI_MODULE -+ # non-empty at configure time, or by adding -multi_module to the -+ # link flags. -+ rm -rf libconftest.dylib* -+ echo "int foo(void){return 1;}" > conftest.c -+ echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -+-dynamiclib -Wl,-single_module conftest.c" >&5 -+ $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -+ -dynamiclib -Wl,-single_module conftest.c 2>conftest.err -+ _lt_result=$? -+ if test -f libconftest.dylib && test ! -s conftest.err && test $_lt_result = 0; then -+ lt_cv_apple_cc_single_mod=yes -+ else -+ cat conftest.err >&5 -+ fi -+ rm -rf libconftest.dylib* -+ rm -f conftest.* - 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 -@@ -7332,49 +6484,53 @@ - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; - esac --eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 -+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 -+ $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 && -- $as_test_x conftest$ac_exeext; then -+ } && 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 - fi - -+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" -+ 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]) -+ rhapsody* | darwin1.[012]) - _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;; - darwin1.*) -- _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; -- darwin*) -+ _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; -+ darwin*) # darwin 5.x on - # if running on 10.5 or later, the deployment target defaults - # to the OS version, if on x86, and 10.4, the deployment - # target defaults to 10.4. Don't you love it? - case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in -- 10.0,*86*-darwin8*|10.0,*-darwin[91]*) -- _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; -- 10.[012]*) -- _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; -- 10.*) -- _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; -+ 10.0,*86*-darwin8*|10.0,*-darwin[91]*) -+ _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; -+ 10.[012]*) -+ _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; -+ 10.*) -+ _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; - esac - ;; - esac -@@ -7384,9479 +6540,1136 @@ - if test "$lt_cv_ld_exported_symbols_list" = "yes"; then - _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym' - else -- _lt_dar_export_syms="~$NMEDIT -s \$output_objdir/\${libname}-symbols.expsym \${lib}" -+ _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}' - fi - if test "$DSYMUTIL" != ":"; then -- _lt_dsymutil="~$DSYMUTIL \$lib || :" -+ _lt_dsymutil='~$DSYMUTIL $lib || :' - else - _lt_dsymutil= - fi - ;; - esac - -- --enable_dlopen=no --enable_win32_dll=no -- --# Check whether --enable-libtool-lock was given. --if test "${enable_libtool_lock+set}" = set; then -- enableval=$enable_libtool_lock; --fi -- --test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes -- -- --# Check whether --with-pic was given. --if test "${with_pic+set}" = set; then -- withval=$with_pic; pic_mode="$withval" --else -- pic_mode=default --fi -- --test -z "$pic_mode" && pic_mode=default -- --# Use C for the default configuration in the libtool script --tagname= --lt_save_CC="$CC" - 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 -+{ $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 -+ $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" -+ do -+ ac_preproc_ok=false -+for ac_c_preproc_warn_flag in '' yes -+do -+ # Use a header file that comes with gcc, so configuring glibc -+ # with a fresh cross-compiler works. -+ # Prefer to if __STDC__ is defined, since -+ # exists even on freestanding compilers. -+ # On the NeXT, cc -E runs the code through the compiler's parser, -+ # not just through cpp. "Syntax error" is here to catch this case. -+ cat >conftest.$ac_ext <<_ACEOF -+/* confdefs.h. */ -+_ACEOF -+cat confdefs.h >>conftest.$ac_ext -+cat >>conftest.$ac_ext <<_ACEOF -+/* end confdefs.h. */ -+#ifdef __STDC__ -+# include -+#else -+# include -+#endif -+ Syntax error -+_ACEOF -+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 -+ $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 -+ $as_echo "$as_me: failed program was:" >&5 -+sed 's/^/| /' conftest.$ac_ext >&5 - -+ # Broken: fails on valid input. -+continue -+fi - --# Source file extension for C test sources. --ac_ext=c -+rm -f conftest.err conftest.$ac_ext - --# Object file extension for compiled C test sources. --objext=o --objext=$objext -+ # OK, works on sane cases. Now check whether nonexistent headers -+ # can be detected and how. -+ cat >conftest.$ac_ext <<_ACEOF -+/* confdefs.h. */ -+_ACEOF -+cat confdefs.h >>conftest.$ac_ext -+cat >>conftest.$ac_ext <<_ACEOF -+/* end confdefs.h. */ -+#include -+_ACEOF -+if { (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 -+ $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 -+ $as_echo "$as_me: failed program was:" >&5 -+sed 's/^/| /' conftest.$ac_ext >&5 - --# Code to be used in simple compile tests --lt_simple_compile_test_code="int some_variable = 0;" -+ # Passes both tests. -+ac_preproc_ok=: -+break -+fi - --# Code to be used in simple link tests --lt_simple_link_test_code='int main(){return(0);}' -+rm -f conftest.err conftest.$ac_ext - -+done -+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -+rm -f conftest.err conftest.$ac_ext -+if $ac_preproc_ok; then -+ break -+fi - --# If no C compiler was specified, use CC. --LTCC=${LTCC-"$CC"} -+ done -+ ac_cv_prog_CPP=$CPP - --# If no C compiler flags were specified, use CFLAGS. --LTCFLAGS=${LTCFLAGS-"$CFLAGS"} -+fi -+ CPP=$ac_cv_prog_CPP -+else -+ ac_cv_prog_CPP=$CPP -+fi -+{ $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 -+ # Use a header file that comes with gcc, so configuring glibc -+ # with a fresh cross-compiler works. -+ # Prefer to if __STDC__ is defined, since -+ # exists even on freestanding compilers. -+ # On the NeXT, cc -E runs the code through the compiler's parser, -+ # not just through cpp. "Syntax error" is here to catch this case. -+ cat >conftest.$ac_ext <<_ACEOF -+/* confdefs.h. */ -+_ACEOF -+cat confdefs.h >>conftest.$ac_ext -+cat >>conftest.$ac_ext <<_ACEOF -+/* end confdefs.h. */ -+#ifdef __STDC__ -+# include -+#else -+# include -+#endif -+ Syntax error -+_ACEOF -+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 -+ $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 -+ $as_echo "$as_me: failed program was:" >&5 -+sed 's/^/| /' conftest.$ac_ext >&5 - --# Allow CC to be a program name with arguments. --compiler=$CC -+ # Broken: fails on valid input. -+continue -+fi - -+rm -f conftest.err conftest.$ac_ext - --# save warnings/boilerplate of simple test code --ac_outfile=conftest.$ac_objext --echo "$lt_simple_compile_test_code" >conftest.$ac_ext --eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err --_lt_compiler_boilerplate=`cat conftest.err` --$rm conftest* -+ # OK, works on sane cases. Now check whether nonexistent headers -+ # can be detected and how. -+ cat >conftest.$ac_ext <<_ACEOF -+/* confdefs.h. */ -+_ACEOF -+cat confdefs.h >>conftest.$ac_ext -+cat >>conftest.$ac_ext <<_ACEOF -+/* end confdefs.h. */ -+#include -+_ACEOF -+if { (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 -+ $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 -+ $as_echo "$as_me: failed program was:" >&5 -+sed 's/^/| /' conftest.$ac_ext >&5 - --ac_outfile=conftest.$ac_objext --echo "$lt_simple_link_test_code" >conftest.$ac_ext --eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err --_lt_linker_boilerplate=`cat conftest.err` --$rm -r conftest* -+ # Passes both tests. -+ac_preproc_ok=: -+break -+fi -+ -+rm -f conftest.err conftest.$ac_ext - -+done -+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -+rm -f conftest.err conftest.$ac_ext -+if $ac_preproc_ok; then -+ : -+else -+ { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 -+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -+{ { $as_echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check -+See \`config.log' for more details." >&5 -+$as_echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check -+See \`config.log' for more details." >&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 - --lt_prog_compiler_no_builtin_flag= - --if test "$GCC" = yes; then -- lt_prog_compiler_no_builtin_flag=' -fno-builtin' -+{ $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 -+ $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 -+#include -+#include -+#include - -+int -+main () -+{ - --{ 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; } --if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then -- echo $ECHO_N "(cached) $ECHO_C" >&6 -+ ; -+ 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_header_stdc=yes - else -- lt_cv_prog_compiler_rtti_exceptions=no -- ac_outfile=conftest.$ac_objext -- echo "$lt_simple_compile_test_code" > conftest.$ac_ext -- lt_compiler_flag="-fno-rtti -fno-exceptions" -- # Insert the option either (1) after the last *FLAGS variable, or -- # (2) before a word containing "conftest.", or (3) at the end. -- # Note that $ac_compile itself does not contain backslashes and begins -- # with a dollar sign (not a hyphen), so the echo should work correctly. -- # The option is referenced via a variable to avoid confusing sed. -- lt_compile=`echo "$ac_compile" | $SED \ -- -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -- -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -- -e 's:$: $lt_compiler_flag:'` -- (eval echo "\"\$as_me:7491: $lt_compile\"" >&5) -- (eval "$lt_compile" 2>conftest.err) -- ac_status=$? -- cat conftest.err >&5 -- echo "$as_me:7495: \$? = $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. -- $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp -- $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 -- if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then -- lt_cv_prog_compiler_rtti_exceptions=yes -- fi -- fi -- $rm conftest* -+ $as_echo "$as_me: failed program was:" >&5 -+sed 's/^/| /' conftest.$ac_ext >&5 - -+ ac_cv_header_stdc=no - fi --{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 --echo "${ECHO_T}$lt_cv_prog_compiler_rtti_exceptions" >&6; } - --if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then -- lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions" -+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. -+ cat >conftest.$ac_ext <<_ACEOF -+/* confdefs.h. */ -+_ACEOF -+cat confdefs.h >>conftest.$ac_ext -+cat >>conftest.$ac_ext <<_ACEOF -+/* end confdefs.h. */ -+#include -+ -+_ACEOF -+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | -+ $EGREP "memchr" >/dev/null 2>&1; then -+ : - else -- : -+ ac_cv_header_stdc=no - fi -+rm -f conftest* - - fi - --lt_prog_compiler_wl= --lt_prog_compiler_pic= --lt_prog_compiler_static= -+if test $ac_cv_header_stdc = yes; then -+ # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. -+ cat >conftest.$ac_ext <<_ACEOF -+/* confdefs.h. */ -+_ACEOF -+cat confdefs.h >>conftest.$ac_ext -+cat >>conftest.$ac_ext <<_ACEOF -+/* end confdefs.h. */ -+#include - --{ 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; } -+_ACEOF -+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | -+ $EGREP "free" >/dev/null 2>&1; then -+ : -+else -+ ac_cv_header_stdc=no -+fi -+rm -f conftest* - -- if test "$GCC" = yes; then -- lt_prog_compiler_wl='-Wl,' -- lt_prog_compiler_static='-static' -+fi - -- case $host_os in -- aix*) -- # All AIX code is PIC. -- if test "$host_cpu" = ia64; then -- # AIX 5 now supports IA64 processor -- lt_prog_compiler_static='-Bstatic' -- fi -- ;; -+if test $ac_cv_header_stdc = yes; then -+ # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. -+ if test "$cross_compiling" = yes; then -+ : -+else -+ cat >conftest.$ac_ext <<_ACEOF -+/* confdefs.h. */ -+_ACEOF -+cat confdefs.h >>conftest.$ac_ext -+cat >>conftest.$ac_ext <<_ACEOF -+/* end confdefs.h. */ -+#include -+#include -+#if ((' ' & 0x0FF) == 0x020) -+# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') -+# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) -+#else -+# define ISLOWER(c) \ -+ (('a' <= (c) && (c) <= 'i') \ -+ || ('j' <= (c) && (c) <= 'r') \ -+ || ('s' <= (c) && (c) <= 'z')) -+# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) -+#endif - -- amigaos*) -- # FIXME: we need at least 68020 code to build shared libraries, but -- # adding the `-m68020' flag to GCC prevents building anything better, -- # like `-m68040'. -- lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4' -- ;; -+#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) -+int -+main () -+{ -+ int i; -+ for (i = 0; i < 256; i++) -+ if (XOR (islower (i), ISLOWER (i)) -+ || toupper (i) != TOUPPER (i)) -+ return 2; -+ return 0; -+} -+_ACEOF -+rm -f conftest$ac_exeext -+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=$? -+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); } && { ac_try='./conftest$ac_exeext' -+ { (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=$? -+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); }; }; then -+ : -+else -+ $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 - -- beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) -- # PIC is the default for these OSes. -- ;; -+( exit $ac_status ) -+ac_cv_header_stdc=no -+fi -+rm -rf conftest.dSYM -+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext -+fi - -- mingw* | cygwin* | pw32* | os2*) -- # This hack is so that the source file can tell whether it is being -- # built for inclusion in a dll (and should export symbols for example). -- # Although the cygwin gcc ignores -fPIC, still need this for old-style -- # (--disable-auto-import) libraries -- lt_prog_compiler_pic='-DDLL_EXPORT' -- ;; - -- darwin* | rhapsody*) -- # PIC is the default on this platform -- # Common symbols not allowed in MH_DYLIB files -- lt_prog_compiler_pic='-fno-common' -- ;; -+fi -+fi -+{ $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 - -- interix[3-9]*) -- # Interix 3.x gcc -fpic/-fPIC options generate broken code. -- # Instead, we relocate shared libraries at runtime. -- ;; -+cat >>confdefs.h <<\_ACEOF -+#define STDC_HEADERS 1 -+_ACEOF - -- msdosdjgpp*) -- # Just because we use GCC doesn't mean we suddenly get shared libraries -- # on systems that don't support them. -- lt_prog_compiler_can_build_shared=no -- enable_shared=no -- ;; -+fi - -- sysv4*MP*) -- if test -d /usr/nec; then -- lt_prog_compiler_pic=-Kconform_pic -- fi -- ;; -+# On IRIX 5.3, sys/types and inttypes.h are conflicting. - -- hpux*) -- # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but -- # not for PA HP-UX. -- case $host_cpu in -- hppa*64*|ia64*) -- # +Z the default -- ;; -- *) -- lt_prog_compiler_pic='-fPIC' -- ;; -- esac -- ;; - -- *) -- lt_prog_compiler_pic='-fPIC' -- ;; -- esac -- else -- # PORTME Check for flag to pass linker flags through the system compiler. -- case $host_os in -- aix*) -- lt_prog_compiler_wl='-Wl,' -- if test "$host_cpu" = ia64; then -- # AIX 5 now supports IA64 processor -- lt_prog_compiler_static='-Bstatic' -- else -- lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp' -- fi -- ;; -- darwin*) -- # PIC is the default on this platform -- # Common symbols not allowed in MH_DYLIB files -- case $cc_basename in -- xlc*) -- lt_prog_compiler_pic='-qnocommon' -- lt_prog_compiler_wl='-Wl,' -- ;; -- esac -- ;; -- -- mingw* | cygwin* | pw32* | os2*) -- # This hack is so that the source file can tell whether it is being -- # built for inclusion in a dll (and should export symbols for example). -- lt_prog_compiler_pic='-DDLL_EXPORT' -- ;; -- -- hpux9* | hpux10* | hpux11*) -- lt_prog_compiler_wl='-Wl,' -- # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but -- # not for PA HP-UX. -- case $host_cpu in -- hppa*64*|ia64*) -- # +Z the default -- ;; -- *) -- lt_prog_compiler_pic='+Z' -- ;; -- esac -- # Is there a better lt_prog_compiler_static that works with the bundled CC? -- lt_prog_compiler_static='${wl}-a ${wl}archive' -- ;; - -- irix5* | irix6* | nonstopux*) -- lt_prog_compiler_wl='-Wl,' -- # PIC (with -KPIC) is the default. -- lt_prog_compiler_static='-non_shared' -- ;; - -- newsos6) -- lt_prog_compiler_pic='-KPIC' -- lt_prog_compiler_static='-Bstatic' -- ;; - -- linux* | k*bsd*-gnu) -- case $cc_basename in -- icc* | ecc*) -- lt_prog_compiler_wl='-Wl,' -- lt_prog_compiler_pic='-KPIC' -- lt_prog_compiler_static='-static' -- ;; -- pgcc* | pgf77* | pgf90* | pgf95*) -- # Portland Group compilers (*not* the Pentium gcc compiler, -- # which looks to be a dead project) -- lt_prog_compiler_wl='-Wl,' -- lt_prog_compiler_pic='-fpic' -- lt_prog_compiler_static='-Bstatic' -- ;; -- ccc*) -- lt_prog_compiler_wl='-Wl,' -- # All Alpha code is PIC. -- lt_prog_compiler_static='-non_shared' -- ;; -- *) -- case `$CC -V 2>&1 | sed 5q` in -- *Sun\ C*) -- # Sun C 5.9 -- lt_prog_compiler_pic='-KPIC' -- lt_prog_compiler_static='-Bstatic' -- lt_prog_compiler_wl='-Wl,' -- ;; -- *Sun\ F*) -- # Sun Fortran 8.3 passes all unrecognized flags to the linker -- lt_prog_compiler_pic='-KPIC' -- lt_prog_compiler_static='-Bstatic' -- lt_prog_compiler_wl='' -- ;; -- esac -- ;; -- esac -- ;; - -- osf3* | osf4* | osf5*) -- lt_prog_compiler_wl='-Wl,' -- # All OSF/1 code is PIC. -- lt_prog_compiler_static='-non_shared' -- ;; - -- rdos*) -- lt_prog_compiler_static='-non_shared' -- ;; - -- solaris*) -- lt_prog_compiler_pic='-KPIC' -- lt_prog_compiler_static='-Bstatic' -- case $cc_basename in -- f77* | f90* | f95*) -- lt_prog_compiler_wl='-Qoption ld ';; -- *) -- lt_prog_compiler_wl='-Wl,';; -- esac -- ;; - -- sunos4*) -- lt_prog_compiler_wl='-Qoption ld ' -- lt_prog_compiler_pic='-PIC' -- lt_prog_compiler_static='-Bstatic' -- ;; -+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=`$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. */ -+_ACEOF -+cat confdefs.h >>conftest.$ac_ext -+cat >>conftest.$ac_ext <<_ACEOF -+/* end confdefs.h. */ -+$ac_includes_default - -- sysv4 | sysv4.2uw2* | sysv4.3*) -- lt_prog_compiler_wl='-Wl,' -- lt_prog_compiler_pic='-KPIC' -- lt_prog_compiler_static='-Bstatic' -- ;; -+#include <$ac_header> -+_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 -+ eval "$as_ac_Header=yes" -+else -+ $as_echo "$as_me: failed program was:" >&5 -+sed 's/^/| /' conftest.$ac_ext >&5 - -- sysv4*MP*) -- if test -d /usr/nec ;then -- lt_prog_compiler_pic='-Kconform_pic' -- lt_prog_compiler_static='-Bstatic' -- fi -- ;; -+ eval "$as_ac_Header=no" -+fi - -- sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) -- lt_prog_compiler_wl='-Wl,' -- lt_prog_compiler_pic='-KPIC' -- lt_prog_compiler_static='-Bstatic' -- ;; -+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -+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; } -+as_val=`eval 'as_val=${'$as_ac_Header'} -+ $as_echo "$as_val"'` -+ if test "x$as_val" = x""yes; then -+ cat >>confdefs.h <<_ACEOF -+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -+_ACEOF - -- unicos*) -- lt_prog_compiler_wl='-Wl,' -- lt_prog_compiler_can_build_shared=no -- ;; -+fi - -- uts4*) -- lt_prog_compiler_pic='-pic' -- lt_prog_compiler_static='-Bstatic' -- ;; -+done - -- *) -- lt_prog_compiler_can_build_shared=no -- ;; -- esac -- fi - --{ echo "$as_me:$LINENO: result: $lt_prog_compiler_pic" >&5 --echo "${ECHO_T}$lt_prog_compiler_pic" >&6; } - --# --# Check to make sure the PIC flag actually works. --# --if test -n "$lt_prog_compiler_pic"; then -+for ac_header in dlfcn.h -+do -+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. */ -+_ACEOF -+cat confdefs.h >>conftest.$ac_ext -+cat >>conftest.$ac_ext <<_ACEOF -+/* end confdefs.h. */ -+$ac_includes_default - --{ 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; } --if test "${lt_cv_prog_compiler_pic_works+set}" = set; then -- echo $ECHO_N "(cached) $ECHO_C" >&6 -+#include <$ac_header> -+_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 -+ eval "$as_ac_Header=yes" - else -- lt_cv_prog_compiler_pic_works=no -- ac_outfile=conftest.$ac_objext -- echo "$lt_simple_compile_test_code" > conftest.$ac_ext -- lt_compiler_flag="$lt_prog_compiler_pic -DPIC" -- # Insert the option either (1) after the last *FLAGS variable, or -- # (2) before a word containing "conftest.", or (3) at the end. -- # Note that $ac_compile itself does not contain backslashes and begins -- # with a dollar sign (not a hyphen), so the echo should work correctly. -- # The option is referenced via a variable to avoid confusing sed. -- lt_compile=`echo "$ac_compile" | $SED \ -- -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -- -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -- -e 's:$: $lt_compiler_flag:'` -- (eval echo "\"\$as_me:7781: $lt_compile\"" >&5) -- (eval "$lt_compile" 2>conftest.err) -- ac_status=$? -- cat conftest.err >&5 -- echo "$as_me:7785: \$? = $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. -- $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp -- $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 -- if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then -- lt_cv_prog_compiler_pic_works=yes -- fi -- fi -- $rm conftest* -+ $as_echo "$as_me: failed program was:" >&5 -+sed 's/^/| /' conftest.$ac_ext >&5 - -+ eval "$as_ac_Header=no" - fi --{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_pic_works" >&5 --echo "${ECHO_T}$lt_cv_prog_compiler_pic_works" >&6; } - --if test x"$lt_cv_prog_compiler_pic_works" = xyes; then -- case $lt_prog_compiler_pic in -- "" | " "*) ;; -- *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;; -- esac --else -- lt_prog_compiler_pic= -- lt_prog_compiler_can_build_shared=no -+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - 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; } -+as_val=`eval 'as_val=${'$as_ac_Header'} -+ $as_echo "$as_val"'` -+ if test "x$as_val" = x""yes; then -+ cat >>confdefs.h <<_ACEOF -+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -+_ACEOF - - fi --case $host_os in -- # For platforms which do not support PIC, -DPIC is meaningless: -- *djgpp*) -- lt_prog_compiler_pic= -- ;; -- *) -- lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC" -- ;; --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; } --if test "${lt_cv_prog_compiler_static_works+set}" = set; then -- echo $ECHO_N "(cached) $ECHO_C" >&6 --else -- lt_cv_prog_compiler_static_works=no -- save_LDFLAGS="$LDFLAGS" -- LDFLAGS="$LDFLAGS $lt_tmp_static_flag" -- echo "$lt_simple_link_test_code" > conftest.$ac_ext -- if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then -- # The linker can only warn and ignore the option if not recognized -- # So say no if there are warnings -- if test -s conftest.err; then -- # Append any errors to the config.log. -- cat conftest.err 1>&5 -- $echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp -- $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 -- if diff conftest.exp conftest.er2 >/dev/null; then -- lt_cv_prog_compiler_static_works=yes -- fi -- else -- lt_cv_prog_compiler_static_works=yes -- fi -- fi -- $rm -r conftest* -- LDFLAGS="$save_LDFLAGS" -+done - --fi --{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_static_works" >&5 --echo "${ECHO_T}$lt_cv_prog_compiler_static_works" >&6; } - --if test x"$lt_cv_prog_compiler_static_works" = xyes; then -- : -+ -+# Set options -+ -+ -+ -+ enable_dlopen=no -+ -+ -+ enable_win32_dll=no -+ -+ -+ # Check whether --enable-shared was given. -+if test "${enable_shared+set}" = set; then -+ enableval=$enable_shared; p=${PACKAGE-default} -+ case $enableval in -+ yes) enable_shared=yes ;; -+ no) enable_shared=no ;; -+ *) -+ enable_shared=no -+ # Look at the argument we got. We use all the common list separators. -+ lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," -+ for pkg in $enableval; do -+ IFS="$lt_save_ifs" -+ if test "X$pkg" = "X$p"; then -+ enable_shared=yes -+ fi -+ done -+ IFS="$lt_save_ifs" -+ ;; -+ esac - else -- lt_prog_compiler_static= -+ enable_shared=yes - 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; } --if test "${lt_cv_prog_compiler_c_o+set}" = set; then -- echo $ECHO_N "(cached) $ECHO_C" >&6 --else -- lt_cv_prog_compiler_c_o=no -- $rm -r conftest 2>/dev/null -- mkdir conftest -- cd conftest -- mkdir out -- echo "$lt_simple_compile_test_code" > conftest.$ac_ext - -- lt_compiler_flag="-o out/conftest2.$ac_objext" -- # Insert the option either (1) after the last *FLAGS variable, or -- # (2) before a word containing "conftest.", or (3) at the end. -- # Note that $ac_compile itself does not contain backslashes and begins -- # with a dollar sign (not a hyphen), so the echo should work correctly. -- lt_compile=`echo "$ac_compile" | $SED \ -- -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -- -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -- -e 's:$: $lt_compiler_flag:'` -- (eval echo "\"\$as_me:7885: $lt_compile\"" >&5) -- (eval "$lt_compile" 2>out/conftest.err) -- ac_status=$? -- cat out/conftest.err >&5 -- echo "$as_me:7889: \$? = $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 -- # So say no if there are warnings -- $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp -- $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 -- if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then -- lt_cv_prog_compiler_c_o=yes -- fi -- fi -- chmod u+w . 2>&5 -- $rm conftest* -- # SGI C++ compiler will create directory out/ii_files/ for -- # template instantiation -- test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files -- $rm out/* && rmdir out -- cd .. -- rmdir conftest -- $rm conftest* - --fi --{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o" >&5 --echo "${ECHO_T}$lt_cv_prog_compiler_c_o" >&6; } - - --hard_links="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; } -- 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; } -- 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;} -- need_locks=warn -- fi -+ -+ -+ -+ -+ -+# Check whether --with-pic was given. -+if test "${with_pic+set}" = set; then -+ withval=$with_pic; pic_mode="$withval" - else -- need_locks=no -+ pic_mode=default - 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; } - -- runpath_var= -- allow_undefined_flag= -- enable_shared_with_static_runtimes=no -- archive_cmds= -- archive_expsym_cmds= -- old_archive_From_new_cmds= -- old_archive_from_expsyms_cmds= -- export_dynamic_flag_spec= -- whole_archive_flag_spec= -- thread_safe_flag_spec= -- hardcode_libdir_flag_spec= -- hardcode_libdir_flag_spec_ld= -- hardcode_libdir_separator= -- hardcode_direct=no -- hardcode_minus_L=no -- hardcode_shlibpath_var=unsupported -- link_all_deplibs=unknown -- hardcode_automatic=no -- module_cmds= -- module_expsym_cmds= -- always_export_symbols=no -- export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' -- # include_expsyms should be a list of space-separated symbols to be *always* -- # included in the symbol list -- include_expsyms= -- # exclude_expsyms can be an extended regexp of symbols to exclude -- # it will be wrapped by ` (' and `)$', so one must not match beginning or -- # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', -- # as well as any symbol that contains `d'. -- exclude_expsyms='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*' -- # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out -- # platforms (ab)use it in PIC code, but their linkers get confused if -- # the symbol is explicitly referenced. Since portable code cannot -- # rely on this symbol name, it's probably fine to never include it in -- # preloaded symbol tables. -- # Exclude shared library initialization/finalization symbols. -- extract_expsyms_cmds= -- # Just being paranoid about ensuring that cc_basename is set. -- for cc_temp in $compiler""; do -- case $cc_temp in -- compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; -- distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; -- \-*) ;; -- *) break;; -- esac --done --cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` -+test -z "$pic_mode" && pic_mode=default - -- case $host_os in -- cygwin* | mingw* | pw32*) -- # FIXME: the MSVC++ port hasn't been tested in a loooong time -- # When not using gcc, we currently assume that we are using -- # Microsoft Visual C++. -- if test "$GCC" != yes; then -- with_gnu_ld=no -- fi -- ;; -- interix*) -- # we just hope/assume this is gcc and not c89 (= MSVC++) -- with_gnu_ld=yes -- ;; -- openbsd*) -- with_gnu_ld=no -- ;; -- esac - -- ld_shlibs=yes -- if test "$with_gnu_ld" = yes; then -- # If archive_cmds runs LD, not CC, wlarc should be empty -- wlarc='${wl}' - -- # Set some defaults for GNU ld with shared library support. These -- # are reset later if shared libraries are not supported. Putting them -- # here allows them to be overridden if necessary. -- runpath_var=LD_RUN_PATH -- hardcode_libdir_flag_spec='${wl}--rpath ${wl}$libdir' -- export_dynamic_flag_spec='${wl}--export-dynamic' -- # ancient GNU ld didn't support --whole-archive et. al. -- if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then -- whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' -- else -- whole_archive_flag_spec= -- fi -- supports_anon_versioning=no -- case `$LD -v 2>/dev/null` in -- *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 -- *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... -- *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... -- *\ 2.11.*) ;; # other 2.11 versions -- *) supports_anon_versioning=yes ;; -- esac - -- # See if GNU ld supports shared libraries. -- case $host_os in -- aix[3-9]*) -- # On AIX/PPC, the GNU linker is very broken -- if test "$host_cpu" != ia64; then -- ld_shlibs=no -- cat <&2 - --*** Warning: the GNU linker, at least up to release 2.9.1, is reported --*** to be unable to reliably create shared libraries on AIX. --*** Therefore, libtool is disabling shared libraries support. If you --*** really care for shared libraries, you may want to modify your PATH --*** so that a non-GNU linker is found, and then restart. - --EOF -- fi -+ -+ # Check whether --enable-fast-install was given. -+if test "${enable_fast_install+set}" = set; then -+ enableval=$enable_fast_install; p=${PACKAGE-default} -+ case $enableval in -+ yes) enable_fast_install=yes ;; -+ no) enable_fast_install=no ;; -+ *) -+ enable_fast_install=no -+ # Look at the argument we got. We use all the common list separators. -+ lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," -+ for pkg in $enableval; do -+ IFS="$lt_save_ifs" -+ if test "X$pkg" = "X$p"; then -+ enable_fast_install=yes -+ fi -+ done -+ IFS="$lt_save_ifs" - ;; -+ esac -+else -+ enable_fast_install=yes -+fi - -- amigaos*) -- archive_cmds='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' -- hardcode_libdir_flag_spec='-L$libdir' -- hardcode_minus_L=yes - -- # Samuel A. Falvo II reports -- # that the semantics of dynamic libraries on AmigaOS, at least up -- # to version 4, is to share data among multiple programs linked -- # with the same dynamic library. Since this doesn't match the -- # behavior of shared libraries on other platforms, we can't use -- # them. -- ld_shlibs=no -- ;; - -- beos*) -- if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then -- allow_undefined_flag=unsupported -- # Joseph Beckenbach says some releases of gcc -- # support --undefined. This deserves some investigation. FIXME -- archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -- else -- ld_shlibs=no -- fi -- ;; - -- cygwin* | mingw* | pw32*) -- # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless, -- # as there is no search path for DLLs. -- hardcode_libdir_flag_spec='-L$libdir' -- allow_undefined_flag=unsupported -- always_export_symbols=no -- enable_shared_with_static_runtimes=yes -- export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/'\'' -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' - -- if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then -- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' -- # If the export-symbols file already is a .def file (1st line -- # is EXPORTS), use it as is; otherwise, prepend... -- archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then -- cp $export_symbols $output_objdir/$soname.def; -- else -- echo EXPORTS > $output_objdir/$soname.def; -- cat $export_symbols >> $output_objdir/$soname.def; -- fi~ -- $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' -- else -- ld_shlibs=no -- fi -- ;; - -- interix[3-9]*) -- hardcode_direct=no -- hardcode_shlibpath_var=no -- hardcode_libdir_flag_spec='${wl}-rpath,$libdir' -- export_dynamic_flag_spec='${wl}-E' -- # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. -- # Instead, shared libraries are loaded at an image base (0x10000000 by -- # default) and relocated if they conflict, which is a slow very memory -- # consuming and fragmenting process. To avoid this, we pick a random, -- # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link -- # time. Moving up from 0x10000000 also allows more sbrk(2) space. -- archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' -- archive_expsym_cmds='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' -- ;; - -- gnu* | linux* | k*bsd*-gnu) -- if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then -- tmp_addflag= -- case $cc_basename,$host_cpu in -- pgcc*) # Portland Group C compiler -- whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' -- tmp_addflag=' $pic_flag' -- ;; -- pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers -- whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' -- tmp_addflag=' $pic_flag -Mnomain' ;; -- ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 -- tmp_addflag=' -i_dynamic' ;; -- efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 -- tmp_addflag=' -i_dynamic -nofor_main' ;; -- ifc* | ifort*) # Intel Fortran compiler -- tmp_addflag=' -nofor_main' ;; -- esac -- case `$CC -V 2>&1 | sed 5q` in -- *Sun\ C*) # Sun C 5.9 -- whole_archive_flag_spec='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' -- tmp_sharedflag='-G' ;; -- *Sun\ F*) # Sun Fortran 8.3 -- tmp_sharedflag='-G' ;; -- *) -- tmp_sharedflag='-shared' ;; -- esac -- archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - -- if test $supports_anon_versioning = yes; then -- archive_expsym_cmds='$echo "{ global:" > $output_objdir/$libname.ver~ -- cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ -- $echo "local: *; };" >> $output_objdir/$libname.ver~ -- $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' -- fi -- link_all_deplibs=no -- else -- ld_shlibs=no -- fi -- ;; - -- netbsd* | netbsdelf*-gnu) -- if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then -- archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' -- wlarc= -- else -- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' -- fi -- ;; - -- solaris*) -- if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then -- ld_shlibs=no -- cat <&2 - --*** Warning: The releases 2.8.* of the GNU linker cannot reliably --*** create shared libraries on Solaris systems. Therefore, libtool --*** is disabling shared libraries support. We urge you to upgrade GNU --*** binutils to release 2.9.1 or newer. Another option is to modify --*** your PATH or compiler configuration so that the native linker is --*** used, and then restart. -+# This can be used to rebuild libtool when needed -+LIBTOOL_DEPS="$ltmain" - --EOF -- elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then -- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' -- else -- ld_shlibs=no -- fi -- ;; -+# Always use our own libtool. -+LIBTOOL='$(SHELL) $(top_builddir)/libtool' - -- sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) -- case `$LD -v 2>&1` in -- *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) -- ld_shlibs=no -- cat <<_LT_EOF 1>&2 - --*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not --*** reliably create shared libraries on SCO systems. Therefore, libtool --*** is disabling shared libraries support. We urge you to upgrade GNU --*** binutils to release 2.16.91.0.3 or newer. Another option is to modify --*** your PATH or compiler configuration so that the native linker is --*** used, and then restart. - --_LT_EOF -- ;; -- *) -- if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then -- hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`' -- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib' -- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname,-retain-symbols-file,$export_symbols -o $lib' -- else -- ld_shlibs=no -- fi -- ;; -- esac -- ;; - -- sunos4*) -- archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' -- wlarc= -- hardcode_direct=yes -- hardcode_shlibpath_var=no -- ;; - -- *) -- if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then -- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' -- else -- ld_shlibs=no -- fi -- ;; -- esac - -- if test "$ld_shlibs" = no; then -- runpath_var= -- hardcode_libdir_flag_spec= -- export_dynamic_flag_spec= -- whole_archive_flag_spec= -- fi -- else -- # PORTME fill in a description of your system's linker (not GNU ld) -- case $host_os in -- aix3*) -- allow_undefined_flag=unsupported -- always_export_symbols=yes -- archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' -- # Note: this linker hardcodes the directories in LIBPATH if there -- # are no directories specified by -L. -- hardcode_minus_L=yes -- if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then -- # Neither direct hardcoding nor static linking is supported with a -- # broken collect2. -- hardcode_direct=unsupported -- fi -- ;; - -- aix[4-9]*) -- if test "$host_cpu" = ia64; then -- # On IA64, the linker does run time linking by default, so we don't -- # have to do anything special. -- aix_use_runtimelinking=no -- exp_sym_flag='-Bexport' -- no_entry_flag="" -- else -- # If we're using GNU nm, then we don't want the "-C" option. -- # -C means demangle to AIX nm, but means don't demangle with GNU nm -- if $NM -V 2>&1 | grep 'GNU' > /dev/null; then -- export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' -- else -- export_symbols_cmds='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' -- fi -- aix_use_runtimelinking=no - -- # Test if we are trying to use run time linking or normal -- # AIX style linking. If -brtl is somewhere in LDFLAGS, we -- # need to do runtime linking. -- case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) -- for ld_flag in $LDFLAGS; do -- if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then -- aix_use_runtimelinking=yes -- break -- fi -- done -- ;; -- esac - -- exp_sym_flag='-bexport' -- no_entry_flag='-bnoentry' -- fi - -- # When large executables or shared objects are built, AIX ld can -- # have problems creating the table of contents. If linking a library -- # or program results in "error TOC overflow" add -mminimal-toc to -- # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not -- # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. - -- archive_cmds='' -- hardcode_direct=yes -- hardcode_libdir_separator=':' -- link_all_deplibs=yes - -- if test "$GCC" = yes; then -- case $host_os in aix4.[012]|aix4.[012].*) -- # We only want to do this on AIX 4.2 and lower, the check -- # below for broken collect2 doesn't work under 4.3+ -- collect2name=`${CC} -print-prog-name=collect2` -- if test -f "$collect2name" && \ -- strings "$collect2name" | grep resolve_lib_name >/dev/null -- then -- # We have reworked collect2 -- : -- else -- # We have old collect2 -- hardcode_direct=unsupported -- # It fails to find uninstalled libraries when the uninstalled -- # path is not listed in the libpath. Setting hardcode_minus_L -- # to unsupported forces relinking -- hardcode_minus_L=yes -- hardcode_libdir_flag_spec='-L$libdir' -- hardcode_libdir_separator= -- fi -- ;; -- esac -- shared_flag='-shared' -- if test "$aix_use_runtimelinking" = yes; then -- shared_flag="$shared_flag "'${wl}-G' -- fi -- else -- # not using gcc -- if test "$host_cpu" = ia64; then -- # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release -- # chokes on -Wl,-G. The following line is correct: -- shared_flag='-G' -- else -- if test "$aix_use_runtimelinking" = yes; then -- shared_flag='${wl}-G' -- else -- shared_flag='${wl}-bM:SRE' -- fi -- fi -- fi - -- # It seems that -bexpall does not export symbols beginning with -- # underscore (_), so it is better to generate a list of symbols to export. -- always_export_symbols=yes -- if test "$aix_use_runtimelinking" = yes; then -- # Warning - without using the other runtime loading flags (-brtl), -- # -berok will link without error, but may produce a broken library. -- allow_undefined_flag='-berok' -- # Determine the default libpath from the value encoded in an empty executable. -- cat >conftest.$ac_ext <<_ACEOF --/* confdefs.h. */ --_ACEOF --cat confdefs.h >>conftest.$ac_ext --cat >>conftest.$ac_ext <<_ACEOF --/* end confdefs.h. */ - --int --main () --{ - -- ; -- return 0; --} --_ACEOF --rm -f conftest.$ac_objext conftest$ac_exeext --if { (ac_try="$ac_link" --case "(($ac_try" in -- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; -- *) ac_try_echo=$ac_try;; --esac --eval "echo \"\$as_me:$LINENO: $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); } && { -- test -z "$ac_c_werror_flag" || -- test ! -s conftest.err -- } && test -s conftest$ac_exeext && -- $as_test_x conftest$ac_exeext; then - --lt_aix_libpath_sed=' -- /Import File Strings/,/^$/ { -- /^0/ { -- s/^0 *\(.*\)$/\1/ -- p -- } -- }' --aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` --# Check for a 64-bit object if we didn't find anything. --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 --sed 's/^/| /' conftest.$ac_ext >&5 - - --fi - --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 - -- hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" -- archive_expsym_cmds="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" -- else -- if test "$host_cpu" = ia64; then -- hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' -- allow_undefined_flag="-z nodefs" -- archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" -- else -- # Determine the default libpath from the value encoded in an empty executable. -- cat >conftest.$ac_ext <<_ACEOF --/* confdefs.h. */ --_ACEOF --cat confdefs.h >>conftest.$ac_ext --cat >>conftest.$ac_ext <<_ACEOF --/* end confdefs.h. */ - --int --main () --{ - -- ; -- return 0; --} --_ACEOF --rm -f conftest.$ac_objext conftest$ac_exeext --if { (ac_try="$ac_link" --case "(($ac_try" in -- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; -- *) ac_try_echo=$ac_try;; --esac --eval "echo \"\$as_me:$LINENO: $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); } && { -- test -z "$ac_c_werror_flag" || -- test ! -s conftest.err -- } && test -s conftest$ac_exeext && -- $as_test_x conftest$ac_exeext; then - --lt_aix_libpath_sed=' -- /Import File Strings/,/^$/ { -- /^0/ { -- s/^0 *\(.*\)$/\1/ -- p -- } -- }' --aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` --# Check for a 64-bit object if we didn't find anything. --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 --sed 's/^/| /' conftest.$ac_ext >&5 - - --fi -+test -z "$LN_S" && LN_S="ln -s" - --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 - -- hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" -- # Warning - without using the other run time loading flags, -- # -berok will link without error, but may produce a broken library. -- no_undefined_flag=' ${wl}-bernotok' -- allow_undefined_flag=' ${wl}-berok' -- # Exported symbols can be pulled into shared objects from archives -- whole_archive_flag_spec='$convenience' -- archive_cmds_need_lc=yes -- # This is similar to how AIX traditionally builds its shared libraries. -- archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' -- fi -- fi -- ;; - -- amigaos*) -- archive_cmds='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' -- hardcode_libdir_flag_spec='-L$libdir' -- hardcode_minus_L=yes -- # see comment about different semantics on the GNU ld section -- ld_shlibs=no -- ;; - -- bsdi[45]*) -- export_dynamic_flag_spec=-rdynamic -- ;; - -- cygwin* | mingw* | pw32*) -- # When not using gcc, we currently assume that we are using -- # Microsoft Visual C++. -- # hardcode_libdir_flag_spec is actually meaningless, as there is -- # no search path for DLLs. -- hardcode_libdir_flag_spec=' ' -- allow_undefined_flag=unsupported -- # Tell ltmain to make .lib files, not .a files. -- libext=lib -- # Tell ltmain to make .dll files, not .so files. -- shrext_cmds=".dll" -- # FIXME: Setting linknames here is a bad hack. -- archive_cmds='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames=' -- # The linker will automatically build a .lib file if we build a DLL. -- old_archive_From_new_cmds='true' -- # FIXME: Should let the user specify the lib program. -- old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' -- fix_srcfile_path='`cygpath -w "$srcfile"`' -- enable_shared_with_static_runtimes=yes -- ;; - -- darwin* | rhapsody*) -- case $host_os in -- rhapsody* | darwin1.[012]) -- allow_undefined_flag='${wl}-undefined ${wl}suppress' -- ;; -- *) # Darwin 1.3 on -- if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then -- allow_undefined_flag='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' -- else -- case ${MACOSX_DEPLOYMENT_TARGET} in -- 10.[012]) -- allow_undefined_flag='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' -- ;; -- 10.*) -- allow_undefined_flag='${wl}-undefined ${wl}dynamic_lookup' -- ;; -- esac -- fi -- ;; -- esac -- archive_cmds_need_lc=no -- hardcode_direct=no -- hardcode_automatic=yes -- hardcode_shlibpath_var=unsupported -- whole_archive_flag_spec='' -- link_all_deplibs=yes -- if test "$GCC" = yes ; then -- output_verbose_link_cmd='echo' -- archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" -- module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" -- archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" -- module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" -- else -- case $cc_basename in -- xlc*) -- output_verbose_link_cmd='echo' -- archive_cmds='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $xlcverstring' -- module_cmds='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' -- # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds -- archive_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $xlcverstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' -- module_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' -- ;; -- *) -- ld_shlibs=no -- ;; -- esac -- fi -- ;; - -- dgux*) -- archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' -- hardcode_libdir_flag_spec='-L$libdir' -- hardcode_shlibpath_var=no -- ;; - -- freebsd1*) -- ld_shlibs=no -- ;; - -- # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor -- # support. Future versions do this automatically, but an explicit c++rt0.o -- # does not break anything, and helps significantly (at the cost of a little -- # extra space). -- freebsd2.2*) -- archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' -- hardcode_libdir_flag_spec='-R$libdir' -- hardcode_direct=yes -- hardcode_shlibpath_var=no -- ;; - -- # Unfortunately, older versions of FreeBSD 2 do not have this feature. -- freebsd2*) -- archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' -- hardcode_direct=yes -- hardcode_minus_L=yes -- hardcode_shlibpath_var=no -- ;; - -- # FreeBSD 3 and greater uses gcc -shared to do shared libraries. -- freebsd* | dragonfly*) -- archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' -- hardcode_libdir_flag_spec='-R$libdir' -- hardcode_direct=yes -- hardcode_shlibpath_var=no -- ;; - -- hpux9*) -- if test "$GCC" = yes; then -- archive_cmds='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' -- else -- archive_cmds='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' -- fi -- hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' -- hardcode_libdir_separator=: -- hardcode_direct=yes - -- # hardcode_minus_L: Not really in the search PATH, -- # but as the default location of the library. -- hardcode_minus_L=yes -- export_dynamic_flag_spec='${wl}-E' -- ;; - -- hpux10*) -- if test "$GCC" = yes -a "$with_gnu_ld" = no; then -- archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' -- else -- archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' -- fi -- if test "$with_gnu_ld" = no; then -- hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' -- hardcode_libdir_separator=: -+if test -n "${ZSH_VERSION+set}" ; then -+ setopt NO_GLOB_SUBST -+fi - -- hardcode_direct=yes -- export_dynamic_flag_spec='${wl}-E' -+{ $as_echo "$as_me:$LINENO: checking for objdir" >&5 -+$as_echo_n "checking for objdir... " >&6; } -+if test "${lt_cv_objdir+set}" = set; then -+ $as_echo_n "(cached) " >&6 -+else -+ rm -f .libs 2>/dev/null -+mkdir .libs 2>/dev/null -+if test -d .libs; then -+ lt_cv_objdir=.libs -+else -+ # MS-DOS does not allow filenames that begin with a dot. -+ lt_cv_objdir=_libs -+fi -+rmdir .libs 2>/dev/null -+fi -+{ $as_echo "$as_me:$LINENO: result: $lt_cv_objdir" >&5 -+$as_echo "$lt_cv_objdir" >&6; } -+objdir=$lt_cv_objdir - -- # hardcode_minus_L: Not really in the search PATH, -- # but as the default location of the library. -- hardcode_minus_L=yes -- fi -- ;; - -- hpux11*) -- if test "$GCC" = yes -a "$with_gnu_ld" = no; then -- case $host_cpu in -- hppa*64*) -- archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' -- ;; -- ia64*) -- archive_cmds='$CC -shared ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' -- ;; -- *) -- archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' -- ;; -- esac -- else -- case $host_cpu in -- hppa*64*) -- archive_cmds='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' -- ;; -- ia64*) -- archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' -- ;; -- *) -- archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' -- ;; -- esac -- fi -- if test "$with_gnu_ld" = no; then -- hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' -- hardcode_libdir_separator=: - -- case $host_cpu in -- hppa*64*|ia64*) -- hardcode_libdir_flag_spec_ld='+b $libdir' -- hardcode_direct=no -- hardcode_shlibpath_var=no -- ;; -- *) -- hardcode_direct=yes -- export_dynamic_flag_spec='${wl}-E' - -- # hardcode_minus_L: Not really in the search PATH, -- # but as the default location of the library. -- hardcode_minus_L=yes -- ;; -- esac -- fi -- ;; - -- irix5* | irix6* | nonstopux*) -- if test "$GCC" = yes; then -- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' -- else -- archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' -- hardcode_libdir_flag_spec_ld='-rpath $libdir' -- fi -- hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' -- hardcode_libdir_separator=: -- link_all_deplibs=yes -- ;; -+cat >>confdefs.h <<_ACEOF -+#define LT_OBJDIR "$lt_cv_objdir/" -+_ACEOF - -- netbsd* | netbsdelf*-gnu) -- if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then -- archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out -- else -- archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF -- fi -- hardcode_libdir_flag_spec='-R$libdir' -- hardcode_direct=yes -- hardcode_shlibpath_var=no -- ;; - -- newsos6) -- archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' -- hardcode_direct=yes -- hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' -- hardcode_libdir_separator=: -- hardcode_shlibpath_var=no -- ;; - -- openbsd*) -- if test -f /usr/libexec/ld.so; then -- hardcode_direct=yes -- hardcode_shlibpath_var=no -- if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then -- archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' -- archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' -- hardcode_libdir_flag_spec='${wl}-rpath,$libdir' -- export_dynamic_flag_spec='${wl}-E' -- else -- case $host_os in -- openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) -- archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' -- hardcode_libdir_flag_spec='-R$libdir' -- ;; -- *) -- archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' -- hardcode_libdir_flag_spec='${wl}-rpath,$libdir' -- ;; -- esac -- fi -- else -- ld_shlibs=no -- fi -- ;; - -- os2*) -- hardcode_libdir_flag_spec='-L$libdir' -- hardcode_minus_L=yes -- allow_undefined_flag=unsupported -- archive_cmds='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' -- old_archive_From_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' -- ;; - -- osf3*) -- if test "$GCC" = yes; then -- allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' -- archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' -- else -- allow_undefined_flag=' -expect_unresolved \*' -- archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' -- fi -- hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' -- hardcode_libdir_separator=: -- ;; - -- osf4* | osf5*) # as osf3* with the addition of -msym flag -- if test "$GCC" = yes; then -- allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' -- archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' -- hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' -- else -- allow_undefined_flag=' -expect_unresolved \*' -- archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' -- archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~ -- $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~$rm $lib.exp' - -- # Both c and cxx compiler support -rpath directly -- hardcode_libdir_flag_spec='-rpath $libdir' -- fi -- hardcode_libdir_separator=: -- ;; - -- solaris*) -- no_undefined_flag=' -z text' -- if test "$GCC" = yes; then -- wlarc='${wl}' -- archive_cmds='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' -- archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ -- $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp' -- else -- wlarc='' -- archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' -- archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ -- $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp' -- fi -- hardcode_libdir_flag_spec='-R$libdir' -- hardcode_shlibpath_var=no -- case $host_os in -- solaris2.[0-5] | solaris2.[0-5].*) ;; -- *) -- # The compiler driver will combine and reorder linker options, -- # but understands `-z linker_flag'. GCC discards it without `$wl', -- # but is careful enough not to reorder. -- # Supported since Solaris 2.6 (maybe 2.5.1?) -- if test "$GCC" = yes; then -- whole_archive_flag_spec='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' -- else -- whole_archive_flag_spec='-z allextract$convenience -z defaultextract' -- fi -- ;; -- esac -- link_all_deplibs=yes -- ;; -- -- sunos4*) -- if test "x$host_vendor" = xsequent; then -- # Use $CC to link under sequent, because it throws in some extra .o -- # files that make .init and .fini sections work. -- archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' -- else -- archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' -- fi -- hardcode_libdir_flag_spec='-L$libdir' -- hardcode_direct=yes -- hardcode_minus_L=yes -- hardcode_shlibpath_var=no -- ;; - -- sysv4) -- case $host_vendor in -- sni) -- archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' -- hardcode_direct=yes # is this really true??? -- ;; -- siemens) -- ## LD is ld it makes a PLAMLIB -- ## CC just makes a GrossModule. -- archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags' -- reload_cmds='$CC -r -o $output$reload_objs' -- hardcode_direct=no -- ;; -- motorola) -- archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' -- hardcode_direct=no #Motorola manual says yes, but my tests say they lie -- ;; -- esac -- runpath_var='LD_RUN_PATH' -- hardcode_shlibpath_var=no -- ;; - -- sysv4.3*) -- archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' -- hardcode_shlibpath_var=no -- export_dynamic_flag_spec='-Bexport' -- ;; - -- sysv4*MP*) -- if test -d /usr/nec; then -- archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' -- hardcode_shlibpath_var=no -- runpath_var=LD_RUN_PATH -- hardcode_runpath_var=yes -- ld_shlibs=yes -- fi -- ;; - -- sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) -- no_undefined_flag='${wl}-z,text' -- archive_cmds_need_lc=no -- hardcode_shlibpath_var=no -- runpath_var='LD_RUN_PATH' - -- if test "$GCC" = yes; then -- archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' -- archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' -- else -- archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' -- archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' -- fi -- ;; - -- sysv5* | sco3.2v5* | sco5v6*) -- # Note: We can NOT use -z defs as we might desire, because we do not -- # link with -lc, and that would cause any symbols used from libc to -- # always be unresolved, which means just about no library would -- # ever link correctly. If we're not using GNU ld we use -z text -- # though, which does catch some bad symbols but isn't as heavy-handed -- # as -z defs. -- no_undefined_flag='${wl}-z,text' -- allow_undefined_flag='${wl}-z,nodefs' -- archive_cmds_need_lc=no -- hardcode_shlibpath_var=no -- hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' -- hardcode_libdir_separator=':' -- link_all_deplibs=yes -- export_dynamic_flag_spec='${wl}-Bexport' -- runpath_var='LD_RUN_PATH' - -- if test "$GCC" = yes; then -- archive_cmds='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' -- archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' -- else -- archive_cmds='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' -- archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' -- fi -- ;; - -- uts4*) -- archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' -- hardcode_libdir_flag_spec='-L$libdir' -- hardcode_shlibpath_var=no -- ;; - -- *) -- ld_shlibs=no -- ;; -- esac -+case $host_os in -+aix3*) -+ # AIX sometimes has problems with the GCC collect2 program. For some -+ # reason, if we set the COLLECT_NAMES environment variable, the problems -+ # vanish in a puff of smoke. -+ if test "X${COLLECT_NAMES+set}" != Xset; then -+ COLLECT_NAMES= -+ export COLLECT_NAMES - fi -+ ;; -+esac - --{ echo "$as_me:$LINENO: result: $ld_shlibs" >&5 --echo "${ECHO_T}$ld_shlibs" >&6; } --test "$ld_shlibs" = no && can_build_shared=no -+# Sed substitution that helps us do robust quoting. It backslashifies -+# metacharacters that are still active within double-quoted strings. -+sed_quote_subst='s/\(["`$\\]\)/\\\1/g' - --# --# Do we need to explicitly link libc? --# --case "x$archive_cmds_need_lc" in --x|xyes) -- # Assume -lc should be added -- archive_cmds_need_lc=yes -+# Same as above, but do not quote variable references. -+double_quote_subst='s/\(["`\\]\)/\\\1/g' - -- if test "$enable_shared" = yes && test "$GCC" = yes; then -- case $archive_cmds in -- *'~'*) -- # FIXME: we may have to deal with multi-command sequences. -- ;; -- '$CC '*) -- # Test whether the compiler implicitly links with -lc since on 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; } -- $rm conftest* -- echo "$lt_simple_compile_test_code" > conftest.$ac_ext -+# Sed substitution to delay expansion of an escaped shell variable in a -+# double_quote_subst'ed string. -+delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' - -- if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 -- (eval $ac_compile) 2>&5 -- ac_status=$? -- echo "$as_me:$LINENO: \$? = $ac_status" >&5 -- (exit $ac_status); } 2>conftest.err; then -- soname=conftest -- lib=conftest -- libobjs=conftest.$ac_objext -- deplibs= -- wl=$lt_prog_compiler_wl -- pic_flag=$lt_prog_compiler_pic -- compiler_flags=-v -- linker_flags=-v -- verstring= -- output_objdir=. -- libname=conftest -- lt_save_allow_undefined_flag=$allow_undefined_flag -- allow_undefined_flag= -- 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 -- (exit $ac_status); } -- then -- archive_cmds_need_lc=no -- else -- archive_cmds_need_lc=yes -- fi -- allow_undefined_flag=$lt_save_allow_undefined_flag -- else -- cat conftest.err 1>&5 -- fi -- $rm conftest* -- { echo "$as_me:$LINENO: result: $archive_cmds_need_lc" >&5 --echo "${ECHO_T}$archive_cmds_need_lc" >&6; } -- ;; -- esac -- fi -- ;; --esac -+# Sed substitution to delay expansion of an escaped single quote. -+delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' - --{ echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5 --echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6; } --library_names_spec= --libname_spec='lib$name' --soname_spec= --shrext_cmds=".so" --postinstall_cmds= --postuninstall_cmds= --finish_cmds= --finish_eval= --shlibpath_var= --shlibpath_overrides_runpath=unknown --version_type=none --dynamic_linker="$host_os ld.so" --sys_lib_dlsearch_path_spec="/lib /usr/lib" -+# Sed substitution to avoid accidental globbing in evaled expressions -+no_glob_subst='s/\*/\\\*/g' - --if test "$GCC" = yes; then -- case $host_os in -- darwin*) lt_awk_arg="/^libraries:/,/LR/" ;; -- *) lt_awk_arg="/^libraries:/" ;; -- esac -- lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e "s,=/,/,g"` -- if echo "$lt_search_path_spec" | grep ';' >/dev/null ; then -- # if the path contains ";" then we assume it to be the separator -- # otherwise default to the standard path separator (i.e. ":") - it is -- # assumed that no part of a normal pathname contains ";" but that should -- # okay in the real world where ";" in dirpaths is itself problematic. -- lt_search_path_spec=`echo "$lt_search_path_spec" | $SED -e 's/;/ /g'` -- else -- lt_search_path_spec=`echo "$lt_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` -- fi -- # Ok, now we have the path, separated by spaces, we can step through it -- # and add multilib dir if necessary. -- lt_tmp_lt_search_path_spec= -- lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` -- for lt_sys_path in $lt_search_path_spec; do -- if test -d "$lt_sys_path/$lt_multi_os_dir"; then -- lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir" -- else -- test -d "$lt_sys_path" && \ -- lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" -- fi -- done -- lt_search_path_spec=`echo $lt_tmp_lt_search_path_spec | awk ' --BEGIN {RS=" "; FS="/|\n";} { -- lt_foo=""; -- lt_count=0; -- for (lt_i = NF; lt_i > 0; lt_i--) { -- if ($lt_i != "" && $lt_i != ".") { -- if ($lt_i == "..") { -- lt_count++; -- } else { -- if (lt_count == 0) { -- lt_foo="/" $lt_i lt_foo; -- } else { -- lt_count--; -- } -- } -- } -- } -- if (lt_foo != "") { lt_freq[lt_foo]++; } -- if (lt_freq[lt_foo] == 1) { print lt_foo; } --}'` -- sys_lib_search_path_spec=`echo $lt_search_path_spec` --else -- sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" --fi --need_lib_prefix=unknown --hardcode_into_libs=no -+# Global variables: -+ofile=libtool -+can_build_shared=yes - --# when you set need_version to no, make sure it does not cause -set_version --# flags to be left without arguments --need_version=unknown -+# All known linkers require a `.a' archive for static linking (except MSVC, -+# which needs '.lib'). -+libext=a - --case $host_os in --aix3*) -- version_type=linux -- library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' -- shlibpath_var=LIBPATH -+with_gnu_ld="$lt_cv_prog_gnu_ld" - -- # AIX 3 has no versioning support, so we append a major version to the name. -- soname_spec='${libname}${release}${shared_ext}$major' -+old_CC="$CC" -+old_CFLAGS="$CFLAGS" -+ -+# Set sane defaults for various variables -+test -z "$CC" && CC=cc -+test -z "$LTCC" && LTCC=$CC -+test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS -+test -z "$LD" && LD=ld -+test -z "$ac_objext" && ac_objext=o -+ -+for cc_temp in $compiler""; do -+ case $cc_temp in -+ compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; -+ distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; -+ \-*) ;; -+ *) break;; -+ esac -+done -+cc_basename=`$ECHO "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` -+ -+ -+# Only perform the check for file, if the check method requires it -+test -z "$MAGIC_CMD" && MAGIC_CMD=file -+case $deplibs_check_method in -+file_magic*) -+ if test "$file_magic_cmd" = '$MAGIC_CMD'; then -+ { $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 -+ $as_echo_n "(cached) " >&6 -+else -+ case $MAGIC_CMD in -+[\\/*] | ?:[\\/]*) -+ lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. - ;; -+*) -+ lt_save_MAGIC_CMD="$MAGIC_CMD" -+ lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR -+ ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" -+ for ac_dir in $ac_dummy; do -+ IFS="$lt_save_ifs" -+ test -z "$ac_dir" && ac_dir=. -+ if test -f $ac_dir/${ac_tool_prefix}file; then -+ lt_cv_path_MAGIC_CMD="$ac_dir/${ac_tool_prefix}file" -+ if test -n "$file_magic_test_file"; then -+ case $deplibs_check_method in -+ "file_magic "*) -+ file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` -+ MAGIC_CMD="$lt_cv_path_MAGIC_CMD" -+ if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | -+ $EGREP "$file_magic_regex" > /dev/null; then -+ : -+ else -+ cat <<_LT_EOF 1>&2 - --aix[4-9]*) -- version_type=linux -- need_lib_prefix=no -- need_version=no -- hardcode_into_libs=yes -- if test "$host_cpu" = ia64; then -- # AIX 5 supports IA64 -- library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' -- shlibpath_var=LD_LIBRARY_PATH -- else -- # With GCC up to 2.95.x, collect2 would create an import file -- # for dependence libraries. The import file would start with -- # the line `#! .'. This would cause the generated library to -- # depend on `.', always an invalid library. This was fixed in -- # development snapshots of GCC prior to 3.0. -- case $host_os in -- aix4 | aix4.[01] | aix4.[01].*) -- if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' -- echo ' yes ' -- echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then -- : -- else -- can_build_shared=no -+*** Warning: the command libtool uses to detect shared libraries, -+*** $file_magic_cmd, produces output that libtool cannot recognize. -+*** The result is that libtool may fail to recognize shared libraries -+*** as such. This will affect the creation of libtool libraries that -+*** depend on shared libraries, but programs linked with such libtool -+*** libraries will work regardless of this problem. Nevertheless, you -+*** may want to report the problem to your system manager and/or to -+*** bug-libtool@gnu.org -+ -+_LT_EOF -+ fi ;; -+ esac - fi -- ;; -- esac -- # AIX (on Power*) has no versioning support, so currently we can not hardcode correct -- # soname into executable. Probably we can add versioning support to -- # collect2, so additional links can be useful in future. -- if test "$aix_use_runtimelinking" = yes; then -- # If using run time linking (on AIX 4.2 or later) use lib.so -- # instead of lib.a to let people know that these are not -- # typical AIX shared libraries. -- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' -- else -- # We preserve .a as extension for shared libraries through AIX4.2 -- # and later when we are not doing run time linking. -- library_names_spec='${libname}${release}.a $libname.a' -- soname_spec='${libname}${release}${shared_ext}$major' -+ break - fi -- shlibpath_var=LIBPATH -- fi -- ;; -- --amigaos*) -- library_names_spec='$libname.ixlibrary $libname.a' -- # Create ${libname}_ixlibrary.a entries in /sys/libs. -- finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' -+ done -+ IFS="$lt_save_ifs" -+ MAGIC_CMD="$lt_save_MAGIC_CMD" - ;; -+esac -+fi - --beos*) -- library_names_spec='${libname}${shared_ext}' -- dynamic_linker="$host_os ld.so" -- shlibpath_var=LIBRARY_PATH -- ;; -+MAGIC_CMD="$lt_cv_path_MAGIC_CMD" -+if test -n "$MAGIC_CMD"; then -+ { $as_echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5 -+$as_echo "$MAGIC_CMD" >&6; } -+else -+ { $as_echo "$as_me:$LINENO: result: no" >&5 -+$as_echo "no" >&6; } -+fi - --bsdi[45]*) -- version_type=linux -- need_version=no -- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' -- soname_spec='${libname}${release}${shared_ext}$major' -- finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' -- shlibpath_var=LD_LIBRARY_PATH -- sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" -- sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" -- # the default ld.so.conf also contains /usr/contrib/lib and -- # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow -- # libtool to hard-code these into programs -- ;; - --cygwin* | mingw* | pw32*) -- version_type=windows -- shrext_cmds=".dll" -- need_version=no -- need_lib_prefix=no - -- case $GCC,$host_os in -- yes,cygwin* | yes,mingw* | yes,pw32*) -- library_names_spec='$libname.dll.a' -- # DLL is installed to $(libdir)/../bin by postinstall_cmds -- postinstall_cmds='base_file=`basename \${file}`~ -- dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~ -- dldir=$destdir/`dirname \$dlpath`~ -- test -d \$dldir || mkdir -p \$dldir~ -- $install_prog $dir/$dlname \$dldir/$dlname~ -- chmod a+x \$dldir/$dlname' -- postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ -- dlpath=$dir/\$dldll~ -- $rm \$dlpath' -- shlibpath_overrides_runpath=yes - -- case $host_os in -- cygwin*) -- # Cygwin DLLs use 'cyg' prefix rather than 'lib' -- soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' -- sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" -- ;; -- mingw*) -- # MinGW DLLs use traditional 'lib' prefix -- soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' -- sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` -- if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then -- # It is most probably a Windows format PATH printed by -- # mingw gcc, but we are running on Cygwin. Gcc prints its search -- # path with ; separators, and with drive letters. We can handle the -- # drive letters (cygwin fileutils understands them), so leave them, -- # especially as we might pass files found there to a mingw objdump, -- # which wouldn't understand a cygwinified path. Ahh. -- sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` -- else -- sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` -- fi -- ;; -- pw32*) -- # pw32 DLLs use 'pw' prefix rather than 'lib' -- library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' -- ;; -- esac -- ;; - -- *) -- library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' -- ;; -- esac -- dynamic_linker='Win32 ld.exe' -- # FIXME: first we should search . and the directory the executable is in -- shlibpath_var=PATH -+if test -z "$lt_cv_path_MAGIC_CMD"; then -+ if test -n "$ac_tool_prefix"; then -+ { $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 -+ $as_echo_n "(cached) " >&6 -+else -+ case $MAGIC_CMD in -+[\\/*] | ?:[\\/]*) -+ lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. - ;; -+*) -+ lt_save_MAGIC_CMD="$MAGIC_CMD" -+ lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR -+ ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" -+ for ac_dir in $ac_dummy; do -+ IFS="$lt_save_ifs" -+ test -z "$ac_dir" && ac_dir=. -+ if test -f $ac_dir/file; then -+ lt_cv_path_MAGIC_CMD="$ac_dir/file" -+ if test -n "$file_magic_test_file"; then -+ case $deplibs_check_method in -+ "file_magic "*) -+ file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` -+ MAGIC_CMD="$lt_cv_path_MAGIC_CMD" -+ if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | -+ $EGREP "$file_magic_regex" > /dev/null; then -+ : -+ else -+ cat <<_LT_EOF 1>&2 - --darwin* | rhapsody*) -- dynamic_linker="$host_os dyld" -- version_type=darwin -- need_lib_prefix=no -- need_version=no -- library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext' -- soname_spec='${libname}${release}${major}$shared_ext' -- shlibpath_overrides_runpath=yes -- shlibpath_var=DYLD_LIBRARY_PATH -- shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' -+*** Warning: the command libtool uses to detect shared libraries, -+*** $file_magic_cmd, produces output that libtool cannot recognize. -+*** The result is that libtool may fail to recognize shared libraries -+*** as such. This will affect the creation of libtool libraries that -+*** depend on shared libraries, but programs linked with such libtool -+*** libraries will work regardless of this problem. Nevertheless, you -+*** may want to report the problem to your system manager and/or to -+*** bug-libtool@gnu.org - -- sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib" -- sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' -+_LT_EOF -+ fi ;; -+ esac -+ fi -+ break -+ fi -+ done -+ IFS="$lt_save_ifs" -+ MAGIC_CMD="$lt_save_MAGIC_CMD" - ;; -+esac -+fi - --dgux*) -- version_type=linux -- need_lib_prefix=no -- need_version=no -- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' -- soname_spec='${libname}${release}${shared_ext}$major' -- shlibpath_var=LD_LIBRARY_PATH -- ;; -+MAGIC_CMD="$lt_cv_path_MAGIC_CMD" -+if test -n "$MAGIC_CMD"; then -+ { $as_echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5 -+$as_echo "$MAGIC_CMD" >&6; } -+else -+ { $as_echo "$as_me:$LINENO: result: no" >&5 -+$as_echo "no" >&6; } -+fi - --freebsd1*) -- dynamic_linker=no -- ;; - --freebsd* | dragonfly*) -- # DragonFly does not have aout. When/if they implement a new -- # versioning mechanism, adjust this. -- if test -x /usr/bin/objformat; then -- objformat=`/usr/bin/objformat` - else -- case $host_os in -- freebsd[123]*) objformat=aout ;; -- *) objformat=elf ;; -- esac -+ MAGIC_CMD=: - fi -- version_type=freebsd-$objformat -- case $version_type in -- freebsd-elf*) -- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' -- need_version=no -- need_lib_prefix=no -- ;; -- freebsd-*) -- library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' -- need_version=yes -- ;; -- esac -- shlibpath_var=LD_LIBRARY_PATH -- case $host_os in -- freebsd2*) -- shlibpath_overrides_runpath=yes -- ;; -- freebsd3.[01]* | freebsdelf3.[01]*) -- shlibpath_overrides_runpath=yes -- hardcode_into_libs=yes -- ;; -- freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ -- freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) -- shlibpath_overrides_runpath=no -- hardcode_into_libs=yes -- ;; -- *) # from 4.6 on, and DragonFly -- shlibpath_overrides_runpath=yes -- hardcode_into_libs=yes -- ;; -- esac -- ;; -+fi - --gnu*) -- version_type=linux -- need_lib_prefix=no -- need_version=no -- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' -- soname_spec='${libname}${release}${shared_ext}$major' -- shlibpath_var=LD_LIBRARY_PATH -- hardcode_into_libs=yes -+ fi - ;; -+esac - --hpux9* | hpux10* | hpux11*) -- # Give a soname corresponding to the major version so that dld.sl refuses to -- # link against other versions. -- version_type=sunos -- need_lib_prefix=no -- need_version=no -- case $host_cpu in -- ia64*) -- shrext_cmds='.so' -- hardcode_into_libs=yes -- dynamic_linker="$host_os dld.so" -- shlibpath_var=LD_LIBRARY_PATH -- shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. -- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' -- soname_spec='${libname}${release}${shared_ext}$major' -- if test "X$HPUX_IA64_MODE" = X32; then -- sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" -- else -- sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" -- fi -- sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec -- ;; -- hppa*64*) -- shrext_cmds='.sl' -- hardcode_into_libs=yes -- dynamic_linker="$host_os dld.sl" -- shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH -- shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. -- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' -- soname_spec='${libname}${release}${shared_ext}$major' -- sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" -- sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec -- ;; -- *) -- shrext_cmds='.sl' -- dynamic_linker="$host_os dld.sl" -- shlibpath_var=SHLIB_PATH -- shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH -- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' -- soname_spec='${libname}${release}${shared_ext}$major' -- ;; -- esac -- # HP-UX runs *really* slowly unless shared libraries are mode 555. -- postinstall_cmds='chmod 555 $lib' -- ;; -+# Use C for the default configuration in the libtool script - --interix[3-9]*) -- version_type=linux -- need_lib_prefix=no -- need_version=no -- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' -- soname_spec='${libname}${release}${shared_ext}$major' -- dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' -- shlibpath_var=LD_LIBRARY_PATH -- shlibpath_overrides_runpath=no -- hardcode_into_libs=yes -- ;; -+lt_save_CC="$CC" -+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 - --irix5* | irix6* | nonstopux*) -- case $host_os in -- nonstopux*) version_type=nonstopux ;; -- *) -- if test "$lt_cv_prog_gnu_ld" = yes; then -- version_type=linux -- else -- version_type=irix -- fi ;; -- esac -- need_lib_prefix=no -- need_version=no -- soname_spec='${libname}${release}${shared_ext}$major' -- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' -- case $host_os in -- irix5* | nonstopux*) -- libsuff= shlibsuff= -- ;; -- *) -- case $LD in # libtool.m4 will add one of these switches to LD -- *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") -- libsuff= shlibsuff= libmagic=32-bit;; -- *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") -- libsuff=32 shlibsuff=N32 libmagic=N32;; -- *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") -- libsuff=64 shlibsuff=64 libmagic=64-bit;; -- *) libsuff= shlibsuff= libmagic=never-match;; -- esac -- ;; -- esac -- shlibpath_var=LD_LIBRARY${shlibsuff}_PATH -- shlibpath_overrides_runpath=no -- sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" -- sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" -- hardcode_into_libs=yes -- ;; - --# No shared lib support for Linux oldld, aout, or coff. --linux*oldld* | linux*aout* | linux*coff*) -- dynamic_linker=no -- ;; -+# Source file extension for C test sources. -+ac_ext=c - --# This must be Linux ELF. --linux* | k*bsd*-gnu) -- version_type=linux -- need_lib_prefix=no -- need_version=no -- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' -- soname_spec='${libname}${release}${shared_ext}$major' -- finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' -- shlibpath_var=LD_LIBRARY_PATH -- shlibpath_overrides_runpath=no -- # This implies no fast_install, which is unacceptable. -- # Some rework will be needed to allow for fast_install -- # before this can be enabled. -- hardcode_into_libs=yes -+# Object file extension for compiled C test sources. -+objext=o -+objext=$objext - -- # Append ld.so.conf contents to the search path -- if test -f /etc/ld.so.conf; then -- lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` -- sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" -- fi -+# Code to be used in simple compile tests -+lt_simple_compile_test_code="int some_variable = 0;" - -- # We used to test for /lib/ld.so.1 and disable shared libraries on -- # powerpc, because MkLinux only supported shared libraries with the -- # GNU dynamic linker. Since this was broken with cross compilers, -- # most powerpc-linux boxes support dynamic linking these days and -- # people can always --disable-shared, the test was removed, and we -- # assume the GNU/Linux dynamic linker is in use. -- dynamic_linker='GNU/Linux ld.so' -- ;; -+# Code to be used in simple link tests -+lt_simple_link_test_code='int main(){return(0);}' - --netbsdelf*-gnu) -- version_type=linux -- need_lib_prefix=no -- need_version=no -- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' -- soname_spec='${libname}${release}${shared_ext}$major' -- shlibpath_var=LD_LIBRARY_PATH -- shlibpath_overrides_runpath=no -- hardcode_into_libs=yes -- dynamic_linker='NetBSD ld.elf_so' -- ;; - --netbsd*) -- version_type=sunos -- need_lib_prefix=no -- need_version=no -- if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then -- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' -- finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' -- dynamic_linker='NetBSD (a.out) ld.so' -- else -- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' -- soname_spec='${libname}${release}${shared_ext}$major' -- dynamic_linker='NetBSD ld.elf_so' -- fi -- shlibpath_var=LD_LIBRARY_PATH -- shlibpath_overrides_runpath=yes -- hardcode_into_libs=yes -- ;; - --newsos6) -- version_type=linux -- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' -- shlibpath_var=LD_LIBRARY_PATH -- shlibpath_overrides_runpath=yes -- ;; - --nto-qnx*) -- version_type=linux -- need_lib_prefix=no -- need_version=no -- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' -- soname_spec='${libname}${release}${shared_ext}$major' -- shlibpath_var=LD_LIBRARY_PATH -- shlibpath_overrides_runpath=yes -- ;; - --openbsd*) -- version_type=sunos -- sys_lib_dlsearch_path_spec="/usr/lib" -- need_lib_prefix=no -- # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. -- case $host_os in -- openbsd3.3 | openbsd3.3.*) need_version=yes ;; -- *) need_version=no ;; -- esac -- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' -- finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' -- shlibpath_var=LD_LIBRARY_PATH -- if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then -- case $host_os in -- openbsd2.[89] | openbsd2.[89].*) -- shlibpath_overrides_runpath=no -- ;; -- *) -- shlibpath_overrides_runpath=yes -- ;; -- esac -- else -- shlibpath_overrides_runpath=yes -- fi -- ;; - --os2*) -- libname_spec='$name' -- shrext_cmds=".dll" -- need_lib_prefix=no -- library_names_spec='$libname${shared_ext} $libname.a' -- dynamic_linker='OS/2 ld.exe' -- shlibpath_var=LIBPATH -- ;; - --osf3* | osf4* | osf5*) -- version_type=osf -- need_lib_prefix=no -- need_version=no -- soname_spec='${libname}${release}${shared_ext}$major' -- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' -- shlibpath_var=LD_LIBRARY_PATH -- sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" -- sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" -- ;; -+# If no C compiler was specified, use CC. -+LTCC=${LTCC-"$CC"} - --rdos*) -- dynamic_linker=no -- ;; -+# If no C compiler flags were specified, use CFLAGS. -+LTCFLAGS=${LTCFLAGS-"$CFLAGS"} - --solaris*) -- version_type=linux -- need_lib_prefix=no -- need_version=no -- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' -- soname_spec='${libname}${release}${shared_ext}$major' -- shlibpath_var=LD_LIBRARY_PATH -- shlibpath_overrides_runpath=yes -- hardcode_into_libs=yes -- # ldd complains unless libraries are executable -- postinstall_cmds='chmod +x $lib' -- ;; -- --sunos4*) -- version_type=sunos -- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' -- finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' -- shlibpath_var=LD_LIBRARY_PATH -- shlibpath_overrides_runpath=yes -- if test "$with_gnu_ld" = yes; then -- need_lib_prefix=no -- fi -- need_version=yes -- ;; -- --sysv4 | sysv4.3*) -- version_type=linux -- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' -- soname_spec='${libname}${release}${shared_ext}$major' -- shlibpath_var=LD_LIBRARY_PATH -- case $host_vendor in -- sni) -- shlibpath_overrides_runpath=no -- need_lib_prefix=no -- export_dynamic_flag_spec='${wl}-Blargedynsym' -- runpath_var=LD_RUN_PATH -- ;; -- siemens) -- need_lib_prefix=no -- ;; -- motorola) -- need_lib_prefix=no -- need_version=no -- shlibpath_overrides_runpath=no -- sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' -- ;; -- esac -- ;; -- --sysv4*MP*) -- if test -d /usr/nec ;then -- version_type=linux -- library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' -- soname_spec='$libname${shared_ext}.$major' -- shlibpath_var=LD_LIBRARY_PATH -- fi -- ;; -+# Allow CC to be a program name with arguments. -+compiler=$CC - --sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) -- version_type=freebsd-elf -- need_lib_prefix=no -- need_version=no -- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' -- soname_spec='${libname}${release}${shared_ext}$major' -- shlibpath_var=LD_LIBRARY_PATH -- hardcode_into_libs=yes -- if test "$with_gnu_ld" = yes; then -- sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' -- shlibpath_overrides_runpath=no -- else -- sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' -- shlibpath_overrides_runpath=yes -- case $host_os in -- sco3.2v5*) -- sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" -- ;; -- esac -- fi -- sys_lib_dlsearch_path_spec='/usr/lib' -- ;; -+# Save the default compiler, since it gets overwritten when the other -+# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. -+compiler_DEFAULT=$CC - --uts4*) -- version_type=linux -- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' -- soname_spec='${libname}${release}${shared_ext}$major' -- shlibpath_var=LD_LIBRARY_PATH -- ;; -+# save warnings/boilerplate of simple test code -+ac_outfile=conftest.$ac_objext -+echo "$lt_simple_compile_test_code" >conftest.$ac_ext -+eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err -+_lt_compiler_boilerplate=`cat conftest.err` -+$RM conftest* - --*) -- dynamic_linker=no -- ;; --esac --{ echo "$as_me:$LINENO: result: $dynamic_linker" >&5 --echo "${ECHO_T}$dynamic_linker" >&6; } --test "$dynamic_linker" = no && can_build_shared=no -+ac_outfile=conftest.$ac_objext -+echo "$lt_simple_link_test_code" >conftest.$ac_ext -+eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err -+_lt_linker_boilerplate=`cat conftest.err` -+$RM -r conftest* - --if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then -- echo $ECHO_N "(cached) $ECHO_C" >&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 --else -- lt_cv_sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec" --fi -+## CAVEAT EMPTOR: -+## There is no encapsulation within the following macros, do not change -+## the running order or otherwise move them around unless you know exactly -+## what you are doing... -+if test -n "$compiler"; then - --sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" -+lt_prog_compiler_no_builtin_flag= - --variables_saved_for_relink="PATH $shlibpath_var $runpath_var" - 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; } --hardcode_action= --if test -n "$hardcode_libdir_flag_spec" || \ -- test -n "$runpath_var" || \ -- test "X$hardcode_automatic" = "Xyes" ; then -+ lt_prog_compiler_no_builtin_flag=' -fno-builtin' - -- # We can hardcode non-existant directories. -- if test "$hardcode_direct" != no && -- # If the only mechanism to avoid hardcoding is shlibpath_var, we -- # have to relink, otherwise we might link with an installed library -- # when we should be linking with a yet-to-be-installed one -- ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, )" != no && -- test "$hardcode_minus_L" != no; then -- # Linking always hardcodes the temporary library directory. -- hardcode_action=relink -- else -- # We can link without hardcoding, and we can hardcode nonexisting dirs. -- hardcode_action=immediate -- fi -+ { $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 -+ $as_echo_n "(cached) " >&6 - else -- # We cannot hardcode anything, or else we can only hardcode existing -- # directories. -- hardcode_action=unsupported --fi --{ echo "$as_me:$LINENO: result: $hardcode_action" >&5 --echo "${ECHO_T}$hardcode_action" >&6; } -+ lt_cv_prog_compiler_rtti_exceptions=no -+ ac_outfile=conftest.$ac_objext -+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext -+ lt_compiler_flag="-fno-rtti -fno-exceptions" -+ # Insert the option either (1) after the last *FLAGS variable, or -+ # (2) before a word containing "conftest.", or (3) at the end. -+ # Note that $ac_compile itself does not contain backslashes and begins -+ # with a dollar sign (not a hyphen), so the echo should work correctly. -+ # The option is referenced via a variable to avoid confusing sed. -+ lt_compile=`echo "$ac_compile" | $SED \ -+ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -+ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -+ -e 's:$: $lt_compiler_flag:'` -+ (eval echo "\"\$as_me:7575: $lt_compile\"" >&5) -+ (eval "$lt_compile" 2>conftest.err) -+ ac_status=$? -+ cat conftest.err >&5 -+ echo "$as_me:7579: \$? = $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. -+ $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp -+ $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 -+ if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then -+ lt_cv_prog_compiler_rtti_exceptions=yes -+ fi -+ fi -+ $RM conftest* - --if test "$hardcode_action" = relink; then -- # Fast installation is not supported -- enable_fast_install=no --elif test "$shlibpath_overrides_runpath" = yes || -- test "$enable_shared" = no; then -- # Fast installation is not necessary -- enable_fast_install=needless - fi -+{ $as_echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 -+$as_echo "$lt_cv_prog_compiler_rtti_exceptions" >&6; } - --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; } --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; } -+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" - else --# FIXME - insert some real tests, host_os isn't really good enough -- case $host_os in -- darwin*) -- if test -n "$STRIP" ; then -- striplib="$STRIP -x" -- old_striplib="$STRIP -S" -- { echo "$as_me:$LINENO: result: yes" >&5 --echo "${ECHO_T}yes" >&6; } -- else -- { echo "$as_me:$LINENO: result: no" >&5 --echo "${ECHO_T}no" >&6; } --fi -- ;; -- *) -- { echo "$as_me:$LINENO: result: no" >&5 --echo "${ECHO_T}no" >&6; } -- ;; -- esac -+ : - fi - --if test "x$enable_dlopen" != xyes; then -- enable_dlopen=unknown -- enable_dlopen_self=unknown -- enable_dlopen_self_static=unknown --else -- lt_cv_dlopen=no -- lt_cv_dlopen_libs= -+fi - -- case $host_os in -- beos*) -- lt_cv_dlopen="load_add_on" -- lt_cv_dlopen_libs= -- lt_cv_dlopen_self=yes -- ;; - -- mingw* | pw32*) -- lt_cv_dlopen="LoadLibrary" -- lt_cv_dlopen_libs= -- ;; - -- cygwin*) -- lt_cv_dlopen="dlopen" -- lt_cv_dlopen_libs= -- ;; - -- darwin*) -- # if libdl is installed we need to link against it -- { echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5 --echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6; } --if test "${ac_cv_lib_dl_dlopen+set}" = set; then -- echo $ECHO_N "(cached) $ECHO_C" >&6 --else -- ac_check_lib_save_LIBS=$LIBS --LIBS="-ldl $LIBS" --cat >conftest.$ac_ext <<_ACEOF --/* confdefs.h. */ --_ACEOF --cat confdefs.h >>conftest.$ac_ext --cat >>conftest.$ac_ext <<_ACEOF --/* end confdefs.h. */ - --/* Override any 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 --char dlopen (); --int --main () --{ --return dlopen (); -- ; -- return 0; --} --_ACEOF --rm -f conftest.$ac_objext conftest$ac_exeext --if { (ac_try="$ac_link" --case "(($ac_try" in -- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; -- *) ac_try_echo=$ac_try;; --esac --eval "echo \"\$as_me:$LINENO: $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); } && { -- test -z "$ac_c_werror_flag" || -- test ! -s conftest.err -- } && test -s conftest$ac_exeext && -- $as_test_x conftest$ac_exeext; then -- ac_cv_lib_dl_dlopen=yes --else -- echo "$as_me: failed program was:" >&5 --sed 's/^/| /' conftest.$ac_ext >&5 - -- ac_cv_lib_dl_dlopen=no --fi -+ lt_prog_compiler_wl= -+lt_prog_compiler_pic= -+lt_prog_compiler_static= - --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; } --if test $ac_cv_lib_dl_dlopen = yes; then -- lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" --else -+{ $as_echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5 -+$as_echo_n "checking for $compiler option to produce PIC... " >&6; } - -- lt_cv_dlopen="dyld" -- lt_cv_dlopen_libs= -- lt_cv_dlopen_self=yes -+ if test "$GCC" = yes; then -+ lt_prog_compiler_wl='-Wl,' -+ lt_prog_compiler_static='-static' - --fi -- -- ;; -- -- *) -- { echo "$as_me:$LINENO: checking for shl_load" >&5 --echo $ECHO_N "checking for shl_load... $ECHO_C" >&6; } --if test "${ac_cv_func_shl_load+set}" = set; then -- echo $ECHO_N "(cached) $ECHO_C" >&6 --else -- cat >conftest.$ac_ext <<_ACEOF --/* confdefs.h. */ --_ACEOF --cat confdefs.h >>conftest.$ac_ext --cat >>conftest.$ac_ext <<_ACEOF --/* end confdefs.h. */ --/* Define shl_load to an innocuous variant, in case declares shl_load. -- For example, HP-UX 11i declares gettimeofday. */ --#define shl_load innocuous_shl_load -- --/* System header to define __stub macros and hopefully few prototypes, -- which can conflict with char shl_load (); below. -- Prefer to if __STDC__ is defined, since -- exists even on freestanding compilers. */ -- --#ifdef __STDC__ --# include --#else --# include --#endif -- --#undef shl_load -- --/* Override any 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 --char shl_load (); --/* The GNU C library defines this for functions which it implements -- to always fail with ENOSYS. Some functions are actually named -- something starting with __ and the normal name is an alias. */ --#if defined __stub_shl_load || defined __stub___shl_load --choke me --#endif -- --int --main () --{ --return shl_load (); -- ; -- return 0; --} --_ACEOF --rm -f conftest.$ac_objext conftest$ac_exeext --if { (ac_try="$ac_link" --case "(($ac_try" in -- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; -- *) ac_try_echo=$ac_try;; --esac --eval "echo \"\$as_me:$LINENO: $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); } && { -- test -z "$ac_c_werror_flag" || -- test ! -s conftest.err -- } && test -s conftest$ac_exeext && -- $as_test_x conftest$ac_exeext; then -- ac_cv_func_shl_load=yes --else -- echo "$as_me: failed program was:" >&5 --sed 's/^/| /' conftest.$ac_ext >&5 -- -- ac_cv_func_shl_load=no --fi -- --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; } --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; } --if test "${ac_cv_lib_dld_shl_load+set}" = set; then -- echo $ECHO_N "(cached) $ECHO_C" >&6 --else -- ac_check_lib_save_LIBS=$LIBS --LIBS="-ldld $LIBS" --cat >conftest.$ac_ext <<_ACEOF --/* confdefs.h. */ --_ACEOF --cat confdefs.h >>conftest.$ac_ext --cat >>conftest.$ac_ext <<_ACEOF --/* end confdefs.h. */ -- --/* Override any 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 --char shl_load (); --int --main () --{ --return shl_load (); -- ; -- return 0; --} --_ACEOF --rm -f conftest.$ac_objext conftest$ac_exeext --if { (ac_try="$ac_link" --case "(($ac_try" in -- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; -- *) ac_try_echo=$ac_try;; --esac --eval "echo \"\$as_me:$LINENO: $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); } && { -- test -z "$ac_c_werror_flag" || -- test ! -s conftest.err -- } && test -s conftest$ac_exeext && -- $as_test_x conftest$ac_exeext; then -- ac_cv_lib_dld_shl_load=yes --else -- echo "$as_me: failed program was:" >&5 --sed 's/^/| /' conftest.$ac_ext >&5 -- -- ac_cv_lib_dld_shl_load=no --fi -- --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; } --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; } --if test "${ac_cv_func_dlopen+set}" = set; then -- echo $ECHO_N "(cached) $ECHO_C" >&6 --else -- cat >conftest.$ac_ext <<_ACEOF --/* confdefs.h. */ --_ACEOF --cat confdefs.h >>conftest.$ac_ext --cat >>conftest.$ac_ext <<_ACEOF --/* end confdefs.h. */ --/* Define dlopen to an innocuous variant, in case declares dlopen. -- For example, HP-UX 11i declares gettimeofday. */ --#define dlopen innocuous_dlopen -- --/* System header to define __stub macros and hopefully few prototypes, -- which can conflict with char dlopen (); below. -- Prefer to if __STDC__ is defined, since -- exists even on freestanding compilers. */ -- --#ifdef __STDC__ --# include --#else --# include --#endif -- --#undef dlopen -- --/* Override any 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 --char dlopen (); --/* The GNU C library defines this for functions which it implements -- to always fail with ENOSYS. Some functions are actually named -- something starting with __ and the normal name is an alias. */ --#if defined __stub_dlopen || defined __stub___dlopen --choke me --#endif -- --int --main () --{ --return dlopen (); -- ; -- return 0; --} --_ACEOF --rm -f conftest.$ac_objext conftest$ac_exeext --if { (ac_try="$ac_link" --case "(($ac_try" in -- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; -- *) ac_try_echo=$ac_try;; --esac --eval "echo \"\$as_me:$LINENO: $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); } && { -- test -z "$ac_c_werror_flag" || -- test ! -s conftest.err -- } && test -s conftest$ac_exeext && -- $as_test_x conftest$ac_exeext; then -- ac_cv_func_dlopen=yes --else -- echo "$as_me: failed program was:" >&5 --sed 's/^/| /' conftest.$ac_ext >&5 -- -- ac_cv_func_dlopen=no --fi -- --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; } --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; } --if test "${ac_cv_lib_dl_dlopen+set}" = set; then -- echo $ECHO_N "(cached) $ECHO_C" >&6 --else -- ac_check_lib_save_LIBS=$LIBS --LIBS="-ldl $LIBS" --cat >conftest.$ac_ext <<_ACEOF --/* confdefs.h. */ --_ACEOF --cat confdefs.h >>conftest.$ac_ext --cat >>conftest.$ac_ext <<_ACEOF --/* end confdefs.h. */ -- --/* Override any 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 --char dlopen (); --int --main () --{ --return dlopen (); -- ; -- return 0; --} --_ACEOF --rm -f conftest.$ac_objext conftest$ac_exeext --if { (ac_try="$ac_link" --case "(($ac_try" in -- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; -- *) ac_try_echo=$ac_try;; --esac --eval "echo \"\$as_me:$LINENO: $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); } && { -- test -z "$ac_c_werror_flag" || -- test ! -s conftest.err -- } && test -s conftest$ac_exeext && -- $as_test_x conftest$ac_exeext; then -- ac_cv_lib_dl_dlopen=yes --else -- echo "$as_me: failed program was:" >&5 --sed 's/^/| /' conftest.$ac_ext >&5 -- -- ac_cv_lib_dl_dlopen=no --fi -- --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; } --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; } --if test "${ac_cv_lib_svld_dlopen+set}" = set; then -- echo $ECHO_N "(cached) $ECHO_C" >&6 --else -- ac_check_lib_save_LIBS=$LIBS --LIBS="-lsvld $LIBS" --cat >conftest.$ac_ext <<_ACEOF --/* confdefs.h. */ --_ACEOF --cat confdefs.h >>conftest.$ac_ext --cat >>conftest.$ac_ext <<_ACEOF --/* end confdefs.h. */ -- --/* Override any 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 --char dlopen (); --int --main () --{ --return dlopen (); -- ; -- return 0; --} --_ACEOF --rm -f conftest.$ac_objext conftest$ac_exeext --if { (ac_try="$ac_link" --case "(($ac_try" in -- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; -- *) ac_try_echo=$ac_try;; --esac --eval "echo \"\$as_me:$LINENO: $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); } && { -- test -z "$ac_c_werror_flag" || -- test ! -s conftest.err -- } && test -s conftest$ac_exeext && -- $as_test_x conftest$ac_exeext; then -- ac_cv_lib_svld_dlopen=yes --else -- echo "$as_me: failed program was:" >&5 --sed 's/^/| /' conftest.$ac_ext >&5 -- -- ac_cv_lib_svld_dlopen=no --fi -- --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; } --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; } --if test "${ac_cv_lib_dld_dld_link+set}" = set; then -- echo $ECHO_N "(cached) $ECHO_C" >&6 --else -- ac_check_lib_save_LIBS=$LIBS --LIBS="-ldld $LIBS" --cat >conftest.$ac_ext <<_ACEOF --/* confdefs.h. */ --_ACEOF --cat confdefs.h >>conftest.$ac_ext --cat >>conftest.$ac_ext <<_ACEOF --/* end confdefs.h. */ -- --/* Override any 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 --char dld_link (); --int --main () --{ --return dld_link (); -- ; -- return 0; --} --_ACEOF --rm -f conftest.$ac_objext conftest$ac_exeext --if { (ac_try="$ac_link" --case "(($ac_try" in -- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; -- *) ac_try_echo=$ac_try;; --esac --eval "echo \"\$as_me:$LINENO: $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); } && { -- test -z "$ac_c_werror_flag" || -- test ! -s conftest.err -- } && test -s conftest$ac_exeext && -- $as_test_x conftest$ac_exeext; then -- ac_cv_lib_dld_dld_link=yes --else -- echo "$as_me: failed program was:" >&5 --sed 's/^/| /' conftest.$ac_ext >&5 -- -- ac_cv_lib_dld_dld_link=no --fi -- --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; } --if test $ac_cv_lib_dld_dld_link = yes; then -- lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld" --fi -- -- --fi -- -- --fi -- -- --fi -- -- --fi -- -- --fi -- -- ;; -- esac -- -- if test "x$lt_cv_dlopen" != xno; then -- enable_dlopen=yes -- else -- enable_dlopen=no -- fi -- -- case $lt_cv_dlopen in -- dlopen) -- save_CPPFLAGS="$CPPFLAGS" -- test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" -- -- save_LDFLAGS="$LDFLAGS" -- wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" -- -- 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; } --if test "${lt_cv_dlopen_self+set}" = set; then -- echo $ECHO_N "(cached) $ECHO_C" >&6 --else -- if test "$cross_compiling" = yes; then : -- lt_cv_dlopen_self=cross --else -- lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 -- lt_status=$lt_dlunknown -- cat > conftest.$ac_ext < --#endif -- --#include -- --#ifdef RTLD_GLOBAL --# define LT_DLGLOBAL RTLD_GLOBAL --#else --# ifdef DL_GLOBAL --# define LT_DLGLOBAL DL_GLOBAL --# else --# define LT_DLGLOBAL 0 --# endif --#endif -- --/* We may have to define LT_DLLAZY_OR_NOW in the command line if we -- find out it does not work in some platform. */ --#ifndef LT_DLLAZY_OR_NOW --# ifdef RTLD_LAZY --# define LT_DLLAZY_OR_NOW RTLD_LAZY --# else --# ifdef DL_LAZY --# define LT_DLLAZY_OR_NOW DL_LAZY --# else --# ifdef RTLD_NOW --# define LT_DLLAZY_OR_NOW RTLD_NOW --# else --# ifdef DL_NOW --# define LT_DLLAZY_OR_NOW DL_NOW --# else --# define LT_DLLAZY_OR_NOW 0 --# endif --# endif --# endif --# endif --#endif -- --#ifdef __cplusplus --extern "C" void exit (int); --#endif -- --void fnord() { int i=42;} --int main () --{ -- void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); -- int status = $lt_dlunknown; -- -- if (self) -- { -- if (dlsym (self,"fnord")) status = $lt_dlno_uscore; -- else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; -- /* dlclose (self); */ -- } -- else -- puts (dlerror ()); -- -- exit (status); --} --EOF -- if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 -- (eval $ac_link) 2>&5 -- ac_status=$? -- 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=$? -- case x$lt_status in -- x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;; -- x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;; -- x$lt_dlunknown|x*) lt_cv_dlopen_self=no ;; -- esac -- else : -- # compilation failed -- lt_cv_dlopen_self=no -- fi --fi --rm -fr conftest* -- -- --fi --{ echo "$as_me:$LINENO: result: $lt_cv_dlopen_self" >&5 --echo "${ECHO_T}$lt_cv_dlopen_self" >&6; } -- -- if test "x$lt_cv_dlopen_self" = 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; } --if test "${lt_cv_dlopen_self_static+set}" = set; then -- echo $ECHO_N "(cached) $ECHO_C" >&6 --else -- if test "$cross_compiling" = yes; then : -- lt_cv_dlopen_self_static=cross --else -- lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 -- lt_status=$lt_dlunknown -- cat > conftest.$ac_ext < --#endif -- --#include -- --#ifdef RTLD_GLOBAL --# define LT_DLGLOBAL RTLD_GLOBAL --#else --# ifdef DL_GLOBAL --# define LT_DLGLOBAL DL_GLOBAL --# else --# define LT_DLGLOBAL 0 --# endif --#endif -- --/* We may have to define LT_DLLAZY_OR_NOW in the command line if we -- find out it does not work in some platform. */ --#ifndef LT_DLLAZY_OR_NOW --# ifdef RTLD_LAZY --# define LT_DLLAZY_OR_NOW RTLD_LAZY --# else --# ifdef DL_LAZY --# define LT_DLLAZY_OR_NOW DL_LAZY --# else --# ifdef RTLD_NOW --# define LT_DLLAZY_OR_NOW RTLD_NOW --# else --# ifdef DL_NOW --# define LT_DLLAZY_OR_NOW DL_NOW --# else --# define LT_DLLAZY_OR_NOW 0 --# endif --# endif --# endif --# endif --#endif -- --#ifdef __cplusplus --extern "C" void exit (int); --#endif -- --void fnord() { int i=42;} --int main () --{ -- void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); -- int status = $lt_dlunknown; -- -- if (self) -- { -- if (dlsym (self,"fnord")) status = $lt_dlno_uscore; -- else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; -- /* dlclose (self); */ -- } -- else -- puts (dlerror ()); -- -- exit (status); --} --EOF -- if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 -- (eval $ac_link) 2>&5 -- ac_status=$? -- 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=$? -- case x$lt_status in -- x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;; -- x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;; -- x$lt_dlunknown|x*) lt_cv_dlopen_self_static=no ;; -- esac -- else : -- # compilation failed -- lt_cv_dlopen_self_static=no -- fi --fi --rm -fr conftest* -- -- --fi --{ echo "$as_me:$LINENO: result: $lt_cv_dlopen_self_static" >&5 --echo "${ECHO_T}$lt_cv_dlopen_self_static" >&6; } -- fi -- -- CPPFLAGS="$save_CPPFLAGS" -- LDFLAGS="$save_LDFLAGS" -- LIBS="$save_LIBS" -- ;; -- esac -- -- case $lt_cv_dlopen_self in -- yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; -- *) enable_dlopen_self=unknown ;; -- esac -- -- case $lt_cv_dlopen_self_static in -- yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; -- *) enable_dlopen_self_static=unknown ;; -- esac --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; } -- --{ echo "$as_me:$LINENO: checking whether to build shared libraries" >&5 --echo $ECHO_N "checking whether to build shared libraries... $ECHO_C" >&6; } --test "$can_build_shared" = "no" && enable_shared=no -- --# On AIX, shared libraries and static libraries use the same namespace, and --# are all built from PIC. --case $host_os in --aix3*) -- test "$enable_shared" = yes && enable_static=no -- if test -n "$RANLIB"; then -- archive_cmds="$archive_cmds~\$RANLIB \$lib" -- postinstall_cmds='$RANLIB $lib' -- fi -- ;; -- --aix[4-9]*) -- if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then -- test "$enable_shared" = yes && enable_static=no -- fi -- ;; --esac --{ echo "$as_me:$LINENO: result: $enable_shared" >&5 --echo "${ECHO_T}$enable_shared" >&6; } -- --{ echo "$as_me:$LINENO: checking whether to build static libraries" >&5 --echo $ECHO_N "checking whether to build static libraries... $ECHO_C" >&6; } --# Make sure either enable_shared or enable_static is yes. --test "$enable_shared" = yes || enable_static=yes --{ echo "$as_me:$LINENO: result: $enable_static" >&5 --echo "${ECHO_T}$enable_static" >&6; } -- --# The else clause should only fire when bootstrapping the --# libtool distribution, otherwise you forgot to ship ltmain.sh --# with your package, and you will get complaints that there are --# no rules to generate ltmain.sh. --if test -f "$ltmain"; then -- # See if we are running on zsh, and set the options which allow our commands through -- # without removal of \ escapes. -- if test -n "${ZSH_VERSION+set}" ; then -- setopt NO_GLOB_SUBST -- fi -- # Now quote all the things that may contain metacharacters while being -- # careful not to overquote the AC_SUBSTed values. We take copies of the -- # variables and quote the copies for generation of the libtool script. -- for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \ -- SED SHELL STRIP \ -- libname_spec library_names_spec soname_spec extract_expsyms_cmds \ -- old_striplib striplib file_magic_cmd finish_cmds finish_eval \ -- deplibs_check_method reload_flag reload_cmds need_locks \ -- lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ -- lt_cv_sys_global_symbol_to_c_name_address \ -- sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ -- old_postinstall_cmds old_postuninstall_cmds \ -- compiler \ -- CC \ -- LD \ -- lt_prog_compiler_wl \ -- lt_prog_compiler_pic \ -- lt_prog_compiler_static \ -- lt_prog_compiler_no_builtin_flag \ -- export_dynamic_flag_spec \ -- thread_safe_flag_spec \ -- whole_archive_flag_spec \ -- enable_shared_with_static_runtimes \ -- old_archive_cmds \ -- old_archive_from_new_cmds \ -- predep_objects \ -- postdep_objects \ -- predeps \ -- postdeps \ -- compiler_lib_search_path \ -- compiler_lib_search_dirs \ -- archive_cmds \ -- archive_expsym_cmds \ -- postinstall_cmds \ -- postuninstall_cmds \ -- old_archive_from_expsyms_cmds \ -- allow_undefined_flag \ -- no_undefined_flag \ -- export_symbols_cmds \ -- hardcode_libdir_flag_spec \ -- hardcode_libdir_flag_spec_ld \ -- hardcode_libdir_separator \ -- hardcode_automatic \ -- module_cmds \ -- module_expsym_cmds \ -- lt_cv_prog_compiler_c_o \ -- fix_srcfile_path \ -- exclude_expsyms \ -- include_expsyms; do -- -- case $var in -- old_archive_cmds | \ -- old_archive_from_new_cmds | \ -- archive_cmds | \ -- archive_expsym_cmds | \ -- module_cmds | \ -- module_expsym_cmds | \ -- old_archive_from_expsyms_cmds | \ -- export_symbols_cmds | \ -- extract_expsyms_cmds | reload_cmds | finish_cmds | \ -- postinstall_cmds | postuninstall_cmds | \ -- old_postinstall_cmds | old_postuninstall_cmds | \ -- sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) -- # Double-quote double-evaled strings. -- eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" -- ;; -- *) -- eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" -- ;; -- esac -- done -- -- case $lt_echo in -- *'\$0 --fallback-echo"') -- lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` -- ;; -- esac -- --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;} -- -- cat <<__EOF__ >> "$cfgfile" --#! $SHELL -- --# `$echo "$cfgfile" | sed 's%^.*/%%'` - Provide generalized library-building support services. --# Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP) --# NOTE: Changes made to this file will be lost: look at ltmain.sh. --# --# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 --# Free Software Foundation, Inc. --# --# This file is part of GNU Libtool: --# Originally by Gordon Matzigkeit , 1996 --# --# This program is free software; you can redistribute it and/or modify --# it under the terms of the GNU General Public License as published by --# the Free Software Foundation; either version 2 of the License, or --# (at your option) any later version. --# --# This program is distributed in the hope that it will be useful, but --# WITHOUT ANY WARRANTY; without even the implied warranty of --# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU --# General Public License for more details. --# --# You should have received a copy of the GNU General Public License --# along with this program; if not, write to the Free Software --# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. --# --# As a special exception to the GNU General Public License, if you --# distribute this file as part of a program that contains a --# configuration script generated by Autoconf, you may include it under --# the same distribution terms that you use for the rest of that program. -- --# A sed program that does not truncate output. --SED=$lt_SED -- --# Sed that helps us avoid accidentally triggering echo(1) options like -n. --Xsed="$SED -e 1s/^X//" -- --# The HP-UX ksh and POSIX shell print the target directory to stdout --# if CDPATH is set. --(unset CDPATH) >/dev/null 2>&1 && unset CDPATH -- --# The names of the tagged configurations supported by this script. --available_tags= -- --# ### BEGIN LIBTOOL CONFIG -- --# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: -- --# Shell to use when invoking shell scripts. --SHELL=$lt_SHELL -- --# Whether or not to build shared libraries. --build_libtool_libs=$enable_shared -- --# Whether or not to build static libraries. --build_old_libs=$enable_static -- --# Whether or not to add -lc for building shared libraries. --build_libtool_need_lc=$archive_cmds_need_lc -- --# Whether or not to disallow shared libs when runtime libs are static --allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes -- --# Whether or not to optimize for fast installation. --fast_install=$enable_fast_install -- --# The host system. --host_alias=$host_alias --host=$host --host_os=$host_os -- --# The build system. --build_alias=$build_alias --build=$build --build_os=$build_os -- --# An echo program that does not interpret backslashes. --echo=$lt_echo -- --# The archiver. --AR=$lt_AR --AR_FLAGS=$lt_AR_FLAGS -- --# A C compiler. --LTCC=$lt_LTCC -- --# LTCC compiler flags. --LTCFLAGS=$lt_LTCFLAGS -- --# A language-specific compiler. --CC=$lt_compiler -- --# Is the compiler the GNU C compiler? --with_gcc=$GCC -- --# An ERE matcher. --EGREP=$lt_EGREP -- --# The linker used to build libraries. --LD=$lt_LD -- --# Whether we need hard or soft links. --LN_S=$lt_LN_S -- --# A BSD-compatible nm program. --NM=$lt_NM -- --# A symbol stripping program --STRIP=$lt_STRIP -- --# Used to examine libraries when file_magic_cmd begins "file" --MAGIC_CMD=$MAGIC_CMD -- --# Used on cygwin: DLL creation program. --DLLTOOL="$DLLTOOL" -- --# Used on cygwin: object dumper. --OBJDUMP="$OBJDUMP" -- --# Used on cygwin: assembler. --AS="$AS" -- --# The name of the directory that contains temporary libtool files. --objdir=$objdir -- --# How to create reloadable object files. --reload_flag=$lt_reload_flag --reload_cmds=$lt_reload_cmds -- --# How to pass a linker flag through the compiler. --wl=$lt_lt_prog_compiler_wl -- --# Object file suffix (normally "o"). --objext="$ac_objext" -- --# Old archive suffix (normally "a"). --libext="$libext" -- --# Shared library suffix (normally ".so"). --shrext_cmds='$shrext_cmds' -- --# Executable file suffix (normally ""). --exeext="$exeext" -- --# Additional compiler flags for building library objects. --pic_flag=$lt_lt_prog_compiler_pic --pic_mode=$pic_mode -- --# What is the maximum length of a command? --max_cmd_len=$lt_cv_sys_max_cmd_len -- --# Does compiler simultaneously support -c and -o options? --compiler_c_o=$lt_lt_cv_prog_compiler_c_o -- --# Must we lock files when doing compilation? --need_locks=$lt_need_locks -- --# Do we need the lib prefix for modules? --need_lib_prefix=$need_lib_prefix -- --# Do we need a version for libraries? --need_version=$need_version -- --# Whether dlopen is supported. --dlopen_support=$enable_dlopen -- --# Whether dlopen of programs is supported. --dlopen_self=$enable_dlopen_self -- --# Whether dlopen of statically linked programs is supported. --dlopen_self_static=$enable_dlopen_self_static -- --# Compiler flag to prevent dynamic linking. --link_static_flag=$lt_lt_prog_compiler_static -- --# Compiler flag to turn off builtin functions. --no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag -- --# Compiler flag to allow reflexive dlopens. --export_dynamic_flag_spec=$lt_export_dynamic_flag_spec -- --# Compiler flag to generate shared objects directly from archives. --whole_archive_flag_spec=$lt_whole_archive_flag_spec -- --# Compiler flag to generate thread-safe objects. --thread_safe_flag_spec=$lt_thread_safe_flag_spec -- --# Library versioning type. --version_type=$version_type -- --# Format of library name prefix. --libname_spec=$lt_libname_spec -- --# List of archive names. First name is the real one, the rest are links. --# The last name is the one that the linker finds with -lNAME. --library_names_spec=$lt_library_names_spec -- --# The coded name of the library, if different from the real name. --soname_spec=$lt_soname_spec -- --# Commands used to build and install an old-style archive. --RANLIB=$lt_RANLIB --old_archive_cmds=$lt_old_archive_cmds --old_postinstall_cmds=$lt_old_postinstall_cmds --old_postuninstall_cmds=$lt_old_postuninstall_cmds -- --# Create an old-style archive from a shared archive. --old_archive_from_new_cmds=$lt_old_archive_from_new_cmds -- --# Create a temporary old-style archive to link instead of a shared archive. --old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds -- --# Commands used to build and install a shared archive. --archive_cmds=$lt_archive_cmds --archive_expsym_cmds=$lt_archive_expsym_cmds --postinstall_cmds=$lt_postinstall_cmds --postuninstall_cmds=$lt_postuninstall_cmds -- --# Commands used to build a loadable module (assumed same as above if empty) --module_cmds=$lt_module_cmds --module_expsym_cmds=$lt_module_expsym_cmds -- --# Commands to strip libraries. --old_striplib=$lt_old_striplib --striplib=$lt_striplib -- --# Dependencies to place before the objects being linked to create a --# shared library. --predep_objects=$lt_predep_objects -- --# Dependencies to place after the objects being linked to create a --# shared library. --postdep_objects=$lt_postdep_objects -- --# Dependencies to place before the objects being linked to create a --# shared library. --predeps=$lt_predeps -- --# Dependencies to place after the objects being linked to create a --# shared library. --postdeps=$lt_postdeps -- --# The directories searched by this compiler when creating a shared --# library --compiler_lib_search_dirs=$lt_compiler_lib_search_dirs -- --# The library search path used internally by the compiler when linking --# a shared library. --compiler_lib_search_path=$lt_compiler_lib_search_path -- --# Method to check whether dependent libraries are shared objects. --deplibs_check_method=$lt_deplibs_check_method -- --# Command to use when deplibs_check_method == file_magic. --file_magic_cmd=$lt_file_magic_cmd -- --# Flag that allows shared libraries with undefined symbols to be built. --allow_undefined_flag=$lt_allow_undefined_flag -- --# Flag that forces no undefined symbols. --no_undefined_flag=$lt_no_undefined_flag -- --# Commands used to finish a libtool library installation in a directory. --finish_cmds=$lt_finish_cmds -- --# Same as above, but a single script fragment to be evaled but not shown. --finish_eval=$lt_finish_eval -- --# Take the output of nm and produce a listing of raw symbols and C names. --global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe -- --# Transform the output of nm in a proper C declaration --global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl -- --# Transform the output of nm in a C name address pair --global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address -- --# This is the shared library runtime path variable. --runpath_var=$runpath_var -- --# This is the shared library path variable. --shlibpath_var=$shlibpath_var -- --# Is shlibpath searched before the hard-coded library search path? --shlibpath_overrides_runpath=$shlibpath_overrides_runpath -- --# How to hardcode a shared library path into an executable. --hardcode_action=$hardcode_action -- --# Whether we should hardcode library paths into libraries. --hardcode_into_libs=$hardcode_into_libs -- --# Flag to hardcode \$libdir into a binary during linking. --# This must work even if \$libdir does not exist. --hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec -- --# If ld is used when linking, flag to hardcode \$libdir into --# a binary during linking. This must work even if \$libdir does --# not exist. --hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld -- --# Whether we need a single -rpath flag with a separated argument. --hardcode_libdir_separator=$lt_hardcode_libdir_separator -- --# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the --# resulting binary. --hardcode_direct=$hardcode_direct -- --# Set to yes if using the -LDIR flag during linking hardcodes DIR into the --# resulting binary. --hardcode_minus_L=$hardcode_minus_L -- --# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into --# the resulting binary. --hardcode_shlibpath_var=$hardcode_shlibpath_var -- --# Set to yes if building a shared library automatically hardcodes DIR into the library --# and all subsequent libraries and executables linked against it. --hardcode_automatic=$hardcode_automatic -- --# Variables whose values should be saved in libtool wrapper scripts and --# restored at relink time. --variables_saved_for_relink="$variables_saved_for_relink" -- --# Whether libtool must link a program against all its dependency libraries. --link_all_deplibs=$link_all_deplibs -- --# Compile-time system search path for libraries --sys_lib_search_path_spec=$lt_sys_lib_search_path_spec -- --# Run-time system search path for libraries --sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec -- --# Fix the shell variable \$srcfile for the compiler. --fix_srcfile_path=$lt_fix_srcfile_path -- --# Set to yes if exported symbols are required. --always_export_symbols=$always_export_symbols -- --# The commands to list exported symbols. --export_symbols_cmds=$lt_export_symbols_cmds -- --# The commands to extract the exported symbol list from a shared archive. --extract_expsyms_cmds=$lt_extract_expsyms_cmds -- --# Symbols that should not be listed in the preloaded symbols. --exclude_expsyms=$lt_exclude_expsyms -- --# Symbols that must always be exported. --include_expsyms=$lt_include_expsyms -- --# ### END LIBTOOL CONFIG -- --__EOF__ -- -- -- case $host_os in -- aix3*) -- cat <<\EOF >> "$cfgfile" -- --# AIX sometimes has problems with the GCC collect2 program. For some --# reason, if we set the COLLECT_NAMES environment variable, the problems --# vanish in a puff of smoke. --if test "X${COLLECT_NAMES+set}" != Xset; then -- COLLECT_NAMES= -- export COLLECT_NAMES --fi --EOF -- ;; -- esac -- -- # We use sed instead of cat because bash on DJGPP gets confused if -- # if finds mixed CR/LF and LF-only lines. Since sed operates in -- # text mode, it properly converts lines to CR/LF. This bash problem -- # is reportedly fixed, but why not run on old versions too? -- sed '$q' "$ltmain" >> "$cfgfile" || (rm -f "$cfgfile"; exit 1) -- -- mv -f "$cfgfile" "$ofile" || \ -- (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") -- chmod +x "$ofile" -- --else -- # If there is no Makefile yet, we rely on a make rule to execute -- # `config.status --recheck' to rerun these tests and create the -- # libtool script then. -- ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` -- if test -f "$ltmain_in"; then -- test -f Makefile && make "$ltmain" -- fi --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 -- --CC="$lt_save_CC" -- -- --# Check whether --with-tags was given. --if test "${with_tags+set}" = set; then -- 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;} -- 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;} -- else -- { echo "$as_me:$LINENO: WARNING: using \`LTCC=$LTCC', extracted from \`$ofile'" >&5 --echo "$as_me: WARNING: using \`LTCC=$LTCC', extracted from \`$ofile'" >&2;} -- fi -- fi -- if test -z "$LTCFLAGS"; then -- eval "`$SHELL ${ofile} --config | grep '^LTCFLAGS='`" -- fi -- -- # Extract list of available tagged configurations in $ofile. -- # Note that this assumes the entire list is on one line. -- available_tags=`grep "^available_tags=" "${ofile}" | $SED -e 's/available_tags=\(.*$\)/\1/' -e 's/\"//g'` -- -- lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," -- for tagname in $tagnames; do -- IFS="$lt_save_ifs" -- # 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;} -- { (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;} -- { (exit 1); exit 1; }; } -- fi -- -- # Update the list of available tags. -- if test -n "$tagname"; then -- echo appending configuration tag \"$tagname\" to $ofile -- -- case $tagname in -- CXX) -- 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=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 -- -- -- -- --archive_cmds_need_lc_CXX=no --allow_undefined_flag_CXX= --always_export_symbols_CXX=no --archive_expsym_cmds_CXX= --export_dynamic_flag_spec_CXX= --hardcode_direct_CXX=no --hardcode_libdir_flag_spec_CXX= --hardcode_libdir_flag_spec_ld_CXX= --hardcode_libdir_separator_CXX= --hardcode_minus_L_CXX=no --hardcode_shlibpath_var_CXX=unsupported --hardcode_automatic_CXX=no --module_cmds_CXX= --module_expsym_cmds_CXX= --link_all_deplibs_CXX=unknown --old_archive_cmds_CXX=$old_archive_cmds --no_undefined_flag_CXX= --whole_archive_flag_spec_CXX= --enable_shared_with_static_runtimes_CXX=no -- --# Dependencies to place before and after the object being linked: --predep_objects_CXX= --postdep_objects_CXX= --predeps_CXX= --postdeps_CXX= --compiler_lib_search_path_CXX= --compiler_lib_search_dirs_CXX= -- --# Source file extension for C++ test sources. --ac_ext=cpp -- --# Object file extension for compiled C++ test sources. --objext=o --objext_CXX=$objext -- --# Code to be used in simple compile tests --lt_simple_compile_test_code="int some_variable = 0;" -- --# Code to be used in simple link tests --lt_simple_link_test_code='int main(int, char *[]) { return(0); }' -- --# ltmain only uses $CC for tagged configurations so make sure $CC is set. -- --# If no C compiler was specified, use CC. --LTCC=${LTCC-"$CC"} -- --# If no C compiler flags were specified, use CFLAGS. --LTCFLAGS=${LTCFLAGS-"$CFLAGS"} -- --# Allow CC to be a program name with arguments. --compiler=$CC -- -- --# save warnings/boilerplate of simple test code --ac_outfile=conftest.$ac_objext --echo "$lt_simple_compile_test_code" >conftest.$ac_ext --eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err --_lt_compiler_boilerplate=`cat conftest.err` --$rm conftest* -- --ac_outfile=conftest.$ac_objext --echo "$lt_simple_link_test_code" >conftest.$ac_ext --eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err --_lt_linker_boilerplate=`cat conftest.err` --$rm -r conftest* -- -- --# Allow CC to be a program name with arguments. --lt_save_CC=$CC --lt_save_LD=$LD --lt_save_GCC=$GCC --GCC=$GXX --lt_save_with_gnu_ld=$with_gnu_ld --lt_save_path_LD=$lt_cv_path_LD --if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then -- lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx --else -- $as_unset lt_cv_prog_gnu_ld --fi --if test -n "${lt_cv_path_LDCXX+set}"; then -- lt_cv_path_LD=$lt_cv_path_LDCXX --else -- $as_unset lt_cv_path_LD --fi --test -z "${LDCXX+set}" || LD=$LDCXX --CC=${CXX-"c++"} --compiler=$CC --compiler_CXX=$CC --for cc_temp in $compiler""; do -- case $cc_temp in -- compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; -- distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; -- \-*) ;; -- *) break;; -- esac --done --cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` -- -- --# We don't want -fno-exception wen compiling C++ code, so set the --# no_builtin_flag separately --if test "$GXX" = yes; then -- lt_prog_compiler_no_builtin_flag_CXX=' -fno-builtin' --else -- lt_prog_compiler_no_builtin_flag_CXX= --fi -- --if test "$GXX" = yes; then -- # Set up default GNU C++ configuration -- -- --# 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 --else -- with_gnu_ld=no --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; } -- case $host in -- *-*-mingw*) -- # gcc leaves a trailing carriage return which upsets mingw -- ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; -- *) -- ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; -- esac -- case $ac_prog in -- # Accept absolute paths. -- [\\/]* | ?:[\\/]*) -- re_direlt='/[^/][^/]*/\.\./' -- # Canonicalize the pathname of ld -- ac_prog=`echo $ac_prog| $SED 's%\\\\%/%g'` -- while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do -- ac_prog=`echo $ac_prog| $SED "s%$re_direlt%/%"` -- done -- test -z "$LD" && LD="$ac_prog" -- ;; -- "") -- # If it fails, then pretend we aren't using GCC. -- ac_prog=ld -- ;; -- *) -- # If it is relative, then search for the first ld in PATH. -- with_gnu_ld=unknown -- ;; -- 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; } --else -- { echo "$as_me:$LINENO: checking for non-GNU ld" >&5 --echo $ECHO_N "checking for non-GNU ld... $ECHO_C" >&6; } --fi --if test "${lt_cv_path_LD+set}" = set; then -- echo $ECHO_N "(cached) $ECHO_C" >&6 --else -- if test -z "$LD"; then -- lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR -- for ac_dir in $PATH; do -- IFS="$lt_save_ifs" -- test -z "$ac_dir" && ac_dir=. -- if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then -- lt_cv_path_LD="$ac_dir/$ac_prog" -- # Check to see if the program is GNU ld. I'd rather use --version, -- # but apparently some variants of GNU ld only accept -v. -- # Break only if it was the GNU/non-GNU ld that we prefer. -- case `"$lt_cv_path_LD" -v 2>&1 &5 --echo "${ECHO_T}$LD" >&6; } --else -- { echo "$as_me:$LINENO: result: no" >&5 --echo "${ECHO_T}no" >&6; } --fi --test -z "$LD" && { { echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5 --echo "$as_me: error: no acceptable ld found in \$PATH" >&2;} -- { (exit 1); exit 1; }; } --{ echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5 --echo $ECHO_N "checking if the linker ($LD) is GNU ld... $ECHO_C" >&6; } --if test "${lt_cv_prog_gnu_ld+set}" = set; then -- echo $ECHO_N "(cached) $ECHO_C" >&6 --else -- # I'd rather use --version here, but apparently some GNU lds only accept -v. --case `$LD -v 2>&1 &5 --echo "${ECHO_T}$lt_cv_prog_gnu_ld" >&6; } --with_gnu_ld=$lt_cv_prog_gnu_ld -- -- -- -- # Check if GNU C++ uses GNU ld as the underlying linker, since the -- # archiving commands below assume that GNU ld is being used. -- if test "$with_gnu_ld" = yes; then -- archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' -- archive_expsym_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' -- -- hardcode_libdir_flag_spec_CXX='${wl}--rpath ${wl}$libdir' -- export_dynamic_flag_spec_CXX='${wl}--export-dynamic' -- -- # If archive_cmds runs LD, not CC, wlarc should be empty -- # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to -- # investigate it a little bit more. (MM) -- wlarc='${wl}' -- -- # ancient GNU ld didn't support --whole-archive et. al. -- if eval "`$CC -print-prog-name=ld` --help 2>&1" | \ -- grep 'no-whole-archive' > /dev/null; then -- whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' -- else -- whole_archive_flag_spec_CXX= -- fi -- else -- with_gnu_ld=no -- wlarc= -- -- # A generic and very simple default shared library creation -- # command for GNU C++ for the case where it uses the native -- # linker, instead of GNU ld. If possible, this setting should -- # overridden to take advantage of the native linker features on -- # the platform it is being used on. -- archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' -- fi -- -- # Commands to make compiler produce verbose output that lists -- # what "hidden" libraries, object files and flags are used when -- # linking a shared library. -- output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"' -- --else -- GXX=no -- with_gnu_ld=no -- wlarc= --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; } --ld_shlibs_CXX=yes --case $host_os in -- aix3*) -- # FIXME: insert proper C++ library support -- ld_shlibs_CXX=no -- ;; -- aix[4-9]*) -- if test "$host_cpu" = ia64; then -- # On IA64, the linker does run time linking by default, so we don't -- # have to do anything special. -- aix_use_runtimelinking=no -- exp_sym_flag='-Bexport' -- no_entry_flag="" -- else -- aix_use_runtimelinking=no -- -- # Test if we are trying to use run time linking or normal -- # AIX style linking. If -brtl is somewhere in LDFLAGS, we -- # need to do runtime linking. -- case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) -- for ld_flag in $LDFLAGS; do -- case $ld_flag in -- *-brtl*) -- aix_use_runtimelinking=yes -- break -- ;; -- esac -- done -- ;; -- esac -- -- exp_sym_flag='-bexport' -- no_entry_flag='-bnoentry' -- fi -- -- # When large executables or shared objects are built, AIX ld can -- # have problems creating the table of contents. If linking a library -- # or program results in "error TOC overflow" add -mminimal-toc to -- # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not -- # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. -- -- archive_cmds_CXX='' -- hardcode_direct_CXX=yes -- hardcode_libdir_separator_CXX=':' -- link_all_deplibs_CXX=yes -- -- if test "$GXX" = yes; then -- case $host_os in aix4.[012]|aix4.[012].*) -- # We only want to do this on AIX 4.2 and lower, the check -- # below for broken collect2 doesn't work under 4.3+ -- collect2name=`${CC} -print-prog-name=collect2` -- if test -f "$collect2name" && \ -- strings "$collect2name" | grep resolve_lib_name >/dev/null -- then -- # We have reworked collect2 -- : -- else -- # We have old collect2 -- hardcode_direct_CXX=unsupported -- # It fails to find uninstalled libraries when the uninstalled -- # path is not listed in the libpath. Setting hardcode_minus_L -- # to unsupported forces relinking -- hardcode_minus_L_CXX=yes -- hardcode_libdir_flag_spec_CXX='-L$libdir' -- hardcode_libdir_separator_CXX= -- fi -- ;; -- esac -- shared_flag='-shared' -- if test "$aix_use_runtimelinking" = yes; then -- shared_flag="$shared_flag "'${wl}-G' -- fi -- else -- # not using gcc -- if test "$host_cpu" = ia64; then -- # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release -- # chokes on -Wl,-G. The following line is correct: -- shared_flag='-G' -- else -- if test "$aix_use_runtimelinking" = yes; then -- shared_flag='${wl}-G' -- else -- shared_flag='${wl}-bM:SRE' -- fi -- fi -- fi -- -- # It seems that -bexpall does not export symbols beginning with -- # underscore (_), so it is better to generate a list of symbols to export. -- always_export_symbols_CXX=yes -- if test "$aix_use_runtimelinking" = yes; then -- # Warning - without using the other runtime loading flags (-brtl), -- # -berok will link without error, but may produce a broken library. -- allow_undefined_flag_CXX='-berok' -- # Determine the default libpath from the value encoded in an empty executable. -- cat >conftest.$ac_ext <<_ACEOF --/* confdefs.h. */ --_ACEOF --cat confdefs.h >>conftest.$ac_ext --cat >>conftest.$ac_ext <<_ACEOF --/* end confdefs.h. */ -- --int --main () --{ -- -- ; -- return 0; --} --_ACEOF --rm -f conftest.$ac_objext conftest$ac_exeext --if { (ac_try="$ac_link" --case "(($ac_try" in -- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; -- *) ac_try_echo=$ac_try;; --esac --eval "echo \"\$as_me:$LINENO: $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); } && { -- test -z "$ac_cxx_werror_flag" || -- test ! -s conftest.err -- } && test -s conftest$ac_exeext && -- $as_test_x conftest$ac_exeext; then -- --lt_aix_libpath_sed=' -- /Import File Strings/,/^$/ { -- /^0/ { -- s/^0 *\(.*\)$/\1/ -- p -- } -- }' --aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` --# Check for a 64-bit object if we didn't find anything. --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 --sed 's/^/| /' conftest.$ac_ext >&5 -- -- --fi -- --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 -- -- hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath" -- -- archive_expsym_cmds_CXX="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" -- else -- if test "$host_cpu" = ia64; then -- hardcode_libdir_flag_spec_CXX='${wl}-R $libdir:/usr/lib:/lib' -- allow_undefined_flag_CXX="-z nodefs" -- archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" -- else -- # Determine the default libpath from the value encoded in an empty executable. -- cat >conftest.$ac_ext <<_ACEOF --/* confdefs.h. */ --_ACEOF --cat confdefs.h >>conftest.$ac_ext --cat >>conftest.$ac_ext <<_ACEOF --/* end confdefs.h. */ -- --int --main () --{ -- -- ; -- return 0; --} --_ACEOF --rm -f conftest.$ac_objext conftest$ac_exeext --if { (ac_try="$ac_link" --case "(($ac_try" in -- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; -- *) ac_try_echo=$ac_try;; --esac --eval "echo \"\$as_me:$LINENO: $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); } && { -- test -z "$ac_cxx_werror_flag" || -- test ! -s conftest.err -- } && test -s conftest$ac_exeext && -- $as_test_x conftest$ac_exeext; then -- --lt_aix_libpath_sed=' -- /Import File Strings/,/^$/ { -- /^0/ { -- s/^0 *\(.*\)$/\1/ -- p -- } -- }' --aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` --# Check for a 64-bit object if we didn't find anything. --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 --sed 's/^/| /' conftest.$ac_ext >&5 -- -- --fi -- --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 -- -- hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath" -- # Warning - without using the other run time loading flags, -- # -berok will link without error, but may produce a broken library. -- no_undefined_flag_CXX=' ${wl}-bernotok' -- allow_undefined_flag_CXX=' ${wl}-berok' -- # Exported symbols can be pulled into shared objects from archives -- whole_archive_flag_spec_CXX='$convenience' -- archive_cmds_need_lc_CXX=yes -- # This is similar to how AIX traditionally builds its shared libraries. -- archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' -- fi -- fi -- ;; -- -- beos*) -- if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then -- allow_undefined_flag_CXX=unsupported -- # Joseph Beckenbach says some releases of gcc -- # support --undefined. This deserves some investigation. FIXME -- archive_cmds_CXX='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -- else -- ld_shlibs_CXX=no -- fi -- ;; -- -- chorus*) -- case $cc_basename in -- *) -- # FIXME: insert proper C++ library support -- ld_shlibs_CXX=no -- ;; -- esac -- ;; -- -- cygwin* | mingw* | pw32*) -- # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, CXX) is actually meaningless, -- # as there is no search path for DLLs. -- hardcode_libdir_flag_spec_CXX='-L$libdir' -- allow_undefined_flag_CXX=unsupported -- always_export_symbols_CXX=no -- enable_shared_with_static_runtimes_CXX=yes -- -- if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then -- archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' -- # If the export-symbols file already is a .def file (1st line -- # is EXPORTS), use it as is; otherwise, prepend... -- archive_expsym_cmds_CXX='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then -- cp $export_symbols $output_objdir/$soname.def; -- else -- echo EXPORTS > $output_objdir/$soname.def; -- cat $export_symbols >> $output_objdir/$soname.def; -- fi~ -- $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' -- else -- ld_shlibs_CXX=no -- fi -- ;; -- darwin* | rhapsody*) -- archive_cmds_need_lc_CXX=no -- hardcode_direct_CXX=no -- hardcode_automatic_CXX=yes -- hardcode_shlibpath_var_CXX=unsupported -- whole_archive_flag_spec_CXX='' -- link_all_deplibs_CXX=yes -- allow_undefined_flag_CXX="$_lt_dar_allow_undefined" -- if test "$GXX" = yes ; then -- output_verbose_link_cmd='echo' -- archive_cmds_CXX="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" -- module_cmds_CXX="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" -- archive_expsym_cmds_CXX="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" -- module_expsym_cmds_CXX="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" -- if test "$lt_cv_apple_cc_single_mod" != "yes"; then -- archive_cmds_CXX="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}" -- archive_expsym_cmds_CXX="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dar_export_syms}${_lt_dsymutil}" -- fi -- else -- case $cc_basename in -- xlc*) -- output_verbose_link_cmd='echo' -- archive_cmds_CXX='$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $xlcverstring' -- module_cmds_CXX='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' -- # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds -- archive_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $xlcverstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' -- module_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' -- ;; -- *) -- ld_shlibs_CXX=no -- ;; -- esac -- fi -- ;; -- -- dgux*) -- case $cc_basename in -- ec++*) -- # FIXME: insert proper C++ library support -- ld_shlibs_CXX=no -- ;; -- ghcx*) -- # Green Hills C++ Compiler -- # FIXME: insert proper C++ library support -- ld_shlibs_CXX=no -- ;; -- *) -- # FIXME: insert proper C++ library support -- ld_shlibs_CXX=no -- ;; -- esac -- ;; -- freebsd[12]*) -- # C++ shared libraries reported to be fairly broken before switch to ELF -- ld_shlibs_CXX=no -- ;; -- freebsd-elf*) -- archive_cmds_need_lc_CXX=no -- ;; -- freebsd* | dragonfly*) -- # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF -- # conventions -- ld_shlibs_CXX=yes -- ;; -- gnu*) -- ;; -- hpux9*) -- hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir' -- hardcode_libdir_separator_CXX=: -- export_dynamic_flag_spec_CXX='${wl}-E' -- hardcode_direct_CXX=yes -- hardcode_minus_L_CXX=yes # Not in the search PATH, -- # but as the default -- # location of the library. -- -- case $cc_basename in -- CC*) -- # FIXME: insert proper C++ library support -- ld_shlibs_CXX=no -- ;; -- aCC*) -- archive_cmds_CXX='$rm $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' -- # Commands to make compiler produce verbose output that lists -- # what "hidden" libraries, object files and flags are used when -- # linking a shared library. -- # -- # There doesn't appear to be a way to prevent this compiler from -- # explicitly linking system object files so we need to strip them -- # from the output so that they don't get included in the library -- # dependencies. -- output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | grep "[-]L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' -- ;; -- *) -- if test "$GXX" = yes; then -- archive_cmds_CXX='$rm $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' -- else -- # FIXME: insert proper C++ library support -- ld_shlibs_CXX=no -- fi -- ;; -- esac -- ;; -- hpux10*|hpux11*) -- if test $with_gnu_ld = no; then -- hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir' -- hardcode_libdir_separator_CXX=: -- -- case $host_cpu in -- hppa*64*|ia64*) ;; -- *) -- export_dynamic_flag_spec_CXX='${wl}-E' -- ;; -- esac -- fi -- case $host_cpu in -- hppa*64*|ia64*) -- hardcode_direct_CXX=no -- hardcode_shlibpath_var_CXX=no -- ;; -- *) -- hardcode_direct_CXX=yes -- hardcode_minus_L_CXX=yes # Not in the search PATH, -- # but as the default -- # location of the library. -- ;; -- esac -- -- case $cc_basename in -- CC*) -- # FIXME: insert proper C++ library support -- ld_shlibs_CXX=no -- ;; -- aCC*) -- case $host_cpu in -- hppa*64*) -- archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' -- ;; -- ia64*) -- archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' -- ;; -- *) -- archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' -- ;; -- esac -- # Commands to make compiler produce verbose output that lists -- # what "hidden" libraries, object files and flags are used when -- # linking a shared library. -- # -- # There doesn't appear to be a way to prevent this compiler from -- # explicitly linking system object files so we need to strip them -- # from the output so that they don't get included in the library -- # dependencies. -- output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | grep "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' -- ;; -- *) -- if test "$GXX" = yes; then -- if test $with_gnu_ld = no; then -- case $host_cpu in -- hppa*64*) -- archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' -- ;; -- ia64*) -- archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' -- ;; -- *) -- archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' -- ;; -- esac -- fi -- else -- # FIXME: insert proper C++ library support -- ld_shlibs_CXX=no -- fi -- ;; -- esac -- ;; -- interix[3-9]*) -- hardcode_direct_CXX=no -- hardcode_shlibpath_var_CXX=no -- hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' -- export_dynamic_flag_spec_CXX='${wl}-E' -- # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. -- # Instead, shared libraries are loaded at an image base (0x10000000 by -- # default) and relocated if they conflict, which is a slow very memory -- # consuming and fragmenting process. To avoid this, we pick a random, -- # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link -- # time. Moving up from 0x10000000 also allows more sbrk(2) space. -- archive_cmds_CXX='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' -- archive_expsym_cmds_CXX='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' -- ;; -- irix5* | irix6*) -- case $cc_basename in -- CC*) -- # SGI C++ -- archive_cmds_CXX='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' -- -- # Archives containing C++ object files must be created using -- # "CC -ar", where "CC" is the IRIX C++ compiler. This is -- # necessary to make sure instantiated templates are included -- # in the archive. -- old_archive_cmds_CXX='$CC -ar -WR,-u -o $oldlib $oldobjs' -- ;; -- *) -- if test "$GXX" = yes; then -- if test "$with_gnu_ld" = no; then -- archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' -- else -- archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` -o $lib' -- fi -- fi -- link_all_deplibs_CXX=yes -- ;; -- esac -- hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' -- hardcode_libdir_separator_CXX=: -- ;; -- linux* | k*bsd*-gnu) -- case $cc_basename in -- KCC*) -- # Kuck and Associates, Inc. (KAI) C++ Compiler -- -- # KCC will only create a shared library if the output file -- # ends with ".so" (or ".sl" for HP-UX), so rename the library -- # to its proper name (with version) after linking. -- archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' -- archive_expsym_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib' -- # Commands to make compiler produce verbose output that lists -- # what "hidden" libraries, object files and flags are used when -- # linking a shared library. -- # -- # There doesn't appear to be a way to prevent this compiler from -- # explicitly linking system object files so we need to strip them -- # from the output so that they don't get included in the library -- # dependencies. -- output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | grep "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' -- -- hardcode_libdir_flag_spec_CXX='${wl}--rpath,$libdir' -- export_dynamic_flag_spec_CXX='${wl}--export-dynamic' -- -- # Archives containing C++ object files must be created using -- # "CC -Bstatic", where "CC" is the KAI C++ compiler. -- old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs' -- ;; -- icpc*) -- # Intel C++ -- with_gnu_ld=yes -- # version 8.0 and above of icpc choke on multiply defined symbols -- # if we add $predep_objects and $postdep_objects, however 7.1 and -- # earlier do not add the objects themselves. -- case `$CC -V 2>&1` in -- *"Version 7."*) -- archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' -- archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' -- ;; -- *) # Version 8.0 or newer -- tmp_idyn= -- case $host_cpu in -- ia64*) tmp_idyn=' -i_dynamic';; -- esac -- archive_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -- archive_expsym_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' -- ;; -- esac -- archive_cmds_need_lc_CXX=no -- hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' -- export_dynamic_flag_spec_CXX='${wl}--export-dynamic' -- whole_archive_flag_spec_CXX='${wl}--whole-archive$convenience ${wl}--no-whole-archive' -- ;; -- pgCC* | pgcpp*) -- # Portland Group C++ compiler -- archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' -- archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' -- -- hardcode_libdir_flag_spec_CXX='${wl}--rpath ${wl}$libdir' -- export_dynamic_flag_spec_CXX='${wl}--export-dynamic' -- whole_archive_flag_spec_CXX='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' -- ;; -- cxx*) -- # Compaq C++ -- archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' -- archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols' -- -- runpath_var=LD_RUN_PATH -- hardcode_libdir_flag_spec_CXX='-rpath $libdir' -- hardcode_libdir_separator_CXX=: -- -- # Commands to make compiler produce verbose output that lists -- # what "hidden" libraries, object files and flags are used when -- # linking a shared library. -- # -- # There doesn't appear to be a way to prevent this compiler from -- # explicitly linking system object files so we need to strip them -- # from the output so that they don't get included in the library -- # dependencies. -- output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' -- ;; -- *) -- case `$CC -V 2>&1 | sed 5q` in -- *Sun\ C*) -- # Sun C++ 5.9 -- no_undefined_flag_CXX=' -zdefs' -- archive_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' -- archive_expsym_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols' -- hardcode_libdir_flag_spec_CXX='-R$libdir' -- whole_archive_flag_spec_CXX='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' -- -- # Not sure whether something based on -- # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 -- # would be better. -- output_verbose_link_cmd='echo' -- -- # Archives containing C++ object files must be created using -- # "CC -xar", where "CC" is the Sun C++ compiler. This is -- # necessary to make sure instantiated templates are included -- # in the archive. -- old_archive_cmds_CXX='$CC -xar -o $oldlib $oldobjs' -- ;; -- esac -- ;; -- esac -- ;; -- lynxos*) -- # FIXME: insert proper C++ library support -- ld_shlibs_CXX=no -- ;; -- m88k*) -- # FIXME: insert proper C++ library support -- ld_shlibs_CXX=no -- ;; -- mvs*) -- case $cc_basename in -- cxx*) -- # FIXME: insert proper C++ library support -- ld_shlibs_CXX=no -- ;; -- *) -- # FIXME: insert proper C++ library support -- ld_shlibs_CXX=no -- ;; -- esac -- ;; -- netbsd* | netbsdelf*-gnu) -- if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then -- archive_cmds_CXX='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' -- wlarc= -- hardcode_libdir_flag_spec_CXX='-R$libdir' -- hardcode_direct_CXX=yes -- hardcode_shlibpath_var_CXX=no -- fi -- # Workaround some broken pre-1.5 toolchains -- output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"' -- ;; -- openbsd2*) -- # C++ shared libraries are fairly broken -- ld_shlibs_CXX=no -- ;; -- openbsd*) -- if test -f /usr/libexec/ld.so; then -- hardcode_direct_CXX=yes -- hardcode_shlibpath_var_CXX=no -- archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' -- hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' -- if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then -- archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib' -- export_dynamic_flag_spec_CXX='${wl}-E' -- whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' -- fi -- output_verbose_link_cmd='echo' -- else -- ld_shlibs_CXX=no -- fi -- ;; -- osf3*) -- case $cc_basename in -- KCC*) -- # Kuck and Associates, Inc. (KAI) C++ Compiler -- -- # KCC will only create a shared library if the output file -- # ends with ".so" (or ".sl" for HP-UX), so rename the library -- # to its proper name (with version) after linking. -- archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' -- -- hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' -- hardcode_libdir_separator_CXX=: -- -- # Archives containing C++ object files must be created using -- # "CC -Bstatic", where "CC" is the KAI C++ compiler. -- old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs' -- -- ;; -- RCC*) -- # Rational C++ 2.4.1 -- # FIXME: insert proper C++ library support -- ld_shlibs_CXX=no -- ;; -- cxx*) -- allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*' -- archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && echo ${wl}-set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' -- -- hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' -- hardcode_libdir_separator_CXX=: -- -- # Commands to make compiler produce verbose output that lists -- # what "hidden" libraries, object files and flags are used when -- # linking a shared library. -- # -- # There doesn't appear to be a way to prevent this compiler from -- # explicitly linking system object files so we need to strip them -- # from the output so that they don't get included in the library -- # dependencies. -- output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' -- ;; -- *) -- if test "$GXX" = yes && test "$with_gnu_ld" = no; then -- allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*' -- archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' -- -- hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' -- hardcode_libdir_separator_CXX=: -- -- # Commands to make compiler produce verbose output that lists -- # what "hidden" libraries, object files and flags are used when -- # linking a shared library. -- output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"' -- -- else -- # FIXME: insert proper C++ library support -- ld_shlibs_CXX=no -- fi -- ;; -- esac -- ;; -- osf4* | osf5*) -- case $cc_basename in -- KCC*) -- # Kuck and Associates, Inc. (KAI) C++ Compiler -- -- # KCC will only create a shared library if the output file -- # ends with ".so" (or ".sl" for HP-UX), so rename the library -- # to its proper name (with version) after linking. -- archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' -- -- hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' -- hardcode_libdir_separator_CXX=: -- -- # Archives containing C++ object files must be created using -- # the KAI C++ compiler. -- old_archive_cmds_CXX='$CC -o $oldlib $oldobjs' -- ;; -- RCC*) -- # Rational C++ 2.4.1 -- # FIXME: insert proper C++ library support -- ld_shlibs_CXX=no -- ;; -- cxx*) -- allow_undefined_flag_CXX=' -expect_unresolved \*' -- archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' -- archive_expsym_cmds_CXX='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ -- echo "-hidden">> $lib.exp~ -- $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname -Wl,-input -Wl,$lib.exp `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~ -- $rm $lib.exp' -- -- hardcode_libdir_flag_spec_CXX='-rpath $libdir' -- hardcode_libdir_separator_CXX=: -- -- # Commands to make compiler produce verbose output that lists -- # what "hidden" libraries, object files and flags are used when -- # linking a shared library. -- # -- # There doesn't appear to be a way to prevent this compiler from -- # explicitly linking system object files so we need to strip them -- # from the output so that they don't get included in the library -- # dependencies. -- output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' -- ;; -- *) -- if test "$GXX" = yes && test "$with_gnu_ld" = no; then -- allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*' -- archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' -- -- hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' -- hardcode_libdir_separator_CXX=: -- -- # Commands to make compiler produce verbose output that lists -- # what "hidden" libraries, object files and flags are used when -- # linking a shared library. -- output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"' -- -- else -- # FIXME: insert proper C++ library support -- ld_shlibs_CXX=no -- fi -- ;; -- esac -- ;; -- psos*) -- # FIXME: insert proper C++ library support -- ld_shlibs_CXX=no -- ;; -- sunos4*) -- case $cc_basename in -- CC*) -- # Sun C++ 4.x -- # FIXME: insert proper C++ library support -- ld_shlibs_CXX=no -- ;; -- lcc*) -- # Lucid -- # FIXME: insert proper C++ library support -- ld_shlibs_CXX=no -- ;; -- *) -- # FIXME: insert proper C++ library support -- ld_shlibs_CXX=no -- ;; -- esac -- ;; -- solaris*) -- case $cc_basename in -- CC*) -- # Sun C++ 4.2, 5.x and Centerline C++ -- archive_cmds_need_lc_CXX=yes -- no_undefined_flag_CXX=' -zdefs' -- archive_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' -- archive_expsym_cmds_CXX='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ -- $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp' -- -- hardcode_libdir_flag_spec_CXX='-R$libdir' -- hardcode_shlibpath_var_CXX=no -- case $host_os in -- solaris2.[0-5] | solaris2.[0-5].*) ;; -- *) -- # The compiler driver will combine and reorder linker options, -- # but understands `-z linker_flag'. -- # Supported since Solaris 2.6 (maybe 2.5.1?) -- whole_archive_flag_spec_CXX='-z allextract$convenience -z defaultextract' -- ;; -- esac -- link_all_deplibs_CXX=yes -- -- output_verbose_link_cmd='echo' -- -- # Archives containing C++ object files must be created using -- # "CC -xar", where "CC" is the Sun C++ compiler. This is -- # necessary to make sure instantiated templates are included -- # in the archive. -- old_archive_cmds_CXX='$CC -xar -o $oldlib $oldobjs' -- ;; -- gcx*) -- # Green Hills C++ Compiler -- archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' -- -- # The C++ compiler must be used to create the archive. -- old_archive_cmds_CXX='$CC $LDFLAGS -archive -o $oldlib $oldobjs' -- ;; -- *) -- # GNU C++ compiler with Solaris linker -- if test "$GXX" = yes && test "$with_gnu_ld" = no; then -- no_undefined_flag_CXX=' ${wl}-z ${wl}defs' -- if $CC --version | grep -v '^2\.7' > /dev/null; then -- archive_cmds_CXX='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' -- archive_expsym_cmds_CXX='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ -- $CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp' -- -- # Commands to make compiler produce verbose output that lists -- # what "hidden" libraries, object files and flags are used when -- # linking a shared library. -- output_verbose_link_cmd="$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\"" -- else -- # g++ 2.7 appears to require `-G' NOT `-shared' on this -- # platform. -- archive_cmds_CXX='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' -- archive_expsym_cmds_CXX='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ -- $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp' -- -- # Commands to make compiler produce verbose output that lists -- # what "hidden" libraries, object files and flags are used when -- # linking a shared library. -- output_verbose_link_cmd="$CC -G $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\"" -- fi -- -- hardcode_libdir_flag_spec_CXX='${wl}-R $wl$libdir' -- case $host_os in -- solaris2.[0-5] | solaris2.[0-5].*) ;; -- *) -- whole_archive_flag_spec_CXX='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' -- ;; -- esac -- fi -- ;; -- esac -- ;; -- sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) -- no_undefined_flag_CXX='${wl}-z,text' -- archive_cmds_need_lc_CXX=no -- hardcode_shlibpath_var_CXX=no -- runpath_var='LD_RUN_PATH' -- -- case $cc_basename in -- CC*) -- archive_cmds_CXX='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' -- archive_expsym_cmds_CXX='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' -- ;; -- *) -- archive_cmds_CXX='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' -- archive_expsym_cmds_CXX='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' -- ;; -- esac -- ;; -- sysv5* | sco3.2v5* | sco5v6*) -- # Note: We can NOT use -z defs as we might desire, because we do not -- # link with -lc, and that would cause any symbols used from libc to -- # always be unresolved, which means just about no library would -- # ever link correctly. If we're not using GNU ld we use -z text -- # though, which does catch some bad symbols but isn't as heavy-handed -- # as -z defs. -- # For security reasons, it is highly recommended that you always -- # use absolute paths for naming shared libraries, and exclude the -- # DT_RUNPATH tag from executables and libraries. But doing so -- # requires that you compile everything twice, which is a pain. -- # So that behaviour is only enabled if SCOABSPATH is set to a -- # non-empty value in the environment. Most likely only useful for -- # creating official distributions of packages. -- # This is a hack until libtool officially supports absolute path -- # names for shared libraries. -- no_undefined_flag_CXX='${wl}-z,text' -- allow_undefined_flag_CXX='${wl}-z,nodefs' -- archive_cmds_need_lc_CXX=no -- hardcode_shlibpath_var_CXX=no -- hardcode_libdir_flag_spec_CXX='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' -- hardcode_libdir_separator_CXX=':' -- link_all_deplibs_CXX=yes -- export_dynamic_flag_spec_CXX='${wl}-Bexport' -- runpath_var='LD_RUN_PATH' -- -- case $cc_basename in -- CC*) -- archive_cmds_CXX='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' -- archive_expsym_cmds_CXX='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' -- ;; -- *) -- archive_cmds_CXX='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' -- archive_expsym_cmds_CXX='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' -- ;; -- esac -- ;; -- tandem*) -- case $cc_basename in -- NCC*) -- # NonStop-UX NCC 3.20 -- # FIXME: insert proper C++ library support -- ld_shlibs_CXX=no -- ;; -- *) -- # FIXME: insert proper C++ library support -- ld_shlibs_CXX=no -- ;; -- esac -- ;; -- vxworks*) -- # FIXME: insert proper C++ library support -- ld_shlibs_CXX=no -- ;; -- *) -- # FIXME: insert proper C++ library support -- ld_shlibs_CXX=no -- ;; --esac --{ echo "$as_me:$LINENO: result: $ld_shlibs_CXX" >&5 --echo "${ECHO_T}$ld_shlibs_CXX" >&6; } --test "$ld_shlibs_CXX" = no && can_build_shared=no -- --GCC_CXX="$GXX" --LD_CXX="$LD" -- --cat > conftest.$ac_ext <&5 -- (eval $ac_compile) 2>&5 -- ac_status=$? -- echo "$as_me:$LINENO: \$? = $ac_status" >&5 -- (exit $ac_status); }; then -- # Parse the compiler output and extract the necessary -- # objects, libraries and library flags. -- -- # Sentinel used to keep track of whether or not we are before -- # the conftest object file. -- pre_test_object_deps_done=no -- -- # The `*' in the case matches for architectures that use `case' in -- # $output_verbose_cmd can trigger glob expansion during the loop -- # eval without this substitution. -- output_verbose_link_cmd=`$echo "X$output_verbose_link_cmd" | $Xsed -e "$no_glob_subst"` -- -- for p in `eval $output_verbose_link_cmd`; do -- case $p in -- -- -L* | -R* | -l*) -- # Some compilers place space between "-{L,R}" and the path. -- # Remove the space. -- if test $p = "-L" \ -- || test $p = "-R"; then -- prev=$p -- continue -- else -- prev= -- fi -- -- if test "$pre_test_object_deps_done" = no; then -- case $p in -- -L* | -R*) -- # Internal compiler library paths should come after those -- # provided the user. The postdeps already come after the -- # user supplied libs so there is no need to process them. -- if test -z "$compiler_lib_search_path_CXX"; then -- compiler_lib_search_path_CXX="${prev}${p}" -- else -- compiler_lib_search_path_CXX="${compiler_lib_search_path_CXX} ${prev}${p}" -- fi -- ;; -- # The "-l" case would never come before the object being -- # linked, so don't bother handling this case. -- esac -- else -- if test -z "$postdeps_CXX"; then -- postdeps_CXX="${prev}${p}" -- else -- postdeps_CXX="${postdeps_CXX} ${prev}${p}" -- fi -- fi -- ;; -- -- *.$objext) -- # This assumes that the test object file only shows up -- # once in the compiler output. -- if test "$p" = "conftest.$objext"; then -- pre_test_object_deps_done=yes -- continue -- fi -- -- if test "$pre_test_object_deps_done" = no; then -- if test -z "$predep_objects_CXX"; then -- predep_objects_CXX="$p" -- else -- predep_objects_CXX="$predep_objects_CXX $p" -- fi -- else -- if test -z "$postdep_objects_CXX"; then -- postdep_objects_CXX="$p" -- else -- postdep_objects_CXX="$postdep_objects_CXX $p" -- fi -- fi -- ;; -- -- *) ;; # Ignore the rest. -- -- esac -- done -- -- # Clean up. -- rm -f a.out a.exe --else -- echo "libtool.m4: error: problem compiling CXX test program" --fi -- --$rm -f confest.$objext -- --compiler_lib_search_dirs_CXX= --if test -n "$compiler_lib_search_path_CXX"; then -- compiler_lib_search_dirs_CXX=`echo " ${compiler_lib_search_path_CXX}" | ${SED} -e 's! -L! !g' -e 's!^ !!'` --fi -- --# PORTME: override above test on systems where it is broken --case $host_os in --interix[3-9]*) -- # Interix 3.5 installs completely hosed .la files for C++, so rather than -- # hack all around it, let's just trust "g++" to DTRT. -- predep_objects_CXX= -- postdep_objects_CXX= -- postdeps_CXX= -- ;; -- --linux*) -- case `$CC -V 2>&1 | sed 5q` in -- *Sun\ C*) -- # Sun C++ 5.9 -- # -- # The more standards-conforming stlport4 library is -- # incompatible with the Cstd library. Avoid specifying -- # it if it's in CXXFLAGS. Ignore libCrun as -- # -library=stlport4 depends on it. -- case " $CXX $CXXFLAGS " in -- *" -library=stlport4 "*) -- solaris_use_stlport4=yes -- ;; -- esac -- if test "$solaris_use_stlport4" != yes; then -- postdeps_CXX='-library=Cstd -library=Crun' -- fi -- ;; -- esac -- ;; -- --solaris*) -- case $cc_basename in -- CC*) -- # The more standards-conforming stlport4 library is -- # incompatible with the Cstd library. Avoid specifying -- # it if it's in CXXFLAGS. Ignore libCrun as -- # -library=stlport4 depends on it. -- case " $CXX $CXXFLAGS " in -- *" -library=stlport4 "*) -- solaris_use_stlport4=yes -- ;; -- esac -- -- # Adding this requires a known-good setup of shared libraries for -- # Sun compiler versions before 5.6, else PIC objects from an old -- # archive will be linked into the output, leading to subtle bugs. -- if test "$solaris_use_stlport4" != yes; then -- postdeps_CXX='-library=Cstd -library=Crun' -- fi -- ;; -- esac -- ;; --esac -- --case " $postdeps_CXX " in --*" -lc "*) archive_cmds_need_lc_CXX=no ;; --esac -- --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; } -- -- # C++ specific cases for pic, static, wl, etc. -- if test "$GXX" = yes; then -- lt_prog_compiler_wl_CXX='-Wl,' -- lt_prog_compiler_static_CXX='-static' -- -- case $host_os in -- aix*) -- # All AIX code is PIC. -- if test "$host_cpu" = ia64; then -- # AIX 5 now supports IA64 processor -- lt_prog_compiler_static_CXX='-Bstatic' -- fi -- ;; -- amigaos*) -- # FIXME: we need at least 68020 code to build shared libraries, but -- # adding the `-m68020' flag to GCC prevents building anything better, -- # like `-m68040'. -- lt_prog_compiler_pic_CXX='-m68020 -resident32 -malways-restore-a4' -- ;; -- beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) -- # PIC is the default for these OSes. -- ;; -- mingw* | cygwin* | os2* | pw32*) -- # This hack is so that the source file can tell whether it is being -- # built for inclusion in a dll (and should export symbols for example). -- # Although the cygwin gcc ignores -fPIC, still need this for old-style -- # (--disable-auto-import) libraries -- lt_prog_compiler_pic_CXX='-DDLL_EXPORT' -- ;; -- darwin* | rhapsody*) -- # PIC is the default on this platform -- # Common symbols not allowed in MH_DYLIB files -- lt_prog_compiler_pic_CXX='-fno-common' -- ;; -- *djgpp*) -- # DJGPP does not support shared libraries at all -- lt_prog_compiler_pic_CXX= -- ;; -- interix[3-9]*) -- # Interix 3.x gcc -fpic/-fPIC options generate broken code. -- # Instead, we relocate shared libraries at runtime. -- ;; -- sysv4*MP*) -- if test -d /usr/nec; then -- lt_prog_compiler_pic_CXX=-Kconform_pic -- fi -- ;; -- hpux*) -- # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but -- # not for PA HP-UX. -- case $host_cpu in -- hppa*64*|ia64*) -- ;; -- *) -- lt_prog_compiler_pic_CXX='-fPIC' -- ;; -- esac -- ;; -- *) -- lt_prog_compiler_pic_CXX='-fPIC' -- ;; -- esac -- else -- case $host_os in -- aix[4-9]*) -- # All AIX code is PIC. -- if test "$host_cpu" = ia64; then -- # AIX 5 now supports IA64 processor -- lt_prog_compiler_static_CXX='-Bstatic' -- else -- lt_prog_compiler_static_CXX='-bnso -bI:/lib/syscalls.exp' -- fi -- ;; -- chorus*) -- case $cc_basename in -- cxch68*) -- # Green Hills C++ Compiler -- # _LT_AC_TAGVAR(lt_prog_compiler_static, CXX)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a" -- ;; -- esac -- ;; -- darwin*) -- # PIC is the default on this platform -- # Common symbols not allowed in MH_DYLIB files -- case $cc_basename in -- xlc*) -- lt_prog_compiler_pic_CXX='-qnocommon' -- lt_prog_compiler_wl_CXX='-Wl,' -- ;; -- esac -- ;; -- dgux*) -- case $cc_basename in -- ec++*) -- lt_prog_compiler_pic_CXX='-KPIC' -- ;; -- ghcx*) -- # Green Hills C++ Compiler -- lt_prog_compiler_pic_CXX='-pic' -- ;; -- *) -- ;; -- esac -- ;; -- freebsd* | dragonfly*) -- # FreeBSD uses GNU C++ -- ;; -- hpux9* | hpux10* | hpux11*) -- case $cc_basename in -- CC*) -- lt_prog_compiler_wl_CXX='-Wl,' -- lt_prog_compiler_static_CXX='${wl}-a ${wl}archive' -- if test "$host_cpu" != ia64; then -- lt_prog_compiler_pic_CXX='+Z' -- fi -- ;; -- aCC*) -- lt_prog_compiler_wl_CXX='-Wl,' -- lt_prog_compiler_static_CXX='${wl}-a ${wl}archive' -- case $host_cpu in -- hppa*64*|ia64*) -- # +Z the default -- ;; -- *) -- lt_prog_compiler_pic_CXX='+Z' -- ;; -- esac -- ;; -- *) -- ;; -- esac -- ;; -- interix*) -- # This is c89, which is MS Visual C++ (no shared libs) -- # Anyone wants to do a port? -- ;; -- irix5* | irix6* | nonstopux*) -- case $cc_basename in -- CC*) -- lt_prog_compiler_wl_CXX='-Wl,' -- lt_prog_compiler_static_CXX='-non_shared' -- # CC pic flag -KPIC is the default. -- ;; -- *) -- ;; -- esac -- ;; -- linux* | k*bsd*-gnu) -- case $cc_basename in -- KCC*) -- # KAI C++ Compiler -- lt_prog_compiler_wl_CXX='--backend -Wl,' -- lt_prog_compiler_pic_CXX='-fPIC' -- ;; -- icpc* | ecpc*) -- # Intel C++ -- lt_prog_compiler_wl_CXX='-Wl,' -- lt_prog_compiler_pic_CXX='-KPIC' -- lt_prog_compiler_static_CXX='-static' -- ;; -- pgCC* | pgcpp*) -- # Portland Group C++ compiler. -- lt_prog_compiler_wl_CXX='-Wl,' -- lt_prog_compiler_pic_CXX='-fpic' -- lt_prog_compiler_static_CXX='-Bstatic' -- ;; -- cxx*) -- # Compaq C++ -- # Make sure the PIC flag is empty. It appears that all Alpha -- # Linux and Compaq Tru64 Unix objects are PIC. -- lt_prog_compiler_pic_CXX= -- lt_prog_compiler_static_CXX='-non_shared' -- ;; -- *) -- case `$CC -V 2>&1 | sed 5q` in -- *Sun\ C*) -- # Sun C++ 5.9 -- lt_prog_compiler_pic_CXX='-KPIC' -- lt_prog_compiler_static_CXX='-Bstatic' -- lt_prog_compiler_wl_CXX='-Qoption ld ' -- ;; -- esac -- ;; -- esac -- ;; -- lynxos*) -- ;; -- m88k*) -- ;; -- mvs*) -- case $cc_basename in -- cxx*) -- lt_prog_compiler_pic_CXX='-W c,exportall' -- ;; -- *) -- ;; -- esac -- ;; -- netbsd* | netbsdelf*-gnu) -- ;; -- osf3* | osf4* | osf5*) -- case $cc_basename in -- KCC*) -- lt_prog_compiler_wl_CXX='--backend -Wl,' -- ;; -- RCC*) -- # Rational C++ 2.4.1 -- lt_prog_compiler_pic_CXX='-pic' -- ;; -- cxx*) -- # Digital/Compaq C++ -- lt_prog_compiler_wl_CXX='-Wl,' -- # Make sure the PIC flag is empty. It appears that all Alpha -- # Linux and Compaq Tru64 Unix objects are PIC. -- lt_prog_compiler_pic_CXX= -- lt_prog_compiler_static_CXX='-non_shared' -- ;; -- *) -- ;; -- esac -- ;; -- psos*) -- ;; -- solaris*) -- case $cc_basename in -- CC*) -- # Sun C++ 4.2, 5.x and Centerline C++ -- lt_prog_compiler_pic_CXX='-KPIC' -- lt_prog_compiler_static_CXX='-Bstatic' -- lt_prog_compiler_wl_CXX='-Qoption ld ' -- ;; -- gcx*) -- # Green Hills C++ Compiler -- lt_prog_compiler_pic_CXX='-PIC' -- ;; -- *) -- ;; -- esac -- ;; -- sunos4*) -- case $cc_basename in -- CC*) -- # Sun C++ 4.x -- lt_prog_compiler_pic_CXX='-pic' -- lt_prog_compiler_static_CXX='-Bstatic' -- ;; -- lcc*) -- # Lucid -- lt_prog_compiler_pic_CXX='-pic' -- ;; -- *) -- ;; -- esac -- ;; -- tandem*) -- case $cc_basename in -- NCC*) -- # NonStop-UX NCC 3.20 -- lt_prog_compiler_pic_CXX='-KPIC' -- ;; -- *) -- ;; -- esac -- ;; -- sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) -- case $cc_basename in -- CC*) -- lt_prog_compiler_wl_CXX='-Wl,' -- lt_prog_compiler_pic_CXX='-KPIC' -- lt_prog_compiler_static_CXX='-Bstatic' -- ;; -- esac -- ;; -- vxworks*) -- ;; -- *) -- lt_prog_compiler_can_build_shared_CXX=no -- ;; -- esac -- fi -- --{ echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_CXX" >&5 --echo "${ECHO_T}$lt_prog_compiler_pic_CXX" >&6; } -- --# --# Check to make sure the PIC flag actually works. --# --if test -n "$lt_prog_compiler_pic_CXX"; then -- --{ echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works" >&5 --echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works... $ECHO_C" >&6; } --if test "${lt_cv_prog_compiler_pic_works_CXX+set}" = set; then -- echo $ECHO_N "(cached) $ECHO_C" >&6 --else -- lt_cv_prog_compiler_pic_works_CXX=no -- ac_outfile=conftest.$ac_objext -- echo "$lt_simple_compile_test_code" > conftest.$ac_ext -- lt_compiler_flag="$lt_prog_compiler_pic_CXX -DPIC" -- # Insert the option either (1) after the last *FLAGS variable, or -- # (2) before a word containing "conftest.", or (3) at the end. -- # Note that $ac_compile itself does not contain backslashes and begins -- # with a dollar sign (not a hyphen), so the echo should work correctly. -- # The option is referenced via a variable to avoid confusing sed. -- lt_compile=`echo "$ac_compile" | $SED \ -- -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -- -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -- -e 's:$: $lt_compiler_flag:'` -- (eval echo "\"\$as_me:12763: $lt_compile\"" >&5) -- (eval "$lt_compile" 2>conftest.err) -- ac_status=$? -- cat conftest.err >&5 -- echo "$as_me:12767: \$? = $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. -- $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp -- $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 -- if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then -- lt_cv_prog_compiler_pic_works_CXX=yes -- fi -- fi -- $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; } -- --if test x"$lt_cv_prog_compiler_pic_works_CXX" = xyes; then -- case $lt_prog_compiler_pic_CXX in -- "" | " "*) ;; -- *) lt_prog_compiler_pic_CXX=" $lt_prog_compiler_pic_CXX" ;; -- esac --else -- lt_prog_compiler_pic_CXX= -- lt_prog_compiler_can_build_shared_CXX=no --fi -- --fi --case $host_os in -- # For platforms which do not support PIC, -DPIC is meaningless: -- *djgpp*) -- lt_prog_compiler_pic_CXX= -- ;; -- *) -- lt_prog_compiler_pic_CXX="$lt_prog_compiler_pic_CXX -DPIC" -- ;; --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; } --if test "${lt_cv_prog_compiler_static_works_CXX+set}" = set; then -- echo $ECHO_N "(cached) $ECHO_C" >&6 --else -- lt_cv_prog_compiler_static_works_CXX=no -- save_LDFLAGS="$LDFLAGS" -- LDFLAGS="$LDFLAGS $lt_tmp_static_flag" -- echo "$lt_simple_link_test_code" > conftest.$ac_ext -- if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then -- # The linker can only warn and ignore the option if not recognized -- # So say no if there are warnings -- if test -s conftest.err; then -- # Append any errors to the config.log. -- cat conftest.err 1>&5 -- $echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp -- $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 -- if diff conftest.exp conftest.er2 >/dev/null; then -- lt_cv_prog_compiler_static_works_CXX=yes -- fi -- else -- lt_cv_prog_compiler_static_works_CXX=yes -- fi -- fi -- $rm -r conftest* -- 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; } -- --if test x"$lt_cv_prog_compiler_static_works_CXX" = xyes; then -- : --else -- lt_prog_compiler_static_CXX= --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; } --if test "${lt_cv_prog_compiler_c_o_CXX+set}" = set; then -- echo $ECHO_N "(cached) $ECHO_C" >&6 --else -- lt_cv_prog_compiler_c_o_CXX=no -- $rm -r conftest 2>/dev/null -- mkdir conftest -- cd conftest -- mkdir out -- echo "$lt_simple_compile_test_code" > conftest.$ac_ext -- -- lt_compiler_flag="-o out/conftest2.$ac_objext" -- # Insert the option either (1) after the last *FLAGS variable, or -- # (2) before a word containing "conftest.", or (3) at the end. -- # Note that $ac_compile itself does not contain backslashes and begins -- # with a dollar sign (not a hyphen), so the echo should work correctly. -- lt_compile=`echo "$ac_compile" | $SED \ -- -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -- -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -- -e 's:$: $lt_compiler_flag:'` -- (eval echo "\"\$as_me:12867: $lt_compile\"" >&5) -- (eval "$lt_compile" 2>out/conftest.err) -- ac_status=$? -- cat out/conftest.err >&5 -- echo "$as_me:12871: \$? = $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 -- # So say no if there are warnings -- $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp -- $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 -- if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then -- lt_cv_prog_compiler_c_o_CXX=yes -- fi -- fi -- chmod u+w . 2>&5 -- $rm conftest* -- # SGI C++ compiler will create directory out/ii_files/ for -- # template instantiation -- test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files -- $rm out/* && rmdir out -- cd .. -- rmdir conftest -- $rm conftest* -- --fi --{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_CXX" >&5 --echo "${ECHO_T}$lt_cv_prog_compiler_c_o_CXX" >&6; } -- -- --hard_links="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; } -- 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; } -- 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;} -- 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; } -- -- export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' -- case $host_os in -- aix[4-9]*) -- # If we're using GNU nm, then we don't want the "-C" option. -- # -C means demangle to AIX nm, but means don't demangle with GNU nm -- if $NM -V 2>&1 | grep 'GNU' > /dev/null; then -- export_symbols_cmds_CXX='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' -- else -- export_symbols_cmds_CXX='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' -- fi -- ;; -- pw32*) -- export_symbols_cmds_CXX="$ltdll_cmds" -- ;; -- cygwin* | mingw*) -- export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;/^.*[ ]__nm__/s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' -- ;; -- linux* | k*bsd*-gnu) -- link_all_deplibs_CXX=no -- ;; -- *) -- export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' -- ;; -- 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; } --test "$ld_shlibs_CXX" = no && can_build_shared=no -- --# --# Do we need to explicitly link libc? --# --case "x$archive_cmds_need_lc_CXX" in --x|xyes) -- # Assume -lc should be added -- archive_cmds_need_lc_CXX=yes -- -- if test "$enable_shared" = yes && test "$GCC" = yes; then -- case $archive_cmds_CXX in -- *'~'*) -- # FIXME: we may have to deal with multi-command sequences. -- ;; -- '$CC '*) -- # Test whether the compiler implicitly links with -lc since on 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; } -- $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 -- (exit $ac_status); } 2>conftest.err; then -- soname=conftest -- lib=conftest -- libobjs=conftest.$ac_objext -- deplibs= -- wl=$lt_prog_compiler_wl_CXX -- pic_flag=$lt_prog_compiler_pic_CXX -- compiler_flags=-v -- linker_flags=-v -- verstring= -- output_objdir=. -- libname=conftest -- lt_save_allow_undefined_flag=$allow_undefined_flag_CXX -- allow_undefined_flag_CXX= -- 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 -- (exit $ac_status); } -- then -- archive_cmds_need_lc_CXX=no -- else -- archive_cmds_need_lc_CXX=yes -- fi -- allow_undefined_flag_CXX=$lt_save_allow_undefined_flag -- else -- cat conftest.err 1>&5 -- fi -- $rm conftest* -- { echo "$as_me:$LINENO: result: $archive_cmds_need_lc_CXX" >&5 --echo "${ECHO_T}$archive_cmds_need_lc_CXX" >&6; } -- ;; -- esac -- fi -- ;; --esac -- --{ echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5 --echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6; } --library_names_spec= --libname_spec='lib$name' --soname_spec= --shrext_cmds=".so" --postinstall_cmds= --postuninstall_cmds= --finish_cmds= --finish_eval= --shlibpath_var= --shlibpath_overrides_runpath=unknown --version_type=none --dynamic_linker="$host_os ld.so" --sys_lib_dlsearch_path_spec="/lib /usr/lib" -- --need_lib_prefix=unknown --hardcode_into_libs=no -- --# when you set need_version to no, make sure it does not cause -set_version --# flags to be left without arguments --need_version=unknown -- --case $host_os in --aix3*) -- version_type=linux -- library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' -- shlibpath_var=LIBPATH -- -- # AIX 3 has no versioning support, so we append a major version to the name. -- soname_spec='${libname}${release}${shared_ext}$major' -- ;; -- --aix[4-9]*) -- version_type=linux -- need_lib_prefix=no -- need_version=no -- hardcode_into_libs=yes -- if test "$host_cpu" = ia64; then -- # AIX 5 supports IA64 -- library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' -- shlibpath_var=LD_LIBRARY_PATH -- else -- # With GCC up to 2.95.x, collect2 would create an import file -- # for dependence libraries. The import file would start with -- # the line `#! .'. This would cause the generated library to -- # depend on `.', always an invalid library. This was fixed in -- # development snapshots of GCC prior to 3.0. -- case $host_os in -- aix4 | aix4.[01] | aix4.[01].*) -- if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' -- echo ' yes ' -- echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then -- : -- else -- can_build_shared=no -- fi -- ;; -- esac -- # AIX (on Power*) has no versioning support, so currently we can not hardcode correct -- # soname into executable. Probably we can add versioning support to -- # collect2, so additional links can be useful in future. -- if test "$aix_use_runtimelinking" = yes; then -- # If using run time linking (on AIX 4.2 or later) use lib.so -- # instead of lib.a to let people know that these are not -- # typical AIX shared libraries. -- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' -- else -- # We preserve .a as extension for shared libraries through AIX4.2 -- # and later when we are not doing run time linking. -- library_names_spec='${libname}${release}.a $libname.a' -- soname_spec='${libname}${release}${shared_ext}$major' -- fi -- shlibpath_var=LIBPATH -- fi -- ;; -- --amigaos*) -- library_names_spec='$libname.ixlibrary $libname.a' -- # Create ${libname}_ixlibrary.a entries in /sys/libs. -- finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' -- ;; -- --beos*) -- library_names_spec='${libname}${shared_ext}' -- dynamic_linker="$host_os ld.so" -- shlibpath_var=LIBRARY_PATH -- ;; -- --bsdi[45]*) -- version_type=linux -- need_version=no -- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' -- soname_spec='${libname}${release}${shared_ext}$major' -- finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' -- shlibpath_var=LD_LIBRARY_PATH -- sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" -- sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" -- # the default ld.so.conf also contains /usr/contrib/lib and -- # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow -- # libtool to hard-code these into programs -- ;; -- --cygwin* | mingw* | pw32*) -- version_type=windows -- shrext_cmds=".dll" -- need_version=no -- need_lib_prefix=no -- -- case $GCC,$host_os in -- yes,cygwin* | yes,mingw* | yes,pw32*) -- library_names_spec='$libname.dll.a' -- # DLL is installed to $(libdir)/../bin by postinstall_cmds -- postinstall_cmds='base_file=`basename \${file}`~ -- dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~ -- dldir=$destdir/`dirname \$dlpath`~ -- test -d \$dldir || mkdir -p \$dldir~ -- $install_prog $dir/$dlname \$dldir/$dlname~ -- chmod a+x \$dldir/$dlname' -- postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ -- dlpath=$dir/\$dldll~ -- $rm \$dlpath' -- shlibpath_overrides_runpath=yes -- -- case $host_os in -- cygwin*) -- # Cygwin DLLs use 'cyg' prefix rather than 'lib' -- soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' -- sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" -- ;; -- mingw*) -- # MinGW DLLs use traditional 'lib' prefix -- soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' -- sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` -- if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then -- # It is most probably a Windows format PATH printed by -- # mingw gcc, but we are running on Cygwin. Gcc prints its search -- # path with ; separators, and with drive letters. We can handle the -- # drive letters (cygwin fileutils understands them), so leave them, -- # especially as we might pass files found there to a mingw objdump, -- # which wouldn't understand a cygwinified path. Ahh. -- sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` -- else -- sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` -- fi -- ;; -- pw32*) -- # pw32 DLLs use 'pw' prefix rather than 'lib' -- library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' -- ;; -- esac -- ;; -- -- *) -- library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' -- ;; -- esac -- dynamic_linker='Win32 ld.exe' -- # FIXME: first we should search . and the directory the executable is in -- shlibpath_var=PATH -- ;; -- --darwin* | rhapsody*) -- dynamic_linker="$host_os dyld" -- version_type=darwin -- need_lib_prefix=no -- need_version=no -- library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext' -- soname_spec='${libname}${release}${major}$shared_ext' -- shlibpath_overrides_runpath=yes -- shlibpath_var=DYLD_LIBRARY_PATH -- shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' -- -- sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' -- ;; -- --dgux*) -- version_type=linux -- need_lib_prefix=no -- need_version=no -- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' -- soname_spec='${libname}${release}${shared_ext}$major' -- shlibpath_var=LD_LIBRARY_PATH -- ;; -- --freebsd1*) -- dynamic_linker=no -- ;; -- --freebsd* | dragonfly*) -- # DragonFly does not have aout. When/if they implement a new -- # versioning mechanism, adjust this. -- if test -x /usr/bin/objformat; then -- objformat=`/usr/bin/objformat` -- else -- case $host_os in -- freebsd[123]*) objformat=aout ;; -- *) objformat=elf ;; -- esac -- fi -- version_type=freebsd-$objformat -- case $version_type in -- freebsd-elf*) -- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' -- need_version=no -- need_lib_prefix=no -- ;; -- freebsd-*) -- library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' -- need_version=yes -- ;; -- esac -- shlibpath_var=LD_LIBRARY_PATH -- case $host_os in -- freebsd2*) -- shlibpath_overrides_runpath=yes -- ;; -- freebsd3.[01]* | freebsdelf3.[01]*) -- shlibpath_overrides_runpath=yes -- hardcode_into_libs=yes -- ;; -- freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ -- freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) -- shlibpath_overrides_runpath=no -- hardcode_into_libs=yes -- ;; -- *) # from 4.6 on, and DragonFly -- shlibpath_overrides_runpath=yes -- hardcode_into_libs=yes -- ;; -- esac -- ;; -- --gnu*) -- version_type=linux -- need_lib_prefix=no -- need_version=no -- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' -- soname_spec='${libname}${release}${shared_ext}$major' -- shlibpath_var=LD_LIBRARY_PATH -- hardcode_into_libs=yes -- ;; -- --hpux9* | hpux10* | hpux11*) -- # Give a soname corresponding to the major version so that dld.sl refuses to -- # link against other versions. -- version_type=sunos -- need_lib_prefix=no -- need_version=no -- case $host_cpu in -- ia64*) -- shrext_cmds='.so' -- hardcode_into_libs=yes -- dynamic_linker="$host_os dld.so" -- shlibpath_var=LD_LIBRARY_PATH -- shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. -- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' -- soname_spec='${libname}${release}${shared_ext}$major' -- if test "X$HPUX_IA64_MODE" = X32; then -- sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" -- else -- sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" -- fi -- sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec -- ;; -- hppa*64*) -- shrext_cmds='.sl' -- hardcode_into_libs=yes -- dynamic_linker="$host_os dld.sl" -- shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH -- shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. -- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' -- soname_spec='${libname}${release}${shared_ext}$major' -- sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" -- sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec -- ;; -- *) -- shrext_cmds='.sl' -- dynamic_linker="$host_os dld.sl" -- shlibpath_var=SHLIB_PATH -- shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH -- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' -- soname_spec='${libname}${release}${shared_ext}$major' -- ;; -- esac -- # HP-UX runs *really* slowly unless shared libraries are mode 555. -- postinstall_cmds='chmod 555 $lib' -- ;; -- --interix[3-9]*) -- version_type=linux -- need_lib_prefix=no -- need_version=no -- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' -- soname_spec='${libname}${release}${shared_ext}$major' -- dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' -- shlibpath_var=LD_LIBRARY_PATH -- shlibpath_overrides_runpath=no -- hardcode_into_libs=yes -- ;; -- --irix5* | irix6* | nonstopux*) -- case $host_os in -- nonstopux*) version_type=nonstopux ;; -- *) -- if test "$lt_cv_prog_gnu_ld" = yes; then -- version_type=linux -- else -- version_type=irix -- fi ;; -- esac -- need_lib_prefix=no -- need_version=no -- soname_spec='${libname}${release}${shared_ext}$major' -- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' -- case $host_os in -- irix5* | nonstopux*) -- libsuff= shlibsuff= -- ;; -- *) -- case $LD in # libtool.m4 will add one of these switches to LD -- *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") -- libsuff= shlibsuff= libmagic=32-bit;; -- *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") -- libsuff=32 shlibsuff=N32 libmagic=N32;; -- *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") -- libsuff=64 shlibsuff=64 libmagic=64-bit;; -- *) libsuff= shlibsuff= libmagic=never-match;; -- esac -- ;; -- esac -- shlibpath_var=LD_LIBRARY${shlibsuff}_PATH -- shlibpath_overrides_runpath=no -- sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" -- sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" -- hardcode_into_libs=yes -- ;; -- --# No shared lib support for Linux oldld, aout, or coff. --linux*oldld* | linux*aout* | linux*coff*) -- dynamic_linker=no -- ;; -- --# This must be Linux ELF. --linux* | k*bsd*-gnu) -- version_type=linux -- need_lib_prefix=no -- need_version=no -- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' -- soname_spec='${libname}${release}${shared_ext}$major' -- finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' -- shlibpath_var=LD_LIBRARY_PATH -- shlibpath_overrides_runpath=no -- # This implies no fast_install, which is unacceptable. -- # Some rework will be needed to allow for fast_install -- # before this can be enabled. -- hardcode_into_libs=yes -- -- # Append ld.so.conf contents to the search path -- if test -f /etc/ld.so.conf; then -- lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` -- sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" -- fi -- -- # We used to test for /lib/ld.so.1 and disable shared libraries on -- # powerpc, because MkLinux only supported shared libraries with the -- # GNU dynamic linker. Since this was broken with cross compilers, -- # most powerpc-linux boxes support dynamic linking these days and -- # people can always --disable-shared, the test was removed, and we -- # assume the GNU/Linux dynamic linker is in use. -- dynamic_linker='GNU/Linux ld.so' -- ;; -- --netbsdelf*-gnu) -- version_type=linux -- need_lib_prefix=no -- need_version=no -- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' -- soname_spec='${libname}${release}${shared_ext}$major' -- shlibpath_var=LD_LIBRARY_PATH -- shlibpath_overrides_runpath=no -- hardcode_into_libs=yes -- dynamic_linker='NetBSD ld.elf_so' -- ;; -- --netbsd*) -- version_type=sunos -- need_lib_prefix=no -- need_version=no -- if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then -- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' -- finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' -- dynamic_linker='NetBSD (a.out) ld.so' -- else -- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' -- soname_spec='${libname}${release}${shared_ext}$major' -- dynamic_linker='NetBSD ld.elf_so' -- fi -- shlibpath_var=LD_LIBRARY_PATH -- shlibpath_overrides_runpath=yes -- hardcode_into_libs=yes -- ;; -- --newsos6) -- version_type=linux -- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' -- shlibpath_var=LD_LIBRARY_PATH -- shlibpath_overrides_runpath=yes -- ;; -- --nto-qnx*) -- version_type=linux -- need_lib_prefix=no -- need_version=no -- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' -- soname_spec='${libname}${release}${shared_ext}$major' -- shlibpath_var=LD_LIBRARY_PATH -- shlibpath_overrides_runpath=yes -- ;; -- --openbsd*) -- version_type=sunos -- sys_lib_dlsearch_path_spec="/usr/lib" -- need_lib_prefix=no -- # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. -- case $host_os in -- openbsd3.3 | openbsd3.3.*) need_version=yes ;; -- *) need_version=no ;; -- esac -- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' -- finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' -- shlibpath_var=LD_LIBRARY_PATH -- if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then -- case $host_os in -- openbsd2.[89] | openbsd2.[89].*) -- shlibpath_overrides_runpath=no -- ;; -- *) -- shlibpath_overrides_runpath=yes -- ;; -- esac -- else -- shlibpath_overrides_runpath=yes -- fi -- ;; -- --os2*) -- libname_spec='$name' -- shrext_cmds=".dll" -- need_lib_prefix=no -- library_names_spec='$libname${shared_ext} $libname.a' -- dynamic_linker='OS/2 ld.exe' -- shlibpath_var=LIBPATH -- ;; -- --osf3* | osf4* | osf5*) -- version_type=osf -- need_lib_prefix=no -- need_version=no -- soname_spec='${libname}${release}${shared_ext}$major' -- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' -- shlibpath_var=LD_LIBRARY_PATH -- sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" -- sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" -- ;; -- --rdos*) -- dynamic_linker=no -- ;; -- --solaris*) -- version_type=linux -- need_lib_prefix=no -- need_version=no -- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' -- soname_spec='${libname}${release}${shared_ext}$major' -- shlibpath_var=LD_LIBRARY_PATH -- shlibpath_overrides_runpath=yes -- hardcode_into_libs=yes -- # ldd complains unless libraries are executable -- postinstall_cmds='chmod +x $lib' -- ;; -- --sunos4*) -- version_type=sunos -- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' -- finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' -- shlibpath_var=LD_LIBRARY_PATH -- shlibpath_overrides_runpath=yes -- if test "$with_gnu_ld" = yes; then -- need_lib_prefix=no -- fi -- need_version=yes -- ;; -- --sysv4 | sysv4.3*) -- version_type=linux -- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' -- soname_spec='${libname}${release}${shared_ext}$major' -- shlibpath_var=LD_LIBRARY_PATH -- case $host_vendor in -- sni) -- shlibpath_overrides_runpath=no -- need_lib_prefix=no -- export_dynamic_flag_spec='${wl}-Blargedynsym' -- runpath_var=LD_RUN_PATH -- ;; -- siemens) -- need_lib_prefix=no -- ;; -- motorola) -- need_lib_prefix=no -- need_version=no -- shlibpath_overrides_runpath=no -- sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' -- ;; -- esac -- ;; -- --sysv4*MP*) -- if test -d /usr/nec ;then -- version_type=linux -- library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' -- soname_spec='$libname${shared_ext}.$major' -- shlibpath_var=LD_LIBRARY_PATH -- fi -- ;; -- --sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) -- version_type=freebsd-elf -- need_lib_prefix=no -- need_version=no -- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' -- soname_spec='${libname}${release}${shared_ext}$major' -- shlibpath_var=LD_LIBRARY_PATH -- hardcode_into_libs=yes -- if test "$with_gnu_ld" = yes; then -- sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' -- shlibpath_overrides_runpath=no -- else -- sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' -- shlibpath_overrides_runpath=yes -- case $host_os in -- sco3.2v5*) -- sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" -- ;; -- esac -- fi -- sys_lib_dlsearch_path_spec='/usr/lib' -- ;; -- --uts4*) -- version_type=linux -- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' -- soname_spec='${libname}${release}${shared_ext}$major' -- shlibpath_var=LD_LIBRARY_PATH -- ;; -- --*) -- dynamic_linker=no -- ;; --esac --{ echo "$as_me:$LINENO: result: $dynamic_linker" >&5 --echo "${ECHO_T}$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 --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 --else -- lt_cv_sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec" --fi -- --sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" -- --variables_saved_for_relink="PATH $shlibpath_var $runpath_var" --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; } --hardcode_action_CXX= --if test -n "$hardcode_libdir_flag_spec_CXX" || \ -- test -n "$runpath_var_CXX" || \ -- test "X$hardcode_automatic_CXX" = "Xyes" ; then -- -- # We can hardcode non-existant directories. -- if test "$hardcode_direct_CXX" != no && -- # If the only mechanism to avoid hardcoding is shlibpath_var, we -- # have to relink, otherwise we might link with an installed library -- # when we should be linking with a yet-to-be-installed one -- ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, CXX)" != no && -- test "$hardcode_minus_L_CXX" != no; then -- # Linking always hardcodes the temporary library directory. -- hardcode_action_CXX=relink -- else -- # We can link without hardcoding, and we can hardcode nonexisting dirs. -- hardcode_action_CXX=immediate -- fi --else -- # We cannot hardcode anything, or else we can only hardcode existing -- # directories. -- hardcode_action_CXX=unsupported --fi --{ echo "$as_me:$LINENO: result: $hardcode_action_CXX" >&5 --echo "${ECHO_T}$hardcode_action_CXX" >&6; } -- --if test "$hardcode_action_CXX" = relink; then -- # Fast installation is not supported -- enable_fast_install=no --elif test "$shlibpath_overrides_runpath" = yes || -- test "$enable_shared" = no; then -- # Fast installation is not necessary -- enable_fast_install=needless --fi -- -- --# The else clause should only fire when bootstrapping the --# libtool distribution, otherwise you forgot to ship ltmain.sh --# with your package, and you will get complaints that there are --# no rules to generate ltmain.sh. --if test -f "$ltmain"; then -- # See if we are running on zsh, and set the options which allow our commands through -- # without removal of \ escapes. -- if test -n "${ZSH_VERSION+set}" ; then -- setopt NO_GLOB_SUBST -- fi -- # Now quote all the things that may contain metacharacters while being -- # careful not to overquote the AC_SUBSTed values. We take copies of the -- # variables and quote the copies for generation of the libtool script. -- for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \ -- SED SHELL STRIP \ -- libname_spec library_names_spec soname_spec extract_expsyms_cmds \ -- old_striplib striplib file_magic_cmd finish_cmds finish_eval \ -- deplibs_check_method reload_flag reload_cmds need_locks \ -- lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ -- lt_cv_sys_global_symbol_to_c_name_address \ -- sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ -- old_postinstall_cmds old_postuninstall_cmds \ -- compiler_CXX \ -- CC_CXX \ -- LD_CXX \ -- lt_prog_compiler_wl_CXX \ -- lt_prog_compiler_pic_CXX \ -- lt_prog_compiler_static_CXX \ -- lt_prog_compiler_no_builtin_flag_CXX \ -- export_dynamic_flag_spec_CXX \ -- thread_safe_flag_spec_CXX \ -- whole_archive_flag_spec_CXX \ -- enable_shared_with_static_runtimes_CXX \ -- old_archive_cmds_CXX \ -- old_archive_from_new_cmds_CXX \ -- predep_objects_CXX \ -- postdep_objects_CXX \ -- predeps_CXX \ -- postdeps_CXX \ -- compiler_lib_search_path_CXX \ -- compiler_lib_search_dirs_CXX \ -- archive_cmds_CXX \ -- archive_expsym_cmds_CXX \ -- postinstall_cmds_CXX \ -- postuninstall_cmds_CXX \ -- old_archive_from_expsyms_cmds_CXX \ -- allow_undefined_flag_CXX \ -- no_undefined_flag_CXX \ -- export_symbols_cmds_CXX \ -- hardcode_libdir_flag_spec_CXX \ -- hardcode_libdir_flag_spec_ld_CXX \ -- hardcode_libdir_separator_CXX \ -- hardcode_automatic_CXX \ -- module_cmds_CXX \ -- module_expsym_cmds_CXX \ -- lt_cv_prog_compiler_c_o_CXX \ -- fix_srcfile_path_CXX \ -- exclude_expsyms_CXX \ -- include_expsyms_CXX; do -- -- case $var in -- old_archive_cmds_CXX | \ -- old_archive_from_new_cmds_CXX | \ -- archive_cmds_CXX | \ -- archive_expsym_cmds_CXX | \ -- module_cmds_CXX | \ -- module_expsym_cmds_CXX | \ -- old_archive_from_expsyms_cmds_CXX | \ -- export_symbols_cmds_CXX | \ -- extract_expsyms_cmds | reload_cmds | finish_cmds | \ -- postinstall_cmds | postuninstall_cmds | \ -- old_postinstall_cmds | old_postuninstall_cmds | \ -- sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) -- # Double-quote double-evaled strings. -- eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" -- ;; -- *) -- eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" -- ;; -- esac -- done -- -- case $lt_echo in -- *'\$0 --fallback-echo"') -- lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` -- ;; -- esac -- --cfgfile="$ofile" -- -- cat <<__EOF__ >> "$cfgfile" --# ### BEGIN LIBTOOL TAG CONFIG: $tagname -- --# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: -- --# Shell to use when invoking shell scripts. --SHELL=$lt_SHELL -- --# Whether or not to build shared libraries. --build_libtool_libs=$enable_shared -- --# Whether or not to build static libraries. --build_old_libs=$enable_static -- --# Whether or not to add -lc for building shared libraries. --build_libtool_need_lc=$archive_cmds_need_lc_CXX -- --# Whether or not to disallow shared libs when runtime libs are static --allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_CXX -- --# Whether or not to optimize for fast installation. --fast_install=$enable_fast_install -- --# The host system. --host_alias=$host_alias --host=$host --host_os=$host_os -- --# The build system. --build_alias=$build_alias --build=$build --build_os=$build_os -- --# An echo program that does not interpret backslashes. --echo=$lt_echo -- --# The archiver. --AR=$lt_AR --AR_FLAGS=$lt_AR_FLAGS -- --# A C compiler. --LTCC=$lt_LTCC -- --# LTCC compiler flags. --LTCFLAGS=$lt_LTCFLAGS -- --# A language-specific compiler. --CC=$lt_compiler_CXX -- --# Is the compiler the GNU C compiler? --with_gcc=$GCC_CXX -- --# An ERE matcher. --EGREP=$lt_EGREP -- --# The linker used to build libraries. --LD=$lt_LD_CXX -- --# Whether we need hard or soft links. --LN_S=$lt_LN_S -- --# A BSD-compatible nm program. --NM=$lt_NM -- --# A symbol stripping program --STRIP=$lt_STRIP -- --# Used to examine libraries when file_magic_cmd begins "file" --MAGIC_CMD=$MAGIC_CMD -- --# Used on cygwin: DLL creation program. --DLLTOOL="$DLLTOOL" -- --# Used on cygwin: object dumper. --OBJDUMP="$OBJDUMP" -- --# Used on cygwin: assembler. --AS="$AS" -- --# The name of the directory that contains temporary libtool files. --objdir=$objdir -- --# How to create reloadable object files. --reload_flag=$lt_reload_flag --reload_cmds=$lt_reload_cmds -- --# How to pass a linker flag through the compiler. --wl=$lt_lt_prog_compiler_wl_CXX -- --# Object file suffix (normally "o"). --objext="$ac_objext" -- --# Old archive suffix (normally "a"). --libext="$libext" -- --# Shared library suffix (normally ".so"). --shrext_cmds='$shrext_cmds' -- --# Executable file suffix (normally ""). --exeext="$exeext" -- --# Additional compiler flags for building library objects. --pic_flag=$lt_lt_prog_compiler_pic_CXX --pic_mode=$pic_mode -- --# What is the maximum length of a command? --max_cmd_len=$lt_cv_sys_max_cmd_len -- --# Does compiler simultaneously support -c and -o options? --compiler_c_o=$lt_lt_cv_prog_compiler_c_o_CXX -- --# Must we lock files when doing compilation? --need_locks=$lt_need_locks -- --# Do we need the lib prefix for modules? --need_lib_prefix=$need_lib_prefix -- --# Do we need a version for libraries? --need_version=$need_version -- --# Whether dlopen is supported. --dlopen_support=$enable_dlopen -- --# Whether dlopen of programs is supported. --dlopen_self=$enable_dlopen_self -- --# Whether dlopen of statically linked programs is supported. --dlopen_self_static=$enable_dlopen_self_static -- --# Compiler flag to prevent dynamic linking. --link_static_flag=$lt_lt_prog_compiler_static_CXX -- --# Compiler flag to turn off builtin functions. --no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_CXX -- --# Compiler flag to allow reflexive dlopens. --export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_CXX -- --# Compiler flag to generate shared objects directly from archives. --whole_archive_flag_spec=$lt_whole_archive_flag_spec_CXX -- --# Compiler flag to generate thread-safe objects. --thread_safe_flag_spec=$lt_thread_safe_flag_spec_CXX -- --# Library versioning type. --version_type=$version_type -- --# Format of library name prefix. --libname_spec=$lt_libname_spec -- --# List of archive names. First name is the real one, the rest are links. --# The last name is the one that the linker finds with -lNAME. --library_names_spec=$lt_library_names_spec -- --# The coded name of the library, if different from the real name. --soname_spec=$lt_soname_spec -- --# Commands used to build and install an old-style archive. --RANLIB=$lt_RANLIB --old_archive_cmds=$lt_old_archive_cmds_CXX --old_postinstall_cmds=$lt_old_postinstall_cmds --old_postuninstall_cmds=$lt_old_postuninstall_cmds -- --# Create an old-style archive from a shared archive. --old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_CXX -- --# Create a temporary old-style archive to link instead of a shared archive. --old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_CXX -- --# Commands used to build and install a shared archive. --archive_cmds=$lt_archive_cmds_CXX --archive_expsym_cmds=$lt_archive_expsym_cmds_CXX --postinstall_cmds=$lt_postinstall_cmds --postuninstall_cmds=$lt_postuninstall_cmds -- --# Commands used to build a loadable module (assumed same as above if empty) --module_cmds=$lt_module_cmds_CXX --module_expsym_cmds=$lt_module_expsym_cmds_CXX -- --# Commands to strip libraries. --old_striplib=$lt_old_striplib --striplib=$lt_striplib -- --# Dependencies to place before the objects being linked to create a --# shared library. --predep_objects=$lt_predep_objects_CXX -- --# Dependencies to place after the objects being linked to create a --# shared library. --postdep_objects=$lt_postdep_objects_CXX -- --# Dependencies to place before the objects being linked to create a --# shared library. --predeps=$lt_predeps_CXX -- --# Dependencies to place after the objects being linked to create a --# shared library. --postdeps=$lt_postdeps_CXX -- --# The directories searched by this compiler when creating a shared --# library --compiler_lib_search_dirs=$lt_compiler_lib_search_dirs_CXX -- --# The library search path used internally by the compiler when linking --# a shared library. --compiler_lib_search_path=$lt_compiler_lib_search_path_CXX -- --# Method to check whether dependent libraries are shared objects. --deplibs_check_method=$lt_deplibs_check_method -- --# Command to use when deplibs_check_method == file_magic. --file_magic_cmd=$lt_file_magic_cmd -- --# Flag that allows shared libraries with undefined symbols to be built. --allow_undefined_flag=$lt_allow_undefined_flag_CXX -- --# Flag that forces no undefined symbols. --no_undefined_flag=$lt_no_undefined_flag_CXX -- --# Commands used to finish a libtool library installation in a directory. --finish_cmds=$lt_finish_cmds -- --# Same as above, but a single script fragment to be evaled but not shown. --finish_eval=$lt_finish_eval -- --# Take the output of nm and produce a listing of raw symbols and C names. --global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe -- --# Transform the output of nm in a proper C declaration --global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl -- --# Transform the output of nm in a C name address pair --global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address -- --# This is the shared library runtime path variable. --runpath_var=$runpath_var -- --# This is the shared library path variable. --shlibpath_var=$shlibpath_var -- --# Is shlibpath searched before the hard-coded library search path? --shlibpath_overrides_runpath=$shlibpath_overrides_runpath -- --# How to hardcode a shared library path into an executable. --hardcode_action=$hardcode_action_CXX -- --# Whether we should hardcode library paths into libraries. --hardcode_into_libs=$hardcode_into_libs -- --# Flag to hardcode \$libdir into a binary during linking. --# This must work even if \$libdir does not exist. --hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_CXX -- --# If ld is used when linking, flag to hardcode \$libdir into --# a binary during linking. This must work even if \$libdir does --# not exist. --hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_CXX -- --# Whether we need a single -rpath flag with a separated argument. --hardcode_libdir_separator=$lt_hardcode_libdir_separator_CXX -- --# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the --# resulting binary. --hardcode_direct=$hardcode_direct_CXX -- --# Set to yes if using the -LDIR flag during linking hardcodes DIR into the --# resulting binary. --hardcode_minus_L=$hardcode_minus_L_CXX -- --# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into --# the resulting binary. --hardcode_shlibpath_var=$hardcode_shlibpath_var_CXX -- --# Set to yes if building a shared library automatically hardcodes DIR into the library --# and all subsequent libraries and executables linked against it. --hardcode_automatic=$hardcode_automatic_CXX -- --# Variables whose values should be saved in libtool wrapper scripts and --# restored at relink time. --variables_saved_for_relink="$variables_saved_for_relink" -- --# Whether libtool must link a program against all its dependency libraries. --link_all_deplibs=$link_all_deplibs_CXX -- --# Compile-time system search path for libraries --sys_lib_search_path_spec=$lt_sys_lib_search_path_spec -- --# Run-time system search path for libraries --sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec -- --# Fix the shell variable \$srcfile for the compiler. --fix_srcfile_path=$lt_fix_srcfile_path -- --# Set to yes if exported symbols are required. --always_export_symbols=$always_export_symbols_CXX -- --# The commands to list exported symbols. --export_symbols_cmds=$lt_export_symbols_cmds_CXX -- --# The commands to extract the exported symbol list from a shared archive. --extract_expsyms_cmds=$lt_extract_expsyms_cmds -- --# Symbols that should not be listed in the preloaded symbols. --exclude_expsyms=$lt_exclude_expsyms_CXX -- --# Symbols that must always be exported. --include_expsyms=$lt_include_expsyms_CXX -- --# ### END LIBTOOL TAG CONFIG: $tagname -- --__EOF__ -- -- --else -- # If there is no Makefile yet, we rely on a make rule to execute -- # `config.status --recheck' to rerun these tests and create the -- # libtool script then. -- ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` -- if test -f "$ltmain_in"; then -- test -f Makefile && make "$ltmain" -- fi --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 -- --CC=$lt_save_CC --LDCXX=$LD --LD=$lt_save_LD --GCC=$lt_save_GCC --with_gnu_ldcxx=$with_gnu_ld --with_gnu_ld=$lt_save_with_gnu_ld --lt_cv_path_LDCXX=$lt_cv_path_LD --lt_cv_path_LD=$lt_save_path_LD --lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld --lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld -- -- else -- tagname="" -- fi -- ;; -- -- F77) -- if test -n "$F77" && test "X$F77" != "Xno"; then -- --ac_ext=f --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 -- -- --archive_cmds_need_lc_F77=no --allow_undefined_flag_F77= --always_export_symbols_F77=no --archive_expsym_cmds_F77= --export_dynamic_flag_spec_F77= --hardcode_direct_F77=no --hardcode_libdir_flag_spec_F77= --hardcode_libdir_flag_spec_ld_F77= --hardcode_libdir_separator_F77= --hardcode_minus_L_F77=no --hardcode_automatic_F77=no --module_cmds_F77= --module_expsym_cmds_F77= --link_all_deplibs_F77=unknown --old_archive_cmds_F77=$old_archive_cmds --no_undefined_flag_F77= --whole_archive_flag_spec_F77= --enable_shared_with_static_runtimes_F77=no -- --# Source file extension for f77 test sources. --ac_ext=f -- --# Object file extension for compiled f77 test sources. --objext=o --objext_F77=$objext -- --# Code to be used in simple compile tests --lt_simple_compile_test_code="\ -- subroutine t -- return -- end --" -- --# Code to be used in simple link tests --lt_simple_link_test_code="\ -- program t -- end --" -- --# ltmain only uses $CC for tagged configurations so make sure $CC is set. -- --# If no C compiler was specified, use CC. --LTCC=${LTCC-"$CC"} -- --# If no C compiler flags were specified, use CFLAGS. --LTCFLAGS=${LTCFLAGS-"$CFLAGS"} -- --# Allow CC to be a program name with arguments. --compiler=$CC -- -- --# save warnings/boilerplate of simple test code --ac_outfile=conftest.$ac_objext --echo "$lt_simple_compile_test_code" >conftest.$ac_ext --eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err --_lt_compiler_boilerplate=`cat conftest.err` --$rm conftest* -- --ac_outfile=conftest.$ac_objext --echo "$lt_simple_link_test_code" >conftest.$ac_ext --eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err --_lt_linker_boilerplate=`cat conftest.err` --$rm -r conftest* -- -- --# Allow CC to be a program name with arguments. --lt_save_CC="$CC" --CC=${F77-"f77"} --compiler=$CC --compiler_F77=$CC --for cc_temp in $compiler""; do -- case $cc_temp in -- compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; -- distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; -- \-*) ;; -- *) break;; -- esac --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; } -- --{ echo "$as_me:$LINENO: checking whether to build shared libraries" >&5 --echo $ECHO_N "checking whether to build shared libraries... $ECHO_C" >&6; } --test "$can_build_shared" = "no" && enable_shared=no -- --# On AIX, shared libraries and static libraries use the same namespace, and --# are all built from PIC. --case $host_os in --aix3*) -- test "$enable_shared" = yes && enable_static=no -- if test -n "$RANLIB"; then -- archive_cmds="$archive_cmds~\$RANLIB \$lib" -- postinstall_cmds='$RANLIB $lib' -- fi -- ;; --aix[4-9]*) -- if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then -- test "$enable_shared" = yes && enable_static=no -- fi -- ;; --esac --{ echo "$as_me:$LINENO: result: $enable_shared" >&5 --echo "${ECHO_T}$enable_shared" >&6; } -- --{ echo "$as_me:$LINENO: checking whether to build static libraries" >&5 --echo $ECHO_N "checking whether to build static libraries... $ECHO_C" >&6; } --# Make sure either enable_shared or enable_static is yes. --test "$enable_shared" = yes || enable_static=yes --{ echo "$as_me:$LINENO: result: $enable_static" >&5 --echo "${ECHO_T}$enable_static" >&6; } -- --GCC_F77="$G77" --LD_F77="$LD" -- --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; } -- -- if test "$GCC" = yes; then -- lt_prog_compiler_wl_F77='-Wl,' -- lt_prog_compiler_static_F77='-static' -- -- case $host_os in -- aix*) -- # All AIX code is PIC. -- if test "$host_cpu" = ia64; then -- # AIX 5 now supports IA64 processor -- lt_prog_compiler_static_F77='-Bstatic' -- fi -- ;; -- -- amigaos*) -- # FIXME: we need at least 68020 code to build shared libraries, but -- # adding the `-m68020' flag to GCC prevents building anything better, -- # like `-m68040'. -- lt_prog_compiler_pic_F77='-m68020 -resident32 -malways-restore-a4' -- ;; -- -- beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) -- # PIC is the default for these OSes. -- ;; -- -- mingw* | cygwin* | pw32* | os2*) -- # This hack is so that the source file can tell whether it is being -- # built for inclusion in a dll (and should export symbols for example). -- # Although the cygwin gcc ignores -fPIC, still need this for old-style -- # (--disable-auto-import) libraries -- lt_prog_compiler_pic_F77='-DDLL_EXPORT' -- ;; -- -- darwin* | rhapsody*) -- # PIC is the default on this platform -- # Common symbols not allowed in MH_DYLIB files -- lt_prog_compiler_pic_F77='-fno-common' -- ;; -- -- interix[3-9]*) -- # Interix 3.x gcc -fpic/-fPIC options generate broken code. -- # Instead, we relocate shared libraries at runtime. -- ;; -- -- msdosdjgpp*) -- # Just because we use GCC doesn't mean we suddenly get shared libraries -- # on systems that don't support them. -- lt_prog_compiler_can_build_shared_F77=no -- enable_shared=no -- ;; -- -- sysv4*MP*) -- if test -d /usr/nec; then -- lt_prog_compiler_pic_F77=-Kconform_pic -- fi -- ;; -- -- hpux*) -- # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but -- # not for PA HP-UX. -- case $host_cpu in -- hppa*64*|ia64*) -- # +Z the default -- ;; -- *) -- lt_prog_compiler_pic_F77='-fPIC' -- ;; -- esac -- ;; -- -- *) -- lt_prog_compiler_pic_F77='-fPIC' -- ;; -- esac -- else -- # PORTME Check for flag to pass linker flags through the system compiler. -- case $host_os in -- aix*) -- lt_prog_compiler_wl_F77='-Wl,' -- if test "$host_cpu" = ia64; then -- # AIX 5 now supports IA64 processor -- lt_prog_compiler_static_F77='-Bstatic' -- else -- lt_prog_compiler_static_F77='-bnso -bI:/lib/syscalls.exp' -- fi -- ;; -- darwin*) -- # PIC is the default on this platform -- # Common symbols not allowed in MH_DYLIB files -- case $cc_basename in -- xlc*) -- lt_prog_compiler_pic_F77='-qnocommon' -- lt_prog_compiler_wl_F77='-Wl,' -- ;; -- esac -- ;; -- -- mingw* | cygwin* | pw32* | os2*) -- # This hack is so that the source file can tell whether it is being -- # built for inclusion in a dll (and should export symbols for example). -- lt_prog_compiler_pic_F77='-DDLL_EXPORT' -- ;; -- -- hpux9* | hpux10* | hpux11*) -- lt_prog_compiler_wl_F77='-Wl,' -- # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but -- # not for PA HP-UX. -- case $host_cpu in -- hppa*64*|ia64*) -- # +Z the default -- ;; -- *) -- lt_prog_compiler_pic_F77='+Z' -- ;; -- esac -- # Is there a better lt_prog_compiler_static that works with the bundled CC? -- lt_prog_compiler_static_F77='${wl}-a ${wl}archive' -- ;; -- -- irix5* | irix6* | nonstopux*) -- lt_prog_compiler_wl_F77='-Wl,' -- # PIC (with -KPIC) is the default. -- lt_prog_compiler_static_F77='-non_shared' -- ;; -- -- newsos6) -- lt_prog_compiler_pic_F77='-KPIC' -- lt_prog_compiler_static_F77='-Bstatic' -- ;; -- -- linux* | k*bsd*-gnu) -- case $cc_basename in -- icc* | ecc*) -- lt_prog_compiler_wl_F77='-Wl,' -- lt_prog_compiler_pic_F77='-KPIC' -- lt_prog_compiler_static_F77='-static' -- ;; -- pgcc* | pgf77* | pgf90* | pgf95*) -- # Portland Group compilers (*not* the Pentium gcc compiler, -- # which looks to be a dead project) -- lt_prog_compiler_wl_F77='-Wl,' -- lt_prog_compiler_pic_F77='-fpic' -- lt_prog_compiler_static_F77='-Bstatic' -- ;; -- ccc*) -- lt_prog_compiler_wl_F77='-Wl,' -- # All Alpha code is PIC. -- lt_prog_compiler_static_F77='-non_shared' -- ;; -- *) -- case `$CC -V 2>&1 | sed 5q` in -- *Sun\ C*) -- # Sun C 5.9 -- lt_prog_compiler_pic_F77='-KPIC' -- lt_prog_compiler_static_F77='-Bstatic' -- lt_prog_compiler_wl_F77='-Wl,' -- ;; -- *Sun\ F*) -- # Sun Fortran 8.3 passes all unrecognized flags to the linker -- lt_prog_compiler_pic_F77='-KPIC' -- lt_prog_compiler_static_F77='-Bstatic' -- lt_prog_compiler_wl_F77='' -- ;; -- esac -- ;; -- esac -- ;; -- -- osf3* | osf4* | osf5*) -- lt_prog_compiler_wl_F77='-Wl,' -- # All OSF/1 code is PIC. -- lt_prog_compiler_static_F77='-non_shared' -- ;; -- -- rdos*) -- lt_prog_compiler_static_F77='-non_shared' -- ;; -- -- solaris*) -- lt_prog_compiler_pic_F77='-KPIC' -- lt_prog_compiler_static_F77='-Bstatic' -- case $cc_basename in -- f77* | f90* | f95*) -- lt_prog_compiler_wl_F77='-Qoption ld ';; -- *) -- lt_prog_compiler_wl_F77='-Wl,';; -- esac -- ;; -- -- sunos4*) -- lt_prog_compiler_wl_F77='-Qoption ld ' -- lt_prog_compiler_pic_F77='-PIC' -- lt_prog_compiler_static_F77='-Bstatic' -- ;; -- -- sysv4 | sysv4.2uw2* | sysv4.3*) -- lt_prog_compiler_wl_F77='-Wl,' -- lt_prog_compiler_pic_F77='-KPIC' -- lt_prog_compiler_static_F77='-Bstatic' -- ;; -- -- sysv4*MP*) -- if test -d /usr/nec ;then -- lt_prog_compiler_pic_F77='-Kconform_pic' -- lt_prog_compiler_static_F77='-Bstatic' -- fi -- ;; -- -- sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) -- lt_prog_compiler_wl_F77='-Wl,' -- lt_prog_compiler_pic_F77='-KPIC' -- lt_prog_compiler_static_F77='-Bstatic' -- ;; -- -- unicos*) -- lt_prog_compiler_wl_F77='-Wl,' -- lt_prog_compiler_can_build_shared_F77=no -- ;; -- -- uts4*) -- lt_prog_compiler_pic_F77='-pic' -- lt_prog_compiler_static_F77='-Bstatic' -- ;; -- -- *) -- lt_prog_compiler_can_build_shared_F77=no -- ;; -- esac -- fi -- --{ echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_F77" >&5 --echo "${ECHO_T}$lt_prog_compiler_pic_F77" >&6; } -- --# --# Check to make sure the PIC flag actually works. --# --if test -n "$lt_prog_compiler_pic_F77"; then -- --{ echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_F77 works" >&5 --echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic_F77 works... $ECHO_C" >&6; } --if test "${lt_cv_prog_compiler_pic_works_F77+set}" = set; then -- echo $ECHO_N "(cached) $ECHO_C" >&6 --else -- lt_cv_prog_compiler_pic_works_F77=no -- ac_outfile=conftest.$ac_objext -- echo "$lt_simple_compile_test_code" > conftest.$ac_ext -- lt_compiler_flag="$lt_prog_compiler_pic_F77" -- # Insert the option either (1) after the last *FLAGS variable, or -- # (2) before a word containing "conftest.", or (3) at the end. -- # Note that $ac_compile itself does not contain backslashes and begins -- # with a dollar sign (not a hyphen), so the echo should work correctly. -- # The option is referenced via a variable to avoid confusing sed. -- lt_compile=`echo "$ac_compile" | $SED \ -- -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -- -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -- -e 's:$: $lt_compiler_flag:'` -- (eval echo "\"\$as_me:14465: $lt_compile\"" >&5) -- (eval "$lt_compile" 2>conftest.err) -- ac_status=$? -- cat conftest.err >&5 -- echo "$as_me:14469: \$? = $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. -- $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp -- $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 -- if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then -- lt_cv_prog_compiler_pic_works_F77=yes -- fi -- fi -- $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; } -- --if test x"$lt_cv_prog_compiler_pic_works_F77" = xyes; then -- case $lt_prog_compiler_pic_F77 in -- "" | " "*) ;; -- *) lt_prog_compiler_pic_F77=" $lt_prog_compiler_pic_F77" ;; -- esac --else -- lt_prog_compiler_pic_F77= -- lt_prog_compiler_can_build_shared_F77=no --fi -- --fi --case $host_os in -- # For platforms which do not support PIC, -DPIC is meaningless: -- *djgpp*) -- lt_prog_compiler_pic_F77= -- ;; -- *) -- lt_prog_compiler_pic_F77="$lt_prog_compiler_pic_F77" -- ;; --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; } --if test "${lt_cv_prog_compiler_static_works_F77+set}" = set; then -- echo $ECHO_N "(cached) $ECHO_C" >&6 --else -- lt_cv_prog_compiler_static_works_F77=no -- save_LDFLAGS="$LDFLAGS" -- LDFLAGS="$LDFLAGS $lt_tmp_static_flag" -- echo "$lt_simple_link_test_code" > conftest.$ac_ext -- if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then -- # The linker can only warn and ignore the option if not recognized -- # So say no if there are warnings -- if test -s conftest.err; then -- # Append any errors to the config.log. -- cat conftest.err 1>&5 -- $echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp -- $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 -- if diff conftest.exp conftest.er2 >/dev/null; then -- lt_cv_prog_compiler_static_works_F77=yes -- fi -- else -- lt_cv_prog_compiler_static_works_F77=yes -- fi -- fi -- $rm -r conftest* -- 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; } -- --if test x"$lt_cv_prog_compiler_static_works_F77" = xyes; then -- : --else -- lt_prog_compiler_static_F77= --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; } --if test "${lt_cv_prog_compiler_c_o_F77+set}" = set; then -- echo $ECHO_N "(cached) $ECHO_C" >&6 --else -- lt_cv_prog_compiler_c_o_F77=no -- $rm -r conftest 2>/dev/null -- mkdir conftest -- cd conftest -- mkdir out -- echo "$lt_simple_compile_test_code" > conftest.$ac_ext -- -- lt_compiler_flag="-o out/conftest2.$ac_objext" -- # Insert the option either (1) after the last *FLAGS variable, or -- # (2) before a word containing "conftest.", or (3) at the end. -- # Note that $ac_compile itself does not contain backslashes and begins -- # with a dollar sign (not a hyphen), so the echo should work correctly. -- lt_compile=`echo "$ac_compile" | $SED \ -- -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -- -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -- -e 's:$: $lt_compiler_flag:'` -- (eval echo "\"\$as_me:14569: $lt_compile\"" >&5) -- (eval "$lt_compile" 2>out/conftest.err) -- ac_status=$? -- cat out/conftest.err >&5 -- echo "$as_me:14573: \$? = $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 -- # So say no if there are warnings -- $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp -- $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 -- if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then -- lt_cv_prog_compiler_c_o_F77=yes -- fi -- fi -- chmod u+w . 2>&5 -- $rm conftest* -- # SGI C++ compiler will create directory out/ii_files/ for -- # template instantiation -- test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files -- $rm out/* && rmdir out -- cd .. -- rmdir conftest -- $rm conftest* -- --fi --{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_F77" >&5 --echo "${ECHO_T}$lt_cv_prog_compiler_c_o_F77" >&6; } -- -- --hard_links="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; } -- 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; } -- 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;} -- 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; } -- -- runpath_var= -- allow_undefined_flag_F77= -- enable_shared_with_static_runtimes_F77=no -- archive_cmds_F77= -- archive_expsym_cmds_F77= -- old_archive_From_new_cmds_F77= -- old_archive_from_expsyms_cmds_F77= -- export_dynamic_flag_spec_F77= -- whole_archive_flag_spec_F77= -- thread_safe_flag_spec_F77= -- hardcode_libdir_flag_spec_F77= -- hardcode_libdir_flag_spec_ld_F77= -- hardcode_libdir_separator_F77= -- hardcode_direct_F77=no -- hardcode_minus_L_F77=no -- hardcode_shlibpath_var_F77=unsupported -- link_all_deplibs_F77=unknown -- hardcode_automatic_F77=no -- module_cmds_F77= -- module_expsym_cmds_F77= -- always_export_symbols_F77=no -- export_symbols_cmds_F77='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' -- # include_expsyms should be a list of space-separated symbols to be *always* -- # included in the symbol list -- include_expsyms_F77= -- # exclude_expsyms can be an extended regexp of symbols to exclude -- # it will be wrapped by ` (' and `)$', so one must not match beginning or -- # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', -- # as well as any symbol that contains `d'. -- exclude_expsyms_F77='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*' -- # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out -- # platforms (ab)use it in PIC code, but their linkers get confused if -- # the symbol is explicitly referenced. Since portable code cannot -- # rely on this symbol name, it's probably fine to never include it in -- # preloaded symbol tables. -- # Exclude shared library initialization/finalization symbols. -- extract_expsyms_cmds= -- # Just being paranoid about ensuring that cc_basename is set. -- for cc_temp in $compiler""; do -- case $cc_temp in -- compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; -- distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; -- \-*) ;; -- *) break;; -- esac --done --cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` -- -- case $host_os in -- cygwin* | mingw* | pw32*) -- # FIXME: the MSVC++ port hasn't been tested in a loooong time -- # When not using gcc, we currently assume that we are using -- # Microsoft Visual C++. -- if test "$GCC" != yes; then -- with_gnu_ld=no -- fi -- ;; -- interix*) -- # we just hope/assume this is gcc and not c89 (= MSVC++) -- with_gnu_ld=yes -- ;; -- openbsd*) -- with_gnu_ld=no -- ;; -- esac -- -- ld_shlibs_F77=yes -- if test "$with_gnu_ld" = yes; then -- # If archive_cmds runs LD, not CC, wlarc should be empty -- wlarc='${wl}' -- -- # Set some defaults for GNU ld with shared library support. These -- # are reset later if shared libraries are not supported. Putting them -- # here allows them to be overridden if necessary. -- runpath_var=LD_RUN_PATH -- hardcode_libdir_flag_spec_F77='${wl}--rpath ${wl}$libdir' -- export_dynamic_flag_spec_F77='${wl}--export-dynamic' -- # ancient GNU ld didn't support --whole-archive et. al. -- if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then -- whole_archive_flag_spec_F77="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' -- else -- whole_archive_flag_spec_F77= -- fi -- supports_anon_versioning=no -- case `$LD -v 2>/dev/null` in -- *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 -- *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... -- *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... -- *\ 2.11.*) ;; # other 2.11 versions -- *) supports_anon_versioning=yes ;; -- esac -- -- # See if GNU ld supports shared libraries. -- case $host_os in -- aix[3-9]*) -- # On AIX/PPC, the GNU linker is very broken -- if test "$host_cpu" != ia64; then -- ld_shlibs_F77=no -- cat <&2 -- --*** Warning: the GNU linker, at least up to release 2.9.1, is reported --*** to be unable to reliably create shared libraries on AIX. --*** Therefore, libtool is disabling shared libraries support. If you --*** really care for shared libraries, you may want to modify your PATH --*** so that a non-GNU linker is found, and then restart. -- --EOF -- fi -- ;; -- -- amigaos*) -- archive_cmds_F77='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' -- hardcode_libdir_flag_spec_F77='-L$libdir' -- hardcode_minus_L_F77=yes -- -- # Samuel A. Falvo II reports -- # that the semantics of dynamic libraries on AmigaOS, at least up -- # to version 4, is to share data among multiple programs linked -- # with the same dynamic library. Since this doesn't match the -- # behavior of shared libraries on other platforms, we can't use -- # them. -- ld_shlibs_F77=no -- ;; -- -- beos*) -- if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then -- allow_undefined_flag_F77=unsupported -- # Joseph Beckenbach says some releases of gcc -- # support --undefined. This deserves some investigation. FIXME -- archive_cmds_F77='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -- else -- ld_shlibs_F77=no -- fi -- ;; -- -- cygwin* | mingw* | pw32*) -- # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, F77) is actually meaningless, -- # as there is no search path for DLLs. -- hardcode_libdir_flag_spec_F77='-L$libdir' -- allow_undefined_flag_F77=unsupported -- always_export_symbols_F77=no -- enable_shared_with_static_runtimes_F77=yes -- export_symbols_cmds_F77='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/'\'' -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' -- -- if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then -- archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' -- # If the export-symbols file already is a .def file (1st line -- # is EXPORTS), use it as is; otherwise, prepend... -- archive_expsym_cmds_F77='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then -- cp $export_symbols $output_objdir/$soname.def; -- else -- echo EXPORTS > $output_objdir/$soname.def; -- cat $export_symbols >> $output_objdir/$soname.def; -- fi~ -- $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' -- else -- ld_shlibs_F77=no -- fi -- ;; -- -- interix[3-9]*) -- hardcode_direct_F77=no -- hardcode_shlibpath_var_F77=no -- hardcode_libdir_flag_spec_F77='${wl}-rpath,$libdir' -- export_dynamic_flag_spec_F77='${wl}-E' -- # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. -- # Instead, shared libraries are loaded at an image base (0x10000000 by -- # default) and relocated if they conflict, which is a slow very memory -- # consuming and fragmenting process. To avoid this, we pick a random, -- # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link -- # time. Moving up from 0x10000000 also allows more sbrk(2) space. -- archive_cmds_F77='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' -- archive_expsym_cmds_F77='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' -- ;; -- -- gnu* | linux* | k*bsd*-gnu) -- if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then -- tmp_addflag= -- case $cc_basename,$host_cpu in -- pgcc*) # Portland Group C compiler -- whole_archive_flag_spec_F77='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' -- tmp_addflag=' $pic_flag' -- ;; -- pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers -- whole_archive_flag_spec_F77='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' -- tmp_addflag=' $pic_flag -Mnomain' ;; -- ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 -- tmp_addflag=' -i_dynamic' ;; -- efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 -- tmp_addflag=' -i_dynamic -nofor_main' ;; -- ifc* | ifort*) # Intel Fortran compiler -- tmp_addflag=' -nofor_main' ;; -- esac -- case `$CC -V 2>&1 | sed 5q` in -- *Sun\ C*) # Sun C 5.9 -- whole_archive_flag_spec_F77='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' -- tmp_sharedflag='-G' ;; -- *Sun\ F*) # Sun Fortran 8.3 -- tmp_sharedflag='-G' ;; -- *) -- tmp_sharedflag='-shared' ;; -- esac -- archive_cmds_F77='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -- -- if test $supports_anon_versioning = yes; then -- archive_expsym_cmds_F77='$echo "{ global:" > $output_objdir/$libname.ver~ -- cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ -- $echo "local: *; };" >> $output_objdir/$libname.ver~ -- $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' -- fi -- link_all_deplibs_F77=no -- else -- ld_shlibs_F77=no -- fi -- ;; -- -- netbsd* | netbsdelf*-gnu) -- if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then -- archive_cmds_F77='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' -- wlarc= -- else -- archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -- archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' -- fi -- ;; -- -- solaris*) -- if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then -- ld_shlibs_F77=no -- cat <&2 -- --*** Warning: The releases 2.8.* of the GNU linker cannot reliably --*** create shared libraries on Solaris systems. Therefore, libtool --*** is disabling shared libraries support. We urge you to upgrade GNU --*** binutils to release 2.9.1 or newer. Another option is to modify --*** your PATH or compiler configuration so that the native linker is --*** used, and then restart. -- --EOF -- elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then -- archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -- archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' -- else -- ld_shlibs_F77=no -- fi -- ;; -- -- sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) -- case `$LD -v 2>&1` in -- *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) -- ld_shlibs_F77=no -- cat <<_LT_EOF 1>&2 -- --*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not --*** reliably create shared libraries on SCO systems. Therefore, libtool --*** is disabling shared libraries support. We urge you to upgrade GNU --*** binutils to release 2.16.91.0.3 or newer. Another option is to modify --*** your PATH or compiler configuration so that the native linker is --*** used, and then restart. -- --_LT_EOF -- ;; -- *) -- if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then -- hardcode_libdir_flag_spec_F77='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`' -- archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib' -- archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname,-retain-symbols-file,$export_symbols -o $lib' -- else -- ld_shlibs_F77=no -- fi -- ;; -- esac -- ;; -- -- sunos4*) -- archive_cmds_F77='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' -- wlarc= -- hardcode_direct_F77=yes -- hardcode_shlibpath_var_F77=no -- ;; -- -- *) -- if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then -- archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -- archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' -- else -- ld_shlibs_F77=no -- fi -- ;; -- esac -- -- if test "$ld_shlibs_F77" = no; then -- runpath_var= -- hardcode_libdir_flag_spec_F77= -- export_dynamic_flag_spec_F77= -- whole_archive_flag_spec_F77= -- fi -- else -- # PORTME fill in a description of your system's linker (not GNU ld) -- case $host_os in -- aix3*) -- allow_undefined_flag_F77=unsupported -- always_export_symbols_F77=yes -- archive_expsym_cmds_F77='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' -- # Note: this linker hardcodes the directories in LIBPATH if there -- # are no directories specified by -L. -- hardcode_minus_L_F77=yes -- if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then -- # Neither direct hardcoding nor static linking is supported with a -- # broken collect2. -- hardcode_direct_F77=unsupported -- fi -- ;; -- -- aix[4-9]*) -- if test "$host_cpu" = ia64; then -- # On IA64, the linker does run time linking by default, so we don't -- # have to do anything special. -- aix_use_runtimelinking=no -- exp_sym_flag='-Bexport' -- no_entry_flag="" -- else -- # If we're using GNU nm, then we don't want the "-C" option. -- # -C means demangle to AIX nm, but means don't demangle with GNU nm -- if $NM -V 2>&1 | grep 'GNU' > /dev/null; then -- export_symbols_cmds_F77='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' -- else -- export_symbols_cmds_F77='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' -- fi -- aix_use_runtimelinking=no -- -- # Test if we are trying to use run time linking or normal -- # AIX style linking. If -brtl is somewhere in LDFLAGS, we -- # need to do runtime linking. -- case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) -- for ld_flag in $LDFLAGS; do -- if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then -- aix_use_runtimelinking=yes -- break -- fi -- done -- ;; -- esac -- -- exp_sym_flag='-bexport' -- no_entry_flag='-bnoentry' -- fi -- -- # When large executables or shared objects are built, AIX ld can -- # have problems creating the table of contents. If linking a library -- # or program results in "error TOC overflow" add -mminimal-toc to -- # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not -- # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. -- -- archive_cmds_F77='' -- hardcode_direct_F77=yes -- hardcode_libdir_separator_F77=':' -- link_all_deplibs_F77=yes -- -- if test "$GCC" = yes; then -- case $host_os in aix4.[012]|aix4.[012].*) -- # We only want to do this on AIX 4.2 and lower, the check -- # below for broken collect2 doesn't work under 4.3+ -- collect2name=`${CC} -print-prog-name=collect2` -- if test -f "$collect2name" && \ -- strings "$collect2name" | grep resolve_lib_name >/dev/null -- then -- # We have reworked collect2 -- : -- else -- # We have old collect2 -- hardcode_direct_F77=unsupported -- # It fails to find uninstalled libraries when the uninstalled -- # path is not listed in the libpath. Setting hardcode_minus_L -- # to unsupported forces relinking -- hardcode_minus_L_F77=yes -- hardcode_libdir_flag_spec_F77='-L$libdir' -- hardcode_libdir_separator_F77= -- fi -- ;; -- esac -- shared_flag='-shared' -- if test "$aix_use_runtimelinking" = yes; then -- shared_flag="$shared_flag "'${wl}-G' -- fi -- else -- # not using gcc -- if test "$host_cpu" = ia64; then -- # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release -- # chokes on -Wl,-G. The following line is correct: -- shared_flag='-G' -- else -- if test "$aix_use_runtimelinking" = yes; then -- shared_flag='${wl}-G' -- else -- shared_flag='${wl}-bM:SRE' -- fi -- fi -- fi -- -- # It seems that -bexpall does not export symbols beginning with -- # underscore (_), so it is better to generate a list of symbols to export. -- always_export_symbols_F77=yes -- if test "$aix_use_runtimelinking" = yes; then -- # Warning - without using the other runtime loading flags (-brtl), -- # -berok will link without error, but may produce a broken library. -- allow_undefined_flag_F77='-berok' -- # Determine the default libpath from the value encoded in an empty executable. -- cat >conftest.$ac_ext <<_ACEOF -- program main -- -- end --_ACEOF --rm -f conftest.$ac_objext conftest$ac_exeext --if { (ac_try="$ac_link" --case "(($ac_try" in -- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; -- *) ac_try_echo=$ac_try;; --esac --eval "echo \"\$as_me:$LINENO: $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); } && { -- test -z "$ac_f77_werror_flag" || -- test ! -s conftest.err -- } && test -s conftest$ac_exeext && -- $as_test_x conftest$ac_exeext; then -- --lt_aix_libpath_sed=' -- /Import File Strings/,/^$/ { -- /^0/ { -- s/^0 *\(.*\)$/\1/ -- p -- } -- }' --aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` --# Check for a 64-bit object if we didn't find anything. --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 --sed 's/^/| /' conftest.$ac_ext >&5 -- -- --fi -- --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 -- -- hardcode_libdir_flag_spec_F77='${wl}-blibpath:$libdir:'"$aix_libpath" -- archive_expsym_cmds_F77="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" -- else -- if test "$host_cpu" = ia64; then -- hardcode_libdir_flag_spec_F77='${wl}-R $libdir:/usr/lib:/lib' -- allow_undefined_flag_F77="-z nodefs" -- archive_expsym_cmds_F77="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" -- else -- # Determine the default libpath from the value encoded in an empty executable. -- cat >conftest.$ac_ext <<_ACEOF -- program main -- -- end --_ACEOF --rm -f conftest.$ac_objext conftest$ac_exeext --if { (ac_try="$ac_link" --case "(($ac_try" in -- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; -- *) ac_try_echo=$ac_try;; --esac --eval "echo \"\$as_me:$LINENO: $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); } && { -- test -z "$ac_f77_werror_flag" || -- test ! -s conftest.err -- } && test -s conftest$ac_exeext && -- $as_test_x conftest$ac_exeext; then -- --lt_aix_libpath_sed=' -- /Import File Strings/,/^$/ { -- /^0/ { -- s/^0 *\(.*\)$/\1/ -- p -- } -- }' --aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` --# Check for a 64-bit object if we didn't find anything. --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 --sed 's/^/| /' conftest.$ac_ext >&5 -- -- --fi -- --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 -- -- hardcode_libdir_flag_spec_F77='${wl}-blibpath:$libdir:'"$aix_libpath" -- # Warning - without using the other run time loading flags, -- # -berok will link without error, but may produce a broken library. -- no_undefined_flag_F77=' ${wl}-bernotok' -- allow_undefined_flag_F77=' ${wl}-berok' -- # Exported symbols can be pulled into shared objects from archives -- whole_archive_flag_spec_F77='$convenience' -- archive_cmds_need_lc_F77=yes -- # This is similar to how AIX traditionally builds its shared libraries. -- archive_expsym_cmds_F77="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' -- fi -- fi -- ;; -- -- amigaos*) -- archive_cmds_F77='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' -- hardcode_libdir_flag_spec_F77='-L$libdir' -- hardcode_minus_L_F77=yes -- # see comment about different semantics on the GNU ld section -- ld_shlibs_F77=no -- ;; -- -- bsdi[45]*) -- export_dynamic_flag_spec_F77=-rdynamic -- ;; -- -- cygwin* | mingw* | pw32*) -- # When not using gcc, we currently assume that we are using -- # Microsoft Visual C++. -- # hardcode_libdir_flag_spec is actually meaningless, as there is -- # no search path for DLLs. -- hardcode_libdir_flag_spec_F77=' ' -- allow_undefined_flag_F77=unsupported -- # Tell ltmain to make .lib files, not .a files. -- libext=lib -- # Tell ltmain to make .dll files, not .so files. -- shrext_cmds=".dll" -- # FIXME: Setting linknames here is a bad hack. -- archive_cmds_F77='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames=' -- # The linker will automatically build a .lib file if we build a DLL. -- old_archive_From_new_cmds_F77='true' -- # FIXME: Should let the user specify the lib program. -- old_archive_cmds_F77='lib -OUT:$oldlib$oldobjs$old_deplibs' -- fix_srcfile_path_F77='`cygpath -w "$srcfile"`' -- enable_shared_with_static_runtimes_F77=yes -- ;; -- -- darwin* | rhapsody*) -- case $host_os in -- rhapsody* | darwin1.[012]) -- allow_undefined_flag_F77='${wl}-undefined ${wl}suppress' -- ;; -- *) # Darwin 1.3 on -- if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then -- allow_undefined_flag_F77='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' -- else -- case ${MACOSX_DEPLOYMENT_TARGET} in -- 10.[012]) -- allow_undefined_flag_F77='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' -- ;; -- 10.*) -- allow_undefined_flag_F77='${wl}-undefined ${wl}dynamic_lookup' -- ;; -- esac -- fi -- ;; -- esac -- archive_cmds_need_lc_F77=no -- hardcode_direct_F77=no -- hardcode_automatic_F77=yes -- hardcode_shlibpath_var_F77=unsupported -- whole_archive_flag_spec_F77='' -- link_all_deplibs_F77=yes -- if test "$GCC" = yes ; then -- output_verbose_link_cmd='echo' -- archive_cmds_F77="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" -- module_cmds_F77="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" -- archive_expsym_cmds_F77="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" -- module_expsym_cmds_F77="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" -- else -- case $cc_basename in -- xlc*) -- output_verbose_link_cmd='echo' -- archive_cmds_F77='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $xlcverstring' -- module_cmds_F77='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' -- # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds -- archive_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $xlcverstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' -- module_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' -- ;; -- *) -- ld_shlibs_F77=no -- ;; -- esac -- fi -- ;; -- -- dgux*) -- archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' -- hardcode_libdir_flag_spec_F77='-L$libdir' -- hardcode_shlibpath_var_F77=no -- ;; -- -- freebsd1*) -- ld_shlibs_F77=no -- ;; -- -- # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor -- # support. Future versions do this automatically, but an explicit c++rt0.o -- # does not break anything, and helps significantly (at the cost of a little -- # extra space). -- freebsd2.2*) -- archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' -- hardcode_libdir_flag_spec_F77='-R$libdir' -- hardcode_direct_F77=yes -- hardcode_shlibpath_var_F77=no -- ;; -- -- # Unfortunately, older versions of FreeBSD 2 do not have this feature. -- freebsd2*) -- archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' -- hardcode_direct_F77=yes -- hardcode_minus_L_F77=yes -- hardcode_shlibpath_var_F77=no -- ;; -- -- # FreeBSD 3 and greater uses gcc -shared to do shared libraries. -- freebsd* | dragonfly*) -- archive_cmds_F77='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' -- hardcode_libdir_flag_spec_F77='-R$libdir' -- hardcode_direct_F77=yes -- hardcode_shlibpath_var_F77=no -- ;; -- -- hpux9*) -- if test "$GCC" = yes; then -- archive_cmds_F77='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' -- else -- archive_cmds_F77='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' -- fi -- hardcode_libdir_flag_spec_F77='${wl}+b ${wl}$libdir' -- hardcode_libdir_separator_F77=: -- hardcode_direct_F77=yes -- -- # hardcode_minus_L: Not really in the search PATH, -- # but as the default location of the library. -- hardcode_minus_L_F77=yes -- export_dynamic_flag_spec_F77='${wl}-E' -- ;; -- -- hpux10*) -- if test "$GCC" = yes -a "$with_gnu_ld" = no; then -- archive_cmds_F77='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' -- else -- archive_cmds_F77='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' -- fi -- if test "$with_gnu_ld" = no; then -- hardcode_libdir_flag_spec_F77='${wl}+b ${wl}$libdir' -- hardcode_libdir_separator_F77=: -- -- hardcode_direct_F77=yes -- export_dynamic_flag_spec_F77='${wl}-E' -- -- # hardcode_minus_L: Not really in the search PATH, -- # but as the default location of the library. -- hardcode_minus_L_F77=yes -- fi -- ;; -- -- hpux11*) -- if test "$GCC" = yes -a "$with_gnu_ld" = no; then -- case $host_cpu in -- hppa*64*) -- archive_cmds_F77='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' -- ;; -- ia64*) -- archive_cmds_F77='$CC -shared ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' -- ;; -- *) -- archive_cmds_F77='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' -- ;; -- esac -- else -- case $host_cpu in -- hppa*64*) -- archive_cmds_F77='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' -- ;; -- ia64*) -- archive_cmds_F77='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' -- ;; -- *) -- archive_cmds_F77='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' -- ;; -- esac -- fi -- if test "$with_gnu_ld" = no; then -- hardcode_libdir_flag_spec_F77='${wl}+b ${wl}$libdir' -- hardcode_libdir_separator_F77=: -- -- case $host_cpu in -- hppa*64*|ia64*) -- hardcode_libdir_flag_spec_ld_F77='+b $libdir' -- hardcode_direct_F77=no -- hardcode_shlibpath_var_F77=no -- ;; -- *) -- hardcode_direct_F77=yes -- export_dynamic_flag_spec_F77='${wl}-E' -- -- # hardcode_minus_L: Not really in the search PATH, -- # but as the default location of the library. -- hardcode_minus_L_F77=yes -- ;; -- esac -- fi -- ;; -- -- irix5* | irix6* | nonstopux*) -- if test "$GCC" = yes; then -- archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' -- else -- archive_cmds_F77='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' -- hardcode_libdir_flag_spec_ld_F77='-rpath $libdir' -- fi -- hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir' -- hardcode_libdir_separator_F77=: -- link_all_deplibs_F77=yes -- ;; -- -- netbsd* | netbsdelf*-gnu) -- if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then -- archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out -- else -- archive_cmds_F77='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF -- fi -- hardcode_libdir_flag_spec_F77='-R$libdir' -- hardcode_direct_F77=yes -- hardcode_shlibpath_var_F77=no -- ;; -- -- newsos6) -- archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' -- hardcode_direct_F77=yes -- hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir' -- hardcode_libdir_separator_F77=: -- hardcode_shlibpath_var_F77=no -- ;; -- -- openbsd*) -- if test -f /usr/libexec/ld.so; then -- hardcode_direct_F77=yes -- hardcode_shlibpath_var_F77=no -- if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then -- archive_cmds_F77='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' -- archive_expsym_cmds_F77='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' -- hardcode_libdir_flag_spec_F77='${wl}-rpath,$libdir' -- export_dynamic_flag_spec_F77='${wl}-E' -- else -- case $host_os in -- openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) -- archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' -- hardcode_libdir_flag_spec_F77='-R$libdir' -- ;; -- *) -- archive_cmds_F77='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' -- hardcode_libdir_flag_spec_F77='${wl}-rpath,$libdir' -- ;; -- esac -- fi -- else -- ld_shlibs_F77=no -- fi -- ;; -- -- os2*) -- hardcode_libdir_flag_spec_F77='-L$libdir' -- hardcode_minus_L_F77=yes -- allow_undefined_flag_F77=unsupported -- archive_cmds_F77='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' -- old_archive_From_new_cmds_F77='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' -- ;; -- -- osf3*) -- if test "$GCC" = yes; then -- allow_undefined_flag_F77=' ${wl}-expect_unresolved ${wl}\*' -- archive_cmds_F77='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' -- else -- allow_undefined_flag_F77=' -expect_unresolved \*' -- archive_cmds_F77='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' -- fi -- hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir' -- hardcode_libdir_separator_F77=: -- ;; -- -- osf4* | osf5*) # as osf3* with the addition of -msym flag -- if test "$GCC" = yes; then -- allow_undefined_flag_F77=' ${wl}-expect_unresolved ${wl}\*' -- archive_cmds_F77='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' -- hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir' -- else -- allow_undefined_flag_F77=' -expect_unresolved \*' -- archive_cmds_F77='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' -- archive_expsym_cmds_F77='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~ -- $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~$rm $lib.exp' -- -- # Both c and cxx compiler support -rpath directly -- hardcode_libdir_flag_spec_F77='-rpath $libdir' -- fi -- hardcode_libdir_separator_F77=: -- ;; -- -- solaris*) -- no_undefined_flag_F77=' -z text' -- if test "$GCC" = yes; then -- wlarc='${wl}' -- archive_cmds_F77='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' -- archive_expsym_cmds_F77='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ -- $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp' -- else -- wlarc='' -- archive_cmds_F77='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' -- archive_expsym_cmds_F77='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ -- $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp' -- fi -- hardcode_libdir_flag_spec_F77='-R$libdir' -- hardcode_shlibpath_var_F77=no -- case $host_os in -- solaris2.[0-5] | solaris2.[0-5].*) ;; -- *) -- # The compiler driver will combine and reorder linker options, -- # but understands `-z linker_flag'. GCC discards it without `$wl', -- # but is careful enough not to reorder. -- # Supported since Solaris 2.6 (maybe 2.5.1?) -- if test "$GCC" = yes; then -- whole_archive_flag_spec_F77='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' -- else -- whole_archive_flag_spec_F77='-z allextract$convenience -z defaultextract' -- fi -- ;; -- esac -- link_all_deplibs_F77=yes -- ;; -- -- sunos4*) -- if test "x$host_vendor" = xsequent; then -- # Use $CC to link under sequent, because it throws in some extra .o -- # files that make .init and .fini sections work. -- archive_cmds_F77='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' -- else -- archive_cmds_F77='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' -- fi -- hardcode_libdir_flag_spec_F77='-L$libdir' -- hardcode_direct_F77=yes -- hardcode_minus_L_F77=yes -- hardcode_shlibpath_var_F77=no -- ;; -- -- sysv4) -- case $host_vendor in -- sni) -- archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' -- hardcode_direct_F77=yes # is this really true??? -- ;; -- siemens) -- ## LD is ld it makes a PLAMLIB -- ## CC just makes a GrossModule. -- archive_cmds_F77='$LD -G -o $lib $libobjs $deplibs $linker_flags' -- reload_cmds_F77='$CC -r -o $output$reload_objs' -- hardcode_direct_F77=no -- ;; -- motorola) -- archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' -- hardcode_direct_F77=no #Motorola manual says yes, but my tests say they lie -- ;; -- esac -- runpath_var='LD_RUN_PATH' -- hardcode_shlibpath_var_F77=no -- ;; -- -- sysv4.3*) -- archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' -- hardcode_shlibpath_var_F77=no -- export_dynamic_flag_spec_F77='-Bexport' -- ;; -- -- sysv4*MP*) -- if test -d /usr/nec; then -- archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' -- hardcode_shlibpath_var_F77=no -- runpath_var=LD_RUN_PATH -- hardcode_runpath_var=yes -- ld_shlibs_F77=yes -- fi -- ;; -- -- sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) -- no_undefined_flag_F77='${wl}-z,text' -- archive_cmds_need_lc_F77=no -- hardcode_shlibpath_var_F77=no -- runpath_var='LD_RUN_PATH' -- -- if test "$GCC" = yes; then -- archive_cmds_F77='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' -- archive_expsym_cmds_F77='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' -- else -- archive_cmds_F77='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' -- archive_expsym_cmds_F77='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' -- fi -- ;; -- -- sysv5* | sco3.2v5* | sco5v6*) -- # Note: We can NOT use -z defs as we might desire, because we do not -- # link with -lc, and that would cause any symbols used from libc to -- # always be unresolved, which means just about no library would -- # ever link correctly. If we're not using GNU ld we use -z text -- # though, which does catch some bad symbols but isn't as heavy-handed -- # as -z defs. -- no_undefined_flag_F77='${wl}-z,text' -- allow_undefined_flag_F77='${wl}-z,nodefs' -- archive_cmds_need_lc_F77=no -- hardcode_shlibpath_var_F77=no -- hardcode_libdir_flag_spec_F77='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' -- hardcode_libdir_separator_F77=':' -- link_all_deplibs_F77=yes -- export_dynamic_flag_spec_F77='${wl}-Bexport' -- runpath_var='LD_RUN_PATH' -- -- if test "$GCC" = yes; then -- archive_cmds_F77='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' -- archive_expsym_cmds_F77='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' -- else -- archive_cmds_F77='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' -- archive_expsym_cmds_F77='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' -- fi -- ;; -- -- uts4*) -- archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' -- hardcode_libdir_flag_spec_F77='-L$libdir' -- hardcode_shlibpath_var_F77=no -- ;; -- -- *) -- ld_shlibs_F77=no -- ;; -- esac -- fi -- --{ echo "$as_me:$LINENO: result: $ld_shlibs_F77" >&5 --echo "${ECHO_T}$ld_shlibs_F77" >&6; } --test "$ld_shlibs_F77" = no && can_build_shared=no -- --# --# Do we need to explicitly link libc? --# --case "x$archive_cmds_need_lc_F77" in --x|xyes) -- # Assume -lc should be added -- archive_cmds_need_lc_F77=yes -- -- if test "$enable_shared" = yes && test "$GCC" = yes; then -- case $archive_cmds_F77 in -- *'~'*) -- # FIXME: we may have to deal with multi-command sequences. -- ;; -- '$CC '*) -- # Test whether the compiler implicitly links with -lc since on 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; } -- $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 -- (exit $ac_status); } 2>conftest.err; then -- soname=conftest -- lib=conftest -- libobjs=conftest.$ac_objext -- deplibs= -- wl=$lt_prog_compiler_wl_F77 -- pic_flag=$lt_prog_compiler_pic_F77 -- compiler_flags=-v -- linker_flags=-v -- verstring= -- output_objdir=. -- libname=conftest -- lt_save_allow_undefined_flag=$allow_undefined_flag_F77 -- allow_undefined_flag_F77= -- 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 -- (exit $ac_status); } -- then -- archive_cmds_need_lc_F77=no -- else -- archive_cmds_need_lc_F77=yes -- fi -- allow_undefined_flag_F77=$lt_save_allow_undefined_flag -- else -- cat conftest.err 1>&5 -- fi -- $rm conftest* -- { echo "$as_me:$LINENO: result: $archive_cmds_need_lc_F77" >&5 --echo "${ECHO_T}$archive_cmds_need_lc_F77" >&6; } -- ;; -- esac -- fi -- ;; --esac -- --{ echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5 --echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6; } --library_names_spec= --libname_spec='lib$name' --soname_spec= --shrext_cmds=".so" --postinstall_cmds= --postuninstall_cmds= --finish_cmds= --finish_eval= --shlibpath_var= --shlibpath_overrides_runpath=unknown --version_type=none --dynamic_linker="$host_os ld.so" --sys_lib_dlsearch_path_spec="/lib /usr/lib" -- --need_lib_prefix=unknown --hardcode_into_libs=no -- --# when you set need_version to no, make sure it does not cause -set_version --# flags to be left without arguments --need_version=unknown -- --case $host_os in --aix3*) -- version_type=linux -- library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' -- shlibpath_var=LIBPATH -- -- # AIX 3 has no versioning support, so we append a major version to the name. -- soname_spec='${libname}${release}${shared_ext}$major' -- ;; -- --aix[4-9]*) -- version_type=linux -- need_lib_prefix=no -- need_version=no -- hardcode_into_libs=yes -- if test "$host_cpu" = ia64; then -- # AIX 5 supports IA64 -- library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' -- shlibpath_var=LD_LIBRARY_PATH -- else -- # With GCC up to 2.95.x, collect2 would create an import file -- # for dependence libraries. The import file would start with -- # the line `#! .'. This would cause the generated library to -- # depend on `.', always an invalid library. This was fixed in -- # development snapshots of GCC prior to 3.0. -- case $host_os in -- aix4 | aix4.[01] | aix4.[01].*) -- if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' -- echo ' yes ' -- echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then -- : -- else -- can_build_shared=no -- fi -- ;; -- esac -- # AIX (on Power*) has no versioning support, so currently we can not hardcode correct -- # soname into executable. Probably we can add versioning support to -- # collect2, so additional links can be useful in future. -- if test "$aix_use_runtimelinking" = yes; then -- # If using run time linking (on AIX 4.2 or later) use lib.so -- # instead of lib.a to let people know that these are not -- # typical AIX shared libraries. -- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' -- else -- # We preserve .a as extension for shared libraries through AIX4.2 -- # and later when we are not doing run time linking. -- library_names_spec='${libname}${release}.a $libname.a' -- soname_spec='${libname}${release}${shared_ext}$major' -- fi -- shlibpath_var=LIBPATH -- fi -- ;; -- --amigaos*) -- library_names_spec='$libname.ixlibrary $libname.a' -- # Create ${libname}_ixlibrary.a entries in /sys/libs. -- finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' -- ;; -- --beos*) -- library_names_spec='${libname}${shared_ext}' -- dynamic_linker="$host_os ld.so" -- shlibpath_var=LIBRARY_PATH -- ;; -- --bsdi[45]*) -- version_type=linux -- need_version=no -- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' -- soname_spec='${libname}${release}${shared_ext}$major' -- finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' -- shlibpath_var=LD_LIBRARY_PATH -- sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" -- sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" -- # the default ld.so.conf also contains /usr/contrib/lib and -- # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow -- # libtool to hard-code these into programs -- ;; -- --cygwin* | mingw* | pw32*) -- version_type=windows -- shrext_cmds=".dll" -- need_version=no -- need_lib_prefix=no -- -- case $GCC,$host_os in -- yes,cygwin* | yes,mingw* | yes,pw32*) -- library_names_spec='$libname.dll.a' -- # DLL is installed to $(libdir)/../bin by postinstall_cmds -- postinstall_cmds='base_file=`basename \${file}`~ -- dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~ -- dldir=$destdir/`dirname \$dlpath`~ -- test -d \$dldir || mkdir -p \$dldir~ -- $install_prog $dir/$dlname \$dldir/$dlname~ -- chmod a+x \$dldir/$dlname' -- postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ -- dlpath=$dir/\$dldll~ -- $rm \$dlpath' -- shlibpath_overrides_runpath=yes -- -- case $host_os in -- cygwin*) -- # Cygwin DLLs use 'cyg' prefix rather than 'lib' -- soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' -- sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" -- ;; -- mingw*) -- # MinGW DLLs use traditional 'lib' prefix -- soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' -- sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` -- if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then -- # It is most probably a Windows format PATH printed by -- # mingw gcc, but we are running on Cygwin. Gcc prints its search -- # path with ; separators, and with drive letters. We can handle the -- # drive letters (cygwin fileutils understands them), so leave them, -- # especially as we might pass files found there to a mingw objdump, -- # which wouldn't understand a cygwinified path. Ahh. -- sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` -- else -- sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` -- fi -- ;; -- pw32*) -- # pw32 DLLs use 'pw' prefix rather than 'lib' -- library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' -- ;; -- esac -- ;; -- -- *) -- library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' -- ;; -- esac -- dynamic_linker='Win32 ld.exe' -- # FIXME: first we should search . and the directory the executable is in -- shlibpath_var=PATH -- ;; -- --darwin* | rhapsody*) -- dynamic_linker="$host_os dyld" -- version_type=darwin -- need_lib_prefix=no -- need_version=no -- library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext' -- soname_spec='${libname}${release}${major}$shared_ext' -- shlibpath_overrides_runpath=yes -- shlibpath_var=DYLD_LIBRARY_PATH -- shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' -- -- sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' -- ;; -- --dgux*) -- version_type=linux -- need_lib_prefix=no -- need_version=no -- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' -- soname_spec='${libname}${release}${shared_ext}$major' -- shlibpath_var=LD_LIBRARY_PATH -- ;; -- --freebsd1*) -- dynamic_linker=no -- ;; -- --freebsd* | dragonfly*) -- # DragonFly does not have aout. When/if they implement a new -- # versioning mechanism, adjust this. -- if test -x /usr/bin/objformat; then -- objformat=`/usr/bin/objformat` -- else -- case $host_os in -- freebsd[123]*) objformat=aout ;; -- *) objformat=elf ;; -- esac -- fi -- version_type=freebsd-$objformat -- case $version_type in -- freebsd-elf*) -- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' -- need_version=no -- need_lib_prefix=no -- ;; -- freebsd-*) -- library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' -- need_version=yes -- ;; -- esac -- shlibpath_var=LD_LIBRARY_PATH -- case $host_os in -- freebsd2*) -- shlibpath_overrides_runpath=yes -- ;; -- freebsd3.[01]* | freebsdelf3.[01]*) -- shlibpath_overrides_runpath=yes -- hardcode_into_libs=yes -- ;; -- freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ -- freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) -- shlibpath_overrides_runpath=no -- hardcode_into_libs=yes -- ;; -- *) # from 4.6 on, and DragonFly -- shlibpath_overrides_runpath=yes -- hardcode_into_libs=yes -- ;; -- esac -- ;; -- --gnu*) -- version_type=linux -- need_lib_prefix=no -- need_version=no -- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' -- soname_spec='${libname}${release}${shared_ext}$major' -- shlibpath_var=LD_LIBRARY_PATH -- hardcode_into_libs=yes -- ;; -- --hpux9* | hpux10* | hpux11*) -- # Give a soname corresponding to the major version so that dld.sl refuses to -- # link against other versions. -- version_type=sunos -- need_lib_prefix=no -- need_version=no -- case $host_cpu in -- ia64*) -- shrext_cmds='.so' -- hardcode_into_libs=yes -- dynamic_linker="$host_os dld.so" -- shlibpath_var=LD_LIBRARY_PATH -- shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. -- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' -- soname_spec='${libname}${release}${shared_ext}$major' -- if test "X$HPUX_IA64_MODE" = X32; then -- sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" -- else -- sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" -- fi -- sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec -- ;; -- hppa*64*) -- shrext_cmds='.sl' -- hardcode_into_libs=yes -- dynamic_linker="$host_os dld.sl" -- shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH -- shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. -- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' -- soname_spec='${libname}${release}${shared_ext}$major' -- sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" -- sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec -- ;; -- *) -- shrext_cmds='.sl' -- dynamic_linker="$host_os dld.sl" -- shlibpath_var=SHLIB_PATH -- shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH -- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' -- soname_spec='${libname}${release}${shared_ext}$major' -- ;; -- esac -- # HP-UX runs *really* slowly unless shared libraries are mode 555. -- postinstall_cmds='chmod 555 $lib' -- ;; -- --interix[3-9]*) -- version_type=linux -- need_lib_prefix=no -- need_version=no -- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' -- soname_spec='${libname}${release}${shared_ext}$major' -- dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' -- shlibpath_var=LD_LIBRARY_PATH -- shlibpath_overrides_runpath=no -- hardcode_into_libs=yes -- ;; -- --irix5* | irix6* | nonstopux*) -- case $host_os in -- nonstopux*) version_type=nonstopux ;; -- *) -- if test "$lt_cv_prog_gnu_ld" = yes; then -- version_type=linux -- else -- version_type=irix -- fi ;; -- esac -- need_lib_prefix=no -- need_version=no -- soname_spec='${libname}${release}${shared_ext}$major' -- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' -- case $host_os in -- irix5* | nonstopux*) -- libsuff= shlibsuff= -- ;; -- *) -- case $LD in # libtool.m4 will add one of these switches to LD -- *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") -- libsuff= shlibsuff= libmagic=32-bit;; -- *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") -- libsuff=32 shlibsuff=N32 libmagic=N32;; -- *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") -- libsuff=64 shlibsuff=64 libmagic=64-bit;; -- *) libsuff= shlibsuff= libmagic=never-match;; -- esac -- ;; -- esac -- shlibpath_var=LD_LIBRARY${shlibsuff}_PATH -- shlibpath_overrides_runpath=no -- sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" -- sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" -- hardcode_into_libs=yes -- ;; -- --# No shared lib support for Linux oldld, aout, or coff. --linux*oldld* | linux*aout* | linux*coff*) -- dynamic_linker=no -- ;; -- --# This must be Linux ELF. --linux* | k*bsd*-gnu) -- version_type=linux -- need_lib_prefix=no -- need_version=no -- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' -- soname_spec='${libname}${release}${shared_ext}$major' -- finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' -- shlibpath_var=LD_LIBRARY_PATH -- shlibpath_overrides_runpath=no -- # This implies no fast_install, which is unacceptable. -- # Some rework will be needed to allow for fast_install -- # before this can be enabled. -- hardcode_into_libs=yes -- -- # Append ld.so.conf contents to the search path -- if test -f /etc/ld.so.conf; then -- lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` -- sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" -- fi -- -- # We used to test for /lib/ld.so.1 and disable shared libraries on -- # powerpc, because MkLinux only supported shared libraries with the -- # GNU dynamic linker. Since this was broken with cross compilers, -- # most powerpc-linux boxes support dynamic linking these days and -- # people can always --disable-shared, the test was removed, and we -- # assume the GNU/Linux dynamic linker is in use. -- dynamic_linker='GNU/Linux ld.so' -- ;; -- --netbsdelf*-gnu) -- version_type=linux -- need_lib_prefix=no -- need_version=no -- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' -- soname_spec='${libname}${release}${shared_ext}$major' -- shlibpath_var=LD_LIBRARY_PATH -- shlibpath_overrides_runpath=no -- hardcode_into_libs=yes -- dynamic_linker='NetBSD ld.elf_so' -- ;; -- --netbsd*) -- version_type=sunos -- need_lib_prefix=no -- need_version=no -- if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then -- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' -- finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' -- dynamic_linker='NetBSD (a.out) ld.so' -- else -- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' -- soname_spec='${libname}${release}${shared_ext}$major' -- dynamic_linker='NetBSD ld.elf_so' -- fi -- shlibpath_var=LD_LIBRARY_PATH -- shlibpath_overrides_runpath=yes -- hardcode_into_libs=yes -- ;; -- --newsos6) -- version_type=linux -- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' -- shlibpath_var=LD_LIBRARY_PATH -- shlibpath_overrides_runpath=yes -- ;; -- --nto-qnx*) -- version_type=linux -- need_lib_prefix=no -- need_version=no -- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' -- soname_spec='${libname}${release}${shared_ext}$major' -- shlibpath_var=LD_LIBRARY_PATH -- shlibpath_overrides_runpath=yes -- ;; -- --openbsd*) -- version_type=sunos -- sys_lib_dlsearch_path_spec="/usr/lib" -- need_lib_prefix=no -- # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. -- case $host_os in -- openbsd3.3 | openbsd3.3.*) need_version=yes ;; -- *) need_version=no ;; -- esac -- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' -- finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' -- shlibpath_var=LD_LIBRARY_PATH -- if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then -- case $host_os in -- openbsd2.[89] | openbsd2.[89].*) -- shlibpath_overrides_runpath=no -- ;; -- *) -- shlibpath_overrides_runpath=yes -- ;; -- esac -- else -- shlibpath_overrides_runpath=yes -- fi -- ;; -- --os2*) -- libname_spec='$name' -- shrext_cmds=".dll" -- need_lib_prefix=no -- library_names_spec='$libname${shared_ext} $libname.a' -- dynamic_linker='OS/2 ld.exe' -- shlibpath_var=LIBPATH -- ;; -- --osf3* | osf4* | osf5*) -- version_type=osf -- need_lib_prefix=no -- need_version=no -- soname_spec='${libname}${release}${shared_ext}$major' -- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' -- shlibpath_var=LD_LIBRARY_PATH -- sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" -- sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" -- ;; -- --rdos*) -- dynamic_linker=no -- ;; -- --solaris*) -- version_type=linux -- need_lib_prefix=no -- need_version=no -- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' -- soname_spec='${libname}${release}${shared_ext}$major' -- shlibpath_var=LD_LIBRARY_PATH -- shlibpath_overrides_runpath=yes -- hardcode_into_libs=yes -- # ldd complains unless libraries are executable -- postinstall_cmds='chmod +x $lib' -- ;; -- --sunos4*) -- version_type=sunos -- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' -- finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' -- shlibpath_var=LD_LIBRARY_PATH -- shlibpath_overrides_runpath=yes -- if test "$with_gnu_ld" = yes; then -- need_lib_prefix=no -- fi -- need_version=yes -- ;; -- --sysv4 | sysv4.3*) -- version_type=linux -- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' -- soname_spec='${libname}${release}${shared_ext}$major' -- shlibpath_var=LD_LIBRARY_PATH -- case $host_vendor in -- sni) -- shlibpath_overrides_runpath=no -- need_lib_prefix=no -- export_dynamic_flag_spec='${wl}-Blargedynsym' -- runpath_var=LD_RUN_PATH -- ;; -- siemens) -- need_lib_prefix=no -- ;; -- motorola) -- need_lib_prefix=no -- need_version=no -- shlibpath_overrides_runpath=no -- sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' -- ;; -- esac -- ;; -- --sysv4*MP*) -- if test -d /usr/nec ;then -- version_type=linux -- library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' -- soname_spec='$libname${shared_ext}.$major' -- shlibpath_var=LD_LIBRARY_PATH -- fi -- ;; -- --sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) -- version_type=freebsd-elf -- need_lib_prefix=no -- need_version=no -- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' -- soname_spec='${libname}${release}${shared_ext}$major' -- shlibpath_var=LD_LIBRARY_PATH -- hardcode_into_libs=yes -- if test "$with_gnu_ld" = yes; then -- sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' -- shlibpath_overrides_runpath=no -- else -- sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' -- shlibpath_overrides_runpath=yes -- case $host_os in -- sco3.2v5*) -- sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" -- ;; -- esac -- fi -- sys_lib_dlsearch_path_spec='/usr/lib' -- ;; -- --uts4*) -- version_type=linux -- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' -- soname_spec='${libname}${release}${shared_ext}$major' -- shlibpath_var=LD_LIBRARY_PATH -- ;; -- --*) -- dynamic_linker=no -- ;; --esac --{ echo "$as_me:$LINENO: result: $dynamic_linker" >&5 --echo "${ECHO_T}$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 --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 --else -- lt_cv_sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec" --fi -- --sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" -- --variables_saved_for_relink="PATH $shlibpath_var $runpath_var" --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; } --hardcode_action_F77= --if test -n "$hardcode_libdir_flag_spec_F77" || \ -- test -n "$runpath_var_F77" || \ -- test "X$hardcode_automatic_F77" = "Xyes" ; then -- -- # We can hardcode non-existant directories. -- if test "$hardcode_direct_F77" != no && -- # If the only mechanism to avoid hardcoding is shlibpath_var, we -- # have to relink, otherwise we might link with an installed library -- # when we should be linking with a yet-to-be-installed one -- ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, F77)" != no && -- test "$hardcode_minus_L_F77" != no; then -- # Linking always hardcodes the temporary library directory. -- hardcode_action_F77=relink -- else -- # We can link without hardcoding, and we can hardcode nonexisting dirs. -- hardcode_action_F77=immediate -- fi --else -- # We cannot hardcode anything, or else we can only hardcode existing -- # directories. -- hardcode_action_F77=unsupported --fi --{ echo "$as_me:$LINENO: result: $hardcode_action_F77" >&5 --echo "${ECHO_T}$hardcode_action_F77" >&6; } -- --if test "$hardcode_action_F77" = relink; then -- # Fast installation is not supported -- enable_fast_install=no --elif test "$shlibpath_overrides_runpath" = yes || -- test "$enable_shared" = no; then -- # Fast installation is not necessary -- enable_fast_install=needless --fi -- -- --# The else clause should only fire when bootstrapping the --# libtool distribution, otherwise you forgot to ship ltmain.sh --# with your package, and you will get complaints that there are --# no rules to generate ltmain.sh. --if test -f "$ltmain"; then -- # See if we are running on zsh, and set the options which allow our commands through -- # without removal of \ escapes. -- if test -n "${ZSH_VERSION+set}" ; then -- setopt NO_GLOB_SUBST -- fi -- # Now quote all the things that may contain metacharacters while being -- # careful not to overquote the AC_SUBSTed values. We take copies of the -- # variables and quote the copies for generation of the libtool script. -- for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \ -- SED SHELL STRIP \ -- libname_spec library_names_spec soname_spec extract_expsyms_cmds \ -- old_striplib striplib file_magic_cmd finish_cmds finish_eval \ -- deplibs_check_method reload_flag reload_cmds need_locks \ -- lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ -- lt_cv_sys_global_symbol_to_c_name_address \ -- sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ -- old_postinstall_cmds old_postuninstall_cmds \ -- compiler_F77 \ -- CC_F77 \ -- LD_F77 \ -- lt_prog_compiler_wl_F77 \ -- lt_prog_compiler_pic_F77 \ -- lt_prog_compiler_static_F77 \ -- lt_prog_compiler_no_builtin_flag_F77 \ -- export_dynamic_flag_spec_F77 \ -- thread_safe_flag_spec_F77 \ -- whole_archive_flag_spec_F77 \ -- enable_shared_with_static_runtimes_F77 \ -- old_archive_cmds_F77 \ -- old_archive_from_new_cmds_F77 \ -- predep_objects_F77 \ -- postdep_objects_F77 \ -- predeps_F77 \ -- postdeps_F77 \ -- compiler_lib_search_path_F77 \ -- compiler_lib_search_dirs_F77 \ -- archive_cmds_F77 \ -- archive_expsym_cmds_F77 \ -- postinstall_cmds_F77 \ -- postuninstall_cmds_F77 \ -- old_archive_from_expsyms_cmds_F77 \ -- allow_undefined_flag_F77 \ -- no_undefined_flag_F77 \ -- export_symbols_cmds_F77 \ -- hardcode_libdir_flag_spec_F77 \ -- hardcode_libdir_flag_spec_ld_F77 \ -- hardcode_libdir_separator_F77 \ -- hardcode_automatic_F77 \ -- module_cmds_F77 \ -- module_expsym_cmds_F77 \ -- lt_cv_prog_compiler_c_o_F77 \ -- fix_srcfile_path_F77 \ -- exclude_expsyms_F77 \ -- include_expsyms_F77; do -- -- case $var in -- old_archive_cmds_F77 | \ -- old_archive_from_new_cmds_F77 | \ -- archive_cmds_F77 | \ -- archive_expsym_cmds_F77 | \ -- module_cmds_F77 | \ -- module_expsym_cmds_F77 | \ -- old_archive_from_expsyms_cmds_F77 | \ -- export_symbols_cmds_F77 | \ -- extract_expsyms_cmds | reload_cmds | finish_cmds | \ -- postinstall_cmds | postuninstall_cmds | \ -- old_postinstall_cmds | old_postuninstall_cmds | \ -- sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) -- # Double-quote double-evaled strings. -- eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" -- ;; -- *) -- eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" -- ;; -- esac -- done -- -- case $lt_echo in -- *'\$0 --fallback-echo"') -- lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` -- ;; -- esac -- --cfgfile="$ofile" -- -- cat <<__EOF__ >> "$cfgfile" --# ### BEGIN LIBTOOL TAG CONFIG: $tagname -- --# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: -- --# Shell to use when invoking shell scripts. --SHELL=$lt_SHELL -- --# Whether or not to build shared libraries. --build_libtool_libs=$enable_shared -- --# Whether or not to build static libraries. --build_old_libs=$enable_static -- --# Whether or not to add -lc for building shared libraries. --build_libtool_need_lc=$archive_cmds_need_lc_F77 -- --# Whether or not to disallow shared libs when runtime libs are static --allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_F77 -- --# Whether or not to optimize for fast installation. --fast_install=$enable_fast_install -- --# The host system. --host_alias=$host_alias --host=$host --host_os=$host_os -- --# The build system. --build_alias=$build_alias --build=$build --build_os=$build_os -- --# An echo program that does not interpret backslashes. --echo=$lt_echo -- --# The archiver. --AR=$lt_AR --AR_FLAGS=$lt_AR_FLAGS -- --# A C compiler. --LTCC=$lt_LTCC -- --# LTCC compiler flags. --LTCFLAGS=$lt_LTCFLAGS -- --# A language-specific compiler. --CC=$lt_compiler_F77 -- --# Is the compiler the GNU C compiler? --with_gcc=$GCC_F77 -- --# An ERE matcher. --EGREP=$lt_EGREP -- --# The linker used to build libraries. --LD=$lt_LD_F77 -- --# Whether we need hard or soft links. --LN_S=$lt_LN_S -- --# A BSD-compatible nm program. --NM=$lt_NM -- --# A symbol stripping program --STRIP=$lt_STRIP -- --# Used to examine libraries when file_magic_cmd begins "file" --MAGIC_CMD=$MAGIC_CMD -- --# Used on cygwin: DLL creation program. --DLLTOOL="$DLLTOOL" -- --# Used on cygwin: object dumper. --OBJDUMP="$OBJDUMP" -- --# Used on cygwin: assembler. --AS="$AS" -- --# The name of the directory that contains temporary libtool files. --objdir=$objdir -- --# How to create reloadable object files. --reload_flag=$lt_reload_flag --reload_cmds=$lt_reload_cmds -- --# How to pass a linker flag through the compiler. --wl=$lt_lt_prog_compiler_wl_F77 -- --# Object file suffix (normally "o"). --objext="$ac_objext" -- --# Old archive suffix (normally "a"). --libext="$libext" -- --# Shared library suffix (normally ".so"). --shrext_cmds='$shrext_cmds' -- --# Executable file suffix (normally ""). --exeext="$exeext" -- --# Additional compiler flags for building library objects. --pic_flag=$lt_lt_prog_compiler_pic_F77 --pic_mode=$pic_mode -- --# What is the maximum length of a command? --max_cmd_len=$lt_cv_sys_max_cmd_len -- --# Does compiler simultaneously support -c and -o options? --compiler_c_o=$lt_lt_cv_prog_compiler_c_o_F77 -- --# Must we lock files when doing compilation? --need_locks=$lt_need_locks -- --# Do we need the lib prefix for modules? --need_lib_prefix=$need_lib_prefix -- --# Do we need a version for libraries? --need_version=$need_version -- --# Whether dlopen is supported. --dlopen_support=$enable_dlopen -- --# Whether dlopen of programs is supported. --dlopen_self=$enable_dlopen_self -- --# Whether dlopen of statically linked programs is supported. --dlopen_self_static=$enable_dlopen_self_static -- --# Compiler flag to prevent dynamic linking. --link_static_flag=$lt_lt_prog_compiler_static_F77 -- --# Compiler flag to turn off builtin functions. --no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_F77 -- --# Compiler flag to allow reflexive dlopens. --export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_F77 -- --# Compiler flag to generate shared objects directly from archives. --whole_archive_flag_spec=$lt_whole_archive_flag_spec_F77 -- --# Compiler flag to generate thread-safe objects. --thread_safe_flag_spec=$lt_thread_safe_flag_spec_F77 -- --# Library versioning type. --version_type=$version_type -- --# Format of library name prefix. --libname_spec=$lt_libname_spec -- --# List of archive names. First name is the real one, the rest are links. --# The last name is the one that the linker finds with -lNAME. --library_names_spec=$lt_library_names_spec -- --# The coded name of the library, if different from the real name. --soname_spec=$lt_soname_spec -- --# Commands used to build and install an old-style archive. --RANLIB=$lt_RANLIB --old_archive_cmds=$lt_old_archive_cmds_F77 --old_postinstall_cmds=$lt_old_postinstall_cmds --old_postuninstall_cmds=$lt_old_postuninstall_cmds -- --# Create an old-style archive from a shared archive. --old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_F77 -- --# Create a temporary old-style archive to link instead of a shared archive. --old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_F77 -- --# Commands used to build and install a shared archive. --archive_cmds=$lt_archive_cmds_F77 --archive_expsym_cmds=$lt_archive_expsym_cmds_F77 --postinstall_cmds=$lt_postinstall_cmds --postuninstall_cmds=$lt_postuninstall_cmds -- --# Commands used to build a loadable module (assumed same as above if empty) --module_cmds=$lt_module_cmds_F77 --module_expsym_cmds=$lt_module_expsym_cmds_F77 -- --# Commands to strip libraries. --old_striplib=$lt_old_striplib --striplib=$lt_striplib -- --# Dependencies to place before the objects being linked to create a --# shared library. --predep_objects=$lt_predep_objects_F77 -- --# Dependencies to place after the objects being linked to create a --# shared library. --postdep_objects=$lt_postdep_objects_F77 -- --# Dependencies to place before the objects being linked to create a --# shared library. --predeps=$lt_predeps_F77 -- --# Dependencies to place after the objects being linked to create a --# shared library. --postdeps=$lt_postdeps_F77 -- --# The directories searched by this compiler when creating a shared --# library --compiler_lib_search_dirs=$lt_compiler_lib_search_dirs_F77 -- --# The library search path used internally by the compiler when linking --# a shared library. --compiler_lib_search_path=$lt_compiler_lib_search_path_F77 -- --# Method to check whether dependent libraries are shared objects. --deplibs_check_method=$lt_deplibs_check_method -- --# Command to use when deplibs_check_method == file_magic. --file_magic_cmd=$lt_file_magic_cmd -- --# Flag that allows shared libraries with undefined symbols to be built. --allow_undefined_flag=$lt_allow_undefined_flag_F77 -- --# Flag that forces no undefined symbols. --no_undefined_flag=$lt_no_undefined_flag_F77 -- --# Commands used to finish a libtool library installation in a directory. --finish_cmds=$lt_finish_cmds -- --# Same as above, but a single script fragment to be evaled but not shown. --finish_eval=$lt_finish_eval -- --# Take the output of nm and produce a listing of raw symbols and C names. --global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe -- --# Transform the output of nm in a proper C declaration --global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl -- --# Transform the output of nm in a C name address pair --global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address -- --# This is the shared library runtime path variable. --runpath_var=$runpath_var -- --# This is the shared library path variable. --shlibpath_var=$shlibpath_var -- --# Is shlibpath searched before the hard-coded library search path? --shlibpath_overrides_runpath=$shlibpath_overrides_runpath -- --# How to hardcode a shared library path into an executable. --hardcode_action=$hardcode_action_F77 -- --# Whether we should hardcode library paths into libraries. --hardcode_into_libs=$hardcode_into_libs -- --# Flag to hardcode \$libdir into a binary during linking. --# This must work even if \$libdir does not exist. --hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_F77 -- --# If ld is used when linking, flag to hardcode \$libdir into --# a binary during linking. This must work even if \$libdir does --# not exist. --hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_F77 -- --# Whether we need a single -rpath flag with a separated argument. --hardcode_libdir_separator=$lt_hardcode_libdir_separator_F77 -- --# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the --# resulting binary. --hardcode_direct=$hardcode_direct_F77 -- --# Set to yes if using the -LDIR flag during linking hardcodes DIR into the --# resulting binary. --hardcode_minus_L=$hardcode_minus_L_F77 -- --# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into --# the resulting binary. --hardcode_shlibpath_var=$hardcode_shlibpath_var_F77 -- --# Set to yes if building a shared library automatically hardcodes DIR into the library --# and all subsequent libraries and executables linked against it. --hardcode_automatic=$hardcode_automatic_F77 -- --# Variables whose values should be saved in libtool wrapper scripts and --# restored at relink time. --variables_saved_for_relink="$variables_saved_for_relink" -- --# Whether libtool must link a program against all its dependency libraries. --link_all_deplibs=$link_all_deplibs_F77 -- --# Compile-time system search path for libraries --sys_lib_search_path_spec=$lt_sys_lib_search_path_spec -- --# Run-time system search path for libraries --sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec -- --# Fix the shell variable \$srcfile for the compiler. --fix_srcfile_path=$lt_fix_srcfile_path -- --# Set to yes if exported symbols are required. --always_export_symbols=$always_export_symbols_F77 -- --# The commands to list exported symbols. --export_symbols_cmds=$lt_export_symbols_cmds_F77 -- --# The commands to extract the exported symbol list from a shared archive. --extract_expsyms_cmds=$lt_extract_expsyms_cmds -- --# Symbols that should not be listed in the preloaded symbols. --exclude_expsyms=$lt_exclude_expsyms_F77 -- --# Symbols that must always be exported. --include_expsyms=$lt_include_expsyms_F77 -- --# ### END LIBTOOL TAG CONFIG: $tagname -- --__EOF__ -- -- --else -- # If there is no Makefile yet, we rely on a make rule to execute -- # `config.status --recheck' to rerun these tests and create the -- # libtool script then. -- ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` -- if test -f "$ltmain_in"; then -- test -f Makefile && make "$ltmain" -- fi --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 -- --CC="$lt_save_CC" -- -- else -- tagname="" -- fi -- ;; -- -- GCJ) -- if test -n "$GCJ" && test "X$GCJ" != "Xno"; then -- -- --# Source file extension for Java test sources. --ac_ext=java -- --# Object file extension for compiled Java test sources. --objext=o --objext_GCJ=$objext -- --# Code to be used in simple compile tests --lt_simple_compile_test_code="class foo {}" -- --# Code to be used in simple link tests --lt_simple_link_test_code='public class conftest { public static void main(String[] argv) {}; }' -- --# ltmain only uses $CC for tagged configurations so make sure $CC is set. -- --# If no C compiler was specified, use CC. --LTCC=${LTCC-"$CC"} -- --# If no C compiler flags were specified, use CFLAGS. --LTCFLAGS=${LTCFLAGS-"$CFLAGS"} -- --# Allow CC to be a program name with arguments. --compiler=$CC -- -- --# save warnings/boilerplate of simple test code --ac_outfile=conftest.$ac_objext --echo "$lt_simple_compile_test_code" >conftest.$ac_ext --eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err --_lt_compiler_boilerplate=`cat conftest.err` --$rm conftest* -- --ac_outfile=conftest.$ac_objext --echo "$lt_simple_link_test_code" >conftest.$ac_ext --eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err --_lt_linker_boilerplate=`cat conftest.err` --$rm -r conftest* -- -- --# Allow CC to be a program name with arguments. --lt_save_CC="$CC" --CC=${GCJ-"gcj"} --compiler=$CC --compiler_GCJ=$CC --for cc_temp in $compiler""; do -- case $cc_temp in -- compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; -- distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; -- \-*) ;; -- *) break;; -- esac --done --cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` -- -- --# GCJ did not exist at the time GCC didn't implicitly link libc in. --archive_cmds_need_lc_GCJ=no -- --old_archive_cmds_GCJ=$old_archive_cmds -- -- --lt_prog_compiler_no_builtin_flag_GCJ= -- --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; } --if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then -- echo $ECHO_N "(cached) $ECHO_C" >&6 --else -- lt_cv_prog_compiler_rtti_exceptions=no -- ac_outfile=conftest.$ac_objext -- echo "$lt_simple_compile_test_code" > conftest.$ac_ext -- lt_compiler_flag="-fno-rtti -fno-exceptions" -- # Insert the option either (1) after the last *FLAGS variable, or -- # (2) before a word containing "conftest.", or (3) at the end. -- # Note that $ac_compile itself does not contain backslashes and begins -- # with a dollar sign (not a hyphen), so the echo should work correctly. -- # The option is referenced via a variable to avoid confusing sed. -- lt_compile=`echo "$ac_compile" | $SED \ -- -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -- -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -- -e 's:$: $lt_compiler_flag:'` -- (eval echo "\"\$as_me:16789: $lt_compile\"" >&5) -- (eval "$lt_compile" 2>conftest.err) -- ac_status=$? -- cat conftest.err >&5 -- echo "$as_me:16793: \$? = $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. -- $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp -- $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 -- if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then -- lt_cv_prog_compiler_rtti_exceptions=yes -- fi -- fi -- $rm conftest* -- --fi --{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 --echo "${ECHO_T}$lt_cv_prog_compiler_rtti_exceptions" >&6; } -- --if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then -- lt_prog_compiler_no_builtin_flag_GCJ="$lt_prog_compiler_no_builtin_flag_GCJ -fno-rtti -fno-exceptions" --else -- : --fi -- --fi -- --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; } -- -- if test "$GCC" = yes; then -- lt_prog_compiler_wl_GCJ='-Wl,' -- lt_prog_compiler_static_GCJ='-static' -- -- case $host_os in -- aix*) -- # All AIX code is PIC. -- if test "$host_cpu" = ia64; then -- # AIX 5 now supports IA64 processor -- lt_prog_compiler_static_GCJ='-Bstatic' -- fi -- ;; -+ case $host_os in -+ aix*) -+ # All AIX code is PIC. -+ if test "$host_cpu" = ia64; then -+ # AIX 5 now supports IA64 processor -+ lt_prog_compiler_static='-Bstatic' -+ fi -+ ;; - - amigaos*) -- # FIXME: we need at least 68020 code to build shared libraries, but -- # adding the `-m68020' flag to GCC prevents building anything better, -- # like `-m68040'. -- lt_prog_compiler_pic_GCJ='-m68020 -resident32 -malways-restore-a4' -+ case $host_cpu in -+ powerpc) -+ # see comment about AmigaOS4 .so support -+ lt_prog_compiler_pic='-fPIC' -+ ;; -+ m68k) -+ # FIXME: we need at least 68020 code to build shared libraries, but -+ # adding the `-m68020' flag to GCC prevents building anything better, -+ # like `-m68040'. -+ lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4' -+ ;; -+ esac - ;; - - beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) - # PIC is the default for these OSes. - ;; - -- mingw* | cygwin* | pw32* | os2*) -+ mingw* | cygwin* | pw32* | os2* | cegcc*) - # This hack is so that the source file can tell whether it is being - # built for inclusion in a dll (and should export symbols for example). - # Although the cygwin gcc ignores -fPIC, still need this for old-style - # (--disable-auto-import) libraries -- -+ lt_prog_compiler_pic='-DDLL_EXPORT' - ;; - - darwin* | rhapsody*) - # PIC is the default on this platform - # Common symbols not allowed in MH_DYLIB files -- lt_prog_compiler_pic_GCJ='-fno-common' -+ lt_prog_compiler_pic='-fno-common' -+ ;; -+ -+ hpux*) -+ # PIC is the default for 64-bit PA HP-UX, but not for 32-bit -+ # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag -+ # sets the default TLS model and affects inlining. -+ case $host_cpu in -+ hppa*64*) -+ # +Z the default -+ ;; -+ *) -+ lt_prog_compiler_pic='-fPIC' -+ ;; -+ esac - ;; - - interix[3-9]*) -@@ -16867,64 +7680,47 @@ - msdosdjgpp*) - # Just because we use GCC doesn't mean we suddenly get shared libraries - # on systems that don't support them. -- lt_prog_compiler_can_build_shared_GCJ=no -+ lt_prog_compiler_can_build_shared=no - enable_shared=no - ;; - -+ *nto* | *qnx*) -+ # QNX uses GNU C++, but need to define -shared option too, otherwise -+ # it will coredump. -+ lt_prog_compiler_pic='-fPIC -shared' -+ ;; -+ - sysv4*MP*) - if test -d /usr/nec; then -- lt_prog_compiler_pic_GCJ=-Kconform_pic -+ lt_prog_compiler_pic=-Kconform_pic - fi - ;; - -- hpux*) -- # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but -- # not for PA HP-UX. -- case $host_cpu in -- hppa*64*|ia64*) -- # +Z the default -- ;; -- *) -- lt_prog_compiler_pic_GCJ='-fPIC' -- ;; -- esac -- ;; -- - *) -- lt_prog_compiler_pic_GCJ='-fPIC' -+ lt_prog_compiler_pic='-fPIC' - ;; - esac - else - # PORTME Check for flag to pass linker flags through the system compiler. - case $host_os in - aix*) -- lt_prog_compiler_wl_GCJ='-Wl,' -+ lt_prog_compiler_wl='-Wl,' - if test "$host_cpu" = ia64; then - # AIX 5 now supports IA64 processor -- lt_prog_compiler_static_GCJ='-Bstatic' -+ lt_prog_compiler_static='-Bstatic' - else -- lt_prog_compiler_static_GCJ='-bnso -bI:/lib/syscalls.exp' -+ lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp' - fi - ;; -- darwin*) -- # PIC is the default on this platform -- # Common symbols not allowed in MH_DYLIB files -- case $cc_basename in -- xlc*) -- lt_prog_compiler_pic_GCJ='-qnocommon' -- lt_prog_compiler_wl_GCJ='-Wl,' -- ;; -- esac -- ;; - -- mingw* | cygwin* | pw32* | os2*) -+ mingw* | cygwin* | pw32* | os2* | cegcc*) - # This hack is so that the source file can tell whether it is being - # built for inclusion in a dll (and should export symbols for example). -- -+ lt_prog_compiler_pic='-DDLL_EXPORT' - ;; - - hpux9* | hpux10* | hpux11*) -- lt_prog_compiler_wl_GCJ='-Wl,' -+ lt_prog_compiler_wl='-Wl,' - # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but - # not for PA HP-UX. - case $host_cpu in -@@ -16932,141 +7728,180 @@ - # +Z the default - ;; - *) -- lt_prog_compiler_pic_GCJ='+Z' -+ lt_prog_compiler_pic='+Z' - ;; - esac - # Is there a better lt_prog_compiler_static that works with the bundled CC? -- lt_prog_compiler_static_GCJ='${wl}-a ${wl}archive' -+ lt_prog_compiler_static='${wl}-a ${wl}archive' - ;; - - irix5* | irix6* | nonstopux*) -- lt_prog_compiler_wl_GCJ='-Wl,' -+ lt_prog_compiler_wl='-Wl,' - # PIC (with -KPIC) is the default. -- lt_prog_compiler_static_GCJ='-non_shared' -- ;; -- -- newsos6) -- lt_prog_compiler_pic_GCJ='-KPIC' -- lt_prog_compiler_static_GCJ='-Bstatic' -+ lt_prog_compiler_static='-non_shared' - ;; - - linux* | k*bsd*-gnu) - case $cc_basename in -- icc* | ecc*) -- lt_prog_compiler_wl_GCJ='-Wl,' -- lt_prog_compiler_pic_GCJ='-KPIC' -- lt_prog_compiler_static_GCJ='-static' -+ # old Intel for x86_64 which still supported -KPIC. -+ ecc*) -+ lt_prog_compiler_wl='-Wl,' -+ lt_prog_compiler_pic='-KPIC' -+ lt_prog_compiler_static='-static' -+ ;; -+ # icc used to be incompatible with GCC. -+ # ICC 10 doesn't accept -KPIC any more. -+ icc* | ifort*) -+ lt_prog_compiler_wl='-Wl,' -+ lt_prog_compiler_pic='-fPIC' -+ lt_prog_compiler_static='-static' - ;; -+ # Lahey Fortran 8.1. -+ lf95*) -+ lt_prog_compiler_wl='-Wl,' -+ lt_prog_compiler_pic='--shared' -+ lt_prog_compiler_static='--static' -+ ;; - pgcc* | pgf77* | pgf90* | pgf95*) - # Portland Group compilers (*not* the Pentium gcc compiler, - # which looks to be a dead project) -- lt_prog_compiler_wl_GCJ='-Wl,' -- lt_prog_compiler_pic_GCJ='-fpic' -- lt_prog_compiler_static_GCJ='-Bstatic' -+ lt_prog_compiler_wl='-Wl,' -+ lt_prog_compiler_pic='-fpic' -+ lt_prog_compiler_static='-Bstatic' - ;; - ccc*) -- lt_prog_compiler_wl_GCJ='-Wl,' -+ lt_prog_compiler_wl='-Wl,' - # All Alpha code is PIC. -- lt_prog_compiler_static_GCJ='-non_shared' -+ lt_prog_compiler_static='-non_shared' - ;; -+ xl*) -+ # IBM XL C 8.0/Fortran 10.1 on PPC -+ lt_prog_compiler_wl='-Wl,' -+ lt_prog_compiler_pic='-qpic' -+ lt_prog_compiler_static='-qstaticlink' -+ ;; - *) -- case `$CC -V 2>&1 | sed 5q` in -+ case `$CC -V 2>&1 | sed 5q` in - *Sun\ C*) - # Sun C 5.9 -- lt_prog_compiler_pic_GCJ='-KPIC' -- lt_prog_compiler_static_GCJ='-Bstatic' -- lt_prog_compiler_wl_GCJ='-Wl,' -+ lt_prog_compiler_pic='-KPIC' -+ lt_prog_compiler_static='-Bstatic' -+ lt_prog_compiler_wl='-Wl,' - ;; - *Sun\ F*) - # Sun Fortran 8.3 passes all unrecognized flags to the linker -- lt_prog_compiler_pic_GCJ='-KPIC' -- lt_prog_compiler_static_GCJ='-Bstatic' -- lt_prog_compiler_wl_GCJ='' -+ lt_prog_compiler_pic='-KPIC' -+ lt_prog_compiler_static='-Bstatic' -+ lt_prog_compiler_wl='' - ;; - esac - ;; - esac - ;; - -+ newsos6) -+ lt_prog_compiler_pic='-KPIC' -+ lt_prog_compiler_static='-Bstatic' -+ ;; -+ -+ *nto* | *qnx*) -+ # QNX uses GNU C++, but need to define -shared option too, otherwise -+ # it will coredump. -+ lt_prog_compiler_pic='-fPIC -shared' -+ ;; -+ - osf3* | osf4* | osf5*) -- lt_prog_compiler_wl_GCJ='-Wl,' -+ lt_prog_compiler_wl='-Wl,' - # All OSF/1 code is PIC. -- lt_prog_compiler_static_GCJ='-non_shared' -+ lt_prog_compiler_static='-non_shared' - ;; - - rdos*) -- lt_prog_compiler_static_GCJ='-non_shared' -+ lt_prog_compiler_static='-non_shared' - ;; - - solaris*) -- lt_prog_compiler_pic_GCJ='-KPIC' -- lt_prog_compiler_static_GCJ='-Bstatic' -+ lt_prog_compiler_pic='-KPIC' -+ lt_prog_compiler_static='-Bstatic' - case $cc_basename in - f77* | f90* | f95*) -- lt_prog_compiler_wl_GCJ='-Qoption ld ';; -+ lt_prog_compiler_wl='-Qoption ld ';; - *) -- lt_prog_compiler_wl_GCJ='-Wl,';; -+ lt_prog_compiler_wl='-Wl,';; - esac - ;; - - sunos4*) -- lt_prog_compiler_wl_GCJ='-Qoption ld ' -- lt_prog_compiler_pic_GCJ='-PIC' -- lt_prog_compiler_static_GCJ='-Bstatic' -+ lt_prog_compiler_wl='-Qoption ld ' -+ lt_prog_compiler_pic='-PIC' -+ lt_prog_compiler_static='-Bstatic' - ;; - - sysv4 | sysv4.2uw2* | sysv4.3*) -- lt_prog_compiler_wl_GCJ='-Wl,' -- lt_prog_compiler_pic_GCJ='-KPIC' -- lt_prog_compiler_static_GCJ='-Bstatic' -+ lt_prog_compiler_wl='-Wl,' -+ lt_prog_compiler_pic='-KPIC' -+ lt_prog_compiler_static='-Bstatic' - ;; - - sysv4*MP*) - if test -d /usr/nec ;then -- lt_prog_compiler_pic_GCJ='-Kconform_pic' -- lt_prog_compiler_static_GCJ='-Bstatic' -+ lt_prog_compiler_pic='-Kconform_pic' -+ lt_prog_compiler_static='-Bstatic' - fi - ;; - - sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) -- lt_prog_compiler_wl_GCJ='-Wl,' -- lt_prog_compiler_pic_GCJ='-KPIC' -- lt_prog_compiler_static_GCJ='-Bstatic' -+ lt_prog_compiler_wl='-Wl,' -+ lt_prog_compiler_pic='-KPIC' -+ lt_prog_compiler_static='-Bstatic' - ;; - - unicos*) -- lt_prog_compiler_wl_GCJ='-Wl,' -- lt_prog_compiler_can_build_shared_GCJ=no -+ lt_prog_compiler_wl='-Wl,' -+ lt_prog_compiler_can_build_shared=no - ;; - - uts4*) -- lt_prog_compiler_pic_GCJ='-pic' -- lt_prog_compiler_static_GCJ='-Bstatic' -+ lt_prog_compiler_pic='-pic' -+ lt_prog_compiler_static='-Bstatic' - ;; - - *) -- lt_prog_compiler_can_build_shared_GCJ=no -+ lt_prog_compiler_can_build_shared=no - ;; - esac - fi - --{ echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_GCJ" >&5 --echo "${ECHO_T}$lt_prog_compiler_pic_GCJ" >&6; } -+case $host_os in -+ # For platforms which do not support PIC, -DPIC is meaningless: -+ *djgpp*) -+ lt_prog_compiler_pic= -+ ;; -+ *) -+ lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC" -+ ;; -+esac -+{ $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_GCJ"; then -- --{ echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_GCJ works" >&5 --echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic_GCJ works... $ECHO_C" >&6; } --if test "${lt_cv_prog_compiler_pic_works_GCJ+set}" = set; then -- echo $ECHO_N "(cached) $ECHO_C" >&6 -+if test -n "$lt_prog_compiler_pic"; then -+ { $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 -+ $as_echo_n "(cached) " >&6 - else -- lt_cv_prog_compiler_pic_works_GCJ=no -- ac_outfile=conftest.$ac_objext -+ lt_cv_prog_compiler_pic_works=no -+ ac_outfile=conftest.$ac_objext - echo "$lt_simple_compile_test_code" > conftest.$ac_ext -- lt_compiler_flag="$lt_prog_compiler_pic_GCJ" -+ lt_compiler_flag="$lt_prog_compiler_pic -DPIC" - # Insert the option either (1) after the last *FLAGS variable, or - # (2) before a word containing "conftest.", or (3) at the end. - # Note that $ac_compile itself does not contain backslashes and begins -@@ -17076,57 +7911,53 @@ - -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:17079: $lt_compile\"" >&5) -+ (eval echo "\"\$as_me:7914: $lt_compile\"" >&5) - (eval "$lt_compile" 2>conftest.err) - ac_status=$? - cat conftest.err >&5 -- echo "$as_me:17083: \$? = $ac_status" >&5 -+ echo "$as_me:7918: \$? = $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. -- $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp -+ $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp - $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 - if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then -- lt_cv_prog_compiler_pic_works_GCJ=yes -+ lt_cv_prog_compiler_pic_works=yes - fi - fi -- $rm conftest* -+ $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" >&5 -+$as_echo "$lt_cv_prog_compiler_pic_works" >&6; } - --if test x"$lt_cv_prog_compiler_pic_works_GCJ" = xyes; then -- case $lt_prog_compiler_pic_GCJ in -+if test x"$lt_cv_prog_compiler_pic_works" = xyes; then -+ case $lt_prog_compiler_pic in - "" | " "*) ;; -- *) lt_prog_compiler_pic_GCJ=" $lt_prog_compiler_pic_GCJ" ;; -+ *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;; - esac - else -- lt_prog_compiler_pic_GCJ= -- lt_prog_compiler_can_build_shared_GCJ=no -+ lt_prog_compiler_pic= -+ lt_prog_compiler_can_build_shared=no - fi - - fi --case $host_os in -- # For platforms which do not support PIC, -DPIC is meaningless: -- *djgpp*) -- lt_prog_compiler_pic_GCJ= -- ;; -- *) -- lt_prog_compiler_pic_GCJ="$lt_prog_compiler_pic_GCJ" -- ;; --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; } --if test "${lt_cv_prog_compiler_static_works_GCJ+set}" = set; then -- echo $ECHO_N "(cached) $ECHO_C" >&6 -+wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\" -+{ $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 -+ $as_echo_n "(cached) " >&6 - else -- lt_cv_prog_compiler_static_works_GCJ=no -+ lt_cv_prog_compiler_static_works=no - save_LDFLAGS="$LDFLAGS" - LDFLAGS="$LDFLAGS $lt_tmp_static_flag" - echo "$lt_simple_link_test_code" > conftest.$ac_ext -@@ -17136,36 +7967,96 @@ - if test -s conftest.err; then - # Append any errors to the config.log. - cat conftest.err 1>&5 -- $echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp -+ $ECHO "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp - $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 - if diff conftest.exp conftest.er2 >/dev/null; then -- lt_cv_prog_compiler_static_works_GCJ=yes -+ lt_cv_prog_compiler_static_works=yes - fi - else -- lt_cv_prog_compiler_static_works_GCJ=yes -+ lt_cv_prog_compiler_static_works=yes - fi - fi -- $rm -r conftest* -+ $RM -r conftest* - 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; } -+fi -+{ $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 -+ : -+else -+ lt_prog_compiler_static= -+fi -+ -+ -+ -+ -+ -+ -+ -+ { $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 -+ $as_echo_n "(cached) " >&6 -+else -+ lt_cv_prog_compiler_c_o=no -+ $RM -r conftest 2>/dev/null -+ mkdir conftest -+ cd conftest -+ mkdir out -+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext -+ -+ lt_compiler_flag="-o out/conftest2.$ac_objext" -+ # Insert the option either (1) after the last *FLAGS variable, or -+ # (2) before a word containing "conftest.", or (3) at the end. -+ # Note that $ac_compile itself does not contain backslashes and begins -+ # with a dollar sign (not a hyphen), so the echo should work correctly. -+ lt_compile=`echo "$ac_compile" | $SED \ -+ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -+ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -+ -e 's:$: $lt_compiler_flag:'` -+ (eval echo "\"\$as_me:8019: $lt_compile\"" >&5) -+ (eval "$lt_compile" 2>out/conftest.err) -+ ac_status=$? -+ cat out/conftest.err >&5 -+ echo "$as_me:8023: \$? = $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 -+ # So say no if there are warnings -+ $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp -+ $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 -+ if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then -+ lt_cv_prog_compiler_c_o=yes -+ fi -+ fi -+ chmod u+w . 2>&5 -+ $RM conftest* -+ # SGI C++ compiler will create directory out/ii_files/ for -+ # template instantiation -+ test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files -+ $RM out/* && rmdir out -+ cd .. -+ $RM -r conftest -+ $RM conftest* -+ -+fi -+{ $as_echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o" >&5 -+$as_echo "$lt_cv_prog_compiler_c_o" >&6; } -+ -+ - --if test x"$lt_cv_prog_compiler_static_works_GCJ" = xyes; then -- : --else -- lt_prog_compiler_static_GCJ= --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; } --if test "${lt_cv_prog_compiler_c_o_GCJ+set}" = set; then -- echo $ECHO_N "(cached) $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 -+ $as_echo_n "(cached) " >&6 - else -- lt_cv_prog_compiler_c_o_GCJ=no -- $rm -r conftest 2>/dev/null -+ lt_cv_prog_compiler_c_o=no -+ $RM -r conftest 2>/dev/null - mkdir conftest - cd conftest - mkdir out -@@ -17180,91 +8071,101 @@ - -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:17183: $lt_compile\"" >&5) -+ (eval echo "\"\$as_me:8074: $lt_compile\"" >&5) - (eval "$lt_compile" 2>out/conftest.err) - ac_status=$? - cat out/conftest.err >&5 -- echo "$as_me:17187: \$? = $ac_status" >&5 -+ echo "$as_me:8078: \$? = $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 - # So say no if there are warnings -- $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp -+ $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp - $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 - if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then -- lt_cv_prog_compiler_c_o_GCJ=yes -+ lt_cv_prog_compiler_c_o=yes - fi - fi - chmod u+w . 2>&5 -- $rm conftest* -+ $RM conftest* - # SGI C++ compiler will create directory out/ii_files/ for - # template instantiation -- test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files -- $rm out/* && rmdir out -+ test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files -+ $RM out/* && rmdir out - cd .. -- rmdir conftest -- $rm conftest* -+ $RM -r conftest -+ $RM conftest* - - fi --{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_GCJ" >&5 --echo "${ECHO_T}$lt_cv_prog_compiler_c_o_GCJ" >&6; } -+{ $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_GCJ" = no && test "$need_locks" != no; then -+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* -+ $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= -- enable_shared_with_static_runtimes_GCJ=no -- archive_cmds_GCJ= -- archive_expsym_cmds_GCJ= -- old_archive_From_new_cmds_GCJ= -- old_archive_from_expsyms_cmds_GCJ= -- export_dynamic_flag_spec_GCJ= -- whole_archive_flag_spec_GCJ= -- thread_safe_flag_spec_GCJ= -- hardcode_libdir_flag_spec_GCJ= -- hardcode_libdir_flag_spec_ld_GCJ= -- hardcode_libdir_separator_GCJ= -- hardcode_direct_GCJ=no -- hardcode_minus_L_GCJ=no -- hardcode_shlibpath_var_GCJ=unsupported -- link_all_deplibs_GCJ=unknown -- hardcode_automatic_GCJ=no -- module_cmds_GCJ= -- module_expsym_cmds_GCJ= -- always_export_symbols_GCJ=no -- export_symbols_cmds_GCJ='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' -+ allow_undefined_flag= -+ always_export_symbols=no -+ archive_cmds= -+ archive_expsym_cmds= -+ compiler_needs_object=no -+ enable_shared_with_static_runtimes=no -+ export_dynamic_flag_spec= -+ export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' -+ hardcode_automatic=no -+ hardcode_direct=no -+ hardcode_direct_absolute=no -+ hardcode_libdir_flag_spec= -+ hardcode_libdir_flag_spec_ld= -+ hardcode_libdir_separator= -+ hardcode_minus_L=no -+ hardcode_shlibpath_var=unsupported -+ inherit_rpath=no -+ link_all_deplibs=unknown -+ module_cmds= -+ module_expsym_cmds= -+ old_archive_from_new_cmds= -+ old_archive_from_expsyms_cmds= -+ thread_safe_flag_spec= -+ whole_archive_flag_spec= - # include_expsyms should be a list of space-separated symbols to be *always* - # included in the symbol list -- include_expsyms_GCJ= -+ include_expsyms= - # exclude_expsyms can be an extended regexp of symbols to exclude - # it will be wrapped by ` (' and `)$', so one must not match beginning or - # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', - # as well as any symbol that contains `d'. -- exclude_expsyms_GCJ='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*' -+ exclude_expsyms='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*' - # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out - # platforms (ab)use it in PIC code, but their linkers get confused if - # the symbol is explicitly referenced. Since portable code cannot -@@ -17272,19 +8173,9 @@ - # preloaded symbol tables. - # Exclude shared library initialization/finalization symbols. - extract_expsyms_cmds= -- # Just being paranoid about ensuring that cc_basename is set. -- for cc_temp in $compiler""; do -- case $cc_temp in -- compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; -- distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; -- \-*) ;; -- *) break;; -- esac --done --cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` - - case $host_os in -- cygwin* | mingw* | pw32*) -+ cygwin* | mingw* | pw32* | cegcc*) - # FIXME: the MSVC++ port hasn't been tested in a loooong time - # When not using gcc, we currently assume that we are using - # Microsoft Visual C++. -@@ -17301,7 +8192,7 @@ - ;; - esac - -- ld_shlibs_GCJ=yes -+ ld_shlibs=yes - if test "$with_gnu_ld" = yes; then - # If archive_cmds runs LD, not CC, wlarc should be empty - wlarc='${wl}' -@@ -17310,16 +8201,16 @@ - # are reset later if shared libraries are not supported. Putting them - # here allows them to be overridden if necessary. - runpath_var=LD_RUN_PATH -- hardcode_libdir_flag_spec_GCJ='${wl}--rpath ${wl}$libdir' -- export_dynamic_flag_spec_GCJ='${wl}--export-dynamic' -+ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' -+ export_dynamic_flag_spec='${wl}--export-dynamic' - # ancient GNU ld didn't support --whole-archive et. al. -- if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then -- whole_archive_flag_spec_GCJ="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' -- else -- whole_archive_flag_spec_GCJ= -+ if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then -+ whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' -+ else -+ whole_archive_flag_spec= - fi - supports_anon_versioning=no -- case `$LD -v 2>/dev/null` in -+ case `$LD -v 2>&1` in - *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 - *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... - *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... -@@ -17332,8 +8223,8 @@ - aix[3-9]*) - # On AIX/PPC, the GNU linker is very broken - if test "$host_cpu" != ia64; then -- ld_shlibs_GCJ=no -- cat <&2 -+ ld_shlibs=no -+ cat <<_LT_EOF 1>&2 - - *** Warning: the GNU linker, at least up to release 2.9.1, is reported - *** to be unable to reliably create shared libraries on AIX. -@@ -17341,49 +8232,50 @@ - *** really care for shared libraries, you may want to modify your PATH - *** so that a non-GNU linker is found, and then restart. - --EOF -+_LT_EOF - fi - ;; - - amigaos*) -- archive_cmds_GCJ='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' -- hardcode_libdir_flag_spec_GCJ='-L$libdir' -- hardcode_minus_L_GCJ=yes -- -- # Samuel A. Falvo II reports -- # that the semantics of dynamic libraries on AmigaOS, at least up -- # to version 4, is to share data among multiple programs linked -- # with the same dynamic library. Since this doesn't match the -- # behavior of shared libraries on other platforms, we can't use -- # them. -- ld_shlibs_GCJ=no -+ case $host_cpu in -+ powerpc) -+ # see comment about AmigaOS4 .so support -+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -+ archive_expsym_cmds='' -+ ;; -+ m68k) -+ archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' -+ hardcode_libdir_flag_spec='-L$libdir' -+ hardcode_minus_L=yes -+ ;; -+ esac - ;; - - beos*) -- if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then -- allow_undefined_flag_GCJ=unsupported -+ if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then -+ allow_undefined_flag=unsupported - # Joseph Beckenbach says some releases of gcc - # support --undefined. This deserves some investigation. FIXME -- archive_cmds_GCJ='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -+ archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - else -- ld_shlibs_GCJ=no -+ ld_shlibs=no - fi - ;; - -- cygwin* | mingw* | pw32*) -- # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, GCJ) is actually meaningless, -+ cygwin* | mingw* | pw32* | cegcc*) -+ # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless, - # as there is no search path for DLLs. -- hardcode_libdir_flag_spec_GCJ='-L$libdir' -- allow_undefined_flag_GCJ=unsupported -- always_export_symbols_GCJ=no -- enable_shared_with_static_runtimes_GCJ=yes -- export_symbols_cmds_GCJ='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/'\'' -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' -+ hardcode_libdir_flag_spec='-L$libdir' -+ allow_undefined_flag=unsupported -+ always_export_symbols=no -+ enable_shared_with_static_runtimes=yes -+ export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' - -- if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then -- archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' -+ if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then -+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' - # If the export-symbols file already is a .def file (1st line - # is EXPORTS), use it as is; otherwise, prepend... -- archive_expsym_cmds_GCJ='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then -+ archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then - cp $export_symbols $output_objdir/$soname.def; - else - echo EXPORTS > $output_objdir/$soname.def; -@@ -17391,80 +8283,109 @@ - fi~ - $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' - else -- ld_shlibs_GCJ=no -+ ld_shlibs=no - fi - ;; - - interix[3-9]*) -- hardcode_direct_GCJ=no -- hardcode_shlibpath_var_GCJ=no -- hardcode_libdir_flag_spec_GCJ='${wl}-rpath,$libdir' -- export_dynamic_flag_spec_GCJ='${wl}-E' -+ hardcode_direct=no -+ hardcode_shlibpath_var=no -+ hardcode_libdir_flag_spec='${wl}-rpath,$libdir' -+ export_dynamic_flag_spec='${wl}-E' - # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. - # Instead, shared libraries are loaded at an image base (0x10000000 by - # default) and relocated if they conflict, which is a slow very memory - # consuming and fragmenting process. To avoid this, we pick a random, - # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link - # time. Moving up from 0x10000000 also allows more sbrk(2) space. -- archive_cmds_GCJ='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' -- archive_expsym_cmds_GCJ='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' -+ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' -+ archive_expsym_cmds='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' - ;; - -- gnu* | linux* | k*bsd*-gnu) -- if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then -+ gnu* | linux* | tpf* | k*bsd*-gnu) -+ tmp_diet=no -+ if test "$host_os" = linux-dietlibc; then -+ case $cc_basename in -+ diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) -+ esac -+ fi -+ if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ -+ && test "$tmp_diet" = no -+ then - tmp_addflag= -+ tmp_sharedflag='-shared' - case $cc_basename,$host_cpu in -- pgcc*) # Portland Group C compiler -- whole_archive_flag_spec_GCJ='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' -+ pgcc*) # Portland Group C compiler -+ whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' - tmp_addflag=' $pic_flag' - ;; - pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers -- whole_archive_flag_spec_GCJ='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' -+ whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' - tmp_addflag=' $pic_flag -Mnomain' ;; -- ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 -+ ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 - tmp_addflag=' -i_dynamic' ;; - efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 - tmp_addflag=' -i_dynamic -nofor_main' ;; - ifc* | ifort*) # Intel Fortran compiler - tmp_addflag=' -nofor_main' ;; -+ lf95*) # Lahey Fortran 8.1 -+ whole_archive_flag_spec= -+ tmp_sharedflag='--shared' ;; -+ xl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below) -+ tmp_sharedflag='-qmkshrobj' -+ tmp_addflag= ;; - esac - case `$CC -V 2>&1 | sed 5q` in - *Sun\ C*) # Sun C 5.9 -- whole_archive_flag_spec_GCJ='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' -+ whole_archive_flag_spec='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' -+ compiler_needs_object=yes - tmp_sharedflag='-G' ;; - *Sun\ F*) # Sun Fortran 8.3 - tmp_sharedflag='-G' ;; -- *) -- tmp_sharedflag='-shared' ;; - esac -- archive_cmds_GCJ='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -+ archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - -- if test $supports_anon_versioning = yes; then -- archive_expsym_cmds_GCJ='$echo "{ global:" > $output_objdir/$libname.ver~ -- cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ -- $echo "local: *; };" >> $output_objdir/$libname.ver~ -- $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' -- fi -- link_all_deplibs_GCJ=no -+ if test "x$supports_anon_versioning" = xyes; then -+ archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ -+ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ -+ echo "local: *; };" >> $output_objdir/$libname.ver~ -+ $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' -+ fi -+ -+ case $cc_basename in -+ xlf*) -+ # IBM XL Fortran 10.1 on PPC cannot create shared libs itself -+ whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive' -+ hardcode_libdir_flag_spec= -+ hardcode_libdir_flag_spec_ld='-rpath $libdir' -+ archive_cmds='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib' -+ if test "x$supports_anon_versioning" = xyes; then -+ archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ -+ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ -+ echo "local: *; };" >> $output_objdir/$libname.ver~ -+ $LD -shared $libobjs $deplibs $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' -+ fi -+ ;; -+ esac - else -- ld_shlibs_GCJ=no -+ ld_shlibs=no - fi - ;; - -- netbsd* | netbsdelf*-gnu) -- if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then -- archive_cmds_GCJ='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' -+ netbsd*) -+ if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then -+ archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' - wlarc= - else -- archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -- archive_expsym_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' -+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -+ archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - fi - ;; - - solaris*) -- if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then -- ld_shlibs_GCJ=no -- cat <&2 -+ if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then -+ ld_shlibs=no -+ cat <<_LT_EOF 1>&2 - - *** Warning: The releases 2.8.* of the GNU linker cannot reliably - *** create shared libraries on Solaris systems. Therefore, libtool -@@ -17473,19 +8394,19 @@ - *** your PATH or compiler configuration so that the native linker is - *** used, and then restart. - --EOF -- elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then -- archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -- archive_expsym_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' -+_LT_EOF -+ elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then -+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -+ archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - else -- ld_shlibs_GCJ=no -+ ld_shlibs=no - fi - ;; - - sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) - case `$LD -v 2>&1` in - *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) -- ld_shlibs_GCJ=no -+ ld_shlibs=no - cat <<_LT_EOF 1>&2 - - *** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not -@@ -17498,54 +8419,58 @@ - _LT_EOF - ;; - *) -- if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then -- hardcode_libdir_flag_spec_GCJ='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`' -- archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib' -- archive_expsym_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname,-retain-symbols-file,$export_symbols -o $lib' -+ # For security reasons, it is highly recommended that you always -+ # use absolute paths for naming shared libraries, and exclude the -+ # DT_RUNPATH tag from executables and libraries. But doing so -+ # requires that you compile everything twice, which is a pain. -+ if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then -+ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' -+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -+ archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - else -- ld_shlibs_GCJ=no -+ ld_shlibs=no - fi - ;; - esac - ;; - - sunos4*) -- archive_cmds_GCJ='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' -+ archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' - wlarc= -- hardcode_direct_GCJ=yes -- hardcode_shlibpath_var_GCJ=no -+ hardcode_direct=yes -+ hardcode_shlibpath_var=no - ;; - - *) -- if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then -- archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -- archive_expsym_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' -+ if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then -+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -+ archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - else -- ld_shlibs_GCJ=no -+ ld_shlibs=no - fi - ;; - esac - -- if test "$ld_shlibs_GCJ" = no; then -+ if test "$ld_shlibs" = no; then - runpath_var= -- hardcode_libdir_flag_spec_GCJ= -- export_dynamic_flag_spec_GCJ= -- whole_archive_flag_spec_GCJ= -+ hardcode_libdir_flag_spec= -+ export_dynamic_flag_spec= -+ whole_archive_flag_spec= - fi - else - # PORTME fill in a description of your system's linker (not GNU ld) - case $host_os in - aix3*) -- allow_undefined_flag_GCJ=unsupported -- always_export_symbols_GCJ=yes -- archive_expsym_cmds_GCJ='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' -+ allow_undefined_flag=unsupported -+ always_export_symbols=yes -+ archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' - # Note: this linker hardcodes the directories in LIBPATH if there - # are no directories specified by -L. -- hardcode_minus_L_GCJ=yes -+ hardcode_minus_L=yes - if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then - # Neither direct hardcoding nor static linking is supported with a - # broken collect2. -- hardcode_direct_GCJ=unsupported -+ hardcode_direct=unsupported - fi - ;; - -@@ -17559,10 +8484,10 @@ - else - # If we're using GNU nm, then we don't want the "-C" option. - # -C means demangle to AIX nm, but means don't demangle with GNU nm -- if $NM -V 2>&1 | grep 'GNU' > /dev/null; then -- export_symbols_cmds_GCJ='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' -+ if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then -+ export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' - else -- export_symbols_cmds_GCJ='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' -+ export_symbols_cmds='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' - fi - aix_use_runtimelinking=no - -@@ -17571,10 +8496,10 @@ - # need to do runtime linking. - case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) - for ld_flag in $LDFLAGS; do -- if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then -- aix_use_runtimelinking=yes -- break -- fi -+ if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then -+ aix_use_runtimelinking=yes -+ break -+ fi - done - ;; - esac -@@ -17589,30 +8514,32 @@ - # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not - # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. - -- archive_cmds_GCJ='' -- hardcode_direct_GCJ=yes -- hardcode_libdir_separator_GCJ=':' -- link_all_deplibs_GCJ=yes -+ archive_cmds='' -+ hardcode_direct=yes -+ hardcode_direct_absolute=yes -+ hardcode_libdir_separator=':' -+ link_all_deplibs=yes -+ file_list_spec='${wl}-f,' - - if test "$GCC" = yes; then - case $host_os in aix4.[012]|aix4.[012].*) - # We only want to do this on AIX 4.2 and lower, the check - # below for broken collect2 doesn't work under 4.3+ - collect2name=`${CC} -print-prog-name=collect2` -- if test -f "$collect2name" && \ -- strings "$collect2name" | grep resolve_lib_name >/dev/null -+ if test -f "$collect2name" && -+ strings "$collect2name" | $GREP resolve_lib_name >/dev/null - then -- # We have reworked collect2 -- : -+ # We have reworked collect2 -+ : - else -- # We have old collect2 -- hardcode_direct_GCJ=unsupported -- # It fails to find uninstalled libraries when the uninstalled -- # path is not listed in the libpath. Setting hardcode_minus_L -- # to unsupported forces relinking -- hardcode_minus_L_GCJ=yes -- hardcode_libdir_flag_spec_GCJ='-L$libdir' -- hardcode_libdir_separator_GCJ= -+ # We have old collect2 -+ hardcode_direct=unsupported -+ # It fails to find uninstalled libraries when the uninstalled -+ # path is not listed in the libpath. Setting hardcode_minus_L -+ # to unsupported forces relinking -+ hardcode_minus_L=yes -+ hardcode_libdir_flag_spec='-L$libdir' -+ hardcode_libdir_separator= - fi - ;; - esac -@@ -17623,8 +8550,8 @@ - else - # not using gcc - if test "$host_cpu" = ia64; then -- # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release -- # chokes on -Wl,-G. The following line is correct: -+ # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release -+ # chokes on -Wl,-G. The following line is correct: - shared_flag='-G' - else - if test "$aix_use_runtimelinking" = yes; then -@@ -17635,15 +8562,17 @@ - fi - fi - -+ export_dynamic_flag_spec='${wl}-bexpall' - # It seems that -bexpall does not export symbols beginning with - # underscore (_), so it is better to generate a list of symbols to export. -- always_export_symbols_GCJ=yes -+ always_export_symbols=yes - if test "$aix_use_runtimelinking" = yes; then - # Warning - without using the other runtime loading flags (-brtl), - # -berok will link without error, but may produce a broken library. -- allow_undefined_flag_GCJ='-berok' -- # Determine the default libpath from the value encoded in an empty executable. -- cat >conftest.$ac_ext <<_ACEOF -+ allow_undefined_flag='-berok' -+ # Determine the default libpath from the value encoded in an -+ # empty executable. -+ cat >conftest.$ac_ext <<_ACEOF - /* confdefs.h. */ - _ACEOF - cat confdefs.h >>conftest.$ac_ext -@@ -17664,18 +8593,21 @@ - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; - esac --eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 -+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 -+ $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 && -- $as_test_x conftest$ac_exeext; then -+ } && test -s conftest$ac_exeext && { -+ test "$cross_compiling" = yes || -+ $as_test_x conftest$ac_exeext -+ }; then - - lt_aix_libpath_sed=' - /Import File Strings/,/^$/ { -@@ -17690,25 +8622,27 @@ - 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 -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 - -- hardcode_libdir_flag_spec_GCJ='${wl}-blibpath:$libdir:'"$aix_libpath" -- archive_expsym_cmds_GCJ="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" -- else -+ hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" -+ archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" -+ else - if test "$host_cpu" = ia64; then -- hardcode_libdir_flag_spec_GCJ='${wl}-R $libdir:/usr/lib:/lib' -- allow_undefined_flag_GCJ="-z nodefs" -- archive_expsym_cmds_GCJ="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" -+ hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' -+ allow_undefined_flag="-z nodefs" -+ archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" - else -- # Determine the default libpath from the value encoded in an empty executable. -+ # Determine the default libpath from the value encoded in an -+ # empty executable. - cat >conftest.$ac_ext <<_ACEOF - /* confdefs.h. */ - _ACEOF -@@ -17730,18 +8664,21 @@ - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; - esac --eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 -+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 -+ $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 && -- $as_test_x conftest$ac_exeext; then -+ } && test -s conftest$ac_exeext && { -+ test "$cross_compiling" = yes || -+ $as_test_x conftest$ac_exeext -+ }; then - - lt_aix_libpath_sed=' - /Import File Strings/,/^$/ { -@@ -17756,120 +8693,106 @@ - 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 -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 - -- hardcode_libdir_flag_spec_GCJ='${wl}-blibpath:$libdir:'"$aix_libpath" -+ hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" - # Warning - without using the other run time loading flags, - # -berok will link without error, but may produce a broken library. -- no_undefined_flag_GCJ=' ${wl}-bernotok' -- allow_undefined_flag_GCJ=' ${wl}-berok' -+ no_undefined_flag=' ${wl}-bernotok' -+ allow_undefined_flag=' ${wl}-berok' - # Exported symbols can be pulled into shared objects from archives -- whole_archive_flag_spec_GCJ='$convenience' -- archive_cmds_need_lc_GCJ=yes -+ whole_archive_flag_spec='$convenience' -+ archive_cmds_need_lc=yes - # This is similar to how AIX traditionally builds its shared libraries. -- archive_expsym_cmds_GCJ="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' -+ archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' - fi - fi - ;; - - amigaos*) -- archive_cmds_GCJ='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' -- hardcode_libdir_flag_spec_GCJ='-L$libdir' -- hardcode_minus_L_GCJ=yes -- # see comment about different semantics on the GNU ld section -- ld_shlibs_GCJ=no -+ case $host_cpu in -+ powerpc) -+ # see comment about AmigaOS4 .so support -+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -+ archive_expsym_cmds='' -+ ;; -+ m68k) -+ archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' -+ hardcode_libdir_flag_spec='-L$libdir' -+ hardcode_minus_L=yes -+ ;; -+ esac - ;; - - bsdi[45]*) -- export_dynamic_flag_spec_GCJ=-rdynamic -+ export_dynamic_flag_spec=-rdynamic - ;; - -- cygwin* | mingw* | pw32*) -+ cygwin* | mingw* | pw32* | cegcc*) - # When not using gcc, we currently assume that we are using - # Microsoft Visual C++. - # hardcode_libdir_flag_spec is actually meaningless, as there is - # no search path for DLLs. -- hardcode_libdir_flag_spec_GCJ=' ' -- allow_undefined_flag_GCJ=unsupported -+ hardcode_libdir_flag_spec=' ' -+ allow_undefined_flag=unsupported - # Tell ltmain to make .lib files, not .a files. - libext=lib - # Tell ltmain to make .dll files, not .so files. - shrext_cmds=".dll" - # FIXME: Setting linknames here is a bad hack. -- archive_cmds_GCJ='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames=' -+ archive_cmds='$CC -o $lib $libobjs $compiler_flags `$ECHO "X$deplibs" | $Xsed -e '\''s/ -lc$//'\''` -link -dll~linknames=' - # The linker will automatically build a .lib file if we build a DLL. -- old_archive_From_new_cmds_GCJ='true' -+ old_archive_from_new_cmds='true' - # FIXME: Should let the user specify the lib program. -- old_archive_cmds_GCJ='lib -OUT:$oldlib$oldobjs$old_deplibs' -- fix_srcfile_path_GCJ='`cygpath -w "$srcfile"`' -- enable_shared_with_static_runtimes_GCJ=yes -+ old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' -+ fix_srcfile_path='`cygpath -w "$srcfile"`' -+ enable_shared_with_static_runtimes=yes - ;; - - darwin* | rhapsody*) -- case $host_os in -- rhapsody* | darwin1.[012]) -- allow_undefined_flag_GCJ='${wl}-undefined ${wl}suppress' -- ;; -- *) # Darwin 1.3 on -- if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then -- allow_undefined_flag_GCJ='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' -- else -- case ${MACOSX_DEPLOYMENT_TARGET} in -- 10.[012]) -- allow_undefined_flag_GCJ='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' -- ;; -- 10.*) -- allow_undefined_flag_GCJ='${wl}-undefined ${wl}dynamic_lookup' -- ;; -- esac -- fi -- ;; -- esac -- archive_cmds_need_lc_GCJ=no -- hardcode_direct_GCJ=no -- hardcode_automatic_GCJ=yes -- hardcode_shlibpath_var_GCJ=unsupported -- whole_archive_flag_spec_GCJ='' -- link_all_deplibs_GCJ=yes -- if test "$GCC" = yes ; then -- output_verbose_link_cmd='echo' -- archive_cmds_GCJ="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" -- module_cmds_GCJ="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" -- archive_expsym_cmds_GCJ="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" -- module_expsym_cmds_GCJ="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" -- else -- case $cc_basename in -- xlc*) -- output_verbose_link_cmd='echo' -- archive_cmds_GCJ='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $xlcverstring' -- module_cmds_GCJ='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' -- # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds -- archive_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $xlcverstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' -- module_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' -- ;; -- *) -- ld_shlibs_GCJ=no -- ;; -- esac -- fi -+ -+ -+ archive_cmds_need_lc=no -+ hardcode_direct=no -+ hardcode_automatic=yes -+ hardcode_shlibpath_var=unsupported -+ whole_archive_flag_spec='' -+ link_all_deplibs=yes -+ allow_undefined_flag="$_lt_dar_allow_undefined" -+ case $cc_basename in -+ ifort*) _lt_dar_can_shared=yes ;; -+ *) _lt_dar_can_shared=$GCC ;; -+ esac -+ if test "$_lt_dar_can_shared" = "yes"; then -+ output_verbose_link_cmd=echo -+ archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" -+ module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" -+ archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" -+ module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" -+ -+ else -+ ld_shlibs=no -+ fi -+ - ;; - - dgux*) -- archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' -- hardcode_libdir_flag_spec_GCJ='-L$libdir' -- hardcode_shlibpath_var_GCJ=no -+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' -+ hardcode_libdir_flag_spec='-L$libdir' -+ hardcode_shlibpath_var=no - ;; - - freebsd1*) -- ld_shlibs_GCJ=no -+ ld_shlibs=no - ;; - - # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor -@@ -17877,60 +8800,60 @@ - # does not break anything, and helps significantly (at the cost of a little - # extra space). - freebsd2.2*) -- archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' -- hardcode_libdir_flag_spec_GCJ='-R$libdir' -- hardcode_direct_GCJ=yes -- hardcode_shlibpath_var_GCJ=no -+ archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' -+ hardcode_libdir_flag_spec='-R$libdir' -+ hardcode_direct=yes -+ hardcode_shlibpath_var=no - ;; - - # Unfortunately, older versions of FreeBSD 2 do not have this feature. - freebsd2*) -- archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' -- hardcode_direct_GCJ=yes -- hardcode_minus_L_GCJ=yes -- hardcode_shlibpath_var_GCJ=no -+ archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' -+ hardcode_direct=yes -+ hardcode_minus_L=yes -+ hardcode_shlibpath_var=no - ;; - - # FreeBSD 3 and greater uses gcc -shared to do shared libraries. - freebsd* | dragonfly*) -- archive_cmds_GCJ='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' -- hardcode_libdir_flag_spec_GCJ='-R$libdir' -- hardcode_direct_GCJ=yes -- hardcode_shlibpath_var_GCJ=no -+ archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' -+ hardcode_libdir_flag_spec='-R$libdir' -+ hardcode_direct=yes -+ hardcode_shlibpath_var=no - ;; - - hpux9*) - if test "$GCC" = yes; then -- archive_cmds_GCJ='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' -+ archive_cmds='$RM $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' - else -- archive_cmds_GCJ='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' -+ archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' - fi -- hardcode_libdir_flag_spec_GCJ='${wl}+b ${wl}$libdir' -- hardcode_libdir_separator_GCJ=: -- hardcode_direct_GCJ=yes -+ hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' -+ hardcode_libdir_separator=: -+ hardcode_direct=yes - - # hardcode_minus_L: Not really in the search PATH, - # but as the default location of the library. -- hardcode_minus_L_GCJ=yes -- export_dynamic_flag_spec_GCJ='${wl}-E' -+ hardcode_minus_L=yes -+ export_dynamic_flag_spec='${wl}-E' - ;; - - hpux10*) - if test "$GCC" = yes -a "$with_gnu_ld" = no; then -- archive_cmds_GCJ='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' -+ archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' - else -- archive_cmds_GCJ='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' -+ archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' - fi - if test "$with_gnu_ld" = no; then -- hardcode_libdir_flag_spec_GCJ='${wl}+b ${wl}$libdir' -- hardcode_libdir_separator_GCJ=: -- -- hardcode_direct_GCJ=yes -- export_dynamic_flag_spec_GCJ='${wl}-E' -- -+ hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' -+ hardcode_libdir_flag_spec_ld='+b $libdir' -+ hardcode_libdir_separator=: -+ hardcode_direct=yes -+ hardcode_direct_absolute=yes -+ export_dynamic_flag_spec='${wl}-E' - # hardcode_minus_L: Not really in the search PATH, - # but as the default location of the library. -- hardcode_minus_L_GCJ=yes -+ hardcode_minus_L=yes - fi - ;; - -@@ -17938,45 +8861,45 @@ - if test "$GCC" = yes -a "$with_gnu_ld" = no; then - case $host_cpu in - hppa*64*) -- archive_cmds_GCJ='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' -+ archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - ;; - ia64*) -- archive_cmds_GCJ='$CC -shared ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' -+ archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' - ;; - *) -- archive_cmds_GCJ='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' -+ archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' - ;; - esac - else - case $host_cpu in - hppa*64*) -- archive_cmds_GCJ='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' -+ archive_cmds='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - ;; - ia64*) -- archive_cmds_GCJ='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' -+ archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' - ;; - *) -- archive_cmds_GCJ='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' -+ archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' - ;; - esac - fi - if test "$with_gnu_ld" = no; then -- hardcode_libdir_flag_spec_GCJ='${wl}+b ${wl}$libdir' -- hardcode_libdir_separator_GCJ=: -+ hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' -+ hardcode_libdir_separator=: - - case $host_cpu in - hppa*64*|ia64*) -- hardcode_libdir_flag_spec_ld_GCJ='+b $libdir' -- hardcode_direct_GCJ=no -- hardcode_shlibpath_var_GCJ=no -+ hardcode_direct=no -+ hardcode_shlibpath_var=no - ;; - *) -- hardcode_direct_GCJ=yes -- export_dynamic_flag_spec_GCJ='${wl}-E' -+ hardcode_direct=yes -+ hardcode_direct_absolute=yes -+ export_dynamic_flag_spec='${wl}-E' - - # hardcode_minus_L: Not really in the search PATH, - # but as the default location of the library. -- hardcode_minus_L_GCJ=yes -+ hardcode_minus_L=yes - ;; - esac - fi -@@ -17984,194 +8907,254 @@ - - irix5* | irix6* | nonstopux*) - if test "$GCC" = yes; then -- archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' -+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' -+ # Try to use the -exported_symbol ld option, if it does not -+ # work, assume that -exports_file does not work either and -+ # implicitly export all symbols. -+ save_LDFLAGS="$LDFLAGS" -+ LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" -+ cat >conftest.$ac_ext <<_ACEOF -+int foo(void) {} -+_ACEOF -+rm -f conftest.$ac_objext conftest$ac_exeext -+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 -+ $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 -+ archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' -+ -+else -+ $as_echo "$as_me: failed program was:" >&5 -+sed 's/^/| /' conftest.$ac_ext >&5 -+ -+ -+fi -+ -+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" - else -- archive_cmds_GCJ='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' -- hardcode_libdir_flag_spec_ld_GCJ='-rpath $libdir' -+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' -+ archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' - fi -- hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir' -- hardcode_libdir_separator_GCJ=: -- link_all_deplibs_GCJ=yes -+ archive_cmds_need_lc='no' -+ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' -+ hardcode_libdir_separator=: -+ inherit_rpath=yes -+ link_all_deplibs=yes - ;; - -- netbsd* | netbsdelf*-gnu) -- if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then -- archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out -+ netbsd*) -+ if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then -+ archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out - else -- archive_cmds_GCJ='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF -+ archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF - fi -- hardcode_libdir_flag_spec_GCJ='-R$libdir' -- hardcode_direct_GCJ=yes -- hardcode_shlibpath_var_GCJ=no -+ hardcode_libdir_flag_spec='-R$libdir' -+ hardcode_direct=yes -+ hardcode_shlibpath_var=no - ;; - - newsos6) -- archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' -- hardcode_direct_GCJ=yes -- hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir' -- hardcode_libdir_separator_GCJ=: -- hardcode_shlibpath_var_GCJ=no -+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' -+ hardcode_direct=yes -+ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' -+ hardcode_libdir_separator=: -+ hardcode_shlibpath_var=no -+ ;; -+ -+ *nto* | *qnx*) - ;; - - openbsd*) - if test -f /usr/libexec/ld.so; then -- hardcode_direct_GCJ=yes -- hardcode_shlibpath_var_GCJ=no -- if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then -- archive_cmds_GCJ='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' -- archive_expsym_cmds_GCJ='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' -- hardcode_libdir_flag_spec_GCJ='${wl}-rpath,$libdir' -- export_dynamic_flag_spec_GCJ='${wl}-E' -+ hardcode_direct=yes -+ hardcode_shlibpath_var=no -+ hardcode_direct_absolute=yes -+ if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then -+ archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' -+ archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' -+ hardcode_libdir_flag_spec='${wl}-rpath,$libdir' -+ export_dynamic_flag_spec='${wl}-E' - else - case $host_os in - openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) -- archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' -- hardcode_libdir_flag_spec_GCJ='-R$libdir' -+ archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' -+ hardcode_libdir_flag_spec='-R$libdir' - ;; - *) -- archive_cmds_GCJ='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' -- hardcode_libdir_flag_spec_GCJ='${wl}-rpath,$libdir' -+ archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' -+ hardcode_libdir_flag_spec='${wl}-rpath,$libdir' - ;; - esac -- fi -+ fi - else -- ld_shlibs_GCJ=no -+ ld_shlibs=no - fi - ;; - - os2*) -- hardcode_libdir_flag_spec_GCJ='-L$libdir' -- hardcode_minus_L_GCJ=yes -- allow_undefined_flag_GCJ=unsupported -- archive_cmds_GCJ='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' -- old_archive_From_new_cmds_GCJ='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' -+ hardcode_libdir_flag_spec='-L$libdir' -+ hardcode_minus_L=yes -+ allow_undefined_flag=unsupported -+ archive_cmds='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$ECHO DATA >> $output_objdir/$libname.def~$ECHO " SINGLE NONSHARED" >> $output_objdir/$libname.def~$ECHO EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' -+ old_archive_from_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' - ;; - - osf3*) - if test "$GCC" = yes; then -- allow_undefined_flag_GCJ=' ${wl}-expect_unresolved ${wl}\*' -- archive_cmds_GCJ='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' -+ allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' -+ archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - else -- allow_undefined_flag_GCJ=' -expect_unresolved \*' -- archive_cmds_GCJ='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' -+ allow_undefined_flag=' -expect_unresolved \*' -+ archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' - fi -- hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir' -- hardcode_libdir_separator_GCJ=: -+ archive_cmds_need_lc='no' -+ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' -+ hardcode_libdir_separator=: - ;; - - osf4* | osf5*) # as osf3* with the addition of -msym flag - if test "$GCC" = yes; then -- allow_undefined_flag_GCJ=' ${wl}-expect_unresolved ${wl}\*' -- archive_cmds_GCJ='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' -- hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir' -+ allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' -+ archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' -+ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' - else -- allow_undefined_flag_GCJ=' -expect_unresolved \*' -- archive_cmds_GCJ='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' -- archive_expsym_cmds_GCJ='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~ -- $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~$rm $lib.exp' -+ allow_undefined_flag=' -expect_unresolved \*' -+ archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' -+ archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ -+ $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp' - - # Both c and cxx compiler support -rpath directly -- hardcode_libdir_flag_spec_GCJ='-rpath $libdir' -+ hardcode_libdir_flag_spec='-rpath $libdir' - fi -- hardcode_libdir_separator_GCJ=: -+ archive_cmds_need_lc='no' -+ hardcode_libdir_separator=: - ;; - - solaris*) -- no_undefined_flag_GCJ=' -z text' -+ no_undefined_flag=' -z defs' - if test "$GCC" = yes; then - wlarc='${wl}' -- archive_cmds_GCJ='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' -- archive_expsym_cmds_GCJ='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ -- $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp' -+ archive_cmds='$CC -shared ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' -+ archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ -+ $CC -shared ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' - else -- wlarc='' -- archive_cmds_GCJ='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' -- archive_expsym_cmds_GCJ='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ -- $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp' -+ case `$CC -V 2>&1` in -+ *"Compilers 5.0"*) -+ wlarc='' -+ archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' -+ archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ -+ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' -+ ;; -+ *) -+ wlarc='${wl}' -+ archive_cmds='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags' -+ archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ -+ $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' -+ ;; -+ esac - fi -- hardcode_libdir_flag_spec_GCJ='-R$libdir' -- hardcode_shlibpath_var_GCJ=no -+ hardcode_libdir_flag_spec='-R$libdir' -+ hardcode_shlibpath_var=no - case $host_os in - solaris2.[0-5] | solaris2.[0-5].*) ;; - *) - # The compiler driver will combine and reorder linker options, - # but understands `-z linker_flag'. GCC discards it without `$wl', - # but is careful enough not to reorder. -- # Supported since Solaris 2.6 (maybe 2.5.1?) -+ # Supported since Solaris 2.6 (maybe 2.5.1?) - if test "$GCC" = yes; then -- whole_archive_flag_spec_GCJ='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' -+ whole_archive_flag_spec='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' - else -- whole_archive_flag_spec_GCJ='-z allextract$convenience -z defaultextract' -+ whole_archive_flag_spec='-z allextract$convenience -z defaultextract' - fi - ;; - esac -- link_all_deplibs_GCJ=yes -+ link_all_deplibs=yes - ;; - - sunos4*) - if test "x$host_vendor" = xsequent; then - # Use $CC to link under sequent, because it throws in some extra .o - # files that make .init and .fini sections work. -- archive_cmds_GCJ='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' -+ archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' - else -- archive_cmds_GCJ='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' -+ archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' - fi -- hardcode_libdir_flag_spec_GCJ='-L$libdir' -- hardcode_direct_GCJ=yes -- hardcode_minus_L_GCJ=yes -- hardcode_shlibpath_var_GCJ=no -+ hardcode_libdir_flag_spec='-L$libdir' -+ hardcode_direct=yes -+ hardcode_minus_L=yes -+ hardcode_shlibpath_var=no - ;; - - sysv4) - case $host_vendor in - sni) -- archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' -- hardcode_direct_GCJ=yes # is this really true??? -+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' -+ hardcode_direct=yes # is this really true??? - ;; - siemens) - ## LD is ld it makes a PLAMLIB - ## CC just makes a GrossModule. -- archive_cmds_GCJ='$LD -G -o $lib $libobjs $deplibs $linker_flags' -- reload_cmds_GCJ='$CC -r -o $output$reload_objs' -- hardcode_direct_GCJ=no -+ archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags' -+ reload_cmds='$CC -r -o $output$reload_objs' -+ hardcode_direct=no - ;; - motorola) -- archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' -- hardcode_direct_GCJ=no #Motorola manual says yes, but my tests say they lie -+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' -+ hardcode_direct=no #Motorola manual says yes, but my tests say they lie - ;; - esac - runpath_var='LD_RUN_PATH' -- hardcode_shlibpath_var_GCJ=no -+ hardcode_shlibpath_var=no - ;; - - sysv4.3*) -- archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' -- hardcode_shlibpath_var_GCJ=no -- export_dynamic_flag_spec_GCJ='-Bexport' -+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' -+ hardcode_shlibpath_var=no -+ export_dynamic_flag_spec='-Bexport' - ;; - - sysv4*MP*) - if test -d /usr/nec; then -- archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' -- hardcode_shlibpath_var_GCJ=no -+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' -+ hardcode_shlibpath_var=no - runpath_var=LD_RUN_PATH - hardcode_runpath_var=yes -- ld_shlibs_GCJ=yes -+ ld_shlibs=yes - fi - ;; - - sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) -- no_undefined_flag_GCJ='${wl}-z,text' -- archive_cmds_need_lc_GCJ=no -- hardcode_shlibpath_var_GCJ=no -+ no_undefined_flag='${wl}-z,text' -+ archive_cmds_need_lc=no -+ hardcode_shlibpath_var=no - runpath_var='LD_RUN_PATH' - - if test "$GCC" = yes; then -- archive_cmds_GCJ='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' -- archive_expsym_cmds_GCJ='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' -+ archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' -+ archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - else -- archive_cmds_GCJ='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' -- archive_expsym_cmds_GCJ='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' -+ archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' -+ archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - fi - ;; - -@@ -18182,51 +9165,75 @@ - # ever link correctly. If we're not using GNU ld we use -z text - # though, which does catch some bad symbols but isn't as heavy-handed - # as -z defs. -- no_undefined_flag_GCJ='${wl}-z,text' -- allow_undefined_flag_GCJ='${wl}-z,nodefs' -- archive_cmds_need_lc_GCJ=no -- hardcode_shlibpath_var_GCJ=no -- hardcode_libdir_flag_spec_GCJ='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' -- hardcode_libdir_separator_GCJ=':' -- link_all_deplibs_GCJ=yes -- export_dynamic_flag_spec_GCJ='${wl}-Bexport' -+ no_undefined_flag='${wl}-z,text' -+ allow_undefined_flag='${wl}-z,nodefs' -+ archive_cmds_need_lc=no -+ hardcode_shlibpath_var=no -+ hardcode_libdir_flag_spec='${wl}-R,$libdir' -+ hardcode_libdir_separator=':' -+ link_all_deplibs=yes -+ export_dynamic_flag_spec='${wl}-Bexport' - runpath_var='LD_RUN_PATH' - - if test "$GCC" = yes; then -- archive_cmds_GCJ='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' -- archive_expsym_cmds_GCJ='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' -+ archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' -+ archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - else -- archive_cmds_GCJ='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' -- archive_expsym_cmds_GCJ='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' -+ archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' -+ archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - fi - ;; - - uts4*) -- archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' -- hardcode_libdir_flag_spec_GCJ='-L$libdir' -- hardcode_shlibpath_var_GCJ=no -+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' -+ hardcode_libdir_flag_spec='-L$libdir' -+ hardcode_shlibpath_var=no - ;; - - *) -- ld_shlibs_GCJ=no -+ ld_shlibs=no - ;; - esac -+ -+ if test x$host_vendor = xsni; then -+ case $host in -+ sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) -+ export_dynamic_flag_spec='${wl}-Blargedynsym' -+ ;; -+ esac -+ fi - fi - --{ echo "$as_me:$LINENO: result: $ld_shlibs_GCJ" >&5 --echo "${ECHO_T}$ld_shlibs_GCJ" >&6; } --test "$ld_shlibs_GCJ" = no && can_build_shared=no -+{ $as_echo "$as_me:$LINENO: result: $ld_shlibs" >&5 -+$as_echo "$ld_shlibs" >&6; } -+test "$ld_shlibs" = no && can_build_shared=no -+ -+with_gnu_ld=$with_gnu_ld -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ - - # - # Do we need to explicitly link libc? - # --case "x$archive_cmds_need_lc_GCJ" in -+case "x$archive_cmds_need_lc" in - x|xyes) - # Assume -lc should be added -- archive_cmds_need_lc_GCJ=yes -+ archive_cmds_need_lc=yes - - if test "$enable_shared" = yes && test "$GCC" = yes; then -- case $archive_cmds_GCJ in -+ case $archive_cmds in - *'~'*) - # FIXME: we may have to deal with multi-command sequences. - ;; -@@ -18234,54 +9241,262 @@ - # 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; } -- $rm conftest* -+ { $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 - libobjs=conftest.$ac_objext - deplibs= -- wl=$lt_prog_compiler_wl_GCJ -- pic_flag=$lt_prog_compiler_pic_GCJ -+ wl=$lt_prog_compiler_wl -+ pic_flag=$lt_prog_compiler_pic - compiler_flags=-v - linker_flags=-v - verstring= - output_objdir=. - libname=conftest -- lt_save_allow_undefined_flag=$allow_undefined_flag_GCJ -- allow_undefined_flag_GCJ= -- 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 -+ lt_save_allow_undefined_flag=$allow_undefined_flag -+ allow_undefined_flag= -+ 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_GCJ=no -+ archive_cmds_need_lc=no - else -- archive_cmds_need_lc_GCJ=yes -+ archive_cmds_need_lc=yes - fi -- allow_undefined_flag_GCJ=$lt_save_allow_undefined_flag -+ allow_undefined_flag=$lt_save_allow_undefined_flag - else - cat conftest.err 1>&5 - fi -- $rm conftest* -- { echo "$as_me:$LINENO: result: $archive_cmds_need_lc_GCJ" >&5 --echo "${ECHO_T}$archive_cmds_need_lc_GCJ" >&6; } -+ $RM conftest* -+ { $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; } -+ -+if test "$GCC" = yes; then -+ case $host_os in -+ darwin*) lt_awk_arg="/^libraries:/,/LR/" ;; -+ *) lt_awk_arg="/^libraries:/" ;; -+ esac -+ lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e "s,=/,/,g"` -+ if $ECHO "$lt_search_path_spec" | $GREP ';' >/dev/null ; then -+ # if the path contains ";" then we assume it to be the separator -+ # otherwise default to the standard path separator (i.e. ":") - it is -+ # assumed that no part of a normal pathname contains ";" but that should -+ # okay in the real world where ";" in dirpaths is itself problematic. -+ lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e 's/;/ /g'` -+ else -+ lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` -+ fi -+ # Ok, now we have the path, separated by spaces, we can step through it -+ # and add multilib dir if necessary. -+ lt_tmp_lt_search_path_spec= -+ lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` -+ for lt_sys_path in $lt_search_path_spec; do -+ if test -d "$lt_sys_path/$lt_multi_os_dir"; then -+ lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir" -+ else -+ test -d "$lt_sys_path" && \ -+ lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" -+ fi -+ done -+ lt_search_path_spec=`$ECHO $lt_tmp_lt_search_path_spec | awk ' -+BEGIN {RS=" "; FS="/|\n";} { -+ lt_foo=""; -+ lt_count=0; -+ for (lt_i = NF; lt_i > 0; lt_i--) { -+ if ($lt_i != "" && $lt_i != ".") { -+ if ($lt_i == "..") { -+ lt_count++; -+ } else { -+ if (lt_count == 0) { -+ lt_foo="/" $lt_i lt_foo; -+ } else { -+ lt_count--; -+ } -+ } -+ } -+ } -+ if (lt_foo != "") { lt_freq[lt_foo]++; } -+ if (lt_freq[lt_foo] == 1) { print lt_foo; } -+}'` -+ sys_lib_search_path_spec=`$ECHO $lt_search_path_spec` -+else -+ sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" -+fi - library_names_spec= - libname_spec='lib$name' - soname_spec= -@@ -18295,7 +9510,6 @@ - version_type=none - dynamic_linker="$host_os ld.so" - sys_lib_dlsearch_path_spec="/lib /usr/lib" -- - need_lib_prefix=unknown - hardcode_into_libs=no - -@@ -18332,7 +9546,7 @@ - aix4 | aix4.[01] | aix4.[01].*) - if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' - echo ' yes ' -- echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then -+ echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then - : - else - can_build_shared=no -@@ -18358,9 +9572,18 @@ - ;; - - amigaos*) -- library_names_spec='$libname.ixlibrary $libname.a' -- # Create ${libname}_ixlibrary.a entries in /sys/libs. -- finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' -+ case $host_cpu in -+ powerpc) -+ # Since July 2007 AmigaOS4 officially supports .so libraries. -+ # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. -+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' -+ ;; -+ m68k) -+ library_names_spec='$libname.ixlibrary $libname.a' -+ # Create ${libname}_ixlibrary.a entries in /sys/libs. -+ finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$ECHO "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' -+ ;; -+ esac - ;; - - beos*) -@@ -18383,25 +9606,28 @@ - # libtool to hard-code these into programs - ;; - --cygwin* | mingw* | pw32*) -+cygwin* | mingw* | pw32* | cegcc*) - version_type=windows - shrext_cmds=".dll" - need_version=no - need_lib_prefix=no - - case $GCC,$host_os in -- yes,cygwin* | yes,mingw* | yes,pw32*) -+ yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*) - library_names_spec='$libname.dll.a' - # DLL is installed to $(libdir)/../bin by postinstall_cmds - postinstall_cmds='base_file=`basename \${file}`~ -- dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~ -+ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ - dldir=$destdir/`dirname \$dlpath`~ - test -d \$dldir || mkdir -p \$dldir~ - $install_prog $dir/$dlname \$dldir/$dlname~ -- chmod a+x \$dldir/$dlname' -+ chmod a+x \$dldir/$dlname~ -+ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then -+ eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; -+ fi' - postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ - dlpath=$dir/\$dldll~ -- $rm \$dlpath' -+ $RM \$dlpath' - shlibpath_overrides_runpath=yes - - case $host_os in -@@ -18410,20 +9636,20 @@ - soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' - sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" - ;; -- mingw*) -+ mingw* | cegcc*) - # MinGW DLLs use traditional 'lib' prefix - soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' -- sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` -- if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then -+ sys_lib_search_path_spec=`$CC -print-search-dirs | $GREP "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` -+ if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then - # It is most probably a Windows format PATH printed by - # mingw gcc, but we are running on Cygwin. Gcc prints its search - # path with ; separators, and with drive letters. We can handle the - # drive letters (cygwin fileutils understands them), so leave them, - # especially as we might pass files found there to a mingw objdump, - # which wouldn't understand a cygwinified path. Ahh. -- sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` -+ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` - else -- sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` -+ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` - fi - ;; - pw32*) -@@ -18447,12 +9673,13 @@ - version_type=darwin - need_lib_prefix=no - need_version=no -- library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext' -+ library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext' - soname_spec='${libname}${release}${major}$shared_ext' - shlibpath_overrides_runpath=yes - shlibpath_var=DYLD_LIBRARY_PATH - shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' - -+ sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib" - sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' - ;; - -@@ -18545,18 +9772,18 @@ - fi - sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec - ;; -- hppa*64*) -- shrext_cmds='.sl' -- hardcode_into_libs=yes -- dynamic_linker="$host_os dld.sl" -- shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH -- shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. -- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' -- soname_spec='${libname}${release}${shared_ext}$major' -- sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" -- sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec -- ;; -- *) -+ hppa*64*) -+ shrext_cmds='.sl' -+ hardcode_into_libs=yes -+ dynamic_linker="$host_os dld.sl" -+ shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH -+ shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. -+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' -+ soname_spec='${libname}${release}${shared_ext}$major' -+ sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" -+ sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec -+ ;; -+ *) - shrext_cmds='.sl' - dynamic_linker="$host_os dld.sl" - shlibpath_var=SHLIB_PATH -@@ -18633,15 +9860,76 @@ - finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no -+ # Some binutils ld are patched to set DT_RUNPATH -+ save_LDFLAGS=$LDFLAGS -+ save_libdir=$libdir -+ eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \ -+ LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\"" -+ cat >conftest.$ac_ext <<_ACEOF -+/* confdefs.h. */ -+_ACEOF -+cat confdefs.h >>conftest.$ac_ext -+cat >>conftest.$ac_ext <<_ACEOF -+/* end confdefs.h. */ -+ -+int -+main () -+{ -+ -+ ; -+ return 0; -+} -+_ACEOF -+rm -f conftest.$ac_objext conftest$ac_exeext -+if { (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 -+ $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 -+ if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then -+ shlibpath_overrides_runpath=yes -+fi -+ -+else -+ $as_echo "$as_me: failed program was:" >&5 -+sed 's/^/| /' conftest.$ac_ext >&5 -+ -+ -+fi -+ -+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 -+ libdir=$save_libdir -+ - # This implies no fast_install, which is unacceptable. - # Some rework will be needed to allow for fast_install - # before this can be enabled. - hardcode_into_libs=yes - -+ # Add ABI-specific directories to the system library path. -+ sys_lib_dlsearch_path_spec="/lib64 /usr/lib64 /lib /usr/lib" -+ - # Append ld.so.conf contents to the search path - if test -f /etc/ld.so.conf; then -- lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` -- sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" -+ lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` -+ sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec $lt_ld_extra" - fi - - # We used to test for /lib/ld.so.1 and disable shared libraries on -@@ -18653,23 +9941,11 @@ - dynamic_linker='GNU/Linux ld.so' - ;; - --netbsdelf*-gnu) -- version_type=linux -- need_lib_prefix=no -- need_version=no -- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' -- soname_spec='${libname}${release}${shared_ext}$major' -- shlibpath_var=LD_LIBRARY_PATH -- shlibpath_overrides_runpath=no -- hardcode_into_libs=yes -- dynamic_linker='NetBSD ld.elf_so' -- ;; -- - netbsd*) - version_type=sunos - need_lib_prefix=no - need_version=no -- if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then -+ if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' - finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' - dynamic_linker='NetBSD (a.out) ld.so' -@@ -18690,14 +9966,16 @@ - shlibpath_overrides_runpath=yes - ;; - --nto-qnx*) -- version_type=linux -+*nto* | *qnx*) -+ version_type=qnx - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH -- shlibpath_overrides_runpath=yes -+ shlibpath_overrides_runpath=no -+ hardcode_into_libs=yes -+ dynamic_linker='ldqnx.so' - ;; - - openbsd*) -@@ -18706,13 +9984,13 @@ - need_lib_prefix=no - # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. - case $host_os in -- openbsd3.3 | openbsd3.3.*) need_version=yes ;; -- *) need_version=no ;; -+ openbsd3.3 | openbsd3.3.*) need_version=yes ;; -+ *) need_version=no ;; - esac - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' - finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' - shlibpath_var=LD_LIBRARY_PATH -- if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then -+ if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then - case $host_os in - openbsd2.[89] | openbsd2.[89].*) - shlibpath_overrides_runpath=no -@@ -18784,7 +10062,6 @@ - sni) - shlibpath_overrides_runpath=no - need_lib_prefix=no -- export_dynamic_flag_spec='${wl}-Blargedynsym' - runpath_var=LD_RUN_PATH - ;; - siemens) -@@ -18815,13 +10092,12 @@ - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH -+ shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - if test "$with_gnu_ld" = yes; then - sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' -- shlibpath_overrides_runpath=no - else - sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' -- shlibpath_overrides_runpath=yes - case $host_os in - sco3.2v5*) - sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" -@@ -18831,6 +10107,17 @@ - sys_lib_dlsearch_path_spec='/usr/lib' - ;; - -+tpf*) -+ # TPF is a cross-target only. Preferred cross-host = GNU/Linux. -+ version_type=linux -+ need_lib_prefix=no -+ need_version=no -+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' -+ shlibpath_var=LD_LIBRARY_PATH -+ shlibpath_overrides_runpath=no -+ hardcode_into_libs=yes -+ ;; -+ - uts4*) - version_type=linux - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' -@@ -18842,1032 +10129,1749 @@ - 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 --else -- lt_cv_sys_lib_search_path_spec="$sys_lib_search_path_spec" -+variables_saved_for_relink="PATH $shlibpath_var $runpath_var" -+if test "$GCC" = yes; then -+ variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" - fi - --sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" -+if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then -+ sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" -+fi - if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then -- echo $ECHO_N "(cached) $ECHO_C" >&6 --else -- lt_cv_sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec" -+ sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" - fi - --sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" - --variables_saved_for_relink="PATH $shlibpath_var $runpath_var" --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; } --hardcode_action_GCJ= --if test -n "$hardcode_libdir_flag_spec_GCJ" || \ -- test -n "$runpath_var_GCJ" || \ -- test "X$hardcode_automatic_GCJ" = "Xyes" ; then - -- # We can hardcode non-existant directories. -- if test "$hardcode_direct_GCJ" != no && -- # If the only mechanism to avoid hardcoding is shlibpath_var, we -- # have to relink, otherwise we might link with an installed library -- # when we should be linking with a yet-to-be-installed one -- ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, GCJ)" != no && -- test "$hardcode_minus_L_GCJ" != no; then -- # Linking always hardcodes the temporary library directory. -- hardcode_action_GCJ=relink -- else -- # We can link without hardcoding, and we can hardcode nonexisting dirs. -- hardcode_action_GCJ=immediate -- fi --else -- # We cannot hardcode anything, or else we can only hardcode existing -- # directories. -- hardcode_action_GCJ=unsupported --fi --{ echo "$as_me:$LINENO: result: $hardcode_action_GCJ" >&5 --echo "${ECHO_T}$hardcode_action_GCJ" >&6; } - --if test "$hardcode_action_GCJ" = relink; then -- # Fast installation is not supported -- enable_fast_install=no --elif test "$shlibpath_overrides_runpath" = yes || -- test "$enable_shared" = no; then -- # Fast installation is not necessary -- enable_fast_install=needless --fi - - --# The else clause should only fire when bootstrapping the --# libtool distribution, otherwise you forgot to ship ltmain.sh --# with your package, and you will get complaints that there are --# no rules to generate ltmain.sh. --if test -f "$ltmain"; then -- # See if we are running on zsh, and set the options which allow our commands through -- # without removal of \ escapes. -- if test -n "${ZSH_VERSION+set}" ; then -- setopt NO_GLOB_SUBST -- fi -- # Now quote all the things that may contain metacharacters while being -- # careful not to overquote the AC_SUBSTed values. We take copies of the -- # variables and quote the copies for generation of the libtool script. -- for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \ -- SED SHELL STRIP \ -- libname_spec library_names_spec soname_spec extract_expsyms_cmds \ -- old_striplib striplib file_magic_cmd finish_cmds finish_eval \ -- deplibs_check_method reload_flag reload_cmds need_locks \ -- lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ -- lt_cv_sys_global_symbol_to_c_name_address \ -- sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ -- old_postinstall_cmds old_postuninstall_cmds \ -- compiler_GCJ \ -- CC_GCJ \ -- LD_GCJ \ -- lt_prog_compiler_wl_GCJ \ -- lt_prog_compiler_pic_GCJ \ -- lt_prog_compiler_static_GCJ \ -- lt_prog_compiler_no_builtin_flag_GCJ \ -- export_dynamic_flag_spec_GCJ \ -- thread_safe_flag_spec_GCJ \ -- whole_archive_flag_spec_GCJ \ -- enable_shared_with_static_runtimes_GCJ \ -- old_archive_cmds_GCJ \ -- old_archive_from_new_cmds_GCJ \ -- predep_objects_GCJ \ -- postdep_objects_GCJ \ -- predeps_GCJ \ -- postdeps_GCJ \ -- compiler_lib_search_path_GCJ \ -- compiler_lib_search_dirs_GCJ \ -- archive_cmds_GCJ \ -- archive_expsym_cmds_GCJ \ -- postinstall_cmds_GCJ \ -- postuninstall_cmds_GCJ \ -- old_archive_from_expsyms_cmds_GCJ \ -- allow_undefined_flag_GCJ \ -- no_undefined_flag_GCJ \ -- export_symbols_cmds_GCJ \ -- hardcode_libdir_flag_spec_GCJ \ -- hardcode_libdir_flag_spec_ld_GCJ \ -- hardcode_libdir_separator_GCJ \ -- hardcode_automatic_GCJ \ -- module_cmds_GCJ \ -- module_expsym_cmds_GCJ \ -- lt_cv_prog_compiler_c_o_GCJ \ -- fix_srcfile_path_GCJ \ -- exclude_expsyms_GCJ \ -- include_expsyms_GCJ; do -- -- case $var in -- old_archive_cmds_GCJ | \ -- old_archive_from_new_cmds_GCJ | \ -- archive_cmds_GCJ | \ -- archive_expsym_cmds_GCJ | \ -- module_cmds_GCJ | \ -- module_expsym_cmds_GCJ | \ -- old_archive_from_expsyms_cmds_GCJ | \ -- export_symbols_cmds_GCJ | \ -- extract_expsyms_cmds | reload_cmds | finish_cmds | \ -- postinstall_cmds | postuninstall_cmds | \ -- old_postinstall_cmds | old_postuninstall_cmds | \ -- sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) -- # Double-quote double-evaled strings. -- eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" -- ;; -- *) -- eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" -- ;; -- esac -- done - -- case $lt_echo in -- *'\$0 --fallback-echo"') -- lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` -- ;; -- esac - --cfgfile="$ofile" - -- cat <<__EOF__ >> "$cfgfile" --# ### BEGIN LIBTOOL TAG CONFIG: $tagname - --# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: - --# Shell to use when invoking shell scripts. --SHELL=$lt_SHELL - --# Whether or not to build shared libraries. --build_libtool_libs=$enable_shared - --# Whether or not to build static libraries. --build_old_libs=$enable_static - --# Whether or not to add -lc for building shared libraries. --build_libtool_need_lc=$archive_cmds_need_lc_GCJ - --# Whether or not to disallow shared libs when runtime libs are static --allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_GCJ - --# Whether or not to optimize for fast installation. --fast_install=$enable_fast_install - --# The host system. --host_alias=$host_alias --host=$host --host_os=$host_os - --# The build system. --build_alias=$build_alias --build=$build --build_os=$build_os - --# An echo program that does not interpret backslashes. --echo=$lt_echo - --# The archiver. --AR=$lt_AR --AR_FLAGS=$lt_AR_FLAGS - --# A C compiler. --LTCC=$lt_LTCC - --# LTCC compiler flags. --LTCFLAGS=$lt_LTCFLAGS - --# A language-specific compiler. --CC=$lt_compiler_GCJ - --# Is the compiler the GNU C compiler? --with_gcc=$GCC_GCJ - --# An ERE matcher. --EGREP=$lt_EGREP - --# The linker used to build libraries. --LD=$lt_LD_GCJ - --# Whether we need hard or soft links. --LN_S=$lt_LN_S - --# A BSD-compatible nm program. --NM=$lt_NM - --# A symbol stripping program --STRIP=$lt_STRIP - --# Used to examine libraries when file_magic_cmd begins "file" --MAGIC_CMD=$MAGIC_CMD - --# Used on cygwin: DLL creation program. --DLLTOOL="$DLLTOOL" - --# Used on cygwin: object dumper. --OBJDUMP="$OBJDUMP" - --# Used on cygwin: assembler. --AS="$AS" - --# The name of the directory that contains temporary libtool files. --objdir=$objdir - --# How to create reloadable object files. --reload_flag=$lt_reload_flag --reload_cmds=$lt_reload_cmds - --# How to pass a linker flag through the compiler. --wl=$lt_lt_prog_compiler_wl_GCJ - --# Object file suffix (normally "o"). --objext="$ac_objext" - --# Old archive suffix (normally "a"). --libext="$libext" - --# Shared library suffix (normally ".so"). --shrext_cmds='$shrext_cmds' - --# Executable file suffix (normally ""). --exeext="$exeext" - --# Additional compiler flags for building library objects. --pic_flag=$lt_lt_prog_compiler_pic_GCJ --pic_mode=$pic_mode - --# What is the maximum length of a command? --max_cmd_len=$lt_cv_sys_max_cmd_len - --# Does compiler simultaneously support -c and -o options? --compiler_c_o=$lt_lt_cv_prog_compiler_c_o_GCJ - --# Must we lock files when doing compilation? --need_locks=$lt_need_locks - --# Do we need the lib prefix for modules? --need_lib_prefix=$need_lib_prefix - --# Do we need a version for libraries? --need_version=$need_version - --# Whether dlopen is supported. --dlopen_support=$enable_dlopen - --# Whether dlopen of programs is supported. --dlopen_self=$enable_dlopen_self - --# Whether dlopen of statically linked programs is supported. --dlopen_self_static=$enable_dlopen_self_static - --# Compiler flag to prevent dynamic linking. --link_static_flag=$lt_lt_prog_compiler_static_GCJ - --# Compiler flag to turn off builtin functions. --no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_GCJ - --# Compiler flag to allow reflexive dlopens. --export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_GCJ - --# Compiler flag to generate shared objects directly from archives. --whole_archive_flag_spec=$lt_whole_archive_flag_spec_GCJ - --# Compiler flag to generate thread-safe objects. --thread_safe_flag_spec=$lt_thread_safe_flag_spec_GCJ - --# Library versioning type. --version_type=$version_type - --# Format of library name prefix. --libname_spec=$lt_libname_spec - --# List of archive names. First name is the real one, the rest are links. --# The last name is the one that the linker finds with -lNAME. --library_names_spec=$lt_library_names_spec - --# The coded name of the library, if different from the real name. --soname_spec=$lt_soname_spec - --# Commands used to build and install an old-style archive. --RANLIB=$lt_RANLIB --old_archive_cmds=$lt_old_archive_cmds_GCJ --old_postinstall_cmds=$lt_old_postinstall_cmds --old_postuninstall_cmds=$lt_old_postuninstall_cmds - --# Create an old-style archive from a shared archive. --old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_GCJ - --# Create a temporary old-style archive to link instead of a shared archive. --old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_GCJ - --# Commands used to build and install a shared archive. --archive_cmds=$lt_archive_cmds_GCJ --archive_expsym_cmds=$lt_archive_expsym_cmds_GCJ --postinstall_cmds=$lt_postinstall_cmds --postuninstall_cmds=$lt_postuninstall_cmds - --# Commands used to build a loadable module (assumed same as above if empty) --module_cmds=$lt_module_cmds_GCJ --module_expsym_cmds=$lt_module_expsym_cmds_GCJ - --# Commands to strip libraries. --old_striplib=$lt_old_striplib --striplib=$lt_striplib - --# Dependencies to place before the objects being linked to create a --# shared library. --predep_objects=$lt_predep_objects_GCJ -- --# Dependencies to place after the objects being linked to create a --# shared library. --postdep_objects=$lt_postdep_objects_GCJ -- --# Dependencies to place before the objects being linked to create a --# shared library. --predeps=$lt_predeps_GCJ -- --# Dependencies to place after the objects being linked to create a --# shared library. --postdeps=$lt_postdeps_GCJ -- --# The directories searched by this compiler when creating a shared --# library --compiler_lib_search_dirs=$lt_compiler_lib_search_dirs_GCJ -- --# The library search path used internally by the compiler when linking --# a shared library. --compiler_lib_search_path=$lt_compiler_lib_search_path_GCJ - --# Method to check whether dependent libraries are shared objects. --deplibs_check_method=$lt_deplibs_check_method - --# Command to use when deplibs_check_method == file_magic. --file_magic_cmd=$lt_file_magic_cmd - --# Flag that allows shared libraries with undefined symbols to be built. --allow_undefined_flag=$lt_allow_undefined_flag_GCJ - --# Flag that forces no undefined symbols. --no_undefined_flag=$lt_no_undefined_flag_GCJ - --# Commands used to finish a libtool library installation in a directory. --finish_cmds=$lt_finish_cmds - --# Same as above, but a single script fragment to be evaled but not shown. --finish_eval=$lt_finish_eval - --# Take the output of nm and produce a listing of raw symbols and C names. --global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe - --# Transform the output of nm in a proper C declaration --global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl - --# Transform the output of nm in a C name address pair --global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address - --# This is the shared library runtime path variable. --runpath_var=$runpath_var - --# This is the shared library path variable. --shlibpath_var=$shlibpath_var - --# Is shlibpath searched before the hard-coded library search path? --shlibpath_overrides_runpath=$shlibpath_overrides_runpath - --# How to hardcode a shared library path into an executable. --hardcode_action=$hardcode_action_GCJ - --# Whether we should hardcode library paths into libraries. --hardcode_into_libs=$hardcode_into_libs - --# Flag to hardcode \$libdir into a binary during linking. --# This must work even if \$libdir does not exist. --hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_GCJ - --# If ld is used when linking, flag to hardcode \$libdir into --# a binary during linking. This must work even if \$libdir does --# not exist. --hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_GCJ -- --# Whether we need a single -rpath flag with a separated argument. --hardcode_libdir_separator=$lt_hardcode_libdir_separator_GCJ -- --# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the --# resulting binary. --hardcode_direct=$hardcode_direct_GCJ -- --# Set to yes if using the -LDIR flag during linking hardcodes DIR into the --# resulting binary. --hardcode_minus_L=$hardcode_minus_L_GCJ -- --# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into --# the resulting binary. --hardcode_shlibpath_var=$hardcode_shlibpath_var_GCJ -- --# Set to yes if building a shared library automatically hardcodes DIR into the library --# and all subsequent libraries and executables linked against it. --hardcode_automatic=$hardcode_automatic_GCJ - --# Variables whose values should be saved in libtool wrapper scripts and --# restored at relink time. --variables_saved_for_relink="$variables_saved_for_relink" - --# Whether libtool must link a program against all its dependency libraries. --link_all_deplibs=$link_all_deplibs_GCJ - --# Compile-time system search path for libraries --sys_lib_search_path_spec=$lt_sys_lib_search_path_spec - --# Run-time system search path for libraries --sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec - --# Fix the shell variable \$srcfile for the compiler. --fix_srcfile_path=$lt_fix_srcfile_path -+ { $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" || -+ test "X$hardcode_automatic" = "Xyes" ; then -+ -+ # We can hardcode non-existent directories. -+ if test "$hardcode_direct" != no && -+ # If the only mechanism to avoid hardcoding is shlibpath_var, we -+ # have to relink, otherwise we might link with an installed library -+ # when we should be linking with a yet-to-be-installed one -+ ## test "$_LT_TAGVAR(hardcode_shlibpath_var, )" != no && -+ test "$hardcode_minus_L" != no; then -+ # Linking always hardcodes the temporary library directory. -+ hardcode_action=relink -+ else -+ # We can link without hardcoding, and we can hardcode nonexisting dirs. -+ hardcode_action=immediate -+ fi -+else -+ # We cannot hardcode anything, or else we can only hardcode existing -+ # directories. -+ hardcode_action=unsupported -+fi -+{ $as_echo "$as_me:$LINENO: result: $hardcode_action" >&5 -+$as_echo "$hardcode_action" >&6; } -+ -+if test "$hardcode_action" = relink || -+ test "$inherit_rpath" = yes; then -+ # Fast installation is not supported -+ enable_fast_install=no -+elif test "$shlibpath_overrides_runpath" = yes || -+ test "$enable_shared" = no; then -+ # Fast installation is not necessary -+ enable_fast_install=needless -+fi -+ -+ -+ -+ -+ -+ -+ if test "x$enable_dlopen" != xyes; then -+ enable_dlopen=unknown -+ enable_dlopen_self=unknown -+ enable_dlopen_self_static=unknown -+else -+ lt_cv_dlopen=no -+ lt_cv_dlopen_libs= -+ -+ case $host_os in -+ beos*) -+ lt_cv_dlopen="load_add_on" -+ lt_cv_dlopen_libs= -+ lt_cv_dlopen_self=yes -+ ;; -+ -+ mingw* | pw32* | cegcc*) -+ lt_cv_dlopen="LoadLibrary" -+ lt_cv_dlopen_libs= -+ ;; -+ -+ cygwin*) -+ lt_cv_dlopen="dlopen" -+ lt_cv_dlopen_libs= -+ ;; -+ -+ darwin*) -+ # if libdl is installed we need to link against it -+ { $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 -+ $as_echo_n "(cached) " >&6 -+else -+ ac_check_lib_save_LIBS=$LIBS -+LIBS="-ldl $LIBS" -+cat >conftest.$ac_ext <<_ACEOF -+/* confdefs.h. */ -+_ACEOF -+cat confdefs.h >>conftest.$ac_ext -+cat >>conftest.$ac_ext <<_ACEOF -+/* end confdefs.h. */ -+ -+/* Override any 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 -+char dlopen (); -+int -+main () -+{ -+return dlopen (); -+ ; -+ return 0; -+} -+_ACEOF -+rm -f conftest.$ac_objext conftest$ac_exeext -+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 -+ $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 -+ $as_echo "$as_me: failed program was:" >&5 -+sed 's/^/| /' conftest.$ac_ext >&5 -+ -+ ac_cv_lib_dl_dlopen=no -+fi -+ -+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 -+{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5 -+$as_echo "$ac_cv_lib_dl_dlopen" >&6; } -+if test "x$ac_cv_lib_dl_dlopen" = x""yes; then -+ lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" -+else -+ -+ lt_cv_dlopen="dyld" -+ lt_cv_dlopen_libs= -+ lt_cv_dlopen_self=yes -+ -+fi -+ -+ ;; -+ -+ *) -+ { $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 -+ $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. */ -+/* Define shl_load to an innocuous variant, in case declares shl_load. -+ For example, HP-UX 11i declares gettimeofday. */ -+#define shl_load innocuous_shl_load -+ -+/* System header to define __stub macros and hopefully few prototypes, -+ which can conflict with char shl_load (); below. -+ Prefer to if __STDC__ is defined, since -+ exists even on freestanding compilers. */ -+ -+#ifdef __STDC__ -+# include -+#else -+# include -+#endif -+ -+#undef shl_load -+ -+/* Override any 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 -+char shl_load (); -+/* The GNU C library defines this for functions which it implements -+ to always fail with ENOSYS. Some functions are actually named -+ something starting with __ and the normal name is an alias. */ -+#if defined __stub_shl_load || defined __stub___shl_load -+choke me -+#endif -+ -+int -+main () -+{ -+return shl_load (); -+ ; -+ return 0; -+} -+_ACEOF -+rm -f conftest.$ac_objext conftest$ac_exeext -+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 -+ $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 -+ $as_echo "$as_me: failed program was:" >&5 -+sed 's/^/| /' conftest.$ac_ext >&5 -+ -+ ac_cv_func_shl_load=no -+fi -+ -+rm -rf conftest.dSYM -+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ -+ conftest$ac_exeext conftest.$ac_ext -+fi -+{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_shl_load" >&5 -+$as_echo "$ac_cv_func_shl_load" >&6; } -+if test "x$ac_cv_func_shl_load" = x""yes; then -+ lt_cv_dlopen="shl_load" -+else -+ { $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 -+ $as_echo_n "(cached) " >&6 -+else -+ ac_check_lib_save_LIBS=$LIBS -+LIBS="-ldld $LIBS" -+cat >conftest.$ac_ext <<_ACEOF -+/* confdefs.h. */ -+_ACEOF -+cat confdefs.h >>conftest.$ac_ext -+cat >>conftest.$ac_ext <<_ACEOF -+/* end confdefs.h. */ -+ -+/* Override any 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 -+char shl_load (); -+int -+main () -+{ -+return shl_load (); -+ ; -+ return 0; -+} -+_ACEOF -+rm -f conftest.$ac_objext conftest$ac_exeext -+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 -+ $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 -+ $as_echo "$as_me: failed program was:" >&5 -+sed 's/^/| /' conftest.$ac_ext >&5 -+ -+ ac_cv_lib_dld_shl_load=no -+fi -+ -+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 -+{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_dld_shl_load" >&5 -+$as_echo "$ac_cv_lib_dld_shl_load" >&6; } -+if test "x$ac_cv_lib_dld_shl_load" = x""yes; then -+ lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld" -+else -+ { $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 -+ $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. */ -+/* Define dlopen to an innocuous variant, in case declares dlopen. -+ For example, HP-UX 11i declares gettimeofday. */ -+#define dlopen innocuous_dlopen -+ -+/* System header to define __stub macros and hopefully few prototypes, -+ which can conflict with char dlopen (); below. -+ Prefer to if __STDC__ is defined, since -+ exists even on freestanding compilers. */ -+ -+#ifdef __STDC__ -+# include -+#else -+# include -+#endif -+ -+#undef dlopen -+ -+/* Override any 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 -+char dlopen (); -+/* The GNU C library defines this for functions which it implements -+ to always fail with ENOSYS. Some functions are actually named -+ something starting with __ and the normal name is an alias. */ -+#if defined __stub_dlopen || defined __stub___dlopen -+choke me -+#endif -+ -+int -+main () -+{ -+return dlopen (); -+ ; -+ return 0; -+} -+_ACEOF -+rm -f conftest.$ac_objext conftest$ac_exeext -+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 -+ $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 -+ $as_echo "$as_me: failed program was:" >&5 -+sed 's/^/| /' conftest.$ac_ext >&5 -+ -+ ac_cv_func_dlopen=no -+fi -+ -+rm -rf conftest.dSYM -+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ -+ conftest$ac_exeext conftest.$ac_ext -+fi -+{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_dlopen" >&5 -+$as_echo "$ac_cv_func_dlopen" >&6; } -+if test "x$ac_cv_func_dlopen" = x""yes; then -+ lt_cv_dlopen="dlopen" -+else -+ { $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 -+ $as_echo_n "(cached) " >&6 -+else -+ ac_check_lib_save_LIBS=$LIBS -+LIBS="-ldl $LIBS" -+cat >conftest.$ac_ext <<_ACEOF -+/* confdefs.h. */ -+_ACEOF -+cat confdefs.h >>conftest.$ac_ext -+cat >>conftest.$ac_ext <<_ACEOF -+/* end confdefs.h. */ -+ -+/* Override any 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 -+char dlopen (); -+int -+main () -+{ -+return dlopen (); -+ ; -+ return 0; -+} -+_ACEOF -+rm -f conftest.$ac_objext conftest$ac_exeext -+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 -+ $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 -+ $as_echo "$as_me: failed program was:" >&5 -+sed 's/^/| /' conftest.$ac_ext >&5 -+ -+ ac_cv_lib_dl_dlopen=no -+fi -+ -+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 -+{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5 -+$as_echo "$ac_cv_lib_dl_dlopen" >&6; } -+if test "x$ac_cv_lib_dl_dlopen" = x""yes; then -+ lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" -+else -+ { $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 -+ $as_echo_n "(cached) " >&6 -+else -+ ac_check_lib_save_LIBS=$LIBS -+LIBS="-lsvld $LIBS" -+cat >conftest.$ac_ext <<_ACEOF -+/* confdefs.h. */ -+_ACEOF -+cat confdefs.h >>conftest.$ac_ext -+cat >>conftest.$ac_ext <<_ACEOF -+/* end confdefs.h. */ -+ -+/* Override any 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 -+char dlopen (); -+int -+main () -+{ -+return dlopen (); -+ ; -+ return 0; -+} -+_ACEOF -+rm -f conftest.$ac_objext conftest$ac_exeext -+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 -+ $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 -+ $as_echo "$as_me: failed program was:" >&5 -+sed 's/^/| /' conftest.$ac_ext >&5 -+ -+ ac_cv_lib_svld_dlopen=no -+fi -+ -+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 -+{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_svld_dlopen" >&5 -+$as_echo "$ac_cv_lib_svld_dlopen" >&6; } -+if test "x$ac_cv_lib_svld_dlopen" = x""yes; then -+ lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld" -+else -+ { $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 -+ $as_echo_n "(cached) " >&6 -+else -+ ac_check_lib_save_LIBS=$LIBS -+LIBS="-ldld $LIBS" -+cat >conftest.$ac_ext <<_ACEOF -+/* confdefs.h. */ -+_ACEOF -+cat confdefs.h >>conftest.$ac_ext -+cat >>conftest.$ac_ext <<_ACEOF -+/* end confdefs.h. */ -+ -+/* Override any 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 -+char dld_link (); -+int -+main () -+{ -+return dld_link (); -+ ; -+ return 0; -+} -+_ACEOF -+rm -f conftest.$ac_objext conftest$ac_exeext -+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 -+ $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 -+ $as_echo "$as_me: failed program was:" >&5 -+sed 's/^/| /' conftest.$ac_ext >&5 -+ -+ ac_cv_lib_dld_dld_link=no -+fi -+ -+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 -+{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_dld_dld_link" >&5 -+$as_echo "$ac_cv_lib_dld_dld_link" >&6; } -+if test "x$ac_cv_lib_dld_dld_link" = x""yes; then -+ lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld" -+fi -+ -+ -+fi -+ - --# Set to yes if exported symbols are required. --always_export_symbols=$always_export_symbols_GCJ -+fi - --# The commands to list exported symbols. --export_symbols_cmds=$lt_export_symbols_cmds_GCJ - --# The commands to extract the exported symbol list from a shared archive. --extract_expsyms_cmds=$lt_extract_expsyms_cmds -+fi - --# Symbols that should not be listed in the preloaded symbols. --exclude_expsyms=$lt_exclude_expsyms_GCJ - --# Symbols that must always be exported. --include_expsyms=$lt_include_expsyms_GCJ -+fi - --# ### END LIBTOOL TAG CONFIG: $tagname - --__EOF__ -+fi - -+ ;; -+ esac - --else -- # If there is no Makefile yet, we rely on a make rule to execute -- # `config.status --recheck' to rerun these tests and create the -- # libtool script then. -- ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` -- if test -f "$ltmain_in"; then -- test -f Makefile && make "$ltmain" -+ if test "x$lt_cv_dlopen" != xno; then -+ enable_dlopen=yes -+ else -+ enable_dlopen=no - fi --fi - -+ case $lt_cv_dlopen in -+ dlopen) -+ save_CPPFLAGS="$CPPFLAGS" -+ test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" - --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 -+ save_LDFLAGS="$LDFLAGS" -+ wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" - --CC="$lt_save_CC" -+ save_LIBS="$LIBS" -+ LIBS="$lt_cv_dlopen_libs $LIBS" - -- else -- tagname="" -- fi -- ;; -+ { $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 -+ $as_echo_n "(cached) " >&6 -+else -+ if test "$cross_compiling" = yes; then : -+ lt_cv_dlopen_self=cross -+else -+ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 -+ lt_status=$lt_dlunknown -+ cat > conftest.$ac_ext <<_LT_EOF -+#line 10877 "configure" -+#include "confdefs.h" - -- RC) -+#if HAVE_DLFCN_H -+#include -+#endif - -+#include - --# Source file extension for RC test sources. --ac_ext=rc -+#ifdef RTLD_GLOBAL -+# define LT_DLGLOBAL RTLD_GLOBAL -+#else -+# ifdef DL_GLOBAL -+# define LT_DLGLOBAL DL_GLOBAL -+# else -+# define LT_DLGLOBAL 0 -+# endif -+#endif - --# Object file extension for compiled RC test sources. --objext=o --objext_RC=$objext -+/* We may have to define LT_DLLAZY_OR_NOW in the command line if we -+ find out it does not work in some platform. */ -+#ifndef LT_DLLAZY_OR_NOW -+# ifdef RTLD_LAZY -+# define LT_DLLAZY_OR_NOW RTLD_LAZY -+# else -+# ifdef DL_LAZY -+# define LT_DLLAZY_OR_NOW DL_LAZY -+# else -+# ifdef RTLD_NOW -+# define LT_DLLAZY_OR_NOW RTLD_NOW -+# else -+# ifdef DL_NOW -+# define LT_DLLAZY_OR_NOW DL_NOW -+# else -+# define LT_DLLAZY_OR_NOW 0 -+# endif -+# endif -+# endif -+# endif -+#endif - --# Code to be used in simple compile tests --lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }' -+void fnord() { int i=42;} -+int main () -+{ -+ void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); -+ int status = $lt_dlunknown; - --# Code to be used in simple link tests --lt_simple_link_test_code="$lt_simple_compile_test_code" -+ if (self) -+ { -+ if (dlsym (self,"fnord")) status = $lt_dlno_uscore; -+ else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; -+ /* dlclose (self); */ -+ } -+ else -+ puts (dlerror ()); - --# ltmain only uses $CC for tagged configurations so make sure $CC is set. -+ return status; -+} -+_LT_EOF -+ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 -+ (eval $ac_link) 2>&5 -+ ac_status=$? -+ $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=$? -+ case x$lt_status in -+ x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;; -+ x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;; -+ x$lt_dlunknown|x*) lt_cv_dlopen_self=no ;; -+ esac -+ else : -+ # compilation failed -+ lt_cv_dlopen_self=no -+ fi -+fi -+rm -fr conftest* - --# If no C compiler was specified, use CC. --LTCC=${LTCC-"$CC"} - --# If no C compiler flags were specified, use CFLAGS. --LTCFLAGS=${LTCFLAGS-"$CFLAGS"} -+fi -+{ $as_echo "$as_me:$LINENO: result: $lt_cv_dlopen_self" >&5 -+$as_echo "$lt_cv_dlopen_self" >&6; } - --# Allow CC to be a program name with arguments. --compiler=$CC -+ if test "x$lt_cv_dlopen_self" = xyes; then -+ wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" -+ { $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 -+ $as_echo_n "(cached) " >&6 -+else -+ if test "$cross_compiling" = yes; then : -+ lt_cv_dlopen_self_static=cross -+else -+ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 -+ lt_status=$lt_dlunknown -+ cat > conftest.$ac_ext <<_LT_EOF -+#line 10973 "configure" -+#include "confdefs.h" - -+#if HAVE_DLFCN_H -+#include -+#endif - --# save warnings/boilerplate of simple test code --ac_outfile=conftest.$ac_objext --echo "$lt_simple_compile_test_code" >conftest.$ac_ext --eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err --_lt_compiler_boilerplate=`cat conftest.err` --$rm conftest* -+#include - --ac_outfile=conftest.$ac_objext --echo "$lt_simple_link_test_code" >conftest.$ac_ext --eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err --_lt_linker_boilerplate=`cat conftest.err` --$rm -r conftest* -+#ifdef RTLD_GLOBAL -+# define LT_DLGLOBAL RTLD_GLOBAL -+#else -+# ifdef DL_GLOBAL -+# define LT_DLGLOBAL DL_GLOBAL -+# else -+# define LT_DLGLOBAL 0 -+# endif -+#endif - -+/* We may have to define LT_DLLAZY_OR_NOW in the command line if we -+ find out it does not work in some platform. */ -+#ifndef LT_DLLAZY_OR_NOW -+# ifdef RTLD_LAZY -+# define LT_DLLAZY_OR_NOW RTLD_LAZY -+# else -+# ifdef DL_LAZY -+# define LT_DLLAZY_OR_NOW DL_LAZY -+# else -+# ifdef RTLD_NOW -+# define LT_DLLAZY_OR_NOW RTLD_NOW -+# else -+# ifdef DL_NOW -+# define LT_DLLAZY_OR_NOW DL_NOW -+# else -+# define LT_DLLAZY_OR_NOW 0 -+# endif -+# endif -+# endif -+# endif -+#endif - --# Allow CC to be a program name with arguments. --lt_save_CC="$CC" --CC=${RC-"windres"} --compiler=$CC --compiler_RC=$CC --for cc_temp in $compiler""; do -- case $cc_temp in -- compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; -- distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; -- \-*) ;; -- *) break;; -- esac --done --cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` -+void fnord() { int i=42;} -+int main () -+{ -+ void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); -+ int status = $lt_dlunknown; - --lt_cv_prog_compiler_c_o_RC=yes -+ if (self) -+ { -+ if (dlsym (self,"fnord")) status = $lt_dlno_uscore; -+ else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; -+ /* dlclose (self); */ -+ } -+ else -+ puts (dlerror ()); - --# The else clause should only fire when bootstrapping the --# libtool distribution, otherwise you forgot to ship ltmain.sh --# with your package, and you will get complaints that there are --# no rules to generate ltmain.sh. --if test -f "$ltmain"; then -- # See if we are running on zsh, and set the options which allow our commands through -- # without removal of \ escapes. -- if test -n "${ZSH_VERSION+set}" ; then -- setopt NO_GLOB_SUBST -- fi -- # Now quote all the things that may contain metacharacters while being -- # careful not to overquote the AC_SUBSTed values. We take copies of the -- # variables and quote the copies for generation of the libtool script. -- for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \ -- SED SHELL STRIP \ -- libname_spec library_names_spec soname_spec extract_expsyms_cmds \ -- old_striplib striplib file_magic_cmd finish_cmds finish_eval \ -- deplibs_check_method reload_flag reload_cmds need_locks \ -- lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ -- lt_cv_sys_global_symbol_to_c_name_address \ -- sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ -- old_postinstall_cmds old_postuninstall_cmds \ -- compiler_RC \ -- CC_RC \ -- LD_RC \ -- lt_prog_compiler_wl_RC \ -- lt_prog_compiler_pic_RC \ -- lt_prog_compiler_static_RC \ -- lt_prog_compiler_no_builtin_flag_RC \ -- export_dynamic_flag_spec_RC \ -- thread_safe_flag_spec_RC \ -- whole_archive_flag_spec_RC \ -- enable_shared_with_static_runtimes_RC \ -- old_archive_cmds_RC \ -- old_archive_from_new_cmds_RC \ -- predep_objects_RC \ -- postdep_objects_RC \ -- predeps_RC \ -- postdeps_RC \ -- compiler_lib_search_path_RC \ -- compiler_lib_search_dirs_RC \ -- archive_cmds_RC \ -- archive_expsym_cmds_RC \ -- postinstall_cmds_RC \ -- postuninstall_cmds_RC \ -- old_archive_from_expsyms_cmds_RC \ -- allow_undefined_flag_RC \ -- no_undefined_flag_RC \ -- export_symbols_cmds_RC \ -- hardcode_libdir_flag_spec_RC \ -- hardcode_libdir_flag_spec_ld_RC \ -- hardcode_libdir_separator_RC \ -- hardcode_automatic_RC \ -- module_cmds_RC \ -- module_expsym_cmds_RC \ -- lt_cv_prog_compiler_c_o_RC \ -- fix_srcfile_path_RC \ -- exclude_expsyms_RC \ -- include_expsyms_RC; do -- -- case $var in -- old_archive_cmds_RC | \ -- old_archive_from_new_cmds_RC | \ -- archive_cmds_RC | \ -- archive_expsym_cmds_RC | \ -- module_cmds_RC | \ -- module_expsym_cmds_RC | \ -- old_archive_from_expsyms_cmds_RC | \ -- export_symbols_cmds_RC | \ -- extract_expsyms_cmds | reload_cmds | finish_cmds | \ -- postinstall_cmds | postuninstall_cmds | \ -- old_postinstall_cmds | old_postuninstall_cmds | \ -- sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) -- # Double-quote double-evaled strings. -- eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" -- ;; -- *) -- eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" -- ;; -+ return status; -+} -+_LT_EOF -+ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 -+ (eval $ac_link) 2>&5 -+ ac_status=$? -+ $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=$? -+ case x$lt_status in -+ x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;; -+ x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;; -+ x$lt_dlunknown|x*) lt_cv_dlopen_self_static=no ;; - esac -- done -+ else : -+ # compilation failed -+ lt_cv_dlopen_self_static=no -+ fi -+fi -+rm -fr conftest* -+ -+ -+fi -+{ $as_echo "$as_me:$LINENO: result: $lt_cv_dlopen_self_static" >&5 -+$as_echo "$lt_cv_dlopen_self_static" >&6; } -+ fi - -- case $lt_echo in -- *'\$0 --fallback-echo"') -- lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` -+ CPPFLAGS="$save_CPPFLAGS" -+ LDFLAGS="$save_LDFLAGS" -+ LIBS="$save_LIBS" - ;; - esac - --cfgfile="$ofile" -+ case $lt_cv_dlopen_self in -+ yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; -+ *) enable_dlopen_self=unknown ;; -+ esac -+ -+ case $lt_cv_dlopen_self_static in -+ yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; -+ *) enable_dlopen_self_static=unknown ;; -+ esac -+fi -+ -+ -+ -+ - -- cat <<__EOF__ >> "$cfgfile" --# ### BEGIN LIBTOOL TAG CONFIG: $tagname - --# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: - --# Shell to use when invoking shell scripts. --SHELL=$lt_SHELL - --# Whether or not to build shared libraries. --build_libtool_libs=$enable_shared - --# Whether or not to build static libraries. --build_old_libs=$enable_static - --# Whether or not to add -lc for building shared libraries. --build_libtool_need_lc=$archive_cmds_need_lc_RC - --# Whether or not to disallow shared libs when runtime libs are static --allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_RC - --# Whether or not to optimize for fast installation. --fast_install=$enable_fast_install - --# The host system. --host_alias=$host_alias --host=$host --host_os=$host_os - --# The build system. --build_alias=$build_alias --build=$build --build_os=$build_os - --# An echo program that does not interpret backslashes. --echo=$lt_echo - --# The archiver. --AR=$lt_AR --AR_FLAGS=$lt_AR_FLAGS - --# A C compiler. --LTCC=$lt_LTCC -+striplib= -+old_striplib= -+{ $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" -+ { $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 -+ darwin*) -+ if test -n "$STRIP" ; then -+ striplib="$STRIP -x" -+ old_striplib="$STRIP -S" -+ { $as_echo "$as_me:$LINENO: result: yes" >&5 -+$as_echo "yes" >&6; } -+ else -+ { $as_echo "$as_me:$LINENO: result: no" >&5 -+$as_echo "no" >&6; } -+ fi -+ ;; -+ *) -+ { $as_echo "$as_me:$LINENO: result: no" >&5 -+$as_echo "no" >&6; } -+ ;; -+ esac -+fi - --# LTCC compiler flags. --LTCFLAGS=$lt_LTCFLAGS - --# A language-specific compiler. --CC=$lt_compiler_RC - --# Is the compiler the GNU C compiler? --with_gcc=$GCC_RC - --# An ERE matcher. --EGREP=$lt_EGREP - --# The linker used to build libraries. --LD=$lt_LD_RC - --# Whether we need hard or soft links. --LN_S=$lt_LN_S - --# A BSD-compatible nm program. --NM=$lt_NM - --# A symbol stripping program --STRIP=$lt_STRIP - --# Used to examine libraries when file_magic_cmd begins "file" --MAGIC_CMD=$MAGIC_CMD - --# Used on cygwin: DLL creation program. --DLLTOOL="$DLLTOOL" - --# Used on cygwin: object dumper. --OBJDUMP="$OBJDUMP" - --# Used on cygwin: assembler. --AS="$AS" -+ # Report which library types will actually be built -+ { $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; } - --# The name of the directory that contains temporary libtool files. --objdir=$objdir -+ { $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 - --# How to create reloadable object files. --reload_flag=$lt_reload_flag --reload_cmds=$lt_reload_cmds -+ # On AIX, shared libraries and static libraries use the same namespace, and -+ # are all built from PIC. -+ case $host_os in -+ aix3*) -+ test "$enable_shared" = yes && enable_static=no -+ if test -n "$RANLIB"; then -+ archive_cmds="$archive_cmds~\$RANLIB \$lib" -+ postinstall_cmds='$RANLIB $lib' -+ fi -+ ;; - --# How to pass a linker flag through the compiler. --wl=$lt_lt_prog_compiler_wl_RC -+ aix[4-9]*) -+ if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then -+ test "$enable_shared" = yes && enable_static=no -+ fi -+ ;; -+ esac -+ { $as_echo "$as_me:$LINENO: result: $enable_shared" >&5 -+$as_echo "$enable_shared" >&6; } - --# Object file suffix (normally "o"). --objext="$ac_objext" -+ { $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 -+ { $as_echo "$as_me:$LINENO: result: $enable_static" >&5 -+$as_echo "$enable_static" >&6; } - --# Old archive suffix (normally "a"). --libext="$libext" - --# Shared library suffix (normally ".so"). --shrext_cmds='$shrext_cmds' - --# Executable file suffix (normally ""). --exeext="$exeext" - --# Additional compiler flags for building library objects. --pic_flag=$lt_lt_prog_compiler_pic_RC --pic_mode=$pic_mode -+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 - --# What is the maximum length of a command? --max_cmd_len=$lt_cv_sys_max_cmd_len -+CC="$lt_save_CC" - --# Does compiler simultaneously support -c and -o options? --compiler_c_o=$lt_lt_cv_prog_compiler_c_o_RC - --# Must we lock files when doing compilation? --need_locks=$lt_need_locks - --# Do we need the lib prefix for modules? --need_lib_prefix=$need_lib_prefix - --# Do we need a version for libraries? --need_version=$need_version - --# Whether dlopen is supported. --dlopen_support=$enable_dlopen - --# Whether dlopen of programs is supported. --dlopen_self=$enable_dlopen_self - --# Whether dlopen of statically linked programs is supported. --dlopen_self_static=$enable_dlopen_self_static - --# Compiler flag to prevent dynamic linking. --link_static_flag=$lt_lt_prog_compiler_static_RC - --# Compiler flag to turn off builtin functions. --no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_RC - --# Compiler flag to allow reflexive dlopens. --export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_RC - --# Compiler flag to generate shared objects directly from archives. --whole_archive_flag_spec=$lt_whole_archive_flag_spec_RC - --# Compiler flag to generate thread-safe objects. --thread_safe_flag_spec=$lt_thread_safe_flag_spec_RC - --# Library versioning type. --version_type=$version_type -+ ac_config_commands="$ac_config_commands libtool" - --# Format of library name prefix. --libname_spec=$lt_libname_spec - --# List of archive names. First name is the real one, the rest are links. --# The last name is the one that the linker finds with -lNAME. --library_names_spec=$lt_library_names_spec - --# The coded name of the library, if different from the real name. --soname_spec=$lt_soname_spec - --# Commands used to build and install an old-style archive. --RANLIB=$lt_RANLIB --old_archive_cmds=$lt_old_archive_cmds_RC --old_postinstall_cmds=$lt_old_postinstall_cmds --old_postuninstall_cmds=$lt_old_postuninstall_cmds -+# Only expand once: - --# Create an old-style archive from a shared archive. --old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_RC - --# Create a temporary old-style archive to link instead of a shared archive. --old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_RC -+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 -+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 -+{ $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 -+ $as_echo_n "(cached) " >&6 -+else -+ if test -n "$CC"; then -+ ac_cv_prog_CC="$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 { 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" -+ $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 -+ break 2 -+ fi -+done -+done -+IFS=$as_save_IFS - --# Commands used to build and install a shared archive. --archive_cmds=$lt_archive_cmds_RC --archive_expsym_cmds=$lt_archive_expsym_cmds_RC --postinstall_cmds=$lt_postinstall_cmds --postuninstall_cmds=$lt_postuninstall_cmds -+fi -+fi -+CC=$ac_cv_prog_CC -+if test -n "$CC"; then -+ { $as_echo "$as_me:$LINENO: result: $CC" >&5 -+$as_echo "$CC" >&6; } -+else -+ { $as_echo "$as_me:$LINENO: result: no" >&5 -+$as_echo "no" >&6; } -+fi - --# Commands used to build a loadable module (assumed same as above if empty) --module_cmds=$lt_module_cmds_RC --module_expsym_cmds=$lt_module_expsym_cmds_RC - --# Commands to strip libraries. --old_striplib=$lt_old_striplib --striplib=$lt_striplib -+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 -+{ $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 -+ $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. -+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_ac_ct_CC="gcc" -+ $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 -+ break 2 -+ fi -+done -+done -+IFS=$as_save_IFS - --# Dependencies to place before the objects being linked to create a --# shared library. --predep_objects=$lt_predep_objects_RC -- --# Dependencies to place after the objects being linked to create a --# shared library. --postdep_objects=$lt_postdep_objects_RC -- --# Dependencies to place before the objects being linked to create a --# shared library. --predeps=$lt_predeps_RC -- --# Dependencies to place after the objects being linked to create a --# shared library. --postdeps=$lt_postdeps_RC -- --# The directories searched by this compiler when creating a shared --# library --compiler_lib_search_dirs=$lt_compiler_lib_search_dirs_RC -- --# The library search path used internally by the compiler when linking --# a shared library. --compiler_lib_search_path=$lt_compiler_lib_search_path_RC -+fi -+fi -+ac_ct_CC=$ac_cv_prog_ac_ct_CC -+if test -n "$ac_ct_CC"; then -+ { $as_echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 -+$as_echo "$ac_ct_CC" >&6; } -+else -+ { $as_echo "$as_me:$LINENO: result: no" >&5 -+$as_echo "no" >&6; } -+fi - --# Method to check whether dependent libraries are shared objects. --deplibs_check_method=$lt_deplibs_check_method -+ if test "x$ac_ct_CC" = x; then -+ CC="" -+ else -+ case $cross_compiling:$ac_tool_warned in -+yes:) -+{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 -+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -+ac_tool_warned=yes ;; -+esac -+ CC=$ac_ct_CC -+ fi -+else -+ CC="$ac_cv_prog_CC" -+fi - --# Command to use when deplibs_check_method == file_magic. --file_magic_cmd=$lt_file_magic_cmd -+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. -+set dummy ${ac_tool_prefix}cc; 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_CC+set}" = set; then -+ $as_echo_n "(cached) " >&6 -+else -+ if test -n "$CC"; then -+ ac_cv_prog_CC="$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 { 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" -+ $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 -+ break 2 -+ fi -+done -+done -+IFS=$as_save_IFS - --# Flag that allows shared libraries with undefined symbols to be built. --allow_undefined_flag=$lt_allow_undefined_flag_RC -+fi -+fi -+CC=$ac_cv_prog_CC -+if test -n "$CC"; then -+ { $as_echo "$as_me:$LINENO: result: $CC" >&5 -+$as_echo "$CC" >&6; } -+else -+ { $as_echo "$as_me:$LINENO: result: no" >&5 -+$as_echo "no" >&6; } -+fi - --# Flag that forces no undefined symbols. --no_undefined_flag=$lt_no_undefined_flag_RC - --# Commands used to finish a libtool library installation in a directory. --finish_cmds=$lt_finish_cmds -+ 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 -+{ $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 -+ $as_echo_n "(cached) " >&6 -+else -+ if test -n "$CC"; then -+ ac_cv_prog_CC="$CC" # Let the user override the test. -+else -+ ac_prog_rejected=no -+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 -+ if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then -+ ac_prog_rejected=yes -+ continue -+ fi -+ ac_cv_prog_CC="cc" -+ $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. -+ set dummy $ac_cv_prog_CC -+ shift -+ if test $# != 0; then -+ # We chose a different compiler from the bogus one. -+ # However, it has the same basename, so the bogon will be chosen -+ # first if we set CC to just the basename; use the full file name. -+ shift -+ ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" -+ fi -+fi -+fi -+fi -+CC=$ac_cv_prog_CC -+if test -n "$CC"; then -+ { $as_echo "$as_me:$LINENO: result: $CC" >&5 -+$as_echo "$CC" >&6; } -+else -+ { $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.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 -+{ $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 -+ $as_echo_n "(cached) " >&6 -+else -+ if test -n "$CC"; then -+ ac_cv_prog_CC="$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 { 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" -+ $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 -+ break 2 -+ fi -+done -+done -+IFS=$as_save_IFS - --# Same as above, but a single script fragment to be evaled but not shown. --finish_eval=$lt_finish_eval -+fi -+fi -+CC=$ac_cv_prog_CC -+if test -n "$CC"; then -+ { $as_echo "$as_me:$LINENO: result: $CC" >&5 -+$as_echo "$CC" >&6; } -+else -+ { $as_echo "$as_me:$LINENO: result: no" >&5 -+$as_echo "no" >&6; } -+fi - --# Take the output of nm and produce a listing of raw symbols and C names. --global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe - --# Transform the output of nm in a proper C declaration --global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl -+ test -n "$CC" && break -+ done -+fi -+if test -z "$CC"; then -+ ac_ct_CC=$CC -+ 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 -+{ $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 -+ $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. -+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_ac_ct_CC="$ac_prog" -+ $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 -+ break 2 -+ fi -+done -+done -+IFS=$as_save_IFS - --# Transform the output of nm in a C name address pair --global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address -+fi -+fi -+ac_ct_CC=$ac_cv_prog_ac_ct_CC -+if test -n "$ac_ct_CC"; then -+ { $as_echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 -+$as_echo "$ac_ct_CC" >&6; } -+else -+ { $as_echo "$as_me:$LINENO: result: no" >&5 -+$as_echo "no" >&6; } -+fi - --# This is the shared library runtime path variable. --runpath_var=$runpath_var - --# This is the shared library path variable. --shlibpath_var=$shlibpath_var -+ test -n "$ac_ct_CC" && break -+done - --# Is shlibpath searched before the hard-coded library search path? --shlibpath_overrides_runpath=$shlibpath_overrides_runpath -+ if test "x$ac_ct_CC" = x; then -+ CC="" -+ else -+ case $cross_compiling:$ac_tool_warned in -+yes:) -+{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 -+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -+ac_tool_warned=yes ;; -+esac -+ CC=$ac_ct_CC -+ fi -+fi - --# How to hardcode a shared library path into an executable. --hardcode_action=$hardcode_action_RC -+fi - --# Whether we should hardcode library paths into libraries. --hardcode_into_libs=$hardcode_into_libs - --# Flag to hardcode \$libdir into a binary during linking. --# This must work even if \$libdir does not exist. --hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_RC -+test -z "$CC" && { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 -+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -+{ { $as_echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH -+See \`config.log' for more details." >&5 -+$as_echo "$as_me: error: no acceptable C compiler found in \$PATH -+See \`config.log' for more details." >&2;} -+ { (exit 1); exit 1; }; }; } - --# If ld is used when linking, flag to hardcode \$libdir into --# a binary during linking. This must work even if \$libdir does --# not exist. --hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_RC -- --# Whether we need a single -rpath flag with a separated argument. --hardcode_libdir_separator=$lt_hardcode_libdir_separator_RC -- --# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the --# resulting binary. --hardcode_direct=$hardcode_direct_RC -- --# Set to yes if using the -LDIR flag during linking hardcodes DIR into the --# resulting binary. --hardcode_minus_L=$hardcode_minus_L_RC -- --# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into --# the resulting binary. --hardcode_shlibpath_var=$hardcode_shlibpath_var_RC -- --# Set to yes if building a shared library automatically hardcodes DIR into the library --# and all subsequent libraries and executables linked against it. --hardcode_automatic=$hardcode_automatic_RC -+# Provide some information about the compiler. -+$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=$? -+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); } -+{ (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=$? -+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); } -+{ (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=$? -+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); } - --# Variables whose values should be saved in libtool wrapper scripts and --# restored at relink time. --variables_saved_for_relink="$variables_saved_for_relink" -+{ $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 -+ $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. */ - --# Whether libtool must link a program against all its dependency libraries. --link_all_deplibs=$link_all_deplibs_RC -+int -+main () -+{ -+#ifndef __GNUC__ -+ choke me -+#endif - --# Compile-time system search path for libraries --sys_lib_search_path_spec=$lt_sys_lib_search_path_spec -+ ; -+ 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_compiler_gnu=yes -+else -+ $as_echo "$as_me: failed program was:" >&5 -+sed 's/^/| /' conftest.$ac_ext >&5 - --# Run-time system search path for libraries --sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec -+ ac_compiler_gnu=no -+fi - --# Fix the shell variable \$srcfile for the compiler. --fix_srcfile_path=$lt_fix_srcfile_path -+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -+ac_cv_c_compiler_gnu=$ac_compiler_gnu - --# Set to yes if exported symbols are required. --always_export_symbols=$always_export_symbols_RC -+fi -+{ $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 -+{ $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 -+ $as_echo_n "(cached) " >&6 -+else -+ 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 -+cat >>conftest.$ac_ext <<_ACEOF -+/* end confdefs.h. */ - --# The commands to list exported symbols. --export_symbols_cmds=$lt_export_symbols_cmds_RC -+int -+main () -+{ - --# The commands to extract the exported symbol list from a shared archive. --extract_expsyms_cmds=$lt_extract_expsyms_cmds -+ ; -+ 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_prog_cc_g=yes -+else -+ $as_echo "$as_me: failed program was:" >&5 -+sed 's/^/| /' conftest.$ac_ext >&5 - --# Symbols that should not be listed in the preloaded symbols. --exclude_expsyms=$lt_exclude_expsyms_RC -+ CFLAGS="" -+ cat >conftest.$ac_ext <<_ACEOF -+/* confdefs.h. */ -+_ACEOF -+cat confdefs.h >>conftest.$ac_ext -+cat >>conftest.$ac_ext <<_ACEOF -+/* end confdefs.h. */ - --# Symbols that must always be exported. --include_expsyms=$lt_include_expsyms_RC -+int -+main () -+{ - --# ### END LIBTOOL TAG CONFIG: $tagname -+ ; -+ 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 -+ : -+else -+ $as_echo "$as_me: failed program was:" >&5 -+sed 's/^/| /' conftest.$ac_ext >&5 - --__EOF__ -+ 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=$? -+ 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 -- # If there is no Makefile yet, we rely on a make rule to execute -- # `config.status --recheck' to rerun these tests and create the -- # libtool script then. -- ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` -- if test -f "$ltmain_in"; then -- test -f Makefile && make "$ltmain" -- fi --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 -+ $as_echo "$as_me: failed program was:" >&5 -+sed 's/^/| /' conftest.$ac_ext >&5 - --CC="$lt_save_CC" - -- ;; -+fi - -- *) -- { { echo "$as_me:$LINENO: error: Unsupported tag name: $tagname" >&5 --echo "$as_me: error: Unsupported tag name: $tagname" >&2;} -- { (exit 1); exit 1; }; } -- ;; -- esac -+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -+fi - -- # Append the new tag name to the list of available tags. -- if test -n "$tagname" ; then -- available_tags="$available_tags $tagname" -- fi -- fi -- done -- IFS="$lt_save_ifs" -+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -+fi - -- # Now substitute the updated list of available tags. -- if eval "sed -e 's/^available_tags=.*\$/available_tags=\"$available_tags\"/' \"$ofile\" > \"${ofile}T\""; then -- mv "${ofile}T" "$ofile" -- chmod +x "$ofile" -+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 -+ if test "$GCC" = yes; then -+ CFLAGS="-g -O2" - 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;} -- { (exit 1); exit 1; }; } -+ CFLAGS="-g" -+ fi -+else -+ if test "$GCC" = yes; then -+ CFLAGS="-O2" -+ else -+ CFLAGS= - fi - fi -+{ $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_c89=no -+ac_save_CC=$CC -+cat >conftest.$ac_ext <<_ACEOF -+/* confdefs.h. */ -+_ACEOF -+cat confdefs.h >>conftest.$ac_ext -+cat >>conftest.$ac_ext <<_ACEOF -+/* end confdefs.h. */ -+#include -+#include -+#include -+#include -+/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ -+struct buf { int x; }; -+FILE * (*rcsopen) (struct buf *, struct stat *, int); -+static char *e (p, i) -+ char **p; -+ int i; -+{ -+ return p[i]; -+} -+static char *f (char * (*g) (char **, int), char **p, ...) -+{ -+ char *s; -+ va_list v; -+ va_start (v,p); -+ s = g (p, va_arg (v,int)); -+ va_end (v); -+ return s; -+} - -+/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has -+ function prototypes and stuff, but not '\xHH' hex character constants. -+ These don't provoke an error unfortunately, instead are silently treated -+ 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 -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]; - --# This can be used to rebuild libtool when needed --LIBTOOL_DEPS="$ac_aux_dir/ltmain.sh" -- --# Always use our own libtool. --LIBTOOL='$(SHELL) $(top_builddir)/libtool' -- --# Prevent multiple expansion -- -- -- -- -- -- -- -- -- -- -- -- -- -- -+int test (int i, double x); -+struct s1 {int (*f) (int a);}; -+struct s2 {int (*f) (double a);}; -+int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); -+int argc; -+char **argv; -+int -+main () -+{ -+return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; -+ ; -+ return 0; -+} -+_ACEOF -+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 { (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_prog_cc_c89=$ac_arg -+else -+ $as_echo "$as_me: failed program was:" >&5 -+sed 's/^/| /' conftest.$ac_ext >&5 - - -+fi - -+rm -f core conftest.err conftest.$ac_objext -+ test "x$ac_cv_prog_cc_c89" != "xno" && break -+done -+rm -f conftest.$ac_ext -+CC=$ac_save_CC - -+fi -+# 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; } ;; -+ *) -+ 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 - - - ac_ext=c -@@ -19875,365 +11879,445 @@ - 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 --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; } --if test "${ac_cv_prog_CC+set}" = set; then -- echo $ECHO_N "(cached) $ECHO_C" >&6 --else -- if test -n "$CC"; then -- ac_cv_prog_CC="$CC" # Let the user override the test. -+ -+depcc="$CC" am_compiler_list= -+ -+{ $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 -+ $as_echo_n "(cached) " >&6 - 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_CC="${ac_tool_prefix}gcc" -- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 -- break 2 -+ if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then -+ # We make a subdir and do the tests there. Otherwise we can end up -+ # making bogus files that we don't know about and never remove. For -+ # instance it was reported that on HP-UX the gcc test will end up -+ # making a dummy file named `D' -- because `-MD' means `put the output -+ # in D'. -+ mkdir conftest.dir -+ # Copy depcomp to subdir because otherwise we won't find it if we're -+ # using a relative directory. -+ cp "$am_depcomp" conftest.dir -+ cd conftest.dir -+ # We will build objects and dependencies in a subdirectory because -+ # it helps to detect inapplicable dependency modes. For instance -+ # both Tru64's cc and ICC support -MD to output dependencies as a -+ # side effect of compilation, but ICC will put the dependencies in -+ # the current directory while Tru64 will put them in the object -+ # directory. -+ mkdir sub -+ -+ am_cv_CC_dependencies_compiler_type=none -+ if test "$am_compiler_list" = ""; then -+ am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` - fi --done --done --IFS=$as_save_IFS -+ am__universal=false -+ case " $depcc " in #( -+ *\ -arch\ *\ -arch\ *) am__universal=true ;; -+ esac -+ -+ for depmode in $am_compiler_list; do -+ # Setup a source with many dependencies, because some compilers -+ # like to wrap large dependency lists on column 80 (with \), and -+ # we should not choose a depcomp mode which is confused by this. -+ # -+ # We need to recreate these files for each test, as the compiler may -+ # overwrite some of them when testing with obscure command lines. -+ # This happens at least with the AIX C compiler. -+ : > sub/conftest.c -+ for i in 1 2 3 4 5 6; do -+ echo '#include "conftst'$i'.h"' >> sub/conftest.c -+ # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with -+ # Solaris 8's {/usr,}/bin/sh. -+ touch sub/conftst$i.h -+ done -+ echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf -+ -+ # We check with `-c' and `-o' for the sake of the "dashmstdout" -+ # mode. It turns out that the SunPro C++ compiler does not properly -+ # handle `-M -o', and we need to detect this. Also, some Intel -+ # versions had trouble with output in subdirs -+ am__obj=sub/conftest.${OBJEXT-o} -+ am__minus_obj="-o $am__obj" -+ case $depmode in -+ gcc) -+ # This depmode causes a compiler race in universal mode. -+ test "$am__universal" = false || continue -+ ;; -+ nosideeffect) -+ # after this tag, mechanisms are not by side-effect, so they'll -+ # only be used when explicitly requested -+ if test "x$enable_dependency_tracking" = xyes; then -+ continue -+ else -+ break -+ fi -+ ;; -+ msvisualcpp | msvcmsys) -+ # This compiler won't grok `-c -o', but also, the minuso test has -+ # not run yet. These depmodes are late enough in the game, and -+ # so weak that their functioning should not be impacted. -+ am__obj=conftest.${OBJEXT-o} -+ am__minus_obj= -+ ;; -+ none) break ;; -+ esac -+ if depmode=$depmode \ -+ source=sub/conftest.c object=$am__obj \ -+ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ -+ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ -+ >/dev/null 2>conftest.err && -+ grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && -+ grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && -+ grep $am__obj sub/conftest.Po > /dev/null 2>&1 && -+ ${MAKE-make} -s -f confmf > /dev/null 2>&1; then -+ # icc doesn't choke on unknown options, it will just issue warnings -+ # or remarks (even with -Werror). So we grep stderr for any message -+ # that says an option was ignored or not supported. -+ # When given -MP, icc 7.0 and 7.1 complain thusly: -+ # icc: Command line warning: ignoring option '-M'; no argument required -+ # The diagnosis changed in icc 8.0: -+ # icc: Command line remark: option '-MP' not supported -+ if (grep 'ignoring option' conftest.err || -+ grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else -+ am_cv_CC_dependencies_compiler_type=$depmode -+ break -+ fi -+ fi -+ done - -+ cd .. -+ rm -rf conftest.dir -+else -+ am_cv_CC_dependencies_compiler_type=none - 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: $am_cv_CC_dependencies_compiler_type" >&5 -+$as_echo "$am_cv_CC_dependencies_compiler_type" >&6; } -+CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type -+ -+ if -+ test "x$enable_dependency_tracking" != xno \ -+ && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then -+ am__fastdepCC_TRUE= -+ am__fastdepCC_FALSE='#' - else -- { echo "$as_me:$LINENO: result: no" >&5 --echo "${ECHO_T}no" >&6; } -+ am__fastdepCC_TRUE='#' -+ am__fastdepCC_FALSE= - 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; } --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 { 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 -- 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: 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 -+ $as_echo_n "(cached) " >&6 - else -- { echo "$as_me:$LINENO: result: no" >&5 --echo "${ECHO_T}no" >&6; } --fi -+ cat >conftest.$ac_ext <<_ACEOF -+/* confdefs.h. */ -+_ACEOF -+cat confdefs.h >>conftest.$ac_ext -+cat >>conftest.$ac_ext <<_ACEOF -+/* end confdefs.h. */ -+#include -+#include -+#include -+#include - -- if test "x$ac_ct_CC" = x; then -- CC="" -- else -- case $cross_compiling:$ac_tool_warned in --yes:) --{ 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 --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 ;; -+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 -- CC=$ac_ct_CC -- fi -+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_header_stdc=yes - else -- CC="$ac_cv_prog_CC" -+ $as_echo "$as_me: failed program was:" >&5 -+sed 's/^/| /' conftest.$ac_ext >&5 -+ -+ ac_cv_header_stdc=no - 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. --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; } --if test "${ac_cv_prog_CC+set}" = set; then -- echo $ECHO_N "(cached) $ECHO_C" >&6 --else -- if test -n "$CC"; then -- ac_cv_prog_CC="$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 { 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 -- break 2 -- fi --done --done --IFS=$as_save_IFS -+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - --fi --fi --CC=$ac_cv_prog_CC --if test -n "$CC"; then -- { echo "$as_me:$LINENO: result: $CC" >&5 --echo "${ECHO_T}$CC" >&6; } -+if test $ac_cv_header_stdc = yes; then -+ # SunOS 4.x string.h does not declare mem*, contrary to ANSI. -+ cat >conftest.$ac_ext <<_ACEOF -+/* confdefs.h. */ -+_ACEOF -+cat confdefs.h >>conftest.$ac_ext -+cat >>conftest.$ac_ext <<_ACEOF -+/* end confdefs.h. */ -+#include -+ -+_ACEOF -+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | -+ $EGREP "memchr" >/dev/null 2>&1; then -+ : - else -- { echo "$as_me:$LINENO: result: no" >&5 --echo "${ECHO_T}no" >&6; } -+ ac_cv_header_stdc=no - fi -+rm -f conftest* - -- -- 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; } --if test "${ac_cv_prog_CC+set}" = set; then -- echo $ECHO_N "(cached) $ECHO_C" >&6 --else -- if test -n "$CC"; then -- ac_cv_prog_CC="$CC" # Let the user override the test. --else -- ac_prog_rejected=no --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 -- 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 -- 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. -- set dummy $ac_cv_prog_CC -- shift -- if test $# != 0; then -- # We chose a different compiler from the bogus one. -- # However, it has the same basename, so the bogon will be chosen -- # first if we set CC to just the basename; use the full file name. -- shift -- ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" -- fi --fi --fi --fi --CC=$ac_cv_prog_CC --if test -n "$CC"; then -- { echo "$as_me:$LINENO: result: $CC" >&5 --echo "${ECHO_T}$CC" >&6; } -+if test $ac_cv_header_stdc = yes; then -+ # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. -+ cat >conftest.$ac_ext <<_ACEOF -+/* confdefs.h. */ -+_ACEOF -+cat confdefs.h >>conftest.$ac_ext -+cat >>conftest.$ac_ext <<_ACEOF -+/* end confdefs.h. */ -+#include -+ -+_ACEOF -+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | -+ $EGREP "free" >/dev/null 2>&1; then -+ : - else -- { echo "$as_me:$LINENO: result: no" >&5 --echo "${ECHO_T}no" >&6; } -+ ac_cv_header_stdc=no - fi -- -+rm -f conftest* - - fi --if test -z "$CC"; then -- if test -n "$ac_tool_prefix"; then -- 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; } --if test "${ac_cv_prog_CC+set}" = set; then -- echo $ECHO_N "(cached) $ECHO_C" >&6 -+ -+if test $ac_cv_header_stdc = yes; then -+ # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. -+ if test "$cross_compiling" = yes; then -+ : - else -- if test -n "$CC"; then -- ac_cv_prog_CC="$CC" # Let the user override the test. -+ cat >conftest.$ac_ext <<_ACEOF -+/* confdefs.h. */ -+_ACEOF -+cat confdefs.h >>conftest.$ac_ext -+cat >>conftest.$ac_ext <<_ACEOF -+/* end confdefs.h. */ -+#include -+#include -+#if ((' ' & 0x0FF) == 0x020) -+# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') -+# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) -+#else -+# define ISLOWER(c) \ -+ (('a' <= (c) && (c) <= 'i') \ -+ || ('j' <= (c) && (c) <= 'r') \ -+ || ('s' <= (c) && (c) <= 'z')) -+# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) -+#endif -+ -+#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) -+int -+main () -+{ -+ int i; -+ for (i = 0; i < 256; i++) -+ if (XOR (islower (i), ISLOWER (i)) -+ || toupper (i) != TOUPPER (i)) -+ return 2; -+ return 0; -+} -+_ACEOF -+rm -f conftest$ac_exeext -+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=$? -+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); } && { ac_try='./conftest$ac_exeext' -+ { (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=$? -+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); }; }; then -+ : - 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_CC="$ac_tool_prefix$ac_prog" -- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 -- break 2 -- fi --done --done --IFS=$as_save_IFS -+ $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 -rf conftest.dSYM -+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext - 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 -- - -- test -n "$CC" && break -- done --fi --if test -z "$CC"; then -- ac_ct_CC=$CC -- 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; } --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 { 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 -- 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; } --else -- { echo "$as_me:$LINENO: result: no" >&5 --echo "${ECHO_T}no" >&6; } --fi -- -+{ $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 - -- test -n "$ac_ct_CC" && break --done -+cat >>confdefs.h <<\_ACEOF -+#define STDC_HEADERS 1 -+_ACEOF - -- if test "x$ac_ct_CC" = x; then -- CC="" -- else -- case $cross_compiling:$ac_tool_warned in --yes:) --{ 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 --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 - -+# Check whether --enable-largefile was given. -+if test "${enable_largefile+set}" = set; then -+ enableval=$enable_largefile; - fi - -+if test "$enable_largefile" != no; then - --test -z "$CC" && { { 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 --See \`config.log' for more details." >&2;} -- { (exit 1); exit 1; }; } -+ { $as_echo "$as_me:$LINENO: checking for special C compiler options needed for large files" >&5 -+$as_echo_n "checking for special C compiler options needed for large files... " >&6; } -+if test "${ac_cv_sys_largefile_CC+set}" = set; then -+ $as_echo_n "(cached) " >&6 -+else -+ ac_cv_sys_largefile_CC=no -+ if test "$GCC" != yes; then -+ ac_save_CC=$CC -+ while :; do -+ # IRIX 6.2 and later do not support large files by default, -+ # so use the C compiler's -n32 option if that helps. -+ cat >conftest.$ac_ext <<_ACEOF -+/* confdefs.h. */ -+_ACEOF -+cat confdefs.h >>conftest.$ac_ext -+cat >>conftest.$ac_ext <<_ACEOF -+/* end confdefs.h. */ -+#include -+ /* Check that off_t can represent 2**63 - 1 correctly. -+ We can't simply define LARGE_OFF_T to be 9223372036854775807, -+ since some C++ compilers masquerading as C compilers -+ incorrectly reject 9223372036854775807. */ -+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) -+ int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 -+ && LARGE_OFF_T % 2147483647 == 1) -+ ? 1 : -1]; -+int -+main () -+{ - --# Provide some information about the compiler. --echo "$as_me:$LINENO: checking for C compiler version" >&5 --ac_compiler=`set X $ac_compile; echo $2` --{ (ac_try="$ac_compiler --version >&5" --case "(($ac_try" in -- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; -- *) ac_try_echo=$ac_try;; --esac --eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 -- (eval "$ac_compiler --version >&5") 2>&5 -- ac_status=$? -- echo "$as_me:$LINENO: \$? = $ac_status" >&5 -- (exit $ac_status); } --{ (ac_try="$ac_compiler -v >&5" -+ ; -+ 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 -- (eval "$ac_compiler -v >&5") 2>&5 -+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="$ac_compiler -V >&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 -+ break -+else -+ $as_echo "$as_me: failed program was:" >&5 -+sed 's/^/| /' conftest.$ac_ext >&5 -+ -+ -+fi -+ -+rm -f core conftest.err conftest.$ac_objext -+ CC="$CC -n32" -+ 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 -- (eval "$ac_compiler -V >&5") 2>&5 -+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); } -+ 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_sys_largefile_CC=' -n32'; break -+else -+ $as_echo "$as_me: failed program was:" >&5 -+sed 's/^/| /' conftest.$ac_ext >&5 - --{ 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; } --if test "${ac_cv_c_compiler_gnu+set}" = set; then -- echo $ECHO_N "(cached) $ECHO_C" >&6 -+ -+fi -+ -+rm -f core conftest.err conftest.$ac_objext -+ break -+ done -+ CC=$ac_save_CC -+ rm -f conftest.$ac_ext -+ fi -+fi -+{ $as_echo "$as_me:$LINENO: result: $ac_cv_sys_largefile_CC" >&5 -+$as_echo "$ac_cv_sys_largefile_CC" >&6; } -+ if test "$ac_cv_sys_largefile_CC" != no; then -+ CC=$CC$ac_cv_sys_largefile_CC -+ fi -+ -+ { $as_echo "$as_me:$LINENO: checking for _FILE_OFFSET_BITS value needed for large files" >&5 -+$as_echo_n "checking for _FILE_OFFSET_BITS value needed for large files... " >&6; } -+if test "${ac_cv_sys_file_offset_bits+set}" = set; then -+ $as_echo_n "(cached) " >&6 - else -+ while :; do - cat >conftest.$ac_ext <<_ACEOF - /* confdefs.h. */ - _ACEOF - cat confdefs.h >>conftest.$ac_ext - cat >>conftest.$ac_ext <<_ACEOF - /* end confdefs.h. */ -- -+#include -+ /* Check that off_t can represent 2**63 - 1 correctly. -+ We can't simply define LARGE_OFF_T to be 9223372036854775807, -+ since some C++ compilers masquerading as C compilers -+ incorrectly reject 9223372036854775807. */ -+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) -+ int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 -+ && LARGE_OFF_T % 2147483647 == 1) -+ ? 1 : -1]; - int - main () - { --#ifndef __GNUC__ -- choke me --#endif - - ; - return 0; -@@ -20245,50 +12329,43 @@ - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; - esac --eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 -+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 -+ $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 -+ ac_cv_sys_file_offset_bits=no; break - 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 -+ - fi - - 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` --ac_test_CFLAGS=${CFLAGS+set} --ac_save_CFLAGS=$CFLAGS --{ echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5 --echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6; } --if test "${ac_cv_prog_cc_g+set}" = set; then -- echo $ECHO_N "(cached) $ECHO_C" >&6 --else -- 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 -+ cat >conftest.$ac_ext <<_ACEOF - /* confdefs.h. */ - _ACEOF - cat confdefs.h >>conftest.$ac_ext - cat >>conftest.$ac_ext <<_ACEOF - /* end confdefs.h. */ -- -+#define _FILE_OFFSET_BITS 64 -+#include -+ /* Check that off_t can represent 2**63 - 1 correctly. -+ We can't simply define LARGE_OFF_T to be 9223372036854775807, -+ since some C++ compilers masquerading as C compilers -+ incorrectly reject 9223372036854775807. */ -+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) -+ int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 -+ && LARGE_OFF_T % 2147483647 == 1) -+ ? 1 : -1]; - int - main () - { -@@ -20303,30 +12380,64 @@ - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; - esac --eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 -+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 -+ $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 -+ ac_cv_sys_file_offset_bits=64; break - else -- echo "$as_me: failed program was:" >&5 -+ $as_echo "$as_me: failed program was:" >&5 - sed 's/^/| /' conftest.$ac_ext >&5 - -- CFLAGS="" -- cat >conftest.$ac_ext <<_ACEOF -+ -+fi -+ -+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -+ ac_cv_sys_file_offset_bits=unknown -+ break -+done -+fi -+{ $as_echo "$as_me:$LINENO: result: $ac_cv_sys_file_offset_bits" >&5 -+$as_echo "$ac_cv_sys_file_offset_bits" >&6; } -+case $ac_cv_sys_file_offset_bits in #( -+ no | unknown) ;; -+ *) -+cat >>confdefs.h <<_ACEOF -+#define _FILE_OFFSET_BITS $ac_cv_sys_file_offset_bits -+_ACEOF -+;; -+esac -+rm -rf conftest* -+ if test $ac_cv_sys_file_offset_bits = unknown; then -+ { $as_echo "$as_me:$LINENO: checking for _LARGE_FILES value needed for large files" >&5 -+$as_echo_n "checking for _LARGE_FILES value needed for large files... " >&6; } -+if test "${ac_cv_sys_large_files+set}" = set; then -+ $as_echo_n "(cached) " >&6 -+else -+ while :; do -+ cat >conftest.$ac_ext <<_ACEOF - /* confdefs.h. */ - _ACEOF - cat confdefs.h >>conftest.$ac_ext - cat >>conftest.$ac_ext <<_ACEOF - /* end confdefs.h. */ -- -+#include -+ /* Check that off_t can represent 2**63 - 1 correctly. -+ We can't simply define LARGE_OFF_T to be 9223372036854775807, -+ since some C++ compilers masquerading as C compilers -+ incorrectly reject 9223372036854775807. */ -+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) -+ int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 -+ && LARGE_OFF_T % 2147483647 == 1) -+ ? 1 : -1]; - int - main () - { -@@ -20341,31 +12452,43 @@ - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; - esac --eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 -+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 -+ $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_sys_large_files=no; break - else -- echo "$as_me: failed program was:" >&5 -+ $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 -+ -+fi -+ -+rm -f core 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. */ -- -+#define _LARGE_FILES 1 -+#include -+ /* Check that off_t can represent 2**63 - 1 correctly. -+ We can't simply define LARGE_OFF_T to be 9223372036854775807, -+ since some C++ compilers masquerading as C compilers -+ incorrectly reject 9223372036854775807. */ -+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) -+ int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 -+ && LARGE_OFF_T % 2147483647 == 1) -+ ? 1 : -1]; - int - main () - { -@@ -20380,589 +12503,905 @@ - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; - esac --eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 -+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 -+ $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 -+ ac_cv_sys_large_files=1; break - else -- echo "$as_me: failed program was:" >&5 -+ $as_echo "$as_me: failed program was:" >&5 - sed 's/^/| /' conftest.$ac_ext >&5 - - --fi -+fi -+ -+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -+ ac_cv_sys_large_files=unknown -+ break -+done -+fi -+{ $as_echo "$as_me:$LINENO: result: $ac_cv_sys_large_files" >&5 -+$as_echo "$ac_cv_sys_large_files" >&6; } -+case $ac_cv_sys_large_files in #( -+ no | unknown) ;; -+ *) -+cat >>confdefs.h <<_ACEOF -+#define _LARGE_FILES $ac_cv_sys_large_files -+_ACEOF -+;; -+esac -+rm -rf conftest* -+ fi -+fi -+ -+ -+ -+ -+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 -+{ $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 -+ $as_echo_n "(cached) " >&6 -+else -+ case $PKG_CONFIG in -+ [\\/]* | ?:[\\/]*) -+ ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. -+ ;; -+ *) -+ 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_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" -+ $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 -+ { $as_echo "$as_me:$LINENO: result: $PKG_CONFIG" >&5 -+$as_echo "$PKG_CONFIG" >&6; } -+else -+ { $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 -+{ $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 -+ $as_echo_n "(cached) " >&6 -+else -+ case $ac_pt_PKG_CONFIG in -+ [\\/]* | ?:[\\/]*) -+ ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path. -+ ;; -+ *) -+ 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_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" -+ $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 -+ { $as_echo "$as_me:$LINENO: result: $ac_pt_PKG_CONFIG" >&5 -+$as_echo "$ac_pt_PKG_CONFIG" >&6; } -+else -+ { $as_echo "$as_me:$LINENO: result: no" >&5 -+$as_echo "no" >&6; } -+fi -+ -+ 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: using cross tools not prefixed with host triplet" >&5 -+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -+ac_tool_warned=yes ;; -+esac -+ PKG_CONFIG=$ac_pt_PKG_CONFIG -+ fi -+else -+ PKG_CONFIG="$ac_cv_path_PKG_CONFIG" -+fi -+ -+fi -+if test -n "$PKG_CONFIG"; then -+ _pkg_min_version=0.9.0 -+ { $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 -+ { $as_echo "$as_me:$LINENO: result: yes" >&5 -+$as_echo "yes" >&6; } -+ else -+ { $as_echo "$as_me:$LINENO: result: no" >&5 -+$as_echo "no" >&6; } -+ PKG_CONFIG="" -+ fi -+ -+fi -+ -+pkg_failed=no -+{ $as_echo "$as_me:$LINENO: checking for X11" >&5 -+$as_echo_n "checking for X11... " >&6; } -+ -+if test -n "$X11_CFLAGS"; then -+ pkg_cv_X11_CFLAGS="$X11_CFLAGS" -+ elif test -n "$PKG_CONFIG"; then -+ if test -n "$PKG_CONFIG" && \ -+ { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"x11\"") >&5 -+ ($PKG_CONFIG --exists --print-errors "x11") 2>&5 -+ ac_status=$? -+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); }; then -+ pkg_cv_X11_CFLAGS=`$PKG_CONFIG --cflags "x11" 2>/dev/null` -+else -+ pkg_failed=yes -+fi -+ else -+ pkg_failed=untried -+fi -+if test -n "$X11_LIBS"; then -+ pkg_cv_X11_LIBS="$X11_LIBS" -+ elif test -n "$PKG_CONFIG"; then -+ if test -n "$PKG_CONFIG" && \ -+ { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"x11\"") >&5 -+ ($PKG_CONFIG --exists --print-errors "x11") 2>&5 -+ ac_status=$? -+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); }; then -+ pkg_cv_X11_LIBS=`$PKG_CONFIG --libs "x11" 2>/dev/null` -+else -+ pkg_failed=yes -+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 -+ X11_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "x11" 2>&1` -+ else -+ X11_PKG_ERRORS=`$PKG_CONFIG --print-errors "x11" 2>&1` -+ fi -+ # Put the nasty error message in config.log where it belongs -+ echo "$X11_PKG_ERRORS" >&5 -+ -+ { { $as_echo "$as_me:$LINENO: error: Package requirements (x11) were not met: -+ -+$X11_PKG_ERRORS -+ -+Consider adjusting the PKG_CONFIG_PATH environment variable if you -+installed software in a non-standard prefix. -+ -+Alternatively, you may set the environment variables X11_CFLAGS -+and X11_LIBS to avoid the need to call pkg-config. -+See the pkg-config man page for more details. -+" >&5 -+$as_echo "$as_me: error: Package requirements (x11) were not met: -+ -+$X11_PKG_ERRORS -+ -+Consider adjusting the PKG_CONFIG_PATH environment variable if you -+installed software in a non-standard prefix. -+ -+Alternatively, you may set the environment variables X11_CFLAGS -+and X11_LIBS to avoid the need to call pkg-config. -+See the pkg-config man page for more details. -+" >&2;} -+ { (exit 1); exit 1; }; } -+elif test $pkg_failed = untried; then -+ { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 -+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -+{ { $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. -+ -+Alternatively, you may set the environment variables X11_CFLAGS -+and X11_LIBS to avoid the need to call pkg-config. -+See the pkg-config man page for more details. -+ -+To get pkg-config, see . -+See \`config.log' for more details." >&5 -+$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. -+ -+Alternatively, you may set the environment variables X11_CFLAGS -+and X11_LIBS to avoid the need to call pkg-config. -+See the pkg-config man page for more details. -+ -+To get pkg-config, see . -+See \`config.log' for more details." >&2;} -+ { (exit 1); exit 1; }; }; } -+else -+ X11_CFLAGS=$pkg_cv_X11_CFLAGS -+ X11_LIBS=$pkg_cv_X11_LIBS -+ { $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 "$XEXT_CFLAGS"; then -+ pkg_cv_XEXT_CFLAGS="$XEXT_CFLAGS" -+ elif test -n "$PKG_CONFIG"; then -+ if test -n "$PKG_CONFIG" && \ -+ { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"xext\"") >&5 -+ ($PKG_CONFIG --exists --print-errors "xext") 2>&5 -+ ac_status=$? -+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); }; then -+ pkg_cv_XEXT_CFLAGS=`$PKG_CONFIG --cflags "xext" 2>/dev/null` -+else -+ pkg_failed=yes -+fi -+ else -+ pkg_failed=untried -+fi -+if test -n "$XEXT_LIBS"; then -+ pkg_cv_XEXT_LIBS="$XEXT_LIBS" -+ elif test -n "$PKG_CONFIG"; then -+ if test -n "$PKG_CONFIG" && \ -+ { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"xext\"") >&5 -+ ($PKG_CONFIG --exists --print-errors "xext") 2>&5 -+ ac_status=$? -+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); }; then -+ pkg_cv_XEXT_LIBS=`$PKG_CONFIG --libs "xext" 2>/dev/null` -+else -+ pkg_failed=yes -+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 --print-errors "xext" 2>&1` -+ else -+ XEXT_PKG_ERRORS=`$PKG_CONFIG --print-errors "xext" 2>&1` -+ fi -+ # Put the nasty error message in config.log where it belongs -+ echo "$XEXT_PKG_ERRORS" >&5 -+ -+ { { $as_echo "$as_me:$LINENO: error: Package requirements (xext) were not met: -+ -+$XEXT_PKG_ERRORS -+ -+Consider adjusting the PKG_CONFIG_PATH environment variable if you -+installed software in a non-standard prefix. -+ -+Alternatively, you may set the environment variables XEXT_CFLAGS -+and XEXT_LIBS to avoid the need to call pkg-config. -+See the pkg-config man page for more details. -+" >&5 -+$as_echo "$as_me: error: Package requirements (xext) were not met: -+ -+$XEXT_PKG_ERRORS -+ -+Consider adjusting the PKG_CONFIG_PATH environment variable if you -+installed software in a non-standard prefix. - --rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext --fi -+Alternatively, you may set the environment variables XEXT_CFLAGS -+and XEXT_LIBS to avoid the need to call pkg-config. -+See the pkg-config man page for more details. -+" >&2;} -+ { (exit 1); exit 1; }; } -+elif test $pkg_failed = untried; then -+ { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 -+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -+{ { $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. - --rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext --fi -+Alternatively, you may set the environment variables XEXT_CFLAGS -+and XEXT_LIBS to avoid the need to call pkg-config. -+See the pkg-config man page for more details. - --rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -- ac_c_werror_flag=$ac_save_c_werror_flag --fi --{ echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5 --echo "${ECHO_T}$ac_cv_prog_cc_g" >&6; } --if test "$ac_test_CFLAGS" = set; then -- CFLAGS=$ac_save_CFLAGS --elif test $ac_cv_prog_cc_g = yes; then -- if test "$GCC" = yes; then -- CFLAGS="-g -O2" -- else -- CFLAGS="-g" -- fi -+To get pkg-config, see . -+See \`config.log' for more details." >&5 -+$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. -+ -+Alternatively, you may set the environment variables XEXT_CFLAGS -+and XEXT_LIBS to avoid the need to call pkg-config. -+See the pkg-config man page for more details. -+ -+To get pkg-config, see . -+See \`config.log' for more details." >&2;} -+ { (exit 1); exit 1; }; }; } - else -- if test "$GCC" = yes; then -- CFLAGS="-O2" -- else -- CFLAGS= -- fi -+ XEXT_CFLAGS=$pkg_cv_XEXT_CFLAGS -+ XEXT_LIBS=$pkg_cv_XEXT_LIBS -+ { $as_echo "$as_me:$LINENO: result: yes" >&5 -+$as_echo "yes" >&6; } -+ : - fi --{ echo "$as_me:$LINENO: checking for $CC option to accept ISO C89" >&5 --echo $ECHO_N "checking for $CC option to accept ISO C89... $ECHO_C" >&6; } --if test "${ac_cv_prog_cc_c89+set}" = set; then -- echo $ECHO_N "(cached) $ECHO_C" >&6 --else -- ac_cv_prog_cc_c89=no --ac_save_CC=$CC --cat >conftest.$ac_ext <<_ACEOF --/* confdefs.h. */ --_ACEOF --cat confdefs.h >>conftest.$ac_ext --cat >>conftest.$ac_ext <<_ACEOF --/* end confdefs.h. */ --#include --#include --#include --#include --/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ --struct buf { int x; }; --FILE * (*rcsopen) (struct buf *, struct stat *, int); --static char *e (p, i) -- char **p; -- int i; --{ -- return p[i]; --} --static char *f (char * (*g) (char **, int), char **p, ...) --{ -- char *s; -- va_list v; -- va_start (v,p); -- s = g (p, va_arg (v,int)); -- va_end (v); -- return s; --} -- --/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has -- function prototypes and stuff, but not '\xHH' hex character constants. -- These don't provoke an error unfortunately, instead are silently treated -- 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 -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]; -+pkg_failed=no -+{ $as_echo "$as_me:$LINENO: checking for XFIXES" >&5 -+$as_echo_n "checking for XFIXES... " >&6; } - --int test (int i, double x); --struct s1 {int (*f) (int a);}; --struct s2 {int (*f) (double a);}; --int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); --int argc; --char **argv; --int --main () --{ --return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; -- ; -- return 0; --} --_ACEOF --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 { (ac_try="$ac_compile" --case "(($ac_try" in -- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; -- *) ac_try_echo=$ac_try;; --esac --eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 -- (eval "$ac_compile") 2>conftest.er1 -+if test -n "$XFIXES_CFLAGS"; then -+ pkg_cv_XFIXES_CFLAGS="$XFIXES_CFLAGS" -+ elif test -n "$PKG_CONFIG"; then -+ if test -n "$PKG_CONFIG" && \ -+ { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"xfixes\"") >&5 -+ ($PKG_CONFIG --exists --print-errors "xfixes") 2>&5 - 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); } && { -- test -z "$ac_c_werror_flag" || -- test ! -s conftest.err -- } && test -s conftest.$ac_objext; then -- ac_cv_prog_cc_c89=$ac_arg -+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); }; then -+ pkg_cv_XFIXES_CFLAGS=`$PKG_CONFIG --cflags "xfixes" 2>/dev/null` - else -- echo "$as_me: failed program was:" >&5 --sed 's/^/| /' conftest.$ac_ext >&5 -- -- -+ pkg_failed=yes - fi -- --rm -f core conftest.err conftest.$ac_objext -- test "x$ac_cv_prog_cc_c89" != "xno" && break --done --rm -f conftest.$ac_ext --CC=$ac_save_CC -- -+ else -+ pkg_failed=untried -+fi -+if test -n "$XFIXES_LIBS"; then -+ pkg_cv_XFIXES_LIBS="$XFIXES_LIBS" -+ elif test -n "$PKG_CONFIG"; then -+ if test -n "$PKG_CONFIG" && \ -+ { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"xfixes\"") >&5 -+ ($PKG_CONFIG --exists --print-errors "xfixes") 2>&5 -+ ac_status=$? -+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); }; then -+ pkg_cv_XFIXES_LIBS=`$PKG_CONFIG --libs "xfixes" 2>/dev/null` -+else -+ pkg_failed=yes -+fi -+ else -+ pkg_failed=untried - fi --# AC_CACHE_VAL --case "x$ac_cv_prog_cc_c89" in -- x) -- { echo "$as_me:$LINENO: result: none needed" >&5 --echo "${ECHO_T}none needed" >&6; } ;; -- xno) -- { echo "$as_me:$LINENO: result: unsupported" >&5 --echo "${ECHO_T}unsupported" >&6; } ;; -- *) -- CC="$CC $ac_cv_prog_cc_c89" -- { echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c89" >&5 --echo "${ECHO_T}$ac_cv_prog_cc_c89" >&6; } ;; --esac - - --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 - --depcc="$CC" am_compiler_list= -+if test $pkg_failed = yes; then - --{ echo "$as_me:$LINENO: checking dependency style of $depcc" >&5 --echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6; } --if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then -- echo $ECHO_N "(cached) $ECHO_C" >&6 -+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then -+ _pkg_short_errors_supported=yes - else -- if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then -- # We make a subdir and do the tests there. Otherwise we can end up -- # making bogus files that we don't know about and never remove. For -- # instance it was reported that on HP-UX the gcc test will end up -- # making a dummy file named `D' -- because `-MD' means `put the output -- # in D'. -- mkdir conftest.dir -- # Copy depcomp to subdir because otherwise we won't find it if we're -- # using a relative directory. -- cp "$am_depcomp" conftest.dir -- cd conftest.dir -- # We will build objects and dependencies in a subdirectory because -- # it helps to detect inapplicable dependency modes. For instance -- # both Tru64's cc and ICC support -MD to output dependencies as a -- # side effect of compilation, but ICC will put the dependencies in -- # the current directory while Tru64 will put them in the object -- # directory. -- mkdir sub -+ _pkg_short_errors_supported=no -+fi -+ if test $_pkg_short_errors_supported = yes; then -+ XFIXES_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "xfixes" 2>&1` -+ else -+ XFIXES_PKG_ERRORS=`$PKG_CONFIG --print-errors "xfixes" 2>&1` -+ fi -+ # Put the nasty error message in config.log where it belongs -+ echo "$XFIXES_PKG_ERRORS" >&5 - -- am_cv_CC_dependencies_compiler_type=none -- if test "$am_compiler_list" = ""; then -- am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` -- fi -- for depmode in $am_compiler_list; do -- # Setup a source with many dependencies, because some compilers -- # like to wrap large dependency lists on column 80 (with \), and -- # we should not choose a depcomp mode which is confused by this. -- # -- # We need to recreate these files for each test, as the compiler may -- # overwrite some of them when testing with obscure command lines. -- # This happens at least with the AIX C compiler. -- : > sub/conftest.c -- for i in 1 2 3 4 5 6; do -- echo '#include "conftst'$i'.h"' >> sub/conftest.c -- # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with -- # Solaris 8's {/usr,}/bin/sh. -- touch sub/conftst$i.h -- done -- echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf -+ { { $as_echo "$as_me:$LINENO: error: Package requirements (xfixes) were not met: - -- case $depmode in -- nosideeffect) -- # after this tag, mechanisms are not by side-effect, so they'll -- # only be used when explicitly requested -- if test "x$enable_dependency_tracking" = xyes; then -- continue -- else -- break -- fi -- ;; -- none) break ;; -- esac -- # We check with `-c' and `-o' for the sake of the "dashmstdout" -- # mode. It turns out that the SunPro C++ compiler does not properly -- # handle `-M -o', and we need to detect this. -- if depmode=$depmode \ -- source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \ -- depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ -- $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \ -- >/dev/null 2>conftest.err && -- grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && -- grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && -- grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 && -- ${MAKE-make} -s -f confmf > /dev/null 2>&1; then -- # icc doesn't choke on unknown options, it will just issue warnings -- # or remarks (even with -Werror). So we grep stderr for any message -- # that says an option was ignored or not supported. -- # When given -MP, icc 7.0 and 7.1 complain thusly: -- # icc: Command line warning: ignoring option '-M'; no argument required -- # The diagnosis changed in icc 8.0: -- # icc: Command line remark: option '-MP' not supported -- if (grep 'ignoring option' conftest.err || -- grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else -- am_cv_CC_dependencies_compiler_type=$depmode -- break -- fi -- fi -- done -+$XFIXES_PKG_ERRORS -+ -+Consider adjusting the PKG_CONFIG_PATH environment variable if you -+installed software in a non-standard prefix. -+ -+Alternatively, you may set the environment variables XFIXES_CFLAGS -+and XFIXES_LIBS to avoid the need to call pkg-config. -+See the pkg-config man page for more details. -+" >&5 -+$as_echo "$as_me: error: Package requirements (xfixes) were not met: - -- cd .. -- rm -rf conftest.dir --else -- am_cv_CC_dependencies_compiler_type=none --fi -+$XFIXES_PKG_ERRORS - --fi --{ echo "$as_me:$LINENO: result: $am_cv_CC_dependencies_compiler_type" >&5 --echo "${ECHO_T}$am_cv_CC_dependencies_compiler_type" >&6; } --CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type -+Consider adjusting the PKG_CONFIG_PATH environment variable if you -+installed software in a non-standard prefix. - -- if -- test "x$enable_dependency_tracking" != xno \ -- && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then -- am__fastdepCC_TRUE= -- am__fastdepCC_FALSE='#' --else -- am__fastdepCC_TRUE='#' -- am__fastdepCC_FALSE= --fi -+Alternatively, you may set the environment variables XFIXES_CFLAGS -+and XFIXES_LIBS to avoid the need to call pkg-config. -+See the pkg-config man page for more details. -+" >&2;} -+ { (exit 1); exit 1; }; } -+elif test $pkg_failed = untried; then -+ { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 -+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -+{ { $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. -+ -+Alternatively, you may set the environment variables XFIXES_CFLAGS -+and XFIXES_LIBS to avoid the need to call pkg-config. -+See the pkg-config man page for more details. - -+To get pkg-config, see . -+See \`config.log' for more details." >&5 -+$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. - -+Alternatively, you may set the environment variables XFIXES_CFLAGS -+and XFIXES_LIBS to avoid the need to call pkg-config. -+See the pkg-config man page for more details. - --{ echo "$as_me:$LINENO: checking for ANSI C header files" >&5 --echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6; } --if test "${ac_cv_header_stdc+set}" = set; then -- echo $ECHO_N "(cached) $ECHO_C" >&6 -+To get pkg-config, see . -+See \`config.log' for more details." >&2;} -+ { (exit 1); exit 1; }; }; } - else -- cat >conftest.$ac_ext <<_ACEOF --/* confdefs.h. */ --_ACEOF --cat confdefs.h >>conftest.$ac_ext --cat >>conftest.$ac_ext <<_ACEOF --/* end confdefs.h. */ --#include --#include --#include --#include -+ XFIXES_CFLAGS=$pkg_cv_XFIXES_CFLAGS -+ XFIXES_LIBS=$pkg_cv_XFIXES_LIBS -+ { $as_echo "$as_me:$LINENO: result: yes" >&5 -+$as_echo "yes" >&6; } -+ : -+fi - --int --main () --{ -+pkg_failed=no -+{ $as_echo "$as_me:$LINENO: checking for DRM" >&5 -+$as_echo_n "checking for DRM... " >&6; } - -- ; -- 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 -- (eval "$ac_compile") 2>conftest.er1 -+if test -n "$DRM_CFLAGS"; then -+ pkg_cv_DRM_CFLAGS="$DRM_CFLAGS" -+ elif test -n "$PKG_CONFIG"; then -+ if test -n "$PKG_CONFIG" && \ -+ { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"libdrm\"") >&5 -+ ($PKG_CONFIG --exists --print-errors "libdrm") 2>&5 - 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); } && { -- test -z "$ac_c_werror_flag" || -- test ! -s conftest.err -- } && test -s conftest.$ac_objext; then -- ac_cv_header_stdc=yes -+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); }; then -+ pkg_cv_DRM_CFLAGS=`$PKG_CONFIG --cflags "libdrm" 2>/dev/null` - else -- echo "$as_me: failed program was:" >&5 --sed 's/^/| /' conftest.$ac_ext >&5 -- -- ac_cv_header_stdc=no -+ pkg_failed=yes -+fi -+ else -+ pkg_failed=untried -+fi -+if test -n "$DRM_LIBS"; then -+ pkg_cv_DRM_LIBS="$DRM_LIBS" -+ elif test -n "$PKG_CONFIG"; then -+ if test -n "$PKG_CONFIG" && \ -+ { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"libdrm\"") >&5 -+ ($PKG_CONFIG --exists --print-errors "libdrm") 2>&5 -+ ac_status=$? -+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); }; then -+ pkg_cv_DRM_LIBS=`$PKG_CONFIG --libs "libdrm" 2>/dev/null` -+else -+ pkg_failed=yes -+fi -+ else -+ pkg_failed=untried - fi - --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. -- cat >conftest.$ac_ext <<_ACEOF --/* confdefs.h. */ --_ACEOF --cat confdefs.h >>conftest.$ac_ext --cat >>conftest.$ac_ext <<_ACEOF --/* end confdefs.h. */ --#include - --_ACEOF --if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | -- $EGREP "memchr" >/dev/null 2>&1; then -- : -+if test $pkg_failed = yes; then -+ -+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then -+ _pkg_short_errors_supported=yes - else -- ac_cv_header_stdc=no -+ _pkg_short_errors_supported=no - fi --rm -f conftest* -+ if test $_pkg_short_errors_supported = yes; then -+ DRM_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "libdrm" 2>&1` -+ else -+ DRM_PKG_ERRORS=`$PKG_CONFIG --print-errors "libdrm" 2>&1` -+ fi -+ # Put the nasty error message in config.log where it belongs -+ echo "$DRM_PKG_ERRORS" >&5 - --fi -+ { { $as_echo "$as_me:$LINENO: error: Package requirements (libdrm) were not met: - --if test $ac_cv_header_stdc = yes; then -- # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. -- cat >conftest.$ac_ext <<_ACEOF --/* confdefs.h. */ --_ACEOF --cat confdefs.h >>conftest.$ac_ext --cat >>conftest.$ac_ext <<_ACEOF --/* end confdefs.h. */ --#include -+$DRM_PKG_ERRORS - --_ACEOF --if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | -- $EGREP "free" >/dev/null 2>&1; then -- : -+Consider adjusting the PKG_CONFIG_PATH environment variable if you -+installed software in a non-standard prefix. -+ -+Alternatively, you may set the environment variables DRM_CFLAGS -+and DRM_LIBS to avoid the need to call pkg-config. -+See the pkg-config man page for more details. -+" >&5 -+$as_echo "$as_me: error: Package requirements (libdrm) were not met: -+ -+$DRM_PKG_ERRORS -+ -+Consider adjusting the PKG_CONFIG_PATH environment variable if you -+installed software in a non-standard prefix. -+ -+Alternatively, you may set the environment variables DRM_CFLAGS -+and DRM_LIBS to avoid the need to call pkg-config. -+See the pkg-config man page for more details. -+" >&2;} -+ { (exit 1); exit 1; }; } -+elif test $pkg_failed = untried; then -+ { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 -+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -+{ { $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. -+ -+Alternatively, you may set the environment variables DRM_CFLAGS -+and DRM_LIBS to avoid the need to call pkg-config. -+See the pkg-config man page for more details. -+ -+To get pkg-config, see . -+See \`config.log' for more details." >&5 -+$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. -+ -+Alternatively, you may set the environment variables DRM_CFLAGS -+and DRM_LIBS to avoid the need to call pkg-config. -+See the pkg-config man page for more details. -+ -+To get pkg-config, see . -+See \`config.log' for more details." >&2;} -+ { (exit 1); exit 1; }; }; } - else -- ac_cv_header_stdc=no -+ DRM_CFLAGS=$pkg_cv_DRM_CFLAGS -+ DRM_LIBS=$pkg_cv_DRM_LIBS -+ { $as_echo "$as_me:$LINENO: result: yes" >&5 -+$as_echo "yes" >&6; } -+ : - fi --rm -f conftest* - --fi - --if test $ac_cv_header_stdc = yes; then -- # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. -- if test "$cross_compiling" = yes; then -- : --else -- cat >conftest.$ac_ext <<_ACEOF --/* confdefs.h. */ --_ACEOF --cat confdefs.h >>conftest.$ac_ext --cat >>conftest.$ac_ext <<_ACEOF --/* end confdefs.h. */ --#include --#include --#if ((' ' & 0x0FF) == 0x020) --# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') --# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) --#else --# define ISLOWER(c) \ -- (('a' <= (c) && (c) <= 'i') \ -- || ('j' <= (c) && (c) <= 'r') \ -- || ('s' <= (c) && (c) <= 'z')) --# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) --#endif -+pkg_failed=no -+{ $as_echo "$as_me:$LINENO: checking for GEN4ASM" >&5 -+$as_echo_n "checking for GEN4ASM... " >&6; } - --#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) --int --main () --{ -- int i; -- for (i = 0; i < 256; i++) -- if (XOR (islower (i), ISLOWER (i)) -- || toupper (i) != TOUPPER (i)) -- return 2; -- return 0; --} --_ACEOF --rm -f conftest$ac_exeext --if { (ac_try="$ac_link" --case "(($ac_try" in -- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; -- *) ac_try_echo=$ac_try;; --esac --eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 -- (eval "$ac_link") 2>&5 -+if test -n "$GEN4ASM_CFLAGS"; then -+ pkg_cv_GEN4ASM_CFLAGS="$GEN4ASM_CFLAGS" -+ elif test -n "$PKG_CONFIG"; then -+ if test -n "$PKG_CONFIG" && \ -+ { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"intel-gen4asm >= 1.0\"") >&5 -+ ($PKG_CONFIG --exists --print-errors "intel-gen4asm >= 1.0") 2>&5 - ac_status=$? -- echo "$as_me:$LINENO: \$? = $ac_status" >&5 -- (exit $ac_status); } && { ac_try='./conftest$ac_exeext' -- { (case "(($ac_try" in -- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; -- *) ac_try_echo=$ac_try;; --esac --eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 -- (eval "$ac_try") 2>&5 -+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); }; then -+ pkg_cv_GEN4ASM_CFLAGS=`$PKG_CONFIG --cflags "intel-gen4asm >= 1.0" 2>/dev/null` -+else -+ pkg_failed=yes -+fi -+ else -+ pkg_failed=untried -+fi -+if test -n "$GEN4ASM_LIBS"; then -+ pkg_cv_GEN4ASM_LIBS="$GEN4ASM_LIBS" -+ elif test -n "$PKG_CONFIG"; then -+ if test -n "$PKG_CONFIG" && \ -+ { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"intel-gen4asm >= 1.0\"") >&5 -+ ($PKG_CONFIG --exists --print-errors "intel-gen4asm >= 1.0") 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); }; then -+ pkg_cv_GEN4ASM_LIBS=`$PKG_CONFIG --libs "intel-gen4asm >= 1.0" 2>/dev/null` -+else -+ pkg_failed=yes -+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 -- echo "$as_me: program exited with status $ac_status" >&5 --echo "$as_me: failed program was:" >&5 --sed 's/^/| /' conftest.$ac_ext >&5 -+ _pkg_short_errors_supported=no -+fi -+ if test $_pkg_short_errors_supported = yes; then -+ GEN4ASM_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "intel-gen4asm >= 1.0" 2>&1` -+ else -+ GEN4ASM_PKG_ERRORS=`$PKG_CONFIG --print-errors "intel-gen4asm >= 1.0" 2>&1` -+ fi -+ # Put the nasty error message in config.log where it belongs -+ echo "$GEN4ASM_PKG_ERRORS" >&5 - --( exit $ac_status ) --ac_cv_header_stdc=no -+ { $as_echo "$as_me:$LINENO: result: no" >&5 -+$as_echo "no" >&6; } -+ gen4asm=no -+elif test $pkg_failed = untried; then -+ gen4asm=no -+else -+ GEN4ASM_CFLAGS=$pkg_cv_GEN4ASM_CFLAGS -+ GEN4ASM_LIBS=$pkg_cv_GEN4ASM_LIBS -+ { $as_echo "$as_me:$LINENO: result: yes" >&5 -+$as_echo "yes" >&6; } -+ gen4asm=yes - fi --rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext -+ if test x$gen4asm = xyes; then -+ HAVE_GEN4ASM_TRUE= -+ HAVE_GEN4ASM_FALSE='#' -+else -+ HAVE_GEN4ASM_TRUE='#' -+ HAVE_GEN4ASM_FALSE= -+fi -+ -+ -+# Check for libdrm >= 2.4 (needed for i965_drv_video.so) -+if test x$enable_i965_driver = xyes && ! $PKG_CONFIG --atleast-version=2.4 libdrm; then -+ { $as_echo "$as_me:$LINENO: WARNING: libdrm < 2.4 found, disabling build of i965 video driver" >&5 -+$as_echo "$as_me: WARNING: libdrm < 2.4 found, disabling build of i965 video driver" >&2;} -+ enable_i965_driver=no -+fi -+ if test x$enable_i965_driver = xyes; then -+ BUILD_I965_DRIVER_TRUE= -+ BUILD_I965_DRIVER_FALSE='#' -+else -+ BUILD_I965_DRIVER_TRUE='#' -+ BUILD_I965_DRIVER_FALSE= - fi - - -+{ $as_echo "$as_me:$LINENO: checking whether __attribute__((visibility())) is supported" >&5 -+$as_echo_n "checking whether __attribute__((visibility())) is supported... " >&6; } -+if test "${libva_cv_visibility_attribute+set}" = set; then -+ $as_echo_n "(cached) " >&6 -+else -+ cat > conftest.c </dev/null 2>&1; then -+ if grep '\.hidden.*foo' conftest.s >/dev/null; then -+ if grep '\.protected.*bar' conftest.s >/dev/null; then -+ libva_cv_visibility_attribute=yes -+ fi -+ fi -+ fi -+ rm -f conftest.cs -+ - fi -+{ $as_echo "$as_me:$LINENO: result: $libva_cv_visibility_attribute" >&5 -+$as_echo "$libva_cv_visibility_attribute" >&6; } -+ATTRIBUTE_HIDDEN="" -+if test $libva_cv_visibility_attribute = yes; then -+ ATTRIBUTE_HIDDEN="__attribute__((visibility(\"hidden\")))" - fi --{ echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 --echo "${ECHO_T}$ac_cv_header_stdc" >&6; } --if test $ac_cv_header_stdc = yes; then - --cat >>confdefs.h <<\_ACEOF --#define STDC_HEADERS 1 -+cat >>confdefs.h <<_ACEOF -+#define ATTRIBUTE_HIDDEN $ATTRIBUTE_HIDDEN - _ACEOF - --fi - --# Check whether --enable-largefile was given. --if test "${enable_largefile+set}" = set; then -- enableval=$enable_largefile; --fi -+# Check for OpenGL (X11) -+USE_GLX="no" -+GL_DEPS_CFLAGS="" -+GL_DEPS_LIBS="" - --if test "$enable_largefile" != no; then -+if test x$enable_glx = xyes; then - -- { echo "$as_me:$LINENO: checking for special C compiler options needed for large files" >&5 --echo $ECHO_N "checking for special C compiler options needed for large files... $ECHO_C" >&6; } --if test "${ac_cv_sys_largefile_CC+set}" = set; then -- echo $ECHO_N "(cached) $ECHO_C" >&6 -+for ac_header in GL/gl.h -+do -+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 -- ac_cv_sys_largefile_CC=no -- if test "$GCC" != yes; then -- ac_save_CC=$CC -- while :; do -- # IRIX 6.2 and later do not support large files by default, -- # so use the C compiler's -n32 option if that helps. -- cat >conftest.$ac_ext <<_ACEOF -+ # Is the header compilable? -+{ $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 - cat confdefs.h >>conftest.$ac_ext - cat >>conftest.$ac_ext <<_ACEOF - /* end confdefs.h. */ --#include -- /* Check that off_t can represent 2**63 - 1 correctly. -- We can't simply define LARGE_OFF_T to be 9223372036854775807, -- since some C++ compilers masquerading as C compilers -- incorrectly reject 9223372036854775807. */ --#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) -- int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 -- && LARGE_OFF_T % 2147483647 == 1) -- ? 1 : -1]; --int --main () --{ -- -- ; -- return 0; --} -+$ac_includes_default -+#include <$ac_header> - _ACEOF -- rm -f conftest.$ac_objext -+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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 -+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 -+ $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 -- break -+ 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 - fi - --rm -f core conftest.err conftest.$ac_objext -- CC="$CC -n32" -- rm -f conftest.$ac_objext --if { (ac_try="$ac_compile" -+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? -+{ $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 -+cat confdefs.h >>conftest.$ac_ext -+cat >>conftest.$ac_ext <<_ACEOF -+/* end confdefs.h. */ -+#include <$ac_header> -+_ACEOF -+if { (ac_try="$ac_cpp conftest.$ac_ext" - case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; - esac --eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 -- (eval "$ac_compile") 2>conftest.er1 -+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); } && { -- test -z "$ac_c_werror_flag" || -+ $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 -- } && test -s conftest.$ac_objext; then -- ac_cv_sys_largefile_CC=' -n32'; break -+ }; 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 -+{ $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: ) -+ { $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:* ) -+ { $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 waldo.bastian@intel.com ## -+## -------------------------------------- ## -+_ASBOX -+ ) | sed "s/^/$as_me: WARNING: /" >&2 -+ ;; -+esac -+{ $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 -+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 -+as_val=`eval 'as_val=${'$as_ac_Header'} -+ $as_echo "$as_val"'` -+ if test "x$as_val" = x""yes; then -+ cat >>confdefs.h <<_ACEOF -+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -+_ACEOF - --rm -f core conftest.err conftest.$ac_objext -- break -- done -- CC=$ac_save_CC -- rm -f conftest.$ac_ext -- fi - fi --{ echo "$as_me:$LINENO: result: $ac_cv_sys_largefile_CC" >&5 --echo "${ECHO_T}$ac_cv_sys_largefile_CC" >&6; } -- if test "$ac_cv_sys_largefile_CC" != no; then -- CC=$CC$ac_cv_sys_largefile_CC -- fi - -- { echo "$as_me:$LINENO: checking for _FILE_OFFSET_BITS value needed for large files" >&5 --echo $ECHO_N "checking for _FILE_OFFSET_BITS value needed for large files... $ECHO_C" >&6; } --if test "${ac_cv_sys_file_offset_bits+set}" = set; then -- echo $ECHO_N "(cached) $ECHO_C" >&6 -+done -+ -+ -+for ac_header in GL/glx.h -+do -+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 -- while :; do -- cat >conftest.$ac_ext <<_ACEOF -+ # Is the header compilable? -+{ $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 - cat confdefs.h >>conftest.$ac_ext - cat >>conftest.$ac_ext <<_ACEOF - /* end confdefs.h. */ --#include -- /* Check that off_t can represent 2**63 - 1 correctly. -- We can't simply define LARGE_OFF_T to be 9223372036854775807, -- since some C++ compilers masquerading as C compilers -- incorrectly reject 9223372036854775807. */ --#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) -- int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 -- && LARGE_OFF_T % 2147483647 == 1) -- ? 1 : -1]; --int --main () --{ -- -- ; -- return 0; --} -+$ac_includes_default -+#include <$ac_header> - _ACEOF - rm -f conftest.$ac_objext - if { (ac_try="$ac_compile" -@@ -20970,2327 +13409,2582 @@ - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; - esac --eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 -+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 -+ $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_sys_file_offset_bits=no; break -+ 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 - fi - - rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -- cat >conftest.$ac_ext <<_ACEOF -+{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 -+$as_echo "$ac_header_compiler" >&6; } -+ -+# Is the header present? -+{ $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 - cat confdefs.h >>conftest.$ac_ext - cat >>conftest.$ac_ext <<_ACEOF - /* end confdefs.h. */ --#define _FILE_OFFSET_BITS 64 --#include -- /* Check that off_t can represent 2**63 - 1 correctly. -- We can't simply define LARGE_OFF_T to be 9223372036854775807, -- since some C++ compilers masquerading as C compilers -- incorrectly reject 9223372036854775807. */ --#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) -- int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 -- && LARGE_OFF_T % 2147483647 == 1) -- ? 1 : -1]; --int --main () --{ -- -- ; -- return 0; --} -+#include <$ac_header> - _ACEOF --rm -f conftest.$ac_objext --if { (ac_try="$ac_compile" -+if { (ac_try="$ac_cpp conftest.$ac_ext" - case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; - esac --eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 -- (eval "$ac_compile") 2>conftest.er1 -+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); } && { -- test -z "$ac_c_werror_flag" || -+ $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 -- } && test -s conftest.$ac_objext; then -- ac_cv_sys_file_offset_bits=64; break -+ }; 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 -+{ $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: ) -+ { $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:* ) -+ { $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 waldo.bastian@intel.com ## -+## -------------------------------------- ## -+_ASBOX -+ ) | sed "s/^/$as_me: WARNING: /" >&2 -+ ;; -+esac -+{ $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 -+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; } - --rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -- ac_cv_sys_file_offset_bits=unknown -- break --done - fi --{ echo "$as_me:$LINENO: result: $ac_cv_sys_file_offset_bits" >&5 --echo "${ECHO_T}$ac_cv_sys_file_offset_bits" >&6; } --case $ac_cv_sys_file_offset_bits in #( -- no | unknown) ;; -- *) --cat >>confdefs.h <<_ACEOF --#define _FILE_OFFSET_BITS $ac_cv_sys_file_offset_bits -+as_val=`eval 'as_val=${'$as_ac_Header'} -+ $as_echo "$as_val"'` -+ if test "x$as_val" = x""yes; then -+ cat >>confdefs.h <<_ACEOF -+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 - _ACEOF --;; --esac --rm -f conftest* -- if test $ac_cv_sys_file_offset_bits = unknown; then -- { echo "$as_me:$LINENO: checking for _LARGE_FILES value needed for large files" >&5 --echo $ECHO_N "checking for _LARGE_FILES value needed for large files... $ECHO_C" >&6; } --if test "${ac_cv_sys_large_files+set}" = set; then -- echo $ECHO_N "(cached) $ECHO_C" >&6 -+ -+fi -+ -+done -+ -+ { $as_echo "$as_me:$LINENO: checking for glXCreateContext in -lGL" >&5 -+$as_echo_n "checking for glXCreateContext in -lGL... " >&6; } -+if test "${ac_cv_lib_GL_glXCreateContext+set}" = set; then -+ $as_echo_n "(cached) " >&6 - else -- while :; do -- cat >conftest.$ac_ext <<_ACEOF -+ ac_check_lib_save_LIBS=$LIBS -+LIBS="-lGL $LIBS" -+cat >conftest.$ac_ext <<_ACEOF - /* confdefs.h. */ - _ACEOF - cat confdefs.h >>conftest.$ac_ext - cat >>conftest.$ac_ext <<_ACEOF - /* end confdefs.h. */ --#include -- /* Check that off_t can represent 2**63 - 1 correctly. -- We can't simply define LARGE_OFF_T to be 9223372036854775807, -- since some C++ compilers masquerading as C compilers -- incorrectly reject 9223372036854775807. */ --#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) -- int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 -- && LARGE_OFF_T % 2147483647 == 1) -- ? 1 : -1]; -+ -+/* 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 -+char glXCreateContext (); - int - main () - { -- -+return glXCreateContext (); - ; - return 0; - } - _ACEOF --rm -f conftest.$ac_objext --if { (ac_try="$ac_compile" -+rm -f conftest.$ac_objext conftest$ac_exeext -+if { (ac_try="$ac_link" - case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; - esac --eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 -- (eval "$ac_compile") 2>conftest.er1 -+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 -+ $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_sys_large_files=no; break -+ } && test -s conftest$ac_exeext && { -+ test "$cross_compiling" = yes || -+ $as_test_x conftest$ac_exeext -+ }; then -+ ac_cv_lib_GL_glXCreateContext=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_GL_glXCreateContext=no -+fi - -+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 -+{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_GL_glXCreateContext" >&5 -+$as_echo "$ac_cv_lib_GL_glXCreateContext" >&6; } -+if test "x$ac_cv_lib_GL_glXCreateContext" = x""yes; then - --rm -f core 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. */ --#define _LARGE_FILES 1 --#include -- /* Check that off_t can represent 2**63 - 1 correctly. -- We can't simply define LARGE_OFF_T to be 9223372036854775807, -- since some C++ compilers masquerading as C compilers -- incorrectly reject 9223372036854775807. */ --#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) -- int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 -- && LARGE_OFF_T % 2147483647 == 1) -- ? 1 : -1]; --int --main () --{ -+ USE_GLX="yes" -+ GL_DEPS_LIBS="-lX11 -lGL" -+ -+fi -+ -+fi -+ -+ -+ if test "$USE_GLX" = "yes"; then -+ USE_GLX_TRUE= -+ USE_GLX_FALSE='#' -+else -+ USE_GLX_TRUE='#' -+ USE_GLX_FALSE= -+fi -+ -+ -+# We only need the headers, we don't link against the DRM libraries -+LIBVA_CFLAGS="$DRM_CFLAGS" -+ -+ -+ -+pkgconfigdir=${libdir}/pkgconfig -+ -+ -+LIBVA_DISPLAY=x11 -+libvacorelib=libva.la -+libvabackendlib=libva-$LIBVA_DISPLAY.la -+ -+ -+ -+ac_config_files="$ac_config_files Makefile src/Makefile src/va_version.h src/x11/Makefile src/glx/Makefile dummy_drv_video/Makefile i965_drv_video/Makefile i965_drv_video/shaders/Makefile i965_drv_video/shaders/mpeg2/Makefile i965_drv_video/shaders/mpeg2/vld/Makefile i965_drv_video/shaders/render/Makefile test/Makefile libva.pc libva-x11.pc libva-glx.pc" -+ -+cat >confcache <<\_ACEOF -+# This file is a shell script that caches the results of configure -+# tests run on this system so they can be shared between configure -+# scripts and configure runs, see configure's option --config-cache. -+# It is not useful on other systems. If it contains results you don't -+# want to keep, you may remove or edit it. -+# -+# config.status only pays attention to the cache file if you give it -+# the --recheck option to rerun configure. -+# -+# `ac_cv_env_foo' variables (set or unset) will be overridden when -+# loading this file, other *unset* `ac_cv_foo' will be assigned the -+# following values. - -- ; -- 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 "echo \"\$as_me:$LINENO: $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); } && { -- test -z "$ac_c_werror_flag" || -- test ! -s conftest.err -- } && test -s conftest.$ac_objext; then -- ac_cv_sys_large_files=1; break -+ -+# The following way of writing the cache mishandles newlines in values, -+# but we know of no workaround that is simple, portable, and efficient. -+# 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 $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 "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" -+ ;; -+ esac | -+ sort -+) | -+ sed ' -+ /^ac_cv_env_/b end -+ t clear -+ :clear -+ s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ -+ t end -+ 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 -+ { $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 -+ -+test "x$prefix" = xNONE && prefix=$ac_default_prefix -+# Let make expand exec_prefix. -+test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' -+ -+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_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 -+ -+LTLIBOBJS=$ac_ltlibobjs -+ -+ -+ if test -n "$EXEEXT"; then -+ am__EXEEXT_TRUE= -+ am__EXEEXT_FALSE='#' - else -- echo "$as_me: failed program was:" >&5 --sed 's/^/| /' conftest.$ac_ext >&5 -+ am__EXEEXT_TRUE='#' -+ am__EXEEXT_FALSE= -+fi -+ -+if test -z "${BUILD_DUMMY_DRIVER_TRUE}" && test -z "${BUILD_DUMMY_DRIVER_FALSE}"; then -+ { { $as_echo "$as_me:$LINENO: error: conditional \"BUILD_DUMMY_DRIVER\" was never defined. -+Usually this means the macro was only invoked conditionally." >&5 -+$as_echo "$as_me: error: conditional \"BUILD_DUMMY_DRIVER\" 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 -+ { { $as_echo "$as_me:$LINENO: error: conditional \"AMDEP\" was never defined. -+Usually this means the macro was only invoked conditionally." >&5 -+$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 -+ { { $as_echo "$as_me:$LINENO: error: conditional \"am__fastdepCC\" was never defined. -+Usually this means the macro was only invoked conditionally." >&5 -+$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 "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then -+ { { $as_echo "$as_me:$LINENO: error: conditional \"am__fastdepCC\" was never defined. -+Usually this means the macro was only invoked conditionally." >&5 -+$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_GEN4ASM_TRUE}" && test -z "${HAVE_GEN4ASM_FALSE}"; then -+ { { $as_echo "$as_me:$LINENO: error: conditional \"HAVE_GEN4ASM\" was never defined. -+Usually this means the macro was only invoked conditionally." >&5 -+$as_echo "$as_me: error: conditional \"HAVE_GEN4ASM\" was never defined. -+Usually this means the macro was only invoked conditionally." >&2;} -+ { (exit 1); exit 1; }; } -+fi -+if test -z "${BUILD_I965_DRIVER_TRUE}" && test -z "${BUILD_I965_DRIVER_FALSE}"; then -+ { { $as_echo "$as_me:$LINENO: error: conditional \"BUILD_I965_DRIVER\" was never defined. -+Usually this means the macro was only invoked conditionally." >&5 -+$as_echo "$as_me: error: conditional \"BUILD_I965_DRIVER\" was never defined. -+Usually this means the macro was only invoked conditionally." >&2;} -+ { (exit 1); exit 1; }; } -+fi -+if test -z "${USE_GLX_TRUE}" && test -z "${USE_GLX_FALSE}"; then -+ { { $as_echo "$as_me:$LINENO: error: conditional \"USE_GLX\" was never defined. -+Usually this means the macro was only invoked conditionally." >&5 -+$as_echo "$as_me: error: conditional \"USE_GLX\" 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" -+{ $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. -+# Compiler output produced by configure, useful for debugging -+# configure, is in config.log if it exists. -+ -+debug=false -+ac_cs_recheck=false -+ac_cs_silent=false -+SHELL=\${CONFIG_SHELL-$SHELL} -+_ACEOF - -+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -+## --------------------- ## -+## M4sh Initialization. ## -+## --------------------- ## -+ -+# 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=: -+ # 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 - --rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -- ac_cv_sys_large_files=unknown -- break --done --fi --{ echo "$as_me:$LINENO: result: $ac_cv_sys_large_files" >&5 --echo "${ECHO_T}$ac_cv_sys_large_files" >&6; } --case $ac_cv_sys_large_files in #( -- no | unknown) ;; -- *) --cat >>confdefs.h <<_ACEOF --#define _LARGE_FILES $ac_cv_sys_large_files --_ACEOF --;; --esac --rm -f conftest* -- fi --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 - --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; } --if test "${ac_cv_path_PKG_CONFIG+set}" = set; then -- echo $ECHO_N "(cached) $ECHO_C" >&6 --else -- case $PKG_CONFIG in -- [\\/]* | ?:[\\/]*) -- ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. -- ;; -- *) -- 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_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" -- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 -- break 2 -+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 --done --done --IFS=$as_save_IFS -+ export as_echo_body -+ as_echo='sh -c $as_echo_body as_echo' -+fi - -- ;; --esac -+# 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 --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; } -+ -+# Support unset when possible. -+if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then -+ as_unset=unset - else -- { echo "$as_me:$LINENO: result: no" >&5 --echo "${ECHO_T}no" >&6; } -+ as_unset=false - 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; } --if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then -- echo $ECHO_N "(cached) $ECHO_C" >&6 --else -- case $ac_pt_PKG_CONFIG in -- [\\/]* | ?:[\\/]*) -- ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path. -- ;; -- *) -- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -+# 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=. -- 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_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 -- break 2 -- fi --done -+ 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 --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; } --else -- { echo "$as_me:$LINENO: result: no" >&5 --echo "${ECHO_T}no" >&6; } -+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 - -- if test "x$ac_pt_PKG_CONFIG" = x; then -- PKG_CONFIG="" -- else -- case $cross_compiling:$ac_tool_warned in --yes:) --{ 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 --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 -+# Work around bugs in pre-3.0 UWIN ksh. -+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. -+LC_ALL=C -+export LC_ALL -+LANGUAGE=C -+export LANGUAGE -+ -+# Required to use basename. -+if expr a : '\(a\)' >/dev/null 2>&1 && -+ test "X`expr 00001 : '.*\(...\)'`" = X001; then -+ as_expr=expr - else -- PKG_CONFIG="$ac_cv_path_PKG_CONFIG" -+ as_expr=false - fi - -+if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then -+ as_basename=basename -+else -+ as_basename=false - 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; } -- if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then -- { echo "$as_me:$LINENO: result: yes" >&5 --echo "${ECHO_T}yes" >&6; } -- else -- { echo "$as_me:$LINENO: result: no" >&5 --echo "${ECHO_T}no" >&6; } -- PKG_CONFIG="" -- fi - --fi - --pkg_failed=no --{ echo "$as_me:$LINENO: checking for X11" >&5 --echo $ECHO_N "checking for X11... $ECHO_C" >&6; } -+# Name of the executable. -+as_me=`$as_basename -- "$0" || -+$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ -+ X"$0" : 'X\(//\)$' \| \ -+ X"$0" : 'X\(/\)' \| . 2>/dev/null || -+$as_echo X/"$0" | -+ sed '/^.*\/\([^/][^/]*\)\/*$/{ -+ s//\1/ -+ q -+ } -+ /^X\/\(\/\/\)$/{ -+ s//\1/ -+ q -+ } -+ /^X\/\(\/\).*/{ -+ s//\1/ -+ q -+ } -+ s/.*/./; q'` - --if test -n "$PKG_CONFIG"; then -- if test -n "$X11_CFLAGS"; then -- pkg_cv_X11_CFLAGS="$X11_CFLAGS" -- else -- if test -n "$PKG_CONFIG" && \ -- { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"x11\"") >&5 -- ($PKG_CONFIG --exists --print-errors "x11") 2>&5 -- ac_status=$? -- echo "$as_me:$LINENO: \$? = $ac_status" >&5 -- (exit $ac_status); }; then -- pkg_cv_X11_CFLAGS=`$PKG_CONFIG --cflags "x11" 2>/dev/null` -+# CDPATH. -+$as_unset CDPATH -+ -+ -+ -+ 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 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 -+ # 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 -+ :loop -+ s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ -+ t loop -+ s/-\n.*// -+ ' >$as_me.lineno && -+ 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 sensitive to this). -+ . "./$as_me.lineno" -+ # Exit status is that of the last command. -+ exit -+} -+ -+ -+if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then -+ as_dirname=dirname - else -- pkg_failed=yes -+ as_dirname=false - fi -- fi -+ -+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 -- pkg_failed=untried -+ as_expr=false - fi --if test -n "$PKG_CONFIG"; then -- if test -n "$X11_LIBS"; then -- pkg_cv_X11_LIBS="$X11_LIBS" -- else -- if test -n "$PKG_CONFIG" && \ -- { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"x11\"") >&5 -- ($PKG_CONFIG --exists --print-errors "x11") 2>&5 -- ac_status=$? -- echo "$as_me:$LINENO: \$? = $ac_status" >&5 -- (exit $ac_status); }; then -- pkg_cv_X11_LIBS=`$PKG_CONFIG --libs "x11" 2>/dev/null` -+ -+rm -f conf$$ conf$$.exe conf$$.file -+if test -d conf$$.dir; then -+ rm -f conf$$.dir/conf$$.file - else -- pkg_failed=yes -+ rm -f conf$$.dir -+ mkdir conf$$.dir 2>/dev/null - fi -- 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 - else -- pkg_failed=untried -+ as_ln_s='cp -p' - fi -+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=: -+else -+ test -d ./-p && rmdir ./-p -+ as_mkdir_p=false -+fi - -- --if test $pkg_failed = yes; then -- --if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then -- _pkg_short_errors_supported=yes -+if test -x / >/dev/null 2>&1; then -+ as_test_x='test -x' - else -- _pkg_short_errors_supported=no -+ 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 -- if test $_pkg_short_errors_supported = yes; then -- X11_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "x11"` -- else -- X11_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "x11"` -- fi -- # Put the nasty error message in config.log where it belongs -- echo "$X11_PKG_ERRORS" >&5 -+as_executable_p=$as_test_x - -- { { echo "$as_me:$LINENO: error: Package requirements (x11) were not met: -+# 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'" - --$X11_PKG_ERRORS -+# Sed expression to map a string onto a valid variable name. -+as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" - --Consider adjusting the PKG_CONFIG_PATH environment variable if you --installed software in a non-standard prefix. - --Alternatively, you may set the environment variables X11_CFLAGS --and X11_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 (x11) were not met: -+exec 6>&1 - --$X11_PKG_ERRORS -+# 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. -+ac_log=" -+This file was extended by libva $as_me 0.31.0, which was -+generated by GNU Autoconf 2.63. Invocation command line was - --Consider adjusting the PKG_CONFIG_PATH environment variable if you --installed software in a non-standard prefix. -+ CONFIG_FILES = $CONFIG_FILES -+ CONFIG_HEADERS = $CONFIG_HEADERS -+ CONFIG_LINKS = $CONFIG_LINKS -+ CONFIG_COMMANDS = $CONFIG_COMMANDS -+ $ $0 $@ - --Alternatively, you may set the environment variables X11_CFLAGS --and X11_LIBS to avoid the need to call pkg-config. --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 --is in your PATH or set the PKG_CONFIG environment variable to the full --path to pkg-config. -+on `(hostname || uname -n) 2>/dev/null | sed 1q` -+" - --Alternatively, you may set the environment variables X11_CFLAGS --and X11_LIBS to avoid the need to call pkg-config. --See the pkg-config man page for more details. -+_ACEOF - --To get pkg-config, see . --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 --is in your PATH or set the PKG_CONFIG environment variable to the full --path to pkg-config. -+case $ac_config_files in *" -+"*) set x $ac_config_files; shift; ac_config_files=$*;; -+esac - --Alternatively, you may set the environment variables X11_CFLAGS --and X11_LIBS to avoid the need to call pkg-config. --See the pkg-config man page for more details. -+case $ac_config_headers in *" -+"*) set x $ac_config_headers; shift; ac_config_headers=$*;; -+esac - --To get pkg-config, see . --See \`config.log' for more details." >&2;} -- { (exit 1); exit 1; }; } --else -- X11_CFLAGS=$pkg_cv_X11_CFLAGS -- X11_LIBS=$pkg_cv_X11_LIBS -- { echo "$as_me:$LINENO: result: yes" >&5 --echo "${ECHO_T}yes" >&6; } -- : --fi - --pkg_failed=no --{ echo "$as_me:$LINENO: checking for XEXT" >&5 --echo $ECHO_N "checking for XEXT... $ECHO_C" >&6; } -+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -+# Files that config.status was made for. -+config_files="$ac_config_files" -+config_headers="$ac_config_headers" -+config_commands="$ac_config_commands" - --if test -n "$PKG_CONFIG"; then -- if test -n "$XEXT_CFLAGS"; then -- pkg_cv_XEXT_CFLAGS="$XEXT_CFLAGS" -- else -- if test -n "$PKG_CONFIG" && \ -- { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"xext\"") >&5 -- ($PKG_CONFIG --exists --print-errors "xext") 2>&5 -- ac_status=$? -- echo "$as_me:$LINENO: \$? = $ac_status" >&5 -- (exit $ac_status); }; then -- pkg_cv_XEXT_CFLAGS=`$PKG_CONFIG --cflags "xext" 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" && \ -- { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"xext\"") >&5 -- ($PKG_CONFIG --exists --print-errors "xext") 2>&5 -- ac_status=$? -- echo "$as_me:$LINENO: \$? = $ac_status" >&5 -- (exit $ac_status); }; then -- pkg_cv_XEXT_LIBS=`$PKG_CONFIG --libs "xext" 2>/dev/null` --else -- pkg_failed=yes --fi -- fi --else -- pkg_failed=untried --fi -+_ACEOF - -+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -+ac_cs_usage="\ -+\`$as_me' instantiates files from templates according to the -+current configuration. - -+Usage: $0 [OPTION]... [FILE]... - --if test $pkg_failed = yes; then -+ -h, --help print this help, then exit -+ -V, --version print version number and configuration settings, then exit -+ -q, --quiet, --silent -+ 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 -+ --header=FILE[:TEMPLATE] -+ instantiate the configuration header FILE - --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 "xext"` -- else -- XEXT_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "xext"` -- fi -- # Put the nasty error message in config.log where it belongs -- echo "$XEXT_PKG_ERRORS" >&5 -+Configuration files: -+$config_files - -- { { echo "$as_me:$LINENO: error: Package requirements (xext) were not met: -+Configuration headers: -+$config_headers - --$XEXT_PKG_ERRORS -+Configuration commands: -+$config_commands - --Consider adjusting the PKG_CONFIG_PATH environment variable if you --installed software in a non-standard prefix. -+Report bugs to ." - --Alternatively, you may set the environment variables XEXT_CFLAGS --and XEXT_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 (xext) were not met: -+_ACEOF -+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -+ac_cs_version="\\ -+libva config.status 0.31.0 -+configured by $0, generated by GNU Autoconf 2.63, -+ with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\" - --$XEXT_PKG_ERRORS -+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." - --Consider adjusting the PKG_CONFIG_PATH environment variable if you --installed software in a non-standard prefix. -+ac_pwd='$ac_pwd' -+srcdir='$srcdir' -+INSTALL='$INSTALL' -+MKDIR_P='$MKDIR_P' -+AWK='$AWK' -+test -n "\$AWK" || AWK=awk -+_ACEOF - --Alternatively, you may set the environment variables XEXT_CFLAGS --and XEXT_LIBS to avoid the need to call pkg-config. --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 --is in your PATH or set the PKG_CONFIG environment variable to the full --path to pkg-config. -+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_shift=: -+ ;; -+ *) -+ ac_option=$1 -+ ac_optarg=$2 -+ ac_shift=shift -+ ;; -+ esac - --Alternatively, you may set the environment variables XEXT_CFLAGS --and XEXT_LIBS to avoid the need to call pkg-config. --See the pkg-config man page for more details. -+ case $ac_option in -+ # Handling of the options. -+ -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) -+ ac_cs_recheck=: ;; -+ --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 -+ 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 -+ 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=: ;; - --To get pkg-config, see . --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 --is in your PATH or set the PKG_CONFIG environment variable to the full --path to pkg-config. -+ # This is an error. -+ -*) { $as_echo "$as_me: error: unrecognized option: $1 -+Try \`$0 --help' for more information." >&2 -+ { (exit 1); exit 1; }; } ;; - --Alternatively, you may set the environment variables XEXT_CFLAGS --and XEXT_LIBS to avoid the need to call pkg-config. --See the pkg-config man page for more details. -+ *) ac_config_targets="$ac_config_targets $1" -+ ac_need_defaults=false ;; - --To get pkg-config, see . --See \`config.log' for more details." >&2;} -- { (exit 1); exit 1; }; } --else -- XEXT_CFLAGS=$pkg_cv_XEXT_CFLAGS -- XEXT_LIBS=$pkg_cv_XEXT_LIBS -- { echo "$as_me:$LINENO: result: yes" >&5 --echo "${ECHO_T}yes" >&6; } -- : --fi -+ esac -+ shift -+done - --pkg_failed=no --{ echo "$as_me:$LINENO: checking for XFIXES" >&5 --echo $ECHO_N "checking for XFIXES... $ECHO_C" >&6; } -+ac_configure_extra_args= - --if test -n "$PKG_CONFIG"; then -- if test -n "$XFIXES_CFLAGS"; then -- pkg_cv_XFIXES_CFLAGS="$XFIXES_CFLAGS" -- else -- if test -n "$PKG_CONFIG" && \ -- { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"xfixes\"") >&5 -- ($PKG_CONFIG --exists --print-errors "xfixes") 2>&5 -- ac_status=$? -- echo "$as_me:$LINENO: \$? = $ac_status" >&5 -- (exit $ac_status); }; then -- pkg_cv_XFIXES_CFLAGS=`$PKG_CONFIG --cflags "xfixes" 2>/dev/null` --else -- pkg_failed=yes --fi -- fi --else -- pkg_failed=untried --fi --if test -n "$PKG_CONFIG"; then -- if test -n "$XFIXES_LIBS"; then -- pkg_cv_XFIXES_LIBS="$XFIXES_LIBS" -- else -- if test -n "$PKG_CONFIG" && \ -- { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"xfixes\"") >&5 -- ($PKG_CONFIG --exists --print-errors "xfixes") 2>&5 -- ac_status=$? -- echo "$as_me:$LINENO: \$? = $ac_status" >&5 -- (exit $ac_status); }; then -- pkg_cv_XFIXES_LIBS=`$PKG_CONFIG --libs "xfixes" 2>/dev/null` --else -- pkg_failed=yes -+if $ac_cs_silent; then -+ exec 6>/dev/null -+ ac_configure_extra_args="$ac_configure_extra_args --silent" - fi -- fi --else -- pkg_failed=untried -+ -+_ACEOF -+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -+if \$ac_cs_recheck; then -+ 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 - -+_ACEOF -+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -+# -+# INIT-COMMANDS -+# -+AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" - --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 -- XFIXES_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "xfixes"` -- else -- XFIXES_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "xfixes"` -- fi -- # Put the nasty error message in config.log where it belongs -- echo "$XFIXES_PKG_ERRORS" >&5 -+# The HP-UX ksh and POSIX shell print the target directory to stdout -+# if CDPATH is set. -+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH - -- { { echo "$as_me:$LINENO: error: Package requirements (xfixes) were not met: -+sed_quote_subst='$sed_quote_subst' -+double_quote_subst='$double_quote_subst' -+delay_variable_subst='$delay_variable_subst' -+enable_static='`$ECHO "X$enable_static" | $Xsed -e "$delay_single_quote_subst"`' -+macro_version='`$ECHO "X$macro_version" | $Xsed -e "$delay_single_quote_subst"`' -+macro_revision='`$ECHO "X$macro_revision" | $Xsed -e "$delay_single_quote_subst"`' -+enable_shared='`$ECHO "X$enable_shared" | $Xsed -e "$delay_single_quote_subst"`' -+pic_mode='`$ECHO "X$pic_mode" | $Xsed -e "$delay_single_quote_subst"`' -+enable_fast_install='`$ECHO "X$enable_fast_install" | $Xsed -e "$delay_single_quote_subst"`' -+host_alias='`$ECHO "X$host_alias" | $Xsed -e "$delay_single_quote_subst"`' -+host='`$ECHO "X$host" | $Xsed -e "$delay_single_quote_subst"`' -+host_os='`$ECHO "X$host_os" | $Xsed -e "$delay_single_quote_subst"`' -+build_alias='`$ECHO "X$build_alias" | $Xsed -e "$delay_single_quote_subst"`' -+build='`$ECHO "X$build" | $Xsed -e "$delay_single_quote_subst"`' -+build_os='`$ECHO "X$build_os" | $Xsed -e "$delay_single_quote_subst"`' -+SED='`$ECHO "X$SED" | $Xsed -e "$delay_single_quote_subst"`' -+Xsed='`$ECHO "X$Xsed" | $Xsed -e "$delay_single_quote_subst"`' -+GREP='`$ECHO "X$GREP" | $Xsed -e "$delay_single_quote_subst"`' -+EGREP='`$ECHO "X$EGREP" | $Xsed -e "$delay_single_quote_subst"`' -+FGREP='`$ECHO "X$FGREP" | $Xsed -e "$delay_single_quote_subst"`' -+LD='`$ECHO "X$LD" | $Xsed -e "$delay_single_quote_subst"`' -+NM='`$ECHO "X$NM" | $Xsed -e "$delay_single_quote_subst"`' -+LN_S='`$ECHO "X$LN_S" | $Xsed -e "$delay_single_quote_subst"`' -+max_cmd_len='`$ECHO "X$max_cmd_len" | $Xsed -e "$delay_single_quote_subst"`' -+ac_objext='`$ECHO "X$ac_objext" | $Xsed -e "$delay_single_quote_subst"`' -+exeext='`$ECHO "X$exeext" | $Xsed -e "$delay_single_quote_subst"`' -+lt_unset='`$ECHO "X$lt_unset" | $Xsed -e "$delay_single_quote_subst"`' -+lt_SP2NL='`$ECHO "X$lt_SP2NL" | $Xsed -e "$delay_single_quote_subst"`' -+lt_NL2SP='`$ECHO "X$lt_NL2SP" | $Xsed -e "$delay_single_quote_subst"`' -+reload_flag='`$ECHO "X$reload_flag" | $Xsed -e "$delay_single_quote_subst"`' -+reload_cmds='`$ECHO "X$reload_cmds" | $Xsed -e "$delay_single_quote_subst"`' -+OBJDUMP='`$ECHO "X$OBJDUMP" | $Xsed -e "$delay_single_quote_subst"`' -+deplibs_check_method='`$ECHO "X$deplibs_check_method" | $Xsed -e "$delay_single_quote_subst"`' -+file_magic_cmd='`$ECHO "X$file_magic_cmd" | $Xsed -e "$delay_single_quote_subst"`' -+AR='`$ECHO "X$AR" | $Xsed -e "$delay_single_quote_subst"`' -+AR_FLAGS='`$ECHO "X$AR_FLAGS" | $Xsed -e "$delay_single_quote_subst"`' -+STRIP='`$ECHO "X$STRIP" | $Xsed -e "$delay_single_quote_subst"`' -+RANLIB='`$ECHO "X$RANLIB" | $Xsed -e "$delay_single_quote_subst"`' -+old_postinstall_cmds='`$ECHO "X$old_postinstall_cmds" | $Xsed -e "$delay_single_quote_subst"`' -+old_postuninstall_cmds='`$ECHO "X$old_postuninstall_cmds" | $Xsed -e "$delay_single_quote_subst"`' -+old_archive_cmds='`$ECHO "X$old_archive_cmds" | $Xsed -e "$delay_single_quote_subst"`' -+CC='`$ECHO "X$CC" | $Xsed -e "$delay_single_quote_subst"`' -+CFLAGS='`$ECHO "X$CFLAGS" | $Xsed -e "$delay_single_quote_subst"`' -+compiler='`$ECHO "X$compiler" | $Xsed -e "$delay_single_quote_subst"`' -+GCC='`$ECHO "X$GCC" | $Xsed -e "$delay_single_quote_subst"`' -+lt_cv_sys_global_symbol_pipe='`$ECHO "X$lt_cv_sys_global_symbol_pipe" | $Xsed -e "$delay_single_quote_subst"`' -+lt_cv_sys_global_symbol_to_cdecl='`$ECHO "X$lt_cv_sys_global_symbol_to_cdecl" | $Xsed -e "$delay_single_quote_subst"`' -+lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "X$lt_cv_sys_global_symbol_to_c_name_address" | $Xsed -e "$delay_single_quote_subst"`' -+lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "X$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $Xsed -e "$delay_single_quote_subst"`' -+objdir='`$ECHO "X$objdir" | $Xsed -e "$delay_single_quote_subst"`' -+SHELL='`$ECHO "X$SHELL" | $Xsed -e "$delay_single_quote_subst"`' -+ECHO='`$ECHO "X$ECHO" | $Xsed -e "$delay_single_quote_subst"`' -+MAGIC_CMD='`$ECHO "X$MAGIC_CMD" | $Xsed -e "$delay_single_quote_subst"`' -+lt_prog_compiler_no_builtin_flag='`$ECHO "X$lt_prog_compiler_no_builtin_flag" | $Xsed -e "$delay_single_quote_subst"`' -+lt_prog_compiler_wl='`$ECHO "X$lt_prog_compiler_wl" | $Xsed -e "$delay_single_quote_subst"`' -+lt_prog_compiler_pic='`$ECHO "X$lt_prog_compiler_pic" | $Xsed -e "$delay_single_quote_subst"`' -+lt_prog_compiler_static='`$ECHO "X$lt_prog_compiler_static" | $Xsed -e "$delay_single_quote_subst"`' -+lt_cv_prog_compiler_c_o='`$ECHO "X$lt_cv_prog_compiler_c_o" | $Xsed -e "$delay_single_quote_subst"`' -+need_locks='`$ECHO "X$need_locks" | $Xsed -e "$delay_single_quote_subst"`' -+DSYMUTIL='`$ECHO "X$DSYMUTIL" | $Xsed -e "$delay_single_quote_subst"`' -+NMEDIT='`$ECHO "X$NMEDIT" | $Xsed -e "$delay_single_quote_subst"`' -+LIPO='`$ECHO "X$LIPO" | $Xsed -e "$delay_single_quote_subst"`' -+OTOOL='`$ECHO "X$OTOOL" | $Xsed -e "$delay_single_quote_subst"`' -+OTOOL64='`$ECHO "X$OTOOL64" | $Xsed -e "$delay_single_quote_subst"`' -+libext='`$ECHO "X$libext" | $Xsed -e "$delay_single_quote_subst"`' -+shrext_cmds='`$ECHO "X$shrext_cmds" | $Xsed -e "$delay_single_quote_subst"`' -+extract_expsyms_cmds='`$ECHO "X$extract_expsyms_cmds" | $Xsed -e "$delay_single_quote_subst"`' -+archive_cmds_need_lc='`$ECHO "X$archive_cmds_need_lc" | $Xsed -e "$delay_single_quote_subst"`' -+enable_shared_with_static_runtimes='`$ECHO "X$enable_shared_with_static_runtimes" | $Xsed -e "$delay_single_quote_subst"`' -+export_dynamic_flag_spec='`$ECHO "X$export_dynamic_flag_spec" | $Xsed -e "$delay_single_quote_subst"`' -+whole_archive_flag_spec='`$ECHO "X$whole_archive_flag_spec" | $Xsed -e "$delay_single_quote_subst"`' -+compiler_needs_object='`$ECHO "X$compiler_needs_object" | $Xsed -e "$delay_single_quote_subst"`' -+old_archive_from_new_cmds='`$ECHO "X$old_archive_from_new_cmds" | $Xsed -e "$delay_single_quote_subst"`' -+old_archive_from_expsyms_cmds='`$ECHO "X$old_archive_from_expsyms_cmds" | $Xsed -e "$delay_single_quote_subst"`' -+archive_cmds='`$ECHO "X$archive_cmds" | $Xsed -e "$delay_single_quote_subst"`' -+archive_expsym_cmds='`$ECHO "X$archive_expsym_cmds" | $Xsed -e "$delay_single_quote_subst"`' -+module_cmds='`$ECHO "X$module_cmds" | $Xsed -e "$delay_single_quote_subst"`' -+module_expsym_cmds='`$ECHO "X$module_expsym_cmds" | $Xsed -e "$delay_single_quote_subst"`' -+with_gnu_ld='`$ECHO "X$with_gnu_ld" | $Xsed -e "$delay_single_quote_subst"`' -+allow_undefined_flag='`$ECHO "X$allow_undefined_flag" | $Xsed -e "$delay_single_quote_subst"`' -+no_undefined_flag='`$ECHO "X$no_undefined_flag" | $Xsed -e "$delay_single_quote_subst"`' -+hardcode_libdir_flag_spec='`$ECHO "X$hardcode_libdir_flag_spec" | $Xsed -e "$delay_single_quote_subst"`' -+hardcode_libdir_flag_spec_ld='`$ECHO "X$hardcode_libdir_flag_spec_ld" | $Xsed -e "$delay_single_quote_subst"`' -+hardcode_libdir_separator='`$ECHO "X$hardcode_libdir_separator" | $Xsed -e "$delay_single_quote_subst"`' -+hardcode_direct='`$ECHO "X$hardcode_direct" | $Xsed -e "$delay_single_quote_subst"`' -+hardcode_direct_absolute='`$ECHO "X$hardcode_direct_absolute" | $Xsed -e "$delay_single_quote_subst"`' -+hardcode_minus_L='`$ECHO "X$hardcode_minus_L" | $Xsed -e "$delay_single_quote_subst"`' -+hardcode_shlibpath_var='`$ECHO "X$hardcode_shlibpath_var" | $Xsed -e "$delay_single_quote_subst"`' -+hardcode_automatic='`$ECHO "X$hardcode_automatic" | $Xsed -e "$delay_single_quote_subst"`' -+inherit_rpath='`$ECHO "X$inherit_rpath" | $Xsed -e "$delay_single_quote_subst"`' -+link_all_deplibs='`$ECHO "X$link_all_deplibs" | $Xsed -e "$delay_single_quote_subst"`' -+fix_srcfile_path='`$ECHO "X$fix_srcfile_path" | $Xsed -e "$delay_single_quote_subst"`' -+always_export_symbols='`$ECHO "X$always_export_symbols" | $Xsed -e "$delay_single_quote_subst"`' -+export_symbols_cmds='`$ECHO "X$export_symbols_cmds" | $Xsed -e "$delay_single_quote_subst"`' -+exclude_expsyms='`$ECHO "X$exclude_expsyms" | $Xsed -e "$delay_single_quote_subst"`' -+include_expsyms='`$ECHO "X$include_expsyms" | $Xsed -e "$delay_single_quote_subst"`' -+prelink_cmds='`$ECHO "X$prelink_cmds" | $Xsed -e "$delay_single_quote_subst"`' -+file_list_spec='`$ECHO "X$file_list_spec" | $Xsed -e "$delay_single_quote_subst"`' -+variables_saved_for_relink='`$ECHO "X$variables_saved_for_relink" | $Xsed -e "$delay_single_quote_subst"`' -+need_lib_prefix='`$ECHO "X$need_lib_prefix" | $Xsed -e "$delay_single_quote_subst"`' -+need_version='`$ECHO "X$need_version" | $Xsed -e "$delay_single_quote_subst"`' -+version_type='`$ECHO "X$version_type" | $Xsed -e "$delay_single_quote_subst"`' -+runpath_var='`$ECHO "X$runpath_var" | $Xsed -e "$delay_single_quote_subst"`' -+shlibpath_var='`$ECHO "X$shlibpath_var" | $Xsed -e "$delay_single_quote_subst"`' -+shlibpath_overrides_runpath='`$ECHO "X$shlibpath_overrides_runpath" | $Xsed -e "$delay_single_quote_subst"`' -+libname_spec='`$ECHO "X$libname_spec" | $Xsed -e "$delay_single_quote_subst"`' -+library_names_spec='`$ECHO "X$library_names_spec" | $Xsed -e "$delay_single_quote_subst"`' -+soname_spec='`$ECHO "X$soname_spec" | $Xsed -e "$delay_single_quote_subst"`' -+postinstall_cmds='`$ECHO "X$postinstall_cmds" | $Xsed -e "$delay_single_quote_subst"`' -+postuninstall_cmds='`$ECHO "X$postuninstall_cmds" | $Xsed -e "$delay_single_quote_subst"`' -+finish_cmds='`$ECHO "X$finish_cmds" | $Xsed -e "$delay_single_quote_subst"`' -+finish_eval='`$ECHO "X$finish_eval" | $Xsed -e "$delay_single_quote_subst"`' -+hardcode_into_libs='`$ECHO "X$hardcode_into_libs" | $Xsed -e "$delay_single_quote_subst"`' -+sys_lib_search_path_spec='`$ECHO "X$sys_lib_search_path_spec" | $Xsed -e "$delay_single_quote_subst"`' -+sys_lib_dlsearch_path_spec='`$ECHO "X$sys_lib_dlsearch_path_spec" | $Xsed -e "$delay_single_quote_subst"`' -+hardcode_action='`$ECHO "X$hardcode_action" | $Xsed -e "$delay_single_quote_subst"`' -+enable_dlopen='`$ECHO "X$enable_dlopen" | $Xsed -e "$delay_single_quote_subst"`' -+enable_dlopen_self='`$ECHO "X$enable_dlopen_self" | $Xsed -e "$delay_single_quote_subst"`' -+enable_dlopen_self_static='`$ECHO "X$enable_dlopen_self_static" | $Xsed -e "$delay_single_quote_subst"`' -+old_striplib='`$ECHO "X$old_striplib" | $Xsed -e "$delay_single_quote_subst"`' -+striplib='`$ECHO "X$striplib" | $Xsed -e "$delay_single_quote_subst"`' -+ -+LTCC='$LTCC' -+LTCFLAGS='$LTCFLAGS' -+compiler='$compiler_DEFAULT' -+ -+# Quote evaled strings. -+for var in SED \ -+GREP \ -+EGREP \ -+FGREP \ -+LD \ -+NM \ -+LN_S \ -+lt_SP2NL \ -+lt_NL2SP \ -+reload_flag \ -+OBJDUMP \ -+deplibs_check_method \ -+file_magic_cmd \ -+AR \ -+AR_FLAGS \ -+STRIP \ -+RANLIB \ -+CC \ -+CFLAGS \ -+compiler \ -+lt_cv_sys_global_symbol_pipe \ -+lt_cv_sys_global_symbol_to_cdecl \ -+lt_cv_sys_global_symbol_to_c_name_address \ -+lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \ -+SHELL \ -+ECHO \ -+lt_prog_compiler_no_builtin_flag \ -+lt_prog_compiler_wl \ -+lt_prog_compiler_pic \ -+lt_prog_compiler_static \ -+lt_cv_prog_compiler_c_o \ -+need_locks \ -+DSYMUTIL \ -+NMEDIT \ -+LIPO \ -+OTOOL \ -+OTOOL64 \ -+shrext_cmds \ -+export_dynamic_flag_spec \ -+whole_archive_flag_spec \ -+compiler_needs_object \ -+with_gnu_ld \ -+allow_undefined_flag \ -+no_undefined_flag \ -+hardcode_libdir_flag_spec \ -+hardcode_libdir_flag_spec_ld \ -+hardcode_libdir_separator \ -+fix_srcfile_path \ -+exclude_expsyms \ -+include_expsyms \ -+file_list_spec \ -+variables_saved_for_relink \ -+libname_spec \ -+library_names_spec \ -+soname_spec \ -+finish_eval \ -+old_striplib \ -+striplib; do -+ case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in -+ *[\\\\\\\`\\"\\\$]*) -+ eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" -+ ;; -+ *) -+ eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" -+ ;; -+ esac -+done - --$XFIXES_PKG_ERRORS -+# Double-quote double-evaled strings. -+for var in reload_cmds \ -+old_postinstall_cmds \ -+old_postuninstall_cmds \ -+old_archive_cmds \ -+extract_expsyms_cmds \ -+old_archive_from_new_cmds \ -+old_archive_from_expsyms_cmds \ -+archive_cmds \ -+archive_expsym_cmds \ -+module_cmds \ -+module_expsym_cmds \ -+export_symbols_cmds \ -+prelink_cmds \ -+postinstall_cmds \ -+postuninstall_cmds \ -+finish_cmds \ -+sys_lib_search_path_spec \ -+sys_lib_dlsearch_path_spec; do -+ case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in -+ *[\\\\\\\`\\"\\\$]*) -+ eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" -+ ;; -+ *) -+ eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" -+ ;; -+ esac -+done - --Consider adjusting the PKG_CONFIG_PATH environment variable if you --installed software in a non-standard prefix. -+# Fix-up fallback echo if it was mangled by the above quoting rules. -+case \$lt_ECHO in -+*'\\\$0 --fallback-echo"') lt_ECHO=\`\$ECHO "X\$lt_ECHO" | \$Xsed -e 's/\\\\\\\\\\\\\\\$0 --fallback-echo"\$/\$0 --fallback-echo"/'\` -+ ;; -+esac - --Alternatively, you may set the environment variables XFIXES_CFLAGS --and XFIXES_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 (xfixes) were not met: -+ac_aux_dir='$ac_aux_dir' -+xsi_shell='$xsi_shell' -+lt_shell_append='$lt_shell_append' - --$XFIXES_PKG_ERRORS -+# See if we are running on zsh, and set the options which allow our -+# commands through without removal of \ escapes INIT. -+if test -n "\${ZSH_VERSION+set}" ; then -+ setopt NO_GLOB_SUBST -+fi - --Consider adjusting the PKG_CONFIG_PATH environment variable if you --installed software in a non-standard prefix. - --Alternatively, you may set the environment variables XFIXES_CFLAGS --and XFIXES_LIBS to avoid the need to call pkg-config. --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 --is in your PATH or set the PKG_CONFIG environment variable to the full --path to pkg-config. -+ PACKAGE='$PACKAGE' -+ VERSION='$VERSION' -+ TIMESTAMP='$TIMESTAMP' -+ RM='$RM' -+ ofile='$ofile' - --Alternatively, you may set the environment variables XFIXES_CFLAGS --and XFIXES_LIBS to avoid the need to call pkg-config. --See the pkg-config man page for more details. - --To get pkg-config, see . --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 --is in your PATH or set the PKG_CONFIG environment variable to the full --path to pkg-config. - --Alternatively, you may set the environment variables XFIXES_CFLAGS --and XFIXES_LIBS to avoid the need to call pkg-config. --See the pkg-config man page for more details. - --To get pkg-config, see . --See \`config.log' for more details." >&2;} -- { (exit 1); exit 1; }; } --else -- XFIXES_CFLAGS=$pkg_cv_XFIXES_CFLAGS -- XFIXES_LIBS=$pkg_cv_XFIXES_LIBS -- { echo "$as_me:$LINENO: result: yes" >&5 --echo "${ECHO_T}yes" >&6; } -- : --fi -+_ACEOF - --pkg_failed=no --{ echo "$as_me:$LINENO: checking for DRM" >&5 --echo $ECHO_N "checking for DRM... $ECHO_C" >&6; } -+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 - --if test -n "$PKG_CONFIG"; then -- if test -n "$DRM_CFLAGS"; then -- pkg_cv_DRM_CFLAGS="$DRM_CFLAGS" -- else -- if test -n "$PKG_CONFIG" && \ -- { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"libdrm\"") >&5 -- ($PKG_CONFIG --exists --print-errors "libdrm") 2>&5 -- ac_status=$? -- echo "$as_me:$LINENO: \$? = $ac_status" >&5 -- (exit $ac_status); }; then -- pkg_cv_DRM_CFLAGS=`$PKG_CONFIG --cflags "libdrm" 2>/dev/null` --else -- pkg_failed=yes --fi -- fi --else -- pkg_failed=untried --fi --if test -n "$PKG_CONFIG"; then -- if test -n "$DRM_LIBS"; then -- pkg_cv_DRM_LIBS="$DRM_LIBS" -- else -- if test -n "$PKG_CONFIG" && \ -- { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"libdrm\"") >&5 -- ($PKG_CONFIG --exists --print-errors "libdrm") 2>&5 -- ac_status=$? -- echo "$as_me:$LINENO: \$? = $ac_status" >&5 -- (exit $ac_status); }; then -- pkg_cv_DRM_LIBS=`$PKG_CONFIG --libs "libdrm" 2>/dev/null` --else -- pkg_failed=yes --fi -- fi --else -- pkg_failed=untried -+# Handling of arguments. -+for ac_config_target in $ac_config_targets -+do -+ case $ac_config_target in -+ "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; -+ "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; -+ "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;; -+ "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; -+ "src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;; -+ "src/va_version.h") CONFIG_FILES="$CONFIG_FILES src/va_version.h" ;; -+ "src/x11/Makefile") CONFIG_FILES="$CONFIG_FILES src/x11/Makefile" ;; -+ "src/glx/Makefile") CONFIG_FILES="$CONFIG_FILES src/glx/Makefile" ;; -+ "dummy_drv_video/Makefile") CONFIG_FILES="$CONFIG_FILES dummy_drv_video/Makefile" ;; -+ "i965_drv_video/Makefile") CONFIG_FILES="$CONFIG_FILES i965_drv_video/Makefile" ;; -+ "i965_drv_video/shaders/Makefile") CONFIG_FILES="$CONFIG_FILES i965_drv_video/shaders/Makefile" ;; -+ "i965_drv_video/shaders/mpeg2/Makefile") CONFIG_FILES="$CONFIG_FILES i965_drv_video/shaders/mpeg2/Makefile" ;; -+ "i965_drv_video/shaders/mpeg2/vld/Makefile") CONFIG_FILES="$CONFIG_FILES i965_drv_video/shaders/mpeg2/vld/Makefile" ;; -+ "i965_drv_video/shaders/render/Makefile") CONFIG_FILES="$CONFIG_FILES i965_drv_video/shaders/render/Makefile" ;; -+ "test/Makefile") CONFIG_FILES="$CONFIG_FILES test/Makefile" ;; -+ "libva.pc") CONFIG_FILES="$CONFIG_FILES libva.pc" ;; -+ "libva-x11.pc") CONFIG_FILES="$CONFIG_FILES libva-x11.pc" ;; -+ "libva-glx.pc") CONFIG_FILES="$CONFIG_FILES libva-glx.pc" ;; -+ -+ *) { { $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 -+# bizarre bug on SunOS 4.1.3. -+if $ac_need_defaults; then -+ test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files -+ test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers -+ test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands - fi - -+# Have a temporary directory for convenience. Make it in the build tree -+# simply because there is no reason against having it here, and in addition, -+# creating and moving files from /tmp can sometimes cause problems. -+# 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 || -+{ -+ 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 "./confXXXXXX") 2>/dev/null` && -+ test -n "$tmp" && test -d "$tmp" -+} || -+{ -+ tmp=./conf$$-$RANDOM -+ (umask 077 && mkdir "$tmp") -+} || -+{ -+ $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 - --if test $pkg_failed = yes; then - --if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then -- _pkg_short_errors_supported=yes -+ac_cr=' ' -+ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` -+if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then -+ ac_cs_awk_cr='\\r' - else -- _pkg_short_errors_supported=no -+ ac_cs_awk_cr=$ac_cr - fi -- if test $_pkg_short_errors_supported = yes; then -- DRM_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "libdrm"` -- else -- DRM_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "libdrm"` -- fi -- # Put the nasty error message in config.log where it belongs -- echo "$DRM_PKG_ERRORS" >&5 - -- { { echo "$as_me:$LINENO: error: Package requirements (libdrm) were not met: -+echo 'BEGIN {' >"$tmp/subs1.awk" && -+_ACEOF - --$DRM_PKG_ERRORS - --Consider adjusting the PKG_CONFIG_PATH environment variable if you --installed software in a non-standard prefix. -+{ -+ 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; }; } - --Alternatively, you may set the environment variables DRM_CFLAGS --and DRM_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 (libdrm) were not met: -+ ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` -+ if test $ac_delim_n = $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 - --$DRM_PKG_ERRORS -+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 -+' >$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 = "" - --Consider adjusting the PKG_CONFIG_PATH environment variable if you --installed software in a non-standard prefix. -+} -+{ -+ 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 -+ } - --Alternatively, you may set the environment variables DRM_CFLAGS --and DRM_LIBS to avoid the need to call pkg-config. --See the pkg-config man page for more details. --" >&2;} -+ 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; }; } --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 --is in your PATH or set the PKG_CONFIG environment variable to the full --path to pkg-config. -+_ACEOF - --Alternatively, you may set the environment variables DRM_CFLAGS --and DRM_LIBS to avoid the need to call pkg-config. --See the pkg-config man page for more details. -+# 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 - --To get pkg-config, see . --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 --is in your PATH or set the PKG_CONFIG environment variable to the full --path to pkg-config. -+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -+fi # test -n "$CONFIG_FILES" - --Alternatively, you may set the environment variables DRM_CFLAGS --and DRM_LIBS to avoid the need to call pkg-config. --See the pkg-config man page for more details. -+# 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 - --To get pkg-config, see . --See \`config.log' for more details." >&2;} -+# 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 -+' >$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] -+ prefix = substr(line, 1, index(line, defundef) - 1) -+ if (D_is_set[macro]) { -+ # Preserve the white space surrounding the "#". -+ 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 "/*", prefix defundef, macro, "*/" -+ 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; }; } --else -- DRM_CFLAGS=$pkg_cv_DRM_CFLAGS -- DRM_LIBS=$pkg_cv_DRM_LIBS -- { echo "$as_me:$LINENO: result: yes" >&5 --echo "${ECHO_T}yes" >&6; } -- : --fi -+fi # test -n "$CONFIG_HEADERS" - - --pkg_failed=no --{ echo "$as_me:$LINENO: checking for GEN4ASM" >&5 --echo $ECHO_N "checking for GEN4ASM... $ECHO_C" >&6; } -+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 - --if test -n "$PKG_CONFIG"; then -- if test -n "$GEN4ASM_CFLAGS"; then -- pkg_cv_GEN4ASM_CFLAGS="$GEN4ASM_CFLAGS" -- else -- if test -n "$PKG_CONFIG" && \ -- { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"intel-gen4asm >= 1.0\"") >&5 -- ($PKG_CONFIG --exists --print-errors "intel-gen4asm >= 1.0") 2>&5 -- ac_status=$? -- echo "$as_me:$LINENO: \$? = $ac_status" >&5 -- (exit $ac_status); }; then -- pkg_cv_GEN4ASM_CFLAGS=`$PKG_CONFIG --cflags "intel-gen4asm >= 1.0" 2>/dev/null` --else -- pkg_failed=yes --fi -- fi --else -- pkg_failed=untried --fi --if test -n "$PKG_CONFIG"; then -- if test -n "$GEN4ASM_LIBS"; then -- pkg_cv_GEN4ASM_LIBS="$GEN4ASM_LIBS" -- else -- if test -n "$PKG_CONFIG" && \ -- { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"intel-gen4asm >= 1.0\"") >&5 -- ($PKG_CONFIG --exists --print-errors "intel-gen4asm >= 1.0") 2>&5 -- ac_status=$? -- echo "$as_me:$LINENO: \$? = $ac_status" >&5 -- (exit $ac_status); }; then -- pkg_cv_GEN4ASM_LIBS=`$PKG_CONFIG --libs "intel-gen4asm >= 1.0" 2>/dev/null` --else -- pkg_failed=yes --fi -+ 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 --else -- pkg_failed=untried --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 || -+$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 :; 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 || -+$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 -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 $pkg_failed = yes; then -+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 - --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 -- GEN4ASM_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "intel-gen4asm >= 1.0"` -- else -- GEN4ASM_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "intel-gen4asm >= 1.0"` -- fi -- # Put the nasty error message in config.log where it belongs -- echo "$GEN4ASM_PKG_ERRORS" >&5 -+case $srcdir in -+ .) # We are building in place. -+ ac_srcdir=. -+ 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 -+ 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 - -- { echo "$as_me:$LINENO: result: no" >&5 --echo "${ECHO_T}no" >&6; } -- gen4asm=no --elif test $pkg_failed = untried; then -- gen4asm=no --else -- GEN4ASM_CFLAGS=$pkg_cv_GEN4ASM_CFLAGS -- GEN4ASM_LIBS=$pkg_cv_GEN4ASM_LIBS -- { echo "$as_me:$LINENO: result: yes" >&5 --echo "${ECHO_T}yes" >&6; } -- gen4asm=yes --fi -- if test x$gen4asm = xyes; then -- HAVE_GEN4ASM_TRUE= -- HAVE_GEN4ASM_FALSE='#' --else -- HAVE_GEN4ASM_TRUE='#' -- HAVE_GEN4ASM_FALSE= --fi - -+ case $ac_mode in -+ :F) -+ # -+ # CONFIG_FILE -+ # - --# Check for libdrm >= 2.4 (needed for i965_drv_video.so) --if test x$enable_i965_driver = xyes && ! $PKG_CONFIG --atleast-version=2.4 libdrm; then -- { echo "$as_me:$LINENO: WARNING: libdrm < 2.4 found, disabling build of i965 video driver" >&5 --echo "$as_me: WARNING: libdrm < 2.4 found, disabling build of i965 video driver" >&2;} -- enable_i965_driver=no --fi -- if test x$enable_i965_driver = xyes; then -- BUILD_I965_DRIVER_TRUE= -- BUILD_I965_DRIVER_FALSE='#' --else -- BUILD_I965_DRIVER_TRUE='#' -- BUILD_I965_DRIVER_FALSE= --fi -+ case $INSTALL in -+ [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; -+ *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; -+ esac -+ ac_MKDIR_P=$MKDIR_P -+ case $MKDIR_P in -+ [\\/$]* | ?:[\\/]* ) ;; -+ */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;; -+ esac -+_ACEOF - -+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= - --# We only need the headers, we don't link against the DRM libraries --LIBVA_CFLAGS="$DRM_CFLAGS" -+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 - -+# 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 || ac_write_fail=1 -+:t -+/@[a-zA-Z_][a-zA-Z_0-9]*@/!b -+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 -+s&@MKDIR_P@&$ac_MKDIR_P&;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; }; } - -+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;} - --pkgconfigdir=${libdir}/pkgconfig -+ rm -f "$tmp/stdin" -+ case $ac_file in -+ -) 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; }; } -+ ;; -+ :H) -+ # -+ # CONFIG_HEADER -+ # -+ if test x"$ac_file" != x-; then -+ { -+ $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 -+ 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 -+ $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. -+_am_arg="$ac_file" -+_am_stamp_count=1 -+for _am_header in $config_headers :; do -+ case $_am_header in -+ $_am_arg | $_am_arg:* ) -+ break ;; -+ * ) -+ _am_stamp_count=`expr $_am_stamp_count + 1` ;; -+ esac -+done -+echo "timestamp for $_am_arg" >`$as_dirname -- "$_am_arg" || -+$as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ -+ X"$_am_arg" : 'X\(//\)[^/]' \| \ -+ X"$_am_arg" : 'X\(//\)$' \| \ -+ X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null || -+$as_echo X"$_am_arg" | -+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ -+ s//\1/ -+ q -+ } -+ /^X\(\/\/\)[^/].*/{ -+ s//\1/ -+ q -+ } -+ /^X\(\/\/\)$/{ -+ s//\1/ -+ q -+ } -+ /^X\(\/\).*/{ -+ s//\1/ -+ q -+ } -+ s/.*/./; q'`/stamp-h$_am_stamp_count -+ ;; - -+ :C) { $as_echo "$as_me:$LINENO: executing $ac_file commands" >&5 -+$as_echo "$as_me: executing $ac_file commands" >&6;} -+ ;; -+ esac - --LIBVA_DISPLAY=x11 --libvacorelib=libva.la --libvabackendlib=libva-$LIBVA_DISPLAY.la - -+ case $ac_file$ac_mode in -+ "depfiles":C) test x"$AMDEP_TRUE" != x"" || { -+ # Autoconf 2.62 quotes --file arguments for eval, but not when files -+ # are listed without --file. Let's play safe and only enable the eval -+ # if we detect the quoting. -+ case $CONFIG_FILES in -+ *\'*) eval set x "$CONFIG_FILES" ;; -+ *) set x $CONFIG_FILES ;; -+ esac -+ shift -+ for mf -+ 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. -+ # We used to match only the files named `Makefile.in', but -+ # some people rename them; so instead we look at the file content. -+ # Grep'ing the first line is not enough: some people post-process -+ # each Makefile.in and add a new line on top of each file to say so. -+ # Grep'ing the whole file is not good either: AIX grep has a line -+ # limit of 2048, but all sed's we know have understand at least 4000. -+ if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then -+ dirpart=`$as_dirname -- "$mf" || -+$as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ -+ X"$mf" : 'X\(//\)[^/]' \| \ -+ X"$mf" : 'X\(//\)$' \| \ -+ 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 -+ # Extract the definition of DEPDIR, am__include, and am__quote -+ # from the Makefile without running `make'. -+ DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` -+ test -z "$DEPDIR" && continue -+ am__include=`sed -n 's/^am__include = //p' < "$mf"` -+ test -z "am__include" && continue -+ am__quote=`sed -n 's/^am__quote = //p' < "$mf"` -+ # When using ansi2knr, U may be empty or an underscore; expand it -+ U=`sed -n 's/^U = //p' < "$mf"` -+ # Find all dependency output files, they are included files with -+ # $(DEPDIR) in their names. We invoke sed twice because it is the -+ # simplest approach to changing $(DEPDIR) to its actual value in the -+ # expansion. -+ for file in `sed -n " -+ s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ -+ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do -+ # Make sure the directory exists. -+ test -f "$dirpart/$file" && continue -+ fdir=`$as_dirname -- "$file" || -+$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ -+ X"$file" : 'X\(//\)[^/]' \| \ -+ X"$file" : 'X\(//\)$' \| \ -+ 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 :; 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 || -+$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 -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 -+} -+ ;; -+ "libtool":C) - -+ # See if we are running on zsh, and set the options which allow our -+ # commands through without removal of \ escapes. -+ if test -n "${ZSH_VERSION+set}" ; then -+ setopt NO_GLOB_SUBST -+ fi - -+ cfgfile="${ofile}T" -+ trap "$RM \"$cfgfile\"; exit 1" 1 2 15 -+ $RM "$cfgfile" - --ac_config_files="$ac_config_files Makefile src/Makefile src/va_version.h src/x11/Makefile dummy_drv_video/Makefile i965_drv_video/Makefile i965_drv_video/shaders/Makefile i965_drv_video/shaders/mpeg2/Makefile i965_drv_video/shaders/mpeg2/vld/Makefile i965_drv_video/shaders/render/Makefile test/Makefile libva.pc libva_display.pc" -+ cat <<_LT_EOF >> "$cfgfile" -+#! $SHELL - --cat >confcache <<\_ACEOF --# This file is a shell script that caches the results of configure --# tests run on this system so they can be shared between configure --# scripts and configure runs, see configure's option --config-cache. --# It is not useful on other systems. If it contains results you don't --# want to keep, you may remove or edit it. -+# `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. -+# Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION -+# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: -+# NOTE: Changes made to this file will be lost: look at ltmain.sh. - # --# config.status only pays attention to the cache file if you give it --# the --recheck option to rerun configure. -+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, -+# 2006, 2007, 2008 Free Software Foundation, Inc. -+# Written by Gordon Matzigkeit, 1996 -+# -+# This file is part of GNU Libtool. -+# -+# GNU Libtool is free software; you can redistribute it and/or -+# modify it under the terms of the GNU General Public License as -+# published by the Free Software Foundation; either version 2 of -+# the License, or (at your option) any later version. -+# -+# As a special exception to the GNU General Public License, -+# if you distribute this file as part of a program or library that -+# is built using GNU Libtool, you may include this file under the -+# same distribution terms that you use for the rest of that program. -+# -+# GNU Libtool is distributed in the hope that it will be useful, -+# but WITHOUT ANY WARRANTY; without even the implied warranty of -+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+# GNU General Public License for more details. - # --# `ac_cv_env_foo' variables (set or unset) will be overridden when --# loading this file, other *unset* `ac_cv_foo' will be assigned the --# following values. -+# You should have received a copy of the GNU General Public License -+# along with GNU Libtool; see the file COPYING. If not, a copy -+# can be downloaded from http://www.gnu.org/licenses/gpl.html, or -+# obtained by writing to the Free Software Foundation, Inc., -+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - --_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, 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_*) { echo "$as_me:$LINENO: WARNING: Cache variable $ac_var contains a newline." >&5 --echo "$as_me: WARNING: Cache variable $ac_var contains a newline." >&2;} ;; -- esac -- case $ac_var in #( -- _ | IFS | as_nl) ;; #( -- *) $as_unset $ac_var ;; -- esac ;; -- esac -- done -+# The names of the tagged configurations supported by this script. -+available_tags="" - -- (set) 2>&1 | -- 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 "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" -- ;; -- esac | -- sort --) | -- sed ' -- /^ac_cv_env_/b end -- t clear -- :clear -- s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ -- t end -- 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 "$as_me:$LINENO: updating cache $cache_file" >&5 --echo "$as_me: updating cache $cache_file" >&6;} -- cat confcache >$cache_file -- else -- { echo "$as_me:$LINENO: not updating unwritable cache $cache_file" >&5 --echo "$as_me: not updating unwritable cache $cache_file" >&6;} -- fi --fi --rm -f confcache -+# ### BEGIN LIBTOOL CONFIG - --test "x$prefix" = xNONE && prefix=$ac_default_prefix --# Let make expand exec_prefix. --test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' -+# Whether or not to build static libraries. -+build_old_libs=$enable_static - --DEFS=-DHAVE_CONFIG_H -+# Which release of libtool.m4 was used? -+macro_version=$macro_version -+macro_revision=$macro_revision - --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_script='s/\$U\././;s/\.o$//;s/\.obj$//' -- ac_i=`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 -+# Whether or not to build shared libraries. -+build_libtool_libs=$enable_shared -+ -+# What type of objects to build. -+pic_mode=$pic_mode -+ -+# Whether or not to optimize for fast installation. -+fast_install=$enable_fast_install - --LTLIBOBJS=$ac_ltlibobjs -+# The host system. -+host_alias=$host_alias -+host=$host -+host_os=$host_os - -+# The build system. -+build_alias=$build_alias -+build=$build -+build_os=$build_os - --if test -z "${BUILD_DUMMY_DRIVER_TRUE}" && test -z "${BUILD_DUMMY_DRIVER_FALSE}"; then -- { { echo "$as_me:$LINENO: error: conditional \"BUILD_DUMMY_DRIVER\" was never defined. --Usually this means the macro was only invoked conditionally." >&5 --echo "$as_me: error: conditional \"BUILD_DUMMY_DRIVER\" 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. --Usually this means the macro was only invoked conditionally." >&5 --echo "$as_me: error: conditional \"AMDEP\" was never defined. --Usually this means the macro was only invoked conditionally." >&2;} -- { (exit 1); exit 1; }; } --fi --if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then -- { { echo "$as_me:$LINENO: error: conditional \"am__fastdepCC\" was never defined. --Usually this means the macro was only invoked conditionally." >&5 --echo "$as_me: error: conditional \"am__fastdepCC\" was never defined. --Usually this means the macro was only invoked conditionally." >&2;} -- { (exit 1); exit 1; }; } --fi --if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then -- { { echo "$as_me:$LINENO: error: conditional \"am__fastdepCXX\" was never defined. --Usually this means the macro was only invoked conditionally." >&5 --echo "$as_me: error: conditional \"am__fastdepCXX\" was never defined. --Usually this means the macro was only invoked conditionally." >&2;} -- { (exit 1); exit 1; }; } --fi --if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then -- { { 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. --Usually this means the macro was only invoked conditionally." >&2;} -- { (exit 1); exit 1; }; } --fi --if test -z "${HAVE_GEN4ASM_TRUE}" && test -z "${HAVE_GEN4ASM_FALSE}"; then -- { { echo "$as_me:$LINENO: error: conditional \"HAVE_GEN4ASM\" was never defined. --Usually this means the macro was only invoked conditionally." >&5 --echo "$as_me: error: conditional \"HAVE_GEN4ASM\" was never defined. --Usually this means the macro was only invoked conditionally." >&2;} -- { (exit 1); exit 1; }; } --fi --if test -z "${BUILD_I965_DRIVER_TRUE}" && test -z "${BUILD_I965_DRIVER_FALSE}"; then -- { { echo "$as_me:$LINENO: error: conditional \"BUILD_I965_DRIVER\" was never defined. --Usually this means the macro was only invoked conditionally." >&5 --echo "$as_me: error: conditional \"BUILD_I965_DRIVER\" was never defined. --Usually this means the macro was only invoked conditionally." >&2;} -- { (exit 1); exit 1; }; } --fi -+# A sed program that does not truncate output. -+SED=$lt_SED - --: ${CONFIG_STATUS=./config.status} --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 --#! $SHELL --# Generated by $as_me. --# Run this file to recreate the current configuration. --# Compiler output produced by configure, useful for debugging --# configure, is in config.log if it exists. -+# Sed that helps us avoid accidentally triggering echo(1) options like -n. -+Xsed="\$SED -e 1s/^X//" - --debug=false --ac_cs_recheck=false --ac_cs_silent=false --SHELL=\${CONFIG_SHELL-$SHELL} --_ACEOF -+# A grep program that handles long lines. -+GREP=$lt_GREP - --cat >>$CONFIG_STATUS <<\_ACEOF --## --------------------- ## --## M4sh Initialization. ## --## --------------------- ## -+# An ERE matcher. -+EGREP=$lt_EGREP - --# 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 -- # 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 -+# A literal string matcher. -+FGREP=$lt_FGREP - --fi -+# A BSD- or MS-compatible name lister. -+NM=$lt_NM - -+# Whether we need soft or hard links. -+LN_S=$lt_LN_S - -+# What is the maximum length of a command? -+max_cmd_len=$max_cmd_len - -+# Object file suffix (normally "o"). -+objext=$ac_objext - --# 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 -+# Executable file suffix (normally ""). -+exeext=$exeext - --# 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 -+# whether the shell understands "unset". -+lt_unset=$lt_unset - --# Support unset when possible. --if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then -- as_unset=unset --else -- as_unset=false --fi -+# turn spaces into newlines. -+SP2NL=$lt_lt_SP2NL - -+# turn newlines into spaces. -+NL2SP=$lt_lt_NL2SP - --# 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.) --as_nl=' --' --IFS=" "" $as_nl" -+# How to create reloadable object files. -+reload_flag=$lt_reload_flag -+reload_cmds=$lt_reload_cmds - --# 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 -+# An object symbol dumper. -+OBJDUMP=$lt_OBJDUMP - -- ;; --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_myself: error: cannot find myself; rerun with an absolute file name" >&2 -- { (exit 1); exit 1; } --fi -+# Method to check whether dependent libraries are shared objects. -+deplibs_check_method=$lt_deplibs_check_method - --# Work around bugs in pre-3.0 UWIN ksh. --for as_var in ENV MAIL MAILPATH --do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var --done --PS1='$ ' --PS2='> ' --PS4='+ ' -+# Command to use when deplibs_check_method == "file_magic". -+file_magic_cmd=$lt_file_magic_cmd - --# 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) >/dev/null 2>&1 && $as_unset $as_var -- fi --done -+# The archiver. -+AR=$lt_AR -+AR_FLAGS=$lt_AR_FLAGS - --# Required to use basename. --if expr a : '\(a\)' >/dev/null 2>&1 && -- test "X`expr 00001 : '.*\(...\)'`" = X001; then -- as_expr=expr --else -- as_expr=false --fi -+# A symbol stripping program. -+STRIP=$lt_STRIP - --if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then -- as_basename=basename --else -- as_basename=false --fi -+# Commands used to install an old-style archive. -+RANLIB=$lt_RANLIB -+old_postinstall_cmds=$lt_old_postinstall_cmds -+old_postuninstall_cmds=$lt_old_postuninstall_cmds - -+# A C compiler. -+LTCC=$lt_CC - --# Name of the executable. --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'` -+# LTCC compiler flags. -+LTCFLAGS=$lt_CFLAGS - --# CDPATH. --$as_unset CDPATH -+# Take the output of nm and produce a listing of raw symbols and C names. -+global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe -+ -+# Transform the output of nm in a proper C declaration. -+global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl - -+# Transform the output of nm in a C name address pair. -+global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address - -+# Transform the output of nm in a C name address pair when lib prefix is needed. -+global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix - -- 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" || { -+# The name of the directory that contains temporary libtool files. -+objdir=$objdir - -- # 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 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 -- # 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 -- :loop -- s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ -- t loop -- 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 -- { (exit 1); exit 1; }; } -+# Shell to use when invoking shell scripts. -+SHELL=$lt_SHELL - -- # 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 sensitive to this). -- . "./$as_me.lineno" -- # Exit status is that of the last command. -- exit --} -+# An echo program that does not interpret backslashes. -+ECHO=$lt_ECHO - -+# Used to examine libraries when file_magic_cmd begins with "file". -+MAGIC_CMD=$MAGIC_CMD - --if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then -- as_dirname=dirname --else -- as_dirname=false --fi -+# Must we lock files when doing compilation? -+need_locks=$lt_need_locks - --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 -+# Tool to manipulate archived DWARF debug symbol files on Mac OS X. -+DSYMUTIL=$lt_DSYMUTIL -+ -+# Tool to change global to local symbols on Mac OS X. -+NMEDIT=$lt_NMEDIT - --if expr a : '\(a\)' >/dev/null 2>&1 && -- test "X`expr 00001 : '.*\(...\)'`" = X001; then -- as_expr=expr --else -- as_expr=false --fi -+# Tool to manipulate fat objects and archives on Mac OS X. -+LIPO=$lt_LIPO - --rm -f conf$$ conf$$.exe conf$$.file --if test -d conf$$.dir; then -- rm -f conf$$.dir/conf$$.file --else -- rm -f conf$$.dir -- mkdir conf$$.dir --fi --echo >conf$$.file --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 --rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file --rmdir conf$$.dir 2>/dev/null -+# ldd/readelf like tool for Mach-O binaries on Mac OS X. -+OTOOL=$lt_OTOOL - --if mkdir -p . 2>/dev/null; then -- as_mkdir_p=: --else -- test -d ./-p && rmdir ./-p -- as_mkdir_p=false --fi -+# ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4. -+OTOOL64=$lt_OTOOL64 - --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 -+# Old archive suffix (normally "a"). -+libext=$libext - --# 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'" -+# Shared library suffix (normally ".so"). -+shrext_cmds=$lt_shrext_cmds - --# Sed expression to map a string onto a valid variable name. --as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" -+# The commands to extract the exported symbol list from a shared archive. -+extract_expsyms_cmds=$lt_extract_expsyms_cmds - -+# Variables whose values should be saved in libtool wrapper scripts and -+# restored at link time. -+variables_saved_for_relink=$lt_variables_saved_for_relink - --exec 6>&1 -+# Do we need the "lib" prefix for modules? -+need_lib_prefix=$need_lib_prefix - --# 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. --ac_log=" --This file was extended by libva $as_me 0.31.0, which was --generated by GNU Autoconf 2.61. Invocation command line was -+# Do we need a version for libraries? -+need_version=$need_version - -- CONFIG_FILES = $CONFIG_FILES -- CONFIG_HEADERS = $CONFIG_HEADERS -- CONFIG_LINKS = $CONFIG_LINKS -- CONFIG_COMMANDS = $CONFIG_COMMANDS -- $ $0 $@ -+# Library versioning type. -+version_type=$version_type - --on `(hostname || uname -n) 2>/dev/null | sed 1q` --" -+# Shared library runtime path variable. -+runpath_var=$runpath_var - --_ACEOF -+# Shared library path variable. -+shlibpath_var=$shlibpath_var - --cat >>$CONFIG_STATUS <<_ACEOF --# Files that config.status was made for. --config_files="$ac_config_files" --config_headers="$ac_config_headers" --config_commands="$ac_config_commands" -+# Is shlibpath searched before the hard-coded library search path? -+shlibpath_overrides_runpath=$shlibpath_overrides_runpath - --_ACEOF -+# Format of library name prefix. -+libname_spec=$lt_libname_spec - --cat >>$CONFIG_STATUS <<\_ACEOF --ac_cs_usage="\ --\`$as_me' instantiates files from templates according to the --current configuration. -+# List of archive names. First name is the real one, the rest are links. -+# The last name is the one that the linker finds with -lNAME -+library_names_spec=$lt_library_names_spec - --Usage: $0 [OPTIONS] [FILE]... -+# The coded name of the library, if different from the real name. -+soname_spec=$lt_soname_spec - -- -h, --help print this help, 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 -- --header=FILE[:TEMPLATE] -- instantiate the configuration header FILE -+# Command to use after installation of a shared archive. -+postinstall_cmds=$lt_postinstall_cmds - --Configuration files: --$config_files -+# Command to use after uninstallation of a shared archive. -+postuninstall_cmds=$lt_postuninstall_cmds - --Configuration headers: --$config_headers -+# Commands used to finish a libtool library installation in a directory. -+finish_cmds=$lt_finish_cmds - --Configuration commands: --$config_commands -+# As "finish_cmds", except a single script fragment to be evaled but -+# not shown. -+finish_eval=$lt_finish_eval - --Report bugs to ." -+# Whether we should hardcode library paths into libraries. -+hardcode_into_libs=$hardcode_into_libs - --_ACEOF --cat >>$CONFIG_STATUS <<_ACEOF --ac_cs_version="\\ --libva config.status 0.31.0 --configured by $0, generated by GNU Autoconf 2.61, -- with options \\"`echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\" -+# Compile-time system search path for libraries. -+sys_lib_search_path_spec=$lt_sys_lib_search_path_spec - --Copyright (C) 2006 Free Software Foundation, Inc. --This config.status script is free software; the Free Software Foundation --gives unlimited permission to copy, distribute and modify it." -+# Run-time system search path for libraries. -+sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec - --ac_pwd='$ac_pwd' --srcdir='$srcdir' --INSTALL='$INSTALL' --MKDIR_P='$MKDIR_P' --_ACEOF -+# Whether dlopen is supported. -+dlopen_support=$enable_dlopen - --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. --ac_need_defaults=: --while test $# != 0 --do -- case $1 in -- --*=*) -- ac_option=`expr "X$1" : 'X\([^=]*\)='` -- ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` -- ac_shift=: -- ;; -- *) -- ac_option=$1 -- ac_optarg=$2 -- ac_shift=shift -- ;; -- esac -+# Whether dlopen of programs is supported. -+dlopen_self=$enable_dlopen_self - -- case $ac_option in -- # Handling of the options. -- -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) -- ac_cs_recheck=: ;; -- --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) -- echo "$ac_cs_version"; exit ;; -- --debug | --debu | --deb | --de | --d | -d ) -- debug=: ;; -- --file | --fil | --fi | --f ) -- $ac_shift -- CONFIG_FILES="$CONFIG_FILES $ac_optarg" -- ac_need_defaults=false;; -- --header | --heade | --head | --hea ) -- $ac_shift -- CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg" -- ac_need_defaults=false;; -- --he | --h) -- # Conflict between --help and --header -- { 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 ;; -- -q | -quiet | --quiet | --quie | --qui | --qu | --q \ -- | -silent | --silent | --silen | --sile | --sil | --si | --s) -- ac_cs_silent=: ;; -+# Whether dlopen of statically linked programs is supported. -+dlopen_self_static=$enable_dlopen_self_static - -- # This is an error. -- -*) { echo "$as_me: error: unrecognized option: $1 --Try \`$0 --help' for more information." >&2 -- { (exit 1); exit 1; }; } ;; -+# Commands to strip libraries. -+old_striplib=$lt_old_striplib -+striplib=$lt_striplib - -- *) ac_config_targets="$ac_config_targets $1" -- ac_need_defaults=false ;; - -- esac -- shift --done -+# The linker used to build libraries. -+LD=$lt_LD - --ac_configure_extra_args= -+# Commands used to build an old-style archive. -+old_archive_cmds=$lt_old_archive_cmds - --if $ac_cs_silent; then -- exec 6>/dev/null -- ac_configure_extra_args="$ac_configure_extra_args --silent" --fi -+# A language specific compiler. -+CC=$lt_compiler - --_ACEOF --cat >>$CONFIG_STATUS <<_ACEOF --if \$ac_cs_recheck; then -- echo "running CONFIG_SHELL=$SHELL $SHELL $0 "$ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6 -- CONFIG_SHELL=$SHELL -- export CONFIG_SHELL -- exec $SHELL "$0"$ac_configure_args \$ac_configure_extra_args --no-create --no-recursion --fi -+# Is the compiler the GNU compiler? -+with_gcc=$GCC - --_ACEOF --cat >>$CONFIG_STATUS <<\_ACEOF --exec 5>>config.log --{ -- echo -- sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX --## Running $as_me. ## --_ASBOX -- echo "$ac_log" --} >&5 -+# Compiler flag to turn off builtin functions. -+no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag - --_ACEOF --cat >>$CONFIG_STATUS <<_ACEOF --# --# INIT-COMMANDS --# --AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" -+# How to pass a linker flag through the compiler. -+wl=$lt_lt_prog_compiler_wl - --_ACEOF -+# Additional compiler flags for building library objects. -+pic_flag=$lt_lt_prog_compiler_pic - --cat >>$CONFIG_STATUS <<\_ACEOF -+# Compiler flag to prevent dynamic linking. -+link_static_flag=$lt_lt_prog_compiler_static - --# Handling of arguments. --for ac_config_target in $ac_config_targets --do -- case $ac_config_target in -- "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; -- "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; -- "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; -- "src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;; -- "src/va_version.h") CONFIG_FILES="$CONFIG_FILES src/va_version.h" ;; -- "src/x11/Makefile") CONFIG_FILES="$CONFIG_FILES src/x11/Makefile" ;; -- "dummy_drv_video/Makefile") CONFIG_FILES="$CONFIG_FILES dummy_drv_video/Makefile" ;; -- "i965_drv_video/Makefile") CONFIG_FILES="$CONFIG_FILES i965_drv_video/Makefile" ;; -- "i965_drv_video/shaders/Makefile") CONFIG_FILES="$CONFIG_FILES i965_drv_video/shaders/Makefile" ;; -- "i965_drv_video/shaders/mpeg2/Makefile") CONFIG_FILES="$CONFIG_FILES i965_drv_video/shaders/mpeg2/Makefile" ;; -- "i965_drv_video/shaders/mpeg2/vld/Makefile") CONFIG_FILES="$CONFIG_FILES i965_drv_video/shaders/mpeg2/vld/Makefile" ;; -- "i965_drv_video/shaders/render/Makefile") CONFIG_FILES="$CONFIG_FILES i965_drv_video/shaders/render/Makefile" ;; -- "test/Makefile") CONFIG_FILES="$CONFIG_FILES test/Makefile" ;; -- "libva.pc") CONFIG_FILES="$CONFIG_FILES libva.pc" ;; -- "libva_display.pc") CONFIG_FILES="$CONFIG_FILES libva_display.pc" ;; -+# Does compiler simultaneously support -c and -o options? -+compiler_c_o=$lt_lt_cv_prog_compiler_c_o - -- *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5 --echo "$as_me: error: invalid argument: $ac_config_target" >&2;} -- { (exit 1); exit 1; }; };; -- esac --done -+# Whether or not to add -lc for building shared libraries. -+build_libtool_need_lc=$archive_cmds_need_lc - -+# Whether or not to disallow shared libs when runtime libs are static. -+allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes - --# 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 --# bizarre bug on SunOS 4.1.3. --if $ac_need_defaults; then -- test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files -- test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers -- test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands --fi -+# Compiler flag to allow reflexive dlopens. -+export_dynamic_flag_spec=$lt_export_dynamic_flag_spec -+ -+# Compiler flag to generate shared objects directly from archives. -+whole_archive_flag_spec=$lt_whole_archive_flag_spec -+ -+# Whether the compiler copes with passing no objects directly. -+compiler_needs_object=$lt_compiler_needs_object -+ -+# Create an old-style archive from a shared archive. -+old_archive_from_new_cmds=$lt_old_archive_from_new_cmds -+ -+# Create a temporary old-style archive to link instead of a shared archive. -+old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds - --# Have a temporary directory for convenience. Make it in the build tree --# simply because there is no reason against having it here, and in addition, --# creating and moving files from /tmp can sometimes cause problems. --# 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 || --{ -- 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. -+# Commands used to build a shared archive. -+archive_cmds=$lt_archive_cmds -+archive_expsym_cmds=$lt_archive_expsym_cmds - --{ -- tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && -- test -n "$tmp" && test -d "$tmp" --} || --{ -- tmp=./conf$$-$RANDOM -- (umask 077 && mkdir "$tmp") --} || --{ -- echo "$me: cannot create a temporary directory in ." >&2 -- { (exit 1); exit 1; } --} -+# Commands used to build a loadable module if different from building -+# a shared archive. -+module_cmds=$lt_module_cmds -+module_expsym_cmds=$lt_module_expsym_cmds - --# --# Set up the sed scripts for CONFIG_FILES section. --# -+# Whether we are building with GNU ld or not. -+with_gnu_ld=$lt_with_gnu_ld - --# 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 -+# Flag that allows shared libraries with undefined symbols to be built. -+allow_undefined_flag=$lt_allow_undefined_flag - --_ACEOF -+# Flag that enforces no undefined symbols. -+no_undefined_flag=$lt_no_undefined_flag - -+# Flag to hardcode \$libdir into a binary during linking. -+# This must work even if \$libdir does not exist -+hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec - -+# If ld is used when linking, flag to hardcode \$libdir into a binary -+# during linking. This must work even if \$libdir does not exist. -+hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld - --ac_delim='%!_!# ' --for ac_last_try in false false false false false :; do -- cat >conf$$subs.sed <<_ACEOF --SHELL!$SHELL$ac_delim --PATH_SEPARATOR!$PATH_SEPARATOR$ac_delim --PACKAGE_NAME!$PACKAGE_NAME$ac_delim --PACKAGE_TARNAME!$PACKAGE_TARNAME$ac_delim --PACKAGE_VERSION!$PACKAGE_VERSION$ac_delim --PACKAGE_STRING!$PACKAGE_STRING$ac_delim --PACKAGE_BUGREPORT!$PACKAGE_BUGREPORT$ac_delim --exec_prefix!$exec_prefix$ac_delim --prefix!$prefix$ac_delim --program_transform_name!$program_transform_name$ac_delim --bindir!$bindir$ac_delim --sbindir!$sbindir$ac_delim --libexecdir!$libexecdir$ac_delim --datarootdir!$datarootdir$ac_delim --datadir!$datadir$ac_delim --sysconfdir!$sysconfdir$ac_delim --sharedstatedir!$sharedstatedir$ac_delim --localstatedir!$localstatedir$ac_delim --includedir!$includedir$ac_delim --oldincludedir!$oldincludedir$ac_delim --docdir!$docdir$ac_delim --infodir!$infodir$ac_delim --htmldir!$htmldir$ac_delim --dvidir!$dvidir$ac_delim --pdfdir!$pdfdir$ac_delim --psdir!$psdir$ac_delim --libdir!$libdir$ac_delim --localedir!$localedir$ac_delim --mandir!$mandir$ac_delim --DEFS!$DEFS$ac_delim --ECHO_C!$ECHO_C$ac_delim --ECHO_N!$ECHO_N$ac_delim --ECHO_T!$ECHO_T$ac_delim --LIBS!$LIBS$ac_delim --build_alias!$build_alias$ac_delim --host_alias!$host_alias$ac_delim --target_alias!$target_alias$ac_delim --INSTALL_PROGRAM!$INSTALL_PROGRAM$ac_delim --INSTALL_SCRIPT!$INSTALL_SCRIPT$ac_delim --INSTALL_DATA!$INSTALL_DATA$ac_delim --am__isrc!$am__isrc$ac_delim --CYGPATH_W!$CYGPATH_W$ac_delim --PACKAGE!$PACKAGE$ac_delim --VERSION!$VERSION$ac_delim --ACLOCAL!$ACLOCAL$ac_delim --AUTOCONF!$AUTOCONF$ac_delim --AUTOMAKE!$AUTOMAKE$ac_delim --AUTOHEADER!$AUTOHEADER$ac_delim --MAKEINFO!$MAKEINFO$ac_delim --install_sh!$install_sh$ac_delim --STRIP!$STRIP$ac_delim --INSTALL_STRIP_PROGRAM!$INSTALL_STRIP_PROGRAM$ac_delim --mkdir_p!$mkdir_p$ac_delim --AWK!$AWK$ac_delim --SET_MAKE!$SET_MAKE$ac_delim --am__leading_dot!$am__leading_dot$ac_delim --AMTAR!$AMTAR$ac_delim --am__tar!$am__tar$ac_delim --am__untar!$am__untar$ac_delim --LIBVA_MAJOR_VERSION!$LIBVA_MAJOR_VERSION$ac_delim --LIBVA_MINOR_VERSION!$LIBVA_MINOR_VERSION$ac_delim --LIBVA_MICRO_VERSION!$LIBVA_MICRO_VERSION$ac_delim --LIBVA_VERSION!$LIBVA_VERSION$ac_delim --LIBVA_LT_VERSION!$LIBVA_LT_VERSION$ac_delim --LIBVA_LT_LDFLAGS!$LIBVA_LT_LDFLAGS$ac_delim --BUILD_DUMMY_DRIVER_TRUE!$BUILD_DUMMY_DRIVER_TRUE$ac_delim --BUILD_DUMMY_DRIVER_FALSE!$BUILD_DUMMY_DRIVER_FALSE$ac_delim --LIBVA_DRIVERS_PATH!$LIBVA_DRIVERS_PATH$ac_delim --build!$build$ac_delim --build_cpu!$build_cpu$ac_delim --build_vendor!$build_vendor$ac_delim --build_os!$build_os$ac_delim --host!$host$ac_delim --host_cpu!$host_cpu$ac_delim --host_vendor!$host_vendor$ac_delim --host_os!$host_os$ac_delim --CC!$CC$ac_delim --CFLAGS!$CFLAGS$ac_delim --LDFLAGS!$LDFLAGS$ac_delim --CPPFLAGS!$CPPFLAGS$ac_delim --ac_ct_CC!$ac_ct_CC$ac_delim --EXEEXT!$EXEEXT$ac_delim --OBJEXT!$OBJEXT$ac_delim --DEPDIR!$DEPDIR$ac_delim --am__include!$am__include$ac_delim --am__quote!$am__quote$ac_delim --AMDEP_TRUE!$AMDEP_TRUE$ac_delim --AMDEP_FALSE!$AMDEP_FALSE$ac_delim --AMDEPBACKSLASH!$AMDEPBACKSLASH$ac_delim --CCDEPMODE!$CCDEPMODE$ac_delim --am__fastdepCC_TRUE!$am__fastdepCC_TRUE$ac_delim --am__fastdepCC_FALSE!$am__fastdepCC_FALSE$ac_delim --SED!$SED$ac_delim --GREP!$GREP$ac_delim --EGREP!$EGREP$ac_delim --LN_S!$LN_S$ac_delim --ECHO!$ECHO$ac_delim --_ACEOF -+# Whether we need a single "-rpath" flag with a separated argument. -+hardcode_libdir_separator=$lt_hardcode_libdir_separator - -- if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 97; then -- break -- elif $ac_last_try; then -- { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 --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 -+# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes -+# DIR into the resulting binary. -+hardcode_direct=$hardcode_direct - --ac_eof=`sed -n '/^CEOF[0-9]*$/s/CEOF/0/p' conf$$subs.sed` --if test -n "$ac_eof"; then -- ac_eof=`echo "$ac_eof" | sort -nru | sed 1q` -- ac_eof=`expr $ac_eof + 1` --fi -+# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes -+# DIR into the resulting binary and the resulting library dependency is -+# "absolute",i.e impossible to change by setting \${shlibpath_var} if the -+# library is relocated. -+hardcode_direct_absolute=$hardcode_direct_absolute - --cat >>$CONFIG_STATUS <<_ACEOF --cat >"\$tmp/subs-1.sed" <<\CEOF$ac_eof --/@[a-zA-Z_][a-zA-Z_0-9]*@/!b --_ACEOF --sed ' --s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g --s/^/s,@/; s/!/@,|#_!!_#|/ --:n --t n --s/'"$ac_delim"'$/,g/; t --s/$/\\/; p --N; s/^.*\n//; s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g; b n --' >>$CONFIG_STATUS >$CONFIG_STATUS <<_ACEOF --CEOF$ac_eof --_ACEOF -+# Set to "yes" if using the -LDIR flag during linking hardcodes DIR -+# into the resulting binary. -+hardcode_minus_L=$hardcode_minus_L - -+# Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR -+# into the resulting binary. -+hardcode_shlibpath_var=$hardcode_shlibpath_var - --ac_delim='%!_!# ' --for ac_last_try in false false false false false :; do -- cat >conf$$subs.sed <<_ACEOF --AR!$AR$ac_delim --RANLIB!$RANLIB$ac_delim --DSYMUTIL!$DSYMUTIL$ac_delim --NMEDIT!$NMEDIT$ac_delim --CPP!$CPP$ac_delim --CXX!$CXX$ac_delim --CXXFLAGS!$CXXFLAGS$ac_delim --ac_ct_CXX!$ac_ct_CXX$ac_delim --CXXDEPMODE!$CXXDEPMODE$ac_delim --am__fastdepCXX_TRUE!$am__fastdepCXX_TRUE$ac_delim --am__fastdepCXX_FALSE!$am__fastdepCXX_FALSE$ac_delim --CXXCPP!$CXXCPP$ac_delim --F77!$F77$ac_delim --FFLAGS!$FFLAGS$ac_delim --ac_ct_F77!$ac_ct_F77$ac_delim --LIBTOOL!$LIBTOOL$ac_delim --PKG_CONFIG!$PKG_CONFIG$ac_delim --X11_CFLAGS!$X11_CFLAGS$ac_delim --X11_LIBS!$X11_LIBS$ac_delim --XEXT_CFLAGS!$XEXT_CFLAGS$ac_delim --XEXT_LIBS!$XEXT_LIBS$ac_delim --XFIXES_CFLAGS!$XFIXES_CFLAGS$ac_delim --XFIXES_LIBS!$XFIXES_LIBS$ac_delim --DRM_CFLAGS!$DRM_CFLAGS$ac_delim --DRM_LIBS!$DRM_LIBS$ac_delim --GEN4ASM_CFLAGS!$GEN4ASM_CFLAGS$ac_delim --GEN4ASM_LIBS!$GEN4ASM_LIBS$ac_delim --HAVE_GEN4ASM_TRUE!$HAVE_GEN4ASM_TRUE$ac_delim --HAVE_GEN4ASM_FALSE!$HAVE_GEN4ASM_FALSE$ac_delim --BUILD_I965_DRIVER_TRUE!$BUILD_I965_DRIVER_TRUE$ac_delim --BUILD_I965_DRIVER_FALSE!$BUILD_I965_DRIVER_FALSE$ac_delim --LIBVA_CFLAGS!$LIBVA_CFLAGS$ac_delim --LIBVA_LIBS!$LIBVA_LIBS$ac_delim --pkgconfigdir!$pkgconfigdir$ac_delim --libvacorelib!$libvacorelib$ac_delim --libvabackendlib!$libvabackendlib$ac_delim --LIBVA_DISPLAY!$LIBVA_DISPLAY$ac_delim --LIBOBJS!$LIBOBJS$ac_delim --LTLIBOBJS!$LTLIBOBJS$ac_delim --_ACEOF -+# Set to "yes" if building a shared library automatically hardcodes DIR -+# into the library and all subsequent libraries and executables linked -+# against it. -+hardcode_automatic=$hardcode_automatic - -- if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 39; then -- break -- elif $ac_last_try; then -- { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 --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 -+# Set to yes if linker adds runtime paths of dependent libraries -+# to runtime path list. -+inherit_rpath=$inherit_rpath - --ac_eof=`sed -n '/^CEOF[0-9]*$/s/CEOF/0/p' conf$$subs.sed` --if test -n "$ac_eof"; then -- ac_eof=`echo "$ac_eof" | sort -nru | sed 1q` -- ac_eof=`expr $ac_eof + 1` --fi -- --cat >>$CONFIG_STATUS <<_ACEOF --cat >"\$tmp/subs-2.sed" <<\CEOF$ac_eof --/@[a-zA-Z_][a-zA-Z_0-9]*@/!b end --_ACEOF --sed ' --s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g --s/^/s,@/; s/!/@,|#_!!_#|/ --:n --t n --s/'"$ac_delim"'$/,g/; t --s/$/\\/; p --N; s/^.*\n//; s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g; b n --' >>$CONFIG_STATUS >$CONFIG_STATUS <<_ACEOF --:end --s/|#_!!_#|//g --CEOF$ac_eof --_ACEOF -+# Whether libtool must link a program against all its dependency libraries. -+link_all_deplibs=$link_all_deplibs - -+# Fix the shell variable \$srcfile for the compiler. -+fix_srcfile_path=$lt_fix_srcfile_path - --# 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 -+# Set to "yes" if exported symbols are required. -+always_export_symbols=$always_export_symbols - --cat >>$CONFIG_STATUS <<\_ACEOF --fi # test -n "$CONFIG_FILES" -+# The commands to list exported symbols. -+export_symbols_cmds=$lt_export_symbols_cmds - -+# Symbols that should not be listed in the preloaded symbols. -+exclude_expsyms=$lt_exclude_expsyms - --for ac_tag in :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS --do -- case $ac_tag in -- :[FHLC]) ac_mode=$ac_tag; continue;; -- esac -- case $ac_mode$ac_tag in -- :[FHL]*:*);; -- :L* | :C*:*) { { echo "$as_me:$LINENO: error: Invalid tag $ac_tag." >&5 --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 -+# Symbols that must always be exported. -+include_expsyms=$lt_include_expsyms - -- 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 || -- { { echo "$as_me:$LINENO: error: cannot find input file: $ac_f" >&5 --echo "$as_me: error: cannot find input file: $ac_f" >&2;} -- { (exit 1); exit 1; }; };; -- esac -- ac_file_inputs="$ac_file_inputs $ac_f" -- done -+# Commands necessary for linking programs (against libraries) with templates. -+prelink_cmds=$lt_prelink_cmds - -- # 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 "`IFS=: -- echo $* | sed 's|^[^:]*/||;s|:[^:]*/|, |g'`" by configure." -- if test x"$ac_file" != x-; then -- configure_input="$ac_file. $configure_input" -- { echo "$as_me:$LINENO: creating $ac_file" >&5 --echo "$as_me: creating $ac_file" >&6;} -- fi -+# Specify filename containing input files. -+file_list_spec=$lt_file_list_spec - -- case $ac_tag in -- *:-:* | *:-) cat >"$tmp/stdin";; -- esac -- ;; -- esac -+# How to hardcode a shared library path into an executable. -+hardcode_action=$hardcode_action - -- 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'` -- { as_dir="$ac_dir" -- case $as_dir in #( -- -*) as_dir=./$as_dir;; -+# ### END LIBTOOL CONFIG -+ -+_LT_EOF -+ -+ case $host_os in -+ aix3*) -+ cat <<\_LT_EOF >> "$cfgfile" -+# AIX sometimes has problems with the GCC collect2 program. For some -+# reason, if we set the COLLECT_NAMES environment variable, the problems -+# vanish in a puff of smoke. -+if test "X${COLLECT_NAMES+set}" != Xset; then -+ COLLECT_NAMES= -+ export COLLECT_NAMES -+fi -+_LT_EOF -+ ;; - esac -- test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || { -- as_dirs= -- while :; do -- case $as_dir in #( -- *\'*) as_qdir=`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'` -- test -d "$as_dir" && break -- done -- test -z "$as_dirs" || eval "mkdir $as_dirs" -- } || test -d "$as_dir" || { { echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5 --echo "$as_me: error: cannot create directory $as_dir" >&2;} -- { (exit 1); exit 1; }; }; } -- ac_builddir=. - --case "$ac_dir" in --.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; --*) -- ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` -- # A ".." for each directory in $ac_dir_suffix. -- ac_top_builddir_sub=`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 -- .) # We are building in place. -- ac_srcdir=. -- 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 -- 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 -+ltmain="$ac_aux_dir/ltmain.sh" - - -- case $ac_mode in -- :F) -- # -- # CONFIG_FILE -- # -+ # We use sed instead of cat because bash on DJGPP gets confused if -+ # if finds mixed CR/LF and LF-only lines. Since sed operates in -+ # text mode, it properly converts lines to CR/LF. This bash problem -+ # is reportedly fixed, but why not run on old versions too? -+ sed '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \ -+ || (rm -f "$cfgfile"; exit 1) - -- case $INSTALL in -- [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; -- *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; -- esac -- ac_MKDIR_P=$MKDIR_P -- case $MKDIR_P in -- [\\/$]* | ?:[\\/]* ) ;; -- */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;; -+ case $xsi_shell in -+ yes) -+ cat << \_LT_EOF >> "$cfgfile" -+ -+# func_dirname file append nondir_replacement -+# Compute the dirname of FILE. If nonempty, add APPEND to the result, -+# otherwise set result to NONDIR_REPLACEMENT. -+func_dirname () -+{ -+ case ${1} in -+ */*) func_dirname_result="${1%/*}${2}" ;; -+ * ) func_dirname_result="${3}" ;; - esac --_ACEOF -+} - --cat >>$CONFIG_STATUS <<\_ACEOF --# 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= -+# func_basename file -+func_basename () -+{ -+ func_basename_result="${1##*/}" -+} - --case `sed -n '/datarootdir/ { -- p -- q -+# func_dirname_and_basename file append nondir_replacement -+# perform func_basename and func_dirname in a single function -+# call: -+# dirname: Compute the dirname of FILE. If nonempty, -+# add APPEND to the result, otherwise set result -+# to NONDIR_REPLACEMENT. -+# value returned in "$func_dirname_result" -+# basename: Compute filename of FILE. -+# value retuned in "$func_basename_result" -+# Implementation must be kept synchronized with func_dirname -+# and func_basename. For efficiency, we do not delegate to -+# those functions but instead duplicate the functionality here. -+func_dirname_and_basename () -+{ -+ case ${1} in -+ */*) func_dirname_result="${1%/*}${2}" ;; -+ * ) func_dirname_result="${3}" ;; -+ esac -+ func_basename_result="${1##*/}" - } --/@datadir@/p --/@docdir@/p --/@infodir@/p --/@localedir@/p --/@mandir@/p --' $ac_file_inputs` in --*datarootdir*) ac_datarootdir_seen=yes;; --*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) -- { echo "$as_me:$LINENO: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 --echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} --_ACEOF --cat >>$CONFIG_STATUS <<_ACEOF -- 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 - --# 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 -- sed "$ac_vpsub --$extrasub --_ACEOF --cat >>$CONFIG_STATUS <<\_ACEOF --:t --/@[a-zA-Z_][a-zA-Z_0-9]*@/!b --s&@configure_input@&$configure_input&;t t --s&@top_builddir@&$ac_top_builddir_sub&;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 --s&@MKDIR_P@&$ac_MKDIR_P&;t t --$ac_datarootdir_hack --" $ac_file_inputs | sed -f "$tmp/subs-1.sed" | sed -f "$tmp/subs-2.sed" >$tmp/out -+# func_stripname prefix suffix name -+# strip PREFIX and SUFFIX off of NAME. -+# PREFIX and SUFFIX must not contain globbing or regex special -+# characters, hashes, percent signs, but SUFFIX may contain a leading -+# dot (in which case that matches only a dot). -+func_stripname () -+{ -+ # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are -+ # positional parameters, so assign one to ordinary parameter first. -+ func_stripname_result=${3} -+ func_stripname_result=${func_stripname_result#"${1}"} -+ func_stripname_result=${func_stripname_result%"${2}"} -+} - --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"; } && -- { 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 --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;} -+# func_opt_split -+func_opt_split () -+{ -+ func_opt_split_opt=${1%%=*} -+ func_opt_split_arg=${1#*=} -+} - -- rm -f "$tmp/stdin" -- case $ac_file in -- -) cat "$tmp/out"; rm -f "$tmp/out";; -- *) rm -f "$ac_file"; mv "$tmp/out" $ac_file;; -+# func_lo2o object -+func_lo2o () -+{ -+ case ${1} in -+ *.lo) func_lo2o_result=${1%.lo}.${objext} ;; -+ *) func_lo2o_result=${1} ;; - esac -- ;; -- :H) -- # -- # CONFIG_HEADER -- # --_ACEOF -+} - --# Transform confdefs.h into a sed script `conftest.defines', that --# substitutes the proper values into config.h.in to produce config.h. --rm -f conftest.defines conftest.tail --# First, append a space to every undef/define line, to ease matching. --echo 's/$/ /' >conftest.defines --# Then, protect against being on the right side of a sed subst, or in --# an unquoted here document, in config.status. If some macros were --# called several times there might be several #defines for the same --# symbol, which is useless. But do not sort them, since the last --# AC_DEFINE must be honored. --ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* --# These sed commands are passed to sed as "A NAME B PARAMS C VALUE D", where --# NAME is the cpp macro being defined, VALUE is the value it is being given. --# PARAMS is the parameter list in the macro definition--in most cases, it's --# just an empty string. --ac_dA='s,^\\([ #]*\\)[^ ]*\\([ ]*' --ac_dB='\\)[ (].*,\\1define\\2' --ac_dC=' ' --ac_dD=' ,' -+# func_xform libobj-or-source -+func_xform () -+{ -+ func_xform_result=${1%.*}.lo -+} - --uniq confdefs.h | -- sed -n ' -- t rset -- :rset -- s/^[ ]*#[ ]*define[ ][ ]*// -- t ok -- d -- :ok -- s/[\\&,]/\\&/g -- s/^\('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/ '"$ac_dA"'\1'"$ac_dB"'\2'"${ac_dC}"'\3'"$ac_dD"'/p -- s/^\('"$ac_word_re"'\)[ ]*\(.*\)/'"$ac_dA"'\1'"$ac_dB$ac_dC"'\2'"$ac_dD"'/p -- ' >>conftest.defines -- --# Remove the space that was appended to ease matching. --# Then 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. --# (The regexp can be short, since the line contains either #define or #undef.) --echo 's/ $// --s,^[ #]*u.*,/* & */,' >>conftest.defines -- --# Break up conftest.defines: --ac_max_sed_lines=50 -- --# First sed command is: sed -f defines.sed $ac_file_inputs >"$tmp/out1" --# Second one is: sed -f defines.sed "$tmp/out1" >"$tmp/out2" --# Third one will be: sed -f defines.sed "$tmp/out2" >"$tmp/out1" --# et cetera. --ac_in='$ac_file_inputs' --ac_out='"$tmp/out1"' --ac_nxt='"$tmp/out2"' -+# func_arith arithmetic-term... -+func_arith () -+{ -+ func_arith_result=$(( $* )) -+} - --while : --do -- # Write a here document: -- cat >>$CONFIG_STATUS <<_ACEOF -- # First, check the format of the line: -- cat >"\$tmp/defines.sed" <<\\CEOF --/^[ ]*#[ ]*undef[ ][ ]*$ac_word_re[ ]*\$/b def --/^[ ]*#[ ]*define[ ][ ]*$ac_word_re[( ]/b def --b --:def --_ACEOF -- sed ${ac_max_sed_lines}q conftest.defines >>$CONFIG_STATUS -- echo 'CEOF -- sed -f "$tmp/defines.sed"' "$ac_in >$ac_out" >>$CONFIG_STATUS -- ac_in=$ac_out; ac_out=$ac_nxt; ac_nxt=$ac_in -- sed 1,${ac_max_sed_lines}d conftest.defines >conftest.tail -- grep . conftest.tail >/dev/null || break -- rm -f conftest.defines -- mv conftest.tail conftest.defines --done --rm -f conftest.defines conftest.tail -+# func_len string -+# STRING may not start with a hyphen. -+func_len () -+{ -+ func_len_result=${#1} -+} - --echo "ac_result=$ac_in" >>$CONFIG_STATUS --cat >>$CONFIG_STATUS <<\_ACEOF -- if test x"$ac_file" != x-; then -- echo "/* $configure_input */" >"$tmp/config.h" -- cat "$ac_result" >>"$tmp/config.h" -- 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;} -- else -- rm -f $ac_file -- mv "$tmp/config.h" $ac_file -- fi -+_LT_EOF -+ ;; -+ *) # Bourne compatible functions. -+ cat << \_LT_EOF >> "$cfgfile" -+ -+# func_dirname file append nondir_replacement -+# Compute the dirname of FILE. If nonempty, add APPEND to the result, -+# otherwise set result to NONDIR_REPLACEMENT. -+func_dirname () -+{ -+ # Extract subdirectory from the argument. -+ func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"` -+ if test "X$func_dirname_result" = "X${1}"; then -+ func_dirname_result="${3}" - else -- echo "/* $configure_input */" -- cat "$ac_result" -+ func_dirname_result="$func_dirname_result${2}" - fi -- rm -f "$tmp/out12" --# Compute $ac_file's index in $config_headers. --_am_arg=$ac_file --_am_stamp_count=1 --for _am_header in $config_headers :; do -- case $_am_header in -- $_am_arg | $_am_arg:* ) -- break ;; -- * ) -- _am_stamp_count=`expr $_am_stamp_count + 1` ;; -- esac --done --echo "timestamp for $_am_arg" >`$as_dirname -- "$_am_arg" || --$as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ -- X"$_am_arg" : 'X\(//\)[^/]' \| \ -- X"$_am_arg" : 'X\(//\)$' \| \ -- X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null || --echo X"$_am_arg" | -- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ -- s//\1/ -- q -- } -- /^X\(\/\/\)[^/].*/{ -- s//\1/ -- q -- } -- /^X\(\/\/\)$/{ -- s//\1/ -- q -- } -- /^X\(\/\).*/{ -- s//\1/ -- q -- } -- s/.*/./; q'`/stamp-h$_am_stamp_count -- ;; -+} - -- :C) { echo "$as_me:$LINENO: executing $ac_file commands" >&5 --echo "$as_me: executing $ac_file commands" >&6;} -- ;; -+# func_basename file -+func_basename () -+{ -+ func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"` -+} -+ -+ -+# func_stripname prefix suffix name -+# strip PREFIX and SUFFIX off of NAME. -+# PREFIX and SUFFIX must not contain globbing or regex special -+# characters, hashes, percent signs, but SUFFIX may contain a leading -+# dot (in which case that matches only a dot). -+# func_strip_suffix prefix name -+func_stripname () -+{ -+ case ${2} in -+ .*) func_stripname_result=`$ECHO "X${3}" \ -+ | $Xsed -e "s%^${1}%%" -e "s%\\\\${2}\$%%"`;; -+ *) func_stripname_result=`$ECHO "X${3}" \ -+ | $Xsed -e "s%^${1}%%" -e "s%${2}\$%%"`;; - esac -+} - -+# sed scripts: -+my_sed_long_opt='1s/^\(-[^=]*\)=.*/\1/;q' -+my_sed_long_arg='1s/^-[^=]*=//' - -- 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. -- # We used to match only the files named `Makefile.in', but -- # some people rename them; so instead we look at the file content. -- # Grep'ing the first line is not enough: some people post-process -- # each Makefile.in and add a new line on top of each file to say so. -- # Grep'ing the whole file is not good either: AIX grep has a line -- # limit of 2048, but all sed's we know have understand at least 4000. -- if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then -- 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'` -- else -- continue -- fi -- # Extract the definition of DEPDIR, am__include, and am__quote -- # from the Makefile without running `make'. -- DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` -- test -z "$DEPDIR" && continue -- am__include=`sed -n 's/^am__include = //p' < "$mf"` -- test -z "am__include" && continue -- am__quote=`sed -n 's/^am__quote = //p' < "$mf"` -- # When using ansi2knr, U may be empty or an underscore; expand it -- U=`sed -n 's/^U = //p' < "$mf"` -- # Find all dependency output files, they are included files with -- # $(DEPDIR) in their names. We invoke sed twice because it is the -- # simplest approach to changing $(DEPDIR) to its actual value in the -- # expansion. -- for file in `sed -n " -- s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ -- sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do -- # Make sure the directory exists. -- test -f "$dirpart/$file" && continue -- 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'` -- { as_dir=$dirpart/$fdir -- case $as_dir in #( -- -*) as_dir=./$as_dir;; -+# func_opt_split -+func_opt_split () -+{ -+ func_opt_split_opt=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_opt"` -+ func_opt_split_arg=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_arg"` -+} -+ -+# func_lo2o object -+func_lo2o () -+{ -+ func_lo2o_result=`$ECHO "X${1}" | $Xsed -e "$lo2o"` -+} -+ -+# func_xform libobj-or-source -+func_xform () -+{ -+ func_xform_result=`$ECHO "X${1}" | $Xsed -e 's/\.[^.]*$/.lo/'` -+} -+ -+# func_arith arithmetic-term... -+func_arith () -+{ -+ func_arith_result=`expr "$@"` -+} -+ -+# func_len string -+# STRING may not start with a hyphen. -+func_len () -+{ -+ func_len_result=`expr "$1" : ".*" 2>/dev/null || echo $max_cmd_len` -+} -+ -+_LT_EOF -+esac -+ -+case $lt_shell_append in -+ yes) -+ cat << \_LT_EOF >> "$cfgfile" -+ -+# func_append var value -+# Append VALUE to the end of shell variable VAR. -+func_append () -+{ -+ eval "$1+=\$2" -+} -+_LT_EOF -+ ;; -+ *) -+ cat << \_LT_EOF >> "$cfgfile" -+ -+# func_append var value -+# Append VALUE to the end of shell variable VAR. -+func_append () -+{ -+ eval "$1=\$$1\$2" -+} -+ -+_LT_EOF -+ ;; - esac -- test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || { -- as_dirs= -- while :; do -- case $as_dir in #( -- *\'*) as_qdir=`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'` -- test -d "$as_dir" && break -- done -- test -z "$as_dirs" || eval "mkdir $as_dirs" -- } || test -d "$as_dir" || { { echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5 --echo "$as_me: error: cannot create directory $as_dir" >&2;} -- { (exit 1); exit 1; }; }; } -- # echo "creating $dirpart/$file" -- echo '# dummy' > "$dirpart/$file" -- done --done -+ -+ -+ sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \ -+ || (rm -f "$cfgfile"; exit 1) -+ -+ mv -f "$cfgfile" "$ofile" || -+ (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") -+ chmod +x "$ofile" -+ - ;; - - esac -@@ -23302,6 +15996,11 @@ - 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. -@@ -23323,5 +16022,9 @@ - # 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 - - -diff -Naur libva-0.31.0/configure.ac libva-0.31.0.patch/configure.ac ---- libva-0.31.0/configure.ac 2009-09-10 17:18:49.000000000 +0200 -+++ libva-0.31.0.patch/configure.ac 2009-12-15 13:50:31.368322557 +0100 -@@ -28,6 +28,9 @@ - m4_define([libva_version], - [libva_major_version.libva_minor_version.libva_micro_version]) - -+# increase this number for each API change -+m4_define([libva_sds_version], [4]) -+ - # if the library source code has changed, increment revision - m4_define([libva_lt_revision], [0]) - # if any interface was added/removed/changed, then inc current, reset revision -@@ -42,6 +45,7 @@ - AM_INIT_AUTOMAKE([dist-bzip2]) - - AM_CONFIG_HEADER([config.h]) -+AC_CONFIG_MACRO_DIR([m4]) - - LIBVA_MAJOR_VERSION=libva_major_version - LIBVA_MINOR_VERSION=libva_minor_version -@@ -52,14 +56,22 @@ - AC_SUBST(LIBVA_MICRO_VERSION) - AC_SUBST(LIBVA_VERSION) - -+LIBVA_SDS_VERSION=libva_sds_version -+AC_SUBST(LIBVA_SDS_VERSION) -+ - LIBVA_LT_CURRENT=libva_lt_current - LIBVA_LT_REV=libva_lt_revision - LIBVA_LT_AGE=libva_lt_age - LIBVA_LT_VERSION="$LIBVA_LT_CURRENT:$LIBVA_LT_REV:$LIBVA_LT_AGE" --LIBVA_LT_LDFLAGS="-version-info $LIBVA_LT_VERSION" -+LIBVA_LT_LDFLAGS="-version-info $LIBVA_LT_VERSION -release $LIBVA_VERSION.$LIBVA_SDS_VERSION" - AC_SUBST(LIBVA_LT_VERSION) - AC_SUBST(LIBVA_LT_LDFLAGS) - -+AC_ARG_ENABLE(glx, -+ [AC_HELP_STRING([--enable-glx], -+ [build with OpenGL for X11 support])], -+ [], [enable_glx=yes]) -+ - AC_ARG_ENABLE(dummy-driver, - [AC_HELP_STRING([--enable-dummy-driver], - [build dummy video driver])], -@@ -73,7 +85,7 @@ - - AC_ARG_WITH(drivers-path, - [AC_HELP_STRING([--with-drivers-path=[[path]]], [drivers path])],, -- [with_drivers_path="$libdir/dri"]) -+ [with_drivers_path="$libdir/va/drivers"]) - - LIBVA_DRIVERS_PATH="$with_drivers_path" - AC_SUBST(LIBVA_DRIVERS_PATH) -@@ -100,6 +112,47 @@ - fi - AM_CONDITIONAL(BUILD_I965_DRIVER, test x$enable_i965_driver = xyes) - -+dnl Check for __attribute__((visibility())) -+AC_CACHE_CHECK([whether __attribute__((visibility())) is supported], -+ libva_cv_visibility_attribute, -+ [cat > conftest.c </dev/null 2>&1; then -+ if grep '\.hidden.*foo' conftest.s >/dev/null; then -+ if grep '\.protected.*bar' conftest.s >/dev/null; then -+ libva_cv_visibility_attribute=yes -+ fi -+ fi -+ fi -+ rm -f conftest.[cs] -+]) -+ATTRIBUTE_HIDDEN="" -+if test $libva_cv_visibility_attribute = yes; then -+ ATTRIBUTE_HIDDEN="__attribute__((visibility(\"hidden\")))" -+fi -+AC_DEFINE_UNQUOTED([ATTRIBUTE_HIDDEN], [$ATTRIBUTE_HIDDEN], -+ [Defined to __attribute__((visibility("hidden"))) when available]) -+ -+# Check for OpenGL (X11) -+USE_GLX="no" -+GL_DEPS_CFLAGS="" -+GL_DEPS_LIBS="" -+ -+if test x$enable_glx = xyes; then -+ AC_CHECK_HEADERS([GL/gl.h]) -+ AC_CHECK_HEADERS([GL/glx.h]) -+ AC_CHECK_LIB(GL, glXCreateContext, [ -+ USE_GLX="yes" -+ GL_DEPS_LIBS="-lX11 -lGL" -+ ]) -+fi -+AC_SUBST(GL_DEPS_CFLAGS) -+AC_SUBST(GL_DEPS_LIBS) -+AM_CONDITIONAL(USE_GLX, test "$USE_GLX" = "yes") -+ - # We only need the headers, we don't link against the DRM libraries - LIBVA_CFLAGS="$DRM_CFLAGS" - AC_SUBST(LIBVA_CFLAGS) -@@ -119,6 +172,7 @@ - src/Makefile - src/va_version.h - src/x11/Makefile -+ src/glx/Makefile - dummy_drv_video/Makefile - i965_drv_video/Makefile - i965_drv_video/shaders/Makefile -@@ -128,5 +182,6 @@ - test/Makefile - libva.pc - libva-x11.pc -+ libva-glx.pc - ]) - -diff -Naur libva-0.31.0/dummy_drv_video/Makefile.in libva-0.31.0.patch/dummy_drv_video/Makefile.in ---- libva-0.31.0/dummy_drv_video/Makefile.in 2009-09-10 17:18:49.000000000 +0200 -+++ libva-0.31.0.patch/dummy_drv_video/Makefile.in 2009-12-15 13:51:55.591446661 +0100 -@@ -1,8 +1,9 @@ --# Makefile.in generated by automake 1.10.1 from Makefile.am. -+# Makefile.in generated by automake 1.11 from Makefile.am. - # @configure_input@ - - # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, --# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. -+# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -+# Inc. - # This Makefile.in is free software; the Free Software Foundation - # gives unlimited permission to copy and/or distribute it, - # with or without modifications, as long as this notice is preserved. -@@ -39,8 +40,9 @@ - - VPATH = @srcdir@ - pkgdatadir = $(datadir)/@PACKAGE@ --pkglibdir = $(libdir)/@PACKAGE@ - pkgincludedir = $(includedir)/@PACKAGE@ -+pkglibdir = $(libdir)/@PACKAGE@ -+pkglibexecdir = $(libexecdir)/@PACKAGE@ - am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd - install_sh_DATA = $(install_sh) -c -m 644 - install_sh_PROGRAM = $(install_sh) -c -@@ -59,20 +61,38 @@ - DIST_COMMON = $(noinst_HEADERS) $(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)/m4/libtool.m4 \ -+ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ -+ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ -+ $(top_srcdir)/configure.ac - am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) - mkinstalldirs = $(install_sh) -d - CONFIG_HEADER = $(top_builddir)/config.h - CONFIG_CLEAN_FILES = -+CONFIG_CLEAN_VPATH_FILES = - am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; - am__vpath_adj = case $$p in \ - $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ - *) f=$$p;; \ - esac; --am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; -+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; -+am__install_max = 40 -+am__nobase_strip_setup = \ -+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` -+am__nobase_strip = \ -+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" -+am__nobase_list = $(am__nobase_strip_setup); \ -+ for p in $$list; do echo "$$p $$p"; done | \ -+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ -+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ -+ if (++n[$$2] == $(am__install_max)) \ -+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ -+ END { for (dir in files) print dir, files[dir] }' -+am__base_list = \ -+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ -+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' - am__installdirs = "$(DESTDIR)$(dummy_drv_video_ladir)" --dummy_drv_video_laLTLIBRARIES_INSTALL = $(INSTALL) - LTLIBRARIES = $(dummy_drv_video_la_LTLIBRARIES) - am_dummy_drv_video_la_OBJECTS = dummy_drv_video.lo object_heap.lo - dummy_drv_video_la_OBJECTS = $(am_dummy_drv_video_la_OBJECTS) -@@ -82,6 +102,7 @@ - DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) - depcomp = $(SHELL) $(top_srcdir)/depcomp - am__depfiles_maybe = depfiles -+am__mv = mv -f - COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ - $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) - LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ -@@ -109,38 +130,35 @@ - CFLAGS = @CFLAGS@ - CPP = @CPP@ - CPPFLAGS = @CPPFLAGS@ --CXX = @CXX@ --CXXCPP = @CXXCPP@ --CXXDEPMODE = @CXXDEPMODE@ --CXXFLAGS = @CXXFLAGS@ - CYGPATH_W = @CYGPATH_W@ - DEFS = @DEFS@ - DEPDIR = @DEPDIR@ - DRM_CFLAGS = @DRM_CFLAGS@ - DRM_LIBS = @DRM_LIBS@ - DSYMUTIL = @DSYMUTIL@ --ECHO = @ECHO@ -+DUMPBIN = @DUMPBIN@ - ECHO_C = @ECHO_C@ - ECHO_N = @ECHO_N@ - ECHO_T = @ECHO_T@ - EGREP = @EGREP@ - EXEEXT = @EXEEXT@ --F77 = @F77@ --FFLAGS = @FFLAGS@ -+FGREP = @FGREP@ - GEN4ASM_CFLAGS = @GEN4ASM_CFLAGS@ - GEN4ASM_LIBS = @GEN4ASM_LIBS@ -+GL_DEPS_CFLAGS = @GL_DEPS_CFLAGS@ -+GL_DEPS_LIBS = @GL_DEPS_LIBS@ - GREP = @GREP@ - INSTALL = @INSTALL@ - INSTALL_DATA = @INSTALL_DATA@ - INSTALL_PROGRAM = @INSTALL_PROGRAM@ - INSTALL_SCRIPT = @INSTALL_SCRIPT@ - INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -+LD = @LD@ - LDFLAGS = @LDFLAGS@ - LIBOBJS = @LIBOBJS@ - LIBS = @LIBS@ - LIBTOOL = @LIBTOOL@ - LIBVA_CFLAGS = @LIBVA_CFLAGS@ --LIBVA_DISPLAY = @LIBVA_DISPLAY@ - LIBVA_DRIVERS_PATH = @LIBVA_DRIVERS_PATH@ - LIBVA_LIBS = @LIBVA_LIBS@ - LIBVA_LT_LDFLAGS = @LIBVA_LT_LDFLAGS@ -@@ -148,13 +166,19 @@ - LIBVA_MAJOR_VERSION = @LIBVA_MAJOR_VERSION@ - LIBVA_MICRO_VERSION = @LIBVA_MICRO_VERSION@ - LIBVA_MINOR_VERSION = @LIBVA_MINOR_VERSION@ -+LIBVA_SDS_VERSION = @LIBVA_SDS_VERSION@ - LIBVA_VERSION = @LIBVA_VERSION@ -+LIPO = @LIPO@ - LN_S = @LN_S@ - LTLIBOBJS = @LTLIBOBJS@ - MAKEINFO = @MAKEINFO@ - MKDIR_P = @MKDIR_P@ -+NM = @NM@ - NMEDIT = @NMEDIT@ -+OBJDUMP = @OBJDUMP@ - OBJEXT = @OBJEXT@ -+OTOOL = @OTOOL@ -+OTOOL64 = @OTOOL64@ - PACKAGE = @PACKAGE@ - PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ - PACKAGE_NAME = @PACKAGE_NAME@ -@@ -180,8 +204,7 @@ - abs_top_builddir = @abs_top_builddir@ - abs_top_srcdir = @abs_top_srcdir@ - ac_ct_CC = @ac_ct_CC@ --ac_ct_CXX = @ac_ct_CXX@ --ac_ct_F77 = @ac_ct_F77@ -+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ - am__include = @am__include@ - am__leading_dot = @am__leading_dot@ - am__quote = @am__quote@ -@@ -214,6 +237,7 @@ - libvacorelib = @libvacorelib@ - localedir = @localedir@ - localstatedir = @localstatedir@ -+lt_ECHO = @lt_ECHO@ - mandir = @mandir@ - mkdir_p = @mkdir_p@ - oldincludedir = @oldincludedir@ -@@ -227,6 +251,7 @@ - srcdir = @srcdir@ - sysconfdir = @sysconfdir@ - target_alias = @target_alias@ -+top_build_prefix = @top_build_prefix@ - top_builddir = @top_builddir@ - top_srcdir = @top_srcdir@ - dummy_drv_video_la_LTLIBRARIES = dummy_drv_video.la -@@ -245,14 +270,14 @@ - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ -- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ -- && exit 0; \ -+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ -+ && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ -- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu dummy_drv_video/Makefile'; \ -- cd $(top_srcdir) && \ -- $(AUTOMAKE) --gnu dummy_drv_video/Makefile -+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu dummy_drv_video/Makefile'; \ -+ $(am__cd) $(top_srcdir) && \ -+ $(AUTOMAKE) --gnu dummy_drv_video/Makefile - .PRECIOUS: Makefile - Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ -@@ -270,23 +295,28 @@ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - $(ACLOCAL_M4): $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -+$(am__aclocal_m4_deps): - install-dummy_drv_video_laLTLIBRARIES: $(dummy_drv_video_la_LTLIBRARIES) - @$(NORMAL_INSTALL) - test -z "$(dummy_drv_video_ladir)" || $(MKDIR_P) "$(DESTDIR)$(dummy_drv_video_ladir)" -- @list='$(dummy_drv_video_la_LTLIBRARIES)'; for p in $$list; do \ -+ @list='$(dummy_drv_video_la_LTLIBRARIES)'; test -n "$(dummy_drv_video_ladir)" || list=; \ -+ list2=; for p in $$list; do \ - if test -f $$p; then \ -- f=$(am__strip_dir) \ -- echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(dummy_drv_video_laLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) '$$p' '$(DESTDIR)$(dummy_drv_video_ladir)/$$f'"; \ -- $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(dummy_drv_video_laLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) "$$p" "$(DESTDIR)$(dummy_drv_video_ladir)/$$f"; \ -+ list2="$$list2 $$p"; \ - else :; fi; \ -- done -+ done; \ -+ test -z "$$list2" || { \ -+ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(dummy_drv_video_ladir)'"; \ -+ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(dummy_drv_video_ladir)"; \ -+ } - - uninstall-dummy_drv_video_laLTLIBRARIES: - @$(NORMAL_UNINSTALL) -- @list='$(dummy_drv_video_la_LTLIBRARIES)'; for p in $$list; do \ -- p=$(am__strip_dir) \ -- echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(dummy_drv_video_ladir)/$$p'"; \ -- $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(dummy_drv_video_ladir)/$$p"; \ -+ @list='$(dummy_drv_video_la_LTLIBRARIES)'; test -n "$(dummy_drv_video_ladir)" || list=; \ -+ for p in $$list; do \ -+ $(am__strip_dir) \ -+ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(dummy_drv_video_ladir)/$$f'"; \ -+ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(dummy_drv_video_ladir)/$$f"; \ - done - - clean-dummy_drv_video_laLTLIBRARIES: -@@ -311,21 +341,21 @@ - - .c.o: - @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< --@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po - @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ - @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ - @am__fastdepCC_FALSE@ $(COMPILE) -c $< - - .c.obj: - @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` --@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po - @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ - @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ - @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` - - .c.lo: - @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< --@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo - @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ - @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ - @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< -@@ -341,14 +371,14 @@ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ -- $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \ -+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique - tags: TAGS - - TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) -- tags=; \ -+ set x; \ - here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ -@@ -356,29 +386,34 @@ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ -- if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ -+ shift; \ -+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ -- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ -- $$tags $$unique; \ -+ if test $$# -gt 0; then \ -+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ -+ "$$@" $$unique; \ -+ else \ -+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ -+ $$unique; \ -+ fi; \ - fi - ctags: CTAGS - CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) -- tags=; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ -- test -z "$(CTAGS_ARGS)$$tags$$unique" \ -+ test -z "$(CTAGS_ARGS)$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ -- $$tags $$unique -+ $$unique - - GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ -- && cd $(top_srcdir) \ -- && gtags -i $(GTAGS_ARGS) $$here -+ && $(am__cd) $(top_srcdir) \ -+ && gtags -i $(GTAGS_ARGS) "$$here" - - distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -@@ -399,13 +434,17 @@ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ -+ if test -d "$(distdir)/$$file"; then \ -+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ -+ fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ -- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ -+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ -+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ -- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ -+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ -- test -f $(distdir)/$$file \ -- || cp -p $$d/$$file $(distdir)/$$file \ -+ test -f "$(distdir)/$$file" \ -+ || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done -@@ -436,6 +475,7 @@ - - distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - - maintainer-clean-generic: - @echo "This command is intended for maintainers to use" -@@ -457,6 +497,8 @@ - - html: html-am - -+html-am: -+ - info: info-am - - info-am: -@@ -465,18 +507,28 @@ - - install-dvi: install-dvi-am - -+install-dvi-am: -+ - install-exec-am: - - install-html: install-html-am - -+install-html-am: -+ - install-info: install-info-am - -+install-info-am: -+ - install-man: - - install-pdf: install-pdf-am - -+install-pdf-am: -+ - install-ps: install-ps-am - -+install-ps-am: -+ - installcheck-am: - - maintainer-clean: maintainer-clean-am -@@ -517,6 +569,7 @@ - pdf pdf-am ps ps-am tags uninstall uninstall-am \ - uninstall-dummy_drv_video_laLTLIBRARIES - -+ - # Tell versions [3.59,3.63) of GNU make to not export all variables. - # Otherwise a system limit (for SysV at least) may be exceeded. - .NOEXPORT: -diff -Naur libva-0.31.0/i965_drv_video/i965_drv_video.c libva-0.31.0.patch/i965_drv_video/i965_drv_video.c ---- libva-0.31.0/i965_drv_video/i965_drv_video.c 2009-11-20 17:12:42.000000000 +0100 -+++ libva-0.31.0.patch/i965_drv_video/i965_drv_video.c 2009-12-15 13:44:10.608321447 +0100 -@@ -54,6 +54,36 @@ - I965_SURFACETYPE_INDEXED - }; - -+/* List of supported image formats */ -+typedef struct { -+ unsigned int type; -+ VAImageFormat va_format; -+} i965_image_format_map_t; -+ -+static const i965_image_format_map_t -+i965_image_formats_map[I965_MAX_IMAGE_FORMATS + 1] = { -+ { I965_SURFACETYPE_YUV, -+ { VA_FOURCC('Y','V','1','2'), VA_LSB_FIRST, 12, } }, -+}; -+ -+static const i965_image_format_map_t * -+get_image_format(const VAImageFormat *va_format) -+{ -+ unsigned int i; -+ for (i = 0; i965_image_formats_map[i].type != 0; i++) { -+ const i965_image_format_map_t * const m = &i965_image_formats_map[i]; -+ if (m->va_format.fourcc == va_format->fourcc && -+ (m->type == I965_SURFACETYPE_RGBA ? -+ (m->va_format.byte_order == va_format->byte_order && -+ m->va_format.red_mask == va_format->red_mask && -+ m->va_format.green_mask == va_format->green_mask && -+ m->va_format.blue_mask == va_format->blue_mask && -+ m->va_format.alpha_mask == va_format->alpha_mask) : 1)) -+ return m; -+ } -+ return NULL; -+} -+ - /* List of supported subpicture formats */ - typedef struct { - unsigned int type; -@@ -70,6 +100,14 @@ - { I965_SURFACETYPE_INDEXED, I965_SURFACEFORMAT_A4P4_UNORM, - { VA_FOURCC('A','I','4','4'), VA_MSB_FIRST, 8, }, - 0 }, -+ { I965_SURFACETYPE_RGBA, I965_SURFACEFORMAT_B8G8R8A8_UNORM, -+ { VA_FOURCC('B','G','R','A'), VA_LSB_FIRST, 32, -+ 32, 0x00ff0000, 0x0000ff00, 0x000000ff, 0xff000000 }, -+ 0 }, -+ { I965_SURFACETYPE_RGBA, I965_SURFACEFORMAT_R8G8B8A8_UNORM, -+ { VA_FOURCC('R','G','B','A'), VA_LSB_FIRST, 32, -+ 32, 0x000000ff, 0x0000ff00, 0x00ff0000, 0xff000000 }, -+ 0 }, - }; - - static const i965_subpic_format_map_t * -@@ -390,25 +428,17 @@ - VAImageFormat *format_list, /* out */ - int *num_formats) /* out */ - { -- if (num_formats) -- *num_formats = 0; -+ int n; - -- return VA_STATUS_SUCCESS; --} -+ for (n = 0; i965_image_formats_map[n].va_format.fourcc != 0; n++) { -+ const i965_image_format_map_t * const m = &i965_image_formats_map[n]; -+ if (format_list) -+ format_list[n] = m->va_format; -+ } -+ -+ if (num_formats) -+ *num_formats = n; - --VAStatus --i965_PutImage(VADriverContextP ctx, -- VASurfaceID surface, -- VAImageID image, -- int src_x, -- int src_y, -- unsigned int src_width, -- unsigned int src_height, -- int dest_x, -- int dest_y, -- unsigned int dest_width, -- unsigned int dest_height) --{ - return VA_STATUS_SUCCESS; - } - -@@ -467,6 +497,7 @@ - obj_subpic->format = m->format; - obj_subpic->width = obj_image->image.width; - obj_subpic->height = obj_image->image.height; -+ obj_subpic->pitch = obj_image->image.pitches[0]; - obj_subpic->bo = obj_image->bo; - return VA_STATUS_SUCCESS; - } -@@ -487,7 +518,8 @@ - VASubpictureID subpicture, - VAImageID image) - { -- return VA_STATUS_SUCCESS; -+ /* TODO */ -+ return VA_STATUS_ERROR_UNIMPLEMENTED; - } - - VAStatus -@@ -497,7 +529,8 @@ - unsigned int chromakey_max, - unsigned int chromakey_mask) - { -- return VA_STATUS_SUCCESS; -+ /* TODO */ -+ return VA_STATUS_ERROR_UNIMPLEMENTED; - } - - VAStatus -@@ -505,7 +538,8 @@ - VASubpictureID subpicture, - float global_alpha) - { -- return VA_STATUS_SUCCESS; -+ /* TODO */ -+ return VA_STATUS_ERROR_UNIMPLEMENTED; - } - - VAStatus -@@ -1094,7 +1128,7 @@ - int num_attributes) - { - /* TODO */ -- return VA_STATUS_ERROR_UNKNOWN; -+ return VA_STATUS_ERROR_UNIMPLEMENTED; - } - - /* -@@ -1109,7 +1143,7 @@ - int num_attributes) - { - /* TODO */ -- return VA_STATUS_ERROR_UNKNOWN; -+ return VA_STATUS_ERROR_UNIMPLEMENTED; - } - - VAStatus -@@ -1119,7 +1153,7 @@ - unsigned int *stride) /* out */ - { - /* TODO */ -- return VA_STATUS_ERROR_UNKNOWN; -+ return VA_STATUS_ERROR_UNIMPLEMENTED; - } - - static VAStatus -@@ -1218,6 +1252,25 @@ - image->component_order[1] = 'G'; - image->component_order[2] = 'B'; - break; -+ case VA_FOURCC('A','R','G','B'): -+ case VA_FOURCC('A','B','G','R'): -+ case VA_FOURCC('B','G','R','A'): -+ case VA_FOURCC('R','G','B','A'): -+ image->num_planes = 1; -+ image->pitches[0] = width * 4; -+ image->offsets[0] = 0; -+ image->data_size = image->offsets[0] + image->pitches[0] * height; -+ break; -+ case VA_FOURCC('Y','V','1','2'): -+ image->num_planes = 3; -+ image->pitches[0] = width; -+ image->offsets[0] = 0; -+ image->pitches[1] = width2; -+ image->offsets[1] = size; -+ image->pitches[2] = width2; -+ image->offsets[2] = size + size2; -+ image->data_size = size + 2 * size2; -+ break; - default: - goto error; - } -@@ -1252,7 +1305,8 @@ - VASurfaceID surface, - VAImage *image) /* out */ - { -- return VA_STATUS_SUCCESS; -+ /* TODO */ -+ return VA_STATUS_ERROR_OPERATION_FAILED; - } - - static void -@@ -1322,7 +1376,112 @@ - unsigned int height, - VAImageID image) - { -- return VA_STATUS_SUCCESS; -+ struct i965_driver_data *i965 = i965_driver_data(ctx); -+ -+ struct object_surface *obj_surface = SURFACE(surface); -+ if (!obj_surface) -+ return VA_STATUS_ERROR_INVALID_SURFACE; -+ -+ struct object_image *obj_image = IMAGE(image); -+ if (!obj_image) -+ return VA_STATUS_ERROR_INVALID_IMAGE; -+ -+ /* XXX: we only support full-size surface readback */ -+ if (x != 0 || -+ y != 0 || -+ width != obj_surface->width || -+ height != obj_surface->height) -+ return VA_STATUS_ERROR_INVALID_PARAMETER; -+ -+ /* XXX: we only support 1:1 image copies */ -+ if (width != obj_image->image.width || -+ height != obj_image->image.height) -+ return VA_STATUS_ERROR_INVALID_PARAMETER; -+ -+ VAStatus va_status; -+ void *image_data = NULL; -+ -+ va_status = i965_MapBuffer(ctx, obj_image->image.buf, &image_data); -+ if (va_status != VA_STATUS_SUCCESS) -+ return va_status; -+ -+ dri_bo_map(obj_surface->bo, 0); -+ -+ switch (obj_image->image.format.fourcc) { -+ case VA_FOURCC('Y','V','1','2'): /* YV12 is native format here */ -+ memcpy(image_data, obj_surface->bo->virtual, obj_surface->bo->size); -+ break; -+ default: -+ va_status = VA_STATUS_ERROR_OPERATION_FAILED; -+ break; -+ } -+ -+ dri_bo_unmap(obj_surface->bo); -+ -+ i965_UnmapBuffer(ctx, obj_image->image.buf); -+ return va_status; -+} -+ -+VAStatus -+i965_PutImage(VADriverContextP ctx, -+ VASurfaceID surface, -+ VAImageID image, -+ int src_x, -+ int src_y, -+ unsigned int src_width, -+ unsigned int src_height, -+ int dest_x, -+ int dest_y, -+ unsigned int dest_width, -+ unsigned int dest_height) -+{ -+ struct i965_driver_data *i965 = i965_driver_data(ctx); -+ -+ struct object_surface *obj_surface = SURFACE(surface); -+ if (!obj_surface) -+ return VA_STATUS_ERROR_INVALID_SURFACE; -+ -+ struct object_image *obj_image = IMAGE(image); -+ if (!obj_image) -+ return VA_STATUS_ERROR_INVALID_IMAGE; -+ -+ /* XXX: we don't support partial video surface updates */ -+ if (src_x != 0 || -+ src_y != 0 || -+ src_width != obj_image->image.width || -+ src_height != obj_image->image.height) -+ return VA_STATUS_ERROR_OPERATION_FAILED; -+ if (dest_x != 0 || -+ dest_y != 0 || -+ dest_width != obj_surface->width || -+ dest_height != obj_surface->height) -+ return VA_STATUS_ERROR_OPERATION_FAILED; -+ if (src_width != dest_width || -+ src_height != dest_height) -+ return VA_STATUS_ERROR_OPERATION_FAILED; -+ -+ VAStatus va_status; -+ void *image_data = NULL; -+ -+ va_status = i965_MapBuffer(ctx, obj_image->image.buf, &image_data); -+ if (va_status != VA_STATUS_SUCCESS) -+ return va_status; -+ -+ dri_bo_map(obj_surface->bo, 1); -+ -+ switch (obj_image->image.format.fourcc) { -+ case VA_FOURCC('Y','V','1','2'): /* YV12 is native format here */ -+ memcpy(obj_surface->bo->virtual, image_data, obj_surface->bo->size); -+ break; -+ default: -+ va_status = VA_STATUS_ERROR_OPERATION_FAILED; -+ break; -+ } -+ -+ dri_bo_unmap(obj_surface->bo); -+ -+ i965_UnmapBuffer(ctx, obj_image->image.buf); -+ return va_status; - } - - VAStatus -@@ -1348,13 +1507,23 @@ - union dri_buffer *buffer; - struct intel_region *dest_region; - struct object_surface *obj_surface; -- int ret; -+ int ret; - uint32_t name; -+ VARectangle src_rect, dst_rect; - Bool new_region = False; -+ - /* Currently don't support DRI1 */ - if (dri_state->driConnectedFlag != VA_DRI2) - return VA_STATUS_ERROR_UNKNOWN; - -+ /* XXX: we currently only support up to 64 cliprects */ -+ if (number_cliprects > MAX_CLIP_RECTS) -+ return VA_STATUS_ERROR_OPERATION_FAILED; -+ -+ obj_surface = SURFACE(surface); -+ if (!obj_surface) -+ return VA_STATUS_ERROR_INVALID_SURFACE; -+ - dri_drawable = dri_get_drawable(ctx, draw); - assert(dri_drawable); - -@@ -1393,17 +1562,24 @@ - assert(ret == 0); - } - -- i965_render_put_surface(ctx, surface, -- srcx, srcy, srcw, srch, -- destx, desty, destw, desth); -- obj_surface = SURFACE(surface); -- if(obj_surface->subpic != VA_INVALID_ID) { -- i965_render_put_subpic(ctx, surface, -- srcx, srcy, srcw, srch, -- destx, desty, destw, desth); -- } -- dri_swap_buffer(ctx, dri_drawable); -+ src_rect.x = srcx; -+ src_rect.y = srcy; -+ src_rect.width = srcw; -+ src_rect.height = srch; -+ -+ dst_rect.x = destx; -+ dst_rect.y = desty; -+ dst_rect.width = destw; -+ dst_rect.height = desth; -+ -+ i965_render_put_surface(ctx, surface, &src_rect, &dst_rect, -+ cliprects, number_cliprects); -+ -+ if (obj_surface->subpic != VA_INVALID_ID) -+ i965_render_put_subpic(ctx, surface, &src_rect, &dst_rect, -+ cliprects, number_cliprects); - -+ dri_swap_buffer(ctx, dri_drawable); - return VA_STATUS_SUCCESS; - } - -diff -Naur libva-0.31.0/i965_drv_video/i965_drv_video.c.orig libva-0.31.0.patch/i965_drv_video/i965_drv_video.c.orig -diff -Naur libva-0.31.0/i965_drv_video/i965_drv_video.h libva-0.31.0.patch/i965_drv_video/i965_drv_video.h ---- libva-0.31.0/i965_drv_video/i965_drv_video.h 2009-11-20 17:12:42.000000000 +0100 -+++ libva-0.31.0.patch/i965_drv_video/i965_drv_video.h 2009-12-15 13:43:55.262448685 +0100 -@@ -41,8 +41,8 @@ - #define I965_MAX_PROFILES 11 - #define I965_MAX_ENTRYPOINTS 5 - #define I965_MAX_CONFIG_ATTRIBUTES 10 --#define I965_MAX_IMAGE_FORMATS 10 --#define I965_MAX_SUBPIC_FORMATS 2 -+#define I965_MAX_IMAGE_FORMATS 1 -+#define I965_MAX_SUBPIC_FORMATS 4 - #define I965_MAX_DISPLAY_ATTRIBUTES 4 - #define I965_STR_VENDOR "i965 Driver 0.1" - -@@ -124,6 +124,7 @@ - unsigned int format; - int width; - int height; -+ int pitch; - dri_bo *bo; - }; - -diff -Naur libva-0.31.0/i965_drv_video/i965_render.c libva-0.31.0.patch/i965_drv_video/i965_render.c ---- libva-0.31.0/i965_drv_video/i965_render.c 2009-11-20 17:12:42.000000000 +0100 -+++ libva-0.31.0.patch/i965_drv_video/i965_render.c 2009-12-15 13:44:10.609321496 +0100 -@@ -586,7 +586,7 @@ - int index, - dri_bo *region, - unsigned long offset, -- int w, int h, int format) -+ int w, int h, int p, int format) - { - struct i965_driver_data *i965 = i965_driver_data(ctx); - struct i965_render_state *render_state = &i965->render_state; -@@ -620,7 +620,7 @@ - ss->ss2.mip_count = 0; - ss->ss2.render_target_rotation = 0; - -- ss->ss3.pitch = w - 1; -+ ss->ss3.pitch = p - 1; - - dri_bo_emit_reloc(ss_bo, - I915_GEM_DOMAIN_SAMPLER, 0, -@@ -678,8 +678,8 @@ - region = obj_surface->bo; - subpic_region = obj_image->bo; - /*subpicture surface*/ -- i965_subpic_render_src_surface_state(ctx, 1, subpic_region, 0, obj_subpic->width, obj_subpic->height, obj_subpic->format); -- i965_subpic_render_src_surface_state(ctx, 2, subpic_region, 0, obj_subpic->width, obj_subpic->height, obj_subpic->format); -+ i965_subpic_render_src_surface_state(ctx, 1, subpic_region, 0, obj_subpic->width, obj_subpic->height, obj_subpic->pitch, obj_subpic->format); -+ i965_subpic_render_src_surface_state(ctx, 2, subpic_region, 0, obj_subpic->width, obj_subpic->height, obj_subpic->pitch, obj_subpic->format); - } - - static void -@@ -787,13 +787,81 @@ - dri_bo_unmap(render_state->wm.binding_table); - } - --static void -+static unsigned int -+i965_render_do_upload_vertex(VADriverContextP ctx, -+ unsigned int width, -+ unsigned int height, -+ const VARectangle *src_rect, -+ const VARectangle *dst_rect, -+ const VARectangle *cliprects, -+ unsigned int num_cliprects) -+{ -+ struct i965_driver_data *i965 = i965_driver_data(ctx); -+ struct i965_render_state *render_state = &i965->render_state; -+ struct intel_region *dest_region = render_state->draw_region; -+ float *vb, tx1, tx2, ty1, ty2; -+ int x1, x2, y1, y2; -+ unsigned int i, n; -+ -+ if (!cliprects || num_cliprects == 0) { -+ cliprects = dst_rect; -+ num_cliprects = 1; -+ } -+ -+ dri_bo_map(render_state->vb.vertex_buffer, 1); -+ assert(render_state->vb.vertex_buffer->virtual); -+ vb = render_state->vb.vertex_buffer->virtual; -+ -+ for (n = 0, i = 0; i < num_cliprects; i++) { -+ x1 = dest_region->x + cliprects[i].x; -+ y1 = dest_region->y + cliprects[i].y; -+ x2 = x1 + cliprects[i].width; -+ y2 = y1 + cliprects[i].height; -+ x1 = MAX(x1, dst_rect->x); -+ y1 = MAX(y1, dst_rect->y); -+ x2 = MIN(x2, dst_rect->x + dst_rect->width); -+ y2 = MIN(y2, dst_rect->y + dst_rect->height); -+ -+ if (x2 <= x1 || y2 <= y1) -+ continue; -+ -+ const float sx1 = (float)(x1 - dst_rect->x) / (float)dst_rect->width; -+ const float sy1 = (float)(y1 - dst_rect->y) / (float)dst_rect->height; -+ const float sx2 = (float)(x2 - dst_rect->x) / (float)dst_rect->width; -+ const float sy2 = (float)(y2 - dst_rect->y) / (float)dst_rect->height; -+ tx1 = ((float)src_rect->x + sx1 * (float)src_rect->width) / width; -+ ty1 = ((float)src_rect->y + sy1 * (float)src_rect->height) / height; -+ tx2 = ((float)src_rect->x + sx2 * (float)src_rect->width) / width; -+ ty2 = ((float)src_rect->y + sy2 * (float)src_rect->height) / height; -+ -+ vb[n++] = tx2; -+ vb[n++] = ty2; -+ vb[n++] = x2; -+ vb[n++] = y2; -+ -+ vb[n++] = tx1; -+ vb[n++] = ty2; -+ vb[n++] = x1; -+ vb[n++] = y2; -+ -+ vb[n++] = tx1; -+ vb[n++] = ty1; -+ vb[n++] = x1; -+ vb[n++] = y1; -+ } -+ -+ dri_bo_unmap(render_state->vb.vertex_buffer); -+ return n / 12; -+} -+ -+static unsigned int - i965_subpic_render_upload_vertex(VADriverContextP ctx, - VASurfaceID surface, -- const VARectangle *output_rect) --{ -+ const VARectangle *output_rect, -+ const VARectangle *cliprects, -+ unsigned int num_cliprects) -+{ - struct i965_driver_data *i965 = i965_driver_data(ctx); -- struct i965_render_state *render_state = &i965->render_state; - struct object_surface *obj_surface = SURFACE(surface); - struct object_subpic *obj_subpic = SUBPIC(obj_surface->subpic); - -@@ -803,8 +871,6 @@ - const float ssy = (float)output_rect->height / (float)obj_surface->height; - const float sx = psx * ssx; - const float sy = psy * ssy; -- float *vb, tx1, tx2, ty1, ty2, x1, x2, y1, y2; -- int i = 0; - - VARectangle dst_rect; - dst_rect.x = output_rect->x + sx * (float)obj_subpic->dst_rect.x; -@@ -812,106 +878,38 @@ - dst_rect.width = sx * (float)obj_subpic->dst_rect.width; - dst_rect.height = sy * (float)obj_subpic->dst_rect.height; - -- dri_bo_map(render_state->vb.vertex_buffer, 1); -- assert(render_state->vb.vertex_buffer->virtual); -- vb = render_state->vb.vertex_buffer->virtual; -- -- tx1 = (float)obj_subpic->src_rect.x / (float)obj_subpic->width; -- ty1 = (float)obj_subpic->src_rect.y / (float)obj_subpic->height; -- tx2 = (float)(obj_subpic->src_rect.x + obj_subpic->src_rect.width) / (float)obj_subpic->width; -- ty2 = (float)(obj_subpic->src_rect.y + obj_subpic->src_rect.height) / (float)obj_subpic->height; -- -- x1 = (float)dst_rect.x; -- y1 = (float)dst_rect.y; -- x2 = (float)(dst_rect.x + dst_rect.width); -- y2 = (float)(dst_rect.y + dst_rect.height); -- -- vb[i++] = tx2; -- vb[i++] = ty2; -- vb[i++] = x2; -- vb[i++] = y2; -- -- vb[i++] = tx1; -- vb[i++] = ty2; -- vb[i++] = x1; -- vb[i++] = y2; -- -- vb[i++] = tx1; -- vb[i++] = ty1; -- vb[i++] = x1; -- vb[i++] = y1; -- dri_bo_unmap(render_state->vb.vertex_buffer); -+ return i965_render_do_upload_vertex(ctx, -+ obj_subpic->width, obj_subpic->height, -+ &obj_subpic->src_rect, &dst_rect, -+ cliprects, num_cliprects); - } - --static void -+static unsigned int - i965_render_upload_vertex(VADriverContextP ctx, - VASurfaceID surface, -- short srcx, -- short srcy, -- unsigned short srcw, -- unsigned short srch, -- short destx, -- short desty, -- unsigned short destw, -- unsigned short desth) -+ const VARectangle *src_rect, -+ const VARectangle *dst_rect, -+ const VARectangle *cliprects, -+ unsigned int num_cliprects) - { - struct i965_driver_data *i965 = i965_driver_data(ctx); -- struct i965_render_state *render_state = &i965->render_state; -- struct intel_region *dest_region = render_state->draw_region; -- struct object_surface *obj_surface; -- float *vb; -- -- float u1, v1, u2, v2; -- int i, width, height; -- int box_x1 = dest_region->x + destx; -- int box_y1 = dest_region->y + desty; -- int box_x2 = box_x1 + destw; -- int box_y2 = box_y1 + desth; -- -- obj_surface = SURFACE(surface); -- assert(surface); -- width = obj_surface->width; -- height = obj_surface->height; -- -- u1 = (float)srcx / width; -- v1 = (float)srcy / height; -- u2 = (float)(srcx + srcw) / width; -- v2 = (float)(srcy + srch) / height; -- -- dri_bo_map(render_state->vb.vertex_buffer, 1); -- assert(render_state->vb.vertex_buffer->virtual); -- vb = render_state->vb.vertex_buffer->virtual; -- -- i = 0; -- vb[i++] = u2; -- vb[i++] = v2; -- vb[i++] = (float)box_x2; -- vb[i++] = (float)box_y2; -- -- vb[i++] = u1; -- vb[i++] = v2; -- vb[i++] = (float)box_x1; -- vb[i++] = (float)box_y2; -- -- vb[i++] = u1; -- vb[i++] = v1; -- vb[i++] = (float)box_x1; -- vb[i++] = (float)box_y1; -+ struct object_surface *obj_surface = SURFACE(surface); -+ assert(obj_surface); - -- dri_bo_unmap(render_state->vb.vertex_buffer); -+ return i965_render_do_upload_vertex(ctx, -+ obj_surface->width, obj_surface->height, -+ src_rect, -+ dst_rect, -+ cliprects, num_cliprects); - } - --static void -+static unsigned int - i965_surface_render_state_setup(VADriverContextP ctx, -- VASurfaceID surface, -- short srcx, -- short srcy, -- unsigned short srcw, -- unsigned short srch, -- short destx, -- short desty, -- unsigned short destw, -- unsigned short desth) -+ VASurfaceID surface, -+ const VARectangle *src_rect, -+ const VARectangle *dst_rect, -+ const VARectangle *cliprects, -+ unsigned int num_cliprects) - { - i965_render_vs_unit(ctx); - i965_render_sf_unit(ctx); -@@ -922,21 +920,17 @@ - i965_render_cc_viewport(ctx); - i965_render_cc_unit(ctx); - i965_render_binding_table(ctx); -- i965_render_upload_vertex(ctx, surface, -- srcx, srcy, srcw, srch, -- destx, desty, destw, desth); -+ return i965_render_upload_vertex(ctx, surface, src_rect, dst_rect, -+ cliprects, num_cliprects); - } --static void -+ -+static unsigned int - i965_subpic_render_state_setup(VADriverContextP ctx, -- VASurfaceID surface, -- short srcx, -- short srcy, -- unsigned short srcw, -- unsigned short srch, -- short destx, -- short desty, -- unsigned short destw, -- unsigned short desth) -+ VASurfaceID surface, -+ const VARectangle *src_rect, -+ const VARectangle *dst_rect, -+ const VARectangle *cliprects, -+ unsigned int num_cliprects) - { - i965_render_vs_unit(ctx); - i965_render_sf_unit(ctx); -@@ -947,16 +941,10 @@ - i965_render_cc_viewport(ctx); - i965_subpic_render_cc_unit(ctx); - i965_render_binding_table(ctx); -- -- VARectangle output_rect; -- output_rect.x = destx; -- output_rect.y = desty; -- output_rect.width = destw; -- output_rect.height = desth; -- i965_subpic_render_upload_vertex(ctx, surface, &output_rect); -+ return i965_subpic_render_upload_vertex(ctx, surface, dst_rect, -+ cliprects, num_cliprects); - } - -- - static void - i965_render_pipeline_select(VADriverContextP ctx) - { -@@ -1192,7 +1180,7 @@ - } - - static void --i965_render_startup(VADriverContextP ctx) -+i965_render_startup(VADriverContextP ctx, unsigned int vb_offset) - { - struct i965_driver_data *i965 = i965_driver_data(ctx); - struct i965_render_state *render_state = &i965->render_state; -@@ -1203,7 +1191,7 @@ - (0 << VB0_BUFFER_INDEX_SHIFT) | - VB0_VERTEXDATA | - ((4 * 4) << VB0_BUFFER_PITCH_SHIFT)); -- OUT_RELOC(ctx, render_state->vb.vertex_buffer, I915_GEM_DOMAIN_VERTEX, 0, 0); -+ OUT_RELOC(ctx, render_state->vb.vertex_buffer, I915_GEM_DOMAIN_VERTEX, 0, vb_offset); - - if (IS_IGDNG(i965->intel.device_id)) - OUT_RELOC(ctx, render_state->vb.vertex_buffer, I915_GEM_DOMAIN_VERTEX, 0, 12 * 4); -@@ -1268,8 +1256,10 @@ - } - - static void --i965_surface_render_pipeline_setup(VADriverContextP ctx) -+i965_surface_render_pipeline_setup(VADriverContextP ctx, unsigned int n_rects) - { -+ unsigned int i; -+ - intel_batchbuffer_start_atomic(ctx, 0x1000); - intel_batchbuffer_emit_mi_flush(ctx); - i965_clear_dest_region(ctx); -@@ -1283,13 +1273,16 @@ - i965_render_cs_urb_layout(ctx); - i965_render_drawing_rectangle(ctx); - i965_render_vertex_elements(ctx); -- i965_render_startup(ctx); -+ for (i = 0; i < n_rects; i++) -+ i965_render_startup(ctx, 48 * i); - intel_batchbuffer_end_atomic(ctx); - } - - static void --i965_subpic_render_pipeline_setup(VADriverContextP ctx) -+i965_subpic_render_pipeline_setup(VADriverContextP ctx, unsigned int n_rects) - { -+ unsigned int i; -+ - intel_batchbuffer_start_atomic(ctx, 0x1000); - intel_batchbuffer_emit_mi_flush(ctx); - i965_render_pipeline_select(ctx); -@@ -1302,7 +1295,8 @@ - i965_render_cs_urb_layout(ctx); - i965_render_drawing_rectangle(ctx); - i965_render_vertex_elements(ctx); -- i965_render_startup(ctx); -+ for (i = 0; i < n_rects; i++) -+ i965_render_startup(ctx, 48 * i); - intel_batchbuffer_end_atomic(ctx); - } - -@@ -1396,45 +1390,39 @@ - void - i965_render_put_surface(VADriverContextP ctx, - VASurfaceID surface, -- short srcx, -- short srcy, -- unsigned short srcw, -- unsigned short srch, -- short destx, -- short desty, -- unsigned short destw, -- unsigned short desth) -+ const VARectangle *src_rect, -+ const VARectangle *dst_rect, -+ const VARectangle *cliprects, -+ unsigned int num_cliprects) - { -+ unsigned int n_rects; -+ - i965_render_initialize(ctx); -- i965_surface_render_state_setup(ctx, surface, -- srcx, srcy, srcw, srch, -- destx, desty, destw, desth); -- i965_surface_render_pipeline_setup(ctx); -+ n_rects = i965_surface_render_state_setup(ctx, surface, -+ src_rect, dst_rect, -+ cliprects, num_cliprects); -+ i965_surface_render_pipeline_setup(ctx, n_rects); - intel_batchbuffer_flush(ctx); - } - - void - i965_render_put_subpic(VADriverContextP ctx, -- VASurfaceID surface, -- short srcx, -- short srcy, -- unsigned short srcw, -- unsigned short srch, -- short destx, -- short desty, -- unsigned short destw, -- unsigned short desth) -+ VASurfaceID surface, -+ const VARectangle *src_rect, -+ const VARectangle *dst_rect, -+ const VARectangle *cliprects, -+ unsigned int num_cliprects) - { - struct i965_driver_data *i965 = i965_driver_data(ctx); - struct object_surface *obj_surface = SURFACE(surface); - struct object_subpic *obj_subpic = SUBPIC(obj_surface->subpic); -+ unsigned int n_rects; - assert(obj_subpic); - - i965_render_initialize(ctx); -- i965_subpic_render_state_setup(ctx, surface, -- srcx, srcy, srcw, srch, -- destx, desty, destw, desth); -- i965_subpic_render_pipeline_setup(ctx); -+ n_rects = i965_subpic_render_state_setup(ctx, surface, src_rect, dst_rect, -+ cliprects, num_cliprects); -+ i965_subpic_render_pipeline_setup(ctx, n_rects); - i965_render_upload_image_palette(ctx, obj_subpic->image, 0xff); - intel_batchbuffer_flush(ctx); - } -diff -Naur libva-0.31.0/i965_drv_video/i965_render.h libva-0.31.0.patch/i965_drv_video/i965_render.h ---- libva-0.31.0/i965_drv_video/i965_render.h 2009-07-03 18:32:12.000000000 +0200 -+++ libva-0.31.0.patch/i965_drv_video/i965_render.h 2009-12-15 13:44:10.609321496 +0100 -@@ -28,6 +28,7 @@ - #ifndef _I965_RENDER_H_ - #define _I965_RENDER_H_ - -+#define MAX_CLIP_RECTS 80 /* vb_bo:4096 / vb:(3*4*4) */ - #define MAX_RENDER_SURFACES 16 - #define MAX_SAMPLERS 16 - -@@ -65,27 +66,20 @@ - - Bool i965_render_init(VADriverContextP ctx); - Bool i965_render_terminate(VADriverContextP ctx); -+ - void i965_render_put_surface(VADriverContextP ctx, - VASurfaceID surface, -- short srcx, -- short srcy, -- unsigned short srcw, -- unsigned short srch, -- short destx, -- short desty, -- unsigned short destw, -- unsigned short desth); -- -+ const VARectangle *src_rect, -+ const VARectangle *dst_rect, -+ const VARectangle *cliprects, -+ unsigned int num_cliprects); - - void - i965_render_put_subpic(VADriverContextP ctx, -- VASurfaceID surface, -- short srcx, -- short srcy, -- unsigned short srcw, -- unsigned short srch, -- short destx, -- short desty, -- unsigned short destw, -- unsigned short desth); -+ VASurfaceID surface, -+ const VARectangle *src_rect, -+ const VARectangle *dst_rect, -+ const VARectangle *cliprects, -+ unsigned int num_cliprects); -+ - #endif /* _I965_RENDER_H_ */ -diff -Naur libva-0.31.0/i965_drv_video/Makefile.in libva-0.31.0.patch/i965_drv_video/Makefile.in ---- libva-0.31.0/i965_drv_video/Makefile.in 2009-09-10 17:18:49.000000000 +0200 -+++ libva-0.31.0.patch/i965_drv_video/Makefile.in 2009-12-15 13:51:55.691446577 +0100 -@@ -1,8 +1,9 @@ --# Makefile.in generated by automake 1.10.1 from Makefile.am. -+# Makefile.in generated by automake 1.11 from Makefile.am. - # @configure_input@ - - # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, --# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. -+# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -+# Inc. - # This Makefile.in is free software; the Free Software Foundation - # gives unlimited permission to copy and/or distribute it, - # with or without modifications, as long as this notice is preserved. -@@ -39,8 +40,9 @@ - - VPATH = @srcdir@ - pkgdatadir = $(datadir)/@PACKAGE@ --pkglibdir = $(libdir)/@PACKAGE@ - pkgincludedir = $(includedir)/@PACKAGE@ -+pkglibdir = $(libdir)/@PACKAGE@ -+pkglibexecdir = $(libexecdir)/@PACKAGE@ - am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd - install_sh_DATA = $(install_sh) -c -m 644 - install_sh_PROGRAM = $(install_sh) -c -@@ -59,20 +61,38 @@ - DIST_COMMON = $(noinst_HEADERS) $(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)/m4/libtool.m4 \ -+ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ -+ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ -+ $(top_srcdir)/configure.ac - am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) - mkinstalldirs = $(install_sh) -d - CONFIG_HEADER = $(top_builddir)/config.h - CONFIG_CLEAN_FILES = -+CONFIG_CLEAN_VPATH_FILES = - am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; - am__vpath_adj = case $$p in \ - $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ - *) f=$$p;; \ - esac; --am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; -+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; -+am__install_max = 40 -+am__nobase_strip_setup = \ -+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` -+am__nobase_strip = \ -+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" -+am__nobase_list = $(am__nobase_strip_setup); \ -+ for p in $$list; do echo "$$p $$p"; done | \ -+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ -+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ -+ if (++n[$$2] == $(am__install_max)) \ -+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ -+ END { for (dir in files) print dir, files[dir] }' -+am__base_list = \ -+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ -+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' - am__installdirs = "$(DESTDIR)$(i965_drv_video_ladir)" --i965_drv_video_laLTLIBRARIES_INSTALL = $(INSTALL) - LTLIBRARIES = $(i965_drv_video_la_LTLIBRARIES) - i965_drv_video_la_DEPENDENCIES = ../src/libva-x11.la - am_i965_drv_video_la_OBJECTS = object_heap.lo intel_batchbuffer.lo \ -@@ -85,6 +105,7 @@ - DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) - depcomp = $(SHELL) $(top_srcdir)/depcomp - am__depfiles_maybe = depfiles -+am__mv = mv -f - COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ - $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) - LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ -@@ -106,10 +127,38 @@ - HEADERS = $(noinst_HEADERS) - RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ - distclean-recursive maintainer-clean-recursive -+AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ -+ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ -+ distdir - ETAGS = etags - CTAGS = ctags - DIST_SUBDIRS = $(SUBDIRS) - DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -+am__relativize = \ -+ dir0=`pwd`; \ -+ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ -+ sed_rest='s,^[^/]*/*,,'; \ -+ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ -+ sed_butlast='s,/*[^/]*$$,,'; \ -+ while test -n "$$dir1"; do \ -+ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ -+ if test "$$first" != "."; then \ -+ if test "$$first" = ".."; then \ -+ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ -+ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ -+ else \ -+ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ -+ if test "$$first2" = "$$first"; then \ -+ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ -+ else \ -+ dir2="../$$dir2"; \ -+ fi; \ -+ dir0="$$dir0"/"$$first"; \ -+ fi; \ -+ fi; \ -+ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ -+ done; \ -+ reldir="$$dir2" - ACLOCAL = @ACLOCAL@ - AMTAR = @AMTAR@ - AR = @AR@ -@@ -122,38 +171,35 @@ - CFLAGS = @CFLAGS@ - CPP = @CPP@ - CPPFLAGS = @CPPFLAGS@ --CXX = @CXX@ --CXXCPP = @CXXCPP@ --CXXDEPMODE = @CXXDEPMODE@ --CXXFLAGS = @CXXFLAGS@ - CYGPATH_W = @CYGPATH_W@ - DEFS = @DEFS@ - DEPDIR = @DEPDIR@ - DRM_CFLAGS = @DRM_CFLAGS@ - DRM_LIBS = @DRM_LIBS@ - DSYMUTIL = @DSYMUTIL@ --ECHO = @ECHO@ -+DUMPBIN = @DUMPBIN@ - ECHO_C = @ECHO_C@ - ECHO_N = @ECHO_N@ - ECHO_T = @ECHO_T@ - EGREP = @EGREP@ - EXEEXT = @EXEEXT@ --F77 = @F77@ --FFLAGS = @FFLAGS@ -+FGREP = @FGREP@ - GEN4ASM_CFLAGS = @GEN4ASM_CFLAGS@ - GEN4ASM_LIBS = @GEN4ASM_LIBS@ -+GL_DEPS_CFLAGS = @GL_DEPS_CFLAGS@ -+GL_DEPS_LIBS = @GL_DEPS_LIBS@ - GREP = @GREP@ - INSTALL = @INSTALL@ - INSTALL_DATA = @INSTALL_DATA@ - INSTALL_PROGRAM = @INSTALL_PROGRAM@ - INSTALL_SCRIPT = @INSTALL_SCRIPT@ - INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -+LD = @LD@ - LDFLAGS = @LDFLAGS@ - LIBOBJS = @LIBOBJS@ - LIBS = @LIBS@ - LIBTOOL = @LIBTOOL@ - LIBVA_CFLAGS = @LIBVA_CFLAGS@ --LIBVA_DISPLAY = @LIBVA_DISPLAY@ - LIBVA_DRIVERS_PATH = @LIBVA_DRIVERS_PATH@ - LIBVA_LIBS = @LIBVA_LIBS@ - LIBVA_LT_LDFLAGS = @LIBVA_LT_LDFLAGS@ -@@ -161,13 +207,19 @@ - LIBVA_MAJOR_VERSION = @LIBVA_MAJOR_VERSION@ - LIBVA_MICRO_VERSION = @LIBVA_MICRO_VERSION@ - LIBVA_MINOR_VERSION = @LIBVA_MINOR_VERSION@ -+LIBVA_SDS_VERSION = @LIBVA_SDS_VERSION@ - LIBVA_VERSION = @LIBVA_VERSION@ -+LIPO = @LIPO@ - LN_S = @LN_S@ - LTLIBOBJS = @LTLIBOBJS@ - MAKEINFO = @MAKEINFO@ - MKDIR_P = @MKDIR_P@ -+NM = @NM@ - NMEDIT = @NMEDIT@ -+OBJDUMP = @OBJDUMP@ - OBJEXT = @OBJEXT@ -+OTOOL = @OTOOL@ -+OTOOL64 = @OTOOL64@ - PACKAGE = @PACKAGE@ - PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ - PACKAGE_NAME = @PACKAGE_NAME@ -@@ -193,8 +245,7 @@ - abs_top_builddir = @abs_top_builddir@ - abs_top_srcdir = @abs_top_srcdir@ - ac_ct_CC = @ac_ct_CC@ --ac_ct_CXX = @ac_ct_CXX@ --ac_ct_F77 = @ac_ct_F77@ -+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ - am__include = @am__include@ - am__leading_dot = @am__leading_dot@ - am__quote = @am__quote@ -@@ -227,6 +278,7 @@ - libvacorelib = @libvacorelib@ - localedir = @localedir@ - localstatedir = @localstatedir@ -+lt_ECHO = @lt_ECHO@ - mandir = @mandir@ - mkdir_p = @mkdir_p@ - oldincludedir = @oldincludedir@ -@@ -240,6 +292,7 @@ - srcdir = @srcdir@ - sysconfdir = @sysconfdir@ - target_alias = @target_alias@ -+top_build_prefix = @top_build_prefix@ - top_builddir = @top_builddir@ - top_srcdir = @top_srcdir@ - SUBDIRS = shaders -@@ -278,14 +331,14 @@ - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ -- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ -- && exit 0; \ -+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ -+ && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ -- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu i965_drv_video/Makefile'; \ -- cd $(top_srcdir) && \ -- $(AUTOMAKE) --gnu i965_drv_video/Makefile -+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu i965_drv_video/Makefile'; \ -+ $(am__cd) $(top_srcdir) && \ -+ $(AUTOMAKE) --gnu i965_drv_video/Makefile - .PRECIOUS: Makefile - Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ -@@ -303,23 +356,28 @@ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - $(ACLOCAL_M4): $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -+$(am__aclocal_m4_deps): - install-i965_drv_video_laLTLIBRARIES: $(i965_drv_video_la_LTLIBRARIES) - @$(NORMAL_INSTALL) - test -z "$(i965_drv_video_ladir)" || $(MKDIR_P) "$(DESTDIR)$(i965_drv_video_ladir)" -- @list='$(i965_drv_video_la_LTLIBRARIES)'; for p in $$list; do \ -+ @list='$(i965_drv_video_la_LTLIBRARIES)'; test -n "$(i965_drv_video_ladir)" || list=; \ -+ list2=; for p in $$list; do \ - if test -f $$p; then \ -- f=$(am__strip_dir) \ -- echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(i965_drv_video_laLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) '$$p' '$(DESTDIR)$(i965_drv_video_ladir)/$$f'"; \ -- $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(i965_drv_video_laLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) "$$p" "$(DESTDIR)$(i965_drv_video_ladir)/$$f"; \ -+ list2="$$list2 $$p"; \ - else :; fi; \ -- done -+ done; \ -+ test -z "$$list2" || { \ -+ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(i965_drv_video_ladir)'"; \ -+ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(i965_drv_video_ladir)"; \ -+ } - - uninstall-i965_drv_video_laLTLIBRARIES: - @$(NORMAL_UNINSTALL) -- @list='$(i965_drv_video_la_LTLIBRARIES)'; for p in $$list; do \ -- p=$(am__strip_dir) \ -- echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(i965_drv_video_ladir)/$$p'"; \ -- $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(i965_drv_video_ladir)/$$p"; \ -+ @list='$(i965_drv_video_la_LTLIBRARIES)'; test -n "$(i965_drv_video_ladir)" || list=; \ -+ for p in $$list; do \ -+ $(am__strip_dir) \ -+ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(i965_drv_video_ladir)/$$f'"; \ -+ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(i965_drv_video_ladir)/$$f"; \ - done - - clean-i965_drv_video_laLTLIBRARIES: -@@ -350,21 +408,21 @@ - - .c.o: - @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< --@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po - @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ - @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ - @am__fastdepCC_FALSE@ $(COMPILE) -c $< - - .c.obj: - @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` --@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po - @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ - @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ - @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` - - .c.lo: - @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< --@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo - @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ - @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ - @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< -@@ -399,7 +457,7 @@ - else \ - local_target="$$target"; \ - fi; \ -- (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ -+ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ - done; \ - if test "$$dot_seen" = "no"; then \ -@@ -433,16 +491,16 @@ - else \ - local_target="$$target"; \ - fi; \ -- (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ -+ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ - done && test -z "$$fail" - tags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ -- test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ -+ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ - done - ctags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ -- test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ -+ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ - done - - ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) -@@ -450,14 +508,14 @@ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ -- $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \ -+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique - tags: TAGS - - TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) -- tags=; \ -+ set x; \ - here=`pwd`; \ - if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ - include_option=--etags-include; \ -@@ -469,7 +527,7 @@ - list='$(SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - test ! -f $$subdir/TAGS || \ -- tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ -+ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ - fi; \ - done; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ -@@ -478,29 +536,34 @@ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ -- if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ -+ shift; \ -+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ -- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ -- $$tags $$unique; \ -+ if test $$# -gt 0; then \ -+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ -+ "$$@" $$unique; \ -+ else \ -+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ -+ $$unique; \ -+ fi; \ - fi - ctags: CTAGS - CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) -- tags=; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ -- test -z "$(CTAGS_ARGS)$$tags$$unique" \ -+ test -z "$(CTAGS_ARGS)$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ -- $$tags $$unique -+ $$unique - - GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ -- && cd $(top_srcdir) \ -- && gtags -i $(GTAGS_ARGS) $$here -+ && $(am__cd) $(top_srcdir) \ -+ && gtags -i $(GTAGS_ARGS) "$$here" - - distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -@@ -521,29 +584,44 @@ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ -+ if test -d "$(distdir)/$$file"; then \ -+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ -+ fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ -- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ -+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ -+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ -- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ -+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ -- test -f $(distdir)/$$file \ -- || cp -p $$d/$$file $(distdir)/$$file \ -+ test -f "$(distdir)/$$file" \ -+ || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done -- list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ -+ @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - test -d "$(distdir)/$$subdir" \ - || $(MKDIR_P) "$(distdir)/$$subdir" \ - || exit 1; \ -- distdir=`$(am__cd) $(distdir) && pwd`; \ -- top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ -- (cd $$subdir && \ -+ fi; \ -+ done -+ @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ -+ if test "$$subdir" = .; then :; else \ -+ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ -+ $(am__relativize); \ -+ new_distdir=$$reldir; \ -+ dir1=$$subdir; dir2="$(top_distdir)"; \ -+ $(am__relativize); \ -+ new_top_distdir=$$reldir; \ -+ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ -+ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ -+ ($(am__cd) $$subdir && \ - $(MAKE) $(AM_MAKEFLAGS) \ -- top_distdir="$$top_distdir" \ -- distdir="$$distdir/$$subdir" \ -+ top_distdir="$$new_top_distdir" \ -+ distdir="$$new_distdir" \ - am__remove_distdir=: \ - am__skip_length_check=: \ -+ am__skip_mode_fix=: \ - distdir) \ - || exit 1; \ - fi; \ -@@ -576,6 +654,7 @@ - - distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - - maintainer-clean-generic: - @echo "This command is intended for maintainers to use" -@@ -597,6 +676,8 @@ - - html: html-recursive - -+html-am: -+ - info: info-recursive - - info-am: -@@ -605,18 +686,28 @@ - - install-dvi: install-dvi-recursive - -+install-dvi-am: -+ - install-exec-am: - - install-html: install-html-recursive - -+install-html-am: -+ - install-info: install-info-recursive - -+install-info-am: -+ - install-man: - - install-pdf: install-pdf-recursive - -+install-pdf-am: -+ - install-ps: install-ps-recursive - -+install-ps-am: -+ - installcheck-am: - - maintainer-clean: maintainer-clean-recursive -@@ -639,8 +730,8 @@ - - uninstall-am: uninstall-i965_drv_video_laLTLIBRARIES - --.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \ -- install-strip -+.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ -+ install-am install-strip tags-recursive - - .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ - all all-am check check-am clean clean-generic \ -@@ -659,6 +750,7 @@ - tags tags-recursive uninstall uninstall-am \ - uninstall-i965_drv_video_laLTLIBRARIES - -+ - # Tell versions [3.59,3.63) of GNU make to not export all variables. - # Otherwise a system limit (for SysV at least) may be exceeded. - .NOEXPORT: -diff -Naur libva-0.31.0/i965_drv_video/shaders/Makefile.in libva-0.31.0.patch/i965_drv_video/shaders/Makefile.in ---- libva-0.31.0/i965_drv_video/shaders/Makefile.in 2009-09-10 17:18:49.000000000 +0200 -+++ libva-0.31.0.patch/i965_drv_video/shaders/Makefile.in 2009-12-15 13:51:55.767446423 +0100 -@@ -1,8 +1,9 @@ --# Makefile.in generated by automake 1.10.1 from Makefile.am. -+# Makefile.in generated by automake 1.11 from Makefile.am. - # @configure_input@ - - # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, --# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. -+# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -+# Inc. - # This Makefile.in is free software; the Free Software Foundation - # gives unlimited permission to copy and/or distribute it, - # with or without modifications, as long as this notice is preserved. -@@ -15,8 +16,9 @@ - @SET_MAKE@ - VPATH = @srcdir@ - pkgdatadir = $(datadir)/@PACKAGE@ --pkglibdir = $(libdir)/@PACKAGE@ - pkgincludedir = $(includedir)/@PACKAGE@ -+pkglibdir = $(libdir)/@PACKAGE@ -+pkglibexecdir = $(libexecdir)/@PACKAGE@ - am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd - install_sh_DATA = $(install_sh) -c -m 644 - install_sh_PROGRAM = $(install_sh) -c -@@ -34,12 +36,16 @@ - subdir = i965_drv_video/shaders - 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)/m4/libtool.m4 \ -+ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ -+ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ -+ $(top_srcdir)/configure.ac - am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) - mkinstalldirs = $(install_sh) -d - CONFIG_HEADER = $(top_builddir)/config.h - CONFIG_CLEAN_FILES = -+CONFIG_CLEAN_VPATH_FILES = - SOURCES = - DIST_SOURCES = - RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ -@@ -51,10 +57,38 @@ - ps-recursive uninstall-recursive - RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ - distclean-recursive maintainer-clean-recursive -+AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ -+ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ -+ distdir - ETAGS = etags - CTAGS = ctags - DIST_SUBDIRS = $(SUBDIRS) - DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -+am__relativize = \ -+ dir0=`pwd`; \ -+ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ -+ sed_rest='s,^[^/]*/*,,'; \ -+ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ -+ sed_butlast='s,/*[^/]*$$,,'; \ -+ while test -n "$$dir1"; do \ -+ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ -+ if test "$$first" != "."; then \ -+ if test "$$first" = ".."; then \ -+ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ -+ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ -+ else \ -+ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ -+ if test "$$first2" = "$$first"; then \ -+ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ -+ else \ -+ dir2="../$$dir2"; \ -+ fi; \ -+ dir0="$$dir0"/"$$first"; \ -+ fi; \ -+ fi; \ -+ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ -+ done; \ -+ reldir="$$dir2" - ACLOCAL = @ACLOCAL@ - AMTAR = @AMTAR@ - AR = @AR@ -@@ -67,38 +101,35 @@ - CFLAGS = @CFLAGS@ - CPP = @CPP@ - CPPFLAGS = @CPPFLAGS@ --CXX = @CXX@ --CXXCPP = @CXXCPP@ --CXXDEPMODE = @CXXDEPMODE@ --CXXFLAGS = @CXXFLAGS@ - CYGPATH_W = @CYGPATH_W@ - DEFS = @DEFS@ - DEPDIR = @DEPDIR@ - DRM_CFLAGS = @DRM_CFLAGS@ - DRM_LIBS = @DRM_LIBS@ - DSYMUTIL = @DSYMUTIL@ --ECHO = @ECHO@ -+DUMPBIN = @DUMPBIN@ - ECHO_C = @ECHO_C@ - ECHO_N = @ECHO_N@ - ECHO_T = @ECHO_T@ - EGREP = @EGREP@ - EXEEXT = @EXEEXT@ --F77 = @F77@ --FFLAGS = @FFLAGS@ -+FGREP = @FGREP@ - GEN4ASM_CFLAGS = @GEN4ASM_CFLAGS@ - GEN4ASM_LIBS = @GEN4ASM_LIBS@ -+GL_DEPS_CFLAGS = @GL_DEPS_CFLAGS@ -+GL_DEPS_LIBS = @GL_DEPS_LIBS@ - GREP = @GREP@ - INSTALL = @INSTALL@ - INSTALL_DATA = @INSTALL_DATA@ - INSTALL_PROGRAM = @INSTALL_PROGRAM@ - INSTALL_SCRIPT = @INSTALL_SCRIPT@ - INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -+LD = @LD@ - LDFLAGS = @LDFLAGS@ - LIBOBJS = @LIBOBJS@ - LIBS = @LIBS@ - LIBTOOL = @LIBTOOL@ - LIBVA_CFLAGS = @LIBVA_CFLAGS@ --LIBVA_DISPLAY = @LIBVA_DISPLAY@ - LIBVA_DRIVERS_PATH = @LIBVA_DRIVERS_PATH@ - LIBVA_LIBS = @LIBVA_LIBS@ - LIBVA_LT_LDFLAGS = @LIBVA_LT_LDFLAGS@ -@@ -106,13 +137,19 @@ - LIBVA_MAJOR_VERSION = @LIBVA_MAJOR_VERSION@ - LIBVA_MICRO_VERSION = @LIBVA_MICRO_VERSION@ - LIBVA_MINOR_VERSION = @LIBVA_MINOR_VERSION@ -+LIBVA_SDS_VERSION = @LIBVA_SDS_VERSION@ - LIBVA_VERSION = @LIBVA_VERSION@ -+LIPO = @LIPO@ - LN_S = @LN_S@ - LTLIBOBJS = @LTLIBOBJS@ - MAKEINFO = @MAKEINFO@ - MKDIR_P = @MKDIR_P@ -+NM = @NM@ - NMEDIT = @NMEDIT@ -+OBJDUMP = @OBJDUMP@ - OBJEXT = @OBJEXT@ -+OTOOL = @OTOOL@ -+OTOOL64 = @OTOOL64@ - PACKAGE = @PACKAGE@ - PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ - PACKAGE_NAME = @PACKAGE_NAME@ -@@ -138,8 +175,7 @@ - abs_top_builddir = @abs_top_builddir@ - abs_top_srcdir = @abs_top_srcdir@ - ac_ct_CC = @ac_ct_CC@ --ac_ct_CXX = @ac_ct_CXX@ --ac_ct_F77 = @ac_ct_F77@ -+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ - am__include = @am__include@ - am__leading_dot = @am__leading_dot@ - am__quote = @am__quote@ -@@ -172,6 +208,7 @@ - libvacorelib = @libvacorelib@ - localedir = @localedir@ - localstatedir = @localstatedir@ -+lt_ECHO = @lt_ECHO@ - mandir = @mandir@ - mkdir_p = @mkdir_p@ - oldincludedir = @oldincludedir@ -@@ -185,6 +222,7 @@ - srcdir = @srcdir@ - sysconfdir = @sysconfdir@ - target_alias = @target_alias@ -+top_build_prefix = @top_build_prefix@ - top_builddir = @top_builddir@ - top_srcdir = @top_srcdir@ - SUBDIRS = mpeg2 render -@@ -195,14 +233,14 @@ - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ -- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ -- && exit 0; \ -+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ -+ && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ -- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu i965_drv_video/shaders/Makefile'; \ -- cd $(top_srcdir) && \ -- $(AUTOMAKE) --gnu i965_drv_video/shaders/Makefile -+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu i965_drv_video/shaders/Makefile'; \ -+ $(am__cd) $(top_srcdir) && \ -+ $(AUTOMAKE) --gnu i965_drv_video/shaders/Makefile - .PRECIOUS: Makefile - Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ -@@ -220,6 +258,7 @@ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - $(ACLOCAL_M4): $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -+$(am__aclocal_m4_deps): - - mostlyclean-libtool: - -rm -f *.lo -@@ -251,7 +290,7 @@ - else \ - local_target="$$target"; \ - fi; \ -- (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ -+ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ - done; \ - if test "$$dot_seen" = "no"; then \ -@@ -285,16 +324,16 @@ - else \ - local_target="$$target"; \ - fi; \ -- (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ -+ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ - done && test -z "$$fail" - tags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ -- test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ -+ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ - done - ctags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ -- test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ -+ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ - done - - ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) -@@ -302,14 +341,14 @@ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ -- $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \ -+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique - tags: TAGS - - TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) -- tags=; \ -+ set x; \ - here=`pwd`; \ - if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ - include_option=--etags-include; \ -@@ -321,7 +360,7 @@ - list='$(SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - test ! -f $$subdir/TAGS || \ -- tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ -+ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ - fi; \ - done; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ -@@ -330,29 +369,34 @@ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ -- if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ -+ shift; \ -+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ -- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ -- $$tags $$unique; \ -+ if test $$# -gt 0; then \ -+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ -+ "$$@" $$unique; \ -+ else \ -+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ -+ $$unique; \ -+ fi; \ - fi - ctags: CTAGS - CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) -- tags=; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ -- test -z "$(CTAGS_ARGS)$$tags$$unique" \ -+ test -z "$(CTAGS_ARGS)$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ -- $$tags $$unique -+ $$unique - - GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ -- && cd $(top_srcdir) \ -- && gtags -i $(GTAGS_ARGS) $$here -+ && $(am__cd) $(top_srcdir) \ -+ && gtags -i $(GTAGS_ARGS) "$$here" - - distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -@@ -373,29 +417,44 @@ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ -+ if test -d "$(distdir)/$$file"; then \ -+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ -+ fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ -- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ -+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ -+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ -- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ -+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ -- test -f $(distdir)/$$file \ -- || cp -p $$d/$$file $(distdir)/$$file \ -+ test -f "$(distdir)/$$file" \ -+ || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done -- list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ -+ @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - test -d "$(distdir)/$$subdir" \ - || $(MKDIR_P) "$(distdir)/$$subdir" \ - || exit 1; \ -- distdir=`$(am__cd) $(distdir) && pwd`; \ -- top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ -- (cd $$subdir && \ -+ fi; \ -+ done -+ @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ -+ if test "$$subdir" = .; then :; else \ -+ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ -+ $(am__relativize); \ -+ new_distdir=$$reldir; \ -+ dir1=$$subdir; dir2="$(top_distdir)"; \ -+ $(am__relativize); \ -+ new_top_distdir=$$reldir; \ -+ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ -+ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ -+ ($(am__cd) $$subdir && \ - $(MAKE) $(AM_MAKEFLAGS) \ -- top_distdir="$$top_distdir" \ -- distdir="$$distdir/$$subdir" \ -+ top_distdir="$$new_top_distdir" \ -+ distdir="$$new_distdir" \ - am__remove_distdir=: \ - am__skip_length_check=: \ -+ am__skip_mode_fix=: \ - distdir) \ - || exit 1; \ - fi; \ -@@ -425,6 +484,7 @@ - - distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - - maintainer-clean-generic: - @echo "This command is intended for maintainers to use" -@@ -443,6 +503,8 @@ - - html: html-recursive - -+html-am: -+ - info: info-recursive - - info-am: -@@ -451,18 +513,28 @@ - - install-dvi: install-dvi-recursive - -+install-dvi-am: -+ - install-exec-am: - - install-html: install-html-recursive - -+install-html-am: -+ - install-info: install-info-recursive - -+install-info-am: -+ - install-man: - - install-pdf: install-pdf-recursive - -+install-pdf-am: -+ - install-ps: install-ps-recursive - -+install-ps-am: -+ - installcheck-am: - - maintainer-clean: maintainer-clean-recursive -@@ -483,8 +555,8 @@ - - uninstall-am: - --.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \ -- install-strip -+.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ -+ install-am install-strip tags-recursive - - .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ - all all-am check check-am clean clean-generic clean-libtool \ -@@ -500,6 +572,7 @@ - mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \ - uninstall uninstall-am - -+ - # Tell versions [3.59,3.63) of GNU make to not export all variables. - # Otherwise a system limit (for SysV at least) may be exceeded. - .NOEXPORT: -diff -Naur libva-0.31.0/i965_drv_video/shaders/mpeg2/Makefile.in libva-0.31.0.patch/i965_drv_video/shaders/mpeg2/Makefile.in ---- libva-0.31.0/i965_drv_video/shaders/mpeg2/Makefile.in 2009-09-10 17:18:49.000000000 +0200 -+++ libva-0.31.0.patch/i965_drv_video/shaders/mpeg2/Makefile.in 2009-12-15 13:51:55.838446582 +0100 -@@ -1,8 +1,9 @@ --# Makefile.in generated by automake 1.10.1 from Makefile.am. -+# Makefile.in generated by automake 1.11 from Makefile.am. - # @configure_input@ - - # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, --# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. -+# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -+# Inc. - # This Makefile.in is free software; the Free Software Foundation - # gives unlimited permission to copy and/or distribute it, - # with or without modifications, as long as this notice is preserved. -@@ -15,8 +16,9 @@ - @SET_MAKE@ - VPATH = @srcdir@ - pkgdatadir = $(datadir)/@PACKAGE@ --pkglibdir = $(libdir)/@PACKAGE@ - pkgincludedir = $(includedir)/@PACKAGE@ -+pkglibdir = $(libdir)/@PACKAGE@ -+pkglibexecdir = $(libexecdir)/@PACKAGE@ - am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd - install_sh_DATA = $(install_sh) -c -m 644 - install_sh_PROGRAM = $(install_sh) -c -@@ -34,12 +36,16 @@ - subdir = i965_drv_video/shaders/mpeg2 - 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)/m4/libtool.m4 \ -+ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ -+ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ -+ $(top_srcdir)/configure.ac - am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) - mkinstalldirs = $(install_sh) -d - CONFIG_HEADER = $(top_builddir)/config.h - CONFIG_CLEAN_FILES = -+CONFIG_CLEAN_VPATH_FILES = - SOURCES = - DIST_SOURCES = - RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ -@@ -51,10 +57,38 @@ - ps-recursive uninstall-recursive - RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ - distclean-recursive maintainer-clean-recursive -+AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ -+ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ -+ distdir - ETAGS = etags - CTAGS = ctags - DIST_SUBDIRS = $(SUBDIRS) - DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -+am__relativize = \ -+ dir0=`pwd`; \ -+ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ -+ sed_rest='s,^[^/]*/*,,'; \ -+ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ -+ sed_butlast='s,/*[^/]*$$,,'; \ -+ while test -n "$$dir1"; do \ -+ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ -+ if test "$$first" != "."; then \ -+ if test "$$first" = ".."; then \ -+ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ -+ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ -+ else \ -+ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ -+ if test "$$first2" = "$$first"; then \ -+ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ -+ else \ -+ dir2="../$$dir2"; \ -+ fi; \ -+ dir0="$$dir0"/"$$first"; \ -+ fi; \ -+ fi; \ -+ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ -+ done; \ -+ reldir="$$dir2" - ACLOCAL = @ACLOCAL@ - AMTAR = @AMTAR@ - AR = @AR@ -@@ -67,38 +101,35 @@ - CFLAGS = @CFLAGS@ - CPP = @CPP@ - CPPFLAGS = @CPPFLAGS@ --CXX = @CXX@ --CXXCPP = @CXXCPP@ --CXXDEPMODE = @CXXDEPMODE@ --CXXFLAGS = @CXXFLAGS@ - CYGPATH_W = @CYGPATH_W@ - DEFS = @DEFS@ - DEPDIR = @DEPDIR@ - DRM_CFLAGS = @DRM_CFLAGS@ - DRM_LIBS = @DRM_LIBS@ - DSYMUTIL = @DSYMUTIL@ --ECHO = @ECHO@ -+DUMPBIN = @DUMPBIN@ - ECHO_C = @ECHO_C@ - ECHO_N = @ECHO_N@ - ECHO_T = @ECHO_T@ - EGREP = @EGREP@ - EXEEXT = @EXEEXT@ --F77 = @F77@ --FFLAGS = @FFLAGS@ -+FGREP = @FGREP@ - GEN4ASM_CFLAGS = @GEN4ASM_CFLAGS@ - GEN4ASM_LIBS = @GEN4ASM_LIBS@ -+GL_DEPS_CFLAGS = @GL_DEPS_CFLAGS@ -+GL_DEPS_LIBS = @GL_DEPS_LIBS@ - GREP = @GREP@ - INSTALL = @INSTALL@ - INSTALL_DATA = @INSTALL_DATA@ - INSTALL_PROGRAM = @INSTALL_PROGRAM@ - INSTALL_SCRIPT = @INSTALL_SCRIPT@ - INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -+LD = @LD@ - LDFLAGS = @LDFLAGS@ - LIBOBJS = @LIBOBJS@ - LIBS = @LIBS@ - LIBTOOL = @LIBTOOL@ - LIBVA_CFLAGS = @LIBVA_CFLAGS@ --LIBVA_DISPLAY = @LIBVA_DISPLAY@ - LIBVA_DRIVERS_PATH = @LIBVA_DRIVERS_PATH@ - LIBVA_LIBS = @LIBVA_LIBS@ - LIBVA_LT_LDFLAGS = @LIBVA_LT_LDFLAGS@ -@@ -106,13 +137,19 @@ - LIBVA_MAJOR_VERSION = @LIBVA_MAJOR_VERSION@ - LIBVA_MICRO_VERSION = @LIBVA_MICRO_VERSION@ - LIBVA_MINOR_VERSION = @LIBVA_MINOR_VERSION@ -+LIBVA_SDS_VERSION = @LIBVA_SDS_VERSION@ - LIBVA_VERSION = @LIBVA_VERSION@ -+LIPO = @LIPO@ - LN_S = @LN_S@ - LTLIBOBJS = @LTLIBOBJS@ - MAKEINFO = @MAKEINFO@ - MKDIR_P = @MKDIR_P@ -+NM = @NM@ - NMEDIT = @NMEDIT@ -+OBJDUMP = @OBJDUMP@ - OBJEXT = @OBJEXT@ -+OTOOL = @OTOOL@ -+OTOOL64 = @OTOOL64@ - PACKAGE = @PACKAGE@ - PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ - PACKAGE_NAME = @PACKAGE_NAME@ -@@ -138,8 +175,7 @@ - abs_top_builddir = @abs_top_builddir@ - abs_top_srcdir = @abs_top_srcdir@ - ac_ct_CC = @ac_ct_CC@ --ac_ct_CXX = @ac_ct_CXX@ --ac_ct_F77 = @ac_ct_F77@ -+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ - am__include = @am__include@ - am__leading_dot = @am__leading_dot@ - am__quote = @am__quote@ -@@ -172,6 +208,7 @@ - libvacorelib = @libvacorelib@ - localedir = @localedir@ - localstatedir = @localstatedir@ -+lt_ECHO = @lt_ECHO@ - mandir = @mandir@ - mkdir_p = @mkdir_p@ - oldincludedir = @oldincludedir@ -@@ -185,6 +222,7 @@ - srcdir = @srcdir@ - sysconfdir = @sysconfdir@ - target_alias = @target_alias@ -+top_build_prefix = @top_build_prefix@ - top_builddir = @top_builddir@ - top_srcdir = @top_srcdir@ - SUBDIRS = vld -@@ -195,14 +233,14 @@ - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ -- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ -- && exit 0; \ -+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ -+ && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ -- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu i965_drv_video/shaders/mpeg2/Makefile'; \ -- cd $(top_srcdir) && \ -- $(AUTOMAKE) --gnu i965_drv_video/shaders/mpeg2/Makefile -+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu i965_drv_video/shaders/mpeg2/Makefile'; \ -+ $(am__cd) $(top_srcdir) && \ -+ $(AUTOMAKE) --gnu i965_drv_video/shaders/mpeg2/Makefile - .PRECIOUS: Makefile - Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ -@@ -220,6 +258,7 @@ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - $(ACLOCAL_M4): $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -+$(am__aclocal_m4_deps): - - mostlyclean-libtool: - -rm -f *.lo -@@ -251,7 +290,7 @@ - else \ - local_target="$$target"; \ - fi; \ -- (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ -+ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ - done; \ - if test "$$dot_seen" = "no"; then \ -@@ -285,16 +324,16 @@ - else \ - local_target="$$target"; \ - fi; \ -- (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ -+ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ - done && test -z "$$fail" - tags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ -- test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ -+ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ - done - ctags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ -- test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ -+ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ - done - - ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) -@@ -302,14 +341,14 @@ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ -- $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \ -+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique - tags: TAGS - - TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) -- tags=; \ -+ set x; \ - here=`pwd`; \ - if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ - include_option=--etags-include; \ -@@ -321,7 +360,7 @@ - list='$(SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - test ! -f $$subdir/TAGS || \ -- tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ -+ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ - fi; \ - done; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ -@@ -330,29 +369,34 @@ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ -- if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ -+ shift; \ -+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ -- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ -- $$tags $$unique; \ -+ if test $$# -gt 0; then \ -+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ -+ "$$@" $$unique; \ -+ else \ -+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ -+ $$unique; \ -+ fi; \ - fi - ctags: CTAGS - CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) -- tags=; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ -- test -z "$(CTAGS_ARGS)$$tags$$unique" \ -+ test -z "$(CTAGS_ARGS)$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ -- $$tags $$unique -+ $$unique - - GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ -- && cd $(top_srcdir) \ -- && gtags -i $(GTAGS_ARGS) $$here -+ && $(am__cd) $(top_srcdir) \ -+ && gtags -i $(GTAGS_ARGS) "$$here" - - distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -@@ -373,29 +417,44 @@ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ -+ if test -d "$(distdir)/$$file"; then \ -+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ -+ fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ -- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ -+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ -+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ -- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ -+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ -- test -f $(distdir)/$$file \ -- || cp -p $$d/$$file $(distdir)/$$file \ -+ test -f "$(distdir)/$$file" \ -+ || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done -- list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ -+ @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - test -d "$(distdir)/$$subdir" \ - || $(MKDIR_P) "$(distdir)/$$subdir" \ - || exit 1; \ -- distdir=`$(am__cd) $(distdir) && pwd`; \ -- top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ -- (cd $$subdir && \ -+ fi; \ -+ done -+ @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ -+ if test "$$subdir" = .; then :; else \ -+ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ -+ $(am__relativize); \ -+ new_distdir=$$reldir; \ -+ dir1=$$subdir; dir2="$(top_distdir)"; \ -+ $(am__relativize); \ -+ new_top_distdir=$$reldir; \ -+ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ -+ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ -+ ($(am__cd) $$subdir && \ - $(MAKE) $(AM_MAKEFLAGS) \ -- top_distdir="$$top_distdir" \ -- distdir="$$distdir/$$subdir" \ -+ top_distdir="$$new_top_distdir" \ -+ distdir="$$new_distdir" \ - am__remove_distdir=: \ - am__skip_length_check=: \ -+ am__skip_mode_fix=: \ - distdir) \ - || exit 1; \ - fi; \ -@@ -425,6 +484,7 @@ - - distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - - maintainer-clean-generic: - @echo "This command is intended for maintainers to use" -@@ -443,6 +503,8 @@ - - html: html-recursive - -+html-am: -+ - info: info-recursive - - info-am: -@@ -451,18 +513,28 @@ - - install-dvi: install-dvi-recursive - -+install-dvi-am: -+ - install-exec-am: - - install-html: install-html-recursive - -+install-html-am: -+ - install-info: install-info-recursive - -+install-info-am: -+ - install-man: - - install-pdf: install-pdf-recursive - -+install-pdf-am: -+ - install-ps: install-ps-recursive - -+install-ps-am: -+ - installcheck-am: - - maintainer-clean: maintainer-clean-recursive -@@ -483,8 +555,8 @@ - - uninstall-am: - --.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \ -- install-strip -+.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ -+ install-am install-strip tags-recursive - - .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ - all all-am check check-am clean clean-generic clean-libtool \ -@@ -500,6 +572,7 @@ - mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \ - uninstall uninstall-am - -+ - # Tell versions [3.59,3.63) of GNU make to not export all variables. - # Otherwise a system limit (for SysV at least) may be exceeded. - .NOEXPORT: -diff -Naur libva-0.31.0/i965_drv_video/shaders/mpeg2/vld/Makefile.in libva-0.31.0.patch/i965_drv_video/shaders/mpeg2/vld/Makefile.in ---- libva-0.31.0/i965_drv_video/shaders/mpeg2/vld/Makefile.in 2009-09-10 17:18:49.000000000 +0200 -+++ libva-0.31.0.patch/i965_drv_video/shaders/mpeg2/vld/Makefile.in 2009-12-15 13:51:55.911446420 +0100 -@@ -1,8 +1,9 @@ --# Makefile.in generated by automake 1.10.1 from Makefile.am. -+# Makefile.in generated by automake 1.11 from Makefile.am. - # @configure_input@ - - # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, --# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. -+# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -+# Inc. - # This Makefile.in is free software; the Free Software Foundation - # gives unlimited permission to copy and/or distribute it, - # with or without modifications, as long as this notice is preserved. -@@ -15,8 +16,9 @@ - @SET_MAKE@ - VPATH = @srcdir@ - pkgdatadir = $(datadir)/@PACKAGE@ --pkglibdir = $(libdir)/@PACKAGE@ - pkgincludedir = $(includedir)/@PACKAGE@ -+pkglibdir = $(libdir)/@PACKAGE@ -+pkglibexecdir = $(libexecdir)/@PACKAGE@ - am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd - install_sh_DATA = $(install_sh) -c -m 644 - install_sh_PROGRAM = $(install_sh) -c -@@ -34,12 +36,16 @@ - subdir = i965_drv_video/shaders/mpeg2/vld - 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)/m4/libtool.m4 \ -+ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ -+ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ -+ $(top_srcdir)/configure.ac - am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) - mkinstalldirs = $(install_sh) -d - CONFIG_HEADER = $(top_builddir)/config.h - CONFIG_CLEAN_FILES = -+CONFIG_CLEAN_VPATH_FILES = - SOURCES = - DIST_SOURCES = - DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -@@ -55,38 +61,35 @@ - CFLAGS = @CFLAGS@ - CPP = @CPP@ - CPPFLAGS = @CPPFLAGS@ --CXX = @CXX@ --CXXCPP = @CXXCPP@ --CXXDEPMODE = @CXXDEPMODE@ --CXXFLAGS = @CXXFLAGS@ - CYGPATH_W = @CYGPATH_W@ - DEFS = @DEFS@ - DEPDIR = @DEPDIR@ - DRM_CFLAGS = @DRM_CFLAGS@ - DRM_LIBS = @DRM_LIBS@ - DSYMUTIL = @DSYMUTIL@ --ECHO = @ECHO@ -+DUMPBIN = @DUMPBIN@ - ECHO_C = @ECHO_C@ - ECHO_N = @ECHO_N@ - ECHO_T = @ECHO_T@ - EGREP = @EGREP@ - EXEEXT = @EXEEXT@ --F77 = @F77@ --FFLAGS = @FFLAGS@ -+FGREP = @FGREP@ - GEN4ASM_CFLAGS = @GEN4ASM_CFLAGS@ - GEN4ASM_LIBS = @GEN4ASM_LIBS@ -+GL_DEPS_CFLAGS = @GL_DEPS_CFLAGS@ -+GL_DEPS_LIBS = @GL_DEPS_LIBS@ - GREP = @GREP@ - INSTALL = @INSTALL@ - INSTALL_DATA = @INSTALL_DATA@ - INSTALL_PROGRAM = @INSTALL_PROGRAM@ - INSTALL_SCRIPT = @INSTALL_SCRIPT@ - INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -+LD = @LD@ - LDFLAGS = @LDFLAGS@ - LIBOBJS = @LIBOBJS@ - LIBS = @LIBS@ - LIBTOOL = @LIBTOOL@ - LIBVA_CFLAGS = @LIBVA_CFLAGS@ --LIBVA_DISPLAY = @LIBVA_DISPLAY@ - LIBVA_DRIVERS_PATH = @LIBVA_DRIVERS_PATH@ - LIBVA_LIBS = @LIBVA_LIBS@ - LIBVA_LT_LDFLAGS = @LIBVA_LT_LDFLAGS@ -@@ -94,13 +97,19 @@ - LIBVA_MAJOR_VERSION = @LIBVA_MAJOR_VERSION@ - LIBVA_MICRO_VERSION = @LIBVA_MICRO_VERSION@ - LIBVA_MINOR_VERSION = @LIBVA_MINOR_VERSION@ -+LIBVA_SDS_VERSION = @LIBVA_SDS_VERSION@ - LIBVA_VERSION = @LIBVA_VERSION@ -+LIPO = @LIPO@ - LN_S = @LN_S@ - LTLIBOBJS = @LTLIBOBJS@ - MAKEINFO = @MAKEINFO@ - MKDIR_P = @MKDIR_P@ -+NM = @NM@ - NMEDIT = @NMEDIT@ -+OBJDUMP = @OBJDUMP@ - OBJEXT = @OBJEXT@ -+OTOOL = @OTOOL@ -+OTOOL64 = @OTOOL64@ - PACKAGE = @PACKAGE@ - PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ - PACKAGE_NAME = @PACKAGE_NAME@ -@@ -126,8 +135,7 @@ - abs_top_builddir = @abs_top_builddir@ - abs_top_srcdir = @abs_top_srcdir@ - ac_ct_CC = @ac_ct_CC@ --ac_ct_CXX = @ac_ct_CXX@ --ac_ct_F77 = @ac_ct_F77@ -+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ - am__include = @am__include@ - am__leading_dot = @am__leading_dot@ - am__quote = @am__quote@ -@@ -160,6 +168,7 @@ - libvacorelib = @libvacorelib@ - localedir = @localedir@ - localstatedir = @localstatedir@ -+lt_ECHO = @lt_ECHO@ - mandir = @mandir@ - mkdir_p = @mkdir_p@ - oldincludedir = @oldincludedir@ -@@ -173,6 +182,7 @@ - srcdir = @srcdir@ - sysconfdir = @sysconfdir@ - target_alias = @target_alias@ -+top_build_prefix = @top_build_prefix@ - top_builddir = @top_builddir@ - top_srcdir = @top_srcdir@ - INTEL_G4I = addidct.g4i \ -@@ -261,14 +271,14 @@ - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ -- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ -- && exit 0; \ -+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ -+ && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ -- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu i965_drv_video/shaders/mpeg2/vld/Makefile'; \ -- cd $(top_srcdir) && \ -- $(AUTOMAKE) --gnu i965_drv_video/shaders/mpeg2/vld/Makefile -+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu i965_drv_video/shaders/mpeg2/vld/Makefile'; \ -+ $(am__cd) $(top_srcdir) && \ -+ $(AUTOMAKE) --gnu i965_drv_video/shaders/mpeg2/vld/Makefile - .PRECIOUS: Makefile - Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ -@@ -286,6 +296,7 @@ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - $(ACLOCAL_M4): $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -+$(am__aclocal_m4_deps): - - mostlyclean-libtool: - -rm -f *.lo -@@ -315,13 +326,17 @@ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ -+ if test -d "$(distdir)/$$file"; then \ -+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ -+ fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ -- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ -+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ -+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ -- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ -+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ -- test -f $(distdir)/$$file \ -- || cp -p $$d/$$file $(distdir)/$$file \ -+ test -f "$(distdir)/$$file" \ -+ || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done -@@ -351,6 +366,7 @@ - - distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - - maintainer-clean-generic: - @echo "This command is intended for maintainers to use" -@@ -371,6 +387,8 @@ - - html: html-am - -+html-am: -+ - info: info-am - - info-am: -@@ -379,18 +397,28 @@ - - install-dvi: install-dvi-am - -+install-dvi-am: -+ - install-exec-am: - - install-html: install-html-am - -+install-html-am: -+ - install-info: install-info-am - -+install-info-am: -+ - install-man: - - install-pdf: install-pdf-am - -+install-pdf-am: -+ - install-ps: install-ps-am - -+install-ps-am: -+ - installcheck-am: - - maintainer-clean: maintainer-clean-am -@@ -411,7 +439,7 @@ - - uninstall-am: - --.MAKE: install-am install-strip -+.MAKE: all check install install-am install-strip - - .PHONY: all all-am check check-am clean clean-generic clean-libtool \ - clean-local distclean distclean-generic distclean-libtool \ -@@ -433,6 +461,7 @@ - @HAVE_GEN4ASM_TRUE@clean-local: - @HAVE_GEN4ASM_TRUE@ -rm -f $(INTEL_G4B) - @HAVE_GEN4ASM_TRUE@ -rm -f $(INTEL_G4B_GEN5) -+ - # Tell versions [3.59,3.63) of GNU make to not export all variables. - # Otherwise a system limit (for SysV at least) may be exceeded. - .NOEXPORT: -diff -Naur libva-0.31.0/i965_drv_video/shaders/render/Makefile.in libva-0.31.0.patch/i965_drv_video/shaders/render/Makefile.in ---- libva-0.31.0/i965_drv_video/shaders/render/Makefile.in 2009-09-10 17:18:49.000000000 +0200 -+++ libva-0.31.0.patch/i965_drv_video/shaders/render/Makefile.in 2009-12-15 13:51:55.980446478 +0100 -@@ -1,8 +1,9 @@ --# Makefile.in generated by automake 1.10.1 from Makefile.am. -+# Makefile.in generated by automake 1.11 from Makefile.am. - # @configure_input@ - - # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, --# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. -+# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -+# Inc. - # This Makefile.in is free software; the Free Software Foundation - # gives unlimited permission to copy and/or distribute it, - # with or without modifications, as long as this notice is preserved. -@@ -15,8 +16,9 @@ - @SET_MAKE@ - VPATH = @srcdir@ - pkgdatadir = $(datadir)/@PACKAGE@ --pkglibdir = $(libdir)/@PACKAGE@ - pkgincludedir = $(includedir)/@PACKAGE@ -+pkglibdir = $(libdir)/@PACKAGE@ -+pkglibexecdir = $(libexecdir)/@PACKAGE@ - am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd - install_sh_DATA = $(install_sh) -c -m 644 - install_sh_PROGRAM = $(install_sh) -c -@@ -34,12 +36,16 @@ - subdir = i965_drv_video/shaders/render - 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)/m4/libtool.m4 \ -+ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ -+ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ -+ $(top_srcdir)/configure.ac - am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) - mkinstalldirs = $(install_sh) -d - CONFIG_HEADER = $(top_builddir)/config.h - CONFIG_CLEAN_FILES = -+CONFIG_CLEAN_VPATH_FILES = - SOURCES = - DIST_SOURCES = - DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -@@ -55,38 +61,35 @@ - CFLAGS = @CFLAGS@ - CPP = @CPP@ - CPPFLAGS = @CPPFLAGS@ --CXX = @CXX@ --CXXCPP = @CXXCPP@ --CXXDEPMODE = @CXXDEPMODE@ --CXXFLAGS = @CXXFLAGS@ - CYGPATH_W = @CYGPATH_W@ - DEFS = @DEFS@ - DEPDIR = @DEPDIR@ - DRM_CFLAGS = @DRM_CFLAGS@ - DRM_LIBS = @DRM_LIBS@ - DSYMUTIL = @DSYMUTIL@ --ECHO = @ECHO@ -+DUMPBIN = @DUMPBIN@ - ECHO_C = @ECHO_C@ - ECHO_N = @ECHO_N@ - ECHO_T = @ECHO_T@ - EGREP = @EGREP@ - EXEEXT = @EXEEXT@ --F77 = @F77@ --FFLAGS = @FFLAGS@ -+FGREP = @FGREP@ - GEN4ASM_CFLAGS = @GEN4ASM_CFLAGS@ - GEN4ASM_LIBS = @GEN4ASM_LIBS@ -+GL_DEPS_CFLAGS = @GL_DEPS_CFLAGS@ -+GL_DEPS_LIBS = @GL_DEPS_LIBS@ - GREP = @GREP@ - INSTALL = @INSTALL@ - INSTALL_DATA = @INSTALL_DATA@ - INSTALL_PROGRAM = @INSTALL_PROGRAM@ - INSTALL_SCRIPT = @INSTALL_SCRIPT@ - INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -+LD = @LD@ - LDFLAGS = @LDFLAGS@ - LIBOBJS = @LIBOBJS@ - LIBS = @LIBS@ - LIBTOOL = @LIBTOOL@ - LIBVA_CFLAGS = @LIBVA_CFLAGS@ --LIBVA_DISPLAY = @LIBVA_DISPLAY@ - LIBVA_DRIVERS_PATH = @LIBVA_DRIVERS_PATH@ - LIBVA_LIBS = @LIBVA_LIBS@ - LIBVA_LT_LDFLAGS = @LIBVA_LT_LDFLAGS@ -@@ -94,13 +97,19 @@ - LIBVA_MAJOR_VERSION = @LIBVA_MAJOR_VERSION@ - LIBVA_MICRO_VERSION = @LIBVA_MICRO_VERSION@ - LIBVA_MINOR_VERSION = @LIBVA_MINOR_VERSION@ -+LIBVA_SDS_VERSION = @LIBVA_SDS_VERSION@ - LIBVA_VERSION = @LIBVA_VERSION@ -+LIPO = @LIPO@ - LN_S = @LN_S@ - LTLIBOBJS = @LTLIBOBJS@ - MAKEINFO = @MAKEINFO@ - MKDIR_P = @MKDIR_P@ -+NM = @NM@ - NMEDIT = @NMEDIT@ -+OBJDUMP = @OBJDUMP@ - OBJEXT = @OBJEXT@ -+OTOOL = @OTOOL@ -+OTOOL64 = @OTOOL64@ - PACKAGE = @PACKAGE@ - PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ - PACKAGE_NAME = @PACKAGE_NAME@ -@@ -126,8 +135,7 @@ - abs_top_builddir = @abs_top_builddir@ - abs_top_srcdir = @abs_top_srcdir@ - ac_ct_CC = @ac_ct_CC@ --ac_ct_CXX = @ac_ct_CXX@ --ac_ct_F77 = @ac_ct_F77@ -+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ - am__include = @am__include@ - am__leading_dot = @am__leading_dot@ - am__quote = @am__quote@ -@@ -160,6 +168,7 @@ - libvacorelib = @libvacorelib@ - localedir = @localedir@ - localstatedir = @localstatedir@ -+lt_ECHO = @lt_ECHO@ - mandir = @mandir@ - mkdir_p = @mkdir_p@ - oldincludedir = @oldincludedir@ -@@ -173,6 +182,7 @@ - srcdir = @srcdir@ - sysconfdir = @sysconfdir@ - target_alias = @target_alias@ -+top_build_prefix = @top_build_prefix@ - top_builddir = @top_builddir@ - top_srcdir = @top_srcdir@ - INTEL_G4I = \ -@@ -183,27 +193,27 @@ - exa_sf.g4a \ - exa_wm_xy.g4a \ - exa_wm_src_affine.g4a \ -+ exa_wm_src_sample_argb.g4a \ - exa_wm_src_sample_planar.g4a \ - exa_wm_yuv_rgb.g4a \ -- exa_wm_blend_subpicture.g4a \ - exa_wm_write.g4a - - INTEL_G4B = \ - exa_sf.g4b \ - exa_wm_xy.g4b \ - exa_wm_src_affine.g4b \ -+ exa_wm_src_sample_argb.g4b \ - exa_wm_src_sample_planar.g4b \ - exa_wm_yuv_rgb.g4b \ -- exa_wm_blend_subpicture.g4b \ - exa_wm_write.g4b - - INTEL_G4B_GEN5 = \ - exa_sf.g4b.gen5 \ - exa_wm_xy.g4b.gen5 \ - exa_wm_src_affine.g4b.gen5 \ -+ exa_wm_src_sample_argb.g4b.gen5 \ - exa_wm_src_sample_planar.g4b.gen5 \ - exa_wm_yuv_rgb.g4b.gen5 \ -- exa_wm_blend_subpicture.g4b.gen5 \ - exa_wm_write.g4b.gen5 - - EXTRA_DIST = $(INTEL_G4I) \ -@@ -222,14 +232,14 @@ - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ -- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ -- && exit 0; \ -+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ -+ && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ -- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu i965_drv_video/shaders/render/Makefile'; \ -- cd $(top_srcdir) && \ -- $(AUTOMAKE) --gnu i965_drv_video/shaders/render/Makefile -+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu i965_drv_video/shaders/render/Makefile'; \ -+ $(am__cd) $(top_srcdir) && \ -+ $(AUTOMAKE) --gnu i965_drv_video/shaders/render/Makefile - .PRECIOUS: Makefile - Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ -@@ -247,6 +257,7 @@ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - $(ACLOCAL_M4): $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -+$(am__aclocal_m4_deps): - - mostlyclean-libtool: - -rm -f *.lo -@@ -276,13 +287,17 @@ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ -+ if test -d "$(distdir)/$$file"; then \ -+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ -+ fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ -- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ -+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ -+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ -- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ -+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ -- test -f $(distdir)/$$file \ -- || cp -p $$d/$$file $(distdir)/$$file \ -+ test -f "$(distdir)/$$file" \ -+ || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done -@@ -312,6 +327,7 @@ - - distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - - maintainer-clean-generic: - @echo "This command is intended for maintainers to use" -@@ -332,6 +348,8 @@ - - html: html-am - -+html-am: -+ - info: info-am - - info-am: -@@ -340,18 +358,28 @@ - - install-dvi: install-dvi-am - -+install-dvi-am: -+ - install-exec-am: - - install-html: install-html-am - -+install-html-am: -+ - install-info: install-info-am - -+install-info-am: -+ - install-man: - - install-pdf: install-pdf-am - -+install-pdf-am: -+ - install-ps: install-ps-am - -+install-ps-am: -+ - installcheck-am: - - maintainer-clean: maintainer-clean-am -@@ -372,7 +400,7 @@ - - uninstall-am: - --.MAKE: install-am install-strip -+.MAKE: all check install install-am install-strip - - .PHONY: all all-am check check-am clean clean-generic clean-libtool \ - clean-local distclean distclean-generic distclean-libtool \ -@@ -394,6 +422,7 @@ - @HAVE_GEN4ASM_TRUE@clean-local: - @HAVE_GEN4ASM_TRUE@ -rm -f $(INTEL_G4B) - @HAVE_GEN4ASM_TRUE@ -rm -f $(INTEL_G4B_GEN5) -+ - # Tell versions [3.59,3.63) of GNU make to not export all variables. - # Otherwise a system limit (for SysV at least) may be exceeded. - .NOEXPORT: -diff -Naur libva-0.31.0/libva-glx.pc.in libva-0.31.0.patch/libva-glx.pc.in ---- libva-0.31.0/libva-glx.pc.in 1970-01-01 01:00:00.000000000 +0100 -+++ libva-0.31.0.patch/libva-glx.pc.in 2009-12-15 13:45:17.333446938 +0100 -@@ -0,0 +1,12 @@ -+prefix=@prefix@ -+exec_prefix=@exec_prefix@ -+libdir=@libdir@ -+includedir=@includedir@ -+display=glx -+ -+Name: libva-${display} -+Description: Userspace Video Acceleration (VA) ${display} interface -+Requires: libva -+Version: @PACKAGE_VERSION@ -+Libs: -L${libdir} -lva-${display} -+Cflags: -I${includedir} -diff -Naur libva-0.31.0/libva-x11.pc.in libva-0.31.0.patch/libva-x11.pc.in ---- libva-0.31.0/libva-x11.pc.in 2009-09-10 17:18:49.000000000 +0200 -+++ libva-0.31.0.patch/libva-x11.pc.in 2009-12-15 13:44:27.498471319 +0100 -@@ -6,6 +6,7 @@ - - Name: libva-${display} - Description: Userspace Video Acceleration (VA) ${display} interface -+Requires: libva - Version: @PACKAGE_VERSION@ - Libs: -L${libdir} -lva-${display} - Cflags: -I${includedir} -diff -Naur libva-0.31.0/ltmain.sh libva-0.31.0.patch/ltmain.sh ---- libva-0.31.0/ltmain.sh 2009-06-25 17:34:55.000000000 +0200 -+++ libva-0.31.0.patch/ltmain.sh 2009-10-19 14:20:16.000000000 +0200 -@@ -1,52 +1,83 @@ --# ltmain.sh - Provide generalized library-building support services. --# NOTE: Changing this file will not affect anything until you rerun configure. --# --# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, --# 2007, 2008 Free Software Foundation, Inc. --# Originally by Gordon Matzigkeit , 1996 --# --# This program is free software; you can redistribute it and/or modify -+# Generated from ltmain.m4sh. -+ -+# ltmain.sh (GNU libtool) 2.2.6 -+# Written by Gordon Matzigkeit , 1996 -+ -+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, 2007 2008 Free Software Foundation, Inc. -+# This is free software; see the source for copying conditions. There is NO -+# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -+ -+# GNU Libtool is free software; you can redistribute it and/or modify - # it under the terms of the GNU General Public License as published by - # the Free Software Foundation; either version 2 of the License, or - # (at your option) any later version. - # --# This program is distributed in the hope that it will be useful, but -+# As a special exception to the GNU General Public License, -+# if you distribute this file as part of a program or library that -+# is built using GNU Libtool, you may include this file under the -+# same distribution terms that you use for the rest of that program. -+# -+# GNU Libtool is distributed in the hope that it will be useful, but - # WITHOUT ANY WARRANTY; without even the implied warranty of - # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - # General Public License for more details. - # - # You should have received a copy of the GNU General Public License --# along with this program; if not, write to the Free Software --# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. --# --# As a special exception to the GNU General Public License, if you --# distribute this file as part of a program that contains a --# configuration script generated by Autoconf, you may include it under --# the same distribution terms that you use for the rest of that program. -- --basename="s,^.*/,,g" -- --# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh --# is ksh but when the shell is invoked as "sh" and the current value of --# the _XPG environment variable is not equal to 1 (one), the special --# positional parameter $0, within a function call, is the name of the --# function. --progpath="$0" -- --# The name of this program: --progname=`echo "$progpath" | $SED $basename` --modename="$progname" -+# along with GNU Libtool; see the file COPYING. If not, a copy -+# can be downloaded from http://www.gnu.org/licenses/gpl.html, -+# or obtained by writing to the Free Software Foundation, Inc., -+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - --# Global variables: --EXIT_SUCCESS=0 --EXIT_FAILURE=1 -+# Usage: $progname [OPTION]... [MODE-ARG]... -+# -+# Provide generalized library-building support services. -+# -+# --config show all configuration variables -+# --debug enable verbose shell tracing -+# -n, --dry-run display commands without modifying any files -+# --features display basic configuration information and exit -+# --mode=MODE use operation mode MODE -+# --preserve-dup-deps don't remove duplicate dependency libraries -+# --quiet, --silent don't print informational messages -+# --tag=TAG use configuration variables from tag TAG -+# -v, --verbose print informational messages (default) -+# --version print version information -+# -h, --help print short or long help message -+# -+# MODE must be one of the following: -+# -+# clean remove files from the build directory -+# compile compile a source file into a libtool object -+# execute automatically set library path, then run a program -+# finish complete the installation of libtool libraries -+# install install libraries or executables -+# link create a library or an executable -+# uninstall remove libraries from an installed directory -+# -+# MODE-ARGS vary depending on the MODE. -+# Try `$progname --help --mode=MODE' for a more detailed description of MODE. -+# -+# When reporting a bug, please describe a test case to reproduce it and -+# include the following information: -+# -+# host-triplet: $host -+# shell: $SHELL -+# compiler: $LTCC -+# compiler flags: $LTCFLAGS -+# linker: $LD (gnu? $with_gnu_ld) -+# $progname: (GNU libtool) 2.2.6 -+# automake: $automake_version -+# autoconf: $autoconf_version -+# -+# Report bugs to . - - PROGRAM=ltmain.sh - PACKAGE=libtool --VERSION="1.5.26 Debian 1.5.26-1ubuntu1" --TIMESTAMP=" (1.1220.2.493 2008/02/01 16:58:18)" -+VERSION=2.2.6 -+TIMESTAMP="" -+package_revision=1.3012 - --# Be Bourne compatible (taken from Autoconf:_AS_BOURNE_COMPATIBLE). -+# Be Bourne compatible - if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then - emulate sh - NULLCMD=: -@@ -60,104 +91,261 @@ - BIN_SH=xpg4; export BIN_SH # for Tru64 - DUALCASE=1; export DUALCASE # for MKS sh - --# Check that we have a working $echo. --if test "X$1" = X--no-reexec; then -- # Discard the --no-reexec flag, and continue. -- shift --elif test "X$1" = X--fallback-echo; then -- # Avoid inline document here, it may be left over -- : --elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then -- # Yippee, $echo works! -- : --else -- # Restart under the correct shell, and then maybe $echo will work. -- exec $SHELL "$progpath" --no-reexec ${1+"$@"} --fi -- --if test "X$1" = X--fallback-echo; then -- # used as fallback echo -- shift -- cat <&2 -- $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 -- exit $EXIT_FAILURE --fi -+dirname="s,/[^/]*$,," -+basename="s,^.*/,," - --# Global variables. --mode=$default_mode --nonopt= --prev= --prevopt= --run= --show="$echo" --show_help= --execute_dlfiles= --duplicate_deps=no --preserve_args= --lo2o="s/\\.lo\$/.${objext}/" --o2lo="s/\\.${objext}\$/.lo/" --extracted_archives= --extracted_serial=0 -+# func_dirname_and_basename file append nondir_replacement -+# perform func_basename and func_dirname in a single function -+# call: -+# dirname: Compute the dirname of FILE. If nonempty, -+# add APPEND to the result, otherwise set result -+# to NONDIR_REPLACEMENT. -+# value returned in "$func_dirname_result" -+# basename: Compute filename of FILE. -+# value retuned in "$func_basename_result" -+# Implementation must be kept synchronized with func_dirname -+# and func_basename. For efficiency, we do not delegate to -+# those functions but instead duplicate the functionality here. -+func_dirname_and_basename () -+{ -+ # Extract subdirectory from the argument. -+ func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"` -+ if test "X$func_dirname_result" = "X${1}"; then -+ func_dirname_result="${3}" -+ else -+ func_dirname_result="$func_dirname_result${2}" -+ fi -+ func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"` -+} -+ -+# Generated shell functions inserted here. -+ -+# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh -+# is ksh but when the shell is invoked as "sh" and the current value of -+# the _XPG environment variable is not equal to 1 (one), the special -+# positional parameter $0, within a function call, is the name of the -+# function. -+progpath="$0" -+ -+# The name of this program: -+# In the unlikely event $progname began with a '-', it would play havoc with -+# func_echo (imagine progname=-n), so we prepend ./ in that case: -+func_dirname_and_basename "$progpath" -+progname=$func_basename_result -+case $progname in -+ -*) progname=./$progname ;; -+esac -+ -+# Make sure we have an absolute path for reexecution: -+case $progpath in -+ [\\/]*|[A-Za-z]:\\*) ;; -+ *[\\/]*) -+ progdir=$func_dirname_result -+ progdir=`cd "$progdir" && pwd` -+ progpath="$progdir/$progname" -+ ;; -+ *) -+ save_IFS="$IFS" -+ IFS=: -+ for progdir in $PATH; do -+ IFS="$save_IFS" -+ test -x "$progdir/$progname" && break -+ done -+ IFS="$save_IFS" -+ test -n "$progdir" || progdir=`pwd` -+ progpath="$progdir/$progname" -+ ;; -+esac -+ -+# Sed substitution that helps us do robust quoting. It backslashifies -+# metacharacters that are still active within double-quoted strings. -+Xsed="${SED}"' -e 1s/^X//' -+sed_quote_subst='s/\([`"$\\]\)/\\\1/g' -+ -+# Same as above, but do not quote variable references. -+double_quote_subst='s/\(["`\\]\)/\\\1/g' -+ -+# Re-`\' parameter expansions in output of double_quote_subst that were -+# `\'-ed in input to the same. If an odd number of `\' preceded a '$' -+# in input to double_quote_subst, that '$' was protected from expansion. -+# Since each input `\' is now two `\'s, look for any number of runs of -+# four `\'s followed by two `\'s and then a '$'. `\' that '$'. -+bs='\\' -+bs2='\\\\' -+bs4='\\\\\\\\' -+dollar='\$' -+sed_double_backslash="\ -+ s/$bs4/&\\ -+/g -+ s/^$bs2$dollar/$bs&/ -+ s/\\([^$bs]\\)$bs2$dollar/\\1$bs2$bs$dollar/g -+ s/\n//g" -+ -+# Standard options: -+opt_dry_run=false -+opt_help=false -+opt_quiet=false -+opt_verbose=false -+opt_warning=: -+ -+# func_echo arg... -+# Echo program name prefixed message, along with the current mode -+# name if it has been set yet. -+func_echo () -+{ -+ $ECHO "$progname${mode+: }$mode: $*" -+} -+ -+# func_verbose arg... -+# Echo program name prefixed message in verbose mode only. -+func_verbose () -+{ -+ $opt_verbose && func_echo ${1+"$@"} -+ -+ # A bug in bash halts the script if the last line of a function -+ # fails when set -e is in force, so we need another command to -+ # work around that: -+ : -+} -+ -+# func_error arg... -+# Echo program name prefixed message to standard error. -+func_error () -+{ -+ $ECHO "$progname${mode+: }$mode: "${1+"$@"} 1>&2 -+} -+ -+# func_warning arg... -+# Echo program name prefixed warning message to standard error. -+func_warning () -+{ -+ $opt_warning && $ECHO "$progname${mode+: }$mode: warning: "${1+"$@"} 1>&2 -+ -+ # bash bug again: -+ : -+} -+ -+# func_fatal_error arg... -+# Echo program name prefixed message to standard error, and exit. -+func_fatal_error () -+{ -+ func_error ${1+"$@"} -+ exit $EXIT_FAILURE -+} -+ -+# func_fatal_help arg... -+# Echo program name prefixed message to standard error, followed by -+# a help hint, and exit. -+func_fatal_help () -+{ -+ func_error ${1+"$@"} -+ func_fatal_error "$help" -+} -+help="Try \`$progname --help' for more information." ## default -+ -+ -+# func_grep expression filename -+# Check whether EXPRESSION matches any line of FILENAME, without output. -+func_grep () -+{ -+ $GREP "$1" "$2" >/dev/null 2>&1 -+} -+ -+ -+# func_mkdir_p directory-path -+# Make sure the entire path to DIRECTORY-PATH is available. -+func_mkdir_p () -+{ -+ my_directory_path="$1" -+ my_dir_list= -+ -+ if test -n "$my_directory_path" && test "$opt_dry_run" != ":"; then -+ -+ # Protect directory names starting with `-' -+ case $my_directory_path in -+ -*) my_directory_path="./$my_directory_path" ;; -+ esac -+ -+ # While some portion of DIR does not yet exist... -+ while test ! -d "$my_directory_path"; do -+ # ...make a list in topmost first order. Use a colon delimited -+ # list incase some portion of path contains whitespace. -+ my_dir_list="$my_directory_path:$my_dir_list" -+ -+ # If the last portion added has no slash in it, the list is done -+ case $my_directory_path in */*) ;; *) break ;; esac -+ -+ # ...otherwise throw away the child directory and loop -+ my_directory_path=`$ECHO "X$my_directory_path" | $Xsed -e "$dirname"` -+ done -+ my_dir_list=`$ECHO "X$my_dir_list" | $Xsed -e 's,:*$,,'` -+ -+ save_mkdir_p_IFS="$IFS"; IFS=':' -+ for my_dir in $my_dir_list; do -+ IFS="$save_mkdir_p_IFS" -+ # mkdir can fail with a `File exist' error if two processes -+ # try to create one of the directories concurrently. Don't -+ # stop in that case! -+ $MKDIR "$my_dir" 2>/dev/null || : -+ done -+ IFS="$save_mkdir_p_IFS" -+ -+ # Bail out if we (or some other process) failed to create a directory. -+ test -d "$my_directory_path" || \ -+ func_fatal_error "Failed to create \`$1'" -+ fi -+} - --##################################### --# Shell function definitions: --# This seems to be the best place for them - - # func_mktempdir [string] - # Make a temporary directory that won't clash with other running -@@ -167,7 +355,7 @@ - { - my_template="${TMPDIR-/tmp}/${1-$progname}" - -- if test "$run" = ":"; then -+ if test "$opt_dry_run" = ":"; then - # Return a directory name, but don't create it in dry-run mode - my_tmpdir="${my_template}-$$" - else -@@ -176,526 +364,787 @@ - my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null` - - if test ! -d "$my_tmpdir"; then -- # Failing that, at least try and use $RANDOM to avoid a race -- my_tmpdir="${my_template}-${RANDOM-0}$$" -+ # Failing that, at least try and use $RANDOM to avoid a race -+ my_tmpdir="${my_template}-${RANDOM-0}$$" - -- save_mktempdir_umask=`umask` -- umask 0077 -- $mkdir "$my_tmpdir" -- umask $save_mktempdir_umask -+ save_mktempdir_umask=`umask` -+ umask 0077 -+ $MKDIR "$my_tmpdir" -+ umask $save_mktempdir_umask - fi - - # If we're not in dry-run mode, bomb out on failure -- test -d "$my_tmpdir" || { -- $echo "cannot create temporary directory \`$my_tmpdir'" 1>&2 -- exit $EXIT_FAILURE -- } -+ test -d "$my_tmpdir" || \ -+ func_fatal_error "cannot create temporary directory \`$my_tmpdir'" - fi - -- $echo "X$my_tmpdir" | $Xsed -+ $ECHO "X$my_tmpdir" | $Xsed - } - - --# func_win32_libid arg --# return the library type of file 'arg' --# --# Need a lot of goo to handle *both* DLLs and import libs --# Has to be a shell function in order to 'eat' the argument --# that is supplied when $file_magic_command is called. --func_win32_libid () -+# func_quote_for_eval arg -+# Aesthetically quote ARG to be evaled later. -+# This function returns two values: FUNC_QUOTE_FOR_EVAL_RESULT -+# is double-quoted, suitable for a subsequent eval, whereas -+# FUNC_QUOTE_FOR_EVAL_UNQUOTED_RESULT has merely all characters -+# which are still active within double quotes backslashified. -+func_quote_for_eval () - { -- win32_libid_type="unknown" -- win32_fileres=`file -L $1 2>/dev/null` -- case $win32_fileres in -- *ar\ archive\ import\ library*) # definitely import -- win32_libid_type="x86 archive import" -- ;; -- *ar\ archive*) # could be an import, or static -- if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | \ -- $EGREP -e 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then -- win32_nmres=`eval $NM -f posix -A $1 | \ -- $SED -n -e '1,100{ -- / I /{ -- s,.*,import, -- p -- q -- } -- }'` -- case $win32_nmres in -- import*) win32_libid_type="x86 archive import";; -- *) win32_libid_type="x86 archive static";; -- esac -- fi -- ;; -- *DLL*) -- win32_libid_type="x86 DLL" -- ;; -- *executable*) # but shell scripts are "executable" too... -- case $win32_fileres in -- *MS\ Windows\ PE\ Intel*) -- win32_libid_type="x86 DLL" -- ;; -+ case $1 in -+ *[\\\`\"\$]*) -+ func_quote_for_eval_unquoted_result=`$ECHO "X$1" | $Xsed -e "$sed_quote_subst"` ;; -+ *) -+ func_quote_for_eval_unquoted_result="$1" ;; -+ esac -+ -+ case $func_quote_for_eval_unquoted_result in -+ # Double-quote args containing shell metacharacters to delay -+ # word splitting, command substitution and and variable -+ # expansion for a subsequent eval. -+ # Many Bourne shells cannot handle close brackets correctly -+ # in scan sets, so we specify it separately. -+ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") -+ func_quote_for_eval_result="\"$func_quote_for_eval_unquoted_result\"" -+ ;; -+ *) -+ func_quote_for_eval_result="$func_quote_for_eval_unquoted_result" - esac -- ;; -- esac -- $echo $win32_libid_type - } - - --# func_infer_tag arg --# Infer tagged configuration to use if any are available and --# if one wasn't chosen via the "--tag" command line option. --# Only attempt this if the compiler in the base compile --# command doesn't match the default compiler. --# arg is usually of the form 'gcc ...' --func_infer_tag () -+# func_quote_for_expand arg -+# Aesthetically quote ARG to be evaled later; same as above, -+# but do not quote variable references. -+func_quote_for_expand () - { -- if test -n "$available_tags" && test -z "$tagname"; then -- CC_quoted= -- for arg in $CC; do -- case $arg in -- *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") -- arg="\"$arg\"" -- ;; -- esac -- CC_quoted="$CC_quoted $arg" -- done -- case $@ in -- # Blanks in the command may have been stripped by the calling shell, -- # but not from the CC environment variable when configure was run. -- " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*) ;; -- # Blanks at the start of $base_compile will cause this to fail -- # if we don't check for them as well. -+ case $1 in -+ *[\\\`\"]*) -+ my_arg=`$ECHO "X$1" | $Xsed \ -+ -e "$double_quote_subst" -e "$sed_double_backslash"` ;; - *) -- for z in $available_tags; do -- if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then -- # Evaluate the configuration. -- eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`" -- CC_quoted= -- for arg in $CC; do -- # Double-quote args containing other shell metacharacters. -- case $arg in -- *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") -- arg="\"$arg\"" -- ;; -- esac -- CC_quoted="$CC_quoted $arg" -- done -- case "$@ " in -- " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*) -- # The compiler in the base compile command matches -- # the one in the tagged configuration. -- # Assume this is the tagged configuration we want. -- tagname=$z -- break -- ;; -- esac -- fi -- done -- # If $tagname still isn't set, then no tagged configuration -- # was found and let the user know that the "--tag" command -- # line option must be used. -- if test -z "$tagname"; then -- $echo "$modename: unable to infer tagged configuration" -- $echo "$modename: specify a tag with \`--tag'" 1>&2 -- exit $EXIT_FAILURE --# else --# $echo "$modename: using $tagname tagged configuration" -- fi -- ;; -- esac -- fi -+ my_arg="$1" ;; -+ esac -+ -+ case $my_arg in -+ # Double-quote args containing shell metacharacters to delay -+ # word splitting and command substitution for a subsequent eval. -+ # Many Bourne shells cannot handle close brackets correctly -+ # in scan sets, so we specify it separately. -+ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") -+ my_arg="\"$my_arg\"" -+ ;; -+ esac -+ -+ func_quote_for_expand_result="$my_arg" - } - - --# func_extract_an_archive dir oldlib --func_extract_an_archive () -+# func_show_eval cmd [fail_exp] -+# Unless opt_silent is true, then output CMD. Then, if opt_dryrun is -+# not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP -+# is given, then evaluate it. -+func_show_eval () - { -- f_ex_an_ar_dir="$1"; shift -- f_ex_an_ar_oldlib="$1" -+ my_cmd="$1" -+ my_fail_exp="${2-:}" - -- $show "(cd $f_ex_an_ar_dir && $AR x $f_ex_an_ar_oldlib)" -- $run eval "(cd \$f_ex_an_ar_dir && $AR x \$f_ex_an_ar_oldlib)" || exit $? -- if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then -- : -- else -- $echo "$modename: ERROR: object name conflicts: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" 1>&2 -- exit $EXIT_FAILURE -+ ${opt_silent-false} || { -+ func_quote_for_expand "$my_cmd" -+ eval "func_echo $func_quote_for_expand_result" -+ } -+ -+ if ${opt_dry_run-false}; then :; else -+ eval "$my_cmd" -+ my_status=$? -+ if test "$my_status" -eq 0; then :; else -+ eval "(exit $my_status); $my_fail_exp" -+ fi - fi - } - --# func_extract_archives gentop oldlib ... --func_extract_archives () -+ -+# func_show_eval_locale cmd [fail_exp] -+# Unless opt_silent is true, then output CMD. Then, if opt_dryrun is -+# not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP -+# is given, then evaluate it. Use the saved locale for evaluation. -+func_show_eval_locale () - { -- my_gentop="$1"; shift -- my_oldlibs=${1+"$@"} -- my_oldobjs="" -- my_xlib="" -- my_xabs="" -- my_xdir="" -- my_status="" -+ my_cmd="$1" -+ my_fail_exp="${2-:}" -+ -+ ${opt_silent-false} || { -+ func_quote_for_expand "$my_cmd" -+ eval "func_echo $func_quote_for_expand_result" -+ } - -- $show "${rm}r $my_gentop" -- $run ${rm}r "$my_gentop" -- $show "$mkdir $my_gentop" -- $run $mkdir "$my_gentop" -- my_status=$? -- if test "$my_status" -ne 0 && test ! -d "$my_gentop"; then -- exit $my_status -+ if ${opt_dry_run-false}; then :; else -+ eval "$lt_user_locale -+ $my_cmd" -+ my_status=$? -+ eval "$lt_safe_locale" -+ if test "$my_status" -eq 0; then :; else -+ eval "(exit $my_status); $my_fail_exp" -+ fi - fi -+} - -- for my_xlib in $my_oldlibs; do -- # Extract the objects. -- case $my_xlib in -- [\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;; -- *) my_xabs=`pwd`"/$my_xlib" ;; -- esac -- my_xlib=`$echo "X$my_xlib" | $Xsed -e 's%^.*/%%'` -- my_xlib_u=$my_xlib -- while :; do -- case " $extracted_archives " in -- *" $my_xlib_u "*) -- extracted_serial=`expr $extracted_serial + 1` -- my_xlib_u=lt$extracted_serial-$my_xlib ;; -- *) break ;; -- esac -- done -- extracted_archives="$extracted_archives $my_xlib_u" -- my_xdir="$my_gentop/$my_xlib_u" - -- $show "${rm}r $my_xdir" -- $run ${rm}r "$my_xdir" -- $show "$mkdir $my_xdir" -- $run $mkdir "$my_xdir" -- exit_status=$? -- if test "$exit_status" -ne 0 && test ! -d "$my_xdir"; then -- exit $exit_status -- fi -- case $host in -- *-darwin*) -- $show "Extracting $my_xabs" -- # Do not bother doing anything if just a dry run -- if test -z "$run"; then -- darwin_orig_dir=`pwd` -- cd $my_xdir || exit $? -- darwin_archive=$my_xabs -- darwin_curdir=`pwd` -- darwin_base_archive=`$echo "X$darwin_archive" | $Xsed -e 's%^.*/%%'` -- darwin_arches=`lipo -info "$darwin_archive" 2>/dev/null | $EGREP Architectures 2>/dev/null` -- if test -n "$darwin_arches"; then -- darwin_arches=`echo "$darwin_arches" | $SED -e 's/.*are://'` -- darwin_arch= -- $show "$darwin_base_archive has multiple architectures $darwin_arches" -- for darwin_arch in $darwin_arches ; do -- mkdir -p "unfat-$$/${darwin_base_archive}-${darwin_arch}" -- lipo -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}" -- cd "unfat-$$/${darwin_base_archive}-${darwin_arch}" -- func_extract_an_archive "`pwd`" "${darwin_base_archive}" -- cd "$darwin_curdir" -- $rm "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" -- done # $darwin_arches -- ## Okay now we have a bunch of thin objects, gotta fatten them up :) -- darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print| xargs basename | sort -u | $NL2SP` -- darwin_file= -- darwin_files= -- for darwin_file in $darwin_filelist; do -- darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP` -- lipo -create -output "$darwin_file" $darwin_files -- done # $darwin_filelist -- ${rm}r unfat-$$ -- cd "$darwin_orig_dir" -- else -- cd "$darwin_orig_dir" -- func_extract_an_archive "$my_xdir" "$my_xabs" -- fi # $darwin_arches -- fi # $run -- ;; -- *) -- func_extract_an_archive "$my_xdir" "$my_xabs" -- ;; -- esac -- my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP` -- done -- func_extract_archives_result="$my_oldobjs" -+ -+ -+ -+# func_version -+# Echo version message to standard output and exit. -+func_version () -+{ -+ $SED -n '/^# '$PROGRAM' (GNU /,/# warranty; / { -+ s/^# // -+ s/^# *$// -+ s/\((C)\)[ 0-9,-]*\( [1-9][0-9]*\)/\1\2/ -+ p -+ }' < "$progpath" -+ exit $? -+} -+ -+# func_usage -+# Echo short help message to standard output and exit. -+func_usage () -+{ -+ $SED -n '/^# Usage:/,/# -h/ { -+ s/^# // -+ s/^# *$// -+ s/\$progname/'$progname'/ -+ p -+ }' < "$progpath" -+ $ECHO -+ $ECHO "run \`$progname --help | more' for full usage" -+ exit $? -+} -+ -+# func_help -+# Echo long help message to standard output and exit. -+func_help () -+{ -+ $SED -n '/^# Usage:/,/# Report bugs to/ { -+ s/^# // -+ s/^# *$// -+ s*\$progname*'$progname'* -+ s*\$host*'"$host"'* -+ s*\$SHELL*'"$SHELL"'* -+ s*\$LTCC*'"$LTCC"'* -+ s*\$LTCFLAGS*'"$LTCFLAGS"'* -+ s*\$LD*'"$LD"'* -+ s/\$with_gnu_ld/'"$with_gnu_ld"'/ -+ s/\$automake_version/'"`(automake --version) 2>/dev/null |$SED 1q`"'/ -+ s/\$autoconf_version/'"`(autoconf --version) 2>/dev/null |$SED 1q`"'/ -+ p -+ }' < "$progpath" -+ exit $? -+} -+ -+# func_missing_arg argname -+# Echo program name prefixed message to standard error and set global -+# exit_cmd. -+func_missing_arg () -+{ -+ func_error "missing argument for $1" -+ exit_cmd=exit - } --# End of Shell function definitions --##################################### - --# Darwin sucks --eval std_shrext=\"$shrext_cmds\" -+exit_cmd=: - --disable_libs=no - --# Parse our command line options once, thoroughly. --while test "$#" -gt 0 --do -- arg="$1" -+ -+ -+ -+# Check that we have a working $ECHO. -+if test "X$1" = X--no-reexec; then -+ # Discard the --no-reexec flag, and continue. - shift -+elif test "X$1" = X--fallback-echo; then -+ # Avoid inline document here, it may be left over -+ : -+elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t'; then -+ # Yippee, $ECHO works! -+ : -+else -+ # Restart under the correct shell, and then maybe $ECHO will work. -+ exec $SHELL "$progpath" --no-reexec ${1+"$@"} -+fi - -- case $arg in -- -*=*) optarg=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;; -- *) optarg= ;; -- esac -+if test "X$1" = X--fallback-echo; then -+ # used as fallback echo -+ shift -+ cat <&2 -- exit $EXIT_FAILURE -- ;; -- esac -+magic="%%%MAGIC variable%%%" -+magic_exe="%%%MAGIC EXE variable%%%" - -- case $tagname in -- CC) -- # Don't test for the "default" C tag, as we know, it's there, but -- # not specially marked. -- ;; -- *) -- if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "$progpath" > /dev/null; then -- taglist="$taglist $tagname" -- # Evaluate the configuration. -- eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$tagname'$/,/^# ### END LIBTOOL TAG CONFIG: '$tagname'$/p' < $progpath`" -- else -- $echo "$progname: ignoring unknown tag $tagname" 1>&2 -- fi -- ;; -- esac -- ;; -- *) -- eval "$prev=\$arg" -- ;; -- esac -+# Global variables. -+# $mode is unset -+nonopt= -+execute_dlfiles= -+preserve_args= -+lo2o="s/\\.lo\$/.${objext}/" -+o2lo="s/\\.${objext}\$/.lo/" -+extracted_archives= -+extracted_serial=0 - -- prev= -- prevopt= -- continue -- fi -+opt_dry_run=false -+opt_duplicate_deps=false -+opt_silent=false -+opt_debug=: - -- # Have we seen a non-optional argument yet? -- case $arg in -- --help) -- show_help=yes -- ;; -+# If this variable is set in any of the actions, the command in it -+# will be execed at the end. This prevents here-documents from being -+# left over by shells. -+exec_cmd= - -- --version) -- echo "\ --$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP -- --Copyright (C) 2008 Free Software Foundation, Inc. --This is free software; see the source for copying conditions. There is NO --warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." -- exit $? -- ;; -+# func_fatal_configuration arg... -+# Echo program name prefixed message to standard error, followed by -+# a configuration failure hint, and exit. -+func_fatal_configuration () -+{ -+ func_error ${1+"$@"} -+ func_error "See the $PACKAGE documentation for more information." -+ func_fatal_error "Fatal configuration error." -+} -+ -+ -+# func_config -+# Display the configuration for all the tags in this script. -+func_config () -+{ -+ re_begincf='^# ### BEGIN LIBTOOL' -+ re_endcf='^# ### END LIBTOOL' -+ -+ # Default configuration. -+ $SED "1,/$re_begincf CONFIG/d;/$re_endcf CONFIG/,\$d" < "$progpath" - -- --config) -- ${SED} -e '1,/^# ### BEGIN LIBTOOL CONFIG/d' -e '/^# ### END LIBTOOL CONFIG/,$d' $progpath - # Now print the configurations for the tags. - for tagname in $taglist; do -- ${SED} -n -e "/^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$/,/^# ### END LIBTOOL TAG CONFIG: $tagname$/p" < "$progpath" -+ $SED -n "/$re_begincf TAG CONFIG: $tagname\$/,/$re_endcf TAG CONFIG: $tagname\$/p" < "$progpath" - done -- exit $? -- ;; -- -- --debug) -- $echo "$progname: enabling shell trace mode" -- set -x -- preserve_args="$preserve_args $arg" -- ;; - -- --dry-run | -n) -- run=: -- ;; -+ exit $? -+} - -- --features) -- $echo "host: $host" -+# func_features -+# Display the features supported by this script. -+func_features () -+{ -+ $ECHO "host: $host" - if test "$build_libtool_libs" = yes; then -- $echo "enable shared libraries" -+ $ECHO "enable shared libraries" - else -- $echo "disable shared libraries" -+ $ECHO "disable shared libraries" - fi - if test "$build_old_libs" = yes; then -- $echo "enable static libraries" -+ $ECHO "enable static libraries" - else -- $echo "disable static libraries" -+ $ECHO "disable static libraries" - fi -+ - exit $? -- ;; -+} - -- --finish) mode="finish" ;; -+# func_enable_tag tagname -+# Verify that TAGNAME is valid, and either flag an error and exit, or -+# enable the TAGNAME tag. We also add TAGNAME to the global $taglist -+# variable here. -+func_enable_tag () -+{ -+ # Global variable: -+ tagname="$1" -+ -+ re_begincf="^# ### BEGIN LIBTOOL TAG CONFIG: $tagname\$" -+ re_endcf="^# ### END LIBTOOL TAG CONFIG: $tagname\$" -+ sed_extractcf="/$re_begincf/,/$re_endcf/p" -+ -+ # Validate tagname. -+ case $tagname in -+ *[!-_A-Za-z0-9,/]*) -+ func_fatal_error "invalid tag name: $tagname" -+ ;; -+ esac - -- --mode) prevopt="--mode" prev=mode ;; -- --mode=*) mode="$optarg" ;; -+ # Don't test for the "default" C tag, as we know it's -+ # there but not specially marked. -+ case $tagname in -+ CC) ;; -+ *) -+ if $GREP "$re_begincf" "$progpath" >/dev/null 2>&1; then -+ taglist="$taglist $tagname" - -- --preserve-dup-deps) duplicate_deps="yes" ;; -+ # Evaluate the configuration. Be careful to quote the path -+ # and the sed script, to avoid splitting on whitespace, but -+ # also don't use non-portable quotes within backquotes within -+ # quotes we have to do it in 2 steps: -+ extractedcf=`$SED -n -e "$sed_extractcf" < "$progpath"` -+ eval "$extractedcf" -+ else -+ func_error "ignoring unknown tag $tagname" -+ fi -+ ;; -+ esac -+} - -- --quiet | --silent) -- show=: -- preserve_args="$preserve_args $arg" -- ;; -+# Parse options once, thoroughly. This comes as soon as possible in -+# the script to make things like `libtool --version' happen quickly. -+{ - -- --tag) -- prevopt="--tag" -- prev=tag -- preserve_args="$preserve_args --tag" -+ # Shorthand for --mode=foo, only valid as the first argument -+ case $1 in -+ clean|clea|cle|cl) -+ shift; set dummy --mode clean ${1+"$@"}; shift - ;; -- --tag=*) -- set tag "$optarg" ${1+"$@"} -- shift -- prev=tag -- preserve_args="$preserve_args --tag" -+ compile|compil|compi|comp|com|co|c) -+ shift; set dummy --mode compile ${1+"$@"}; shift - ;; -- -- -dlopen) -- prevopt="-dlopen" -- prev=execute_dlfiles -+ execute|execut|execu|exec|exe|ex|e) -+ shift; set dummy --mode execute ${1+"$@"}; shift - ;; -- -- -*) -- $echo "$modename: unrecognized option \`$arg'" 1>&2 -- $echo "$help" 1>&2 -- exit $EXIT_FAILURE -+ finish|finis|fini|fin|fi|f) -+ shift; set dummy --mode finish ${1+"$@"}; shift - ;; -- -- *) -- nonopt="$arg" -- break -+ install|instal|insta|inst|ins|in|i) -+ shift; set dummy --mode install ${1+"$@"}; shift -+ ;; -+ link|lin|li|l) -+ shift; set dummy --mode link ${1+"$@"}; shift -+ ;; -+ uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u) -+ shift; set dummy --mode uninstall ${1+"$@"}; shift - ;; - esac --done - --if test -n "$prevopt"; then -- $echo "$modename: option \`$prevopt' requires an argument" 1>&2 -- $echo "$help" 1>&2 -- exit $EXIT_FAILURE --fi -+ # Parse non-mode specific arguments: -+ while test "$#" -gt 0; do -+ opt="$1" -+ shift - --case $disable_libs in --no) -- ;; --shared) -- build_libtool_libs=no -- build_old_libs=yes -- ;; --static) -- build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac` -- ;; --esac -+ case $opt in -+ --config) func_config ;; - --# If this variable is set in any of the actions, the command in it --# will be execed at the end. This prevents here-documents from being --# left over by shells. --exec_cmd= -+ --debug) preserve_args="$preserve_args $opt" -+ func_echo "enabling shell trace mode" -+ opt_debug='set -x' -+ $opt_debug -+ ;; - --if test -z "$show_help"; then -+ -dlopen) test "$#" -eq 0 && func_missing_arg "$opt" && break -+ execute_dlfiles="$execute_dlfiles $1" -+ shift -+ ;; - -- # Infer the operation mode. -- if test -z "$mode"; then -- $echo "*** Warning: inferring the mode of operation is deprecated." 1>&2 -- $echo "*** Future versions of Libtool will require --mode=MODE be specified." 1>&2 -- case $nonopt in -- *cc | cc* | *++ | gcc* | *-gcc* | g++* | xlc*) -- mode=link -- for arg -- do -- case $arg in -- -c) -- mode=compile -- break -- ;; -- esac -- done -- ;; -- *db | *dbx | *strace | *truss) -- mode=execute -- ;; -- *install*|cp|mv) -- mode=install -- ;; -- *rm) -- mode=uninstall -+ --dry-run | -n) opt_dry_run=: ;; -+ --features) func_features ;; -+ --finish) mode="finish" ;; -+ -+ --mode) test "$#" -eq 0 && func_missing_arg "$opt" && break -+ case $1 in -+ # Valid mode arguments: -+ clean) ;; -+ compile) ;; -+ execute) ;; -+ finish) ;; -+ install) ;; -+ link) ;; -+ relink) ;; -+ uninstall) ;; -+ -+ # Catch anything else as an error -+ *) func_error "invalid argument for $opt" -+ exit_cmd=exit -+ break -+ ;; -+ esac -+ -+ mode="$1" -+ shift -+ ;; -+ -+ --preserve-dup-deps) -+ opt_duplicate_deps=: ;; -+ -+ --quiet|--silent) preserve_args="$preserve_args $opt" -+ opt_silent=: -+ ;; -+ -+ --verbose| -v) preserve_args="$preserve_args $opt" -+ opt_silent=false -+ ;; -+ -+ --tag) test "$#" -eq 0 && func_missing_arg "$opt" && break -+ preserve_args="$preserve_args $opt $1" -+ func_enable_tag "$1" # tagname is set here -+ shift -+ ;; -+ -+ # Separate optargs to long options: -+ -dlopen=*|--mode=*|--tag=*) -+ func_opt_split "$opt" -+ set dummy "$func_opt_split_opt" "$func_opt_split_arg" ${1+"$@"} -+ shift -+ ;; -+ -+ -\?|-h) func_usage ;; -+ --help) opt_help=: ;; -+ --version) func_version ;; -+ -+ -*) func_fatal_help "unrecognized option \`$opt'" ;; -+ -+ *) nonopt="$opt" -+ break -+ ;; -+ esac -+ done -+ -+ -+ case $host in -+ *cygwin* | *mingw* | *pw32* | *cegcc*) -+ # don't eliminate duplications in $postdeps and $predeps -+ opt_duplicate_compiler_generated_deps=: - ;; - *) -- # If we have no mode, but dlfiles were specified, then do execute mode. -- test -n "$execute_dlfiles" && mode=execute -+ opt_duplicate_compiler_generated_deps=$opt_duplicate_deps -+ ;; -+ esac - -- # Just use the default operation mode. -- if test -z "$mode"; then -- if test -n "$nonopt"; then -- $echo "$modename: warning: cannot infer operation mode from \`$nonopt'" 1>&2 -- else -- $echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2 -- fi -+ # Having warned about all mis-specified options, bail out if -+ # anything was wrong. -+ $exit_cmd $EXIT_FAILURE -+} -+ -+# func_check_version_match -+# Ensure that we are using m4 macros, and libtool script from the same -+# release of libtool. -+func_check_version_match () -+{ -+ if test "$package_revision" != "$macro_revision"; then -+ if test "$VERSION" != "$macro_version"; then -+ if test -z "$macro_version"; then -+ cat >&2 <<_LT_EOF -+$progname: Version mismatch error. This is $PACKAGE $VERSION, but the -+$progname: definition of this LT_INIT comes from an older release. -+$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION -+$progname: and run autoconf again. -+_LT_EOF -+ else -+ cat >&2 <<_LT_EOF -+$progname: Version mismatch error. This is $PACKAGE $VERSION, but the -+$progname: definition of this LT_INIT comes from $PACKAGE $macro_version. -+$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION -+$progname: and run autoconf again. -+_LT_EOF - fi -- ;; -- esac -+ else -+ cat >&2 <<_LT_EOF -+$progname: Version mismatch error. This is $PACKAGE $VERSION, revision $package_revision, -+$progname: but the definition of this LT_INIT comes from revision $macro_revision. -+$progname: You should recreate aclocal.m4 with macros from revision $package_revision -+$progname: of $PACKAGE $VERSION and run autoconf again. -+_LT_EOF -+ fi -+ -+ exit $EXIT_MISMATCH -+ fi -+} -+ -+ -+## ----------- ## -+## Main. ## -+## ----------- ## -+ -+$opt_help || { -+ # Sanity checks first: -+ func_check_version_match -+ -+ if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then -+ func_fatal_configuration "not configured to build any kind of library" - fi - -+ test -z "$mode" && func_fatal_error "error: you must specify a MODE." -+ -+ -+ # Darwin sucks -+ eval std_shrext=\"$shrext_cmds\" -+ -+ - # Only execute mode is allowed to have -dlopen flags. - if test -n "$execute_dlfiles" && test "$mode" != execute; then -- $echo "$modename: unrecognized option \`-dlopen'" 1>&2 -- $echo "$help" 1>&2 -+ func_error "unrecognized option \`-dlopen'" -+ $ECHO "$help" 1>&2 - exit $EXIT_FAILURE - fi - - # Change the help message to a mode-specific one. - generic_help="$help" -- help="Try \`$modename --help --mode=$mode' for more information." -+ help="Try \`$progname --help --mode=$mode' for more information." -+} - -- # These modes are in order of execution frequency so that they run quickly. -- case $mode in -- # libtool compile mode -- compile) -- modename="$modename: compile" -- # Get the compilation command and the source file. -- base_compile= -- srcfile="$nonopt" # always keep a non-empty value in "srcfile" -- suppress_opt=yes -- suppress_output= -- arg_mode=normal -- libobj= -- later= - -- for arg -- do -- case $arg_mode in -- arg ) -- # do not "continue". Instead, add this to base_compile -- lastarg="$arg" -- arg_mode=normal -- ;; -+# func_lalib_p file -+# True iff FILE is a libtool `.la' library or `.lo' object file. -+# This function is only a basic sanity check; it will hardly flush out -+# determined imposters. -+func_lalib_p () -+{ -+ test -f "$1" && -+ $SED -e 4q "$1" 2>/dev/null \ -+ | $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1 -+} - -- target ) -- libobj="$arg" -- arg_mode=normal -- continue -- ;; -+# func_lalib_unsafe_p file -+# True iff FILE is a libtool `.la' library or `.lo' object file. -+# This function implements the same check as func_lalib_p without -+# resorting to external programs. To this end, it redirects stdin and -+# closes it afterwards, without saving the original file descriptor. -+# As a safety measure, use it only where a negative result would be -+# fatal anyway. Works if `file' does not exist. -+func_lalib_unsafe_p () -+{ -+ lalib_p=no -+ if test -f "$1" && test -r "$1" && exec 5<&0 <"$1"; then -+ for lalib_p_l in 1 2 3 4 -+ do -+ read lalib_p_line -+ case "$lalib_p_line" in -+ \#\ Generated\ by\ *$PACKAGE* ) lalib_p=yes; break;; -+ esac -+ done -+ exec 0<&5 5<&- -+ fi -+ test "$lalib_p" = yes -+} - -- normal ) -- # Accept any command-line options. -- case $arg in -- -o) -- if test -n "$libobj" ; then -- $echo "$modename: you cannot specify \`-o' more than once" 1>&2 -- exit $EXIT_FAILURE -- fi -- arg_mode=target -- continue -- ;; -+# func_ltwrapper_script_p file -+# True iff FILE is a libtool wrapper script -+# This function is only a basic sanity check; it will hardly flush out -+# determined imposters. -+func_ltwrapper_script_p () -+{ -+ func_lalib_p "$1" -+} - -- -static | -prefer-pic | -prefer-non-pic) -- later="$later $arg" -- continue -- ;; -+# func_ltwrapper_executable_p file -+# True iff FILE is a libtool wrapper executable -+# This function is only a basic sanity check; it will hardly flush out -+# determined imposters. -+func_ltwrapper_executable_p () -+{ -+ func_ltwrapper_exec_suffix= -+ case $1 in -+ *.exe) ;; -+ *) func_ltwrapper_exec_suffix=.exe ;; -+ esac -+ $GREP "$magic_exe" "$1$func_ltwrapper_exec_suffix" >/dev/null 2>&1 -+} -+ -+# func_ltwrapper_scriptname file -+# Assumes file is an ltwrapper_executable -+# uses $file to determine the appropriate filename for a -+# temporary ltwrapper_script. -+func_ltwrapper_scriptname () -+{ -+ func_ltwrapper_scriptname_result="" -+ if func_ltwrapper_executable_p "$1"; then -+ func_dirname_and_basename "$1" "" "." -+ func_stripname '' '.exe' "$func_basename_result" -+ func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper" -+ fi -+} -+ -+# func_ltwrapper_p file -+# True iff FILE is a libtool wrapper script or wrapper executable -+# This function is only a basic sanity check; it will hardly flush out -+# determined imposters. -+func_ltwrapper_p () -+{ -+ func_ltwrapper_script_p "$1" || func_ltwrapper_executable_p "$1" -+} -+ -+ -+# func_execute_cmds commands fail_cmd -+# Execute tilde-delimited COMMANDS. -+# If FAIL_CMD is given, eval that upon failure. -+# FAIL_CMD may read-access the current command in variable CMD! -+func_execute_cmds () -+{ -+ $opt_debug -+ save_ifs=$IFS; IFS='~' -+ for cmd in $1; do -+ IFS=$save_ifs -+ eval cmd=\"$cmd\" -+ func_show_eval "$cmd" "${2-:}" -+ done -+ IFS=$save_ifs -+} -+ -+ -+# func_source file -+# Source FILE, adding directory component if necessary. -+# Note that it is not necessary on cygwin/mingw to append a dot to -+# FILE even if both FILE and FILE.exe exist: automatic-append-.exe -+# behavior happens only for exec(3), not for open(2)! Also, sourcing -+# `FILE.' does not work on cygwin managed mounts. -+func_source () -+{ -+ $opt_debug -+ case $1 in -+ */* | *\\*) . "$1" ;; -+ *) . "./$1" ;; -+ esac -+} -+ -+ -+# func_infer_tag arg -+# Infer tagged configuration to use if any are available and -+# if one wasn't chosen via the "--tag" command line option. -+# Only attempt this if the compiler in the base compile -+# command doesn't match the default compiler. -+# arg is usually of the form 'gcc ...' -+func_infer_tag () -+{ -+ $opt_debug -+ if test -n "$available_tags" && test -z "$tagname"; then -+ CC_quoted= -+ for arg in $CC; do -+ func_quote_for_eval "$arg" -+ CC_quoted="$CC_quoted $func_quote_for_eval_result" -+ done -+ case $@ in -+ # Blanks in the command may have been stripped by the calling shell, -+ # but not from the CC environment variable when configure was run. -+ " $CC "* | "$CC "* | " `$ECHO $CC` "* | "`$ECHO $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$ECHO $CC_quoted` "* | "`$ECHO $CC_quoted` "*) ;; -+ # Blanks at the start of $base_compile will cause this to fail -+ # if we don't check for them as well. -+ *) -+ for z in $available_tags; do -+ if $GREP "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then -+ # Evaluate the configuration. -+ eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`" -+ CC_quoted= -+ for arg in $CC; do -+ # Double-quote args containing other shell metacharacters. -+ func_quote_for_eval "$arg" -+ CC_quoted="$CC_quoted $func_quote_for_eval_result" -+ done -+ case "$@ " in -+ " $CC "* | "$CC "* | " `$ECHO $CC` "* | "`$ECHO $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$ECHO $CC_quoted` "* | "`$ECHO $CC_quoted` "*) -+ # The compiler in the base compile command matches -+ # the one in the tagged configuration. -+ # Assume this is the tagged configuration we want. -+ tagname=$z -+ break -+ ;; -+ esac -+ fi -+ done -+ # If $tagname still isn't set, then no tagged configuration -+ # was found and let the user know that the "--tag" command -+ # line option must be used. -+ if test -z "$tagname"; then -+ func_echo "unable to infer tagged configuration" -+ func_fatal_error "specify a tag with \`--tag'" -+# else -+# func_verbose "using $tagname tagged configuration" -+ fi -+ ;; -+ esac -+ fi -+} -+ -+ -+ -+# func_write_libtool_object output_name pic_name nonpic_name -+# Create a libtool object file (analogous to a ".la" file), -+# but don't create it if we're doing a dry run. -+func_write_libtool_object () -+{ -+ write_libobj=${1} -+ if test "$build_libtool_libs" = yes; then -+ write_lobj=\'${2}\' -+ else -+ write_lobj=none -+ fi -+ -+ if test "$build_old_libs" = yes; then -+ write_oldobj=\'${3}\' -+ else -+ write_oldobj=none -+ fi -+ -+ $opt_dry_run || { -+ cat >${write_libobj}T <\?\'\ \ ]*|*]*|"") -- arg="\"$arg\"" -- ;; -- esac -- lastarg="$lastarg $arg" -+ func_quote_for_eval "$arg" -+ lastarg="$lastarg $func_quote_for_eval_result" - done - IFS="$save_ifs" -- lastarg=`$echo "X$lastarg" | $Xsed -e "s/^ //"` -+ func_stripname ' ' '' "$lastarg" -+ lastarg=$func_stripname_result - - # Add the arguments to base_compile. - base_compile="$base_compile $lastarg" - continue - ;; - -- * ) -+ *) - # Accept the current argument as the source file. - # The previous "srcfile" becomes the current argument. - # -@@ -744,66 +1187,42 @@ - esac # case $arg_mode - - # Aesthetically quote the previous argument. -- lastarg=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"` -- -- case $lastarg in -- # Double-quote args containing other shell metacharacters. -- # Many Bourne shells cannot handle close brackets correctly -- # in scan sets, and some SunOS ksh mistreat backslash-escaping -- # in scan sets (worked around with variable expansion), -- # and furthermore cannot handle '|' '&' '(' ')' in scan sets -- # at all, so we specify them separately. -- *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") -- lastarg="\"$lastarg\"" -- ;; -- esac -- -- base_compile="$base_compile $lastarg" -+ func_quote_for_eval "$lastarg" -+ base_compile="$base_compile $func_quote_for_eval_result" - done # for arg - - case $arg_mode in - arg) -- $echo "$modename: you must specify an argument for -Xcompile" -- exit $EXIT_FAILURE -+ func_fatal_error "you must specify an argument for -Xcompile" - ;; - target) -- $echo "$modename: you must specify a target with \`-o'" 1>&2 -- exit $EXIT_FAILURE -+ func_fatal_error "you must specify a target with \`-o'" - ;; - *) - # Get the name of the library object. -- [ -z "$libobj" ] && libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'` -+ test -z "$libobj" && { -+ func_basename "$srcfile" -+ libobj="$func_basename_result" -+ } - ;; - esac - - # Recognize several different file suffixes. - # If the user specifies -o file.o, it is replaced with file.lo -- xform='[cCFSifmso]' - case $libobj in -- *.ada) xform=ada ;; -- *.adb) xform=adb ;; -- *.ads) xform=ads ;; -- *.asm) xform=asm ;; -- *.c++) xform=c++ ;; -- *.cc) xform=cc ;; -- *.ii) xform=ii ;; -- *.class) xform=class ;; -- *.cpp) xform=cpp ;; -- *.cxx) xform=cxx ;; -- *.[fF][09]?) xform=[fF][09]. ;; -- *.for) xform=for ;; -- *.java) xform=java ;; -- *.obj) xform=obj ;; -- *.sx) xform=sx ;; -+ *.[cCFSifmso] | \ -+ *.ada | *.adb | *.ads | *.asm | \ -+ *.c++ | *.cc | *.ii | *.class | *.cpp | *.cxx | \ -+ *.[fF][09]? | *.for | *.java | *.obj | *.sx) -+ func_xform "$libobj" -+ libobj=$func_xform_result -+ ;; - esac - -- libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"` -- - case $libobj in -- *.lo) obj=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;; -+ *.lo) func_lo2o "$libobj"; obj=$func_lo2o_result ;; - *) -- $echo "$modename: cannot determine name of library object from \`$libobj'" 1>&2 -- exit $EXIT_FAILURE -+ func_fatal_error "cannot determine name of library object from \`$libobj'" - ;; - esac - -@@ -811,7 +1230,15 @@ - - for arg in $later; do - case $arg in -+ -shared) -+ test "$build_libtool_libs" != yes && \ -+ func_fatal_configuration "can not build a shared library" -+ build_old_libs=no -+ continue -+ ;; -+ - -static) -+ build_libtool_libs=no - build_old_libs=yes - continue - ;; -@@ -828,28 +1255,17 @@ - esac - done - -- qlibobj=`$echo "X$libobj" | $Xsed -e "$sed_quote_subst"` -- case $qlibobj in -- *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") -- qlibobj="\"$qlibobj\"" ;; -- esac -- test "X$libobj" != "X$qlibobj" \ -- && $echo "X$libobj" | grep '[]~#^*{};<>?"'"'"' &()|`$[]' \ -- && $echo "$modename: libobj name \`$libobj' may not contain shell special characters." -- objname=`$echo "X$obj" | $Xsed -e 's%^.*/%%'` -- xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'` -- if test "X$xdir" = "X$obj"; then -- xdir= -- else -- xdir=$xdir/ -- fi -+ func_quote_for_eval "$libobj" -+ test "X$libobj" != "X$func_quote_for_eval_result" \ -+ && $ECHO "X$libobj" | $GREP '[]~#^*{};<>?"'"'"' &()|`$[]' \ -+ && func_warning "libobj name \`$libobj' may not contain shell special characters." -+ func_dirname_and_basename "$obj" "/" "" -+ objname="$func_basename_result" -+ xdir="$func_dirname_result" - lobj=${xdir}$objdir/$objname - -- if test -z "$base_compile"; then -- $echo "$modename: you must specify a compilation command" 1>&2 -- $echo "$help" 1>&2 -- exit $EXIT_FAILURE -- fi -+ test -z "$base_compile" && \ -+ func_fatal_help "you must specify a compilation command" - - # Delete any leftover library objects. - if test "$build_old_libs" = yes; then -@@ -858,12 +1274,9 @@ - removelist="$lobj $libobj ${libobj}T" - fi - -- $run $rm $removelist -- trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15 -- - # On Cygwin there's no "real" PIC flag so we must build both object types - case $host_os in -- cygwin* | mingw* | pw32* | os2*) -+ cygwin* | mingw* | pw32* | os2* | cegcc*) - pic_mode=default - ;; - esac -@@ -875,10 +1288,8 @@ - # Calculate the filename of the output object if compiler does - # not support -o with -c - if test "$compiler_c_o" = no; then -- output_obj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext} -+ output_obj=`$ECHO "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext} - lockfile="$output_obj.lock" -- removelist="$removelist $output_obj $lockfile" -- trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15 - else - output_obj= - need_locks=no -@@ -888,13 +1299,13 @@ - # Lock this critical section if it is needed - # We use this script file to make the link, it avoids creating a new file - if test "$need_locks" = yes; then -- until $run ln "$progpath" "$lockfile" 2>/dev/null; do -- $show "Waiting for $lockfile to be removed" -+ until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do -+ func_echo "Waiting for $lockfile to be removed" - sleep 2 - done - elif test "$need_locks" = warn; then - if test -f "$lockfile"; then -- $echo "\ -+ $ECHO "\ - *** ERROR, $lockfile exists and contains: - `cat $lockfile 2>/dev/null` - -@@ -905,34 +1316,22 @@ - avoid parallel builds (make -j) in this platform, or get a better - compiler." - -- $run $rm $removelist -+ $opt_dry_run || $RM $removelist - exit $EXIT_FAILURE - fi -- $echo "$srcfile" > "$lockfile" -+ removelist="$removelist $output_obj" -+ $ECHO "$srcfile" > "$lockfile" - fi - -+ $opt_dry_run || $RM $removelist -+ removelist="$removelist $lockfile" -+ trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15 -+ - if test -n "$fix_srcfile_path"; then - eval srcfile=\"$fix_srcfile_path\" - fi -- qsrcfile=`$echo "X$srcfile" | $Xsed -e "$sed_quote_subst"` -- case $qsrcfile in -- *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") -- qsrcfile="\"$qsrcfile\"" ;; -- esac -- -- $run $rm "$libobj" "${libobj}T" -- -- # Create a libtool object file (analogous to a ".la" file), -- # but don't create it if we're doing a dry run. -- test -z "$run" && cat > ${libobj}T </dev/null`" != "X$srcfile"; then -- $echo "\ -+ $ECHO "\ - *** ERROR, $lockfile contains: - `cat $lockfile 2>/dev/null` - -@@ -985,45 +1371,27 @@ - avoid parallel builds (make -j) in this platform, or get a better - compiler." - -- $run $rm $removelist -+ $opt_dry_run || $RM $removelist - exit $EXIT_FAILURE - fi - - # Just move the object if needed, then go on to compile the next one - if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then -- $show "$mv $output_obj $lobj" -- if $run $mv $output_obj $lobj; then : -- else -- error=$? -- $run $rm $removelist -- exit $error -- fi -+ func_show_eval '$MV "$output_obj" "$lobj"' \ -+ 'error=$?; $opt_dry_run || $RM $removelist; exit $error' - fi - -- # Append the name of the PIC object to the libtool object file. -- test -z "$run" && cat >> ${libobj}T <> ${libobj}T </dev/null`" != "X$srcfile"; then -- $echo "\ -+ $ECHO "\ - *** ERROR, $lockfile contains: - `cat $lockfile 2>/dev/null` - -@@ -1057,5485 +1420,6777 @@ - avoid parallel builds (make -j) in this platform, or get a better - compiler." - -- $run $rm $removelist -+ $opt_dry_run || $RM $removelist - exit $EXIT_FAILURE - fi - - # Just move the object if needed - if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then -- $show "$mv $output_obj $obj" -- if $run $mv $output_obj $obj; then : -- else -- error=$? -- $run $rm $removelist -- exit $error -- fi -+ func_show_eval '$MV "$output_obj" "$obj"' \ -+ 'error=$?; $opt_dry_run || $RM $removelist; exit $error' - fi -- -- # Append the name of the non-PIC object the libtool object file. -- # Only append if the libtool object file exists. -- test -z "$run" && cat >> ${libobj}T <> ${libobj}T <&2 -- fi -- if test -n "$link_static_flag"; then -- dlopen_self=$dlopen_self_static -- fi -- prefer_static_libs=yes -- ;; -- -static) -- if test -z "$pic_flag" && test -n "$link_static_flag"; then -- dlopen_self=$dlopen_self_static -- fi -- prefer_static_libs=built -- ;; -- -static-libtool-libs) -- if test -z "$pic_flag" && test -n "$link_static_flag"; then -- dlopen_self=$dlopen_self_static -- fi -- prefer_static_libs=yes -- ;; -- esac -- build_libtool_libs=no -- build_old_libs=yes -- break -- ;; -- esac -- done -+If FILE is a libtool library, object or program, all the files associated -+with it are deleted. Otherwise, only FILE itself is deleted using RM." -+ ;; - -- # See if our shared archives depend on static archives. -- test -n "$old_archive_from_new_cmds" && build_old_libs=yes -+ compile) -+ $ECHO \ -+"Usage: $progname [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE - -- # Go through the arguments, transforming them on the way. -- while test "$#" -gt 0; do -- arg="$1" -- shift -- case $arg in -- *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") -- qarg=\"`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`\" ### testsuite: skip nested quoting test -- ;; -- *) qarg=$arg ;; -- esac -- libtool_args="$libtool_args $qarg" -+Compile a source file into a libtool library object. - -- # If the previous option needs an argument, assign it. -- if test -n "$prev"; then -- case $prev in -- output) -- compile_command="$compile_command @OUTPUT@" -- finalize_command="$finalize_command @OUTPUT@" -- ;; -- esac -+This mode accepts the following additional options: - -- case $prev in -- dlfiles|dlprefiles) -- if test "$preload" = no; then -- # Add the symbol object into the linking commands. -- compile_command="$compile_command @SYMFILE@" -- finalize_command="$finalize_command @SYMFILE@" -- preload=yes -- fi -- case $arg in -- *.la | *.lo) ;; # We handle these cases below. -- force) -- if test "$dlself" = no; then -- dlself=needless -- export_dynamic=yes -- fi -- prev= -- continue -- ;; -- self) -- if test "$prev" = dlprefiles; then -- dlself=yes -- elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then -- dlself=yes -- else -- dlself=needless -- export_dynamic=yes -- fi -- prev= -- continue -- ;; -- *) -- if test "$prev" = dlfiles; then -- dlfiles="$dlfiles $arg" -- else -- dlprefiles="$dlprefiles $arg" -- fi -- prev= -- continue -- ;; -- esac -- ;; -- expsyms) -- export_symbols="$arg" -- if test ! -f "$arg"; then -- $echo "$modename: symbol file \`$arg' does not exist" -- exit $EXIT_FAILURE -- fi -- prev= -- continue -- ;; -- expsyms_regex) -- export_symbols_regex="$arg" -- prev= -- continue -- ;; -- inst_prefix) -- inst_prefix_dir="$arg" -- prev= -- continue -- ;; -- precious_regex) -- precious_files_regex="$arg" -- prev= -- continue -- ;; -- release) -- release="-$arg" -- prev= -- continue -- ;; -- objectlist) -- if test -f "$arg"; then -- save_arg=$arg -- moreargs= -- for fil in `cat $save_arg` -- do --# moreargs="$moreargs $fil" -- arg=$fil -- # A libtool-controlled object. -+ -o OUTPUT-FILE set the output file name to OUTPUT-FILE -+ -no-suppress do not suppress compiler output for multiple passes -+ -prefer-pic try to building PIC objects only -+ -prefer-non-pic try to building non-PIC objects only -+ -shared do not build a \`.o' file suitable for static linking -+ -static only build a \`.o' file suitable for static linking - -- # Check to see that this really is a libtool object. -- if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then -- pic_object= -- non_pic_object= -+COMPILE-COMMAND is a command to be used in creating a \`standard' object file -+from the given SOURCEFILE. - -- # Read the .lo file -- # If there is no directory component, then add one. -- case $arg in -- */* | *\\*) . $arg ;; -- *) . ./$arg ;; -- esac -+The output file name is determined by removing the directory component from -+SOURCEFILE, then substituting the C source code suffix \`.c' with the -+library object suffix, \`.lo'." -+ ;; - -- if test -z "$pic_object" || \ -- test -z "$non_pic_object" || -- test "$pic_object" = none && \ -- test "$non_pic_object" = none; then -- $echo "$modename: cannot find name of object for \`$arg'" 1>&2 -- exit $EXIT_FAILURE -- fi -+ execute) -+ $ECHO \ -+"Usage: $progname [OPTION]... --mode=execute COMMAND [ARGS]... - -- # Extract subdirectory from the argument. -- xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` -- if test "X$xdir" = "X$arg"; then -- xdir= -- else -- xdir="$xdir/" -- fi -+Automatically set library path, then run a program. - -- if test "$pic_object" != none; then -- # Prepend the subdirectory the object is found in. -- pic_object="$xdir$pic_object" -+This mode accepts the following additional options: - -- if test "$prev" = dlfiles; then -- if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then -- dlfiles="$dlfiles $pic_object" -- prev= -- continue -- else -- # If libtool objects are unsupported, then we need to preload. -- prev=dlprefiles -- fi -- fi -+ -dlopen FILE add the directory containing FILE to the library path - -- # CHECK ME: I think I busted this. -Ossama -- if test "$prev" = dlprefiles; then -- # Preload the old-style object. -- dlprefiles="$dlprefiles $pic_object" -- prev= -- fi -+This mode sets the library path environment variable according to \`-dlopen' -+flags. - -- # A PIC object. -- libobjs="$libobjs $pic_object" -- arg="$pic_object" -- fi -+If any of the ARGS are libtool executable wrappers, then they are translated -+into their corresponding uninstalled binary, and any of their required library -+directories are added to the library path. - -- # Non-PIC object. -- if test "$non_pic_object" != none; then -- # Prepend the subdirectory the object is found in. -- non_pic_object="$xdir$non_pic_object" -+Then, COMMAND is executed, with ARGS as arguments." -+ ;; - -- # A standard non-PIC object -- non_pic_objects="$non_pic_objects $non_pic_object" -- if test -z "$pic_object" || test "$pic_object" = none ; then -- arg="$non_pic_object" -- fi -- else -- # If the PIC object exists, use it instead. -- # $xdir was prepended to $pic_object above. -- non_pic_object="$pic_object" -- non_pic_objects="$non_pic_objects $non_pic_object" -- fi -- else -- # Only an error if not doing a dry-run. -- if test -z "$run"; then -- $echo "$modename: \`$arg' is not a valid libtool object" 1>&2 -- exit $EXIT_FAILURE -- else -- # Dry-run case. -+ finish) -+ $ECHO \ -+"Usage: $progname [OPTION]... --mode=finish [LIBDIR]... - -- # Extract subdirectory from the argument. -- xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` -- if test "X$xdir" = "X$arg"; then -- xdir= -- else -- xdir="$xdir/" -- fi -+Complete the installation of libtool libraries. - -- pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"` -- non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"` -- libobjs="$libobjs $pic_object" -- non_pic_objects="$non_pic_objects $non_pic_object" -- fi -- fi -- done -- else -- $echo "$modename: link input file \`$save_arg' does not exist" -- exit $EXIT_FAILURE -- fi -- arg=$save_arg -- prev= -- continue -- ;; -- rpath | xrpath) -- # We need an absolute path. -- case $arg in -- [\\/]* | [A-Za-z]:[\\/]*) ;; -- *) -- $echo "$modename: only absolute run-paths are allowed" 1>&2 -- exit $EXIT_FAILURE -- ;; -- esac -- if test "$prev" = rpath; then -- case "$rpath " in -- *" $arg "*) ;; -- *) rpath="$rpath $arg" ;; -- esac -- else -- case "$xrpath " in -- *" $arg "*) ;; -- *) xrpath="$xrpath $arg" ;; -- esac -- fi -- prev= -- continue -- ;; -- xcompiler) -- compiler_flags="$compiler_flags $qarg" -- prev= -- compile_command="$compile_command $qarg" -- finalize_command="$finalize_command $qarg" -- continue -- ;; -- xlinker) -- linker_flags="$linker_flags $qarg" -- compiler_flags="$compiler_flags $wl$qarg" -- prev= -- compile_command="$compile_command $wl$qarg" -- finalize_command="$finalize_command $wl$qarg" -- continue -- ;; -- xcclinker) -- linker_flags="$linker_flags $qarg" -- compiler_flags="$compiler_flags $qarg" -- prev= -- compile_command="$compile_command $qarg" -- finalize_command="$finalize_command $qarg" -- continue -- ;; -- shrext) -- shrext_cmds="$arg" -- prev= -- continue -- ;; -- darwin_framework|darwin_framework_skip) -- test "$prev" = "darwin_framework" && compiler_flags="$compiler_flags $arg" -- compile_command="$compile_command $arg" -- finalize_command="$finalize_command $arg" -- prev= -- continue -- ;; -- *) -- eval "$prev=\"\$arg\"" -- prev= -- continue -- ;; -- esac -- fi # test -n "$prev" -+Each LIBDIR is a directory that contains libtool libraries. - -- prevarg="$arg" -+The commands that this mode executes may require superuser privileges. Use -+the \`--dry-run' option if you just want to see what would be executed." -+ ;; - -- case $arg in -- -all-static) -- if test -n "$link_static_flag"; then -- compile_command="$compile_command $link_static_flag" -- finalize_command="$finalize_command $link_static_flag" -- fi -- continue -- ;; -+ install) -+ $ECHO \ -+"Usage: $progname [OPTION]... --mode=install INSTALL-COMMAND... - -- -allow-undefined) -- # FIXME: remove this flag sometime in the future. -- $echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2 -- continue -- ;; -+Install executables or libraries. - -- -avoid-version) -- avoid_version=yes -- continue -- ;; -+INSTALL-COMMAND is the installation command. The first component should be -+either the \`install' or \`cp' program. - -- -dlopen) -- prev=dlfiles -- continue -- ;; -+The following components of INSTALL-COMMAND are treated specially: - -- -dlpreopen) -- prev=dlprefiles -- continue -- ;; -+ -inst-prefix PREFIX-DIR Use PREFIX-DIR as a staging area for installation - -- -export-dynamic) -- export_dynamic=yes -- continue -- ;; -+The rest of the components are interpreted as arguments to that command (only -+BSD-compatible install options are recognized)." -+ ;; - -- -export-symbols | -export-symbols-regex) -- if test -n "$export_symbols" || test -n "$export_symbols_regex"; then -- $echo "$modename: more than one -exported-symbols argument is not allowed" -- exit $EXIT_FAILURE -- fi -- if test "X$arg" = "X-export-symbols"; then -- prev=expsyms -- else -- prev=expsyms_regex -- fi -- continue -- ;; -+ link) -+ $ECHO \ -+"Usage: $progname [OPTION]... --mode=link LINK-COMMAND... - -- -framework|-arch|-isysroot) -- case " $CC " in -- *" ${arg} ${1} "* | *" ${arg} ${1} "*) -- prev=darwin_framework_skip ;; -- *) compiler_flags="$compiler_flags $arg" -- prev=darwin_framework ;; -- esac -- compile_command="$compile_command $arg" -- finalize_command="$finalize_command $arg" -- continue -- ;; -+Link object files or libraries together to form another library, or to -+create an executable program. - -- -inst-prefix-dir) -- prev=inst_prefix -- continue -- ;; -+LINK-COMMAND is a command using the C compiler that you would use to create -+a program from several object files. - -- # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:* -- # so, if we see these flags be careful not to treat them like -L -- -L[A-Z][A-Z]*:*) -- case $with_gcc/$host in -- no/*-*-irix* | /*-*-irix*) -- compile_command="$compile_command $arg" -- finalize_command="$finalize_command $arg" -- ;; -- esac -- continue -- ;; -+The following components of LINK-COMMAND are treated specially: - -- -L*) -- dir=`$echo "X$arg" | $Xsed -e 's/^-L//'` -- # We need an absolute path. -- case $dir in -- [\\/]* | [A-Za-z]:[\\/]*) ;; -- *) -- absdir=`cd "$dir" && pwd` -- if test -z "$absdir"; then -- $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2 -- absdir="$dir" -- notinst_path="$notinst_path $dir" -- fi -- dir="$absdir" -- ;; -- esac -- case "$deplibs " in -- *" -L$dir "*) ;; -- *) -- deplibs="$deplibs -L$dir" -- lib_search_path="$lib_search_path $dir" -- ;; -- esac -- case $host in -- *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) -- testbindir=`$echo "X$dir" | $Xsed -e 's*/lib$*/bin*'` -- case :$dllsearchpath: in -- *":$dir:"*) ;; -- *) dllsearchpath="$dllsearchpath:$dir";; -- esac -- case :$dllsearchpath: in -- *":$testbindir:"*) ;; -- *) dllsearchpath="$dllsearchpath:$testbindir";; -- esac -- ;; -- esac -- continue -- ;; -+ -all-static do not do any dynamic linking at all -+ -avoid-version do not add a version suffix if possible -+ -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime -+ -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols -+ -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3) -+ -export-symbols SYMFILE -+ try to export only the symbols listed in SYMFILE -+ -export-symbols-regex REGEX -+ try to export only the symbols matching REGEX -+ -LLIBDIR search LIBDIR for required installed libraries -+ -lNAME OUTPUT-FILE requires the installed library libNAME -+ -module build a library that can dlopened -+ -no-fast-install disable the fast-install mode -+ -no-install link a not-installable executable -+ -no-undefined declare that a library does not refer to external symbols -+ -o OUTPUT-FILE create OUTPUT-FILE from the specified objects -+ -objectlist FILE Use a list of object files found in FILE to specify objects -+ -precious-files-regex REGEX -+ don't remove output files matching REGEX -+ -release RELEASE specify package release information -+ -rpath LIBDIR the created library will eventually be installed in LIBDIR -+ -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries -+ -shared only do dynamic linking of libtool libraries -+ -shrext SUFFIX override the standard shared library file extension -+ -static do not do any dynamic linking of uninstalled libtool libraries -+ -static-libtool-libs -+ do not do any dynamic linking of libtool libraries -+ -version-info CURRENT[:REVISION[:AGE]] -+ specify library version info [each variable defaults to 0] -+ -weak LIBNAME declare that the target provides the LIBNAME interface - -- -l*) -- if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then -- case $host in -- *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos*) -- # These systems don't actually have a C or math library (as such) -- continue -- ;; -- *-*-os2*) -- # These systems don't actually have a C library (as such) -- test "X$arg" = "X-lc" && continue -- ;; -- *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) -- # Do not include libc due to us having libc/libc_r. -- test "X$arg" = "X-lc" && continue -- ;; -- *-*-rhapsody* | *-*-darwin1.[012]) -- # Rhapsody C and math libraries are in the System framework -- deplibs="$deplibs -framework System" -- continue -- ;; -- *-*-sco3.2v5* | *-*-sco5v6*) -- # Causes problems with __ctype -- test "X$arg" = "X-lc" && continue -- ;; -- *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) -- # Compiler inserts libc in the correct place for threads to work -- test "X$arg" = "X-lc" && continue -- ;; -- esac -- elif test "X$arg" = "X-lc_r"; then -- case $host in -- *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) -- # Do not include libc_r directly, use -pthread flag. -- continue -- ;; -- esac -- fi -- deplibs="$deplibs $arg" -- continue -- ;; -+All other options (arguments beginning with \`-') are ignored. - -- # Tru64 UNIX uses -model [arg] to determine the layout of C++ -- # classes, name mangling, and exception handling. -- -model) -- compile_command="$compile_command $arg" -- compiler_flags="$compiler_flags $arg" -- finalize_command="$finalize_command $arg" -- prev=xcompiler -- continue -- ;; -+Every other argument is treated as a filename. Files ending in \`.la' are -+treated as uninstalled libtool libraries, other files are standard or library -+object files. - -- -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads) -- compiler_flags="$compiler_flags $arg" -- compile_command="$compile_command $arg" -- finalize_command="$finalize_command $arg" -- continue -- ;; -+If the OUTPUT-FILE ends in \`.la', then a libtool library is created, -+only library objects (\`.lo' files) may be specified, and \`-rpath' is -+required, except when creating a convenience library. - -- -multi_module) -- single_module="${wl}-multi_module" -- continue -- ;; -+If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created -+using \`ar' and \`ranlib', or on Windows using \`lib'. - -- -module) -- module=yes -- continue -- ;; -+If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file -+is created, otherwise an executable program is created." -+ ;; - -- # -64, -mips[0-9] enable 64-bit mode on the SGI compiler -- # -r[0-9][0-9]* specifies the processor on the SGI compiler -- # -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler -- # +DA*, +DD* enable 64-bit mode on the HP compiler -- # -q* pass through compiler args for the IBM compiler -- # -m* pass through architecture-specific compiler args for GCC -- # -m*, -t[45]*, -txscale* pass through architecture-specific -- # compiler args for GCC -- # -p, -pg, --coverage, -fprofile-* pass through profiling flag for GCC -- # -F/path gives path to uninstalled frameworks, gcc on darwin -- # @file GCC response files -- -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \ -- -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*) -+ uninstall) -+ $ECHO \ -+"Usage: $progname [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE... - -- # Unknown arguments in both finalize_command and compile_command need -- # to be aesthetically quoted because they are evaled later. -- arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` -- case $arg in -- *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") -- arg="\"$arg\"" -- ;; -- esac -- compile_command="$compile_command $arg" -- finalize_command="$finalize_command $arg" -- compiler_flags="$compiler_flags $arg" -- continue -+Remove libraries from an installation directory. -+ -+RM is the name of the program to use to delete files associated with each FILE -+(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed -+to RM. -+ -+If FILE is a libtool library, all the files associated with it are deleted. -+Otherwise, only FILE itself is deleted using RM." - ;; - -- -shrext) -- prev=shrext -- continue -- ;; -+ *) -+ func_fatal_help "invalid operation mode \`$mode'" -+ ;; -+ esac - -- -no-fast-install) -- fast_install=no -- continue -- ;; -+ $ECHO -+ $ECHO "Try \`$progname --help' for more information about other modes." - -- -no-install) -- case $host in -- *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin*) -- # The PATH hackery in wrapper scripts is required on Windows -- # and Darwin in order for the loader to find any dlls it needs. -- $echo "$modename: warning: \`-no-install' is ignored for $host" 1>&2 -- $echo "$modename: warning: assuming \`-no-fast-install' instead" 1>&2 -- fast_install=no -- ;; -- *) no_install=yes ;; -- esac -- continue -- ;; -+ exit $? -+} - -- -no-undefined) -- allow_undefined=no -- continue -- ;; -+ # Now that we've collected a possible --mode arg, show help if necessary -+ $opt_help && func_mode_help - -- -objectlist) -- prev=objectlist -- continue -- ;; - -- -o) prev=output ;; -+# func_mode_execute arg... -+func_mode_execute () -+{ -+ $opt_debug -+ # The first argument is the command name. -+ cmd="$nonopt" -+ test -z "$cmd" && \ -+ func_fatal_help "you must specify a COMMAND" - -- -precious-files-regex) -- prev=precious_regex -- continue -- ;; -+ # Handle -dlopen flags immediately. -+ for file in $execute_dlfiles; do -+ test -f "$file" \ -+ || func_fatal_help "\`$file' is not a file" - -- -release) -- prev=release -- continue -- ;; -+ dir= -+ case $file in -+ *.la) -+ # Check to see that this really is a libtool archive. -+ func_lalib_unsafe_p "$file" \ -+ || func_fatal_help "\`$lib' is not a valid libtool archive" - -- -rpath) -- prev=rpath -- continue -- ;; -+ # Read the libtool library. -+ dlname= -+ library_names= -+ func_source "$file" - -- -R) -- prev=xrpath -- continue -- ;; -+ # Skip this library if it cannot be dlopened. -+ if test -z "$dlname"; then -+ # Warn if it was a shared library. -+ test -n "$library_names" && \ -+ func_warning "\`$file' was not linked with \`-export-dynamic'" -+ continue -+ fi - -- -R*) -- dir=`$echo "X$arg" | $Xsed -e 's/^-R//'` -- # We need an absolute path. -- case $dir in -- [\\/]* | [A-Za-z]:[\\/]*) ;; -- *) -- $echo "$modename: only absolute run-paths are allowed" 1>&2 -- exit $EXIT_FAILURE -- ;; -- esac -- case "$xrpath " in -- *" $dir "*) ;; -- *) xrpath="$xrpath $dir" ;; -- esac -- continue -- ;; -+ func_dirname "$file" "" "." -+ dir="$func_dirname_result" - -- -static | -static-libtool-libs) -- # The effects of -static are defined in a previous loop. -- # We used to do the same as -all-static on platforms that -- # didn't have a PIC flag, but the assumption that the effects -- # would be equivalent was wrong. It would break on at least -- # Digital Unix and AIX. -- continue -+ if test -f "$dir/$objdir/$dlname"; then -+ dir="$dir/$objdir" -+ else -+ if test ! -f "$dir/$dlname"; then -+ func_fatal_error "cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" -+ fi -+ fi - ;; - -- -thread-safe) -- thread_safe=yes -- continue -+ *.lo) -+ # Just add the directory containing the .lo file. -+ func_dirname "$file" "" "." -+ dir="$func_dirname_result" - ;; - -- -version-info) -- prev=vinfo -- continue -- ;; -- -version-number) -- prev=vinfo -- vinfo_number=yes -+ *) -+ func_warning "\`-dlopen' is ignored for non-libtool libraries and objects" - continue - ;; -+ esac - -- -Wc,*) -- args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wc,//'` -- arg= -- save_ifs="$IFS"; IFS=',' -- for flag in $args; do -- IFS="$save_ifs" -- case $flag in -- *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") -- flag="\"$flag\"" -- ;; -- esac -- arg="$arg $wl$flag" -- compiler_flags="$compiler_flags $flag" -- done -- IFS="$save_ifs" -- arg=`$echo "X$arg" | $Xsed -e "s/^ //"` -- ;; -+ # Get the absolute pathname. -+ absdir=`cd "$dir" && pwd` -+ test -n "$absdir" && dir="$absdir" - -- -Wl,*) -- args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wl,//'` -- arg= -- save_ifs="$IFS"; IFS=',' -- for flag in $args; do -- IFS="$save_ifs" -- case $flag in -- *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") -- flag="\"$flag\"" -- ;; -- esac -- arg="$arg $wl$flag" -- compiler_flags="$compiler_flags $wl$flag" -- linker_flags="$linker_flags $flag" -- done -- IFS="$save_ifs" -- arg=`$echo "X$arg" | $Xsed -e "s/^ //"` -- ;; -+ # Now add the directory to shlibpath_var. -+ if eval "test -z \"\$$shlibpath_var\""; then -+ eval "$shlibpath_var=\"\$dir\"" -+ else -+ eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\"" -+ fi -+ done - -- -Xcompiler) -- prev=xcompiler -- continue -- ;; -+ # This variable tells wrapper scripts just to set shlibpath_var -+ # rather than running their programs. -+ libtool_execute_magic="$magic" - -- -Xlinker) -- prev=xlinker -- continue -+ # Check if any of the arguments is a wrapper script. -+ args= -+ for file -+ do -+ case $file in -+ -*) ;; -+ *) -+ # Do a test to see if this is really a libtool program. -+ if func_ltwrapper_script_p "$file"; then -+ func_source "$file" -+ # Transform arg to wrapped name. -+ file="$progdir/$program" -+ elif func_ltwrapper_executable_p "$file"; then -+ func_ltwrapper_scriptname "$file" -+ func_source "$func_ltwrapper_scriptname_result" -+ # Transform arg to wrapped name. -+ file="$progdir/$program" -+ fi - ;; -+ esac -+ # Quote arguments (to preserve shell metacharacters). -+ func_quote_for_eval "$file" -+ args="$args $func_quote_for_eval_result" -+ done - -- -XCClinker) -- prev=xcclinker -- continue -- ;; -+ if test "X$opt_dry_run" = Xfalse; then -+ if test -n "$shlibpath_var"; then -+ # Export the shlibpath_var. -+ eval "export $shlibpath_var" -+ fi - -- # Some other compiler flag. -- -* | +*) -- # Unknown arguments in both finalize_command and compile_command need -- # to be aesthetically quoted because they are evaled later. -- arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` -- case $arg in -- *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") -- arg="\"$arg\"" -- ;; -- esac -- ;; -+ # Restore saved environment variables -+ for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES -+ do -+ eval "if test \"\${save_$lt_var+set}\" = set; then -+ $lt_var=\$save_$lt_var; export $lt_var -+ else -+ $lt_unset $lt_var -+ fi" -+ done - -- *.$objext) -- # A standard object. -- objs="$objs $arg" -- ;; -+ # Now prepare to actually exec the command. -+ exec_cmd="\$cmd$args" -+ else -+ # Display what would be done. -+ if test -n "$shlibpath_var"; then -+ eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\"" -+ $ECHO "export $shlibpath_var" -+ fi -+ $ECHO "$cmd$args" -+ exit $EXIT_SUCCESS -+ fi -+} - -- *.lo) -- # A libtool-controlled object. -+test "$mode" = execute && func_mode_execute ${1+"$@"} - -- # Check to see that this really is a libtool object. -- if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then -- pic_object= -- non_pic_object= - -- # Read the .lo file -- # If there is no directory component, then add one. -- case $arg in -- */* | *\\*) . $arg ;; -- *) . ./$arg ;; -- esac -+# func_mode_finish arg... -+func_mode_finish () -+{ -+ $opt_debug -+ libdirs="$nonopt" -+ admincmds= - -- if test -z "$pic_object" || \ -- test -z "$non_pic_object" || -- test "$pic_object" = none && \ -- test "$non_pic_object" = none; then -- $echo "$modename: cannot find name of object for \`$arg'" 1>&2 -- exit $EXIT_FAILURE -- fi -+ if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then -+ for dir -+ do -+ libdirs="$libdirs $dir" -+ done - -- # Extract subdirectory from the argument. -- xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` -- if test "X$xdir" = "X$arg"; then -- xdir= -- else -- xdir="$xdir/" -- fi -+ for libdir in $libdirs; do -+ if test -n "$finish_cmds"; then -+ # Do each command in the finish commands. -+ func_execute_cmds "$finish_cmds" 'admincmds="$admincmds -+'"$cmd"'"' -+ fi -+ if test -n "$finish_eval"; then -+ # Do the single finish_eval. -+ eval cmds=\"$finish_eval\" -+ $opt_dry_run || eval "$cmds" || admincmds="$admincmds -+ $cmds" -+ fi -+ done -+ fi - -- if test "$pic_object" != none; then -- # Prepend the subdirectory the object is found in. -- pic_object="$xdir$pic_object" -+ # Exit here if they wanted silent mode. -+ $opt_silent && exit $EXIT_SUCCESS - -- if test "$prev" = dlfiles; then -- if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then -- dlfiles="$dlfiles $pic_object" -- prev= -- continue -- else -- # If libtool objects are unsupported, then we need to preload. -- prev=dlprefiles -- fi -- fi -+ $ECHO "X----------------------------------------------------------------------" | $Xsed -+ $ECHO "Libraries have been installed in:" -+ for libdir in $libdirs; do -+ $ECHO " $libdir" -+ done -+ $ECHO -+ $ECHO "If you ever happen to want to link against installed libraries" -+ $ECHO "in a given directory, LIBDIR, you must either use libtool, and" -+ $ECHO "specify the full pathname of the library, or use the \`-LLIBDIR'" -+ $ECHO "flag during linking and do at least one of the following:" -+ if test -n "$shlibpath_var"; then -+ $ECHO " - add LIBDIR to the \`$shlibpath_var' environment variable" -+ $ECHO " during execution" -+ fi -+ if test -n "$runpath_var"; then -+ $ECHO " - add LIBDIR to the \`$runpath_var' environment variable" -+ $ECHO " during linking" -+ fi -+ if test -n "$hardcode_libdir_flag_spec"; then -+ libdir=LIBDIR -+ eval flag=\"$hardcode_libdir_flag_spec\" - -- # CHECK ME: I think I busted this. -Ossama -- if test "$prev" = dlprefiles; then -- # Preload the old-style object. -- dlprefiles="$dlprefiles $pic_object" -- prev= -- fi -+ $ECHO " - use the \`$flag' linker flag" -+ fi -+ if test -n "$admincmds"; then -+ $ECHO " - have your system administrator run these commands:$admincmds" -+ fi -+ if test -f /etc/ld.so.conf; then -+ $ECHO " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'" -+ fi -+ $ECHO - -- # A PIC object. -- libobjs="$libobjs $pic_object" -- arg="$pic_object" -- fi -+ $ECHO "See any operating system documentation about shared libraries for" -+ case $host in -+ solaris2.[6789]|solaris2.1[0-9]) -+ $ECHO "more information, such as the ld(1), crle(1) and ld.so(8) manual" -+ $ECHO "pages." -+ ;; -+ *) -+ $ECHO "more information, such as the ld(1) and ld.so(8) manual pages." -+ ;; -+ esac -+ $ECHO "X----------------------------------------------------------------------" | $Xsed -+ exit $EXIT_SUCCESS -+} - -- # Non-PIC object. -- if test "$non_pic_object" != none; then -- # Prepend the subdirectory the object is found in. -- non_pic_object="$xdir$non_pic_object" -+test "$mode" = finish && func_mode_finish ${1+"$@"} - -- # A standard non-PIC object -- non_pic_objects="$non_pic_objects $non_pic_object" -- if test -z "$pic_object" || test "$pic_object" = none ; then -- arg="$non_pic_object" -- fi -- else -- # If the PIC object exists, use it instead. -- # $xdir was prepended to $pic_object above. -- non_pic_object="$pic_object" -- non_pic_objects="$non_pic_objects $non_pic_object" -- fi -- else -- # Only an error if not doing a dry-run. -- if test -z "$run"; then -- $echo "$modename: \`$arg' is not a valid libtool object" 1>&2 -- exit $EXIT_FAILURE -- else -- # Dry-run case. - -- # Extract subdirectory from the argument. -- xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` -- if test "X$xdir" = "X$arg"; then -- xdir= -- else -- xdir="$xdir/" -- fi -+# func_mode_install arg... -+func_mode_install () -+{ -+ $opt_debug -+ # There may be an optional sh(1) argument at the beginning of -+ # install_prog (especially on Windows NT). -+ if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh || -+ # Allow the use of GNU shtool's install command. -+ $ECHO "X$nonopt" | $GREP shtool >/dev/null; then -+ # Aesthetically quote it. -+ func_quote_for_eval "$nonopt" -+ install_prog="$func_quote_for_eval_result " -+ arg=$1 -+ shift -+ else -+ install_prog= -+ arg=$nonopt -+ fi - -- pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"` -- non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"` -- libobjs="$libobjs $pic_object" -- non_pic_objects="$non_pic_objects $non_pic_object" -- fi -- fi -- ;; -+ # The real first argument should be the name of the installation program. -+ # Aesthetically quote it. -+ func_quote_for_eval "$arg" -+ install_prog="$install_prog$func_quote_for_eval_result" - -- *.$libext) -- # An archive. -- deplibs="$deplibs $arg" -- old_deplibs="$old_deplibs $arg" -+ # We need to accept at least all the BSD install flags. -+ dest= -+ files= -+ opts= -+ prev= -+ install_type= -+ isdir=no -+ stripme= -+ for arg -+ do -+ if test -n "$dest"; then -+ files="$files $dest" -+ dest=$arg - continue -- ;; -- -- *.la) -- # A libtool-controlled library. -+ fi - -- if test "$prev" = dlfiles; then -- # This library was specified with -dlopen. -- dlfiles="$dlfiles $arg" -- prev= -- elif test "$prev" = dlprefiles; then -- # The library was specified with -dlpreopen. -- dlprefiles="$dlprefiles $arg" -+ case $arg in -+ -d) isdir=yes ;; -+ -f) -+ case " $install_prog " in -+ *[\\\ /]cp\ *) ;; -+ *) prev=$arg ;; -+ esac -+ ;; -+ -g | -m | -o) -+ prev=$arg -+ ;; -+ -s) -+ stripme=" -s" -+ continue -+ ;; -+ -*) -+ ;; -+ *) -+ # If the previous option needed an argument, then skip it. -+ if test -n "$prev"; then - prev= - else -- deplibs="$deplibs $arg" -+ dest=$arg -+ continue - fi -- continue - ;; -+ esac - -- # Some other compiler argument. -- *) -- # Unknown arguments in both finalize_command and compile_command need -- # to be aesthetically quoted because they are evaled later. -- arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` -- case $arg in -- *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") -- arg="\"$arg\"" -- ;; -- esac -- ;; -- esac # arg -+ # Aesthetically quote the argument. -+ func_quote_for_eval "$arg" -+ install_prog="$install_prog $func_quote_for_eval_result" -+ done - -- # Now actually substitute the argument into the commands. -- if test -n "$arg"; then -- compile_command="$compile_command $arg" -- finalize_command="$finalize_command $arg" -- fi -- done # argument parsing loop -+ test -z "$install_prog" && \ -+ func_fatal_help "you must specify an install program" - -- if test -n "$prev"; then -- $echo "$modename: the \`$prevarg' option requires an argument" 1>&2 -- $echo "$help" 1>&2 -- exit $EXIT_FAILURE -- fi -+ test -n "$prev" && \ -+ func_fatal_help "the \`$prev' option requires an argument" - -- if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then -- eval arg=\"$export_dynamic_flag_spec\" -- compile_command="$compile_command $arg" -- finalize_command="$finalize_command $arg" -+ if test -z "$files"; then -+ if test -z "$dest"; then -+ func_fatal_help "no file or destination specified" -+ else -+ func_fatal_help "you must specify a destination" -+ fi - fi - -- oldlibs= -- # calculate the name of the file, without its directory -- outputname=`$echo "X$output" | $Xsed -e 's%^.*/%%'` -- libobjs_save="$libobjs" -+ # Strip any trailing slash from the destination. -+ func_stripname '' '/' "$dest" -+ dest=$func_stripname_result - -- if test -n "$shlibpath_var"; then -- # get the directories listed in $shlibpath_var -- eval shlib_search_path=\`\$echo \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\` -+ # Check to see that the destination is a directory. -+ test -d "$dest" && isdir=yes -+ if test "$isdir" = yes; then -+ destdir="$dest" -+ destname= - else -- shlib_search_path= -- fi -- eval sys_lib_search_path=\"$sys_lib_search_path_spec\" -- eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\" -+ func_dirname_and_basename "$dest" "" "." -+ destdir="$func_dirname_result" -+ destname="$func_basename_result" - -- output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'` -- if test "X$output_objdir" = "X$output"; then -- output_objdir="$objdir" -- else -- output_objdir="$output_objdir/$objdir" -- fi -- # Create the object directory. -- if test ! -d "$output_objdir"; then -- $show "$mkdir $output_objdir" -- $run $mkdir $output_objdir -- exit_status=$? -- if test "$exit_status" -ne 0 && test ! -d "$output_objdir"; then -- exit $exit_status -- fi -+ # Not a directory, so check to see that there is only one file specified. -+ set dummy $files; shift -+ test "$#" -gt 1 && \ -+ func_fatal_help "\`$dest' is not a directory" - fi -- -- # Determine the type of output -- case $output in -- "") -- $echo "$modename: you must specify an output file" 1>&2 -- $echo "$help" 1>&2 -- exit $EXIT_FAILURE -- ;; -- *.$libext) linkmode=oldlib ;; -- *.lo | *.$objext) linkmode=obj ;; -- *.la) linkmode=lib ;; -- *) linkmode=prog ;; # Anything else should be a program. -- esac -- -- case $host in -- *cygwin* | *mingw* | *pw32*) -- # don't eliminate duplications in $postdeps and $predeps -- duplicate_compiler_generated_deps=yes -- ;; -+ case $destdir in -+ [\\/]* | [A-Za-z]:[\\/]*) ;; - *) -- duplicate_compiler_generated_deps=$duplicate_deps -+ for file in $files; do -+ case $file in -+ *.lo) ;; -+ *) -+ func_fatal_help "\`$destdir' must be an absolute directory name" -+ ;; -+ esac -+ done - ;; - esac -- specialdeplibs= - -- libs= -- # Find all interdependent deplibs by searching for libraries -- # that are linked more than once (e.g. -la -lb -la) -- for deplib in $deplibs; do -- if test "X$duplicate_deps" = "Xyes" ; then -- case "$libs " in -- *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; -- esac -- fi -- libs="$libs $deplib" -- done -+ # This variable tells wrapper scripts just to set variables rather -+ # than running their programs. -+ libtool_install_magic="$magic" - -- if test "$linkmode" = lib; then -- libs="$predeps $libs $compiler_lib_search_path $postdeps" -+ staticlibs= -+ future_libdirs= -+ current_libdirs= -+ for file in $files; do - -- # Compute libraries that are listed more than once in $predeps -- # $postdeps and mark them as special (i.e., whose duplicates are -- # not to be eliminated). -- pre_post_deps= -- if test "X$duplicate_compiler_generated_deps" = "Xyes" ; then -- for pre_post_dep in $predeps $postdeps; do -- case "$pre_post_deps " in -- *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;; -+ # Do each installation. -+ case $file in -+ *.$libext) -+ # Do the static libraries later. -+ staticlibs="$staticlibs $file" -+ ;; -+ -+ *.la) -+ # Check to see that this really is a libtool archive. -+ func_lalib_unsafe_p "$file" \ -+ || func_fatal_help "\`$file' is not a valid libtool archive" -+ -+ library_names= -+ old_library= -+ relink_command= -+ func_source "$file" -+ -+ # Add the libdir to current_libdirs if it is the destination. -+ if test "X$destdir" = "X$libdir"; then -+ case "$current_libdirs " in -+ *" $libdir "*) ;; -+ *) current_libdirs="$current_libdirs $libdir" ;; - esac -- pre_post_deps="$pre_post_deps $pre_post_dep" -- done -- fi -- pre_post_deps= -- fi -+ else -+ # Note the libdir as a future libdir. -+ case "$future_libdirs " in -+ *" $libdir "*) ;; -+ *) future_libdirs="$future_libdirs $libdir" ;; -+ esac -+ fi - -- deplibs= -- newdependency_libs= -- newlib_search_path= -- need_relink=no # whether we're linking any uninstalled libtool libraries -- notinst_deplibs= # not-installed libtool libraries -- case $linkmode in -- lib) -- passes="conv link" -- for file in $dlfiles $dlprefiles; do -- case $file in -- *.la) ;; -- *) -- $echo "$modename: libraries can \`-dlopen' only libtool libraries: $file" 1>&2 -- exit $EXIT_FAILURE -+ func_dirname "$file" "/" "" -+ dir="$func_dirname_result" -+ dir="$dir$objdir" -+ -+ if test -n "$relink_command"; then -+ # Determine the prefix the user has applied to our future dir. -+ inst_prefix_dir=`$ECHO "X$destdir" | $Xsed -e "s%$libdir\$%%"` -+ -+ # Don't allow the user to place us outside of our expected -+ # location b/c this prevents finding dependent libraries that -+ # are installed to the same prefix. -+ # At present, this check doesn't affect windows .dll's that -+ # are installed into $libdir/../bin (currently, that works fine) -+ # but it's something to keep an eye on. -+ test "$inst_prefix_dir" = "$destdir" && \ -+ func_fatal_error "error: cannot install \`$file' to a directory not ending in $libdir" -+ -+ if test -n "$inst_prefix_dir"; then -+ # Stick the inst_prefix_dir data into the link command. -+ relink_command=`$ECHO "X$relink_command" | $Xsed -e "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` -+ else -+ relink_command=`$ECHO "X$relink_command" | $Xsed -e "s%@inst_prefix_dir@%%"` -+ fi -+ -+ func_warning "relinking \`$file'" -+ func_show_eval "$relink_command" \ -+ 'func_fatal_error "error: relink \`$file'\'' with the above command before installing it"' -+ fi -+ -+ # See the names of the shared library. -+ set dummy $library_names; shift -+ if test -n "$1"; then -+ realname="$1" -+ shift -+ -+ srcname="$realname" -+ test -n "$relink_command" && srcname="$realname"T -+ -+ # Install the shared library and build the symlinks. -+ func_show_eval "$install_prog $dir/$srcname $destdir/$realname" \ -+ 'exit $?' -+ tstripme="$stripme" -+ case $host_os in -+ cygwin* | mingw* | pw32* | cegcc*) -+ case $realname in -+ *.dll.a) -+ tstripme="" -+ ;; -+ esac - ;; - esac -- done -- ;; -- prog) -- compile_deplibs= -- finalize_deplibs= -- alldeplibs=no -- newdlfiles= -- newdlprefiles= -- passes="conv scan dlopen dlpreopen link" -- ;; -- *) passes="conv" -- ;; -- esac -- for pass in $passes; do -- if test "$linkmode,$pass" = "lib,link" || -- test "$linkmode,$pass" = "prog,scan"; then -- libs="$deplibs" -- deplibs= -- fi -- if test "$linkmode" = prog; then -- case $pass in -- dlopen) libs="$dlfiles" ;; -- dlpreopen) libs="$dlprefiles" ;; -- link) -- libs="$deplibs %DEPLIBS%" -- test "X$link_all_deplibs" != Xno && libs="$libs $dependency_libs" -- ;; -- esac -- fi -- if test "$pass" = dlopen; then -- # Collect dlpreopened libraries -- save_deplibs="$deplibs" -- deplibs= -- fi -- for deplib in $libs; do -- lib= -- found=no -- case $deplib in -- -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads) -- if test "$linkmode,$pass" = "prog,link"; then -- compile_deplibs="$deplib $compile_deplibs" -- finalize_deplibs="$deplib $finalize_deplibs" -- else -- compiler_flags="$compiler_flags $deplib" -- fi -- continue -- ;; -- -l*) -- if test "$linkmode" != lib && test "$linkmode" != prog; then -- $echo "$modename: warning: \`-l' is ignored for archives/objects" 1>&2 -- continue -- fi -- name=`$echo "X$deplib" | $Xsed -e 's/^-l//'` -- if test "$linkmode" = lib; then -- searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path" -- else -- searchdirs="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path" -+ if test -n "$tstripme" && test -n "$striplib"; then -+ func_show_eval "$striplib $destdir/$realname" 'exit $?' - fi -- for searchdir in $searchdirs; do -- for search_ext in .la $std_shrext .so .a; do -- # Search the libtool library -- lib="$searchdir/lib${name}${search_ext}" -- if test -f "$lib"; then -- if test "$search_ext" = ".la"; then -- found=yes -- else -- found=no -- fi -- break 2 -- fi -+ -+ if test "$#" -gt 0; then -+ # Delete the old symlinks, and create new ones. -+ # Try `ln -sf' first, because the `ln' binary might depend on -+ # the symlink we replace! Solaris /bin/ln does not understand -f, -+ # so we also need to try rm && ln -s. -+ for linkname -+ do -+ test "$linkname" != "$realname" \ -+ && func_show_eval "(cd $destdir && { $LN_S -f $realname $linkname || { $RM $linkname && $LN_S $realname $linkname; }; })" - done -- done -- if test "$found" != yes; then -- # deplib doesn't seem to be a libtool library -- if test "$linkmode,$pass" = "prog,link"; then -- compile_deplibs="$deplib $compile_deplibs" -- finalize_deplibs="$deplib $finalize_deplibs" -- else -- deplibs="$deplib $deplibs" -- test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" -- fi -- continue -- else # deplib is a libtool library -- # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib, -- # We need to do some special things here, and not later. -- if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then -- case " $predeps $postdeps " in -- *" $deplib "*) -- if (${SED} -e '2q' $lib | -- grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then -- library_names= -- old_library= -- case $lib in -- */* | *\\*) . $lib ;; -- *) . ./$lib ;; -- esac -- for l in $old_library $library_names; do -- ll="$l" -- done -- if test "X$ll" = "X$old_library" ; then # only static version available -- found=no -- ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'` -- test "X$ladir" = "X$lib" && ladir="." -- lib=$ladir/$old_library -- if test "$linkmode,$pass" = "prog,link"; then -- compile_deplibs="$deplib $compile_deplibs" -- finalize_deplibs="$deplib $finalize_deplibs" -- else -- deplibs="$deplib $deplibs" -- test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" -- fi -- continue -- fi -- fi -- ;; -- *) ;; -- esac -- fi -- fi -- ;; # -l -- -L*) -- case $linkmode in -- lib) -- deplibs="$deplib $deplibs" -- test "$pass" = conv && continue -- newdependency_libs="$deplib $newdependency_libs" -- newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'` -- ;; -- prog) -- if test "$pass" = conv; then -- deplibs="$deplib $deplibs" -- continue -- fi -- if test "$pass" = scan; then -- deplibs="$deplib $deplibs" -- else -- compile_deplibs="$deplib $compile_deplibs" -- finalize_deplibs="$deplib $finalize_deplibs" -- fi -- newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'` -- ;; -- *) -- $echo "$modename: warning: \`-L' is ignored for archives/objects" 1>&2 -- ;; -- esac # linkmode -- continue -- ;; # -L -- -R*) -- if test "$pass" = link; then -- dir=`$echo "X$deplib" | $Xsed -e 's/^-R//'` -- # Make sure the xrpath contains only unique directories. -- case "$xrpath " in -- *" $dir "*) ;; -- *) xrpath="$xrpath $dir" ;; -- esac -- fi -- deplibs="$deplib $deplibs" -- continue -- ;; -- *.la) lib="$deplib" ;; -- *.$libext) -- if test "$pass" = conv; then -- deplibs="$deplib $deplibs" -- continue -- fi -- case $linkmode in -- lib) -- valid_a_lib=no -- case $deplibs_check_method in -- match_pattern*) -- set dummy $deplibs_check_method -- match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"` -- if eval $echo \"$deplib\" 2>/dev/null \ -- | $SED 10q \ -- | $EGREP "$match_pattern_regex" > /dev/null; then -- valid_a_lib=yes -- fi -- ;; -- pass_all) -- valid_a_lib=yes -- ;; -- esac -- if test "$valid_a_lib" != yes; then -- $echo -- $echo "*** Warning: Trying to link with static lib archive $deplib." -- $echo "*** I have the capability to make that library automatically link in when" -- $echo "*** you link to this library. But I can only do this if you have a" -- $echo "*** shared version of the library, which you do not appear to have" -- $echo "*** because the file extensions .$libext of this argument makes me believe" -- $echo "*** that it is just a static archive that I should not used here." -- else -- $echo -- $echo "*** Warning: Linking the shared library $output against the" -- $echo "*** static library $deplib is not portable!" -- deplibs="$deplib $deplibs" -- fi -- continue -- ;; -- prog) -- if test "$pass" != link; then -- deplibs="$deplib $deplibs" -- else -- compile_deplibs="$deplib $compile_deplibs" -- finalize_deplibs="$deplib $finalize_deplibs" -- fi -- continue -- ;; -- esac # linkmode -- ;; # *.$libext -- *.lo | *.$objext) -- if test "$pass" = conv; then -- deplibs="$deplib $deplibs" -- elif test "$linkmode" = prog; then -- if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then -- # If there is no dlopen support or we're linking statically, -- # we need to preload. -- newdlprefiles="$newdlprefiles $deplib" -- compile_deplibs="$deplib $compile_deplibs" -- finalize_deplibs="$deplib $finalize_deplibs" -- else -- newdlfiles="$newdlfiles $deplib" -- fi - fi -- continue -- ;; -- %DEPLIBS%) -- alldeplibs=yes -- continue -- ;; -- esac # case $deplib -- if test "$found" = yes || test -f "$lib"; then : -- else -- $echo "$modename: cannot find the library \`$lib' or unhandled argument \`$deplib'" 1>&2 -- exit $EXIT_FAILURE -- fi - -- # Check to see that this really is a libtool archive. -- if (${SED} -e '2q' $lib | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : -- else -- $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 -- exit $EXIT_FAILURE -+ # Do each command in the postinstall commands. -+ lib="$destdir/$realname" -+ func_execute_cmds "$postinstall_cmds" 'exit $?' - fi - -- ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'` -- test "X$ladir" = "X$lib" && ladir="." -- -- dlname= -- dlopen= -- dlpreopen= -- libdir= -- library_names= -- old_library= -- # If the library was installed with an old release of libtool, -- # it will not redefine variables installed, or shouldnotlink -- installed=yes -- shouldnotlink=no -- avoidtemprpath= -+ # Install the pseudo-library for information purposes. -+ func_basename "$file" -+ name="$func_basename_result" -+ instname="$dir/$name"i -+ func_show_eval "$install_prog $instname $destdir/$name" 'exit $?' - -+ # Maybe install the static library, too. -+ test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library" -+ ;; - -- # Read the .la file -- case $lib in -- */* | *\\*) . $lib ;; -- *) . ./$lib ;; -- esac -+ *.lo) -+ # Install (i.e. copy) a libtool object. - -- if test "$linkmode,$pass" = "lib,link" || -- test "$linkmode,$pass" = "prog,scan" || -- { test "$linkmode" != prog && test "$linkmode" != lib; }; then -- test -n "$dlopen" && dlfiles="$dlfiles $dlopen" -- test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen" -+ # Figure out destination file name, if it wasn't already specified. -+ if test -n "$destname"; then -+ destfile="$destdir/$destname" -+ else -+ func_basename "$file" -+ destfile="$func_basename_result" -+ destfile="$destdir/$destfile" - fi - -- if test "$pass" = conv; then -- # Only check for convenience libraries -- deplibs="$lib $deplibs" -- if test -z "$libdir"; then -- if test -z "$old_library"; then -- $echo "$modename: cannot find name of link library for \`$lib'" 1>&2 -- exit $EXIT_FAILURE -- fi -- # It is a libtool convenience library, so add in its objects. -- convenience="$convenience $ladir/$objdir/$old_library" -- old_convenience="$old_convenience $ladir/$objdir/$old_library" -- tmp_libs= -- for deplib in $dependency_libs; do -- deplibs="$deplib $deplibs" -- if test "X$duplicate_deps" = "Xyes" ; then -- case "$tmp_libs " in -- *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; -- esac -- fi -- tmp_libs="$tmp_libs $deplib" -- done -- elif test "$linkmode" != prog && test "$linkmode" != lib; then -- $echo "$modename: \`$lib' is not a convenience library" 1>&2 -- exit $EXIT_FAILURE -- fi -- continue -- fi # $pass = conv -+ # Deduce the name of the destination old-style object file. -+ case $destfile in -+ *.lo) -+ func_lo2o "$destfile" -+ staticdest=$func_lo2o_result -+ ;; -+ *.$objext) -+ staticdest="$destfile" -+ destfile= -+ ;; -+ *) -+ func_fatal_help "cannot copy a libtool object to \`$destfile'" -+ ;; -+ esac - -+ # Install the libtool object if requested. -+ test -n "$destfile" && \ -+ func_show_eval "$install_prog $file $destfile" 'exit $?' - -- # Get the name of the library we link against. -- linklib= -- for l in $old_library $library_names; do -- linklib="$l" -- done -- if test -z "$linklib"; then -- $echo "$modename: cannot find name of link library for \`$lib'" 1>&2 -- exit $EXIT_FAILURE -+ # Install the old object if enabled. -+ if test "$build_old_libs" = yes; then -+ # Deduce the name of the old-style object file. -+ func_lo2o "$file" -+ staticobj=$func_lo2o_result -+ func_show_eval "$install_prog \$staticobj \$staticdest" 'exit $?' - fi -+ exit $EXIT_SUCCESS -+ ;; - -- # This library was specified with -dlopen. -- if test "$pass" = dlopen; then -- if test -z "$libdir"; then -- $echo "$modename: cannot -dlopen a convenience library: \`$lib'" 1>&2 -- exit $EXIT_FAILURE -- fi -- if test -z "$dlname" || -- test "$dlopen_support" != yes || -- test "$build_libtool_libs" = no; then -- # If there is no dlname, no dlopen support or we're linking -- # statically, we need to preload. We also need to preload any -- # dependent libraries so libltdl's deplib preloader doesn't -- # bomb out in the load deplibs phase. -- dlprefiles="$dlprefiles $lib $dependency_libs" -- else -- newdlfiles="$newdlfiles $lib" -- fi -- continue -- fi # $pass = dlopen -- -- # We need an absolute path. -- case $ladir in -- [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;; -+ *) -+ # Figure out destination file name, if it wasn't already specified. -+ if test -n "$destname"; then -+ destfile="$destdir/$destname" -+ else -+ func_basename "$file" -+ destfile="$func_basename_result" -+ destfile="$destdir/$destfile" -+ fi -+ -+ # If the file is missing, and there is a .exe on the end, strip it -+ # because it is most likely a libtool script we actually want to -+ # install -+ stripped_ext="" -+ case $file in -+ *.exe) -+ if test ! -f "$file"; then -+ func_stripname '' '.exe' "$file" -+ file=$func_stripname_result -+ stripped_ext=".exe" -+ fi -+ ;; -+ esac -+ -+ # Do a test to see if this is really a libtool program. -+ case $host in -+ *cygwin* | *mingw*) -+ if func_ltwrapper_executable_p "$file"; then -+ func_ltwrapper_scriptname "$file" -+ wrapper=$func_ltwrapper_scriptname_result -+ else -+ func_stripname '' '.exe' "$file" -+ wrapper=$func_stripname_result -+ fi -+ ;; - *) -- abs_ladir=`cd "$ladir" && pwd` -- if test -z "$abs_ladir"; then -- $echo "$modename: warning: cannot determine absolute directory name of \`$ladir'" 1>&2 -- $echo "$modename: passing it literally to the linker, although it might fail" 1>&2 -- abs_ladir="$ladir" -+ wrapper=$file -+ ;; -+ esac -+ if func_ltwrapper_script_p "$wrapper"; then -+ notinst_deplibs= -+ relink_command= -+ -+ func_source "$wrapper" -+ -+ # Check the variables that should have been set. -+ test -z "$generated_by_libtool_version" && \ -+ func_fatal_error "invalid libtool wrapper script \`$wrapper'" -+ -+ finalize=yes -+ for lib in $notinst_deplibs; do -+ # Check to see that each library is installed. -+ libdir= -+ if test -f "$lib"; then -+ func_source "$lib" -+ fi -+ libfile="$libdir/"`$ECHO "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test -+ if test -n "$libdir" && test ! -f "$libfile"; then -+ func_warning "\`$lib' has not been installed in \`$libdir'" -+ finalize=no -+ fi -+ done -+ -+ relink_command= -+ func_source "$wrapper" -+ -+ outputname= -+ if test "$fast_install" = no && test -n "$relink_command"; then -+ $opt_dry_run || { -+ if test "$finalize" = yes; then -+ tmpdir=`func_mktempdir` -+ func_basename "$file$stripped_ext" -+ file="$func_basename_result" -+ outputname="$tmpdir/$file" -+ # Replace the output file specification. -+ relink_command=`$ECHO "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'` -+ -+ $opt_silent || { -+ func_quote_for_expand "$relink_command" -+ eval "func_echo $func_quote_for_expand_result" -+ } -+ if eval "$relink_command"; then : -+ else -+ func_error "error: relink \`$file' with the above command before installing it" -+ $opt_dry_run || ${RM}r "$tmpdir" -+ continue -+ fi -+ file="$outputname" -+ else -+ func_warning "cannot relink \`$file'" -+ fi -+ } -+ else -+ # Install the binary that we compiled earlier. -+ file=`$ECHO "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"` - fi -+ fi -+ -+ # remove .exe since cygwin /usr/bin/install will append another -+ # one anyway -+ case $install_prog,$host in -+ */usr/bin/install*,*cygwin*) -+ case $file:$destfile in -+ *.exe:*.exe) -+ # this is ok -+ ;; -+ *.exe:*) -+ destfile=$destfile.exe -+ ;; -+ *:*.exe) -+ func_stripname '' '.exe' "$destfile" -+ destfile=$func_stripname_result -+ ;; -+ esac - ;; - esac -- laname=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` -+ func_show_eval "$install_prog\$stripme \$file \$destfile" 'exit $?' -+ $opt_dry_run || if test -n "$outputname"; then -+ ${RM}r "$tmpdir" -+ fi -+ ;; -+ esac -+ done - -- # Find the relevant object directory and library name. -- if test "X$installed" = Xyes; then -- if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then -- $echo "$modename: warning: library \`$lib' was moved." 1>&2 -- dir="$ladir" -- absdir="$abs_ladir" -- libdir="$abs_ladir" -- else -- dir="$libdir" -- absdir="$libdir" -+ for file in $staticlibs; do -+ func_basename "$file" -+ name="$func_basename_result" -+ -+ # Set up the ranlib parameters. -+ oldlib="$destdir/$name" -+ -+ func_show_eval "$install_prog \$file \$oldlib" 'exit $?' -+ -+ if test -n "$stripme" && test -n "$old_striplib"; then -+ func_show_eval "$old_striplib $oldlib" 'exit $?' -+ fi -+ -+ # Do each command in the postinstall commands. -+ func_execute_cmds "$old_postinstall_cmds" 'exit $?' -+ done -+ -+ test -n "$future_libdirs" && \ -+ func_warning "remember to run \`$progname --finish$future_libdirs'" -+ -+ if test -n "$current_libdirs"; then -+ # Maybe just do a dry run. -+ $opt_dry_run && current_libdirs=" -n$current_libdirs" -+ exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs' -+ else -+ exit $EXIT_SUCCESS -+ fi -+} -+ -+test "$mode" = install && func_mode_install ${1+"$@"} -+ -+ -+# func_generate_dlsyms outputname originator pic_p -+# Extract symbols from dlprefiles and create ${outputname}S.o with -+# a dlpreopen symbol table. -+func_generate_dlsyms () -+{ -+ $opt_debug -+ my_outputname="$1" -+ my_originator="$2" -+ my_pic_p="${3-no}" -+ my_prefix=`$ECHO "$my_originator" | sed 's%[^a-zA-Z0-9]%_%g'` -+ my_dlsyms= -+ -+ if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then -+ if test -n "$NM" && test -n "$global_symbol_pipe"; then -+ my_dlsyms="${my_outputname}S.c" -+ else -+ func_error "not configured to extract global symbols from dlpreopened files" -+ fi -+ fi -+ -+ if test -n "$my_dlsyms"; then -+ case $my_dlsyms in -+ "") ;; -+ *.c) -+ # Discover the nlist of each of the dlfiles. -+ nlist="$output_objdir/${my_outputname}.nm" -+ -+ func_show_eval "$RM $nlist ${nlist}S ${nlist}T" -+ -+ # Parse the name list into a source file. -+ func_verbose "creating $output_objdir/$my_dlsyms" -+ -+ $opt_dry_run || $ECHO > "$output_objdir/$my_dlsyms" "\ -+/* $my_dlsyms - symbol resolution table for \`$my_outputname' dlsym emulation. */ -+/* Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION */ -+ -+#ifdef __cplusplus -+extern \"C\" { -+#endif -+ -+/* External symbol declarations for the compiler. */\ -+" -+ -+ if test "$dlself" = yes; then -+ func_verbose "generating symbol list for \`$output'" -+ -+ $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist" -+ -+ # Add our own program objects to the symbol list. -+ progfiles=`$ECHO "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` -+ for progfile in $progfiles; do -+ func_verbose "extracting global C symbols from \`$progfile'" -+ $opt_dry_run || eval "$NM $progfile | $global_symbol_pipe >> '$nlist'" -+ done -+ -+ if test -n "$exclude_expsyms"; then -+ $opt_dry_run || { -+ eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' -+ eval '$MV "$nlist"T "$nlist"' -+ } - fi -- test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes -- else -- if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then -- dir="$ladir" -- absdir="$abs_ladir" -- # Remove this search path later -- notinst_path="$notinst_path $abs_ladir" -+ -+ if test -n "$export_symbols_regex"; then -+ $opt_dry_run || { -+ eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T' -+ eval '$MV "$nlist"T "$nlist"' -+ } -+ fi -+ -+ # Prepare the list of exported symbols -+ if test -z "$export_symbols"; then -+ export_symbols="$output_objdir/$outputname.exp" -+ $opt_dry_run || { -+ $RM $export_symbols -+ eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' -+ case $host in -+ *cygwin* | *mingw* | *cegcc* ) -+ eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' -+ eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"' -+ ;; -+ esac -+ } - else -- dir="$ladir/$objdir" -- absdir="$abs_ladir/$objdir" -- # Remove this search path later -- notinst_path="$notinst_path $abs_ladir" -+ $opt_dry_run || { -+ eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"' -+ eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' -+ eval '$MV "$nlist"T "$nlist"' -+ case $host in -+ *cygwin | *mingw* | *cegcc* ) -+ eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' -+ eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' -+ ;; -+ esac -+ } - fi -- fi # $installed = yes -- name=`$echo "X$laname" | $Xsed -e 's/\.la$//' -e 's/^lib//'` -+ fi - -- # This library was specified with -dlpreopen. -- if test "$pass" = dlpreopen; then -- if test -z "$libdir"; then -- $echo "$modename: cannot -dlpreopen a convenience library: \`$lib'" 1>&2 -- exit $EXIT_FAILURE -+ for dlprefile in $dlprefiles; do -+ func_verbose "extracting global C symbols from \`$dlprefile'" -+ func_basename "$dlprefile" -+ name="$func_basename_result" -+ $opt_dry_run || { -+ eval '$ECHO ": $name " >> "$nlist"' -+ eval "$NM $dlprefile 2>/dev/null | $global_symbol_pipe >> '$nlist'" -+ } -+ done -+ -+ $opt_dry_run || { -+ # Make sure we have at least an empty file. -+ test -f "$nlist" || : > "$nlist" -+ -+ if test -n "$exclude_expsyms"; then -+ $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T -+ $MV "$nlist"T "$nlist" - fi -- # Prefer using a static library (so that no silly _DYNAMIC symbols -- # are required to link). -- if test -n "$old_library"; then -- newdlprefiles="$newdlprefiles $dir/$old_library" -- # Otherwise, use the dlname, so that lt_dlopen finds it. -- elif test -n "$dlname"; then -- newdlprefiles="$newdlprefiles $dir/$dlname" -+ -+ # Try sorting and uniquifying the output. -+ if $GREP -v "^: " < "$nlist" | -+ if sort -k 3 /dev/null 2>&1; then -+ sort -k 3 -+ else -+ sort +2 -+ fi | -+ uniq > "$nlist"S; then -+ : - else -- newdlprefiles="$newdlprefiles $dir/$linklib" -+ $GREP -v "^: " < "$nlist" > "$nlist"S - fi -- fi # $pass = dlpreopen - -- if test -z "$libdir"; then -- # Link the convenience library -- if test "$linkmode" = lib; then -- deplibs="$dir/$old_library $deplibs" -- elif test "$linkmode,$pass" = "prog,link"; then -- compile_deplibs="$dir/$old_library $compile_deplibs" -- finalize_deplibs="$dir/$old_library $finalize_deplibs" -+ if test -f "$nlist"S; then -+ eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"' - else -- deplibs="$lib $deplibs" # used for prog,scan pass -+ $ECHO '/* NONE */' >> "$output_objdir/$my_dlsyms" - fi -- continue -- fi -- - -- if test "$linkmode" = prog && test "$pass" != link; then -- newlib_search_path="$newlib_search_path $ladir" -- deplibs="$lib $deplibs" -+ $ECHO >> "$output_objdir/$my_dlsyms" "\ - -- linkalldeplibs=no -- if test "$link_all_deplibs" != no || test -z "$library_names" || -- test "$build_libtool_libs" = no; then -- linkalldeplibs=yes -- fi -+/* The mapping between symbol names and symbols. */ -+typedef struct { -+ const char *name; -+ void *address; -+} lt_dlsymlist; -+" -+ case $host in -+ *cygwin* | *mingw* | *cegcc* ) -+ $ECHO >> "$output_objdir/$my_dlsyms" "\ -+/* DATA imports from DLLs on WIN32 con't be const, because -+ runtime relocations are performed -- see ld's documentation -+ on pseudo-relocs. */" -+ lt_dlsym_const= ;; -+ *osf5*) -+ echo >> "$output_objdir/$my_dlsyms" "\ -+/* This system does not cope well with relocations in const data */" -+ lt_dlsym_const= ;; -+ *) -+ lt_dlsym_const=const ;; -+ esac - -- tmp_libs= -- for deplib in $dependency_libs; do -- case $deplib in -- -L*) newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`;; ### testsuite: skip nested quoting test -- esac -- # Need to link against all dependency_libs? -- if test "$linkalldeplibs" = yes; then -- deplibs="$deplib $deplibs" -- else -- # Need to hardcode shared library paths -- # or/and link against static libraries -- newdependency_libs="$deplib $newdependency_libs" -- fi -- if test "X$duplicate_deps" = "Xyes" ; then -- case "$tmp_libs " in -- *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; -- esac -- fi -- tmp_libs="$tmp_libs $deplib" -- done # for deplib -- continue -- fi # $linkmode = prog... -+ $ECHO >> "$output_objdir/$my_dlsyms" "\ -+extern $lt_dlsym_const lt_dlsymlist -+lt_${my_prefix}_LTX_preloaded_symbols[]; -+$lt_dlsym_const lt_dlsymlist -+lt_${my_prefix}_LTX_preloaded_symbols[] = -+{\ -+ { \"$my_originator\", (void *) 0 }," - -- if test "$linkmode,$pass" = "prog,link"; then -- if test -n "$library_names" && -- { { test "$prefer_static_libs" = no || -- test "$prefer_static_libs,$installed" = "built,yes"; } || -- test -z "$old_library"; }; then -- # We need to hardcode the library path -- if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then -- # Make sure the rpath contains only unique directories. -- case "$temp_rpath " in -- *" $dir "*) ;; -- *" $absdir "*) ;; -- *) temp_rpath="$temp_rpath $absdir" ;; -- esac -- fi -+ case $need_lib_prefix in -+ no) -+ eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$my_dlsyms" -+ ;; -+ *) -+ eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms" -+ ;; -+ esac -+ $ECHO >> "$output_objdir/$my_dlsyms" "\ -+ {0, (void *) 0} -+}; - -- # Hardcode the library path. -- # Skip directories that are in the system default run-time -- # search path. -- case " $sys_lib_dlsearch_path " in -- *" $absdir "*) ;; -- *) -- case "$compile_rpath " in -- *" $absdir "*) ;; -- *) compile_rpath="$compile_rpath $absdir" -- esac -- ;; -- esac -- case " $sys_lib_dlsearch_path " in -- *" $libdir "*) ;; -- *) -- case "$finalize_rpath " in -- *" $libdir "*) ;; -- *) finalize_rpath="$finalize_rpath $libdir" -- esac -- ;; -- esac -- fi # $linkmode,$pass = prog,link... -- -- if test "$alldeplibs" = yes && -- { test "$deplibs_check_method" = pass_all || -- { test "$build_libtool_libs" = yes && -- test -n "$library_names"; }; }; then -- # We only need to search for static libraries -- continue -- fi -- fi -+/* This works around a problem in FreeBSD linker */ -+#ifdef FREEBSD_WORKAROUND -+static const void *lt_preloaded_setup() { -+ return lt_${my_prefix}_LTX_preloaded_symbols; -+} -+#endif - -- link_static=no # Whether the deplib will be linked statically -- use_static_libs=$prefer_static_libs -- if test "$use_static_libs" = built && test "$installed" = yes ; then -- use_static_libs=no -- fi -- if test -n "$library_names" && -- { test "$use_static_libs" = no || test -z "$old_library"; }; then -- if test "$installed" = no; then -- notinst_deplibs="$notinst_deplibs $lib" -- need_relink=yes -- fi -- # This is a shared library -+#ifdef __cplusplus -+} -+#endif\ -+" -+ } # !$opt_dry_run - -- # Warn about portability, can't link against -module's on -- # some systems (darwin) -- if test "$shouldnotlink" = yes && test "$pass" = link ; then -- $echo -- if test "$linkmode" = prog; then -- $echo "*** Warning: Linking the executable $output against the loadable module" -- else -- $echo "*** Warning: Linking the shared library $output against the loadable module" -+ pic_flag_for_symtable= -+ case "$compile_command " in -+ *" -static "*) ;; -+ *) -+ case $host in -+ # compiling the symbol table file with pic_flag works around -+ # a FreeBSD bug that causes programs to crash when -lm is -+ # linked before any other PIC object. But we must not use -+ # pic_flag when linking with -static. The problem exists in -+ # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1. -+ *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) -+ pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;; -+ *-*-hpux*) -+ pic_flag_for_symtable=" $pic_flag" ;; -+ *) -+ if test "X$my_pic_p" != Xno; then -+ pic_flag_for_symtable=" $pic_flag" - fi -- $echo "*** $linklib is not portable!" -- fi -- if test "$linkmode" = lib && -- test "$hardcode_into_libs" = yes; then -- # Hardcode the library path. -- # Skip directories that are in the system default run-time -- # search path. -- case " $sys_lib_dlsearch_path " in -- *" $absdir "*) ;; -- *) -- case "$compile_rpath " in -- *" $absdir "*) ;; -- *) compile_rpath="$compile_rpath $absdir" -- esac -- ;; -- esac -- case " $sys_lib_dlsearch_path " in -- *" $libdir "*) ;; -- *) -- case "$finalize_rpath " in -- *" $libdir "*) ;; -- *) finalize_rpath="$finalize_rpath $libdir" -- esac -- ;; -- esac -+ ;; -+ esac -+ ;; -+ esac -+ symtab_cflags= -+ for arg in $LTCFLAGS; do -+ case $arg in -+ -pie | -fpie | -fPIE) ;; -+ *) symtab_cflags="$symtab_cflags $arg" ;; -+ esac -+ done -+ -+ # Now compile the dynamic symbol file. -+ func_show_eval '(cd $output_objdir && $LTCC$symtab_cflags -c$no_builtin_flag$pic_flag_for_symtable "$my_dlsyms")' 'exit $?' -+ -+ # Clean up the generated files. -+ func_show_eval '$RM "$output_objdir/$my_dlsyms" "$nlist" "${nlist}S" "${nlist}T"' -+ -+ # Transform the symbol file into the correct name. -+ symfileobj="$output_objdir/${my_outputname}S.$objext" -+ case $host in -+ *cygwin* | *mingw* | *cegcc* ) -+ if test -f "$output_objdir/$my_outputname.def"; then -+ compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` -+ finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` -+ else -+ compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` -+ finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` - fi -+ ;; -+ *) -+ compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` -+ finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` -+ ;; -+ esac -+ ;; -+ *) -+ func_fatal_error "unknown suffix for \`$my_dlsyms'" -+ ;; -+ esac -+ else -+ # We keep going just in case the user didn't refer to -+ # lt_preloaded_symbols. The linker will fail if global_symbol_pipe -+ # really was required. -+ -+ # Nullify the symbol file. -+ compile_command=`$ECHO "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"` -+ finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"` -+ fi -+} - -- if test -n "$old_archive_from_expsyms_cmds"; then -- # figure out the soname -- set dummy $library_names -- realname="$2" -- shift; shift -- libname=`eval \\$echo \"$libname_spec\"` -- # use dlname if we got it. it's perfectly good, no? -- if test -n "$dlname"; then -- soname="$dlname" -- elif test -n "$soname_spec"; then -- # bleh windows -- case $host in -- *cygwin* | mingw*) -- major=`expr $current - $age` -- versuffix="-$major" -- ;; -- esac -- eval soname=\"$soname_spec\" -- else -- soname="$realname" -- fi -+# func_win32_libid arg -+# return the library type of file 'arg' -+# -+# Need a lot of goo to handle *both* DLLs and import libs -+# Has to be a shell function in order to 'eat' the argument -+# that is supplied when $file_magic_command is called. -+func_win32_libid () -+{ -+ $opt_debug -+ win32_libid_type="unknown" -+ win32_fileres=`file -L $1 2>/dev/null` -+ case $win32_fileres in -+ *ar\ archive\ import\ library*) # definitely import -+ win32_libid_type="x86 archive import" -+ ;; -+ *ar\ archive*) # could be an import, or static -+ if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | -+ $EGREP 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then -+ win32_nmres=`eval $NM -f posix -A $1 | -+ $SED -n -e ' -+ 1,100{ -+ / I /{ -+ s,.*,import, -+ p -+ q -+ } -+ }'` -+ case $win32_nmres in -+ import*) win32_libid_type="x86 archive import";; -+ *) win32_libid_type="x86 archive static";; -+ esac -+ fi -+ ;; -+ *DLL*) -+ win32_libid_type="x86 DLL" -+ ;; -+ *executable*) # but shell scripts are "executable" too... -+ case $win32_fileres in -+ *MS\ Windows\ PE\ Intel*) -+ win32_libid_type="x86 DLL" -+ ;; -+ esac -+ ;; -+ esac -+ $ECHO "$win32_libid_type" -+} - -- # Make a new name for the extract_expsyms_cmds to use -- soroot="$soname" -- soname=`$echo $soroot | ${SED} -e 's/^.*\///'` -- newlib="libimp-`$echo $soname | ${SED} 's/^lib//;s/\.dll$//'`.a" - -- # If the library has no export list, then create one now -- if test -f "$output_objdir/$soname-def"; then : -- else -- $show "extracting exported symbol list from \`$soname'" -- save_ifs="$IFS"; IFS='~' -- cmds=$extract_expsyms_cmds -- for cmd in $cmds; do -- IFS="$save_ifs" -- eval cmd=\"$cmd\" -- $show "$cmd" -- $run eval "$cmd" || exit $? -- done -- IFS="$save_ifs" -- fi - -- # Create $newlib -- if test -f "$output_objdir/$newlib"; then :; else -- $show "generating import library for \`$soname'" -- save_ifs="$IFS"; IFS='~' -- cmds=$old_archive_from_expsyms_cmds -- for cmd in $cmds; do -- IFS="$save_ifs" -- eval cmd=\"$cmd\" -- $show "$cmd" -- $run eval "$cmd" || exit $? -- done -- IFS="$save_ifs" -- fi -- # make sure the library variables are pointing to the new library -- dir=$output_objdir -- linklib=$newlib -- fi # test -n "$old_archive_from_expsyms_cmds" -+# func_extract_an_archive dir oldlib -+func_extract_an_archive () -+{ -+ $opt_debug -+ f_ex_an_ar_dir="$1"; shift -+ f_ex_an_ar_oldlib="$1" -+ func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" 'exit $?' -+ if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then -+ : -+ else -+ func_fatal_error "object name conflicts in archive: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" -+ fi -+} - -- if test "$linkmode" = prog || test "$mode" != relink; then -- add_shlibpath= -- add_dir= -- add= -- lib_linked=yes -- case $hardcode_action in -- immediate | unsupported) -- if test "$hardcode_direct" = no; then -- add="$dir/$linklib" -- case $host in -- *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;; -- *-*-sysv4*uw2*) add_dir="-L$dir" ;; -- *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \ -- *-*-unixware7*) add_dir="-L$dir" ;; -- *-*-darwin* ) -- # if the lib is a module then we can not link against -- # it, someone is ignoring the new warnings I added -- if /usr/bin/file -L $add 2> /dev/null | -- $EGREP ": [^:]* bundle" >/dev/null ; then -- $echo "** Warning, lib $linklib is a module, not a shared library" -- if test -z "$old_library" ; then -- $echo -- $echo "** And there doesn't seem to be a static archive available" -- $echo "** The link will probably fail, sorry" -- else -- add="$dir/$old_library" -- fi -- fi -- esac -- elif test "$hardcode_minus_L" = no; then -- case $host in -- *-*-sunos*) add_shlibpath="$dir" ;; -- esac -- add_dir="-L$dir" -- add="-l$name" -- elif test "$hardcode_shlibpath_var" = no; then -- add_shlibpath="$dir" -- add="-l$name" -- else -- lib_linked=no -- fi -- ;; -- relink) -- if test "$hardcode_direct" = yes; then -- add="$dir/$linklib" -- elif test "$hardcode_minus_L" = yes; then -- add_dir="-L$dir" -- # Try looking first in the location we're being installed to. -- if test -n "$inst_prefix_dir"; then -- case $libdir in -- [\\/]*) -- add_dir="$add_dir -L$inst_prefix_dir$libdir" -- ;; -- esac -- fi -- add="-l$name" -- elif test "$hardcode_shlibpath_var" = yes; then -- add_shlibpath="$dir" -- add="-l$name" -- else -- lib_linked=no -- fi -- ;; -- *) lib_linked=no ;; -- esac - -- if test "$lib_linked" != yes; then -- $echo "$modename: configuration error: unsupported hardcode properties" -- exit $EXIT_FAILURE -- fi -+# func_extract_archives gentop oldlib ... -+func_extract_archives () -+{ -+ $opt_debug -+ my_gentop="$1"; shift -+ my_oldlibs=${1+"$@"} -+ my_oldobjs="" -+ my_xlib="" -+ my_xabs="" -+ my_xdir="" - -- if test -n "$add_shlibpath"; then -- case :$compile_shlibpath: in -- *":$add_shlibpath:"*) ;; -- *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;; -- esac -- fi -- if test "$linkmode" = prog; then -- test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs" -- test -n "$add" && compile_deplibs="$add $compile_deplibs" -- else -- test -n "$add_dir" && deplibs="$add_dir $deplibs" -- test -n "$add" && deplibs="$add $deplibs" -- if test "$hardcode_direct" != yes && \ -- test "$hardcode_minus_L" != yes && \ -- test "$hardcode_shlibpath_var" = yes; then -- case :$finalize_shlibpath: in -- *":$libdir:"*) ;; -- *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; -- esac -- fi -- fi -- fi -+ for my_xlib in $my_oldlibs; do -+ # Extract the objects. -+ case $my_xlib in -+ [\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;; -+ *) my_xabs=`pwd`"/$my_xlib" ;; -+ esac -+ func_basename "$my_xlib" -+ my_xlib="$func_basename_result" -+ my_xlib_u=$my_xlib -+ while :; do -+ case " $extracted_archives " in -+ *" $my_xlib_u "*) -+ func_arith $extracted_serial + 1 -+ extracted_serial=$func_arith_result -+ my_xlib_u=lt$extracted_serial-$my_xlib ;; -+ *) break ;; -+ esac -+ done -+ extracted_archives="$extracted_archives $my_xlib_u" -+ my_xdir="$my_gentop/$my_xlib_u" - -- if test "$linkmode" = prog || test "$mode" = relink; then -- add_shlibpath= -- add_dir= -- add= -- # Finalize command for both is simple: just hardcode it. -- if test "$hardcode_direct" = yes; then -- add="$libdir/$linklib" -- elif test "$hardcode_minus_L" = yes; then -- add_dir="-L$libdir" -- add="-l$name" -- elif test "$hardcode_shlibpath_var" = yes; then -- case :$finalize_shlibpath: in -- *":$libdir:"*) ;; -- *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; -- esac -- add="-l$name" -- elif test "$hardcode_automatic" = yes; then -- if test -n "$inst_prefix_dir" && -- test -f "$inst_prefix_dir$libdir/$linklib" ; then -- add="$inst_prefix_dir$libdir/$linklib" -- else -- add="$libdir/$linklib" -- fi -- else -- # We cannot seem to hardcode it, guess we'll fake it. -- add_dir="-L$libdir" -- # Try looking first in the location we're being installed to. -- if test -n "$inst_prefix_dir"; then -- case $libdir in -- [\\/]*) -- add_dir="$add_dir -L$inst_prefix_dir$libdir" -- ;; -- esac -- fi -- add="-l$name" -- fi -+ func_mkdir_p "$my_xdir" - -- if test "$linkmode" = prog; then -- test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs" -- test -n "$add" && finalize_deplibs="$add $finalize_deplibs" -- else -- test -n "$add_dir" && deplibs="$add_dir $deplibs" -- test -n "$add" && deplibs="$add $deplibs" -- fi -- fi -- elif test "$linkmode" = prog; then -- # Here we assume that one of hardcode_direct or hardcode_minus_L -- # is not unsupported. This is valid on all known static and -- # shared platforms. -- if test "$hardcode_direct" != unsupported; then -- test -n "$old_library" && linklib="$old_library" -- compile_deplibs="$dir/$linklib $compile_deplibs" -- finalize_deplibs="$dir/$linklib $finalize_deplibs" -+ case $host in -+ *-darwin*) -+ func_verbose "Extracting $my_xabs" -+ # Do not bother doing anything if just a dry run -+ $opt_dry_run || { -+ darwin_orig_dir=`pwd` -+ cd $my_xdir || exit $? -+ darwin_archive=$my_xabs -+ darwin_curdir=`pwd` -+ darwin_base_archive=`basename "$darwin_archive"` -+ darwin_arches=`$LIPO -info "$darwin_archive" 2>/dev/null | $GREP Architectures 2>/dev/null || true` -+ if test -n "$darwin_arches"; then -+ darwin_arches=`$ECHO "$darwin_arches" | $SED -e 's/.*are://'` -+ darwin_arch= -+ func_verbose "$darwin_base_archive has multiple architectures $darwin_arches" -+ for darwin_arch in $darwin_arches ; do -+ func_mkdir_p "unfat-$$/${darwin_base_archive}-${darwin_arch}" -+ $LIPO -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}" -+ cd "unfat-$$/${darwin_base_archive}-${darwin_arch}" -+ func_extract_an_archive "`pwd`" "${darwin_base_archive}" -+ cd "$darwin_curdir" -+ $RM "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" -+ done # $darwin_arches -+ ## Okay now we've a bunch of thin objects, gotta fatten them up :) -+ darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print | $SED -e "$basename" | sort -u` -+ darwin_file= -+ darwin_files= -+ for darwin_file in $darwin_filelist; do -+ darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP` -+ $LIPO -create -output "$darwin_file" $darwin_files -+ done # $darwin_filelist -+ $RM -rf unfat-$$ -+ cd "$darwin_orig_dir" - else -- compile_deplibs="-l$name -L$dir $compile_deplibs" -- finalize_deplibs="-l$name -L$dir $finalize_deplibs" -- fi -- elif test "$build_libtool_libs" = yes; then -- # Not a shared library -- if test "$deplibs_check_method" != pass_all; then -- # We're trying link a shared library against a static one -- # but the system doesn't support it. -+ cd $darwin_orig_dir -+ func_extract_an_archive "$my_xdir" "$my_xabs" -+ fi # $darwin_arches -+ } # !$opt_dry_run -+ ;; -+ *) -+ func_extract_an_archive "$my_xdir" "$my_xabs" -+ ;; -+ esac -+ my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP` -+ done - -- # Just print a warning and add the library to dependency_libs so -- # that the program can be linked against the static library. -- $echo -- $echo "*** Warning: This system can not link to static lib archive $lib." -- $echo "*** I have the capability to make that library automatically link in when" -- $echo "*** you link to this library. But I can only do this if you have a" -- $echo "*** shared version of the library, which you do not appear to have." -- if test "$module" = yes; then -- $echo "*** But as you try to build a module library, libtool will still create " -- $echo "*** a static module, that should work as long as the dlopening application" -- $echo "*** is linked with the -dlopen flag to resolve symbols at runtime." -- if test -z "$global_symbol_pipe"; then -- $echo -- $echo "*** However, this would only work if libtool was able to extract symbol" -- $echo "*** lists from a program, using \`nm' or equivalent, but libtool could" -- $echo "*** not find such a program. So, this module is probably useless." -- $echo "*** \`nm' from GNU binutils and a full rebuild may help." -- fi -- if test "$build_old_libs" = no; then -- build_libtool_libs=module -- build_old_libs=yes -- else -- build_libtool_libs=no -- fi -- fi -- else -- deplibs="$dir/$old_library $deplibs" -- link_static=yes -- fi -- fi # link shared/static library? -+ func_extract_archives_result="$my_oldobjs" -+} - -- if test "$linkmode" = lib; then -- if test -n "$dependency_libs" && -- { test "$hardcode_into_libs" != yes || -- test "$build_old_libs" = yes || -- test "$link_static" = yes; }; then -- # Extract -R from dependency_libs -- temp_deplibs= -- for libdir in $dependency_libs; do -- case $libdir in -- -R*) temp_xrpath=`$echo "X$libdir" | $Xsed -e 's/^-R//'` -- case " $xrpath " in -- *" $temp_xrpath "*) ;; -- *) xrpath="$xrpath $temp_xrpath";; -- esac;; -- *) temp_deplibs="$temp_deplibs $libdir";; -- esac -- done -- dependency_libs="$temp_deplibs" -- fi - -- newlib_search_path="$newlib_search_path $absdir" -- # Link against this library -- test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs" -- # ... and its dependency_libs -- tmp_libs= -- for deplib in $dependency_libs; do -- newdependency_libs="$deplib $newdependency_libs" -- if test "X$duplicate_deps" = "Xyes" ; then -- case "$tmp_libs " in -- *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; -- esac -- fi -- tmp_libs="$tmp_libs $deplib" -- done - -- if test "$link_all_deplibs" != no; then -- # Add the search paths of all dependency libraries -- for deplib in $dependency_libs; do -- case $deplib in -- -L*) path="$deplib" ;; -- *.la) -- dir=`$echo "X$deplib" | $Xsed -e 's%/[^/]*$%%'` -- test "X$dir" = "X$deplib" && dir="." -- # We need an absolute path. -- case $dir in -- [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;; -- *) -- absdir=`cd "$dir" && pwd` -- if test -z "$absdir"; then -- $echo "$modename: warning: cannot determine absolute directory name of \`$dir'" 1>&2 -- absdir="$dir" -- fi -- ;; -- esac -- if grep "^installed=no" $deplib > /dev/null; then -- path="$absdir/$objdir" -- else -- eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` -- if test -z "$libdir"; then -- $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2 -- exit $EXIT_FAILURE -- fi -- if test "$absdir" != "$libdir"; then -- $echo "$modename: warning: \`$deplib' seems to be moved" 1>&2 -- fi -- path="$absdir" -- fi -- depdepl= -- case $host in -- *-*-darwin*) -- # we do not want to link against static libs, -- # but need to link against shared -- eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib` -- eval deplibdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` -- if test -n "$deplibrary_names" ; then -- for tmp in $deplibrary_names ; do -- depdepl=$tmp -- done -- if test -f "$deplibdir/$depdepl" ; then -- depdepl="$deplibdir/$depdepl" -- elif test -f "$path/$depdepl" ; then -- depdepl="$path/$depdepl" -- else -- # Can't find it, oh well... -- depdepl= -- fi -- # do not add paths which are already there -- case " $newlib_search_path " in -- *" $path "*) ;; -- *) newlib_search_path="$newlib_search_path $path";; -- esac -- fi -- path="" -- ;; -- *) -- path="-L$path" -- ;; -- esac -- ;; -- -l*) -- case $host in -- *-*-darwin*) -- # Again, we only want to link against shared libraries -- eval tmp_libs=`$echo "X$deplib" | $Xsed -e "s,^\-l,,"` -- for tmp in $newlib_search_path ; do -- if test -f "$tmp/lib$tmp_libs.dylib" ; then -- eval depdepl="$tmp/lib$tmp_libs.dylib" -- break -- fi -- done -- path="" -- ;; -- *) continue ;; -- esac -- ;; -- *) continue ;; -- esac -- case " $deplibs " in -- *" $path "*) ;; -- *) deplibs="$path $deplibs" ;; -- esac -- case " $deplibs " in -- *" $depdepl "*) ;; -- *) deplibs="$depdepl $deplibs" ;; -- esac -- done -- fi # link_all_deplibs != no -- fi # linkmode = lib -- done # for deplib in $libs -- dependency_libs="$newdependency_libs" -- if test "$pass" = dlpreopen; then -- # Link the dlpreopened libraries before other libraries -- for deplib in $save_deplibs; do -- deplibs="$deplib $deplibs" -- done -- fi -- if test "$pass" != dlopen; then -- if test "$pass" != conv; then -- # Make sure lib_search_path contains only unique directories. -- lib_search_path= -- for dir in $newlib_search_path; do -- case "$lib_search_path " in -- *" $dir "*) ;; -- *) lib_search_path="$lib_search_path $dir" ;; -- esac -- done -- newlib_search_path= -+# func_emit_wrapper_part1 [arg=no] -+# -+# Emit the first part of a libtool wrapper script on stdout. -+# For more information, see the description associated with -+# func_emit_wrapper(), below. -+func_emit_wrapper_part1 () -+{ -+ func_emit_wrapper_part1_arg1=no -+ if test -n "$1" ; then -+ func_emit_wrapper_part1_arg1=$1 - fi - -- if test "$linkmode,$pass" != "prog,link"; then -- vars="deplibs" -- else -- vars="compile_deplibs finalize_deplibs" -- fi -- for var in $vars dependency_libs; do -- # Add libraries to $var in reverse order -- eval tmp_libs=\"\$$var\" -- new_libs= -- for deplib in $tmp_libs; do -- # FIXME: Pedantically, this is the right thing to do, so -- # that some nasty dependency loop isn't accidentally -- # broken: -- #new_libs="$deplib $new_libs" -- # Pragmatically, this seems to cause very few problems in -- # practice: -- case $deplib in -- -L*) new_libs="$deplib $new_libs" ;; -- -R*) ;; -- *) -- # And here is the reason: when a library appears more -- # than once as an explicit dependence of a library, or -- # is implicitly linked in more than once by the -- # compiler, it is considered special, and multiple -- # occurrences thereof are not removed. Compare this -- # with having the same library being listed as a -- # dependency of multiple other libraries: in this case, -- # we know (pedantically, we assume) the library does not -- # need to be listed more than once, so we keep only the -- # last copy. This is not always right, but it is rare -- # enough that we require users that really mean to play -- # such unportable linking tricks to link the library -- # using -Wl,-lname, so that libtool does not consider it -- # for duplicate removal. -- case " $specialdeplibs " in -- *" $deplib "*) new_libs="$deplib $new_libs" ;; -- *) -- case " $new_libs " in -- *" $deplib "*) ;; -- *) new_libs="$deplib $new_libs" ;; -- esac -- ;; -- esac -- ;; -- esac -- done -- tmp_libs= -- for deplib in $new_libs; do -- case $deplib in -- -L*) -- case " $tmp_libs " in -- *" $deplib "*) ;; -- *) tmp_libs="$tmp_libs $deplib" ;; -- esac -- ;; -- *) tmp_libs="$tmp_libs $deplib" ;; -- esac -- done -- eval $var=\"$tmp_libs\" -- done # for var -- fi -- # Last step: remove runtime libs from dependency_libs -- # (they stay in deplibs) -- tmp_libs= -- for i in $dependency_libs ; do -- case " $predeps $postdeps $compiler_lib_search_path " in -- *" $i "*) -- i="" -- ;; -- esac -- if test -n "$i" ; then -- tmp_libs="$tmp_libs $i" -- fi -- done -- dependency_libs=$tmp_libs -- done # for pass -- if test "$linkmode" = prog; then -- dlfiles="$newdlfiles" -- dlprefiles="$newdlprefiles" -+ $ECHO "\ -+#! $SHELL -+ -+# $output - temporary wrapper script for $objdir/$outputname -+# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION -+# -+# The $output program cannot be directly executed until all the libtool -+# libraries that it depends on are installed. -+# -+# This wrapper script should never be moved out of the build directory. -+# If it is, it will not operate correctly. -+ -+# Sed substitution that helps us do robust quoting. It backslashifies -+# metacharacters that are still active within double-quoted strings. -+Xsed='${SED} -e 1s/^X//' -+sed_quote_subst='$sed_quote_subst' -+ -+# Be Bourne compatible -+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 -+ # 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 -+BIN_SH=xpg4; export BIN_SH # for Tru64 -+DUALCASE=1; export DUALCASE # for MKS sh -+ -+# The HP-UX ksh and POSIX shell print the target directory to stdout -+# if CDPATH is set. -+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH -+ -+relink_command=\"$relink_command\" -+ -+# This environment variable determines our operation mode. -+if test \"\$libtool_install_magic\" = \"$magic\"; then -+ # install mode needs the following variables: -+ generated_by_libtool_version='$macro_version' -+ notinst_deplibs='$notinst_deplibs' -+else -+ # When we are sourced in execute mode, \$file and \$ECHO are already set. -+ if test \"\$libtool_execute_magic\" != \"$magic\"; then -+ ECHO=\"$qecho\" -+ file=\"\$0\" -+ # Make sure echo works. -+ if test \"X\$1\" = X--no-reexec; then -+ # Discard the --no-reexec flag, and continue. -+ shift -+ elif test \"X\`{ \$ECHO '\t'; } 2>/dev/null\`\" = 'X\t'; then -+ # Yippee, \$ECHO works! -+ : -+ else -+ # Restart under the correct shell, and then maybe \$ECHO will work. -+ exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"} - fi -+ fi\ -+" -+ $ECHO "\ - -- case $linkmode in -- oldlib) -- case " $deplibs" in -- *\ -l* | *\ -L*) -- $echo "$modename: warning: \`-l' and \`-L' are ignored for archives" 1>&2 ;; -+ # Find the directory that this script lives in. -+ thisdir=\`\$ECHO \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\` -+ test \"x\$thisdir\" = \"x\$file\" && thisdir=. -+ -+ # Follow symbolic links until we get to the real thisdir. -+ file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\` -+ while test -n \"\$file\"; do -+ destdir=\`\$ECHO \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\` -+ -+ # If there was a directory component, then change thisdir. -+ if test \"x\$destdir\" != \"x\$file\"; then -+ case \"\$destdir\" in -+ [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;; -+ *) thisdir=\"\$thisdir/\$destdir\" ;; - esac -+ fi - -- if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then -- $echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2 -- fi -+ file=\`\$ECHO \"X\$file\" | \$Xsed -e 's%^.*/%%'\` -+ file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\` -+ done -+" -+} -+# end: func_emit_wrapper_part1 - -- if test -n "$rpath"; then -- $echo "$modename: warning: \`-rpath' is ignored for archives" 1>&2 -- fi -+# func_emit_wrapper_part2 [arg=no] -+# -+# Emit the second part of a libtool wrapper script on stdout. -+# For more information, see the description associated with -+# func_emit_wrapper(), below. -+func_emit_wrapper_part2 () -+{ -+ func_emit_wrapper_part2_arg1=no -+ if test -n "$1" ; then -+ func_emit_wrapper_part2_arg1=$1 -+ fi -+ -+ $ECHO "\ -+ -+ # Usually 'no', except on cygwin/mingw when embedded into -+ # the cwrapper. -+ WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_part2_arg1 -+ if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then -+ # special case for '.' -+ if test \"\$thisdir\" = \".\"; then -+ thisdir=\`pwd\` -+ fi -+ # remove .libs from thisdir -+ case \"\$thisdir\" in -+ *[\\\\/]$objdir ) thisdir=\`\$ECHO \"X\$thisdir\" | \$Xsed -e 's%[\\\\/][^\\\\/]*$%%'\` ;; -+ $objdir ) thisdir=. ;; -+ esac -+ fi - -- if test -n "$xrpath"; then -- $echo "$modename: warning: \`-R' is ignored for archives" 1>&2 -- fi -+ # Try to get the absolute directory name. -+ absdir=\`cd \"\$thisdir\" && pwd\` -+ test -n \"\$absdir\" && thisdir=\"\$absdir\" -+" - -- if test -n "$vinfo"; then -- $echo "$modename: warning: \`-version-info/-version-number' is ignored for archives" 1>&2 -- fi -+ if test "$fast_install" = yes; then -+ $ECHO "\ -+ program=lt-'$outputname'$exeext -+ progdir=\"\$thisdir/$objdir\" - -- if test -n "$release"; then -- $echo "$modename: warning: \`-release' is ignored for archives" 1>&2 -- fi -+ if test ! -f \"\$progdir/\$program\" || -+ { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\ -+ test \"X\$file\" != \"X\$progdir/\$program\"; }; then - -- if test -n "$export_symbols" || test -n "$export_symbols_regex"; then -- $echo "$modename: warning: \`-export-symbols' is ignored for archives" 1>&2 -- fi -+ file=\"\$\$-\$program\" - -- # Now set the variables for building old libraries. -- build_libtool_libs=no -- oldlibs="$output" -- objs="$objs$old_deplibs" -- ;; -+ if test ! -d \"\$progdir\"; then -+ $MKDIR \"\$progdir\" -+ else -+ $RM \"\$progdir/\$file\" -+ fi" - -- lib) -- # Make sure we only generate libraries of the form `libNAME.la'. -- case $outputname in -- lib*) -- name=`$echo "X$outputname" | $Xsed -e 's/\.la$//' -e 's/^lib//'` -- eval shared_ext=\"$shrext_cmds\" -- eval libname=\"$libname_spec\" -- ;; -- *) -- if test "$module" = no; then -- $echo "$modename: libtool library \`$output' must begin with \`lib'" 1>&2 -- $echo "$help" 1>&2 -- exit $EXIT_FAILURE -- fi -- if test "$need_lib_prefix" != no; then -- # Add the "lib" prefix for modules if required -- name=`$echo "X$outputname" | $Xsed -e 's/\.la$//'` -- eval shared_ext=\"$shrext_cmds\" -- eval libname=\"$libname_spec\" -- else -- libname=`$echo "X$outputname" | $Xsed -e 's/\.la$//'` -- fi -- ;; -- esac -+ $ECHO "\ - -- if test -n "$objs"; then -- if test "$deplibs_check_method" != pass_all; then -- $echo "$modename: cannot build libtool library \`$output' from non-libtool objects on this host:$objs" 2>&1 -- exit $EXIT_FAILURE -+ # relink executable if necessary -+ if test -n \"\$relink_command\"; then -+ if relink_command_output=\`eval \$relink_command 2>&1\`; then : -+ else -+ $ECHO \"\$relink_command_output\" >&2 -+ $RM \"\$progdir/\$file\" -+ exit 1 -+ fi -+ fi -+ -+ $MV \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null || -+ { $RM \"\$progdir/\$program\"; -+ $MV \"\$progdir/\$file\" \"\$progdir/\$program\"; } -+ $RM \"\$progdir/\$file\" -+ fi" - else -- $echo -- $echo "*** Warning: Linking the shared library $output against the non-libtool" -- $echo "*** objects $objs is not portable!" -- libobjs="$libobjs $objs" -+ $ECHO "\ -+ program='$outputname' -+ progdir=\"\$thisdir/$objdir\" -+" - fi -- fi - -- if test "$dlself" != no; then -- $echo "$modename: warning: \`-dlopen self' is ignored for libtool libraries" 1>&2 -- fi -+ $ECHO "\ - -- set dummy $rpath -- if test "$#" -gt 2; then -- $echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2 -- fi -- install_libdir="$2" -+ if test -f \"\$progdir/\$program\"; then" - -- oldlibs= -- if test -z "$rpath"; then -- if test "$build_libtool_libs" = yes; then -- # Building a libtool convenience library. -- # Some compilers have problems with a `.al' extension so -- # convenience libraries should have the same extension an -- # archive normally would. -- oldlibs="$output_objdir/$libname.$libext $oldlibs" -- build_libtool_libs=convenience -- build_old_libs=yes -- fi -+ # Export our shlibpath_var if we have one. -+ if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then -+ $ECHO "\ -+ # Add our own library path to $shlibpath_var -+ $shlibpath_var=\"$temp_rpath\$$shlibpath_var\" -+ -+ # Some systems cannot cope with colon-terminated $shlibpath_var -+ # The second colon is a workaround for a bug in BeOS R4 sed -+ $shlibpath_var=\`\$ECHO \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\` - -- if test -n "$vinfo"; then -- $echo "$modename: warning: \`-version-info/-version-number' is ignored for convenience libraries" 1>&2 -+ export $shlibpath_var -+" - fi - -- if test -n "$release"; then -- $echo "$modename: warning: \`-release' is ignored for convenience libraries" 1>&2 -+ # fixup the dll searchpath if we need to. -+ if test -n "$dllsearchpath"; then -+ $ECHO "\ -+ # Add the dll search path components to the executable PATH -+ PATH=$dllsearchpath:\$PATH -+" - fi -- else - -- # Parse the version information argument. -- save_ifs="$IFS"; IFS=':' -- set dummy $vinfo 0 0 0 -- IFS="$save_ifs" -+ $ECHO "\ -+ if test \"\$libtool_execute_magic\" != \"$magic\"; then -+ # Run the actual program with our arguments. -+" -+ case $host in -+ # Backslashes separate directories on plain windows -+ *-*-mingw | *-*-os2* | *-cegcc*) -+ $ECHO "\ -+ exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} -+" -+ ;; -+ -+ *) -+ $ECHO "\ -+ exec \"\$progdir/\$program\" \${1+\"\$@\"} -+" -+ ;; -+ esac -+ $ECHO "\ -+ \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2 -+ exit 1 -+ fi -+ else -+ # The program doesn't exist. -+ \$ECHO \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2 -+ \$ECHO \"This script is just a wrapper for \$program.\" 1>&2 -+ $ECHO \"See the $PACKAGE documentation for more information.\" 1>&2 -+ exit 1 -+ fi -+fi\ -+" -+} -+# end: func_emit_wrapper_part2 -+ - -- if test -n "$8"; then -- $echo "$modename: too many parameters to \`-version-info'" 1>&2 -- $echo "$help" 1>&2 -- exit $EXIT_FAILURE -+# func_emit_wrapper [arg=no] -+# -+# Emit a libtool wrapper script on stdout. -+# Don't directly open a file because we may want to -+# incorporate the script contents within a cygwin/mingw -+# wrapper executable. Must ONLY be called from within -+# func_mode_link because it depends on a number of variables -+# set therein. -+# -+# ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR -+# variable will take. If 'yes', then the emitted script -+# will assume that the directory in which it is stored is -+# the $objdir directory. This is a cygwin/mingw-specific -+# behavior. -+func_emit_wrapper () -+{ -+ func_emit_wrapper_arg1=no -+ if test -n "$1" ; then -+ func_emit_wrapper_arg1=$1 - fi - -- # convert absolute version numbers to libtool ages -- # this retains compatibility with .la files and attempts -- # to make the code below a bit more comprehensible -+ # split this up so that func_emit_cwrapperexe_src -+ # can call each part independently. -+ func_emit_wrapper_part1 "${func_emit_wrapper_arg1}" -+ func_emit_wrapper_part2 "${func_emit_wrapper_arg1}" -+} - -- case $vinfo_number in -- yes) -- number_major="$2" -- number_minor="$3" -- number_revision="$4" -- # -- # There are really only two kinds -- those that -- # use the current revision as the major version -- # and those that subtract age and use age as -- # a minor version. But, then there is irix -- # which has an extra 1 added just for fun -- # -- case $version_type in -- darwin|linux|osf|windows|none) -- current=`expr $number_major + $number_minor` -- age="$number_minor" -- revision="$number_revision" -- ;; -- freebsd-aout|freebsd-elf|sunos) -- current="$number_major" -- revision="$number_minor" -- age="0" -- ;; -- irix|nonstopux) -- current=`expr $number_major + $number_minor` -- age="$number_minor" -- revision="$number_minor" -- lt_irix_increment=no -- ;; -- *) -- $echo "$modename: unknown library version type \`$version_type'" 1>&2 -- $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 -- exit $EXIT_FAILURE -- ;; -- esac -- ;; -- no) -- current="$2" -- revision="$3" -- age="$4" -- ;; -- esac - -- # Check that each of the things are valid numbers. -- case $current in -- 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; -- *) -- $echo "$modename: CURRENT \`$current' must be a nonnegative integer" 1>&2 -- $echo "$modename: \`$vinfo' is not valid version information" 1>&2 -- exit $EXIT_FAILURE -- ;; -- esac -+# func_to_host_path arg -+# -+# Convert paths to host format when used with build tools. -+# Intended for use with "native" mingw (where libtool itself -+# is running under the msys shell), or in the following cross- -+# build environments: -+# $build $host -+# mingw (msys) mingw [e.g. native] -+# cygwin mingw -+# *nix + wine mingw -+# where wine is equipped with the `winepath' executable. -+# In the native mingw case, the (msys) shell automatically -+# converts paths for any non-msys applications it launches, -+# but that facility isn't available from inside the cwrapper. -+# Similar accommodations are necessary for $host mingw and -+# $build cygwin. Calling this function does no harm for other -+# $host/$build combinations not listed above. -+# -+# ARG is the path (on $build) that should be converted to -+# the proper representation for $host. The result is stored -+# in $func_to_host_path_result. -+func_to_host_path () -+{ -+ func_to_host_path_result="$1" -+ if test -n "$1" ; then -+ case $host in -+ *mingw* ) -+ lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' -+ case $build in -+ *mingw* ) # actually, msys -+ # awkward: cmd appends spaces to result -+ lt_sed_strip_trailing_spaces="s/[ ]*\$//" -+ func_to_host_path_tmp1=`( cmd //c echo "$1" |\ -+ $SED -e "$lt_sed_strip_trailing_spaces" ) 2>/dev/null || echo ""` -+ func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\ -+ $SED -e "$lt_sed_naive_backslashify"` -+ ;; -+ *cygwin* ) -+ func_to_host_path_tmp1=`cygpath -w "$1"` -+ func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\ -+ $SED -e "$lt_sed_naive_backslashify"` -+ ;; -+ * ) -+ # Unfortunately, winepath does not exit with a non-zero -+ # error code, so we are forced to check the contents of -+ # stdout. On the other hand, if the command is not -+ # found, the shell will set an exit code of 127 and print -+ # *an error message* to stdout. So we must check for both -+ # error code of zero AND non-empty stdout, which explains -+ # the odd construction: -+ func_to_host_path_tmp1=`winepath -w "$1" 2>/dev/null` -+ if test "$?" -eq 0 && test -n "${func_to_host_path_tmp1}"; then -+ func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\ -+ $SED -e "$lt_sed_naive_backslashify"` -+ else -+ # Allow warning below. -+ func_to_host_path_result="" -+ fi -+ ;; -+ esac -+ if test -z "$func_to_host_path_result" ; then -+ func_error "Could not determine host path corresponding to" -+ func_error " '$1'" -+ func_error "Continuing, but uninstalled executables may not work." -+ # Fallback: -+ func_to_host_path_result="$1" -+ fi -+ ;; -+ esac -+ fi -+} -+# end: func_to_host_path - -- case $revision in -- 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; -- *) -- $echo "$modename: REVISION \`$revision' must be a nonnegative integer" 1>&2 -- $echo "$modename: \`$vinfo' is not valid version information" 1>&2 -- exit $EXIT_FAILURE -- ;; -- esac -+# func_to_host_pathlist arg -+# -+# Convert pathlists to host format when used with build tools. -+# See func_to_host_path(), above. This function supports the -+# following $build/$host combinations (but does no harm for -+# combinations not listed here): -+# $build $host -+# mingw (msys) mingw [e.g. native] -+# cygwin mingw -+# *nix + wine mingw -+# -+# Path separators are also converted from $build format to -+# $host format. If ARG begins or ends with a path separator -+# character, it is preserved (but converted to $host format) -+# on output. -+# -+# ARG is a pathlist (on $build) that should be converted to -+# the proper representation on $host. The result is stored -+# in $func_to_host_pathlist_result. -+func_to_host_pathlist () -+{ -+ func_to_host_pathlist_result="$1" -+ if test -n "$1" ; then -+ case $host in -+ *mingw* ) -+ lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' -+ # Remove leading and trailing path separator characters from -+ # ARG. msys behavior is inconsistent here, cygpath turns them -+ # into '.;' and ';.', and winepath ignores them completely. -+ func_to_host_pathlist_tmp2="$1" -+ # Once set for this call, this variable should not be -+ # reassigned. It is used in tha fallback case. -+ func_to_host_pathlist_tmp1=`echo "$func_to_host_pathlist_tmp2" |\ -+ $SED -e 's|^:*||' -e 's|:*$||'` -+ case $build in -+ *mingw* ) # Actually, msys. -+ # Awkward: cmd appends spaces to result. -+ lt_sed_strip_trailing_spaces="s/[ ]*\$//" -+ func_to_host_pathlist_tmp2=`( cmd //c echo "$func_to_host_pathlist_tmp1" |\ -+ $SED -e "$lt_sed_strip_trailing_spaces" ) 2>/dev/null || echo ""` -+ func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp2" |\ -+ $SED -e "$lt_sed_naive_backslashify"` -+ ;; -+ *cygwin* ) -+ func_to_host_pathlist_tmp2=`cygpath -w -p "$func_to_host_pathlist_tmp1"` -+ func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp2" |\ -+ $SED -e "$lt_sed_naive_backslashify"` -+ ;; -+ * ) -+ # unfortunately, winepath doesn't convert pathlists -+ func_to_host_pathlist_result="" -+ func_to_host_pathlist_oldIFS=$IFS -+ IFS=: -+ for func_to_host_pathlist_f in $func_to_host_pathlist_tmp1 ; do -+ IFS=$func_to_host_pathlist_oldIFS -+ if test -n "$func_to_host_pathlist_f" ; then -+ func_to_host_path "$func_to_host_pathlist_f" -+ if test -n "$func_to_host_path_result" ; then -+ if test -z "$func_to_host_pathlist_result" ; then -+ func_to_host_pathlist_result="$func_to_host_path_result" -+ else -+ func_to_host_pathlist_result="$func_to_host_pathlist_result;$func_to_host_path_result" -+ fi -+ fi -+ fi -+ IFS=: -+ done -+ IFS=$func_to_host_pathlist_oldIFS -+ ;; -+ esac -+ if test -z "$func_to_host_pathlist_result" ; then -+ func_error "Could not determine the host path(s) corresponding to" -+ func_error " '$1'" -+ func_error "Continuing, but uninstalled executables may not work." -+ # Fallback. This may break if $1 contains DOS-style drive -+ # specifications. The fix is not to complicate the expression -+ # below, but for the user to provide a working wine installation -+ # with winepath so that path translation in the cross-to-mingw -+ # case works properly. -+ lt_replace_pathsep_nix_to_dos="s|:|;|g" -+ func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp1" |\ -+ $SED -e "$lt_replace_pathsep_nix_to_dos"` -+ fi -+ # Now, add the leading and trailing path separators back -+ case "$1" in -+ :* ) func_to_host_pathlist_result=";$func_to_host_pathlist_result" -+ ;; -+ esac -+ case "$1" in -+ *: ) func_to_host_pathlist_result="$func_to_host_pathlist_result;" -+ ;; -+ esac -+ ;; -+ esac -+ fi -+} -+# end: func_to_host_pathlist - -- case $age in -- 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; -- *) -- $echo "$modename: AGE \`$age' must be a nonnegative integer" 1>&2 -- $echo "$modename: \`$vinfo' is not valid version information" 1>&2 -- exit $EXIT_FAILURE -- ;; -- esac -+# func_emit_cwrapperexe_src -+# emit the source code for a wrapper executable on stdout -+# Must ONLY be called from within func_mode_link because -+# it depends on a number of variable set therein. -+func_emit_cwrapperexe_src () -+{ -+ cat <&2 -- $echo "$modename: \`$vinfo' is not valid version information" 1>&2 -- exit $EXIT_FAILURE -- fi -+/* $cwrappersource - temporary wrapper executable for $objdir/$outputname -+ Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION - -- # Calculate the version variables. -- major= -- versuffix= -- verstring= -- case $version_type in -- none) ;; -+ The $output program cannot be directly executed until all the libtool -+ libraries that it depends on are installed. - -- darwin) -- # Like Linux, but with the current version available in -- # verstring for coding it into the library header -- major=.`expr $current - $age` -- versuffix="$major.$age.$revision" -- # Darwin ld doesn't like 0 for these options... -- minor_current=`expr $current + 1` -- xlcverstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision" -- verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" -- ;; -+ This wrapper executable should never be moved out of the build directory. -+ If it is, it will not operate correctly. - -- freebsd-aout) -- major=".$current" -- versuffix=".$current.$revision"; -- ;; -+ Currently, it simply execs the wrapper *script* "$SHELL $output", -+ but could eventually absorb all of the scripts functionality and -+ exec $objdir/$outputname directly. -+*/ -+EOF -+ cat <<"EOF" -+#include -+#include -+#ifdef _MSC_VER -+# include -+# include -+# include -+# define setmode _setmode -+#else -+# include -+# include -+# ifdef __CYGWIN__ -+# include -+# define HAVE_SETENV -+# ifdef __STRICT_ANSI__ -+char *realpath (const char *, char *); -+int putenv (char *); -+int setenv (const char *, const char *, int); -+# endif -+# endif -+#endif -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include - -- freebsd-elf) -- major=".$current" -- versuffix=".$current"; -- ;; -+#if defined(PATH_MAX) -+# define LT_PATHMAX PATH_MAX -+#elif defined(MAXPATHLEN) -+# define LT_PATHMAX MAXPATHLEN -+#else -+# define LT_PATHMAX 1024 -+#endif - -- irix | nonstopux) -- if test "X$lt_irix_increment" = "Xno"; then -- major=`expr $current - $age` -- else -- major=`expr $current - $age + 1` -- fi -- case $version_type in -- nonstopux) verstring_prefix=nonstopux ;; -- *) verstring_prefix=sgi ;; -- esac -- verstring="$verstring_prefix$major.$revision" -+#ifndef S_IXOTH -+# define S_IXOTH 0 -+#endif -+#ifndef S_IXGRP -+# define S_IXGRP 0 -+#endif - -- # Add in all the interfaces that we are compatible with. -- loop=$revision -- while test "$loop" -ne 0; do -- iface=`expr $revision - $loop` -- loop=`expr $loop - 1` -- verstring="$verstring_prefix$major.$iface:$verstring" -- done -+#ifdef _MSC_VER -+# define S_IXUSR _S_IEXEC -+# define stat _stat -+# ifndef _INTPTR_T_DEFINED -+# define intptr_t int -+# endif -+#endif - -- # Before this point, $major must not contain `.'. -- major=.$major -- versuffix="$major.$revision" -- ;; -+#ifndef DIR_SEPARATOR -+# define DIR_SEPARATOR '/' -+# define PATH_SEPARATOR ':' -+#endif - -- linux) -- major=.`expr $current - $age` -- versuffix="$major.$age.$revision" -- ;; -+#if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \ -+ defined (__OS2__) -+# define HAVE_DOS_BASED_FILE_SYSTEM -+# define FOPEN_WB "wb" -+# ifndef DIR_SEPARATOR_2 -+# define DIR_SEPARATOR_2 '\\' -+# endif -+# ifndef PATH_SEPARATOR_2 -+# define PATH_SEPARATOR_2 ';' -+# endif -+#endif - -- osf) -- major=.`expr $current - $age` -- versuffix=".$current.$age.$revision" -- verstring="$current.$age.$revision" -+#ifndef DIR_SEPARATOR_2 -+# define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR) -+#else /* DIR_SEPARATOR_2 */ -+# define IS_DIR_SEPARATOR(ch) \ -+ (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2)) -+#endif /* DIR_SEPARATOR_2 */ - -- # Add in all the interfaces that we are compatible with. -- loop=$age -- while test "$loop" -ne 0; do -- iface=`expr $current - $loop` -- loop=`expr $loop - 1` -- verstring="$verstring:${iface}.0" -- done -+#ifndef PATH_SEPARATOR_2 -+# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR) -+#else /* PATH_SEPARATOR_2 */ -+# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2) -+#endif /* PATH_SEPARATOR_2 */ - -- # Make executables depend on our current version. -- verstring="$verstring:${current}.0" -- ;; -+#ifdef __CYGWIN__ -+# define FOPEN_WB "wb" -+#endif - -- sunos) -- major=".$current" -- versuffix=".$current.$revision" -- ;; -+#ifndef FOPEN_WB -+# define FOPEN_WB "w" -+#endif -+#ifndef _O_BINARY -+# define _O_BINARY 0 -+#endif - -- windows) -- # Use '-' rather than '.', since we only want one -- # extension on DOS 8.3 filesystems. -- major=`expr $current - $age` -- versuffix="-$major" -- ;; -+#define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type))) -+#define XFREE(stale) do { \ -+ if (stale) { free ((void *) stale); stale = 0; } \ -+} while (0) - -- *) -- $echo "$modename: unknown library version type \`$version_type'" 1>&2 -- $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 -- exit $EXIT_FAILURE -- ;; -- esac -+#undef LTWRAPPER_DEBUGPRINTF -+#if defined DEBUGWRAPPER -+# define LTWRAPPER_DEBUGPRINTF(args) ltwrapper_debugprintf args -+static void -+ltwrapper_debugprintf (const char *fmt, ...) -+{ -+ va_list args; -+ va_start (args, fmt); -+ (void) vfprintf (stderr, fmt, args); -+ va_end (args); -+} -+#else -+# define LTWRAPPER_DEBUGPRINTF(args) -+#endif - -- # Clear the version info if we defaulted, and they specified a release. -- if test -z "$vinfo" && test -n "$release"; then -- major= -- case $version_type in -- darwin) -- # we can't check for "0.0" in archive_cmds due to quoting -- # problems, so we reset it completely -- verstring= -- ;; -- *) -- verstring="0.0" -- ;; -- esac -- if test "$need_version" = no; then -- versuffix= -- else -- versuffix=".0.0" -- fi -- fi -+const char *program_name = NULL; - -- # Remove version info from name if versioning should be avoided -- if test "$avoid_version" = yes && test "$need_version" = no; then -- major= -- versuffix= -- verstring="" -- fi -+void *xmalloc (size_t num); -+char *xstrdup (const char *string); -+const char *base_name (const char *name); -+char *find_executable (const char *wrapper); -+char *chase_symlinks (const char *pathspec); -+int make_executable (const char *path); -+int check_executable (const char *path); -+char *strendzap (char *str, const char *pat); -+void lt_fatal (const char *message, ...); -+void lt_setenv (const char *name, const char *value); -+char *lt_extend_str (const char *orig_value, const char *add, int to_end); -+void lt_opt_process_env_set (const char *arg); -+void lt_opt_process_env_prepend (const char *arg); -+void lt_opt_process_env_append (const char *arg); -+int lt_split_name_value (const char *arg, char** name, char** value); -+void lt_update_exe_path (const char *name, const char *value); -+void lt_update_lib_path (const char *name, const char *value); - -- # Check to see if the archive will have undefined symbols. -- if test "$allow_undefined" = yes; then -- if test "$allow_undefined_flag" = unsupported; then -- $echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2 -- build_libtool_libs=no -- build_old_libs=yes -- fi -- else -- # Don't allow undefined symbols. -- allow_undefined_flag="$no_undefined_flag" -- fi -- fi -+static const char *script_text_part1 = -+EOF - -- if test "$mode" != relink; then -- # Remove our outputs, but don't remove object files since they -- # may have been created when compiling PIC objects. -- removelist= -- tempremovelist=`$echo "$output_objdir/*"` -- for p in $tempremovelist; do -- case $p in -- *.$objext) -- ;; -- $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*) -- if test "X$precious_files_regex" != "X"; then -- if echo $p | $EGREP -e "$precious_files_regex" >/dev/null 2>&1 -- then -- continue -- fi -- fi -- removelist="$removelist $p" -- ;; -- *) ;; -- esac -- done -- if test -n "$removelist"; then -- $show "${rm}r $removelist" -- $run ${rm}r $removelist -- fi -- fi -+ func_emit_wrapper_part1 yes | -+ $SED -e 's/\([\\"]\)/\\\1/g' \ -+ -e 's/^/ "/' -e 's/$/\\n"/' -+ echo ";" -+ cat <"))); -+ for (i = 0; i < newargc; i++) -+ { -+ LTWRAPPER_DEBUGPRINTF (("(main) newargz[%d] : %s\n", i, (newargz[i] ? newargz[i] : ""))); -+ } - -- # Transform deplibs into only deplibs that can be linked in shared. -- name_save=$name -- libname_save=$libname -- release_save=$release -- versuffix_save=$versuffix -- major_save=$major -- # I'm not sure if I'm treating the release correctly. I think -- # release should show up in the -l (ie -lgmp5) so we don't want to -- # add it in twice. Is that correct? -- release="" -- versuffix="" -- major="" -- newdeplibs= -- droppeddeps=no -- case $deplibs_check_method in -- pass_all) -- # Don't check for shared/static. Everything works. -- # This might be a little naive. We might want to check -- # whether the library exists or not. But this is on -- # osf3 & osf4 and I'm not really sure... Just -- # implementing what was already the behavior. -- newdeplibs=$deplibs -- ;; -- test_compile) -- # This code stresses the "libraries are programs" paradigm to its -- # limits. Maybe even breaks it. We compile a program, linking it -- # against the deplibs as a proxy for the library. Then we can check -- # whether they linked in statically or dynamically with ldd. -- $rm conftest.c -- cat > conftest.c </dev/null` -- for potent_lib in $potential_libs; do -- # Follow soft links. -- if ls -lLd "$potent_lib" 2>/dev/null \ -- | grep " -> " >/dev/null; then -- continue -- fi -- # The statement above tries to avoid entering an -- # endless loop below, in case of cyclic links. -- # We might still enter an endless loop, since a link -- # loop can be closed while we follow links, -- # but so what? -- potlib="$potent_lib" -- while test -h "$potlib" 2>/dev/null; do -- potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'` -- case $potliblink in -- [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";; -- *) potlib=`$echo "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";; -- esac -- done -- if eval $file_magic_cmd \"\$potlib\" 2>/dev/null \ -- | ${SED} 10q \ -- | $EGREP "$file_magic_regex" > /dev/null; then -- newdeplibs="$newdeplibs $a_deplib" -- a_deplib="" -- break 2 -- fi -- done -- done -- fi -- if test -n "$a_deplib" ; then -- droppeddeps=yes -- $echo -- $echo "*** Warning: linker path does not have real file for library $a_deplib." -- $echo "*** I have the capability to make that library automatically link in when" -- $echo "*** you link to this library. But I can only do this if you have a" -- $echo "*** shared version of the library, which you do not appear to have" -- $echo "*** because I did check the linker path looking for a file starting" -- if test -z "$potlib" ; then -- $echo "*** with $libname but no candidates were found. (...for file magic test)" -- else -- $echo "*** with $libname and none of the candidates passed a file format test" -- $echo "*** using a file magic. Last file checked: $potlib" -- fi -- fi -- else -- # Add a -L argument. -- newdeplibs="$newdeplibs $a_deplib" -- fi -- done # Gone through all deplibs. -- ;; -- match_pattern*) -- set dummy $deplibs_check_method -- match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"` -- for a_deplib in $deplibs; do -- name=`expr $a_deplib : '-l\(.*\)'` -- # If $name is empty we are operating on a -L argument. -- if test -n "$name" && test "$name" != "0"; then -- if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then -- case " $predeps $postdeps " in -- *" $a_deplib "*) -- newdeplibs="$newdeplibs $a_deplib" -- a_deplib="" -- ;; -- esac -- fi -- if test -n "$a_deplib" ; then -- libname=`eval \\$echo \"$libname_spec\"` -- for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do -- potential_libs=`ls $i/$libname[.-]* 2>/dev/null` -- for potent_lib in $potential_libs; do -- potlib="$potent_lib" # see symlink-check above in file_magic test -- if eval $echo \"$potent_lib\" 2>/dev/null \ -- | ${SED} 10q \ -- | $EGREP "$match_pattern_regex" > /dev/null; then -- newdeplibs="$newdeplibs $a_deplib" -- a_deplib="" -- break 2 -- fi -- done -- done -- fi -- if test -n "$a_deplib" ; then -- droppeddeps=yes -- $echo -- $echo "*** Warning: linker path does not have real file for library $a_deplib." -- $echo "*** I have the capability to make that library automatically link in when" -- $echo "*** you link to this library. But I can only do this if you have a" -- $echo "*** shared version of the library, which you do not appear to have" -- $echo "*** because I did check the linker path looking for a file starting" -- if test -z "$potlib" ; then -- $echo "*** with $libname but no candidates were found. (...for regex pattern test)" -- else -- $echo "*** with $libname and none of the candidates passed a file format test" -- $echo "*** using a regex pattern. Last file checked: $potlib" -- fi -- fi -- else -- # Add a -L argument. -- newdeplibs="$newdeplibs $a_deplib" -- fi -- done # Gone through all deplibs. -- ;; -- none | unknown | *) -- newdeplibs="" -- tmp_deplibs=`$echo "X $deplibs" | $Xsed -e 's/ -lc$//' \ -- -e 's/ -[LR][^ ]*//g'` -- if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then -- for i in $predeps $postdeps ; do -- # can't use Xsed below, because $i might contain '/' -- tmp_deplibs=`$echo "X $tmp_deplibs" | ${SED} -e "1s,^X,," -e "s,$i,,"` -- done -- fi -- if $echo "X $tmp_deplibs" | $Xsed -e 's/[ ]//g' \ -- | grep . >/dev/null; then -- $echo -- if test "X$deplibs_check_method" = "Xnone"; then -- $echo "*** Warning: inter-library dependencies are not supported in this platform." -- else -- $echo "*** Warning: inter-library dependencies are not known to be supported." -- fi -- $echo "*** All declared inter-library dependencies are being dropped." -- droppeddeps=yes -- fi -- ;; -- esac -- versuffix=$versuffix_save -- major=$major_save -- release=$release_save -- libname=$libname_save -- name=$name_save - -- case $host in -- *-*-rhapsody* | *-*-darwin1.[012]) -- # On Rhapsody replace the C library is the System framework -- newdeplibs=`$echo "X $newdeplibs" | $Xsed -e 's/ -lc / -framework System /'` -- ;; -- esac -+ case $host_os in -+ mingw*) -+ cat <<"EOF" -+ /* execv doesn't actually work on mingw as expected on unix */ -+ rval = _spawnv (_P_WAIT, lt_argv_zero, (const char * const *) newargz); -+ if (rval == -1) -+ { -+ /* failed to start process */ -+ LTWRAPPER_DEBUGPRINTF (("(main) failed to launch target \"%s\": errno = %d\n", lt_argv_zero, errno)); -+ return 127; -+ } -+ return rval; -+EOF -+ ;; -+ *) -+ cat <<"EOF" -+ execv (lt_argv_zero, newargz); -+ return rval; /* =127, but avoids unused variable warning */ -+EOF -+ ;; -+ esac - -- if test "$droppeddeps" = yes; then -- if test "$module" = yes; then -- $echo -- $echo "*** Warning: libtool could not satisfy all declared inter-library" -- $echo "*** dependencies of module $libname. Therefore, libtool will create" -- $echo "*** a static module, that should work as long as the dlopening" -- $echo "*** application is linked with the -dlopen flag." -- if test -z "$global_symbol_pipe"; then -- $echo -- $echo "*** However, this would only work if libtool was able to extract symbol" -- $echo "*** lists from a program, using \`nm' or equivalent, but libtool could" -- $echo "*** not find such a program. So, this module is probably useless." -- $echo "*** \`nm' from GNU binutils and a full rebuild may help." -- fi -- if test "$build_old_libs" = no; then -- oldlibs="$output_objdir/$libname.$libext" -- build_libtool_libs=module -- build_old_libs=yes -- else -- build_libtool_libs=no -- fi -- else -- $echo "*** The inter-library dependencies that have been dropped here will be" -- $echo "*** automatically added whenever a program is linked with this library" -- $echo "*** or is declared to -dlopen it." -+ cat <<"EOF" -+} - -- if test "$allow_undefined" = no; then -- $echo -- $echo "*** Since this library must not contain undefined symbols," -- $echo "*** because either the platform does not support them or" -- $echo "*** it was explicitly requested with -no-undefined," -- $echo "*** libtool will only create a static version of it." -- if test "$build_old_libs" = no; then -- oldlibs="$output_objdir/$libname.$libext" -- build_libtool_libs=module -- build_old_libs=yes -- else -- build_libtool_libs=no -- fi -- fi -- fi -- fi -- # Done checking deplibs! -- deplibs=$newdeplibs -- fi -+void * -+xmalloc (size_t num) -+{ -+ void *p = (void *) malloc (num); -+ if (!p) -+ lt_fatal ("Memory exhausted"); - -+ return p; -+} - -- # move library search paths that coincide with paths to not yet -- # installed libraries to the beginning of the library search list -- new_libs= -- for path in $notinst_path; do -- case " $new_libs " in -- *" -L$path/$objdir "*) ;; -- *) -- case " $deplibs " in -- *" -L$path/$objdir "*) -- new_libs="$new_libs -L$path/$objdir" ;; -- esac -- ;; -- esac -- done -- for deplib in $deplibs; do -- case $deplib in -- -L*) -- case " $new_libs " in -- *" $deplib "*) ;; -- *) new_libs="$new_libs $deplib" ;; -- esac -- ;; -- *) new_libs="$new_libs $deplib" ;; -- esac -- done -- deplibs="$new_libs" -+char * -+xstrdup (const char *string) -+{ -+ return string ? strcpy ((char *) xmalloc (strlen (string) + 1), -+ string) : NULL; -+} - -+const char * -+base_name (const char *name) -+{ -+ const char *base; - -- # All the library-specific variables (install_libdir is set above). -- library_names= -- old_library= -- dlname= -+#if defined (HAVE_DOS_BASED_FILE_SYSTEM) -+ /* Skip over the disk name in MSDOS pathnames. */ -+ if (isalpha ((unsigned char) name[0]) && name[1] == ':') -+ name += 2; -+#endif - -- # Test again, we may have decided not to build it any more -- if test "$build_libtool_libs" = yes; then -- if test "$hardcode_into_libs" = yes; then -- # Hardcode the library paths -- hardcode_libdirs= -- dep_rpath= -- rpath="$finalize_rpath" -- test "$mode" != relink && rpath="$compile_rpath$rpath" -- for libdir in $rpath; do -- if test -n "$hardcode_libdir_flag_spec"; then -- if test -n "$hardcode_libdir_separator"; then -- if test -z "$hardcode_libdirs"; then -- hardcode_libdirs="$libdir" -- else -- # Just accumulate the unique libdirs. -- case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in -- *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) -- ;; -- *) -- hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" -- ;; -- esac -- fi -- else -- eval flag=\"$hardcode_libdir_flag_spec\" -- dep_rpath="$dep_rpath $flag" -- fi -- elif test -n "$runpath_var"; then -- case "$perm_rpath " in -- *" $libdir "*) ;; -- *) perm_rpath="$perm_rpath $libdir" ;; -- esac -- fi -- done -- # Substitute the hardcoded libdirs into the rpath. -- if test -n "$hardcode_libdir_separator" && -- test -n "$hardcode_libdirs"; then -- libdir="$hardcode_libdirs" -- if test -n "$hardcode_libdir_flag_spec_ld"; then -- case $archive_cmds in -- *\$LD*) eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\" ;; -- *) eval dep_rpath=\"$hardcode_libdir_flag_spec\" ;; -- esac -- else -- eval dep_rpath=\"$hardcode_libdir_flag_spec\" -- fi -- fi -- if test -n "$runpath_var" && test -n "$perm_rpath"; then -- # We should set the runpath_var. -- rpath= -- for dir in $perm_rpath; do -- rpath="$rpath$dir:" -- done -- eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var" -- fi -- test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs" -- fi -+ for (base = name; *name; name++) -+ if (IS_DIR_SEPARATOR (*name)) -+ base = name + 1; -+ return base; -+} - -- shlibpath="$finalize_shlibpath" -- test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath" -- if test -n "$shlibpath"; then -- eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var" -- fi -+int -+check_executable (const char *path) -+{ -+ struct stat st; - -- # Get the real and link names of the library. -- eval shared_ext=\"$shrext_cmds\" -- eval library_names=\"$library_names_spec\" -- set dummy $library_names -- realname="$2" -- shift; shift -+ LTWRAPPER_DEBUGPRINTF (("(check_executable) : %s\n", -+ path ? (*path ? path : "EMPTY!") : "NULL!")); -+ if ((!path) || (!*path)) -+ return 0; - -- if test -n "$soname_spec"; then -- eval soname=\"$soname_spec\" -- else -- soname="$realname" -- fi -- if test -z "$dlname"; then -- dlname=$soname -- fi -+ if ((stat (path, &st) >= 0) -+ && (st.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH))) -+ return 1; -+ else -+ return 0; -+} - -- lib="$output_objdir/$realname" -- linknames= -- for link -- do -- linknames="$linknames $link" -- done -+int -+make_executable (const char *path) -+{ -+ int rval = 0; -+ struct stat st; - -- # Use standard objects if they are pic -- test -z "$pic_flag" && libobjs=`$echo "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` -+ LTWRAPPER_DEBUGPRINTF (("(make_executable) : %s\n", -+ path ? (*path ? path : "EMPTY!") : "NULL!")); -+ if ((!path) || (!*path)) -+ return 0; - -- # Prepare the list of exported symbols -- if test -z "$export_symbols"; then -- if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then -- $show "generating symbol list for \`$libname.la'" -- export_symbols="$output_objdir/$libname.exp" -- $run $rm $export_symbols -- cmds=$export_symbols_cmds -- save_ifs="$IFS"; IFS='~' -- for cmd in $cmds; do -- IFS="$save_ifs" -- eval cmd=\"$cmd\" -- if len=`expr "X$cmd" : ".*"` && -- test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then -- $show "$cmd" -- $run eval "$cmd" || exit $? -- skipped_export=false -- else -- # The command line is too long to execute in one step. -- $show "using reloadable object file for export list..." -- skipped_export=: -- # Break out early, otherwise skipped_export may be -- # set to false by a later but shorter cmd. -- break -- fi -- done -- IFS="$save_ifs" -- if test -n "$export_symbols_regex"; then -- $show "$EGREP -e \"$export_symbols_regex\" \"$export_symbols\" > \"${export_symbols}T\"" -- $run eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' -- $show "$mv \"${export_symbols}T\" \"$export_symbols\"" -- $run eval '$mv "${export_symbols}T" "$export_symbols"' -- fi -- fi -- fi -+ if (stat (path, &st) >= 0) -+ { -+ rval = chmod (path, st.st_mode | S_IXOTH | S_IXGRP | S_IXUSR); -+ } -+ return rval; -+} - -- if test -n "$export_symbols" && test -n "$include_expsyms"; then -- $run eval '$echo "X$include_expsyms" | $SP2NL >> "$export_symbols"' -- fi -+/* Searches for the full path of the wrapper. Returns -+ newly allocated full path name if found, NULL otherwise -+ Does not chase symlinks, even on platforms that support them. -+*/ -+char * -+find_executable (const char *wrapper) -+{ -+ int has_slash = 0; -+ const char *p; -+ const char *p_next; -+ /* static buffer for getcwd */ -+ char tmp[LT_PATHMAX + 1]; -+ int tmp_len; -+ char *concat_name; - -- tmp_deplibs= -- for test_deplib in $deplibs; do -- case " $convenience " in -- *" $test_deplib "*) ;; -- *) -- tmp_deplibs="$tmp_deplibs $test_deplib" -- ;; -- esac -- done -- deplibs="$tmp_deplibs" -+ LTWRAPPER_DEBUGPRINTF (("(find_executable) : %s\n", -+ wrapper ? (*wrapper ? wrapper : "EMPTY!") : "NULL!")); - -- if test -n "$convenience"; then -- if test -n "$whole_archive_flag_spec"; then -- save_libobjs=$libobjs -- eval libobjs=\"\$libobjs $whole_archive_flag_spec\" -- else -- gentop="$output_objdir/${outputname}x" -- generated="$generated $gentop" -+ if ((wrapper == NULL) || (*wrapper == '\0')) -+ return NULL; - -- func_extract_archives $gentop $convenience -- libobjs="$libobjs $func_extract_archives_result" -- fi -- fi -- -- if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then -- eval flag=\"$thread_safe_flag_spec\" -- linker_flags="$linker_flags $flag" -- fi -+ /* Absolute path? */ -+#if defined (HAVE_DOS_BASED_FILE_SYSTEM) -+ if (isalpha ((unsigned char) wrapper[0]) && wrapper[1] == ':') -+ { -+ concat_name = xstrdup (wrapper); -+ if (check_executable (concat_name)) -+ return concat_name; -+ XFREE (concat_name); -+ } -+ else -+ { -+#endif -+ if (IS_DIR_SEPARATOR (wrapper[0])) -+ { -+ concat_name = xstrdup (wrapper); -+ if (check_executable (concat_name)) -+ return concat_name; -+ XFREE (concat_name); -+ } -+#if defined (HAVE_DOS_BASED_FILE_SYSTEM) -+ } -+#endif - -- # Make a backup of the uninstalled library when relinking -- if test "$mode" = relink; then -- $run eval '(cd $output_objdir && $rm ${realname}U && $mv $realname ${realname}U)' || exit $? -- fi -+ for (p = wrapper; *p; p++) -+ if (*p == '/') -+ { -+ has_slash = 1; -+ break; -+ } -+ if (!has_slash) -+ { -+ /* no slashes; search PATH */ -+ const char *path = getenv ("PATH"); -+ if (path != NULL) -+ { -+ for (p = path; *p; p = p_next) -+ { -+ const char *q; -+ size_t p_len; -+ for (q = p; *q; q++) -+ if (IS_PATH_SEPARATOR (*q)) -+ break; -+ p_len = q - p; -+ p_next = (*q == '\0' ? q : q + 1); -+ if (p_len == 0) -+ { -+ /* empty path: current directory */ -+ if (getcwd (tmp, LT_PATHMAX) == NULL) -+ lt_fatal ("getcwd failed"); -+ tmp_len = strlen (tmp); -+ concat_name = -+ XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); -+ memcpy (concat_name, tmp, tmp_len); -+ concat_name[tmp_len] = '/'; -+ strcpy (concat_name + tmp_len + 1, wrapper); -+ } -+ else -+ { -+ concat_name = -+ XMALLOC (char, p_len + 1 + strlen (wrapper) + 1); -+ memcpy (concat_name, p, p_len); -+ concat_name[p_len] = '/'; -+ strcpy (concat_name + p_len + 1, wrapper); -+ } -+ if (check_executable (concat_name)) -+ return concat_name; -+ XFREE (concat_name); -+ } -+ } -+ /* not found in PATH; assume curdir */ -+ } -+ /* Relative path | not found in path: prepend cwd */ -+ if (getcwd (tmp, LT_PATHMAX) == NULL) -+ lt_fatal ("getcwd failed"); -+ tmp_len = strlen (tmp); -+ concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); -+ memcpy (concat_name, tmp, tmp_len); -+ concat_name[tmp_len] = '/'; -+ strcpy (concat_name + tmp_len + 1, wrapper); - -- # Do each of the archive commands. -- if test "$module" = yes && test -n "$module_cmds" ; then -- if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then -- eval test_cmds=\"$module_expsym_cmds\" -- cmds=$module_expsym_cmds -- else -- eval test_cmds=\"$module_cmds\" -- cmds=$module_cmds -- fi -- else -- if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then -- eval test_cmds=\"$archive_expsym_cmds\" -- cmds=$archive_expsym_cmds -- else -- eval test_cmds=\"$archive_cmds\" -- cmds=$archive_cmds -- fi -- fi -+ if (check_executable (concat_name)) -+ return concat_name; -+ XFREE (concat_name); -+ return NULL; -+} - -- if test "X$skipped_export" != "X:" && -- len=`expr "X$test_cmds" : ".*" 2>/dev/null` && -- test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then -- : -- else -- # The command line is too long to link in one step, link piecewise. -- $echo "creating reloadable object files..." -+char * -+chase_symlinks (const char *pathspec) -+{ -+#ifndef S_ISLNK -+ return xstrdup (pathspec); -+#else -+ char buf[LT_PATHMAX]; -+ struct stat s; -+ char *tmp_pathspec = xstrdup (pathspec); -+ char *p; -+ int has_symlinks = 0; -+ while (strlen (tmp_pathspec) && !has_symlinks) -+ { -+ LTWRAPPER_DEBUGPRINTF (("checking path component for symlinks: %s\n", -+ tmp_pathspec)); -+ if (lstat (tmp_pathspec, &s) == 0) -+ { -+ if (S_ISLNK (s.st_mode) != 0) -+ { -+ has_symlinks = 1; -+ break; -+ } - -- # Save the value of $output and $libobjs because we want to -- # use them later. If we have whole_archive_flag_spec, we -- # want to use save_libobjs as it was before -- # whole_archive_flag_spec was expanded, because we can't -- # assume the linker understands whole_archive_flag_spec. -- # This may have to be revisited, in case too many -- # convenience libraries get linked in and end up exceeding -- # the spec. -- if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then -- save_libobjs=$libobjs -- fi -- save_output=$output -- output_la=`$echo "X$output" | $Xsed -e "$basename"` -+ /* search backwards for last DIR_SEPARATOR */ -+ p = tmp_pathspec + strlen (tmp_pathspec) - 1; -+ while ((p > tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) -+ p--; -+ if ((p == tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) -+ { -+ /* no more DIR_SEPARATORS left */ -+ break; -+ } -+ *p = '\0'; -+ } -+ else -+ { -+ char *errstr = strerror (errno); -+ lt_fatal ("Error accessing file %s (%s)", tmp_pathspec, errstr); -+ } -+ } -+ XFREE (tmp_pathspec); - -- # Clear the reloadable object creation command queue and -- # initialize k to one. -- test_cmds= -- concat_cmds= -- objlist= -- delfiles= -- last_robj= -- k=1 -- output=$output_objdir/$output_la-${k}.$objext -- # Loop over the list of objects to be linked. -- for obj in $save_libobjs -- do -- eval test_cmds=\"$reload_cmds $objlist $last_robj\" -- if test "X$objlist" = X || -- { len=`expr "X$test_cmds" : ".*" 2>/dev/null` && -- test "$len" -le "$max_cmd_len"; }; then -- objlist="$objlist $obj" -- else -- # The command $test_cmds is almost too long, add a -- # command to the queue. -- if test "$k" -eq 1 ; then -- # The first file doesn't have a previous command to add. -- eval concat_cmds=\"$reload_cmds $objlist $last_robj\" -- else -- # All subsequent reloadable object files will link in -- # the last one created. -- eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj\" -- fi -- last_robj=$output_objdir/$output_la-${k}.$objext -- k=`expr $k + 1` -- output=$output_objdir/$output_la-${k}.$objext -- objlist=$obj -- len=1 -- fi -- done -- # Handle the remaining objects by creating one last -- # reloadable object file. All subsequent reloadable object -- # files will link in the last one created. -- test -z "$concat_cmds" || concat_cmds=$concat_cmds~ -- eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\" -+ if (!has_symlinks) -+ { -+ return xstrdup (pathspec); -+ } - -- if ${skipped_export-false}; then -- $show "generating symbol list for \`$libname.la'" -- export_symbols="$output_objdir/$libname.exp" -- $run $rm $export_symbols -- libobjs=$output -- # Append the command to create the export file. -- eval concat_cmds=\"\$concat_cmds~$export_symbols_cmds\" -- fi -- -- # Set up a command to remove the reloadable object files -- # after they are used. -- i=0 -- while test "$i" -lt "$k" -- do -- i=`expr $i + 1` -- delfiles="$delfiles $output_objdir/$output_la-${i}.$objext" -- done -+ tmp_pathspec = realpath (pathspec, buf); -+ if (tmp_pathspec == 0) -+ { -+ lt_fatal ("Could not follow symlinks for %s", pathspec); -+ } -+ return xstrdup (tmp_pathspec); -+#endif -+} - -- $echo "creating a temporary reloadable object file: $output" -+char * -+strendzap (char *str, const char *pat) -+{ -+ size_t len, patlen; - -- # Loop through the commands generated above and execute them. -- save_ifs="$IFS"; IFS='~' -- for cmd in $concat_cmds; do -- IFS="$save_ifs" -- $show "$cmd" -- $run eval "$cmd" || exit $? -- done -- IFS="$save_ifs" -+ assert (str != NULL); -+ assert (pat != NULL); - -- libobjs=$output -- # Restore the value of output. -- output=$save_output -+ len = strlen (str); -+ patlen = strlen (pat); - -- if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then -- eval libobjs=\"\$libobjs $whole_archive_flag_spec\" -- fi -- # Expand the library linking commands again to reset the -- # value of $libobjs for piecewise linking. -+ if (patlen <= len) -+ { -+ str += len - patlen; -+ if (strcmp (str, pat) == 0) -+ *str = '\0'; -+ } -+ return str; -+} - -- # Do each of the archive commands. -- if test "$module" = yes && test -n "$module_cmds" ; then -- if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then -- cmds=$module_expsym_cmds -- else -- cmds=$module_cmds -- fi -- else -- if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then -- cmds=$archive_expsym_cmds -- else -- cmds=$archive_cmds -- fi -- fi -+static void -+lt_error_core (int exit_status, const char *mode, -+ const char *message, va_list ap) -+{ -+ fprintf (stderr, "%s: %s: ", program_name, mode); -+ vfprintf (stderr, message, ap); -+ fprintf (stderr, ".\n"); - -- # Append the command to remove the reloadable object files -- # to the just-reset $cmds. -- eval cmds=\"\$cmds~\$rm $delfiles\" -- fi -- save_ifs="$IFS"; IFS='~' -- for cmd in $cmds; do -- IFS="$save_ifs" -- eval cmd=\"$cmd\" -- $show "$cmd" -- $run eval "$cmd" || { -- lt_exit=$? -+ if (exit_status >= 0) -+ exit (exit_status); -+} - -- # Restore the uninstalled library and exit -- if test "$mode" = relink; then -- $run eval '(cd $output_objdir && $rm ${realname}T && $mv ${realname}U $realname)' -- fi -+void -+lt_fatal (const char *message, ...) -+{ -+ va_list ap; -+ va_start (ap, message); -+ lt_error_core (EXIT_FAILURE, "FATAL", message, ap); -+ va_end (ap); -+} - -- exit $lt_exit -- } -- done -- IFS="$save_ifs" -+void -+lt_setenv (const char *name, const char *value) -+{ -+ LTWRAPPER_DEBUGPRINTF (("(lt_setenv) setting '%s' to '%s'\n", -+ (name ? name : ""), -+ (value ? value : ""))); -+ { -+#ifdef HAVE_SETENV -+ /* always make a copy, for consistency with !HAVE_SETENV */ -+ char *str = xstrdup (value); -+ setenv (name, str, 1); -+#else -+ int len = strlen (name) + 1 + strlen (value) + 1; -+ char *str = XMALLOC (char, len); -+ sprintf (str, "%s=%s", name, value); -+ if (putenv (str) != EXIT_SUCCESS) -+ { -+ XFREE (str); -+ } -+#endif -+ } -+} - -- # Restore the uninstalled library and exit -- if test "$mode" = relink; then -- $run eval '(cd $output_objdir && $rm ${realname}T && $mv $realname ${realname}T && $mv "$realname"U $realname)' || exit $? -+char * -+lt_extend_str (const char *orig_value, const char *add, int to_end) -+{ -+ char *new_value; -+ if (orig_value && *orig_value) -+ { -+ int orig_value_len = strlen (orig_value); -+ int add_len = strlen (add); -+ new_value = XMALLOC (char, add_len + orig_value_len + 1); -+ if (to_end) -+ { -+ strcpy (new_value, orig_value); -+ strcpy (new_value + orig_value_len, add); -+ } -+ else -+ { -+ strcpy (new_value, add); -+ strcpy (new_value + add_len, orig_value); -+ } -+ } -+ else -+ { -+ new_value = xstrdup (add); -+ } -+ return new_value; -+} - -- if test -n "$convenience"; then -- if test -z "$whole_archive_flag_spec"; then -- $show "${rm}r $gentop" -- $run ${rm}r "$gentop" -- fi -- fi -+int -+lt_split_name_value (const char *arg, char** name, char** value) -+{ -+ const char *p; -+ int len; -+ if (!arg || !*arg) -+ return 1; - -- exit $EXIT_SUCCESS -- fi -+ p = strchr (arg, (int)'='); - -- # Create links to the real library. -- for linkname in $linknames; do -- if test "$realname" != "$linkname"; then -- $show "(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)" -- $run eval '(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)' || exit $? -- fi -- done -- -- # If -module or -export-dynamic was specified, set the dlname. -- if test "$module" = yes || test "$export_dynamic" = yes; then -- # On all known operating systems, these are identical. -- dlname="$soname" -- fi -- fi -- ;; -+ if (!p) -+ return 1; - -- obj) -- case " $deplibs" in -- *\ -l* | *\ -L*) -- $echo "$modename: warning: \`-l' and \`-L' are ignored for objects" 1>&2 ;; -- esac -+ *value = xstrdup (++p); - -- if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then -- $echo "$modename: warning: \`-dlopen' is ignored for objects" 1>&2 -- fi -+ len = strlen (arg) - strlen (*value); -+ *name = XMALLOC (char, len); -+ strncpy (*name, arg, len-1); -+ (*name)[len - 1] = '\0'; - -- if test -n "$rpath"; then -- $echo "$modename: warning: \`-rpath' is ignored for objects" 1>&2 -- fi -+ return 0; -+} - -- if test -n "$xrpath"; then -- $echo "$modename: warning: \`-R' is ignored for objects" 1>&2 -- fi -+void -+lt_opt_process_env_set (const char *arg) -+{ -+ char *name = NULL; -+ char *value = NULL; - -- if test -n "$vinfo"; then -- $echo "$modename: warning: \`-version-info' is ignored for objects" 1>&2 -- fi -+ if (lt_split_name_value (arg, &name, &value) != 0) -+ { -+ XFREE (name); -+ XFREE (value); -+ lt_fatal ("bad argument for %s: '%s'", env_set_opt, arg); -+ } - -- if test -n "$release"; then -- $echo "$modename: warning: \`-release' is ignored for objects" 1>&2 -- fi -+ lt_setenv (name, value); -+ XFREE (name); -+ XFREE (value); -+} - -- case $output in -- *.lo) -- if test -n "$objs$old_deplibs"; then -- $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2 -- exit $EXIT_FAILURE -- fi -- libobj="$output" -- obj=`$echo "X$output" | $Xsed -e "$lo2o"` -- ;; -- *) -- libobj= -- obj="$output" -- ;; -- esac -+void -+lt_opt_process_env_prepend (const char *arg) -+{ -+ char *name = NULL; -+ char *value = NULL; -+ char *new_value = NULL; - -- # Delete the old objects. -- $run $rm $obj $libobj -+ if (lt_split_name_value (arg, &name, &value) != 0) -+ { -+ XFREE (name); -+ XFREE (value); -+ lt_fatal ("bad argument for %s: '%s'", env_prepend_opt, arg); -+ } - -- # Objects from convenience libraries. This assumes -- # single-version convenience libraries. Whenever we create -- # different ones for PIC/non-PIC, this we'll have to duplicate -- # the extraction. -- reload_conv_objs= -- gentop= -- # reload_cmds runs $LD directly, so let us get rid of -- # -Wl from whole_archive_flag_spec and hope we can get by with -- # turning comma into space.. -- wl= -+ new_value = lt_extend_str (getenv (name), value, 0); -+ lt_setenv (name, new_value); -+ XFREE (new_value); -+ XFREE (name); -+ XFREE (value); -+} - -- if test -n "$convenience"; then -- if test -n "$whole_archive_flag_spec"; then -- eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\" -- reload_conv_objs=$reload_objs\ `$echo "X$tmp_whole_archive_flags" | $Xsed -e 's|,| |g'` -- else -- gentop="$output_objdir/${obj}x" -- generated="$generated $gentop" -+void -+lt_opt_process_env_append (const char *arg) -+{ -+ char *name = NULL; -+ char *value = NULL; -+ char *new_value = NULL; - -- func_extract_archives $gentop $convenience -- reload_conv_objs="$reload_objs $func_extract_archives_result" -- fi -- fi -+ if (lt_split_name_value (arg, &name, &value) != 0) -+ { -+ XFREE (name); -+ XFREE (value); -+ lt_fatal ("bad argument for %s: '%s'", env_append_opt, arg); -+ } - -- # Create the old-style object. -- reload_objs="$objs$old_deplibs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test -+ new_value = lt_extend_str (getenv (name), value, 1); -+ lt_setenv (name, new_value); -+ XFREE (new_value); -+ XFREE (name); -+ XFREE (value); -+} - -- output="$obj" -- cmds=$reload_cmds -- save_ifs="$IFS"; IFS='~' -- for cmd in $cmds; do -- IFS="$save_ifs" -- eval cmd=\"$cmd\" -- $show "$cmd" -- $run eval "$cmd" || exit $? -- done -- IFS="$save_ifs" -+void -+lt_update_exe_path (const char *name, const char *value) -+{ -+ LTWRAPPER_DEBUGPRINTF (("(lt_update_exe_path) modifying '%s' by prepending '%s'\n", -+ (name ? name : ""), -+ (value ? value : ""))); - -- # Exit if we aren't doing a library object file. -- if test -z "$libobj"; then -- if test -n "$gentop"; then -- $show "${rm}r $gentop" -- $run ${rm}r $gentop -- fi -+ if (name && *name && value && *value) -+ { -+ char *new_value = lt_extend_str (getenv (name), value, 0); -+ /* some systems can't cope with a ':'-terminated path #' */ -+ int len = strlen (new_value); -+ while (((len = strlen (new_value)) > 0) && IS_PATH_SEPARATOR (new_value[len-1])) -+ { -+ new_value[len-1] = '\0'; -+ } -+ lt_setenv (name, new_value); -+ XFREE (new_value); -+ } -+} - -- exit $EXIT_SUCCESS -- fi -+void -+lt_update_lib_path (const char *name, const char *value) -+{ -+ LTWRAPPER_DEBUGPRINTF (("(lt_update_lib_path) modifying '%s' by prepending '%s'\n", -+ (name ? name : ""), -+ (value ? value : ""))); - -- if test "$build_libtool_libs" != yes; then -- if test -n "$gentop"; then -- $show "${rm}r $gentop" -- $run ${rm}r $gentop -- fi -+ if (name && *name && value && *value) -+ { -+ char *new_value = lt_extend_str (getenv (name), value, 0); -+ lt_setenv (name, new_value); -+ XFREE (new_value); -+ } -+} - -- # Create an invalid libtool object if no PIC, so that we don't -- # accidentally link it into a program. -- # $show "echo timestamp > $libobj" -- # $run eval "echo timestamp > $libobj" || exit $? -- exit $EXIT_SUCCESS -- fi - -- if test -n "$pic_flag" || test "$pic_mode" != default; then -- # Only do commands if we really have different PIC objects. -- reload_objs="$libobjs $reload_conv_objs" -- output="$libobj" -- cmds=$reload_cmds -- save_ifs="$IFS"; IFS='~' -- for cmd in $cmds; do -- IFS="$save_ifs" -- eval cmd=\"$cmd\" -- $show "$cmd" -- $run eval "$cmd" || exit $? -- done -- IFS="$save_ifs" -- fi -+EOF -+} -+# end: func_emit_cwrapperexe_src - -- if test -n "$gentop"; then -- $show "${rm}r $gentop" -- $run ${rm}r $gentop -- fi -+# func_mode_link arg... -+func_mode_link () -+{ -+ $opt_debug -+ case $host in -+ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) -+ # It is impossible to link a dll without this setting, and -+ # we shouldn't force the makefile maintainer to figure out -+ # which system we are compiling for in order to pass an extra -+ # flag for every libtool invocation. -+ # allow_undefined=no - -- exit $EXIT_SUCCESS -+ # FIXME: Unfortunately, there are problems with the above when trying -+ # to make a dll which has undefined symbols, in which case not -+ # even a static library is built. For now, we need to specify -+ # -no-undefined on the libtool link line when we can be certain -+ # that all symbols are satisfied, otherwise we get a static library. -+ allow_undefined=yes - ;; -+ *) -+ allow_undefined=yes -+ ;; -+ esac -+ libtool_args=$nonopt -+ base_compile="$nonopt $@" -+ compile_command=$nonopt -+ finalize_command=$nonopt - -- prog) -- case $host in -- *cygwin*) output=`$echo $output | ${SED} -e 's,.exe$,,;s,$,.exe,'` ;; -- esac -- if test -n "$vinfo"; then -- $echo "$modename: warning: \`-version-info' is ignored for programs" 1>&2 -- fi -- -- if test -n "$release"; then -- $echo "$modename: warning: \`-release' is ignored for programs" 1>&2 -- fi -+ compile_rpath= -+ finalize_rpath= -+ compile_shlibpath= -+ finalize_shlibpath= -+ convenience= -+ old_convenience= -+ deplibs= -+ old_deplibs= -+ compiler_flags= -+ linker_flags= -+ dllsearchpath= -+ lib_search_path=`pwd` -+ inst_prefix_dir= -+ new_inherited_linker_flags= - -- if test "$preload" = yes; then -- if test "$dlopen_support" = unknown && test "$dlopen_self" = unknown && -- test "$dlopen_self_static" = unknown; then -- $echo "$modename: warning: \`AC_LIBTOOL_DLOPEN' not used. Assuming no dlopen support." -- fi -- fi -+ avoid_version=no -+ dlfiles= -+ dlprefiles= -+ dlself=no -+ export_dynamic=no -+ export_symbols= -+ export_symbols_regex= -+ generated= -+ libobjs= -+ ltlibs= -+ module=no -+ no_install=no -+ objs= -+ non_pic_objects= -+ precious_files_regex= -+ prefer_static_libs=no -+ preload=no -+ prev= -+ prevarg= -+ release= -+ rpath= -+ xrpath= -+ perm_rpath= -+ temp_rpath= -+ thread_safe=no -+ vinfo= -+ vinfo_number=no -+ weak_libs= -+ single_module="${wl}-single_module" -+ func_infer_tag $base_compile - -- case $host in -- *-*-rhapsody* | *-*-darwin1.[012]) -- # On Rhapsody replace the C library is the System framework -- compile_deplibs=`$echo "X $compile_deplibs" | $Xsed -e 's/ -lc / -framework System /'` -- finalize_deplibs=`$echo "X $finalize_deplibs" | $Xsed -e 's/ -lc / -framework System /'` -+ # We need to know -static, to get the right output filenames. -+ for arg -+ do -+ case $arg in -+ -shared) -+ test "$build_libtool_libs" != yes && \ -+ func_fatal_configuration "can not build a shared library" -+ build_old_libs=no -+ break -+ ;; -+ -all-static | -static | -static-libtool-libs) -+ case $arg in -+ -all-static) -+ if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then -+ func_warning "complete static linking is impossible in this configuration" -+ fi -+ if test -n "$link_static_flag"; then -+ dlopen_self=$dlopen_self_static -+ fi -+ prefer_static_libs=yes -+ ;; -+ -static) -+ if test -z "$pic_flag" && test -n "$link_static_flag"; then -+ dlopen_self=$dlopen_self_static -+ fi -+ prefer_static_libs=built -+ ;; -+ -static-libtool-libs) -+ if test -z "$pic_flag" && test -n "$link_static_flag"; then -+ dlopen_self=$dlopen_self_static -+ fi -+ prefer_static_libs=yes -+ ;; -+ esac -+ build_libtool_libs=no -+ build_old_libs=yes -+ break - ;; - esac -+ done - -- case $host in -- *darwin*) -- # Don't allow lazy linking, it breaks C++ global constructors -- if test "$tagname" = CXX ; then -- compile_command="$compile_command ${wl}-bind_at_load" -- finalize_command="$finalize_command ${wl}-bind_at_load" -- fi -- ;; -- esac -+ # See if our shared archives depend on static archives. -+ test -n "$old_archive_from_new_cmds" && build_old_libs=yes - -+ # Go through the arguments, transforming them on the way. -+ while test "$#" -gt 0; do -+ arg="$1" -+ shift -+ func_quote_for_eval "$arg" -+ qarg=$func_quote_for_eval_unquoted_result -+ func_append libtool_args " $func_quote_for_eval_result" - -- # move library search paths that coincide with paths to not yet -- # installed libraries to the beginning of the library search list -- new_libs= -- for path in $notinst_path; do -- case " $new_libs " in -- *" -L$path/$objdir "*) ;; -- *) -- case " $compile_deplibs " in -- *" -L$path/$objdir "*) -- new_libs="$new_libs -L$path/$objdir" ;; -- esac -- ;; -- esac -- done -- for deplib in $compile_deplibs; do -- case $deplib in -- -L*) -- case " $new_libs " in -- *" $deplib "*) ;; -- *) new_libs="$new_libs $deplib" ;; -- esac -+ # If the previous option needs an argument, assign it. -+ if test -n "$prev"; then -+ case $prev in -+ output) -+ func_append compile_command " @OUTPUT@" -+ func_append finalize_command " @OUTPUT@" - ;; -- *) new_libs="$new_libs $deplib" ;; - esac -- done -- compile_deplibs="$new_libs" -- - -- compile_command="$compile_command $compile_deplibs" -- finalize_command="$finalize_command $finalize_deplibs" -- -- if test -n "$rpath$xrpath"; then -- # If the user specified any rpath flags, then add them. -- for libdir in $rpath $xrpath; do -- # This is the magic to use -rpath. -- case "$finalize_rpath " in -- *" $libdir "*) ;; -- *) finalize_rpath="$finalize_rpath $libdir" ;; -- esac -- done -- fi -- -- # Now hardcode the library paths -- rpath= -- hardcode_libdirs= -- for libdir in $compile_rpath $finalize_rpath; do -- if test -n "$hardcode_libdir_flag_spec"; then -- if test -n "$hardcode_libdir_separator"; then -- if test -z "$hardcode_libdirs"; then -- hardcode_libdirs="$libdir" -+ case $prev in -+ dlfiles|dlprefiles) -+ if test "$preload" = no; then -+ # Add the symbol object into the linking commands. -+ func_append compile_command " @SYMFILE@" -+ func_append finalize_command " @SYMFILE@" -+ preload=yes -+ fi -+ case $arg in -+ *.la | *.lo) ;; # We handle these cases below. -+ force) -+ if test "$dlself" = no; then -+ dlself=needless -+ export_dynamic=yes -+ fi -+ prev= -+ continue -+ ;; -+ self) -+ if test "$prev" = dlprefiles; then -+ dlself=yes -+ elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then -+ dlself=yes - else -- # Just accumulate the unique libdirs. -- case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in -- *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) -- ;; -- *) -- hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" -- ;; -- esac -+ dlself=needless -+ export_dynamic=yes - fi -- else -- eval flag=\"$hardcode_libdir_flag_spec\" -- rpath="$rpath $flag" -- fi -- elif test -n "$runpath_var"; then -- case "$perm_rpath " in -- *" $libdir "*) ;; -- *) perm_rpath="$perm_rpath $libdir" ;; -- esac -- fi -- case $host in -- *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) -- testbindir=`$echo "X$libdir" | $Xsed -e 's*/lib$*/bin*'` -- case :$dllsearchpath: in -- *":$libdir:"*) ;; -- *) dllsearchpath="$dllsearchpath:$libdir";; -- esac -- case :$dllsearchpath: in -- *":$testbindir:"*) ;; -- *) dllsearchpath="$dllsearchpath:$testbindir";; -+ prev= -+ continue -+ ;; -+ *) -+ if test "$prev" = dlfiles; then -+ dlfiles="$dlfiles $arg" -+ else -+ dlprefiles="$dlprefiles $arg" -+ fi -+ prev= -+ continue -+ ;; - esac - ;; -- esac -- done -- # Substitute the hardcoded libdirs into the rpath. -- if test -n "$hardcode_libdir_separator" && -- test -n "$hardcode_libdirs"; then -- libdir="$hardcode_libdirs" -- eval rpath=\" $hardcode_libdir_flag_spec\" -- fi -- compile_rpath="$rpath" -- -- rpath= -- hardcode_libdirs= -- for libdir in $finalize_rpath; do -- if test -n "$hardcode_libdir_flag_spec"; then -- if test -n "$hardcode_libdir_separator"; then -- if test -z "$hardcode_libdirs"; then -- hardcode_libdirs="$libdir" -- else -- # Just accumulate the unique libdirs. -- case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in -- *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) -- ;; -- *) -- hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" -- ;; -+ expsyms) -+ export_symbols="$arg" -+ test -f "$arg" \ -+ || func_fatal_error "symbol file \`$arg' does not exist" -+ prev= -+ continue -+ ;; -+ expsyms_regex) -+ export_symbols_regex="$arg" -+ prev= -+ continue -+ ;; -+ framework) -+ case $host in -+ *-*-darwin*) -+ case "$deplibs " in -+ *" $qarg.ltframework "*) ;; -+ *) deplibs="$deplibs $qarg.ltframework" # this is fixed later -+ ;; - esac -- fi -- else -- eval flag=\"$hardcode_libdir_flag_spec\" -- rpath="$rpath $flag" -- fi -- elif test -n "$runpath_var"; then -- case "$finalize_perm_rpath " in -- *" $libdir "*) ;; -- *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;; -+ ;; - esac -- fi -- done -- # Substitute the hardcoded libdirs into the rpath. -- if test -n "$hardcode_libdir_separator" && -- test -n "$hardcode_libdirs"; then -- libdir="$hardcode_libdirs" -- eval rpath=\" $hardcode_libdir_flag_spec\" -- fi -- finalize_rpath="$rpath" -- -- if test -n "$libobjs" && test "$build_old_libs" = yes; then -- # Transform all the library objects into standard objects. -- compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` -- finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` -- fi -+ prev= -+ continue -+ ;; -+ inst_prefix) -+ inst_prefix_dir="$arg" -+ prev= -+ continue -+ ;; -+ objectlist) -+ if test -f "$arg"; then -+ save_arg=$arg -+ moreargs= -+ for fil in `cat "$save_arg"` -+ do -+# moreargs="$moreargs $fil" -+ arg=$fil -+ # A libtool-controlled object. - -- dlsyms= -- if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then -- if test -n "$NM" && test -n "$global_symbol_pipe"; then -- dlsyms="${outputname}S.c" -- else -- $echo "$modename: not configured to extract global symbols from dlpreopened files" 1>&2 -- fi -- fi -+ # Check to see that this really is a libtool object. -+ if func_lalib_unsafe_p "$arg"; then -+ pic_object= -+ non_pic_object= - -- if test -n "$dlsyms"; then -- case $dlsyms in -- "") ;; -- *.c) -- # Discover the nlist of each of the dlfiles. -- nlist="$output_objdir/${outputname}.nm" -+ # Read the .lo file -+ func_source "$arg" - -- $show "$rm $nlist ${nlist}S ${nlist}T" -- $run $rm "$nlist" "${nlist}S" "${nlist}T" -+ if test -z "$pic_object" || -+ test -z "$non_pic_object" || -+ test "$pic_object" = none && -+ test "$non_pic_object" = none; then -+ func_fatal_error "cannot find name of object for \`$arg'" -+ fi - -- # Parse the name list into a source file. -- $show "creating $output_objdir/$dlsyms" -+ # Extract subdirectory from the argument. -+ func_dirname "$arg" "/" "" -+ xdir="$func_dirname_result" - -- test -z "$run" && $echo > "$output_objdir/$dlsyms" "\ --/* $dlsyms - symbol resolution table for \`$outputname' dlsym emulation. */ --/* Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP */ -+ if test "$pic_object" != none; then -+ # Prepend the subdirectory the object is found in. -+ pic_object="$xdir$pic_object" - --#ifdef __cplusplus --extern \"C\" { --#endif -+ if test "$prev" = dlfiles; then -+ if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then -+ dlfiles="$dlfiles $pic_object" -+ prev= -+ continue -+ else -+ # If libtool objects are unsupported, then we need to preload. -+ prev=dlprefiles -+ fi -+ fi - --/* Prevent the only kind of declaration conflicts we can make. */ --#define lt_preloaded_symbols some_other_symbol -+ # CHECK ME: I think I busted this. -Ossama -+ if test "$prev" = dlprefiles; then -+ # Preload the old-style object. -+ dlprefiles="$dlprefiles $pic_object" -+ prev= -+ fi - --/* External symbol declarations for the compiler. */\ --" -+ # A PIC object. -+ func_append libobjs " $pic_object" -+ arg="$pic_object" -+ fi - -- if test "$dlself" = yes; then -- $show "generating symbol list for \`$output'" -+ # Non-PIC object. -+ if test "$non_pic_object" != none; then -+ # Prepend the subdirectory the object is found in. -+ non_pic_object="$xdir$non_pic_object" - -- test -z "$run" && $echo ': @PROGRAM@ ' > "$nlist" -+ # A standard non-PIC object -+ func_append non_pic_objects " $non_pic_object" -+ if test -z "$pic_object" || test "$pic_object" = none ; then -+ arg="$non_pic_object" -+ fi -+ else -+ # If the PIC object exists, use it instead. -+ # $xdir was prepended to $pic_object above. -+ non_pic_object="$pic_object" -+ func_append non_pic_objects " $non_pic_object" -+ fi -+ else -+ # Only an error if not doing a dry-run. -+ if $opt_dry_run; then -+ # Extract subdirectory from the argument. -+ func_dirname "$arg" "/" "" -+ xdir="$func_dirname_result" - -- # Add our own program objects to the symbol list. -- progfiles=`$echo "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` -- for arg in $progfiles; do -- $show "extracting global C symbols from \`$arg'" -- $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'" -+ func_lo2o "$arg" -+ pic_object=$xdir$objdir/$func_lo2o_result -+ non_pic_object=$xdir$func_lo2o_result -+ func_append libobjs " $pic_object" -+ func_append non_pic_objects " $non_pic_object" -+ else -+ func_fatal_error "\`$arg' is not a valid libtool object" -+ fi -+ fi - done -- -- if test -n "$exclude_expsyms"; then -- $run eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' -- $run eval '$mv "$nlist"T "$nlist"' -- fi -- -- if test -n "$export_symbols_regex"; then -- $run eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T' -- $run eval '$mv "$nlist"T "$nlist"' -- fi -- -- # Prepare the list of exported symbols -- if test -z "$export_symbols"; then -- export_symbols="$output_objdir/$outputname.exp" -- $run $rm $export_symbols -- $run eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' -- case $host in -- *cygwin* | *mingw* ) -- $run eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' -- $run eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"' -- ;; -- esac -- else -- $run eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"' -- $run eval 'grep -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' -- $run eval 'mv "$nlist"T "$nlist"' -- case $host in -- *cygwin* | *mingw* ) -- $run eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' -- $run eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' -- ;; -- esac -- fi -+ else -+ func_fatal_error "link input file \`$arg' does not exist" - fi -- -- for arg in $dlprefiles; do -- $show "extracting global C symbols from \`$arg'" -- name=`$echo "$arg" | ${SED} -e 's%^.*/%%'` -- $run eval '$echo ": $name " >> "$nlist"' -- $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'" -- done -- -- if test -z "$run"; then -- # Make sure we have at least an empty file. -- test -f "$nlist" || : > "$nlist" -- -- if test -n "$exclude_expsyms"; then -- $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T -- $mv "$nlist"T "$nlist" -- fi -- -- # Try sorting and uniquifying the output. -- if grep -v "^: " < "$nlist" | -- if sort -k 3 /dev/null 2>&1; then -- sort -k 3 -- else -- sort +2 -- fi | -- uniq > "$nlist"S; then -- : -- else -- grep -v "^: " < "$nlist" > "$nlist"S -- fi -- -- if test -f "$nlist"S; then -- eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$dlsyms"' -- else -- $echo '/* NONE */' >> "$output_objdir/$dlsyms" -- fi -- -- $echo >> "$output_objdir/$dlsyms" "\ -- --#undef lt_preloaded_symbols -- --#if defined (__STDC__) && __STDC__ --# define lt_ptr void * --#else --# define lt_ptr char * --# define const --#endif -- --/* The mapping between symbol names and symbols. */ --" -- -- case $host in -- *cygwin* | *mingw* ) -- $echo >> "$output_objdir/$dlsyms" "\ --/* DATA imports from DLLs on WIN32 can't be const, because -- runtime relocations are performed -- see ld's documentation -- on pseudo-relocs */ --struct { --" -- ;; -- * ) -- $echo >> "$output_objdir/$dlsyms" "\ --const struct { --" -- ;; -- esac -- -- -- $echo >> "$output_objdir/$dlsyms" "\ -- const char *name; -- lt_ptr address; --} --lt_preloaded_symbols[] = --{\ --" -- -- eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$dlsyms" -- -- $echo >> "$output_objdir/$dlsyms" "\ -- {0, (lt_ptr) 0} --}; -- --/* This works around a problem in FreeBSD linker */ --#ifdef FREEBSD_WORKAROUND --static const void *lt_preloaded_setup() { -- return lt_preloaded_symbols; --} --#endif -- --#ifdef __cplusplus --} --#endif\ --" -- fi -- -- pic_flag_for_symtable= -- case $host in -- # compiling the symbol table file with pic_flag works around -- # a FreeBSD bug that causes programs to crash when -lm is -- # linked before any other PIC object. But we must not use -- # pic_flag when linking with -static. The problem exists in -- # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1. -- *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) -- case "$compile_command " in -- *" -static "*) ;; -- *) pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND";; -- esac;; -- *-*-hpux*) -- case "$compile_command " in -- *" -static "*) ;; -- *) pic_flag_for_symtable=" $pic_flag";; -- esac -+ arg=$save_arg -+ prev= -+ continue -+ ;; -+ precious_regex) -+ precious_files_regex="$arg" -+ prev= -+ continue -+ ;; -+ release) -+ release="-$arg" -+ prev= -+ continue -+ ;; -+ rpath | xrpath) -+ # We need an absolute path. -+ case $arg in -+ [\\/]* | [A-Za-z]:[\\/]*) ;; -+ *) -+ func_fatal_error "only absolute run-paths are allowed" -+ ;; - esac -- -- # Now compile the dynamic symbol file. -- $show "(cd $output_objdir && $LTCC $LTCFLAGS -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")" -- $run eval '(cd $output_objdir && $LTCC $LTCFLAGS -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' || exit $? -- -- # Clean up the generated files. -- $show "$rm $output_objdir/$dlsyms $nlist ${nlist}S ${nlist}T" -- $run $rm "$output_objdir/$dlsyms" "$nlist" "${nlist}S" "${nlist}T" -- -- # Transform the symbol file into the correct name. -- case $host in -- *cygwin* | *mingw* ) -- if test -f "$output_objdir/${outputname}.def" ; then -- compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%" | $NL2SP` -- finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%" | $NL2SP` -- else -- compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%" | $NL2SP` -- finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%" | $NL2SP` -- fi -- ;; -- * ) -- compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%" | $NL2SP` -- finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%" | $NL2SP` -- ;; -- esac -+ if test "$prev" = rpath; then -+ case "$rpath " in -+ *" $arg "*) ;; -+ *) rpath="$rpath $arg" ;; -+ esac -+ else -+ case "$xrpath " in -+ *" $arg "*) ;; -+ *) xrpath="$xrpath $arg" ;; -+ esac -+ fi -+ prev= -+ continue -+ ;; -+ shrext) -+ shrext_cmds="$arg" -+ prev= -+ continue -+ ;; -+ weak) -+ weak_libs="$weak_libs $arg" -+ prev= -+ continue -+ ;; -+ xcclinker) -+ linker_flags="$linker_flags $qarg" -+ compiler_flags="$compiler_flags $qarg" -+ prev= -+ func_append compile_command " $qarg" -+ func_append finalize_command " $qarg" -+ continue -+ ;; -+ xcompiler) -+ compiler_flags="$compiler_flags $qarg" -+ prev= -+ func_append compile_command " $qarg" -+ func_append finalize_command " $qarg" -+ continue -+ ;; -+ xlinker) -+ linker_flags="$linker_flags $qarg" -+ compiler_flags="$compiler_flags $wl$qarg" -+ prev= -+ func_append compile_command " $wl$qarg" -+ func_append finalize_command " $wl$qarg" -+ continue - ;; - *) -- $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2 -- exit $EXIT_FAILURE -+ eval "$prev=\"\$arg\"" -+ prev= -+ continue - ;; - esac -- else -- # We keep going just in case the user didn't refer to -- # lt_preloaded_symbols. The linker will fail if global_symbol_pipe -- # really was required. -- -- # Nullify the symbol file. -- compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "s% @SYMFILE@%%" | $NL2SP` -- finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "s% @SYMFILE@%%" | $NL2SP` -- fi -- -- if test "$need_relink" = no || test "$build_libtool_libs" != yes; then -- # Replace the output file specification. -- compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e 's%@OUTPUT@%'"$output"'%g' | $NL2SP` -- link_command="$compile_command$compile_rpath" -+ fi # test -n "$prev" - -- # We have no uninstalled library dependencies, so finalize right now. -- $show "$link_command" -- $run eval "$link_command" -- exit_status=$? -+ prevarg="$arg" - -- # Delete the generated files. -- if test -n "$dlsyms"; then -- $show "$rm $output_objdir/${outputname}S.${objext}" -- $run $rm "$output_objdir/${outputname}S.${objext}" -+ case $arg in -+ -all-static) -+ if test -n "$link_static_flag"; then -+ # See comment for -static flag below, for more details. -+ func_append compile_command " $link_static_flag" -+ func_append finalize_command " $link_static_flag" - fi -+ continue -+ ;; - -- exit $exit_status -- fi -- -- if test -n "$shlibpath_var"; then -- # We should set the shlibpath_var -- rpath= -- for dir in $temp_rpath; do -- case $dir in -- [\\/]* | [A-Za-z]:[\\/]*) -- # Absolute path. -- rpath="$rpath$dir:" -- ;; -- *) -- # Relative path: add a thisdir entry. -- rpath="$rpath\$thisdir/$dir:" -- ;; -- esac -- done -- temp_rpath="$rpath" -- fi -+ -allow-undefined) -+ # FIXME: remove this flag sometime in the future. -+ func_fatal_error "\`-allow-undefined' must not be used because it is the default" -+ ;; - -- if test -n "$compile_shlibpath$finalize_shlibpath"; then -- compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command" -- fi -- if test -n "$finalize_shlibpath"; then -- finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command" -- fi -+ -avoid-version) -+ avoid_version=yes -+ continue -+ ;; - -- compile_var= -- finalize_var= -- if test -n "$runpath_var"; then -- if test -n "$perm_rpath"; then -- # We should set the runpath_var. -- rpath= -- for dir in $perm_rpath; do -- rpath="$rpath$dir:" -- done -- compile_var="$runpath_var=\"$rpath\$$runpath_var\" " -- fi -- if test -n "$finalize_perm_rpath"; then -- # We should set the runpath_var. -- rpath= -- for dir in $finalize_perm_rpath; do -- rpath="$rpath$dir:" -- done -- finalize_var="$runpath_var=\"$rpath\$$runpath_var\" " -- fi -- fi -+ -dlopen) -+ prev=dlfiles -+ continue -+ ;; - -- if test "$no_install" = yes; then -- # We don't need to create a wrapper script. -- link_command="$compile_var$compile_command$compile_rpath" -- # Replace the output file specification. -- link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` -- # Delete the old output file. -- $run $rm $output -- # Link the executable and exit -- $show "$link_command" -- $run eval "$link_command" || exit $? -- exit $EXIT_SUCCESS -- fi -+ -dlpreopen) -+ prev=dlprefiles -+ continue -+ ;; - -- if test "$hardcode_action" = relink; then -- # Fast installation is not supported -- link_command="$compile_var$compile_command$compile_rpath" -- relink_command="$finalize_var$finalize_command$finalize_rpath" -+ -export-dynamic) -+ export_dynamic=yes -+ continue -+ ;; - -- $echo "$modename: warning: this platform does not like uninstalled shared libraries" 1>&2 -- $echo "$modename: \`$output' will be relinked during installation" 1>&2 -- else -- if test "$fast_install" != no; then -- link_command="$finalize_var$compile_command$finalize_rpath" -- if test "$fast_install" = yes; then -- relink_command=`$echo "X$compile_var$compile_command$compile_rpath" | $SP2NL | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g' | $NL2SP` -- else -- # fast_install is set to needless -- relink_command= -- fi -+ -export-symbols | -export-symbols-regex) -+ if test -n "$export_symbols" || test -n "$export_symbols_regex"; then -+ func_fatal_error "more than one -exported-symbols argument is not allowed" -+ fi -+ if test "X$arg" = "X-export-symbols"; then -+ prev=expsyms - else -- link_command="$compile_var$compile_command$compile_rpath" -- relink_command="$finalize_var$finalize_command$finalize_rpath" -+ prev=expsyms_regex - fi -- fi -- -- # Replace the output file specification. -- link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` -+ continue -+ ;; - -- # Delete the old output files. -- $run $rm $output $output_objdir/$outputname $output_objdir/lt-$outputname -+ -framework) -+ prev=framework -+ continue -+ ;; - -- $show "$link_command" -- $run eval "$link_command" || exit $? -+ -inst-prefix-dir) -+ prev=inst_prefix -+ continue -+ ;; - -- # Now create the wrapper script. -- $show "creating $output" -+ # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:* -+ # so, if we see these flags be careful not to treat them like -L -+ -L[A-Z][A-Z]*:*) -+ case $with_gcc/$host in -+ no/*-*-irix* | /*-*-irix*) -+ func_append compile_command " $arg" -+ func_append finalize_command " $arg" -+ ;; -+ esac -+ continue -+ ;; - -- # Quote the relink command for shipping. -- if test -n "$relink_command"; then -- # Preserve any variables that may affect compiler behavior -- for var in $variables_saved_for_relink; do -- if eval test -z \"\${$var+set}\"; then -- relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command" -- elif eval var_value=\$$var; test -z "$var_value"; then -- relink_command="$var=; export $var; $relink_command" -+ -L*) -+ func_stripname '-L' '' "$arg" -+ dir=$func_stripname_result -+ if test -z "$dir"; then -+ if test "$#" -gt 0; then -+ func_fatal_error "require no space between \`-L' and \`$1'" - else -- var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"` -- relink_command="$var=\"$var_value\"; export $var; $relink_command" -+ func_fatal_error "need path for \`-L' option" - fi -- done -- relink_command="(cd `pwd`; $relink_command)" -- relink_command=`$echo "X$relink_command" | $SP2NL | $Xsed -e "$sed_quote_subst" | $NL2SP` -- fi -- -- # Quote $echo for shipping. -- if test "X$echo" = "X$SHELL $progpath --fallback-echo"; then -- case $progpath in -- [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $progpath --fallback-echo";; -- *) qecho="$SHELL `pwd`/$progpath --fallback-echo";; -+ fi -+ # We need an absolute path. -+ case $dir in -+ [\\/]* | [A-Za-z]:[\\/]*) ;; -+ *) -+ absdir=`cd "$dir" && pwd` -+ test -z "$absdir" && \ -+ func_fatal_error "cannot determine absolute directory name of \`$dir'" -+ dir="$absdir" -+ ;; - esac -- qecho=`$echo "X$qecho" | $Xsed -e "$sed_quote_subst"` -- else -- qecho=`$echo "X$echo" | $Xsed -e "$sed_quote_subst"` -- fi -- -- # Only actually do things if our run command is non-null. -- if test -z "$run"; then -- # win32 will think the script is a binary if it has -- # a .exe suffix, so we strip it off here. -- case $output in -- *.exe) output=`$echo $output|${SED} 's,.exe$,,'` ;; -+ case "$deplibs " in -+ *" -L$dir "*) ;; -+ *) -+ deplibs="$deplibs -L$dir" -+ lib_search_path="$lib_search_path $dir" -+ ;; - esac -- # test for cygwin because mv fails w/o .exe extensions - case $host in -- *cygwin*) -- exeext=.exe -- outputname=`$echo $outputname|${SED} 's,.exe$,,'` ;; -- *) exeext= ;; -+ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) -+ testbindir=`$ECHO "X$dir" | $Xsed -e 's*/lib$*/bin*'` -+ case :$dllsearchpath: in -+ *":$dir:"*) ;; -+ ::) dllsearchpath=$dir;; -+ *) dllsearchpath="$dllsearchpath:$dir";; -+ esac -+ case :$dllsearchpath: in -+ *":$testbindir:"*) ;; -+ ::) dllsearchpath=$testbindir;; -+ *) dllsearchpath="$dllsearchpath:$testbindir";; -+ esac -+ ;; - esac -- case $host in -- *cygwin* | *mingw* ) -- output_name=`basename $output` -- output_path=`dirname $output` -- cwrappersource="$output_path/$objdir/lt-$output_name.c" -- cwrapper="$output_path/$output_name.exe" -- $rm $cwrappersource $cwrapper -- trap "$rm $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15 -+ continue -+ ;; - -- cat > $cwrappersource <> $cwrappersource<<"EOF" --#include --#include --#include --#include --#include --#include --#include --#include --#include -+ -multi_module) -+ single_module="${wl}-multi_module" -+ continue -+ ;; - --#if defined(PATH_MAX) --# define LT_PATHMAX PATH_MAX --#elif defined(MAXPATHLEN) --# define LT_PATHMAX MAXPATHLEN --#else --# define LT_PATHMAX 1024 --#endif -+ -no-fast-install) -+ fast_install=no -+ continue -+ ;; - --#ifndef DIR_SEPARATOR --# define DIR_SEPARATOR '/' --# define PATH_SEPARATOR ':' --#endif -+ -no-install) -+ case $host in -+ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin* | *-cegcc*) -+ # The PATH hackery in wrapper scripts is required on Windows -+ # and Darwin in order for the loader to find any dlls it needs. -+ func_warning "\`-no-install' is ignored for $host" -+ func_warning "assuming \`-no-fast-install' instead" -+ fast_install=no -+ ;; -+ *) no_install=yes ;; -+ esac -+ continue -+ ;; - --#if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \ -- defined (__OS2__) --# define HAVE_DOS_BASED_FILE_SYSTEM --# ifndef DIR_SEPARATOR_2 --# define DIR_SEPARATOR_2 '\\' --# endif --# ifndef PATH_SEPARATOR_2 --# define PATH_SEPARATOR_2 ';' --# endif --#endif -+ -no-undefined) -+ allow_undefined=no -+ continue -+ ;; - --#ifndef DIR_SEPARATOR_2 --# define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR) --#else /* DIR_SEPARATOR_2 */ --# define IS_DIR_SEPARATOR(ch) \ -- (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2)) --#endif /* DIR_SEPARATOR_2 */ -+ -objectlist) -+ prev=objectlist -+ continue -+ ;; - --#ifndef PATH_SEPARATOR_2 --# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR) --#else /* PATH_SEPARATOR_2 */ --# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2) --#endif /* PATH_SEPARATOR_2 */ -+ -o) prev=output ;; - --#define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type))) --#define XFREE(stale) do { \ -- if (stale) { free ((void *) stale); stale = 0; } \ --} while (0) -+ -precious-files-regex) -+ prev=precious_regex -+ continue -+ ;; - --/* -DDEBUG is fairly common in CFLAGS. */ --#undef DEBUG --#if defined DEBUGWRAPPER --# define DEBUG(format, ...) fprintf(stderr, format, __VA_ARGS__) --#else --# define DEBUG(format, ...) --#endif -+ -release) -+ prev=release -+ continue -+ ;; - --const char *program_name = NULL; -+ -rpath) -+ prev=rpath -+ continue -+ ;; - --void * xmalloc (size_t num); --char * xstrdup (const char *string); --const char * base_name (const char *name); --char * find_executable(const char *wrapper); --int check_executable(const char *path); --char * strendzap(char *str, const char *pat); --void lt_fatal (const char *message, ...); -+ -R) -+ prev=xrpath -+ continue -+ ;; - --int --main (int argc, char *argv[]) --{ -- char **newargz; -- int i; -+ -R*) -+ func_stripname '-R' '' "$arg" -+ dir=$func_stripname_result -+ # We need an absolute path. -+ case $dir in -+ [\\/]* | [A-Za-z]:[\\/]*) ;; -+ *) -+ func_fatal_error "only absolute run-paths are allowed" -+ ;; -+ esac -+ case "$xrpath " in -+ *" $dir "*) ;; -+ *) xrpath="$xrpath $dir" ;; -+ esac -+ continue -+ ;; - -- program_name = (char *) xstrdup (base_name (argv[0])); -- DEBUG("(main) argv[0] : %s\n",argv[0]); -- DEBUG("(main) program_name : %s\n",program_name); -- newargz = XMALLOC(char *, argc+2); --EOF -+ -shared) -+ # The effects of -shared are defined in a previous loop. -+ continue -+ ;; - -- cat >> $cwrappersource <> $cwrappersource <<"EOF" -- newargz[1] = find_executable(argv[0]); -- if (newargz[1] == NULL) -- lt_fatal("Couldn't find %s", argv[0]); -- DEBUG("(main) found exe at : %s\n",newargz[1]); -- /* we know the script has the same name, without the .exe */ -- /* so make sure newargz[1] doesn't end in .exe */ -- strendzap(newargz[1],".exe"); -- for (i = 1; i < argc; i++) -- newargz[i+1] = xstrdup(argv[i]); -- newargz[argc+1] = NULL; -+ -static | -static-libtool-libs) -+ # The effects of -static are defined in a previous loop. -+ # We used to do the same as -all-static on platforms that -+ # didn't have a PIC flag, but the assumption that the effects -+ # would be equivalent was wrong. It would break on at least -+ # Digital Unix and AIX. -+ continue -+ ;; - -- for (i=0; i> $cwrappersource <> $cwrappersource <> $cwrappersource <<"EOF" -- return 127; --} -+ -weak) -+ prev=weak -+ continue -+ ;; - --void * --xmalloc (size_t num) --{ -- void * p = (void *) malloc (num); -- if (!p) -- lt_fatal ("Memory exhausted"); -+ -Wc,*) -+ func_stripname '-Wc,' '' "$arg" -+ args=$func_stripname_result -+ arg= -+ save_ifs="$IFS"; IFS=',' -+ for flag in $args; do -+ IFS="$save_ifs" -+ func_quote_for_eval "$flag" -+ arg="$arg $wl$func_quote_for_eval_result" -+ compiler_flags="$compiler_flags $func_quote_for_eval_result" -+ done -+ IFS="$save_ifs" -+ func_stripname ' ' '' "$arg" -+ arg=$func_stripname_result -+ ;; - -- return p; --} -+ -Wl,*) -+ func_stripname '-Wl,' '' "$arg" -+ args=$func_stripname_result -+ arg= -+ save_ifs="$IFS"; IFS=',' -+ for flag in $args; do -+ IFS="$save_ifs" -+ func_quote_for_eval "$flag" -+ arg="$arg $wl$func_quote_for_eval_result" -+ compiler_flags="$compiler_flags $wl$func_quote_for_eval_result" -+ linker_flags="$linker_flags $func_quote_for_eval_result" -+ done -+ IFS="$save_ifs" -+ func_stripname ' ' '' "$arg" -+ arg=$func_stripname_result -+ ;; - --char * --xstrdup (const char *string) --{ -- return string ? strcpy ((char *) xmalloc (strlen (string) + 1), string) : NULL --; --} -+ -Xcompiler) -+ prev=xcompiler -+ continue -+ ;; - --const char * --base_name (const char *name) --{ -- const char *base; -+ -Xlinker) -+ prev=xlinker -+ continue -+ ;; - --#if defined (HAVE_DOS_BASED_FILE_SYSTEM) -- /* Skip over the disk name in MSDOS pathnames. */ -- if (isalpha ((unsigned char)name[0]) && name[1] == ':') -- name += 2; --#endif -+ -XCClinker) -+ prev=xcclinker -+ continue -+ ;; - -- for (base = name; *name; name++) -- if (IS_DIR_SEPARATOR (*name)) -- base = name + 1; -- return base; --} -+ # -msg_* for osf cc -+ -msg_*) -+ func_quote_for_eval "$arg" -+ arg="$func_quote_for_eval_result" -+ ;; - --int --check_executable(const char * path) --{ -- struct stat st; -+ # -64, -mips[0-9] enable 64-bit mode on the SGI compiler -+ # -r[0-9][0-9]* specifies the processor on the SGI compiler -+ # -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler -+ # +DA*, +DD* enable 64-bit mode on the HP compiler -+ # -q* pass through compiler args for the IBM compiler -+ # -m*, -t[45]*, -txscale* pass through architecture-specific -+ # compiler args for GCC -+ # -F/path gives path to uninstalled frameworks, gcc on darwin -+ # -p, -pg, --coverage, -fprofile-* pass through profiling flag for GCC -+ # @file GCC response files -+ -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \ -+ -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*) -+ func_quote_for_eval "$arg" -+ arg="$func_quote_for_eval_result" -+ func_append compile_command " $arg" -+ func_append finalize_command " $arg" -+ compiler_flags="$compiler_flags $arg" -+ continue -+ ;; - -- DEBUG("(check_executable) : %s\n", path ? (*path ? path : "EMPTY!") : "NULL!"); -- if ((!path) || (!*path)) -- return 0; -+ # Some other compiler flag. -+ -* | +*) -+ func_quote_for_eval "$arg" -+ arg="$func_quote_for_eval_result" -+ ;; - -- if ((stat (path, &st) >= 0) && -- ( -- /* MinGW & native WIN32 do not support S_IXOTH or S_IXGRP */ --#if defined (S_IXOTH) -- ((st.st_mode & S_IXOTH) == S_IXOTH) || --#endif --#if defined (S_IXGRP) -- ((st.st_mode & S_IXGRP) == S_IXGRP) || --#endif -- ((st.st_mode & S_IXUSR) == S_IXUSR)) -- ) -- return 1; -- else -- return 0; --} -+ *.$objext) -+ # A standard object. -+ objs="$objs $arg" -+ ;; - --/* Searches for the full path of the wrapper. Returns -- newly allocated full path name if found, NULL otherwise */ --char * --find_executable (const char* wrapper) --{ -- int has_slash = 0; -- const char* p; -- const char* p_next; -- /* static buffer for getcwd */ -- char tmp[LT_PATHMAX + 1]; -- int tmp_len; -- char* concat_name; -+ *.lo) -+ # A libtool-controlled object. - -- DEBUG("(find_executable) : %s\n", wrapper ? (*wrapper ? wrapper : "EMPTY!") : "NULL!"); -+ # Check to see that this really is a libtool object. -+ if func_lalib_unsafe_p "$arg"; then -+ pic_object= -+ non_pic_object= - -- if ((wrapper == NULL) || (*wrapper == '\0')) -- return NULL; -+ # Read the .lo file -+ func_source "$arg" - -- /* Absolute path? */ --#if defined (HAVE_DOS_BASED_FILE_SYSTEM) -- if (isalpha ((unsigned char)wrapper[0]) && wrapper[1] == ':') -- { -- concat_name = xstrdup (wrapper); -- if (check_executable(concat_name)) -- return concat_name; -- XFREE(concat_name); -- } -- else -- { --#endif -- if (IS_DIR_SEPARATOR (wrapper[0])) -- { -- concat_name = xstrdup (wrapper); -- if (check_executable(concat_name)) -- return concat_name; -- XFREE(concat_name); -- } --#if defined (HAVE_DOS_BASED_FILE_SYSTEM) -- } --#endif -+ if test -z "$pic_object" || -+ test -z "$non_pic_object" || -+ test "$pic_object" = none && -+ test "$non_pic_object" = none; then -+ func_fatal_error "cannot find name of object for \`$arg'" -+ fi - -- for (p = wrapper; *p; p++) -- if (*p == '/') -- { -- has_slash = 1; -- break; -- } -- if (!has_slash) -- { -- /* no slashes; search PATH */ -- const char* path = getenv ("PATH"); -- if (path != NULL) -- { -- for (p = path; *p; p = p_next) -- { -- const char* q; -- size_t p_len; -- for (q = p; *q; q++) -- if (IS_PATH_SEPARATOR(*q)) -- break; -- p_len = q - p; -- p_next = (*q == '\0' ? q : q + 1); -- if (p_len == 0) -- { -- /* empty path: current directory */ -- if (getcwd (tmp, LT_PATHMAX) == NULL) -- lt_fatal ("getcwd failed"); -- tmp_len = strlen(tmp); -- concat_name = XMALLOC(char, tmp_len + 1 + strlen(wrapper) + 1); -- memcpy (concat_name, tmp, tmp_len); -- concat_name[tmp_len] = '/'; -- strcpy (concat_name + tmp_len + 1, wrapper); -- } -- else -- { -- concat_name = XMALLOC(char, p_len + 1 + strlen(wrapper) + 1); -- memcpy (concat_name, p, p_len); -- concat_name[p_len] = '/'; -- strcpy (concat_name + p_len + 1, wrapper); -- } -- if (check_executable(concat_name)) -- return concat_name; -- XFREE(concat_name); -- } -- } -- /* not found in PATH; assume curdir */ -- } -- /* Relative path | not found in path: prepend cwd */ -- if (getcwd (tmp, LT_PATHMAX) == NULL) -- lt_fatal ("getcwd failed"); -- tmp_len = strlen(tmp); -- concat_name = XMALLOC(char, tmp_len + 1 + strlen(wrapper) + 1); -- memcpy (concat_name, tmp, tmp_len); -- concat_name[tmp_len] = '/'; -- strcpy (concat_name + tmp_len + 1, wrapper); -+ # Extract subdirectory from the argument. -+ func_dirname "$arg" "/" "" -+ xdir="$func_dirname_result" - -- if (check_executable(concat_name)) -- return concat_name; -- XFREE(concat_name); -- return NULL; --} -+ if test "$pic_object" != none; then -+ # Prepend the subdirectory the object is found in. -+ pic_object="$xdir$pic_object" - --char * --strendzap(char *str, const char *pat) --{ -- size_t len, patlen; -+ if test "$prev" = dlfiles; then -+ if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then -+ dlfiles="$dlfiles $pic_object" -+ prev= -+ continue -+ else -+ # If libtool objects are unsupported, then we need to preload. -+ prev=dlprefiles -+ fi -+ fi - -- assert(str != NULL); -- assert(pat != NULL); -+ # CHECK ME: I think I busted this. -Ossama -+ if test "$prev" = dlprefiles; then -+ # Preload the old-style object. -+ dlprefiles="$dlprefiles $pic_object" -+ prev= -+ fi - -- len = strlen(str); -- patlen = strlen(pat); -+ # A PIC object. -+ func_append libobjs " $pic_object" -+ arg="$pic_object" -+ fi - -- if (patlen <= len) -- { -- str += len - patlen; -- if (strcmp(str, pat) == 0) -- *str = '\0'; -- } -- return str; --} -+ # Non-PIC object. -+ if test "$non_pic_object" != none; then -+ # Prepend the subdirectory the object is found in. -+ non_pic_object="$xdir$non_pic_object" - --static void --lt_error_core (int exit_status, const char * mode, -- const char * message, va_list ap) --{ -- fprintf (stderr, "%s: %s: ", program_name, mode); -- vfprintf (stderr, message, ap); -- fprintf (stderr, ".\n"); -+ # A standard non-PIC object -+ func_append non_pic_objects " $non_pic_object" -+ if test -z "$pic_object" || test "$pic_object" = none ; then -+ arg="$non_pic_object" -+ fi -+ else -+ # If the PIC object exists, use it instead. -+ # $xdir was prepended to $pic_object above. -+ non_pic_object="$pic_object" -+ func_append non_pic_objects " $non_pic_object" -+ fi -+ else -+ # Only an error if not doing a dry-run. -+ if $opt_dry_run; then -+ # Extract subdirectory from the argument. -+ func_dirname "$arg" "/" "" -+ xdir="$func_dirname_result" - -- if (exit_status >= 0) -- exit (exit_status); --} -+ func_lo2o "$arg" -+ pic_object=$xdir$objdir/$func_lo2o_result -+ non_pic_object=$xdir$func_lo2o_result -+ func_append libobjs " $pic_object" -+ func_append non_pic_objects " $non_pic_object" -+ else -+ func_fatal_error "\`$arg' is not a valid libtool object" -+ fi -+ fi -+ ;; - --void --lt_fatal (const char *message, ...) --{ -- va_list ap; -- va_start (ap, message); -- lt_error_core (EXIT_FAILURE, "FATAL", message, ap); -- va_end (ap); --} --EOF -- # we should really use a build-platform specific compiler -- # here, but OTOH, the wrappers (shell script and this C one) -- # are only useful if you want to execute the "real" binary. -- # Since the "real" binary is built for $host, then this -- # wrapper might as well be built for $host, too. -- $run $LTCC $LTCFLAGS -s -o $cwrapper $cwrappersource -- ;; -- esac -- $rm $output -- trap "$rm $output; exit $EXIT_FAILURE" 1 2 15 -+ *.$libext) -+ # An archive. -+ deplibs="$deplibs $arg" -+ old_deplibs="$old_deplibs $arg" -+ continue -+ ;; - -- $echo > $output "\ --#! $SHELL -+ *.la) -+ # A libtool-controlled library. - --# $output - temporary wrapper script for $objdir/$outputname --# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP --# --# The $output program cannot be directly executed until all the libtool --# libraries that it depends on are installed. --# --# This wrapper script should never be moved out of the build directory. --# If it is, it will not operate correctly. -+ if test "$prev" = dlfiles; then -+ # This library was specified with -dlopen. -+ dlfiles="$dlfiles $arg" -+ prev= -+ elif test "$prev" = dlprefiles; then -+ # The library was specified with -dlpreopen. -+ dlprefiles="$dlprefiles $arg" -+ prev= -+ else -+ deplibs="$deplibs $arg" -+ fi -+ continue -+ ;; - --# Sed substitution that helps us do robust quoting. It backslashifies --# metacharacters that are still active within double-quoted strings. --Xsed='${SED} -e 1s/^X//' --sed_quote_subst='$sed_quote_subst' -+ # Some other compiler argument. -+ *) -+ # Unknown arguments in both finalize_command and compile_command need -+ # to be aesthetically quoted because they are evaled later. -+ func_quote_for_eval "$arg" -+ arg="$func_quote_for_eval_result" -+ ;; -+ esac # arg - --# Be Bourne compatible (taken from Autoconf:_AS_BOURNE_COMPATIBLE). --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 -- # 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 --BIN_SH=xpg4; export BIN_SH # for Tru64 --DUALCASE=1; export DUALCASE # for MKS sh -+ # Now actually substitute the argument into the commands. -+ if test -n "$arg"; then -+ func_append compile_command " $arg" -+ func_append finalize_command " $arg" -+ fi -+ done # argument parsing loop - --# The HP-UX ksh and POSIX shell print the target directory to stdout --# if CDPATH is set. --(unset CDPATH) >/dev/null 2>&1 && unset CDPATH -+ test -n "$prev" && \ -+ func_fatal_help "the \`$prevarg' option requires an argument" - --relink_command=\"$relink_command\" -+ if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then -+ eval arg=\"$export_dynamic_flag_spec\" -+ func_append compile_command " $arg" -+ func_append finalize_command " $arg" -+ fi - --# This environment variable determines our operation mode. --if test \"\$libtool_install_magic\" = \"$magic\"; then -- # install mode needs the following variable: -- notinst_deplibs='$notinst_deplibs' --else -- # When we are sourced in execute mode, \$file and \$echo are already set. -- if test \"\$libtool_execute_magic\" != \"$magic\"; then -- echo=\"$qecho\" -- file=\"\$0\" -- # Make sure echo works. -- if test \"X\$1\" = X--no-reexec; then -- # Discard the --no-reexec flag, and continue. -- shift -- elif test \"X\`(\$echo '\t') 2>/dev/null\`\" = 'X\t'; then -- # Yippee, \$echo works! -- : -+ oldlibs= -+ # calculate the name of the file, without its directory -+ func_basename "$output" -+ outputname="$func_basename_result" -+ libobjs_save="$libobjs" -+ -+ if test -n "$shlibpath_var"; then -+ # get the directories listed in $shlibpath_var -+ eval shlib_search_path=\`\$ECHO \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\` - else -- # Restart under the correct shell, and then maybe \$echo will work. -- exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"} -+ shlib_search_path= - fi -- fi\ --" -- $echo >> $output "\ -+ eval sys_lib_search_path=\"$sys_lib_search_path_spec\" -+ eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\" - -- # Find the directory that this script lives in. -- thisdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\` -- test \"x\$thisdir\" = \"x\$file\" && thisdir=. -+ func_dirname "$output" "/" "" -+ output_objdir="$func_dirname_result$objdir" -+ # Create the object directory. -+ func_mkdir_p "$output_objdir" - -- # Follow symbolic links until we get to the real thisdir. -- file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\` -- while test -n \"\$file\"; do -- destdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\` -+ # Determine the type of output -+ case $output in -+ "") -+ func_fatal_help "you must specify an output file" -+ ;; -+ *.$libext) linkmode=oldlib ;; -+ *.lo | *.$objext) linkmode=obj ;; -+ *.la) linkmode=lib ;; -+ *) linkmode=prog ;; # Anything else should be a program. -+ esac -+ -+ specialdeplibs= -+ -+ libs= -+ # Find all interdependent deplibs by searching for libraries -+ # that are linked more than once (e.g. -la -lb -la) -+ for deplib in $deplibs; do -+ if $opt_duplicate_deps ; then -+ case "$libs " in -+ *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; -+ esac -+ fi -+ libs="$libs $deplib" -+ done -+ -+ if test "$linkmode" = lib; then -+ libs="$predeps $libs $compiler_lib_search_path $postdeps" -+ -+ # Compute libraries that are listed more than once in $predeps -+ # $postdeps and mark them as special (i.e., whose duplicates are -+ # not to be eliminated). -+ pre_post_deps= -+ if $opt_duplicate_compiler_generated_deps; then -+ for pre_post_dep in $predeps $postdeps; do -+ case "$pre_post_deps " in -+ *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;; -+ esac -+ pre_post_deps="$pre_post_deps $pre_post_dep" -+ done -+ fi -+ pre_post_deps= -+ fi -+ -+ deplibs= -+ newdependency_libs= -+ newlib_search_path= -+ need_relink=no # whether we're linking any uninstalled libtool libraries -+ notinst_deplibs= # not-installed libtool libraries -+ notinst_path= # paths that contain not-installed libtool libraries -+ -+ case $linkmode in -+ lib) -+ passes="conv dlpreopen link" -+ for file in $dlfiles $dlprefiles; do -+ case $file in -+ *.la) ;; -+ *) -+ func_fatal_help "libraries can \`-dlopen' only libtool libraries: $file" -+ ;; -+ esac -+ done -+ ;; -+ prog) -+ compile_deplibs= -+ finalize_deplibs= -+ alldeplibs=no -+ newdlfiles= -+ newdlprefiles= -+ passes="conv scan dlopen dlpreopen link" -+ ;; -+ *) passes="conv" -+ ;; -+ esac -+ -+ for pass in $passes; do -+ # The preopen pass in lib mode reverses $deplibs; put it back here -+ # so that -L comes before libs that need it for instance... -+ if test "$linkmode,$pass" = "lib,link"; then -+ ## FIXME: Find the place where the list is rebuilt in the wrong -+ ## order, and fix it there properly -+ tmp_deplibs= -+ for deplib in $deplibs; do -+ tmp_deplibs="$deplib $tmp_deplibs" -+ done -+ deplibs="$tmp_deplibs" -+ fi -+ -+ if test "$linkmode,$pass" = "lib,link" || -+ test "$linkmode,$pass" = "prog,scan"; then -+ libs="$deplibs" -+ deplibs= -+ fi -+ if test "$linkmode" = prog; then -+ case $pass in -+ dlopen) libs="$dlfiles" ;; -+ dlpreopen) libs="$dlprefiles" ;; -+ link) libs="$deplibs %DEPLIBS% $dependency_libs" ;; -+ esac -+ fi -+ if test "$linkmode,$pass" = "lib,dlpreopen"; then -+ # Collect and forward deplibs of preopened libtool libs -+ for lib in $dlprefiles; do -+ # Ignore non-libtool-libs -+ dependency_libs= -+ case $lib in -+ *.la) func_source "$lib" ;; -+ esac -+ -+ # Collect preopened libtool deplibs, except any this library -+ # has declared as weak libs -+ for deplib in $dependency_libs; do -+ deplib_base=`$ECHO "X$deplib" | $Xsed -e "$basename"` -+ case " $weak_libs " in -+ *" $deplib_base "*) ;; -+ *) deplibs="$deplibs $deplib" ;; -+ esac -+ done -+ done -+ libs="$dlprefiles" -+ fi -+ if test "$pass" = dlopen; then -+ # Collect dlpreopened libraries -+ save_deplibs="$deplibs" -+ deplibs= -+ fi -+ -+ for deplib in $libs; do -+ lib= -+ found=no -+ case $deplib in -+ -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads) -+ if test "$linkmode,$pass" = "prog,link"; then -+ compile_deplibs="$deplib $compile_deplibs" -+ finalize_deplibs="$deplib $finalize_deplibs" -+ else -+ compiler_flags="$compiler_flags $deplib" -+ if test "$linkmode" = lib ; then -+ case "$new_inherited_linker_flags " in -+ *" $deplib "*) ;; -+ * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;; -+ esac -+ fi -+ fi -+ continue -+ ;; -+ -l*) -+ if test "$linkmode" != lib && test "$linkmode" != prog; then -+ func_warning "\`-l' is ignored for archives/objects" -+ continue -+ fi -+ func_stripname '-l' '' "$deplib" -+ name=$func_stripname_result -+ if test "$linkmode" = lib; then -+ searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path" -+ else -+ searchdirs="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path" -+ fi -+ for searchdir in $searchdirs; do -+ for search_ext in .la $std_shrext .so .a; do -+ # Search the libtool library -+ lib="$searchdir/lib${name}${search_ext}" -+ if test -f "$lib"; then -+ if test "$search_ext" = ".la"; then -+ found=yes -+ else -+ found=no -+ fi -+ break 2 -+ fi -+ done -+ done -+ if test "$found" != yes; then -+ # deplib doesn't seem to be a libtool library -+ if test "$linkmode,$pass" = "prog,link"; then -+ compile_deplibs="$deplib $compile_deplibs" -+ finalize_deplibs="$deplib $finalize_deplibs" -+ else -+ deplibs="$deplib $deplibs" -+ test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" -+ fi -+ continue -+ else # deplib is a libtool library -+ # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib, -+ # We need to do some special things here, and not later. -+ if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then -+ case " $predeps $postdeps " in -+ *" $deplib "*) -+ if func_lalib_p "$lib"; then -+ library_names= -+ old_library= -+ func_source "$lib" -+ for l in $old_library $library_names; do -+ ll="$l" -+ done -+ if test "X$ll" = "X$old_library" ; then # only static version available -+ found=no -+ func_dirname "$lib" "" "." -+ ladir="$func_dirname_result" -+ lib=$ladir/$old_library -+ if test "$linkmode,$pass" = "prog,link"; then -+ compile_deplibs="$deplib $compile_deplibs" -+ finalize_deplibs="$deplib $finalize_deplibs" -+ else -+ deplibs="$deplib $deplibs" -+ test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" -+ fi -+ continue -+ fi -+ fi -+ ;; -+ *) ;; -+ esac -+ fi -+ fi -+ ;; # -l -+ *.ltframework) -+ if test "$linkmode,$pass" = "prog,link"; then -+ compile_deplibs="$deplib $compile_deplibs" -+ finalize_deplibs="$deplib $finalize_deplibs" -+ else -+ deplibs="$deplib $deplibs" -+ if test "$linkmode" = lib ; then -+ case "$new_inherited_linker_flags " in -+ *" $deplib "*) ;; -+ * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;; -+ esac -+ fi -+ fi -+ continue -+ ;; -+ -L*) -+ case $linkmode in -+ lib) -+ deplibs="$deplib $deplibs" -+ test "$pass" = conv && continue -+ newdependency_libs="$deplib $newdependency_libs" -+ func_stripname '-L' '' "$deplib" -+ newlib_search_path="$newlib_search_path $func_stripname_result" -+ ;; -+ prog) -+ if test "$pass" = conv; then -+ deplibs="$deplib $deplibs" -+ continue -+ fi -+ if test "$pass" = scan; then -+ deplibs="$deplib $deplibs" -+ else -+ compile_deplibs="$deplib $compile_deplibs" -+ finalize_deplibs="$deplib $finalize_deplibs" -+ fi -+ func_stripname '-L' '' "$deplib" -+ newlib_search_path="$newlib_search_path $func_stripname_result" -+ ;; -+ *) -+ func_warning "\`-L' is ignored for archives/objects" -+ ;; -+ esac # linkmode -+ continue -+ ;; # -L -+ -R*) -+ if test "$pass" = link; then -+ func_stripname '-R' '' "$deplib" -+ dir=$func_stripname_result -+ # Make sure the xrpath contains only unique directories. -+ case "$xrpath " in -+ *" $dir "*) ;; -+ *) xrpath="$xrpath $dir" ;; -+ esac -+ fi -+ deplibs="$deplib $deplibs" -+ continue -+ ;; -+ *.la) lib="$deplib" ;; -+ *.$libext) -+ if test "$pass" = conv; then -+ deplibs="$deplib $deplibs" -+ continue -+ fi -+ case $linkmode in -+ lib) -+ # Linking convenience modules into shared libraries is allowed, -+ # but linking other static libraries is non-portable. -+ case " $dlpreconveniencelibs " in -+ *" $deplib "*) ;; -+ *) -+ valid_a_lib=no -+ case $deplibs_check_method in -+ match_pattern*) -+ set dummy $deplibs_check_method; shift -+ match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` -+ if eval "\$ECHO \"X$deplib\"" 2>/dev/null | $Xsed -e 10q \ -+ | $EGREP "$match_pattern_regex" > /dev/null; then -+ valid_a_lib=yes -+ fi -+ ;; -+ pass_all) -+ valid_a_lib=yes -+ ;; -+ esac -+ if test "$valid_a_lib" != yes; then -+ $ECHO -+ $ECHO "*** Warning: Trying to link with static lib archive $deplib." -+ $ECHO "*** I have the capability to make that library automatically link in when" -+ $ECHO "*** you link to this library. But I can only do this if you have a" -+ $ECHO "*** shared version of the library, which you do not appear to have" -+ $ECHO "*** because the file extensions .$libext of this argument makes me believe" -+ $ECHO "*** that it is just a static archive that I should not use here." -+ else -+ $ECHO -+ $ECHO "*** Warning: Linking the shared library $output against the" -+ $ECHO "*** static library $deplib is not portable!" -+ deplibs="$deplib $deplibs" -+ fi -+ ;; -+ esac -+ continue -+ ;; -+ prog) -+ if test "$pass" != link; then -+ deplibs="$deplib $deplibs" -+ else -+ compile_deplibs="$deplib $compile_deplibs" -+ finalize_deplibs="$deplib $finalize_deplibs" -+ fi -+ continue -+ ;; -+ esac # linkmode -+ ;; # *.$libext -+ *.lo | *.$objext) -+ if test "$pass" = conv; then -+ deplibs="$deplib $deplibs" -+ elif test "$linkmode" = prog; then -+ if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then -+ # If there is no dlopen support or we're linking statically, -+ # we need to preload. -+ newdlprefiles="$newdlprefiles $deplib" -+ compile_deplibs="$deplib $compile_deplibs" -+ finalize_deplibs="$deplib $finalize_deplibs" -+ else -+ newdlfiles="$newdlfiles $deplib" -+ fi -+ fi -+ continue -+ ;; -+ %DEPLIBS%) -+ alldeplibs=yes -+ continue -+ ;; -+ esac # case $deplib -+ -+ if test "$found" = yes || test -f "$lib"; then : -+ else -+ func_fatal_error "cannot find the library \`$lib' or unhandled argument \`$deplib'" -+ fi -+ -+ # Check to see that this really is a libtool archive. -+ func_lalib_unsafe_p "$lib" \ -+ || func_fatal_error "\`$lib' is not a valid libtool archive" -+ -+ func_dirname "$lib" "" "." -+ ladir="$func_dirname_result" -+ -+ dlname= -+ dlopen= -+ dlpreopen= -+ libdir= -+ library_names= -+ old_library= -+ inherited_linker_flags= -+ # If the library was installed with an old release of libtool, -+ # it will not redefine variables installed, or shouldnotlink -+ installed=yes -+ shouldnotlink=no -+ avoidtemprpath= -+ -+ -+ # Read the .la file -+ func_source "$lib" -+ -+ # Convert "-framework foo" to "foo.ltframework" -+ if test -n "$inherited_linker_flags"; then -+ tmp_inherited_linker_flags=`$ECHO "X$inherited_linker_flags" | $Xsed -e 's/-framework \([^ $]*\)/\1.ltframework/g'` -+ for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do -+ case " $new_inherited_linker_flags " in -+ *" $tmp_inherited_linker_flag "*) ;; -+ *) new_inherited_linker_flags="$new_inherited_linker_flags $tmp_inherited_linker_flag";; -+ esac -+ done -+ fi -+ dependency_libs=`$ECHO "X $dependency_libs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` -+ if test "$linkmode,$pass" = "lib,link" || -+ test "$linkmode,$pass" = "prog,scan" || -+ { test "$linkmode" != prog && test "$linkmode" != lib; }; then -+ test -n "$dlopen" && dlfiles="$dlfiles $dlopen" -+ test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen" -+ fi -+ -+ if test "$pass" = conv; then -+ # Only check for convenience libraries -+ deplibs="$lib $deplibs" -+ if test -z "$libdir"; then -+ if test -z "$old_library"; then -+ func_fatal_error "cannot find name of link library for \`$lib'" -+ fi -+ # It is a libtool convenience library, so add in its objects. -+ convenience="$convenience $ladir/$objdir/$old_library" -+ old_convenience="$old_convenience $ladir/$objdir/$old_library" -+ elif test "$linkmode" != prog && test "$linkmode" != lib; then -+ func_fatal_error "\`$lib' is not a convenience library" -+ fi -+ tmp_libs= -+ for deplib in $dependency_libs; do -+ deplibs="$deplib $deplibs" -+ if $opt_duplicate_deps ; then -+ case "$tmp_libs " in -+ *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; -+ esac -+ fi -+ tmp_libs="$tmp_libs $deplib" -+ done -+ continue -+ fi # $pass = conv -+ -+ -+ # Get the name of the library we link against. -+ linklib= -+ for l in $old_library $library_names; do -+ linklib="$l" -+ done -+ if test -z "$linklib"; then -+ func_fatal_error "cannot find name of link library for \`$lib'" -+ fi -+ -+ # This library was specified with -dlopen. -+ if test "$pass" = dlopen; then -+ if test -z "$libdir"; then -+ func_fatal_error "cannot -dlopen a convenience library: \`$lib'" -+ fi -+ if test -z "$dlname" || -+ test "$dlopen_support" != yes || -+ test "$build_libtool_libs" = no; then -+ # If there is no dlname, no dlopen support or we're linking -+ # statically, we need to preload. We also need to preload any -+ # dependent libraries so libltdl's deplib preloader doesn't -+ # bomb out in the load deplibs phase. -+ dlprefiles="$dlprefiles $lib $dependency_libs" -+ else -+ newdlfiles="$newdlfiles $lib" -+ fi -+ continue -+ fi # $pass = dlopen -+ -+ # We need an absolute path. -+ case $ladir in -+ [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;; -+ *) -+ abs_ladir=`cd "$ladir" && pwd` -+ if test -z "$abs_ladir"; then -+ func_warning "cannot determine absolute directory name of \`$ladir'" -+ func_warning "passing it literally to the linker, although it might fail" -+ abs_ladir="$ladir" -+ fi -+ ;; -+ esac -+ func_basename "$lib" -+ laname="$func_basename_result" -+ -+ # Find the relevant object directory and library name. -+ if test "X$installed" = Xyes; then -+ if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then -+ func_warning "library \`$lib' was moved." -+ dir="$ladir" -+ absdir="$abs_ladir" -+ libdir="$abs_ladir" -+ else -+ dir="$libdir" -+ absdir="$libdir" -+ fi -+ test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes -+ else -+ if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then -+ dir="$ladir" -+ absdir="$abs_ladir" -+ # Remove this search path later -+ notinst_path="$notinst_path $abs_ladir" -+ else -+ dir="$ladir/$objdir" -+ absdir="$abs_ladir/$objdir" -+ # Remove this search path later -+ notinst_path="$notinst_path $abs_ladir" -+ fi -+ fi # $installed = yes -+ func_stripname 'lib' '.la' "$laname" -+ name=$func_stripname_result -+ -+ # This library was specified with -dlpreopen. -+ if test "$pass" = dlpreopen; then -+ if test -z "$libdir" && test "$linkmode" = prog; then -+ func_fatal_error "only libraries may -dlpreopen a convenience library: \`$lib'" -+ fi -+ # Prefer using a static library (so that no silly _DYNAMIC symbols -+ # are required to link). -+ if test -n "$old_library"; then -+ newdlprefiles="$newdlprefiles $dir/$old_library" -+ # Keep a list of preopened convenience libraries to check -+ # that they are being used correctly in the link pass. -+ test -z "$libdir" && \ -+ dlpreconveniencelibs="$dlpreconveniencelibs $dir/$old_library" -+ # Otherwise, use the dlname, so that lt_dlopen finds it. -+ elif test -n "$dlname"; then -+ newdlprefiles="$newdlprefiles $dir/$dlname" -+ else -+ newdlprefiles="$newdlprefiles $dir/$linklib" -+ fi -+ fi # $pass = dlpreopen -+ -+ if test -z "$libdir"; then -+ # Link the convenience library -+ if test "$linkmode" = lib; then -+ deplibs="$dir/$old_library $deplibs" -+ elif test "$linkmode,$pass" = "prog,link"; then -+ compile_deplibs="$dir/$old_library $compile_deplibs" -+ finalize_deplibs="$dir/$old_library $finalize_deplibs" -+ else -+ deplibs="$lib $deplibs" # used for prog,scan pass -+ fi -+ continue -+ fi -+ -+ -+ if test "$linkmode" = prog && test "$pass" != link; then -+ newlib_search_path="$newlib_search_path $ladir" -+ deplibs="$lib $deplibs" -+ -+ linkalldeplibs=no -+ if test "$link_all_deplibs" != no || test -z "$library_names" || -+ test "$build_libtool_libs" = no; then -+ linkalldeplibs=yes -+ fi -+ -+ tmp_libs= -+ for deplib in $dependency_libs; do -+ case $deplib in -+ -L*) func_stripname '-L' '' "$deplib" -+ newlib_search_path="$newlib_search_path $func_stripname_result" -+ ;; -+ esac -+ # Need to link against all dependency_libs? -+ if test "$linkalldeplibs" = yes; then -+ deplibs="$deplib $deplibs" -+ else -+ # Need to hardcode shared library paths -+ # or/and link against static libraries -+ newdependency_libs="$deplib $newdependency_libs" -+ fi -+ if $opt_duplicate_deps ; then -+ case "$tmp_libs " in -+ *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; -+ esac -+ fi -+ tmp_libs="$tmp_libs $deplib" -+ done # for deplib -+ continue -+ fi # $linkmode = prog... -+ -+ if test "$linkmode,$pass" = "prog,link"; then -+ if test -n "$library_names" && -+ { { test "$prefer_static_libs" = no || -+ test "$prefer_static_libs,$installed" = "built,yes"; } || -+ test -z "$old_library"; }; then -+ # We need to hardcode the library path -+ if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then -+ # Make sure the rpath contains only unique directories. -+ case "$temp_rpath:" in -+ *"$absdir:"*) ;; -+ *) temp_rpath="$temp_rpath$absdir:" ;; -+ esac -+ fi -+ -+ # Hardcode the library path. -+ # Skip directories that are in the system default run-time -+ # search path. -+ case " $sys_lib_dlsearch_path " in -+ *" $absdir "*) ;; -+ *) -+ case "$compile_rpath " in -+ *" $absdir "*) ;; -+ *) compile_rpath="$compile_rpath $absdir" -+ esac -+ ;; -+ esac -+ case " $sys_lib_dlsearch_path " in -+ *" $libdir "*) ;; -+ *) -+ case "$finalize_rpath " in -+ *" $libdir "*) ;; -+ *) finalize_rpath="$finalize_rpath $libdir" -+ esac -+ ;; -+ esac -+ fi # $linkmode,$pass = prog,link... -+ -+ if test "$alldeplibs" = yes && -+ { test "$deplibs_check_method" = pass_all || -+ { test "$build_libtool_libs" = yes && -+ test -n "$library_names"; }; }; then -+ # We only need to search for static libraries -+ continue -+ fi -+ fi -+ -+ link_static=no # Whether the deplib will be linked statically -+ use_static_libs=$prefer_static_libs -+ if test "$use_static_libs" = built && test "$installed" = yes; then -+ use_static_libs=no -+ fi -+ if test -n "$library_names" && -+ { test "$use_static_libs" = no || test -z "$old_library"; }; then -+ case $host in -+ *cygwin* | *mingw* | *cegcc*) -+ # No point in relinking DLLs because paths are not encoded -+ notinst_deplibs="$notinst_deplibs $lib" -+ need_relink=no -+ ;; -+ *) -+ if test "$installed" = no; then -+ notinst_deplibs="$notinst_deplibs $lib" -+ need_relink=yes -+ fi -+ ;; -+ esac -+ # This is a shared library -+ -+ # Warn about portability, can't link against -module's on some -+ # systems (darwin). Don't bleat about dlopened modules though! -+ dlopenmodule="" -+ for dlpremoduletest in $dlprefiles; do -+ if test "X$dlpremoduletest" = "X$lib"; then -+ dlopenmodule="$dlpremoduletest" -+ break -+ fi -+ done -+ if test -z "$dlopenmodule" && test "$shouldnotlink" = yes && test "$pass" = link; then -+ $ECHO -+ if test "$linkmode" = prog; then -+ $ECHO "*** Warning: Linking the executable $output against the loadable module" -+ else -+ $ECHO "*** Warning: Linking the shared library $output against the loadable module" -+ fi -+ $ECHO "*** $linklib is not portable!" -+ fi -+ if test "$linkmode" = lib && -+ test "$hardcode_into_libs" = yes; then -+ # Hardcode the library path. -+ # Skip directories that are in the system default run-time -+ # search path. -+ case " $sys_lib_dlsearch_path " in -+ *" $absdir "*) ;; -+ *) -+ case "$compile_rpath " in -+ *" $absdir "*) ;; -+ *) compile_rpath="$compile_rpath $absdir" -+ esac -+ ;; -+ esac -+ case " $sys_lib_dlsearch_path " in -+ *" $libdir "*) ;; -+ *) -+ case "$finalize_rpath " in -+ *" $libdir "*) ;; -+ *) finalize_rpath="$finalize_rpath $libdir" -+ esac -+ ;; -+ esac -+ fi -+ -+ if test -n "$old_archive_from_expsyms_cmds"; then -+ # figure out the soname -+ set dummy $library_names -+ shift -+ realname="$1" -+ shift -+ libname=`eval "\\$ECHO \"$libname_spec\""` -+ # use dlname if we got it. it's perfectly good, no? -+ if test -n "$dlname"; then -+ soname="$dlname" -+ elif test -n "$soname_spec"; then -+ # bleh windows -+ case $host in -+ *cygwin* | mingw* | *cegcc*) -+ func_arith $current - $age -+ major=$func_arith_result -+ versuffix="-$major" -+ ;; -+ esac -+ eval soname=\"$soname_spec\" -+ else -+ soname="$realname" -+ fi -+ -+ # Make a new name for the extract_expsyms_cmds to use -+ soroot="$soname" -+ func_basename "$soroot" -+ soname="$func_basename_result" -+ func_stripname 'lib' '.dll' "$soname" -+ newlib=libimp-$func_stripname_result.a -+ -+ # If the library has no export list, then create one now -+ if test -f "$output_objdir/$soname-def"; then : -+ else -+ func_verbose "extracting exported symbol list from \`$soname'" -+ func_execute_cmds "$extract_expsyms_cmds" 'exit $?' -+ fi -+ -+ # Create $newlib -+ if test -f "$output_objdir/$newlib"; then :; else -+ func_verbose "generating import library for \`$soname'" -+ func_execute_cmds "$old_archive_from_expsyms_cmds" 'exit $?' -+ fi -+ # make sure the library variables are pointing to the new library -+ dir=$output_objdir -+ linklib=$newlib -+ fi # test -n "$old_archive_from_expsyms_cmds" -+ -+ if test "$linkmode" = prog || test "$mode" != relink; then -+ add_shlibpath= -+ add_dir= -+ add= -+ lib_linked=yes -+ case $hardcode_action in -+ immediate | unsupported) -+ if test "$hardcode_direct" = no; then -+ add="$dir/$linklib" -+ case $host in -+ *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;; -+ *-*-sysv4*uw2*) add_dir="-L$dir" ;; -+ *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \ -+ *-*-unixware7*) add_dir="-L$dir" ;; -+ *-*-darwin* ) -+ # if the lib is a (non-dlopened) module then we can not -+ # link against it, someone is ignoring the earlier warnings -+ if /usr/bin/file -L $add 2> /dev/null | -+ $GREP ": [^:]* bundle" >/dev/null ; then -+ if test "X$dlopenmodule" != "X$lib"; then -+ $ECHO "*** Warning: lib $linklib is a module, not a shared library" -+ if test -z "$old_library" ; then -+ $ECHO -+ $ECHO "*** And there doesn't seem to be a static archive available" -+ $ECHO "*** The link will probably fail, sorry" -+ else -+ add="$dir/$old_library" -+ fi -+ elif test -n "$old_library"; then -+ add="$dir/$old_library" -+ fi -+ fi -+ esac -+ elif test "$hardcode_minus_L" = no; then -+ case $host in -+ *-*-sunos*) add_shlibpath="$dir" ;; -+ esac -+ add_dir="-L$dir" -+ add="-l$name" -+ elif test "$hardcode_shlibpath_var" = no; then -+ add_shlibpath="$dir" -+ add="-l$name" -+ else -+ lib_linked=no -+ fi -+ ;; -+ relink) -+ if test "$hardcode_direct" = yes && -+ test "$hardcode_direct_absolute" = no; then -+ add="$dir/$linklib" -+ elif test "$hardcode_minus_L" = yes; then -+ add_dir="-L$dir" -+ # Try looking first in the location we're being installed to. -+ if test -n "$inst_prefix_dir"; then -+ case $libdir in -+ [\\/]*) -+ add_dir="$add_dir -L$inst_prefix_dir$libdir" -+ ;; -+ esac -+ fi -+ add="-l$name" -+ elif test "$hardcode_shlibpath_var" = yes; then -+ add_shlibpath="$dir" -+ add="-l$name" -+ else -+ lib_linked=no -+ fi -+ ;; -+ *) lib_linked=no ;; -+ esac -+ -+ if test "$lib_linked" != yes; then -+ func_fatal_configuration "unsupported hardcode properties" -+ fi -+ -+ if test -n "$add_shlibpath"; then -+ case :$compile_shlibpath: in -+ *":$add_shlibpath:"*) ;; -+ *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;; -+ esac -+ fi -+ if test "$linkmode" = prog; then -+ test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs" -+ test -n "$add" && compile_deplibs="$add $compile_deplibs" -+ else -+ test -n "$add_dir" && deplibs="$add_dir $deplibs" -+ test -n "$add" && deplibs="$add $deplibs" -+ if test "$hardcode_direct" != yes && -+ test "$hardcode_minus_L" != yes && -+ test "$hardcode_shlibpath_var" = yes; then -+ case :$finalize_shlibpath: in -+ *":$libdir:"*) ;; -+ *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; -+ esac -+ fi -+ fi -+ fi -+ -+ if test "$linkmode" = prog || test "$mode" = relink; then -+ add_shlibpath= -+ add_dir= -+ add= -+ # Finalize command for both is simple: just hardcode it. -+ if test "$hardcode_direct" = yes && -+ test "$hardcode_direct_absolute" = no; then -+ add="$libdir/$linklib" -+ elif test "$hardcode_minus_L" = yes; then -+ add_dir="-L$libdir" -+ add="-l$name" -+ elif test "$hardcode_shlibpath_var" = yes; then -+ case :$finalize_shlibpath: in -+ *":$libdir:"*) ;; -+ *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; -+ esac -+ add="-l$name" -+ elif test "$hardcode_automatic" = yes; then -+ if test -n "$inst_prefix_dir" && -+ test -f "$inst_prefix_dir$libdir/$linklib" ; then -+ add="$inst_prefix_dir$libdir/$linklib" -+ else -+ add="$libdir/$linklib" -+ fi -+ else -+ # We cannot seem to hardcode it, guess we'll fake it. -+ add_dir="-L$libdir" -+ # Try looking first in the location we're being installed to. -+ if test -n "$inst_prefix_dir"; then -+ case $libdir in -+ [\\/]*) -+ add_dir="$add_dir -L$inst_prefix_dir$libdir" -+ ;; -+ esac -+ fi -+ add="-l$name" -+ fi -+ -+ if test "$linkmode" = prog; then -+ test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs" -+ test -n "$add" && finalize_deplibs="$add $finalize_deplibs" -+ else -+ test -n "$add_dir" && deplibs="$add_dir $deplibs" -+ test -n "$add" && deplibs="$add $deplibs" -+ fi -+ fi -+ elif test "$linkmode" = prog; then -+ # Here we assume that one of hardcode_direct or hardcode_minus_L -+ # is not unsupported. This is valid on all known static and -+ # shared platforms. -+ if test "$hardcode_direct" != unsupported; then -+ test -n "$old_library" && linklib="$old_library" -+ compile_deplibs="$dir/$linklib $compile_deplibs" -+ finalize_deplibs="$dir/$linklib $finalize_deplibs" -+ else -+ compile_deplibs="-l$name -L$dir $compile_deplibs" -+ finalize_deplibs="-l$name -L$dir $finalize_deplibs" -+ fi -+ elif test "$build_libtool_libs" = yes; then -+ # Not a shared library -+ if test "$deplibs_check_method" != pass_all; then -+ # We're trying link a shared library against a static one -+ # but the system doesn't support it. -+ -+ # Just print a warning and add the library to dependency_libs so -+ # that the program can be linked against the static library. -+ $ECHO -+ $ECHO "*** Warning: This system can not link to static lib archive $lib." -+ $ECHO "*** I have the capability to make that library automatically link in when" -+ $ECHO "*** you link to this library. But I can only do this if you have a" -+ $ECHO "*** shared version of the library, which you do not appear to have." -+ if test "$module" = yes; then -+ $ECHO "*** But as you try to build a module library, libtool will still create " -+ $ECHO "*** a static module, that should work as long as the dlopening application" -+ $ECHO "*** is linked with the -dlopen flag to resolve symbols at runtime." -+ if test -z "$global_symbol_pipe"; then -+ $ECHO -+ $ECHO "*** However, this would only work if libtool was able to extract symbol" -+ $ECHO "*** lists from a program, using \`nm' or equivalent, but libtool could" -+ $ECHO "*** not find such a program. So, this module is probably useless." -+ $ECHO "*** \`nm' from GNU binutils and a full rebuild may help." -+ fi -+ if test "$build_old_libs" = no; then -+ build_libtool_libs=module -+ build_old_libs=yes -+ else -+ build_libtool_libs=no -+ fi -+ fi -+ else -+ deplibs="$dir/$old_library $deplibs" -+ link_static=yes -+ fi -+ fi # link shared/static library? -+ -+ if test "$linkmode" = lib; then -+ if test -n "$dependency_libs" && -+ { test "$hardcode_into_libs" != yes || -+ test "$build_old_libs" = yes || -+ test "$link_static" = yes; }; then -+ # Extract -R from dependency_libs -+ temp_deplibs= -+ for libdir in $dependency_libs; do -+ case $libdir in -+ -R*) func_stripname '-R' '' "$libdir" -+ temp_xrpath=$func_stripname_result -+ case " $xrpath " in -+ *" $temp_xrpath "*) ;; -+ *) xrpath="$xrpath $temp_xrpath";; -+ esac;; -+ *) temp_deplibs="$temp_deplibs $libdir";; -+ esac -+ done -+ dependency_libs="$temp_deplibs" -+ fi -+ -+ newlib_search_path="$newlib_search_path $absdir" -+ # Link against this library -+ test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs" -+ # ... and its dependency_libs -+ tmp_libs= -+ for deplib in $dependency_libs; do -+ newdependency_libs="$deplib $newdependency_libs" -+ if $opt_duplicate_deps ; then -+ case "$tmp_libs " in -+ *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; -+ esac -+ fi -+ tmp_libs="$tmp_libs $deplib" -+ done -+ -+ if test "$link_all_deplibs" != no; then -+ # Add the search paths of all dependency libraries -+ for deplib in $dependency_libs; do -+ case $deplib in -+ -L*) path="$deplib" ;; -+ *.la) -+ func_dirname "$deplib" "" "." -+ dir="$func_dirname_result" -+ # We need an absolute path. -+ case $dir in -+ [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;; -+ *) -+ absdir=`cd "$dir" && pwd` -+ if test -z "$absdir"; then -+ func_warning "cannot determine absolute directory name of \`$dir'" -+ absdir="$dir" -+ fi -+ ;; -+ esac -+ if $GREP "^installed=no" $deplib > /dev/null; then -+ case $host in -+ *-*-darwin*) -+ depdepl= -+ eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib` -+ if test -n "$deplibrary_names" ; then -+ for tmp in $deplibrary_names ; do -+ depdepl=$tmp -+ done -+ if test -f "$absdir/$objdir/$depdepl" ; then -+ depdepl="$absdir/$objdir/$depdepl" -+ darwin_install_name=`${OTOOL} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` -+ if test -z "$darwin_install_name"; then -+ darwin_install_name=`${OTOOL64} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` -+ fi -+ compiler_flags="$compiler_flags ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}" -+ linker_flags="$linker_flags -dylib_file ${darwin_install_name}:${depdepl}" -+ path= -+ fi -+ fi -+ ;; -+ *) -+ path="-L$absdir/$objdir" -+ ;; -+ esac -+ else -+ eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` -+ test -z "$libdir" && \ -+ func_fatal_error "\`$deplib' is not a valid libtool archive" -+ test "$absdir" != "$libdir" && \ -+ func_warning "\`$deplib' seems to be moved" -+ -+ path="-L$absdir" -+ fi -+ ;; -+ esac -+ case " $deplibs " in -+ *" $path "*) ;; -+ *) deplibs="$path $deplibs" ;; -+ esac -+ done -+ fi # link_all_deplibs != no -+ fi # linkmode = lib -+ done # for deplib in $libs -+ if test "$pass" = link; then -+ if test "$linkmode" = "prog"; then -+ compile_deplibs="$new_inherited_linker_flags $compile_deplibs" -+ finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs" -+ else -+ compiler_flags="$compiler_flags "`$ECHO "X $new_inherited_linker_flags" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` -+ fi -+ fi -+ dependency_libs="$newdependency_libs" -+ if test "$pass" = dlpreopen; then -+ # Link the dlpreopened libraries before other libraries -+ for deplib in $save_deplibs; do -+ deplibs="$deplib $deplibs" -+ done -+ fi -+ if test "$pass" != dlopen; then -+ if test "$pass" != conv; then -+ # Make sure lib_search_path contains only unique directories. -+ lib_search_path= -+ for dir in $newlib_search_path; do -+ case "$lib_search_path " in -+ *" $dir "*) ;; -+ *) lib_search_path="$lib_search_path $dir" ;; -+ esac -+ done -+ newlib_search_path= -+ fi -+ -+ if test "$linkmode,$pass" != "prog,link"; then -+ vars="deplibs" -+ else -+ vars="compile_deplibs finalize_deplibs" -+ fi -+ for var in $vars dependency_libs; do -+ # Add libraries to $var in reverse order -+ eval tmp_libs=\"\$$var\" -+ new_libs= -+ for deplib in $tmp_libs; do -+ # FIXME: Pedantically, this is the right thing to do, so -+ # that some nasty dependency loop isn't accidentally -+ # broken: -+ #new_libs="$deplib $new_libs" -+ # Pragmatically, this seems to cause very few problems in -+ # practice: -+ case $deplib in -+ -L*) new_libs="$deplib $new_libs" ;; -+ -R*) ;; -+ *) -+ # And here is the reason: when a library appears more -+ # than once as an explicit dependence of a library, or -+ # is implicitly linked in more than once by the -+ # compiler, it is considered special, and multiple -+ # occurrences thereof are not removed. Compare this -+ # with having the same library being listed as a -+ # dependency of multiple other libraries: in this case, -+ # we know (pedantically, we assume) the library does not -+ # need to be listed more than once, so we keep only the -+ # last copy. This is not always right, but it is rare -+ # enough that we require users that really mean to play -+ # such unportable linking tricks to link the library -+ # using -Wl,-lname, so that libtool does not consider it -+ # for duplicate removal. -+ case " $specialdeplibs " in -+ *" $deplib "*) new_libs="$deplib $new_libs" ;; -+ *) -+ case " $new_libs " in -+ *" $deplib "*) ;; -+ *) new_libs="$deplib $new_libs" ;; -+ esac -+ ;; -+ esac -+ ;; -+ esac -+ done -+ tmp_libs= -+ for deplib in $new_libs; do -+ case $deplib in -+ -L*) -+ case " $tmp_libs " in -+ *" $deplib "*) ;; -+ *) tmp_libs="$tmp_libs $deplib" ;; -+ esac -+ ;; -+ *) tmp_libs="$tmp_libs $deplib" ;; -+ esac -+ done -+ eval $var=\"$tmp_libs\" -+ done # for var -+ fi -+ # Last step: remove runtime libs from dependency_libs -+ # (they stay in deplibs) -+ tmp_libs= -+ for i in $dependency_libs ; do -+ case " $predeps $postdeps $compiler_lib_search_path " in -+ *" $i "*) -+ i="" -+ ;; -+ esac -+ if test -n "$i" ; then -+ tmp_libs="$tmp_libs $i" -+ fi -+ done -+ dependency_libs=$tmp_libs -+ done # for pass -+ if test "$linkmode" = prog; then -+ dlfiles="$newdlfiles" -+ fi -+ if test "$linkmode" = prog || test "$linkmode" = lib; then -+ dlprefiles="$newdlprefiles" -+ fi -+ -+ case $linkmode in -+ oldlib) -+ if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then -+ func_warning "\`-dlopen' is ignored for archives" -+ fi -+ -+ case " $deplibs" in -+ *\ -l* | *\ -L*) -+ func_warning "\`-l' and \`-L' are ignored for archives" ;; -+ esac -+ -+ test -n "$rpath" && \ -+ func_warning "\`-rpath' is ignored for archives" -+ -+ test -n "$xrpath" && \ -+ func_warning "\`-R' is ignored for archives" -+ -+ test -n "$vinfo" && \ -+ func_warning "\`-version-info/-version-number' is ignored for archives" -+ -+ test -n "$release" && \ -+ func_warning "\`-release' is ignored for archives" -+ -+ test -n "$export_symbols$export_symbols_regex" && \ -+ func_warning "\`-export-symbols' is ignored for archives" -+ -+ # Now set the variables for building old libraries. -+ build_libtool_libs=no -+ oldlibs="$output" -+ objs="$objs$old_deplibs" -+ ;; -+ -+ lib) -+ # Make sure we only generate libraries of the form `libNAME.la'. -+ case $outputname in -+ lib*) -+ func_stripname 'lib' '.la' "$outputname" -+ name=$func_stripname_result -+ eval shared_ext=\"$shrext_cmds\" -+ eval libname=\"$libname_spec\" -+ ;; -+ *) -+ test "$module" = no && \ -+ func_fatal_help "libtool library \`$output' must begin with \`lib'" -+ -+ if test "$need_lib_prefix" != no; then -+ # Add the "lib" prefix for modules if required -+ func_stripname '' '.la' "$outputname" -+ name=$func_stripname_result -+ eval shared_ext=\"$shrext_cmds\" -+ eval libname=\"$libname_spec\" -+ else -+ func_stripname '' '.la' "$outputname" -+ libname=$func_stripname_result -+ fi -+ ;; -+ esac -+ -+ if test -n "$objs"; then -+ if test "$deplibs_check_method" != pass_all; then -+ func_fatal_error "cannot build libtool library \`$output' from non-libtool objects on this host:$objs" -+ else -+ $ECHO -+ $ECHO "*** Warning: Linking the shared library $output against the non-libtool" -+ $ECHO "*** objects $objs is not portable!" -+ libobjs="$libobjs $objs" -+ fi -+ fi -+ -+ test "$dlself" != no && \ -+ func_warning "\`-dlopen self' is ignored for libtool libraries" -+ -+ set dummy $rpath -+ shift -+ test "$#" -gt 1 && \ -+ func_warning "ignoring multiple \`-rpath's for a libtool library" -+ -+ install_libdir="$1" -+ -+ oldlibs= -+ if test -z "$rpath"; then -+ if test "$build_libtool_libs" = yes; then -+ # Building a libtool convenience library. -+ # Some compilers have problems with a `.al' extension so -+ # convenience libraries should have the same extension an -+ # archive normally would. -+ oldlibs="$output_objdir/$libname.$libext $oldlibs" -+ build_libtool_libs=convenience -+ build_old_libs=yes -+ fi -+ -+ test -n "$vinfo" && \ -+ func_warning "\`-version-info/-version-number' is ignored for convenience libraries" -+ -+ test -n "$release" && \ -+ func_warning "\`-release' is ignored for convenience libraries" -+ else -+ -+ # Parse the version information argument. -+ save_ifs="$IFS"; IFS=':' -+ set dummy $vinfo 0 0 0 -+ shift -+ IFS="$save_ifs" -+ -+ test -n "$7" && \ -+ func_fatal_help "too many parameters to \`-version-info'" -+ -+ # convert absolute version numbers to libtool ages -+ # this retains compatibility with .la files and attempts -+ # to make the code below a bit more comprehensible -+ -+ case $vinfo_number in -+ yes) -+ number_major="$1" -+ number_minor="$2" -+ number_revision="$3" -+ # -+ # There are really only two kinds -- those that -+ # use the current revision as the major version -+ # and those that subtract age and use age as -+ # a minor version. But, then there is irix -+ # which has an extra 1 added just for fun -+ # -+ case $version_type in -+ darwin|linux|osf|windows|none) -+ func_arith $number_major + $number_minor -+ current=$func_arith_result -+ age="$number_minor" -+ revision="$number_revision" -+ ;; -+ freebsd-aout|freebsd-elf|sunos) -+ current="$number_major" -+ revision="$number_minor" -+ age="0" -+ ;; -+ irix|nonstopux) -+ func_arith $number_major + $number_minor -+ current=$func_arith_result -+ age="$number_minor" -+ revision="$number_minor" -+ lt_irix_increment=no -+ ;; -+ esac -+ ;; -+ no) -+ current="$1" -+ revision="$2" -+ age="$3" -+ ;; -+ esac -+ -+ # Check that each of the things are valid numbers. -+ case $current in -+ 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; -+ *) -+ func_error "CURRENT \`$current' must be a nonnegative integer" -+ func_fatal_error "\`$vinfo' is not valid version information" -+ ;; -+ esac -+ -+ case $revision in -+ 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; -+ *) -+ func_error "REVISION \`$revision' must be a nonnegative integer" -+ func_fatal_error "\`$vinfo' is not valid version information" -+ ;; -+ esac -+ -+ case $age in -+ 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; -+ *) -+ func_error "AGE \`$age' must be a nonnegative integer" -+ func_fatal_error "\`$vinfo' is not valid version information" -+ ;; -+ esac -+ -+ if test "$age" -gt "$current"; then -+ func_error "AGE \`$age' is greater than the current interface number \`$current'" -+ func_fatal_error "\`$vinfo' is not valid version information" -+ fi -+ -+ # Calculate the version variables. -+ major= -+ versuffix= -+ verstring= -+ case $version_type in -+ none) ;; -+ -+ darwin) -+ # Like Linux, but with the current version available in -+ # verstring for coding it into the library header -+ func_arith $current - $age -+ major=.$func_arith_result -+ versuffix="$major.$age.$revision" -+ # Darwin ld doesn't like 0 for these options... -+ func_arith $current + 1 -+ minor_current=$func_arith_result -+ xlcverstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision" -+ verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" -+ ;; -+ -+ freebsd-aout) -+ major=".$current" -+ versuffix=".$current.$revision"; -+ ;; -+ -+ freebsd-elf) -+ major=".$current" -+ versuffix=".$current" -+ ;; -+ -+ irix | nonstopux) -+ if test "X$lt_irix_increment" = "Xno"; then -+ func_arith $current - $age -+ else -+ func_arith $current - $age + 1 -+ fi -+ major=$func_arith_result -+ -+ case $version_type in -+ nonstopux) verstring_prefix=nonstopux ;; -+ *) verstring_prefix=sgi ;; -+ esac -+ verstring="$verstring_prefix$major.$revision" -+ -+ # Add in all the interfaces that we are compatible with. -+ loop=$revision -+ while test "$loop" -ne 0; do -+ func_arith $revision - $loop -+ iface=$func_arith_result -+ func_arith $loop - 1 -+ loop=$func_arith_result -+ verstring="$verstring_prefix$major.$iface:$verstring" -+ done -+ -+ # Before this point, $major must not contain `.'. -+ major=.$major -+ versuffix="$major.$revision" -+ ;; -+ -+ linux) -+ func_arith $current - $age -+ major=.$func_arith_result -+ versuffix="$major.$age.$revision" -+ ;; -+ -+ osf) -+ func_arith $current - $age -+ major=.$func_arith_result -+ versuffix=".$current.$age.$revision" -+ verstring="$current.$age.$revision" -+ -+ # Add in all the interfaces that we are compatible with. -+ loop=$age -+ while test "$loop" -ne 0; do -+ func_arith $current - $loop -+ iface=$func_arith_result -+ func_arith $loop - 1 -+ loop=$func_arith_result -+ verstring="$verstring:${iface}.0" -+ done -+ -+ # Make executables depend on our current version. -+ verstring="$verstring:${current}.0" -+ ;; -+ -+ qnx) -+ major=".$current" -+ versuffix=".$current" -+ ;; -+ -+ sunos) -+ major=".$current" -+ versuffix=".$current.$revision" -+ ;; -+ -+ windows) -+ # Use '-' rather than '.', since we only want one -+ # extension on DOS 8.3 filesystems. -+ func_arith $current - $age -+ major=$func_arith_result -+ versuffix="-$major" -+ ;; -+ -+ *) -+ func_fatal_configuration "unknown library version type \`$version_type'" -+ ;; -+ esac -+ -+ # Clear the version info if we defaulted, and they specified a release. -+ if test -z "$vinfo" && test -n "$release"; then -+ major= -+ case $version_type in -+ darwin) -+ # we can't check for "0.0" in archive_cmds due to quoting -+ # problems, so we reset it completely -+ verstring= -+ ;; -+ *) -+ verstring="0.0" -+ ;; -+ esac -+ if test "$need_version" = no; then -+ versuffix= -+ else -+ versuffix=".0.0" -+ fi -+ fi -+ -+ # Remove version info from name if versioning should be avoided -+ if test "$avoid_version" = yes && test "$need_version" = no; then -+ major= -+ versuffix= -+ verstring="" -+ fi -+ -+ # Check to see if the archive will have undefined symbols. -+ if test "$allow_undefined" = yes; then -+ if test "$allow_undefined_flag" = unsupported; then -+ func_warning "undefined symbols not allowed in $host shared libraries" -+ build_libtool_libs=no -+ build_old_libs=yes -+ fi -+ else -+ # Don't allow undefined symbols. -+ allow_undefined_flag="$no_undefined_flag" -+ fi -+ -+ fi -+ -+ func_generate_dlsyms "$libname" "$libname" "yes" -+ libobjs="$libobjs $symfileobj" -+ test "X$libobjs" = "X " && libobjs= -+ -+ if test "$mode" != relink; then -+ # Remove our outputs, but don't remove object files since they -+ # may have been created when compiling PIC objects. -+ removelist= -+ tempremovelist=`$ECHO "$output_objdir/*"` -+ for p in $tempremovelist; do -+ case $p in -+ *.$objext | *.gcno) -+ ;; -+ $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*) -+ if test "X$precious_files_regex" != "X"; then -+ if $ECHO "$p" | $EGREP -e "$precious_files_regex" >/dev/null 2>&1 -+ then -+ continue -+ fi -+ fi -+ removelist="$removelist $p" -+ ;; -+ *) ;; -+ esac -+ done -+ test -n "$removelist" && \ -+ func_show_eval "${RM}r \$removelist" -+ fi -+ -+ # Now set the variables for building old libraries. -+ if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then -+ oldlibs="$oldlibs $output_objdir/$libname.$libext" -+ -+ # Transform .lo files to .o files. -+ oldobjs="$objs "`$ECHO "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP` -+ fi -+ -+ # Eliminate all temporary directories. -+ #for path in $notinst_path; do -+ # lib_search_path=`$ECHO "X$lib_search_path " | $Xsed -e "s% $path % %g"` -+ # deplibs=`$ECHO "X$deplibs " | $Xsed -e "s% -L$path % %g"` -+ # dependency_libs=`$ECHO "X$dependency_libs " | $Xsed -e "s% -L$path % %g"` -+ #done -+ -+ if test -n "$xrpath"; then -+ # If the user specified any rpath flags, then add them. -+ temp_xrpath= -+ for libdir in $xrpath; do -+ temp_xrpath="$temp_xrpath -R$libdir" -+ case "$finalize_rpath " in -+ *" $libdir "*) ;; -+ *) finalize_rpath="$finalize_rpath $libdir" ;; -+ esac -+ done -+ if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then -+ dependency_libs="$temp_xrpath $dependency_libs" -+ fi -+ fi -+ -+ # Make sure dlfiles contains only unique files that won't be dlpreopened -+ old_dlfiles="$dlfiles" -+ dlfiles= -+ for lib in $old_dlfiles; do -+ case " $dlprefiles $dlfiles " in -+ *" $lib "*) ;; -+ *) dlfiles="$dlfiles $lib" ;; -+ esac -+ done -+ -+ # Make sure dlprefiles contains only unique files -+ old_dlprefiles="$dlprefiles" -+ dlprefiles= -+ for lib in $old_dlprefiles; do -+ case "$dlprefiles " in -+ *" $lib "*) ;; -+ *) dlprefiles="$dlprefiles $lib" ;; -+ esac -+ done -+ -+ if test "$build_libtool_libs" = yes; then -+ if test -n "$rpath"; then -+ case $host in -+ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc*) -+ # these systems don't actually have a c library (as such)! -+ ;; -+ *-*-rhapsody* | *-*-darwin1.[012]) -+ # Rhapsody C library is in the System framework -+ deplibs="$deplibs System.ltframework" -+ ;; -+ *-*-netbsd*) -+ # Don't link with libc until the a.out ld.so is fixed. -+ ;; -+ *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) -+ # Do not include libc due to us having libc/libc_r. -+ ;; -+ *-*-sco3.2v5* | *-*-sco5v6*) -+ # Causes problems with __ctype -+ ;; -+ *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) -+ # Compiler inserts libc in the correct place for threads to work -+ ;; -+ *) -+ # Add libc to deplibs on all other systems if necessary. -+ if test "$build_libtool_need_lc" = "yes"; then -+ deplibs="$deplibs -lc" -+ fi -+ ;; -+ esac -+ fi -+ -+ # Transform deplibs into only deplibs that can be linked in shared. -+ name_save=$name -+ libname_save=$libname -+ release_save=$release -+ versuffix_save=$versuffix -+ major_save=$major -+ # I'm not sure if I'm treating the release correctly. I think -+ # release should show up in the -l (ie -lgmp5) so we don't want to -+ # add it in twice. Is that correct? -+ release="" -+ versuffix="" -+ major="" -+ newdeplibs= -+ droppeddeps=no -+ case $deplibs_check_method in -+ pass_all) -+ # Don't check for shared/static. Everything works. -+ # This might be a little naive. We might want to check -+ # whether the library exists or not. But this is on -+ # osf3 & osf4 and I'm not really sure... Just -+ # implementing what was already the behavior. -+ newdeplibs=$deplibs -+ ;; -+ test_compile) -+ # This code stresses the "libraries are programs" paradigm to its -+ # limits. Maybe even breaks it. We compile a program, linking it -+ # against the deplibs as a proxy for the library. Then we can check -+ # whether they linked in statically or dynamically with ldd. -+ $opt_dry_run || $RM conftest.c -+ cat > conftest.c </dev/null` -+ for potent_lib in $potential_libs; do -+ # Follow soft links. -+ if ls -lLd "$potent_lib" 2>/dev/null | -+ $GREP " -> " >/dev/null; then -+ continue -+ fi -+ # The statement above tries to avoid entering an -+ # endless loop below, in case of cyclic links. -+ # We might still enter an endless loop, since a link -+ # loop can be closed while we follow links, -+ # but so what? -+ potlib="$potent_lib" -+ while test -h "$potlib" 2>/dev/null; do -+ potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'` -+ case $potliblink in -+ [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";; -+ *) potlib=`$ECHO "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";; -+ esac -+ done -+ if eval $file_magic_cmd \"\$potlib\" 2>/dev/null | -+ $SED -e 10q | -+ $EGREP "$file_magic_regex" > /dev/null; then -+ newdeplibs="$newdeplibs $a_deplib" -+ a_deplib="" -+ break 2 -+ fi -+ done -+ done -+ fi -+ if test -n "$a_deplib" ; then -+ droppeddeps=yes -+ $ECHO -+ $ECHO "*** Warning: linker path does not have real file for library $a_deplib." -+ $ECHO "*** I have the capability to make that library automatically link in when" -+ $ECHO "*** you link to this library. But I can only do this if you have a" -+ $ECHO "*** shared version of the library, which you do not appear to have" -+ $ECHO "*** because I did check the linker path looking for a file starting" -+ if test -z "$potlib" ; then -+ $ECHO "*** with $libname but no candidates were found. (...for file magic test)" -+ else -+ $ECHO "*** with $libname and none of the candidates passed a file format test" -+ $ECHO "*** using a file magic. Last file checked: $potlib" -+ fi -+ fi -+ ;; -+ *) -+ # Add a -L argument. -+ newdeplibs="$newdeplibs $a_deplib" -+ ;; -+ esac -+ done # Gone through all deplibs. -+ ;; -+ match_pattern*) -+ set dummy $deplibs_check_method; shift -+ match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` -+ for a_deplib in $deplibs; do -+ case $a_deplib in -+ -l*) -+ func_stripname -l '' "$a_deplib" -+ name=$func_stripname_result -+ if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then -+ case " $predeps $postdeps " in -+ *" $a_deplib "*) -+ newdeplibs="$newdeplibs $a_deplib" -+ a_deplib="" -+ ;; -+ esac -+ fi -+ if test -n "$a_deplib" ; then -+ libname=`eval "\\$ECHO \"$libname_spec\""` -+ for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do -+ potential_libs=`ls $i/$libname[.-]* 2>/dev/null` -+ for potent_lib in $potential_libs; do -+ potlib="$potent_lib" # see symlink-check above in file_magic test -+ if eval "\$ECHO \"X$potent_lib\"" 2>/dev/null | $Xsed -e 10q | \ -+ $EGREP "$match_pattern_regex" > /dev/null; then -+ newdeplibs="$newdeplibs $a_deplib" -+ a_deplib="" -+ break 2 -+ fi -+ done -+ done -+ fi -+ if test -n "$a_deplib" ; then -+ droppeddeps=yes -+ $ECHO -+ $ECHO "*** Warning: linker path does not have real file for library $a_deplib." -+ $ECHO "*** I have the capability to make that library automatically link in when" -+ $ECHO "*** you link to this library. But I can only do this if you have a" -+ $ECHO "*** shared version of the library, which you do not appear to have" -+ $ECHO "*** because I did check the linker path looking for a file starting" -+ if test -z "$potlib" ; then -+ $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)" -+ else -+ $ECHO "*** with $libname and none of the candidates passed a file format test" -+ $ECHO "*** using a regex pattern. Last file checked: $potlib" -+ fi -+ fi -+ ;; -+ *) -+ # Add a -L argument. -+ newdeplibs="$newdeplibs $a_deplib" -+ ;; -+ esac -+ done # Gone through all deplibs. -+ ;; -+ none | unknown | *) -+ newdeplibs="" -+ tmp_deplibs=`$ECHO "X $deplibs" | $Xsed \ -+ -e 's/ -lc$//' -e 's/ -[LR][^ ]*//g'` -+ if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then -+ for i in $predeps $postdeps ; do -+ # can't use Xsed below, because $i might contain '/' -+ tmp_deplibs=`$ECHO "X $tmp_deplibs" | $Xsed -e "s,$i,,"` -+ done -+ fi -+ if $ECHO "X $tmp_deplibs" | $Xsed -e 's/[ ]//g' | -+ $GREP . >/dev/null; then -+ $ECHO -+ if test "X$deplibs_check_method" = "Xnone"; then -+ $ECHO "*** Warning: inter-library dependencies are not supported in this platform." -+ else -+ $ECHO "*** Warning: inter-library dependencies are not known to be supported." -+ fi -+ $ECHO "*** All declared inter-library dependencies are being dropped." -+ droppeddeps=yes -+ fi -+ ;; -+ esac -+ versuffix=$versuffix_save -+ major=$major_save -+ release=$release_save -+ libname=$libname_save -+ name=$name_save - -- # If there was a directory component, then change thisdir. -- if test \"x\$destdir\" != \"x\$file\"; then -- case \"\$destdir\" in -- [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;; -- *) thisdir=\"\$thisdir/\$destdir\" ;; -+ case $host in -+ *-*-rhapsody* | *-*-darwin1.[012]) -+ # On Rhapsody replace the C library with the System framework -+ newdeplibs=`$ECHO "X $newdeplibs" | $Xsed -e 's/ -lc / System.ltframework /'` -+ ;; -+ esac -+ -+ if test "$droppeddeps" = yes; then -+ if test "$module" = yes; then -+ $ECHO -+ $ECHO "*** Warning: libtool could not satisfy all declared inter-library" -+ $ECHO "*** dependencies of module $libname. Therefore, libtool will create" -+ $ECHO "*** a static module, that should work as long as the dlopening" -+ $ECHO "*** application is linked with the -dlopen flag." -+ if test -z "$global_symbol_pipe"; then -+ $ECHO -+ $ECHO "*** However, this would only work if libtool was able to extract symbol" -+ $ECHO "*** lists from a program, using \`nm' or equivalent, but libtool could" -+ $ECHO "*** not find such a program. So, this module is probably useless." -+ $ECHO "*** \`nm' from GNU binutils and a full rebuild may help." -+ fi -+ if test "$build_old_libs" = no; then -+ oldlibs="$output_objdir/$libname.$libext" -+ build_libtool_libs=module -+ build_old_libs=yes -+ else -+ build_libtool_libs=no -+ fi -+ else -+ $ECHO "*** The inter-library dependencies that have been dropped here will be" -+ $ECHO "*** automatically added whenever a program is linked with this library" -+ $ECHO "*** or is declared to -dlopen it." -+ -+ if test "$allow_undefined" = no; then -+ $ECHO -+ $ECHO "*** Since this library must not contain undefined symbols," -+ $ECHO "*** because either the platform does not support them or" -+ $ECHO "*** it was explicitly requested with -no-undefined," -+ $ECHO "*** libtool will only create a static version of it." -+ if test "$build_old_libs" = no; then -+ oldlibs="$output_objdir/$libname.$libext" -+ build_libtool_libs=module -+ build_old_libs=yes -+ else -+ build_libtool_libs=no -+ fi -+ fi -+ fi -+ fi -+ # Done checking deplibs! -+ deplibs=$newdeplibs -+ fi -+ # Time to change all our "foo.ltframework" stuff back to "-framework foo" -+ case $host in -+ *-*-darwin*) -+ newdeplibs=`$ECHO "X $newdeplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` -+ new_inherited_linker_flags=`$ECHO "X $new_inherited_linker_flags" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` -+ deplibs=`$ECHO "X $deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` -+ ;; - esac -- fi - -- file=\`\$echo \"X\$file\" | \$Xsed -e 's%^.*/%%'\` -- file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\` -- done -+ # move library search paths that coincide with paths to not yet -+ # installed libraries to the beginning of the library search list -+ new_libs= -+ for path in $notinst_path; do -+ case " $new_libs " in -+ *" -L$path/$objdir "*) ;; -+ *) -+ case " $deplibs " in -+ *" -L$path/$objdir "*) -+ new_libs="$new_libs -L$path/$objdir" ;; -+ esac -+ ;; -+ esac -+ done -+ for deplib in $deplibs; do -+ case $deplib in -+ -L*) -+ case " $new_libs " in -+ *" $deplib "*) ;; -+ *) new_libs="$new_libs $deplib" ;; -+ esac -+ ;; -+ *) new_libs="$new_libs $deplib" ;; -+ esac -+ done -+ deplibs="$new_libs" - -- # Try to get the absolute directory name. -- absdir=\`cd \"\$thisdir\" && pwd\` -- test -n \"\$absdir\" && thisdir=\"\$absdir\" --" -+ # All the library-specific variables (install_libdir is set above). -+ library_names= -+ old_library= -+ dlname= -+ -+ # Test again, we may have decided not to build it any more -+ if test "$build_libtool_libs" = yes; then -+ if test "$hardcode_into_libs" = yes; then -+ # Hardcode the library paths -+ hardcode_libdirs= -+ dep_rpath= -+ rpath="$finalize_rpath" -+ test "$mode" != relink && rpath="$compile_rpath$rpath" -+ for libdir in $rpath; do -+ if test -n "$hardcode_libdir_flag_spec"; then -+ if test -n "$hardcode_libdir_separator"; then -+ if test -z "$hardcode_libdirs"; then -+ hardcode_libdirs="$libdir" -+ else -+ # Just accumulate the unique libdirs. -+ case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in -+ *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) -+ ;; -+ *) -+ hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" -+ ;; -+ esac -+ fi -+ else -+ eval flag=\"$hardcode_libdir_flag_spec\" -+ dep_rpath="$dep_rpath $flag" -+ fi -+ elif test -n "$runpath_var"; then -+ case "$perm_rpath " in -+ *" $libdir "*) ;; -+ *) perm_rpath="$perm_rpath $libdir" ;; -+ esac -+ fi -+ done -+ # Substitute the hardcoded libdirs into the rpath. -+ if test -n "$hardcode_libdir_separator" && -+ test -n "$hardcode_libdirs"; then -+ libdir="$hardcode_libdirs" -+ if test -n "$hardcode_libdir_flag_spec_ld"; then -+ eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\" -+ else -+ eval dep_rpath=\"$hardcode_libdir_flag_spec\" -+ fi -+ fi -+ if test -n "$runpath_var" && test -n "$perm_rpath"; then -+ # We should set the runpath_var. -+ rpath= -+ for dir in $perm_rpath; do -+ rpath="$rpath$dir:" -+ done -+ eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var" -+ fi -+ test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs" -+ fi - -- if test "$fast_install" = yes; then -- $echo >> $output "\ -- program=lt-'$outputname'$exeext -- progdir=\"\$thisdir/$objdir\" -+ shlibpath="$finalize_shlibpath" -+ test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath" -+ if test -n "$shlibpath"; then -+ eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var" -+ fi - -- if test ! -f \"\$progdir/\$program\" || \\ -- { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\ -- test \"X\$file\" != \"X\$progdir/\$program\"; }; then -+ # Get the real and link names of the library. -+ eval shared_ext=\"$shrext_cmds\" -+ eval library_names=\"$library_names_spec\" -+ set dummy $library_names -+ shift -+ realname="$1" -+ shift - -- file=\"\$\$-\$program\" -+ if test -n "$soname_spec"; then -+ eval soname=\"$soname_spec\" -+ else -+ soname="$realname" -+ fi -+ if test -z "$dlname"; then -+ dlname=$soname -+ fi - -- if test ! -d \"\$progdir\"; then -- $mkdir \"\$progdir\" -- else -- $rm \"\$progdir/\$file\" -- fi" -+ lib="$output_objdir/$realname" -+ linknames= -+ for link -+ do -+ linknames="$linknames $link" -+ done - -- $echo >> $output "\ -+ # Use standard objects if they are pic -+ test -z "$pic_flag" && libobjs=`$ECHO "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` -+ test "X$libobjs" = "X " && libobjs= - -- # relink executable if necessary -- if test -n \"\$relink_command\"; then -- if relink_command_output=\`eval \$relink_command 2>&1\`; then : -- else -- $echo \"\$relink_command_output\" >&2 -- $rm \"\$progdir/\$file\" -- exit $EXIT_FAILURE -- fi -- fi -+ delfiles= -+ if test -n "$export_symbols" && test -n "$include_expsyms"; then -+ $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp" -+ export_symbols="$output_objdir/$libname.uexp" -+ delfiles="$delfiles $export_symbols" -+ fi -+ -+ orig_export_symbols= -+ case $host_os in -+ cygwin* | mingw* | cegcc*) -+ if test -n "$export_symbols" && test -z "$export_symbols_regex"; then -+ # exporting using user supplied symfile -+ if test "x`$SED 1q $export_symbols`" != xEXPORTS; then -+ # and it's NOT already a .def file. Must figure out -+ # which of the given symbols are data symbols and tag -+ # them as such. So, trigger use of export_symbols_cmds. -+ # export_symbols gets reassigned inside the "prepare -+ # the list of exported symbols" if statement, so the -+ # include_expsyms logic still works. -+ orig_export_symbols="$export_symbols" -+ export_symbols= -+ always_export_symbols=yes -+ fi -+ fi -+ ;; -+ esac - -- $mv \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null || -- { $rm \"\$progdir/\$program\"; -- $mv \"\$progdir/\$file\" \"\$progdir/\$program\"; } -- $rm \"\$progdir/\$file\" -- fi" -- else -- $echo >> $output "\ -- program='$outputname' -- progdir=\"\$thisdir/$objdir\" --" -+ # Prepare the list of exported symbols -+ if test -z "$export_symbols"; then -+ if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then -+ func_verbose "generating symbol list for \`$libname.la'" -+ export_symbols="$output_objdir/$libname.exp" -+ $opt_dry_run || $RM $export_symbols -+ cmds=$export_symbols_cmds -+ save_ifs="$IFS"; IFS='~' -+ for cmd in $cmds; do -+ IFS="$save_ifs" -+ eval cmd=\"$cmd\" -+ func_len " $cmd" -+ len=$func_len_result -+ if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then -+ func_show_eval "$cmd" 'exit $?' -+ skipped_export=false -+ else -+ # The command line is too long to execute in one step. -+ func_verbose "using reloadable object file for export list..." -+ skipped_export=: -+ # Break out early, otherwise skipped_export may be -+ # set to false by a later but shorter cmd. -+ break -+ fi -+ done -+ IFS="$save_ifs" -+ if test -n "$export_symbols_regex" && test "X$skipped_export" != "X:"; then -+ func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' -+ func_show_eval '$MV "${export_symbols}T" "$export_symbols"' -+ fi -+ fi - fi - -- $echo >> $output "\ -- -- if test -f \"\$progdir/\$program\"; then" -+ if test -n "$export_symbols" && test -n "$include_expsyms"; then -+ tmp_export_symbols="$export_symbols" -+ test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" -+ $opt_dry_run || eval '$ECHO "X$include_expsyms" | $Xsed | $SP2NL >> "$tmp_export_symbols"' -+ fi -+ -+ if test "X$skipped_export" != "X:" && test -n "$orig_export_symbols"; then -+ # The given exports_symbols file has to be filtered, so filter it. -+ func_verbose "filter symbol list for \`$libname.la' to tag DATA exports" -+ # FIXME: $output_objdir/$libname.filter potentially contains lots of -+ # 's' commands which not all seds can handle. GNU sed should be fine -+ # though. Also, the filter scales superlinearly with the number of -+ # global variables. join(1) would be nice here, but unfortunately -+ # isn't a blessed tool. -+ $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter -+ delfiles="$delfiles $export_symbols $output_objdir/$libname.filter" -+ export_symbols=$output_objdir/$libname.def -+ $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols -+ fi - -- # Export our shlibpath_var if we have one. -- if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then -- $echo >> $output "\ -- # Add our own library path to $shlibpath_var -- $shlibpath_var=\"$temp_rpath\$$shlibpath_var\" -+ tmp_deplibs= -+ for test_deplib in $deplibs; do -+ case " $convenience " in -+ *" $test_deplib "*) ;; -+ *) -+ tmp_deplibs="$tmp_deplibs $test_deplib" -+ ;; -+ esac -+ done -+ deplibs="$tmp_deplibs" - -- # Some systems cannot cope with colon-terminated $shlibpath_var -- # The second colon is a workaround for a bug in BeOS R4 sed -- $shlibpath_var=\`\$echo \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\` -+ if test -n "$convenience"; then -+ if test -n "$whole_archive_flag_spec" && -+ test "$compiler_needs_object" = yes && -+ test -z "$libobjs"; then -+ # extract the archives, so we have objects to list. -+ # TODO: could optimize this to just extract one archive. -+ whole_archive_flag_spec= -+ fi -+ if test -n "$whole_archive_flag_spec"; then -+ save_libobjs=$libobjs -+ eval libobjs=\"\$libobjs $whole_archive_flag_spec\" -+ test "X$libobjs" = "X " && libobjs= -+ else -+ gentop="$output_objdir/${outputname}x" -+ generated="$generated $gentop" - -- export $shlibpath_var --" -+ func_extract_archives $gentop $convenience -+ libobjs="$libobjs $func_extract_archives_result" -+ test "X$libobjs" = "X " && libobjs= -+ fi - fi - -- # fixup the dll searchpath if we need to. -- if test -n "$dllsearchpath"; then -- $echo >> $output "\ -- # Add the dll search path components to the executable PATH -- PATH=$dllsearchpath:\$PATH --" -+ if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then -+ eval flag=\"$thread_safe_flag_spec\" -+ linker_flags="$linker_flags $flag" - fi - -- $echo >> $output "\ -- if test \"\$libtool_execute_magic\" != \"$magic\"; then -- # Run the actual program with our arguments. --" -- case $host in -- # Backslashes separate directories on plain windows -- *-*-mingw | *-*-os2*) -- $echo >> $output "\ -- exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} --" -- ;; -- -- *) -- $echo >> $output "\ -- exec \"\$progdir/\$program\" \${1+\"\$@\"} --" -- ;; -- esac -- $echo >> $output "\ -- \$echo \"\$0: cannot exec \$program \$*\" -- exit $EXIT_FAILURE -- fi -- else -- # The program doesn't exist. -- \$echo \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2 -- \$echo \"This script is just a wrapper for \$program.\" 1>&2 -- $echo \"See the $PACKAGE documentation for more information.\" 1>&2 -- exit $EXIT_FAILURE -- fi --fi\ --" -- chmod +x $output -- fi -- exit $EXIT_SUCCESS -- ;; -- esac -- -- # See if we need to build an old-fashioned archive. -- for oldlib in $oldlibs; do -+ # Make a backup of the uninstalled library when relinking -+ if test "$mode" = relink; then -+ $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $? -+ fi - -- if test "$build_libtool_libs" = convenience; then -- oldobjs="$libobjs_save" -- addlibs="$convenience" -- build_libtool_libs=no -- else -- if test "$build_libtool_libs" = module; then -- oldobjs="$libobjs_save" -- build_libtool_libs=no -+ # Do each of the archive commands. -+ if test "$module" = yes && test -n "$module_cmds" ; then -+ if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then -+ eval test_cmds=\"$module_expsym_cmds\" -+ cmds=$module_expsym_cmds -+ else -+ eval test_cmds=\"$module_cmds\" -+ cmds=$module_cmds -+ fi - else -- oldobjs="$old_deplibs $non_pic_objects" -+ if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then -+ eval test_cmds=\"$archive_expsym_cmds\" -+ cmds=$archive_expsym_cmds -+ else -+ eval test_cmds=\"$archive_cmds\" -+ cmds=$archive_cmds -+ fi - fi -- addlibs="$old_convenience" -- fi - -- if test -n "$addlibs"; then -- gentop="$output_objdir/${outputname}x" -- generated="$generated $gentop" -+ if test "X$skipped_export" != "X:" && -+ func_len " $test_cmds" && -+ len=$func_len_result && -+ test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then -+ : -+ else -+ # The command line is too long to link in one step, link piecewise -+ # or, if using GNU ld and skipped_export is not :, use a linker -+ # script. - -- func_extract_archives $gentop $addlibs -- oldobjs="$oldobjs $func_extract_archives_result" -- fi -+ # Save the value of $output and $libobjs because we want to -+ # use them later. If we have whole_archive_flag_spec, we -+ # want to use save_libobjs as it was before -+ # whole_archive_flag_spec was expanded, because we can't -+ # assume the linker understands whole_archive_flag_spec. -+ # This may have to be revisited, in case too many -+ # convenience libraries get linked in and end up exceeding -+ # the spec. -+ if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then -+ save_libobjs=$libobjs -+ fi -+ save_output=$output -+ output_la=`$ECHO "X$output" | $Xsed -e "$basename"` - -- # Do each command in the archive commands. -- if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then -- cmds=$old_archive_from_new_cmds -- else -- # POSIX demands no paths to be encoded in archives. We have -- # to avoid creating archives with duplicate basenames if we -- # might have to extract them afterwards, e.g., when creating a -- # static archive out of a convenience library, or when linking -- # the entirety of a libtool archive into another (currently -- # not supported by libtool). -- if (for obj in $oldobjs -+ # Clear the reloadable object creation command queue and -+ # initialize k to one. -+ test_cmds= -+ concat_cmds= -+ objlist= -+ last_robj= -+ k=1 -+ -+ if test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "$with_gnu_ld" = yes; then -+ output=${output_objdir}/${output_la}.lnkscript -+ func_verbose "creating GNU ld script: $output" -+ $ECHO 'INPUT (' > $output -+ for obj in $save_libobjs - do -- $echo "X$obj" | $Xsed -e 's%^.*/%%' -- done | sort | sort -uc >/dev/null 2>&1); then -- : -- else -- $echo "copying selected object files to avoid basename conflicts..." -+ $ECHO "$obj" >> $output -+ done -+ $ECHO ')' >> $output -+ delfiles="$delfiles $output" -+ elif test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "X$file_list_spec" != X; then -+ output=${output_objdir}/${output_la}.lnk -+ func_verbose "creating linker input file list: $output" -+ : > $output -+ set x $save_libobjs -+ shift -+ firstobj= -+ if test "$compiler_needs_object" = yes; then -+ firstobj="$1 " -+ shift -+ fi -+ for obj -+ do -+ $ECHO "$obj" >> $output -+ done -+ delfiles="$delfiles $output" -+ output=$firstobj\"$file_list_spec$output\" -+ else -+ if test -n "$save_libobjs"; then -+ func_verbose "creating reloadable object files..." -+ output=$output_objdir/$output_la-${k}.$objext -+ eval test_cmds=\"$reload_cmds\" -+ func_len " $test_cmds" -+ len0=$func_len_result -+ len=$len0 -+ -+ # Loop over the list of objects to be linked. -+ for obj in $save_libobjs -+ do -+ func_len " $obj" -+ func_arith $len + $func_len_result -+ len=$func_arith_result -+ if test "X$objlist" = X || -+ test "$len" -lt "$max_cmd_len"; then -+ func_append objlist " $obj" -+ else -+ # The command $test_cmds is almost too long, add a -+ # command to the queue. -+ if test "$k" -eq 1 ; then -+ # The first file doesn't have a previous command to add. -+ eval concat_cmds=\"$reload_cmds $objlist $last_robj\" -+ else -+ # All subsequent reloadable object files will link in -+ # the last one created. -+ eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj~\$RM $last_robj\" -+ fi -+ last_robj=$output_objdir/$output_la-${k}.$objext -+ func_arith $k + 1 -+ k=$func_arith_result -+ output=$output_objdir/$output_la-${k}.$objext -+ objlist=$obj -+ func_len " $last_robj" -+ func_arith $len0 + $func_len_result -+ len=$func_arith_result -+ fi -+ done -+ # Handle the remaining objects by creating one last -+ # reloadable object file. All subsequent reloadable object -+ # files will link in the last one created. -+ test -z "$concat_cmds" || concat_cmds=$concat_cmds~ -+ eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\" -+ if test -n "$last_robj"; then -+ eval concat_cmds=\"\${concat_cmds}~\$RM $last_robj\" -+ fi -+ delfiles="$delfiles $output" - -- if test -z "$gentop"; then -- gentop="$output_objdir/${outputname}x" -- generated="$generated $gentop" -+ else -+ output= -+ fi -+ -+ if ${skipped_export-false}; then -+ func_verbose "generating symbol list for \`$libname.la'" -+ export_symbols="$output_objdir/$libname.exp" -+ $opt_dry_run || $RM $export_symbols -+ libobjs=$output -+ # Append the command to create the export file. -+ test -z "$concat_cmds" || concat_cmds=$concat_cmds~ -+ eval concat_cmds=\"\$concat_cmds$export_symbols_cmds\" -+ if test -n "$last_robj"; then -+ eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\" -+ fi -+ fi -+ -+ test -n "$save_libobjs" && -+ func_verbose "creating a temporary reloadable object file: $output" -+ -+ # Loop through the commands generated above and execute them. -+ save_ifs="$IFS"; IFS='~' -+ for cmd in $concat_cmds; do -+ IFS="$save_ifs" -+ $opt_silent || { -+ func_quote_for_expand "$cmd" -+ eval "func_echo $func_quote_for_expand_result" -+ } -+ $opt_dry_run || eval "$cmd" || { -+ lt_exit=$? -+ -+ # Restore the uninstalled library and exit -+ if test "$mode" = relink; then -+ ( cd "$output_objdir" && \ -+ $RM "${realname}T" && \ -+ $MV "${realname}U" "$realname" ) -+ fi -+ -+ exit $lt_exit -+ } -+ done -+ IFS="$save_ifs" - -- $show "${rm}r $gentop" -- $run ${rm}r "$gentop" -- $show "$mkdir $gentop" -- $run $mkdir "$gentop" -- exit_status=$? -- if test "$exit_status" -ne 0 && test ! -d "$gentop"; then -- exit $exit_status -+ if test -n "$export_symbols_regex" && ${skipped_export-false}; then -+ func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' -+ func_show_eval '$MV "${export_symbols}T" "$export_symbols"' - fi - fi - -- save_oldobjs=$oldobjs -- oldobjs= -- counter=1 -- for obj in $save_oldobjs -- do -- objbase=`$echo "X$obj" | $Xsed -e 's%^.*/%%'` -- case " $oldobjs " in -- " ") oldobjs=$obj ;; -- *[\ /]"$objbase "*) -- while :; do -- # Make sure we don't pick an alternate name that also -- # overlaps. -- newobj=lt$counter-$objbase -- counter=`expr $counter + 1` -- case " $oldobjs " in -- *[\ /]"$newobj "*) ;; -- *) if test ! -f "$gentop/$newobj"; then break; fi ;; -- esac -- done -- $show "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj" -- $run ln "$obj" "$gentop/$newobj" || -- $run cp "$obj" "$gentop/$newobj" -- oldobjs="$oldobjs $gentop/$newobj" -- ;; -- *) oldobjs="$oldobjs $obj" ;; -- esac -- done -- fi -+ if ${skipped_export-false}; then -+ if test -n "$export_symbols" && test -n "$include_expsyms"; then -+ tmp_export_symbols="$export_symbols" -+ test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" -+ $opt_dry_run || eval '$ECHO "X$include_expsyms" | $Xsed | $SP2NL >> "$tmp_export_symbols"' -+ fi -+ -+ if test -n "$orig_export_symbols"; then -+ # The given exports_symbols file has to be filtered, so filter it. -+ func_verbose "filter symbol list for \`$libname.la' to tag DATA exports" -+ # FIXME: $output_objdir/$libname.filter potentially contains lots of -+ # 's' commands which not all seds can handle. GNU sed should be fine -+ # though. Also, the filter scales superlinearly with the number of -+ # global variables. join(1) would be nice here, but unfortunately -+ # isn't a blessed tool. -+ $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter -+ delfiles="$delfiles $export_symbols $output_objdir/$libname.filter" -+ export_symbols=$output_objdir/$libname.def -+ $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols -+ fi -+ fi - -- eval cmds=\"$old_archive_cmds\" -+ libobjs=$output -+ # Restore the value of output. -+ output=$save_output - -- if len=`expr "X$cmds" : ".*"` && -- test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then -- cmds=$old_archive_cmds -- else -- # the command line is too long to link in one step, link in parts -- $echo "using piecewise archive linking..." -- save_RANLIB=$RANLIB -- RANLIB=: -- objlist= -- concat_cmds= -- save_oldobjs=$oldobjs -+ if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then -+ eval libobjs=\"\$libobjs $whole_archive_flag_spec\" -+ test "X$libobjs" = "X " && libobjs= -+ fi -+ # Expand the library linking commands again to reset the -+ # value of $libobjs for piecewise linking. - -- # Is there a better way of finding the last object in the list? -- for obj in $save_oldobjs -- do -- last_oldobj=$obj -- done -- for obj in $save_oldobjs -- do -- oldobjs="$objlist $obj" -- objlist="$objlist $obj" -- eval test_cmds=\"$old_archive_cmds\" -- if len=`expr "X$test_cmds" : ".*" 2>/dev/null` && -- test "$len" -le "$max_cmd_len"; then -- : -+ # Do each of the archive commands. -+ if test "$module" = yes && test -n "$module_cmds" ; then -+ if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then -+ cmds=$module_expsym_cmds - else -- # the above command should be used before it gets too long -- oldobjs=$objlist -- if test "$obj" = "$last_oldobj" ; then -- RANLIB=$save_RANLIB -- fi -- test -z "$concat_cmds" || concat_cmds=$concat_cmds~ -- eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\" -- objlist= -+ cmds=$module_cmds - fi -- done -- RANLIB=$save_RANLIB -- oldobjs=$objlist -- if test "X$oldobjs" = "X" ; then -- eval cmds=\"\$concat_cmds\" - else -- eval cmds=\"\$concat_cmds~\$old_archive_cmds\" -+ if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then -+ cmds=$archive_expsym_cmds -+ else -+ cmds=$archive_cmds -+ fi - fi - fi -- fi -- save_ifs="$IFS"; IFS='~' -- for cmd in $cmds; do -- eval cmd=\"$cmd\" -- IFS="$save_ifs" -- $show "$cmd" -- $run eval "$cmd" || exit $? -- done -- IFS="$save_ifs" -- done - -- if test -n "$generated"; then -- $show "${rm}r$generated" -- $run ${rm}r$generated -- fi -+ if test -n "$delfiles"; then -+ # Append the command to remove temporary files to $cmds. -+ eval cmds=\"\$cmds~\$RM $delfiles\" -+ fi - -- # Now create the libtool archive. -- case $output in -- *.la) -- old_library= -- test "$build_old_libs" = yes && old_library="$libname.$libext" -- $show "creating $output" -+ # Add any objects from preloaded convenience libraries -+ if test -n "$dlprefiles"; then -+ gentop="$output_objdir/${outputname}x" -+ generated="$generated $gentop" - -- # Preserve any variables that may affect compiler behavior -- for var in $variables_saved_for_relink; do -- if eval test -z \"\${$var+set}\"; then -- relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command" -- elif eval var_value=\$$var; test -z "$var_value"; then -- relink_command="$var=; export $var; $relink_command" -- else -- var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"` -- relink_command="$var=\"$var_value\"; export $var; $relink_command" -+ func_extract_archives $gentop $dlprefiles -+ libobjs="$libobjs $func_extract_archives_result" -+ test "X$libobjs" = "X " && libobjs= - fi -- done -- # Quote the link command for shipping. -- relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" -- relink_command=`$echo "X$relink_command" | $SP2NL | $Xsed -e "$sed_quote_subst" | $NL2SP` -- if test "$hardcode_automatic" = yes ; then -- relink_command= -- fi - -+ save_ifs="$IFS"; IFS='~' -+ for cmd in $cmds; do -+ IFS="$save_ifs" -+ eval cmd=\"$cmd\" -+ $opt_silent || { -+ func_quote_for_expand "$cmd" -+ eval "func_echo $func_quote_for_expand_result" -+ } -+ $opt_dry_run || eval "$cmd" || { -+ lt_exit=$? - -- # Only create the output if not a dry run. -- if test -z "$run"; then -- for installed in no yes; do -- if test "$installed" = yes; then -- if test -z "$install_libdir"; then -- break -+ # Restore the uninstalled library and exit -+ if test "$mode" = relink; then -+ ( cd "$output_objdir" && \ -+ $RM "${realname}T" && \ -+ $MV "${realname}U" "$realname" ) - fi -- output="$output_objdir/$outputname"i -- # Replace all uninstalled libtool libraries with the installed ones -- newdependency_libs= -- for deplib in $dependency_libs; do -- case $deplib in -- *.la) -- name=`$echo "X$deplib" | $Xsed -e 's%^.*/%%'` -- eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` -- if test -z "$libdir"; then -- $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2 -- exit $EXIT_FAILURE -- fi -- newdependency_libs="$newdependency_libs $libdir/$name" -- ;; -- *) newdependency_libs="$newdependency_libs $deplib" ;; -- esac -- done -- dependency_libs="$newdependency_libs" -- newdlfiles= -- for lib in $dlfiles; do -- name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` -- eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` -- if test -z "$libdir"; then -- $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 -- exit $EXIT_FAILURE -- fi -- newdlfiles="$newdlfiles $libdir/$name" -- done -- dlfiles="$newdlfiles" -- newdlprefiles= -- for lib in $dlprefiles; do -- name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` -- eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` -- if test -z "$libdir"; then -- $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 -- exit $EXIT_FAILURE -- fi -- newdlprefiles="$newdlprefiles $libdir/$name" -- done -- dlprefiles="$newdlprefiles" -- else -- newdlfiles= -- for lib in $dlfiles; do -- case $lib in -- [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; -- *) abs=`pwd`"/$lib" ;; -- esac -- newdlfiles="$newdlfiles $abs" -- done -- dlfiles="$newdlfiles" -- newdlprefiles= -- for lib in $dlprefiles; do -- case $lib in -- [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; -- *) abs=`pwd`"/$lib" ;; -- esac -- newdlprefiles="$newdlprefiles $abs" -- done -- dlprefiles="$newdlprefiles" -- fi -- $rm $output -- # place dlname in correct position for cygwin -- tdlname=$dlname -- case $host,$output,$installed,$module,$dlname in -- *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;; -- esac -- $echo > $output "\ --# $outputname - a libtool library file --# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP --# --# Please DO NOT delete this file! --# It is necessary for linking the library. - --# The name that we can dlopen(3). --dlname='$tdlname' -+ exit $lt_exit -+ } -+ done -+ IFS="$save_ifs" - --# Names of this library. --library_names='$library_names' -+ # Restore the uninstalled library and exit -+ if test "$mode" = relink; then -+ $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $? - --# The name of the static archive. --old_library='$old_library' -+ if test -n "$convenience"; then -+ if test -z "$whole_archive_flag_spec"; then -+ func_show_eval '${RM}r "$gentop"' -+ fi -+ fi - --# Libraries that this one depends upon. --dependency_libs='$dependency_libs' -+ exit $EXIT_SUCCESS -+ fi - --# Version information for $libname. --current=$current --age=$age --revision=$revision -+ # Create links to the real library. -+ for linkname in $linknames; do -+ if test "$realname" != "$linkname"; then -+ func_show_eval '(cd "$output_objdir" && $RM "$linkname" && $LN_S "$realname" "$linkname")' 'exit $?' -+ fi -+ done - --# Is this an already installed library? --installed=$installed -+ # If -module or -export-dynamic was specified, set the dlname. -+ if test "$module" = yes || test "$export_dynamic" = yes; then -+ # On all known operating systems, these are identical. -+ dlname="$soname" -+ fi -+ fi -+ ;; - --# Should we warn about portability when linking against -modules? --shouldnotlink=$module -+ obj) -+ if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then -+ func_warning "\`-dlopen' is ignored for objects" -+ fi - --# Files to dlopen/dlpreopen --dlopen='$dlfiles' --dlpreopen='$dlprefiles' -+ case " $deplibs" in -+ *\ -l* | *\ -L*) -+ func_warning "\`-l' and \`-L' are ignored for objects" ;; -+ esac - --# Directory that this library needs to be installed in: --libdir='$install_libdir'" -- if test "$installed" = no && test "$need_relink" = yes; then -- $echo >> $output "\ --relink_command=\"$relink_command\"" -- fi -- done -- fi -+ test -n "$rpath" && \ -+ func_warning "\`-rpath' is ignored for objects" - -- # Do a symbolic link so that the libtool archive can be found in -- # LD_LIBRARY_PATH before the program is installed. -- $show "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)" -- $run eval '(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)' || exit $? -- ;; -- esac -- exit $EXIT_SUCCESS -- ;; -+ test -n "$xrpath" && \ -+ func_warning "\`-R' is ignored for objects" - -- # libtool install mode -- install) -- modename="$modename: install" -+ test -n "$vinfo" && \ -+ func_warning "\`-version-info' is ignored for objects" - -- # There may be an optional sh(1) argument at the beginning of -- # install_prog (especially on Windows NT). -- if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh || -- # Allow the use of GNU shtool's install command. -- $echo "X$nonopt" | grep shtool > /dev/null; then -- # Aesthetically quote it. -- arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"` -- case $arg in -- *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") -- arg="\"$arg\"" -+ test -n "$release" && \ -+ func_warning "\`-release' is ignored for objects" -+ -+ case $output in -+ *.lo) -+ test -n "$objs$old_deplibs" && \ -+ func_fatal_error "cannot build library object \`$output' from non-libtool objects" -+ -+ libobj=$output -+ func_lo2o "$libobj" -+ obj=$func_lo2o_result -+ ;; -+ *) -+ libobj= -+ obj="$output" - ;; - esac -- install_prog="$arg " -- arg="$1" -- shift -- else -- install_prog= -- arg=$nonopt -- fi - -- # The real first argument should be the name of the installation program. -- # Aesthetically quote it. -- arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` -- case $arg in -- *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") -- arg="\"$arg\"" -- ;; -- esac -- install_prog="$install_prog$arg" -+ # Delete the old objects. -+ $opt_dry_run || $RM $obj $libobj - -- # We need to accept at least all the BSD install flags. -- dest= -- files= -- opts= -- prev= -- install_type= -- isdir=no -- stripme= -- for arg -- do -- if test -n "$dest"; then -- files="$files $dest" -- dest=$arg -- continue -- fi -+ # Objects from convenience libraries. This assumes -+ # single-version convenience libraries. Whenever we create -+ # different ones for PIC/non-PIC, this we'll have to duplicate -+ # the extraction. -+ reload_conv_objs= -+ gentop= -+ # reload_cmds runs $LD directly, so let us get rid of -+ # -Wl from whole_archive_flag_spec and hope we can get by with -+ # turning comma into space.. -+ wl= - -- case $arg in -- -d) isdir=yes ;; -- -f) -- case " $install_prog " in -- *[\\\ /]cp\ *) ;; -- *) prev=$arg ;; -- esac -- ;; -- -g | -m | -o) prev=$arg ;; -- -s) -- stripme=" -s" -- continue -- ;; -- -*) -- ;; -- *) -- # If the previous option needed an argument, then skip it. -- if test -n "$prev"; then -- prev= -+ if test -n "$convenience"; then -+ if test -n "$whole_archive_flag_spec"; then -+ eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\" -+ reload_conv_objs=$reload_objs\ `$ECHO "X$tmp_whole_archive_flags" | $Xsed -e 's|,| |g'` - else -- dest=$arg -- continue -+ gentop="$output_objdir/${obj}x" -+ generated="$generated $gentop" -+ -+ func_extract_archives $gentop $convenience -+ reload_conv_objs="$reload_objs $func_extract_archives_result" - fi -- ;; -- esac -+ fi - -- # Aesthetically quote the argument. -- arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` -- case $arg in -- *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") -- arg="\"$arg\"" -- ;; -- esac -- install_prog="$install_prog $arg" -- done -+ # Create the old-style object. -+ reload_objs="$objs$old_deplibs "`$ECHO "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test - -- if test -z "$install_prog"; then -- $echo "$modename: you must specify an install program" 1>&2 -- $echo "$help" 1>&2 -- exit $EXIT_FAILURE -- fi -+ output="$obj" -+ func_execute_cmds "$reload_cmds" 'exit $?' - -- if test -n "$prev"; then -- $echo "$modename: the \`$prev' option requires an argument" 1>&2 -- $echo "$help" 1>&2 -- exit $EXIT_FAILURE -- fi -+ # Exit if we aren't doing a library object file. -+ if test -z "$libobj"; then -+ if test -n "$gentop"; then -+ func_show_eval '${RM}r "$gentop"' -+ fi - -- if test -z "$files"; then -- if test -z "$dest"; then -- $echo "$modename: no file or destination specified" 1>&2 -- else -- $echo "$modename: you must specify a destination" 1>&2 -+ exit $EXIT_SUCCESS - fi -- $echo "$help" 1>&2 -- exit $EXIT_FAILURE -- fi - -- # Strip any trailing slash from the destination. -- dest=`$echo "X$dest" | $Xsed -e 's%/$%%'` -+ if test "$build_libtool_libs" != yes; then -+ if test -n "$gentop"; then -+ func_show_eval '${RM}r "$gentop"' -+ fi - -- # Check to see that the destination is a directory. -- test -d "$dest" && isdir=yes -- if test "$isdir" = yes; then -- destdir="$dest" -- destname= -- else -- destdir=`$echo "X$dest" | $Xsed -e 's%/[^/]*$%%'` -- test "X$destdir" = "X$dest" && destdir=. -- destname=`$echo "X$dest" | $Xsed -e 's%^.*/%%'` -+ # Create an invalid libtool object if no PIC, so that we don't -+ # accidentally link it into a program. -+ # $show "echo timestamp > $libobj" -+ # $opt_dry_run || eval "echo timestamp > $libobj" || exit $? -+ exit $EXIT_SUCCESS -+ fi - -- # Not a directory, so check to see that there is only one file specified. -- set dummy $files -- if test "$#" -gt 2; then -- $echo "$modename: \`$dest' is not a directory" 1>&2 -- $echo "$help" 1>&2 -- exit $EXIT_FAILURE -+ if test -n "$pic_flag" || test "$pic_mode" != default; then -+ # Only do commands if we really have different PIC objects. -+ reload_objs="$libobjs $reload_conv_objs" -+ output="$libobj" -+ func_execute_cmds "$reload_cmds" 'exit $?' - fi -- fi -- case $destdir in -- [\\/]* | [A-Za-z]:[\\/]*) ;; -- *) -- for file in $files; do -- case $file in -- *.lo) ;; -- *) -- $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2 -- $echo "$help" 1>&2 -- exit $EXIT_FAILURE -- ;; -- esac -- done -+ -+ if test -n "$gentop"; then -+ func_show_eval '${RM}r "$gentop"' -+ fi -+ -+ exit $EXIT_SUCCESS - ;; -- esac - -- # This variable tells wrapper scripts just to set variables rather -- # than running their programs. -- libtool_install_magic="$magic" -+ prog) -+ case $host in -+ *cygwin*) func_stripname '' '.exe' "$output" -+ output=$func_stripname_result.exe;; -+ esac -+ test -n "$vinfo" && \ -+ func_warning "\`-version-info' is ignored for programs" - -- staticlibs= -- future_libdirs= -- current_libdirs= -- for file in $files; do -+ test -n "$release" && \ -+ func_warning "\`-release' is ignored for programs" - -- # Do each installation. -- case $file in -- *.$libext) -- # Do the static libraries later. -- staticlibs="$staticlibs $file" -+ test "$preload" = yes \ -+ && test "$dlopen_support" = unknown \ -+ && test "$dlopen_self" = unknown \ -+ && test "$dlopen_self_static" = unknown && \ -+ func_warning "\`LT_INIT([dlopen])' not used. Assuming no dlopen support." -+ -+ case $host in -+ *-*-rhapsody* | *-*-darwin1.[012]) -+ # On Rhapsody replace the C library is the System framework -+ compile_deplibs=`$ECHO "X $compile_deplibs" | $Xsed -e 's/ -lc / System.ltframework /'` -+ finalize_deplibs=`$ECHO "X $finalize_deplibs" | $Xsed -e 's/ -lc / System.ltframework /'` - ;; -+ esac - -- *.la) -- # Check to see that this really is a libtool archive. -- if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : -- else -- $echo "$modename: \`$file' is not a valid libtool archive" 1>&2 -- $echo "$help" 1>&2 -- exit $EXIT_FAILURE -+ case $host in -+ *-*-darwin*) -+ # Don't allow lazy linking, it breaks C++ global constructors -+ # But is supposedly fixed on 10.4 or later (yay!). -+ if test "$tagname" = CXX ; then -+ case ${MACOSX_DEPLOYMENT_TARGET-10.0} in -+ 10.[0123]) -+ compile_command="$compile_command ${wl}-bind_at_load" -+ finalize_command="$finalize_command ${wl}-bind_at_load" -+ ;; -+ esac - fi -+ # Time to change all our "foo.ltframework" stuff back to "-framework foo" -+ compile_deplibs=`$ECHO "X $compile_deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` -+ finalize_deplibs=`$ECHO "X $finalize_deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` -+ ;; -+ esac - -- library_names= -- old_library= -- relink_command= -- # If there is no directory component, then add one. -- case $file in -- */* | *\\*) . $file ;; -- *) . ./$file ;; -- esac - -- # Add the libdir to current_libdirs if it is the destination. -- if test "X$destdir" = "X$libdir"; then -- case "$current_libdirs " in -- *" $libdir "*) ;; -- *) current_libdirs="$current_libdirs $libdir" ;; -+ # move library search paths that coincide with paths to not yet -+ # installed libraries to the beginning of the library search list -+ new_libs= -+ for path in $notinst_path; do -+ case " $new_libs " in -+ *" -L$path/$objdir "*) ;; -+ *) -+ case " $compile_deplibs " in -+ *" -L$path/$objdir "*) -+ new_libs="$new_libs -L$path/$objdir" ;; - esac -- else -- # Note the libdir as a future libdir. -- case "$future_libdirs " in -- *" $libdir "*) ;; -- *) future_libdirs="$future_libdirs $libdir" ;; -+ ;; -+ esac -+ done -+ for deplib in $compile_deplibs; do -+ case $deplib in -+ -L*) -+ case " $new_libs " in -+ *" $deplib "*) ;; -+ *) new_libs="$new_libs $deplib" ;; - esac -- fi -+ ;; -+ *) new_libs="$new_libs $deplib" ;; -+ esac -+ done -+ compile_deplibs="$new_libs" - -- dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/ -- test "X$dir" = "X$file/" && dir= -- dir="$dir$objdir" - -- if test -n "$relink_command"; then -- # Determine the prefix the user has applied to our future dir. -- inst_prefix_dir=`$echo "$destdir" | $SED "s%$libdir\$%%"` -+ compile_command="$compile_command $compile_deplibs" -+ finalize_command="$finalize_command $finalize_deplibs" - -- # Don't allow the user to place us outside of our expected -- # location b/c this prevents finding dependent libraries that -- # are installed to the same prefix. -- # At present, this check doesn't affect windows .dll's that -- # are installed into $libdir/../bin (currently, that works fine) -- # but it's something to keep an eye on. -- if test "$inst_prefix_dir" = "$destdir"; then -- $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2 -- exit $EXIT_FAILURE -- fi -+ if test -n "$rpath$xrpath"; then -+ # If the user specified any rpath flags, then add them. -+ for libdir in $rpath $xrpath; do -+ # This is the magic to use -rpath. -+ case "$finalize_rpath " in -+ *" $libdir "*) ;; -+ *) finalize_rpath="$finalize_rpath $libdir" ;; -+ esac -+ done -+ fi - -- if test -n "$inst_prefix_dir"; then -- # Stick the inst_prefix_dir data into the link command. -- relink_command=`$echo "$relink_command" | $SP2NL | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%" | $NL2SP` -+ # Now hardcode the library paths -+ rpath= -+ hardcode_libdirs= -+ for libdir in $compile_rpath $finalize_rpath; do -+ if test -n "$hardcode_libdir_flag_spec"; then -+ if test -n "$hardcode_libdir_separator"; then -+ if test -z "$hardcode_libdirs"; then -+ hardcode_libdirs="$libdir" -+ else -+ # Just accumulate the unique libdirs. -+ case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in -+ *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) -+ ;; -+ *) -+ hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" -+ ;; -+ esac -+ fi - else -- relink_command=`$echo "$relink_command" | $SP2NL | $SED "s%@inst_prefix_dir@%%" | $NL2SP` -+ eval flag=\"$hardcode_libdir_flag_spec\" -+ rpath="$rpath $flag" - fi -+ elif test -n "$runpath_var"; then -+ case "$perm_rpath " in -+ *" $libdir "*) ;; -+ *) perm_rpath="$perm_rpath $libdir" ;; -+ esac -+ fi -+ case $host in -+ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) -+ testbindir=`${ECHO} "$libdir" | ${SED} -e 's*/lib$*/bin*'` -+ case :$dllsearchpath: in -+ *":$libdir:"*) ;; -+ ::) dllsearchpath=$libdir;; -+ *) dllsearchpath="$dllsearchpath:$libdir";; -+ esac -+ case :$dllsearchpath: in -+ *":$testbindir:"*) ;; -+ ::) dllsearchpath=$testbindir;; -+ *) dllsearchpath="$dllsearchpath:$testbindir";; -+ esac -+ ;; -+ esac -+ done -+ # Substitute the hardcoded libdirs into the rpath. -+ if test -n "$hardcode_libdir_separator" && -+ test -n "$hardcode_libdirs"; then -+ libdir="$hardcode_libdirs" -+ eval rpath=\" $hardcode_libdir_flag_spec\" -+ fi -+ compile_rpath="$rpath" - -- $echo "$modename: warning: relinking \`$file'" 1>&2 -- $show "$relink_command" -- if $run eval "$relink_command"; then : -+ rpath= -+ hardcode_libdirs= -+ for libdir in $finalize_rpath; do -+ if test -n "$hardcode_libdir_flag_spec"; then -+ if test -n "$hardcode_libdir_separator"; then -+ if test -z "$hardcode_libdirs"; then -+ hardcode_libdirs="$libdir" -+ else -+ # Just accumulate the unique libdirs. -+ case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in -+ *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) -+ ;; -+ *) -+ hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" -+ ;; -+ esac -+ fi - else -- $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2 -- exit $EXIT_FAILURE -+ eval flag=\"$hardcode_libdir_flag_spec\" -+ rpath="$rpath $flag" - fi -+ elif test -n "$runpath_var"; then -+ case "$finalize_perm_rpath " in -+ *" $libdir "*) ;; -+ *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;; -+ esac - fi -+ done -+ # Substitute the hardcoded libdirs into the rpath. -+ if test -n "$hardcode_libdir_separator" && -+ test -n "$hardcode_libdirs"; then -+ libdir="$hardcode_libdirs" -+ eval rpath=\" $hardcode_libdir_flag_spec\" -+ fi -+ finalize_rpath="$rpath" - -- # See the names of the shared library. -- set dummy $library_names -- if test -n "$2"; then -- realname="$2" -- shift -- shift -+ if test -n "$libobjs" && test "$build_old_libs" = yes; then -+ # Transform all the library objects into standard objects. -+ compile_command=`$ECHO "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` -+ finalize_command=`$ECHO "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` -+ fi - -- srcname="$realname" -- test -n "$relink_command" && srcname="$realname"T -+ func_generate_dlsyms "$outputname" "@PROGRAM@" "no" - -- # Install the shared library and build the symlinks. -- $show "$install_prog $dir/$srcname $destdir/$realname" -- $run eval "$install_prog $dir/$srcname $destdir/$realname" || exit $? -- if test -n "$stripme" && test -n "$striplib"; then -- $show "$striplib $destdir/$realname" -- $run eval "$striplib $destdir/$realname" || exit $? -- fi -+ # template prelinking step -+ if test -n "$prelink_cmds"; then -+ func_execute_cmds "$prelink_cmds" 'exit $?' -+ fi - -- if test "$#" -gt 0; then -- # Delete the old symlinks, and create new ones. -- # Try `ln -sf' first, because the `ln' binary might depend on -- # the symlink we replace! Solaris /bin/ln does not understand -f, -- # so we also need to try rm && ln -s. -- for linkname -- do -- if test "$linkname" != "$realname"; then -- $show "(cd $destdir && { $LN_S -f $realname $linkname || { $rm $linkname && $LN_S $realname $linkname; }; })" -- $run eval "(cd $destdir && { $LN_S -f $realname $linkname || { $rm $linkname && $LN_S $realname $linkname; }; })" -- fi -- done -- fi -+ wrappers_required=yes -+ case $host in -+ *cygwin* | *mingw* ) -+ if test "$build_libtool_libs" != yes; then -+ wrappers_required=no -+ fi -+ ;; -+ *cegcc) -+ # Disable wrappers for cegcc, we are cross compiling anyway. -+ wrappers_required=no -+ ;; -+ *) -+ if test "$need_relink" = no || test "$build_libtool_libs" != yes; then -+ wrappers_required=no -+ fi -+ ;; -+ esac -+ if test "$wrappers_required" = no; then -+ # Replace the output file specification. -+ compile_command=`$ECHO "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` -+ link_command="$compile_command$compile_rpath" - -- # Do each command in the postinstall commands. -- lib="$destdir/$realname" -- cmds=$postinstall_cmds -- save_ifs="$IFS"; IFS='~' -- for cmd in $cmds; do -- IFS="$save_ifs" -- eval cmd=\"$cmd\" -- $show "$cmd" -- $run eval "$cmd" || { -- lt_exit=$? -- -- # Restore the uninstalled library and exit -- if test "$mode" = relink; then -- $run eval '(cd $output_objdir && $rm ${realname}T && $mv ${realname}U $realname)' -- fi -+ # We have no uninstalled library dependencies, so finalize right now. -+ exit_status=0 -+ func_show_eval "$link_command" 'exit_status=$?' - -- exit $lt_exit -- } -- done -- IFS="$save_ifs" -+ # Delete the generated files. -+ if test -f "$output_objdir/${outputname}S.${objext}"; then -+ func_show_eval '$RM "$output_objdir/${outputname}S.${objext}"' - fi - -- # Install the pseudo-library for information purposes. -- name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` -- instname="$dir/$name"i -- $show "$install_prog $instname $destdir/$name" -- $run eval "$install_prog $instname $destdir/$name" || exit $? -- -- # Maybe install the static library, too. -- test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library" -- ;; -+ exit $exit_status -+ fi - -- *.lo) -- # Install (i.e. copy) a libtool object. -+ if test -n "$compile_shlibpath$finalize_shlibpath"; then -+ compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command" -+ fi -+ if test -n "$finalize_shlibpath"; then -+ finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command" -+ fi - -- # Figure out destination file name, if it wasn't already specified. -- if test -n "$destname"; then -- destfile="$destdir/$destname" -- else -- destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'` -- destfile="$destdir/$destfile" -+ compile_var= -+ finalize_var= -+ if test -n "$runpath_var"; then -+ if test -n "$perm_rpath"; then -+ # We should set the runpath_var. -+ rpath= -+ for dir in $perm_rpath; do -+ rpath="$rpath$dir:" -+ done -+ compile_var="$runpath_var=\"$rpath\$$runpath_var\" " - fi -- -- # Deduce the name of the destination old-style object file. -- case $destfile in -- *.lo) -- staticdest=`$echo "X$destfile" | $Xsed -e "$lo2o"` -- ;; -- *.$objext) -- staticdest="$destfile" -- destfile= -- ;; -- *) -- $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2 -- $echo "$help" 1>&2 -- exit $EXIT_FAILURE -- ;; -- esac -- -- # Install the libtool object if requested. -- if test -n "$destfile"; then -- $show "$install_prog $file $destfile" -- $run eval "$install_prog $file $destfile" || exit $? -+ if test -n "$finalize_perm_rpath"; then -+ # We should set the runpath_var. -+ rpath= -+ for dir in $finalize_perm_rpath; do -+ rpath="$rpath$dir:" -+ done -+ finalize_var="$runpath_var=\"$rpath\$$runpath_var\" " - fi -+ fi - -- # Install the old object if enabled. -- if test "$build_old_libs" = yes; then -- # Deduce the name of the old-style object file. -- staticobj=`$echo "X$file" | $Xsed -e "$lo2o"` -- -- $show "$install_prog $staticobj $staticdest" -- $run eval "$install_prog \$staticobj \$staticdest" || exit $? -- fi -+ if test "$no_install" = yes; then -+ # We don't need to create a wrapper script. -+ link_command="$compile_var$compile_command$compile_rpath" -+ # Replace the output file specification. -+ link_command=`$ECHO "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` -+ # Delete the old output file. -+ $opt_dry_run || $RM $output -+ # Link the executable and exit -+ func_show_eval "$link_command" 'exit $?' - exit $EXIT_SUCCESS -- ;; -+ fi - -- *) -- # Figure out destination file name, if it wasn't already specified. -- if test -n "$destname"; then -- destfile="$destdir/$destname" -+ if test "$hardcode_action" = relink; then -+ # Fast installation is not supported -+ link_command="$compile_var$compile_command$compile_rpath" -+ relink_command="$finalize_var$finalize_command$finalize_rpath" -+ -+ func_warning "this platform does not like uninstalled shared libraries" -+ func_warning "\`$output' will be relinked during installation" -+ else -+ if test "$fast_install" != no; then -+ link_command="$finalize_var$compile_command$finalize_rpath" -+ if test "$fast_install" = yes; then -+ relink_command=`$ECHO "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'` -+ else -+ # fast_install is set to needless -+ relink_command= -+ fi - else -- destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'` -- destfile="$destdir/$destfile" -+ link_command="$compile_var$compile_command$compile_rpath" -+ relink_command="$finalize_var$finalize_command$finalize_rpath" - fi -+ fi - -- # If the file is missing, and there is a .exe on the end, strip it -- # because it is most likely a libtool script we actually want to -- # install -- stripped_ext="" -- case $file in -- *.exe) -- if test ! -f "$file"; then -- file=`$echo $file|${SED} 's,.exe$,,'` -- stripped_ext=".exe" -- fi -- ;; -- esac -- -- # Do a test to see if this is really a libtool program. -- case $host in -- *cygwin*|*mingw*) -- wrapper=`$echo $file | ${SED} -e 's,.exe$,,'` -- ;; -- *) -- wrapper=$file -- ;; -- esac -- if (${SED} -e '4q' $wrapper | grep "^# Generated by .*$PACKAGE")>/dev/null 2>&1; then -- notinst_deplibs= -- relink_command= -- -- # Note that it is not necessary on cygwin/mingw to append a dot to -- # foo even if both foo and FILE.exe exist: automatic-append-.exe -- # behavior happens only for exec(3), not for open(2)! Also, sourcing -- # `FILE.' does not work on cygwin managed mounts. -- # -- # If there is no directory component, then add one. -- case $wrapper in -- */* | *\\*) . ${wrapper} ;; -- *) . ./${wrapper} ;; -- esac -- -- # Check the variables that should have been set. -- if test -z "$notinst_deplibs"; then -- $echo "$modename: invalid libtool wrapper script \`$wrapper'" 1>&2 -- exit $EXIT_FAILURE -- fi -+ # Replace the output file specification. -+ link_command=`$ECHO "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` - -- finalize=yes -- for lib in $notinst_deplibs; do -- # Check to see that each library is installed. -- libdir= -- if test -f "$lib"; then -- # If there is no directory component, then add one. -- case $lib in -- */* | *\\*) . $lib ;; -- *) . ./$lib ;; -- esac -- fi -- libfile="$libdir/"`$echo "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test -- if test -n "$libdir" && test ! -f "$libfile"; then -- $echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2 -- finalize=no -- fi -- done -+ # Delete the old output files. -+ $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname - -- relink_command= -- # Note that it is not necessary on cygwin/mingw to append a dot to -- # foo even if both foo and FILE.exe exist: automatic-append-.exe -- # behavior happens only for exec(3), not for open(2)! Also, sourcing -- # `FILE.' does not work on cygwin managed mounts. -- # -- # If there is no directory component, then add one. -- case $wrapper in -- */* | *\\*) . ${wrapper} ;; -- *) . ./${wrapper} ;; -- esac -+ func_show_eval "$link_command" 'exit $?' - -- outputname= -- if test "$fast_install" = no && test -n "$relink_command"; then -- if test "$finalize" = yes && test -z "$run"; then -- tmpdir=`func_mktempdir` -- file=`$echo "X$file$stripped_ext" | $Xsed -e 's%^.*/%%'` -- outputname="$tmpdir/$file" -- # Replace the output file specification. -- relink_command=`$echo "X$relink_command" | $SP2NL | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g' | $NL2SP` -+ # Now create the wrapper script. -+ func_verbose "creating $output" - -- $show "$relink_command" -- if $run eval "$relink_command"; then : -- else -- $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2 -- ${rm}r "$tmpdir" -- continue -- fi -- file="$outputname" -- else -- $echo "$modename: warning: cannot relink \`$file'" 1>&2 -- fi -+ # Quote the relink command for shipping. -+ if test -n "$relink_command"; then -+ # Preserve any variables that may affect compiler behavior -+ for var in $variables_saved_for_relink; do -+ if eval test -z \"\${$var+set}\"; then -+ relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" -+ elif eval var_value=\$$var; test -z "$var_value"; then -+ relink_command="$var=; export $var; $relink_command" - else -- # Install the binary that we compiled earlier. -- file=`$echo "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"` -+ func_quote_for_eval "$var_value" -+ relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" - fi -- fi -+ done -+ relink_command="(cd `pwd`; $relink_command)" -+ relink_command=`$ECHO "X$relink_command" | $Xsed -e "$sed_quote_subst"` -+ fi - -- # remove .exe since cygwin /usr/bin/install will append another -- # one anyway -- case $install_prog,$host in -- */usr/bin/install*,*cygwin*) -- case $file:$destfile in -- *.exe:*.exe) -- # this is ok -- ;; -- *.exe:*) -- destfile=$destfile.exe -- ;; -- *:*.exe) -- destfile=`$echo $destfile | ${SED} -e 's,.exe$,,'` -- ;; -- esac -- ;; -+ # Quote $ECHO for shipping. -+ if test "X$ECHO" = "X$SHELL $progpath --fallback-echo"; then -+ case $progpath in -+ [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $progpath --fallback-echo";; -+ *) qecho="$SHELL `pwd`/$progpath --fallback-echo";; -+ esac -+ qecho=`$ECHO "X$qecho" | $Xsed -e "$sed_quote_subst"` -+ else -+ qecho=`$ECHO "X$ECHO" | $Xsed -e "$sed_quote_subst"` -+ fi -+ -+ # Only actually do things if not in dry run mode. -+ $opt_dry_run || { -+ # win32 will think the script is a binary if it has -+ # a .exe suffix, so we strip it off here. -+ case $output in -+ *.exe) func_stripname '' '.exe' "$output" -+ output=$func_stripname_result ;; -+ esac -+ # test for cygwin because mv fails w/o .exe extensions -+ case $host in -+ *cygwin*) -+ exeext=.exe -+ func_stripname '' '.exe' "$outputname" -+ outputname=$func_stripname_result ;; -+ *) exeext= ;; - esac -- $show "$install_prog$stripme $file $destfile" -- $run eval "$install_prog\$stripme \$file \$destfile" || exit $? -- test -n "$outputname" && ${rm}r "$tmpdir" -- ;; -- esac -- done -+ case $host in -+ *cygwin* | *mingw* ) -+ func_dirname_and_basename "$output" "" "." -+ output_name=$func_basename_result -+ output_path=$func_dirname_result -+ cwrappersource="$output_path/$objdir/lt-$output_name.c" -+ cwrapper="$output_path/$output_name.exe" -+ $RM $cwrappersource $cwrapper -+ trap "$RM $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15 -+ -+ func_emit_cwrapperexe_src > $cwrappersource -+ -+ # The wrapper executable is built using the $host compiler, -+ # because it contains $host paths and files. If cross- -+ # compiling, it, like the target executable, must be -+ # executed on the $host or under an emulation environment. -+ $opt_dry_run || { -+ $LTCC $LTCFLAGS -o $cwrapper $cwrappersource -+ $STRIP $cwrapper -+ } - -- for file in $staticlibs; do -- name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` -+ # Now, create the wrapper script for func_source use: -+ func_ltwrapper_scriptname $cwrapper -+ $RM $func_ltwrapper_scriptname_result -+ trap "$RM $func_ltwrapper_scriptname_result; exit $EXIT_FAILURE" 1 2 15 -+ $opt_dry_run || { -+ # note: this script will not be executed, so do not chmod. -+ if test "x$build" = "x$host" ; then -+ $cwrapper --lt-dump-script > $func_ltwrapper_scriptname_result -+ else -+ func_emit_wrapper no > $func_ltwrapper_scriptname_result -+ fi -+ } -+ ;; -+ * ) -+ $RM $output -+ trap "$RM $output; exit $EXIT_FAILURE" 1 2 15 - -- # Set up the ranlib parameters. -- oldlib="$destdir/$name" -+ func_emit_wrapper no > $output -+ chmod +x $output -+ ;; -+ esac -+ } -+ exit $EXIT_SUCCESS -+ ;; -+ esac - -- $show "$install_prog $file $oldlib" -- $run eval "$install_prog \$file \$oldlib" || exit $? -+ # See if we need to build an old-fashioned archive. -+ for oldlib in $oldlibs; do - -- if test -n "$stripme" && test -n "$old_striplib"; then -- $show "$old_striplib $oldlib" -- $run eval "$old_striplib $oldlib" || exit $? -+ if test "$build_libtool_libs" = convenience; then -+ oldobjs="$libobjs_save $symfileobj" -+ addlibs="$convenience" -+ build_libtool_libs=no -+ else -+ if test "$build_libtool_libs" = module; then -+ oldobjs="$libobjs_save" -+ build_libtool_libs=no -+ else -+ oldobjs="$old_deplibs $non_pic_objects" -+ if test "$preload" = yes && test -f "$symfileobj"; then -+ oldobjs="$oldobjs $symfileobj" -+ fi -+ fi -+ addlibs="$old_convenience" - fi - -- # Do each command in the postinstall commands. -- cmds=$old_postinstall_cmds -- save_ifs="$IFS"; IFS='~' -- for cmd in $cmds; do -- IFS="$save_ifs" -- eval cmd=\"$cmd\" -- $show "$cmd" -- $run eval "$cmd" || exit $? -- done -- IFS="$save_ifs" -- done -+ if test -n "$addlibs"; then -+ gentop="$output_objdir/${outputname}x" -+ generated="$generated $gentop" - -- if test -n "$future_libdirs"; then -- $echo "$modename: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2 -- fi -+ func_extract_archives $gentop $addlibs -+ oldobjs="$oldobjs $func_extract_archives_result" -+ fi - -- if test -n "$current_libdirs"; then -- # Maybe just do a dry run. -- test -n "$run" && current_libdirs=" -n$current_libdirs" -- exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs' -- else -- exit $EXIT_SUCCESS -- fi -- ;; -+ # Do each command in the archive commands. -+ if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then -+ cmds=$old_archive_from_new_cmds -+ else - -- # libtool finish mode -- finish) -- modename="$modename: finish" -- libdirs="$nonopt" -- admincmds= -+ # Add any objects from preloaded convenience libraries -+ if test -n "$dlprefiles"; then -+ gentop="$output_objdir/${outputname}x" -+ generated="$generated $gentop" - -- if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then -- for dir -- do -- libdirs="$libdirs $dir" -- done -+ func_extract_archives $gentop $dlprefiles -+ oldobjs="$oldobjs $func_extract_archives_result" -+ fi - -- for libdir in $libdirs; do -- if test -n "$finish_cmds"; then -- # Do each command in the finish commands. -- cmds=$finish_cmds -- save_ifs="$IFS"; IFS='~' -- for cmd in $cmds; do -- IFS="$save_ifs" -- eval cmd=\"$cmd\" -- $show "$cmd" -- $run eval "$cmd" || admincmds="$admincmds -- $cmd" -+ # POSIX demands no paths to be encoded in archives. We have -+ # to avoid creating archives with duplicate basenames if we -+ # might have to extract them afterwards, e.g., when creating a -+ # static archive out of a convenience library, or when linking -+ # the entirety of a libtool archive into another (currently -+ # not supported by libtool). -+ if (for obj in $oldobjs -+ do -+ func_basename "$obj" -+ $ECHO "$func_basename_result" -+ done | sort | sort -uc >/dev/null 2>&1); then -+ : -+ else -+ $ECHO "copying selected object files to avoid basename conflicts..." -+ gentop="$output_objdir/${outputname}x" -+ generated="$generated $gentop" -+ func_mkdir_p "$gentop" -+ save_oldobjs=$oldobjs -+ oldobjs= -+ counter=1 -+ for obj in $save_oldobjs -+ do -+ func_basename "$obj" -+ objbase="$func_basename_result" -+ case " $oldobjs " in -+ " ") oldobjs=$obj ;; -+ *[\ /]"$objbase "*) -+ while :; do -+ # Make sure we don't pick an alternate name that also -+ # overlaps. -+ newobj=lt$counter-$objbase -+ func_arith $counter + 1 -+ counter=$func_arith_result -+ case " $oldobjs " in -+ *[\ /]"$newobj "*) ;; -+ *) if test ! -f "$gentop/$newobj"; then break; fi ;; -+ esac -+ done -+ func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj" -+ oldobjs="$oldobjs $gentop/$newobj" -+ ;; -+ *) oldobjs="$oldobjs $obj" ;; -+ esac - done -- IFS="$save_ifs" -- fi -- if test -n "$finish_eval"; then -- # Do the single finish_eval. -- eval cmds=\"$finish_eval\" -- $run eval "$cmds" || admincmds="$admincmds -- $cmds" - fi -- done -- fi -- -- # Exit here if they wanted silent mode. -- test "$show" = : && exit $EXIT_SUCCESS -+ eval cmds=\"$old_archive_cmds\" - -- $echo "X----------------------------------------------------------------------" | $Xsed -- $echo "Libraries have been installed in:" -- for libdir in $libdirs; do -- $echo " $libdir" -+ func_len " $cmds" -+ len=$func_len_result -+ if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then -+ cmds=$old_archive_cmds -+ else -+ # the command line is too long to link in one step, link in parts -+ func_verbose "using piecewise archive linking..." -+ save_RANLIB=$RANLIB -+ RANLIB=: -+ objlist= -+ concat_cmds= -+ save_oldobjs=$oldobjs -+ oldobjs= -+ # Is there a better way of finding the last object in the list? -+ for obj in $save_oldobjs -+ do -+ last_oldobj=$obj -+ done -+ eval test_cmds=\"$old_archive_cmds\" -+ func_len " $test_cmds" -+ len0=$func_len_result -+ len=$len0 -+ for obj in $save_oldobjs -+ do -+ func_len " $obj" -+ func_arith $len + $func_len_result -+ len=$func_arith_result -+ func_append objlist " $obj" -+ if test "$len" -lt "$max_cmd_len"; then -+ : -+ else -+ # the above command should be used before it gets too long -+ oldobjs=$objlist -+ if test "$obj" = "$last_oldobj" ; then -+ RANLIB=$save_RANLIB -+ fi -+ test -z "$concat_cmds" || concat_cmds=$concat_cmds~ -+ eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\" -+ objlist= -+ len=$len0 -+ fi -+ done -+ RANLIB=$save_RANLIB -+ oldobjs=$objlist -+ if test "X$oldobjs" = "X" ; then -+ eval cmds=\"\$concat_cmds\" -+ else -+ eval cmds=\"\$concat_cmds~\$old_archive_cmds\" -+ fi -+ fi -+ fi -+ func_execute_cmds "$cmds" 'exit $?' - done -- $echo -- $echo "If you ever happen to want to link against installed libraries" -- $echo "in a given directory, LIBDIR, you must either use libtool, and" -- $echo "specify the full pathname of the library, or use the \`-LLIBDIR'" -- $echo "flag during linking and do at least one of the following:" -- if test -n "$shlibpath_var"; then -- $echo " - add LIBDIR to the \`$shlibpath_var' environment variable" -- $echo " during execution" -- fi -- if test -n "$runpath_var"; then -- $echo " - add LIBDIR to the \`$runpath_var' environment variable" -- $echo " during linking" -- fi -- if test -n "$hardcode_libdir_flag_spec"; then -- libdir=LIBDIR -- eval flag=\"$hardcode_libdir_flag_spec\" -- -- $echo " - use the \`$flag' linker flag" -- fi -- if test -n "$admincmds"; then -- $echo " - have your system administrator run these commands:$admincmds" -- fi -- if test -f /etc/ld.so.conf; then -- $echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'" -- fi -- $echo -- $echo "See any operating system documentation about shared libraries for" -- $echo "more information, such as the ld(1) and ld.so(8) manual pages." -- $echo "X----------------------------------------------------------------------" | $Xsed -- exit $EXIT_SUCCESS -- ;; -- -- # libtool execute mode -- execute) -- modename="$modename: execute" - -- # The first argument is the command name. -- cmd="$nonopt" -- if test -z "$cmd"; then -- $echo "$modename: you must specify a COMMAND" 1>&2 -- $echo "$help" -- exit $EXIT_FAILURE -- fi -+ test -n "$generated" && \ -+ func_show_eval "${RM}r$generated" - -- # Handle -dlopen flags immediately. -- for file in $execute_dlfiles; do -- if test ! -f "$file"; then -- $echo "$modename: \`$file' is not a file" 1>&2 -- $echo "$help" 1>&2 -- exit $EXIT_FAILURE -- fi -+ # Now create the libtool archive. -+ case $output in -+ *.la) -+ old_library= -+ test "$build_old_libs" = yes && old_library="$libname.$libext" -+ func_verbose "creating $output" - -- dir= -- case $file in -- *.la) -- # Check to see that this really is a libtool archive. -- if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : -+ # Preserve any variables that may affect compiler behavior -+ for var in $variables_saved_for_relink; do -+ if eval test -z \"\${$var+set}\"; then -+ relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" -+ elif eval var_value=\$$var; test -z "$var_value"; then -+ relink_command="$var=; export $var; $relink_command" - else -- $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 -- $echo "$help" 1>&2 -- exit $EXIT_FAILURE -+ func_quote_for_eval "$var_value" -+ relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" - fi -+ done -+ # Quote the link command for shipping. -+ relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" -+ relink_command=`$ECHO "X$relink_command" | $Xsed -e "$sed_quote_subst"` -+ if test "$hardcode_automatic" = yes ; then -+ relink_command= -+ fi - -- # Read the libtool library. -- dlname= -- library_names= -+ # Only create the output if not a dry run. -+ $opt_dry_run || { -+ for installed in no yes; do -+ if test "$installed" = yes; then -+ if test -z "$install_libdir"; then -+ break -+ fi -+ output="$output_objdir/$outputname"i -+ # Replace all uninstalled libtool libraries with the installed ones -+ newdependency_libs= -+ for deplib in $dependency_libs; do -+ case $deplib in -+ *.la) -+ func_basename "$deplib" -+ name="$func_basename_result" -+ eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` -+ test -z "$libdir" && \ -+ func_fatal_error "\`$deplib' is not a valid libtool archive" -+ newdependency_libs="$newdependency_libs $libdir/$name" -+ ;; -+ *) newdependency_libs="$newdependency_libs $deplib" ;; -+ esac -+ done -+ dependency_libs="$newdependency_libs" -+ newdlfiles= -+ -+ for lib in $dlfiles; do -+ case $lib in -+ *.la) -+ func_basename "$lib" -+ name="$func_basename_result" -+ eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` -+ test -z "$libdir" && \ -+ func_fatal_error "\`$lib' is not a valid libtool archive" -+ newdlfiles="$newdlfiles $libdir/$name" -+ ;; -+ *) newdlfiles="$newdlfiles $lib" ;; -+ esac -+ done -+ dlfiles="$newdlfiles" -+ newdlprefiles= -+ for lib in $dlprefiles; do -+ case $lib in -+ *.la) -+ # Only pass preopened files to the pseudo-archive (for -+ # eventual linking with the app. that links it) if we -+ # didn't already link the preopened objects directly into -+ # the library: -+ func_basename "$lib" -+ name="$func_basename_result" -+ eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` -+ test -z "$libdir" && \ -+ func_fatal_error "\`$lib' is not a valid libtool archive" -+ newdlprefiles="$newdlprefiles $libdir/$name" -+ ;; -+ esac -+ done -+ dlprefiles="$newdlprefiles" -+ else -+ newdlfiles= -+ for lib in $dlfiles; do -+ case $lib in -+ [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; -+ *) abs=`pwd`"/$lib" ;; -+ esac -+ newdlfiles="$newdlfiles $abs" -+ done -+ dlfiles="$newdlfiles" -+ newdlprefiles= -+ for lib in $dlprefiles; do -+ case $lib in -+ [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; -+ *) abs=`pwd`"/$lib" ;; -+ esac -+ newdlprefiles="$newdlprefiles $abs" -+ done -+ dlprefiles="$newdlprefiles" -+ fi -+ $RM $output -+ # place dlname in correct position for cygwin -+ tdlname=$dlname -+ case $host,$output,$installed,$module,$dlname in -+ *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;; -+ esac -+ $ECHO > $output "\ -+# $outputname - a libtool library file -+# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION -+# -+# Please DO NOT delete this file! -+# It is necessary for linking the library. - -- # If there is no directory component, then add one. -- case $file in -- */* | *\\*) . $file ;; -- *) . ./$file ;; -- esac -+# The name that we can dlopen(3). -+dlname='$tdlname' - -- # Skip this library if it cannot be dlopened. -- if test -z "$dlname"; then -- # Warn if it was a shared library. -- test -n "$library_names" && $echo "$modename: warning: \`$file' was not linked with \`-export-dynamic'" -- continue -- fi -+# Names of this library. -+library_names='$library_names' - -- dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` -- test "X$dir" = "X$file" && dir=. -+# The name of the static archive. -+old_library='$old_library' - -- if test -f "$dir/$objdir/$dlname"; then -- dir="$dir/$objdir" -- else -- if test ! -f "$dir/$dlname"; then -- $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2 -- exit $EXIT_FAILURE -- fi -- fi -- ;; -+# Linker flags that can not go in dependency_libs. -+inherited_linker_flags='$new_inherited_linker_flags' - -- *.lo) -- # Just add the directory containing the .lo file. -- dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` -- test "X$dir" = "X$file" && dir=. -- ;; -+# Libraries that this one depends upon. -+dependency_libs='$dependency_libs' - -- *) -- $echo "$modename: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2 -- continue -- ;; -- esac -+# Names of additional weak libraries provided by this library -+weak_library_names='$weak_libs' - -- # Get the absolute pathname. -- absdir=`cd "$dir" && pwd` -- test -n "$absdir" && dir="$absdir" -+# Version information for $libname. -+current=$current -+age=$age -+revision=$revision - -- # Now add the directory to shlibpath_var. -- if eval "test -z \"\$$shlibpath_var\""; then -- eval "$shlibpath_var=\"\$dir\"" -- else -- eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\"" -- fi -- done -+# Is this an already installed library? -+installed=$installed - -- # This variable tells wrapper scripts just to set shlibpath_var -- # rather than running their programs. -- libtool_execute_magic="$magic" -+# Should we warn about portability when linking against -modules? -+shouldnotlink=$module - -- # Check if any of the arguments is a wrapper script. -- args= -- for file -- do -- case $file in -- -*) ;; -- *) -- # Do a test to see if this is really a libtool program. -- if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then -- # If there is no directory component, then add one. -- case $file in -- */* | *\\*) . $file ;; -- *) . ./$file ;; -- esac -+# Files to dlopen/dlpreopen -+dlopen='$dlfiles' -+dlpreopen='$dlprefiles' - -- # Transform arg to wrapped name. -- file="$progdir/$program" -- fi -- ;; -- esac -- # Quote arguments (to preserve shell metacharacters). -- file=`$echo "X$file" | $Xsed -e "$sed_quote_subst"` -- args="$args \"$file\"" -- done -+# Directory that this library needs to be installed in: -+libdir='$install_libdir'" -+ if test "$installed" = no && test "$need_relink" = yes; then -+ $ECHO >> $output "\ -+relink_command=\"$relink_command\"" -+ fi -+ done -+ } - -- if test -z "$run"; then -- if test -n "$shlibpath_var"; then -- # Export the shlibpath_var. -- eval "export $shlibpath_var" -- fi -+ # Do a symbolic link so that the libtool archive can be found in -+ # LD_LIBRARY_PATH before the program is installed. -+ func_show_eval '( cd "$output_objdir" && $RM "$outputname" && $LN_S "../$outputname" "$outputname" )' 'exit $?' -+ ;; -+ esac -+ exit $EXIT_SUCCESS -+} - -- # Restore saved environment variables -- for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES -- do -- eval "if test \"\${save_$lt_var+set}\" = set; then -- $lt_var=\$save_$lt_var; export $lt_var -- fi" -- done -+{ test "$mode" = link || test "$mode" = relink; } && -+ func_mode_link ${1+"$@"} - -- # Now prepare to actually exec the command. -- exec_cmd="\$cmd$args" -- else -- # Display what would be done. -- if test -n "$shlibpath_var"; then -- eval "\$echo \"\$shlibpath_var=\$$shlibpath_var\"" -- $echo "export $shlibpath_var" -- fi -- $echo "$cmd$args" -- exit $EXIT_SUCCESS -- fi -- ;; - -- # libtool clean and uninstall mode -- clean | uninstall) -- modename="$modename: $mode" -- rm="$nonopt" -+# func_mode_uninstall arg... -+func_mode_uninstall () -+{ -+ $opt_debug -+ RM="$nonopt" - files= - rmforce= - exit_status=0 -@@ -6547,30 +8202,28 @@ - for arg - do - case $arg in -- -f) rm="$rm $arg"; rmforce=yes ;; -- -*) rm="$rm $arg" ;; -+ -f) RM="$RM $arg"; rmforce=yes ;; -+ -*) RM="$RM $arg" ;; - *) files="$files $arg" ;; - esac - done - -- if test -z "$rm"; then -- $echo "$modename: you must specify an RM program" 1>&2 -- $echo "$help" 1>&2 -- exit $EXIT_FAILURE -- fi -+ test -z "$RM" && \ -+ func_fatal_help "you must specify an RM program" - - rmdirs= - - origobjdir="$objdir" - for file in $files; do -- dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` -- if test "X$dir" = "X$file"; then -- dir=. -+ func_dirname "$file" "" "." -+ dir="$func_dirname_result" -+ if test "X$dir" = X.; then - objdir="$origobjdir" - else - objdir="$dir/$origobjdir" - fi -- name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` -+ func_basename "$file" -+ name="$func_basename_result" - test "$mode" = uninstall && objdir="$dir" - - # Remember objdir for removal later, being careful to avoid duplicates -@@ -6582,9 +8235,9 @@ - fi - - # Don't error if the file doesn't exist and rm -f was used. -- if (test -L "$file") >/dev/null 2>&1 \ -- || (test -h "$file") >/dev/null 2>&1 \ -- || test -f "$file"; then -+ if { test -L "$file"; } >/dev/null 2>&1 || -+ { test -h "$file"; } >/dev/null 2>&1 || -+ test -f "$file"; then - : - elif test -d "$file"; then - exit_status=1 -@@ -6598,8 +8251,8 @@ - case $name in - *.la) - # Possibly a libtool archive, so verify it. -- if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then -- . $dir/$name -+ if func_lalib_p "$file"; then -+ func_source $dir/$name - - # Delete the libtool libraries and symlinks. - for n in $library_names; do -@@ -6614,39 +8267,17 @@ - *" $dlname "*) ;; - *) rmfiles="$rmfiles $objdir/$dlname" ;; - esac -- test -n "$libdir" && rmfiles="$rmfiles $objdir/$name $objdir/${name}i" -+ test -n "$libdir" && rmfiles="$rmfiles $objdir/$name $objdir/${name}i" - ;; - uninstall) - if test -n "$library_names"; then - # Do each command in the postuninstall commands. -- cmds=$postuninstall_cmds -- save_ifs="$IFS"; IFS='~' -- for cmd in $cmds; do -- IFS="$save_ifs" -- eval cmd=\"$cmd\" -- $show "$cmd" -- $run eval "$cmd" -- if test "$?" -ne 0 && test "$rmforce" != yes; then -- exit_status=1 -- fi -- done -- IFS="$save_ifs" -+ func_execute_cmds "$postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1' - fi - - if test -n "$old_library"; then - # Do each command in the old_postuninstall commands. -- cmds=$old_postuninstall_cmds -- save_ifs="$IFS"; IFS='~' -- for cmd in $cmds; do -- IFS="$save_ifs" -- eval cmd=\"$cmd\" -- $show "$cmd" -- $run eval "$cmd" -- if test "$?" -ne 0 && test "$rmforce" != yes; then -- exit_status=1 -- fi -- done -- IFS="$save_ifs" -+ func_execute_cmds "$old_postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1' - fi - # FIXME: should reinstall the best remaining shared library. - ;; -@@ -6656,20 +8287,20 @@ - - *.lo) - # Possibly a libtool object, so verify it. -- if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then -+ if func_lalib_p "$file"; then - - # Read the .lo file -- . $dir/$name -+ func_source $dir/$name - - # Add PIC object to the list of files to remove. -- if test -n "$pic_object" \ -- && test "$pic_object" != none; then -+ if test -n "$pic_object" && -+ test "$pic_object" != none; then - rmfiles="$rmfiles $dir/$pic_object" - fi - - # Add non-PIC object to the list of files to remove. -- if test -n "$non_pic_object" \ -- && test "$non_pic_object" != none; then -+ if test -n "$non_pic_object" && -+ test "$non_pic_object" != none; then - rmfiles="$rmfiles $dir/$non_pic_object" - fi - fi -@@ -6680,17 +8311,26 @@ - noexename=$name - case $file in - *.exe) -- file=`$echo $file|${SED} 's,.exe$,,'` -- noexename=`$echo $name|${SED} 's,.exe$,,'` -+ func_stripname '' '.exe' "$file" -+ file=$func_stripname_result -+ func_stripname '' '.exe' "$name" -+ noexename=$func_stripname_result - # $file with .exe has already been added to rmfiles, - # add $file without .exe - rmfiles="$rmfiles $file" - ;; - esac - # Do a test to see if this is a libtool program. -- if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then -- relink_command= -- . $dir/$noexename -+ if func_ltwrapper_p "$file"; then -+ if func_ltwrapper_executable_p "$file"; then -+ func_ltwrapper_scriptname "$file" -+ relink_command= -+ func_source $func_ltwrapper_scriptname_result -+ rmfiles="$rmfiles $func_ltwrapper_scriptname_result" -+ else -+ relink_command= -+ func_source $dir/$noexename -+ fi - - # note $name still contains .exe if it was in $file originally - # as does the version of $file that was added into $rmfiles -@@ -6705,239 +8345,38 @@ - fi - ;; - esac -- $show "$rm $rmfiles" -- $run $rm $rmfiles || exit_status=1 -+ func_show_eval "$RM $rmfiles" 'exit_status=1' - done - objdir="$origobjdir" - - # Try to remove the ${objdir}s in the directories where we deleted files - for dir in $rmdirs; do - if test -d "$dir"; then -- $show "rmdir $dir" -- $run rmdir $dir >/dev/null 2>&1 -+ func_show_eval "rmdir $dir >/dev/null 2>&1" - fi - done - - exit $exit_status -- ;; -+} - -- "") -- $echo "$modename: you must specify a MODE" 1>&2 -- $echo "$generic_help" 1>&2 -- exit $EXIT_FAILURE -- ;; -- esac -+{ test "$mode" = uninstall || test "$mode" = clean; } && -+ func_mode_uninstall ${1+"$@"} - -- if test -z "$exec_cmd"; then -- $echo "$modename: invalid operation mode \`$mode'" 1>&2 -- $echo "$generic_help" 1>&2 -- exit $EXIT_FAILURE -- fi --fi # test -z "$show_help" -+test -z "$mode" && { -+ help="$generic_help" -+ func_fatal_help "you must specify a MODE" -+} -+ -+test -z "$exec_cmd" && \ -+ func_fatal_help "invalid operation mode \`$mode'" - - if test -n "$exec_cmd"; then -- eval exec $exec_cmd -+ eval exec "$exec_cmd" - exit $EXIT_FAILURE - fi - --# We need to display help for each of the modes. --case $mode in --"") $echo \ --"Usage: $modename [OPTION]... [MODE-ARG]... -- --Provide generalized library-building support services. -- -- --config show all configuration variables -- --debug enable verbose shell tracing ---n, --dry-run display commands without modifying any files -- --features display basic configuration information and exit -- --finish same as \`--mode=finish' -- --help display this help message and exit -- --mode=MODE use operation mode MODE [default=inferred from MODE-ARGS] -- --quiet same as \`--silent' -- --silent don't print informational messages -- --tag=TAG use configuration variables from tag TAG -- --version print version information -- --MODE must be one of the following: -- -- clean remove files from the build directory -- compile compile a source file into a libtool object -- execute automatically set library path, then run a program -- finish complete the installation of libtool libraries -- install install libraries or executables -- link create a library or an executable -- uninstall remove libraries from an installed directory -- --MODE-ARGS vary depending on the MODE. Try \`$modename --help --mode=MODE' for --a more detailed description of MODE. -- --Report bugs to ." -- exit $EXIT_SUCCESS -- ;; -- --clean) -- $echo \ --"Usage: $modename [OPTION]... --mode=clean RM [RM-OPTION]... FILE... -- --Remove files from the build directory. -- --RM is the name of the program to use to delete files associated with each FILE --(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed --to RM. -- --If FILE is a libtool library, object or program, all the files associated --with it are deleted. Otherwise, only FILE itself is deleted using RM." -- ;; -- --compile) -- $echo \ --"Usage: $modename [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE -- --Compile a source file into a libtool library object. -- --This mode accepts the following additional options: -- -- -o OUTPUT-FILE set the output file name to OUTPUT-FILE -- -prefer-pic try to building PIC objects only -- -prefer-non-pic try to building non-PIC objects only -- -static always build a \`.o' file suitable for static linking -- --COMPILE-COMMAND is a command to be used in creating a \`standard' object file --from the given SOURCEFILE. -- --The output file name is determined by removing the directory component from --SOURCEFILE, then substituting the C source code suffix \`.c' with the --library object suffix, \`.lo'." -- ;; -- --execute) -- $echo \ --"Usage: $modename [OPTION]... --mode=execute COMMAND [ARGS]... -- --Automatically set library path, then run a program. -- --This mode accepts the following additional options: -- -- -dlopen FILE add the directory containing FILE to the library path -- --This mode sets the library path environment variable according to \`-dlopen' --flags. -- --If any of the ARGS are libtool executable wrappers, then they are translated --into their corresponding uninstalled binary, and any of their required library --directories are added to the library path. -- --Then, COMMAND is executed, with ARGS as arguments." -- ;; -- --finish) -- $echo \ --"Usage: $modename [OPTION]... --mode=finish [LIBDIR]... -- --Complete the installation of libtool libraries. -- --Each LIBDIR is a directory that contains libtool libraries. -- --The commands that this mode executes may require superuser privileges. Use --the \`--dry-run' option if you just want to see what would be executed." -- ;; -- --install) -- $echo \ --"Usage: $modename [OPTION]... --mode=install INSTALL-COMMAND... -- --Install executables or libraries. -- --INSTALL-COMMAND is the installation command. The first component should be --either the \`install' or \`cp' program. -- --The rest of the components are interpreted as arguments to that command (only --BSD-compatible install options are recognized)." -- ;; -- --link) -- $echo \ --"Usage: $modename [OPTION]... --mode=link LINK-COMMAND... -- --Link object files or libraries together to form another library, or to --create an executable program. -+exit $exit_status - --LINK-COMMAND is a command using the C compiler that you would use to create --a program from several object files. -- --The following components of LINK-COMMAND are treated specially: -- -- -all-static do not do any dynamic linking at all -- -avoid-version do not add a version suffix if possible -- -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime -- -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols -- -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3) -- -export-symbols SYMFILE -- try to export only the symbols listed in SYMFILE -- -export-symbols-regex REGEX -- try to export only the symbols matching REGEX -- -LLIBDIR search LIBDIR for required installed libraries -- -lNAME OUTPUT-FILE requires the installed library libNAME -- -module build a library that can dlopened -- -no-fast-install disable the fast-install mode -- -no-install link a not-installable executable -- -no-undefined declare that a library does not refer to external symbols -- -o OUTPUT-FILE create OUTPUT-FILE from the specified objects -- -objectlist FILE Use a list of object files found in FILE to specify objects -- -precious-files-regex REGEX -- don't remove output files matching REGEX -- -release RELEASE specify package release information -- -rpath LIBDIR the created library will eventually be installed in LIBDIR -- -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries -- -static do not do any dynamic linking of uninstalled libtool libraries -- -static-libtool-libs -- do not do any dynamic linking of libtool libraries -- -version-info CURRENT[:REVISION[:AGE]] -- specify library version info [each variable defaults to 0] -- --All other options (arguments beginning with \`-') are ignored. -- --Every other argument is treated as a filename. Files ending in \`.la' are --treated as uninstalled libtool libraries, other files are standard or library --object files. -- --If the OUTPUT-FILE ends in \`.la', then a libtool library is created, --only library objects (\`.lo' files) may be specified, and \`-rpath' is --required, except when creating a convenience library. -- --If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created --using \`ar' and \`ranlib', or on Windows using \`lib'. -- --If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file --is created, otherwise an executable program is created." -- ;; -- --uninstall) -- $echo \ --"Usage: $modename [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE... -- --Remove libraries from an installation directory. -- --RM is the name of the program to use to delete files associated with each FILE --(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed --to RM. -- --If FILE is a libtool library, all the files associated with it are deleted. --Otherwise, only FILE itself is deleted using RM." -- ;; -- --*) -- $echo "$modename: invalid operation mode \`$mode'" 1>&2 -- $echo "$help" 1>&2 -- exit $EXIT_FAILURE -- ;; --esac -- --$echo --$echo "Try \`$modename --help' for more information about other modes." -- --exit $? - - # The TAGs below are defined such that we never get into a situation - # in which we disable both kinds of libraries. Given conflicting -@@ -6951,14 +8390,17 @@ - # configuration. But we'll never go from static-only to shared-only. - - # ### BEGIN LIBTOOL TAG CONFIG: disable-shared --disable_libs=shared -+build_libtool_libs=no -+build_old_libs=yes - # ### END LIBTOOL TAG CONFIG: disable-shared - - # ### BEGIN LIBTOOL TAG CONFIG: disable-static --disable_libs=static -+build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac` - # ### END LIBTOOL TAG CONFIG: disable-static - - # Local Variables: - # mode:shell-script - # sh-indentation:2 - # End: -+# vi:sw=2 -+ -diff -Naur libva-0.31.0/m4/libtool.m4 libva-0.31.0.patch/m4/libtool.m4 ---- libva-0.31.0/m4/libtool.m4 1970-01-01 01:00:00.000000000 +0100 -+++ libva-0.31.0.patch/m4/libtool.m4 2009-10-19 14:20:15.000000000 +0200 -@@ -0,0 +1,7360 @@ -+# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- -+# -+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, -+# 2006, 2007, 2008 Free Software Foundation, Inc. -+# Written by Gordon Matzigkeit, 1996 -+# -+# This file is free software; the Free Software Foundation gives -+# unlimited permission to copy and/or distribute it, with or without -+# modifications, as long as this notice is preserved. -+ -+m4_define([_LT_COPYING], [dnl -+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, -+# 2006, 2007, 2008 Free Software Foundation, Inc. -+# Written by Gordon Matzigkeit, 1996 -+# -+# This file is part of GNU Libtool. -+# -+# GNU Libtool is free software; you can redistribute it and/or -+# modify it under the terms of the GNU General Public License as -+# published by the Free Software Foundation; either version 2 of -+# the License, or (at your option) any later version. -+# -+# As a special exception to the GNU General Public License, -+# if you distribute this file as part of a program or library that -+# is built using GNU Libtool, you may include this file under the -+# same distribution terms that you use for the rest of that program. -+# -+# GNU Libtool is distributed in the hope that it will be useful, -+# but WITHOUT ANY WARRANTY; without even the implied warranty of -+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+# GNU General Public License for more details. -+# -+# You should have received a copy of the GNU General Public License -+# along with GNU Libtool; see the file COPYING. If not, a copy -+# can be downloaded from http://www.gnu.org/licenses/gpl.html, or -+# obtained by writing to the Free Software Foundation, Inc., -+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -+]) -+ -+# serial 56 LT_INIT -+ -+ -+# LT_PREREQ(VERSION) -+# ------------------ -+# Complain and exit if this libtool version is less that VERSION. -+m4_defun([LT_PREREQ], -+[m4_if(m4_version_compare(m4_defn([LT_PACKAGE_VERSION]), [$1]), -1, -+ [m4_default([$3], -+ [m4_fatal([Libtool version $1 or higher is required], -+ 63)])], -+ [$2])]) -+ -+ -+# _LT_CHECK_BUILDDIR -+# ------------------ -+# Complain if the absolute build directory name contains unusual characters -+m4_defun([_LT_CHECK_BUILDDIR], -+[case `pwd` in -+ *\ * | *\ *) -+ AC_MSG_WARN([Libtool does not cope well with whitespace in `pwd`]) ;; -+esac -+]) -+ -+ -+# LT_INIT([OPTIONS]) -+# ------------------ -+AC_DEFUN([LT_INIT], -+[AC_PREREQ([2.58])dnl We use AC_INCLUDES_DEFAULT -+AC_BEFORE([$0], [LT_LANG])dnl -+AC_BEFORE([$0], [LT_OUTPUT])dnl -+AC_BEFORE([$0], [LTDL_INIT])dnl -+m4_require([_LT_CHECK_BUILDDIR])dnl -+ -+dnl Autoconf doesn't catch unexpanded LT_ macros by default: -+m4_pattern_forbid([^_?LT_[A-Z_]+$])dnl -+m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$])dnl -+dnl aclocal doesn't pull ltoptions.m4, ltsugar.m4, or ltversion.m4 -+dnl unless we require an AC_DEFUNed macro: -+AC_REQUIRE([LTOPTIONS_VERSION])dnl -+AC_REQUIRE([LTSUGAR_VERSION])dnl -+AC_REQUIRE([LTVERSION_VERSION])dnl -+AC_REQUIRE([LTOBSOLETE_VERSION])dnl -+m4_require([_LT_PROG_LTMAIN])dnl -+ -+dnl Parse OPTIONS -+_LT_SET_OPTIONS([$0], [$1]) -+ -+# This can be used to rebuild libtool when needed -+LIBTOOL_DEPS="$ltmain" -+ -+# Always use our own libtool. -+LIBTOOL='$(SHELL) $(top_builddir)/libtool' -+AC_SUBST(LIBTOOL)dnl -+ -+_LT_SETUP -+ -+# Only expand once: -+m4_define([LT_INIT]) -+])# LT_INIT -+ -+# Old names: -+AU_ALIAS([AC_PROG_LIBTOOL], [LT_INIT]) -+AU_ALIAS([AM_PROG_LIBTOOL], [LT_INIT]) -+dnl aclocal-1.4 backwards compatibility: -+dnl AC_DEFUN([AC_PROG_LIBTOOL], []) -+dnl AC_DEFUN([AM_PROG_LIBTOOL], []) -+ -+ -+# _LT_CC_BASENAME(CC) -+# ------------------- -+# Calculate cc_basename. Skip known compiler wrappers and cross-prefix. -+m4_defun([_LT_CC_BASENAME], -+[for cc_temp in $1""; do -+ case $cc_temp in -+ compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;; -+ distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;; -+ \-*) ;; -+ *) break;; -+ esac -+done -+cc_basename=`$ECHO "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` -+]) -+ -+ -+# _LT_FILEUTILS_DEFAULTS -+# ---------------------- -+# It is okay to use these file commands and assume they have been set -+# sensibly after `m4_require([_LT_FILEUTILS_DEFAULTS])'. -+m4_defun([_LT_FILEUTILS_DEFAULTS], -+[: ${CP="cp -f"} -+: ${MV="mv -f"} -+: ${RM="rm -f"} -+])# _LT_FILEUTILS_DEFAULTS -+ -+ -+# _LT_SETUP -+# --------- -+m4_defun([_LT_SETUP], -+[AC_REQUIRE([AC_CANONICAL_HOST])dnl -+AC_REQUIRE([AC_CANONICAL_BUILD])dnl -+_LT_DECL([], [host_alias], [0], [The host system])dnl -+_LT_DECL([], [host], [0])dnl -+_LT_DECL([], [host_os], [0])dnl -+dnl -+_LT_DECL([], [build_alias], [0], [The build system])dnl -+_LT_DECL([], [build], [0])dnl -+_LT_DECL([], [build_os], [0])dnl -+dnl -+AC_REQUIRE([AC_PROG_CC])dnl -+AC_REQUIRE([LT_PATH_LD])dnl -+AC_REQUIRE([LT_PATH_NM])dnl -+dnl -+AC_REQUIRE([AC_PROG_LN_S])dnl -+test -z "$LN_S" && LN_S="ln -s" -+_LT_DECL([], [LN_S], [1], [Whether we need soft or hard links])dnl -+dnl -+AC_REQUIRE([LT_CMD_MAX_LEN])dnl -+_LT_DECL([objext], [ac_objext], [0], [Object file suffix (normally "o")])dnl -+_LT_DECL([], [exeext], [0], [Executable file suffix (normally "")])dnl -+dnl -+m4_require([_LT_FILEUTILS_DEFAULTS])dnl -+m4_require([_LT_CHECK_SHELL_FEATURES])dnl -+m4_require([_LT_CMD_RELOAD])dnl -+m4_require([_LT_CHECK_MAGIC_METHOD])dnl -+m4_require([_LT_CMD_OLD_ARCHIVE])dnl -+m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl -+ -+_LT_CONFIG_LIBTOOL_INIT([ -+# See if we are running on zsh, and set the options which allow our -+# commands through without removal of \ escapes INIT. -+if test -n "\${ZSH_VERSION+set}" ; then -+ setopt NO_GLOB_SUBST -+fi -+]) -+if test -n "${ZSH_VERSION+set}" ; then -+ setopt NO_GLOB_SUBST -+fi -+ -+_LT_CHECK_OBJDIR -+ -+m4_require([_LT_TAG_COMPILER])dnl -+_LT_PROG_ECHO_BACKSLASH -+ -+case $host_os in -+aix3*) -+ # AIX sometimes has problems with the GCC collect2 program. For some -+ # reason, if we set the COLLECT_NAMES environment variable, the problems -+ # vanish in a puff of smoke. -+ if test "X${COLLECT_NAMES+set}" != Xset; then -+ COLLECT_NAMES= -+ export COLLECT_NAMES -+ fi -+ ;; -+esac -+ -+# Sed substitution that helps us do robust quoting. It backslashifies -+# metacharacters that are still active within double-quoted strings. -+sed_quote_subst='s/\([["`$\\]]\)/\\\1/g' -+ -+# Same as above, but do not quote variable references. -+double_quote_subst='s/\([["`\\]]\)/\\\1/g' -+ -+# Sed substitution to delay expansion of an escaped shell variable in a -+# double_quote_subst'ed string. -+delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' -+ -+# Sed substitution to delay expansion of an escaped single quote. -+delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' -+ -+# Sed substitution to avoid accidental globbing in evaled expressions -+no_glob_subst='s/\*/\\\*/g' -+ -+# Global variables: -+ofile=libtool -+can_build_shared=yes -+ -+# All known linkers require a `.a' archive for static linking (except MSVC, -+# which needs '.lib'). -+libext=a -+ -+with_gnu_ld="$lt_cv_prog_gnu_ld" -+ -+old_CC="$CC" -+old_CFLAGS="$CFLAGS" -+ -+# Set sane defaults for various variables -+test -z "$CC" && CC=cc -+test -z "$LTCC" && LTCC=$CC -+test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS -+test -z "$LD" && LD=ld -+test -z "$ac_objext" && ac_objext=o -+ -+_LT_CC_BASENAME([$compiler]) -+ -+# Only perform the check for file, if the check method requires it -+test -z "$MAGIC_CMD" && MAGIC_CMD=file -+case $deplibs_check_method in -+file_magic*) -+ if test "$file_magic_cmd" = '$MAGIC_CMD'; then -+ _LT_PATH_MAGIC -+ fi -+ ;; -+esac -+ -+# Use C for the default configuration in the libtool script -+LT_SUPPORTED_TAG([CC]) -+_LT_LANG_C_CONFIG -+_LT_LANG_DEFAULT_CONFIG -+_LT_CONFIG_COMMANDS -+])# _LT_SETUP -+ -+ -+# _LT_PROG_LTMAIN -+# --------------- -+# Note that this code is called both from `configure', and `config.status' -+# now that we use AC_CONFIG_COMMANDS to generate libtool. Notably, -+# `config.status' has no value for ac_aux_dir unless we are using Automake, -+# so we pass a copy along to make sure it has a sensible value anyway. -+m4_defun([_LT_PROG_LTMAIN], -+[m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([ltmain.sh])])dnl -+_LT_CONFIG_LIBTOOL_INIT([ac_aux_dir='$ac_aux_dir']) -+ltmain="$ac_aux_dir/ltmain.sh" -+])# _LT_PROG_LTMAIN -+ -+ -+## ------------------------------------- ## -+## Accumulate code for creating libtool. ## -+## ------------------------------------- ## -+ -+# So that we can recreate a full libtool script including additional -+# tags, we accumulate the chunks of code to send to AC_CONFIG_COMMANDS -+# in macros and then make a single call at the end using the `libtool' -+# label. -+ -+ -+# _LT_CONFIG_LIBTOOL_INIT([INIT-COMMANDS]) -+# ---------------------------------------- -+# Register INIT-COMMANDS to be passed to AC_CONFIG_COMMANDS later. -+m4_define([_LT_CONFIG_LIBTOOL_INIT], -+[m4_ifval([$1], -+ [m4_append([_LT_OUTPUT_LIBTOOL_INIT], -+ [$1 -+])])]) -+ -+# Initialize. -+m4_define([_LT_OUTPUT_LIBTOOL_INIT]) -+ -+ -+# _LT_CONFIG_LIBTOOL([COMMANDS]) -+# ------------------------------ -+# Register COMMANDS to be passed to AC_CONFIG_COMMANDS later. -+m4_define([_LT_CONFIG_LIBTOOL], -+[m4_ifval([$1], -+ [m4_append([_LT_OUTPUT_LIBTOOL_COMMANDS], -+ [$1 -+])])]) -+ -+# Initialize. -+m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS]) -+ -+ -+# _LT_CONFIG_SAVE_COMMANDS([COMMANDS], [INIT_COMMANDS]) -+# ----------------------------------------------------- -+m4_defun([_LT_CONFIG_SAVE_COMMANDS], -+[_LT_CONFIG_LIBTOOL([$1]) -+_LT_CONFIG_LIBTOOL_INIT([$2]) -+]) -+ -+ -+# _LT_FORMAT_COMMENT([COMMENT]) -+# ----------------------------- -+# Add leading comment marks to the start of each line, and a trailing -+# full-stop to the whole comment if one is not present already. -+m4_define([_LT_FORMAT_COMMENT], -+[m4_ifval([$1], [ -+m4_bpatsubst([m4_bpatsubst([$1], [^ *], [# ])], -+ [['`$\]], [\\\&])]m4_bmatch([$1], [[!?.]$], [], [.]) -+)]) -+ -+ -+ -+## ------------------------ ## -+## FIXME: Eliminate VARNAME ## -+## ------------------------ ## -+ -+ -+# _LT_DECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION], [IS-TAGGED?]) -+# ------------------------------------------------------------------- -+# CONFIGNAME is the name given to the value in the libtool script. -+# VARNAME is the (base) name used in the configure script. -+# VALUE may be 0, 1 or 2 for a computed quote escaped value based on -+# VARNAME. Any other value will be used directly. -+m4_define([_LT_DECL], -+[lt_if_append_uniq([lt_decl_varnames], [$2], [, ], -+ [lt_dict_add_subkey([lt_decl_dict], [$2], [libtool_name], -+ [m4_ifval([$1], [$1], [$2])]) -+ lt_dict_add_subkey([lt_decl_dict], [$2], [value], [$3]) -+ m4_ifval([$4], -+ [lt_dict_add_subkey([lt_decl_dict], [$2], [description], [$4])]) -+ lt_dict_add_subkey([lt_decl_dict], [$2], -+ [tagged?], [m4_ifval([$5], [yes], [no])])]) -+]) -+ -+ -+# _LT_TAGDECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION]) -+# -------------------------------------------------------- -+m4_define([_LT_TAGDECL], [_LT_DECL([$1], [$2], [$3], [$4], [yes])]) -+ -+ -+# lt_decl_tag_varnames([SEPARATOR], [VARNAME1...]) -+# ------------------------------------------------ -+m4_define([lt_decl_tag_varnames], -+[_lt_decl_filter([tagged?], [yes], $@)]) -+ -+ -+# _lt_decl_filter(SUBKEY, VALUE, [SEPARATOR], [VARNAME1..]) -+# --------------------------------------------------------- -+m4_define([_lt_decl_filter], -+[m4_case([$#], -+ [0], [m4_fatal([$0: too few arguments: $#])], -+ [1], [m4_fatal([$0: too few arguments: $#: $1])], -+ [2], [lt_dict_filter([lt_decl_dict], [$1], [$2], [], lt_decl_varnames)], -+ [3], [lt_dict_filter([lt_decl_dict], [$1], [$2], [$3], lt_decl_varnames)], -+ [lt_dict_filter([lt_decl_dict], $@)])[]dnl -+]) -+ -+ -+# lt_decl_quote_varnames([SEPARATOR], [VARNAME1...]) -+# -------------------------------------------------- -+m4_define([lt_decl_quote_varnames], -+[_lt_decl_filter([value], [1], $@)]) -+ -+ -+# lt_decl_dquote_varnames([SEPARATOR], [VARNAME1...]) -+# --------------------------------------------------- -+m4_define([lt_decl_dquote_varnames], -+[_lt_decl_filter([value], [2], $@)]) -+ -+ -+# lt_decl_varnames_tagged([SEPARATOR], [VARNAME1...]) -+# --------------------------------------------------- -+m4_define([lt_decl_varnames_tagged], -+[m4_assert([$# <= 2])dnl -+_$0(m4_quote(m4_default([$1], [[, ]])), -+ m4_ifval([$2], [[$2]], [m4_dquote(lt_decl_tag_varnames)]), -+ m4_split(m4_normalize(m4_quote(_LT_TAGS)), [ ]))]) -+m4_define([_lt_decl_varnames_tagged], -+[m4_ifval([$3], [lt_combine([$1], [$2], [_], $3)])]) -+ -+ -+# lt_decl_all_varnames([SEPARATOR], [VARNAME1...]) -+# ------------------------------------------------ -+m4_define([lt_decl_all_varnames], -+[_$0(m4_quote(m4_default([$1], [[, ]])), -+ m4_if([$2], [], -+ m4_quote(lt_decl_varnames), -+ m4_quote(m4_shift($@))))[]dnl -+]) -+m4_define([_lt_decl_all_varnames], -+[lt_join($@, lt_decl_varnames_tagged([$1], -+ lt_decl_tag_varnames([[, ]], m4_shift($@))))dnl -+]) -+ -+ -+# _LT_CONFIG_STATUS_DECLARE([VARNAME]) -+# ------------------------------------ -+# Quote a variable value, and forward it to `config.status' so that its -+# declaration there will have the same value as in `configure'. VARNAME -+# must have a single quote delimited value for this to work. -+m4_define([_LT_CONFIG_STATUS_DECLARE], -+[$1='`$ECHO "X$][$1" | $Xsed -e "$delay_single_quote_subst"`']) -+ -+ -+# _LT_CONFIG_STATUS_DECLARATIONS -+# ------------------------------ -+# We delimit libtool config variables with single quotes, so when -+# we write them to config.status, we have to be sure to quote all -+# embedded single quotes properly. In configure, this macro expands -+# each variable declared with _LT_DECL (and _LT_TAGDECL) into: -+# -+# ='`$ECHO "X$" | $Xsed -e "$delay_single_quote_subst"`' -+m4_defun([_LT_CONFIG_STATUS_DECLARATIONS], -+[m4_foreach([_lt_var], m4_quote(lt_decl_all_varnames), -+ [m4_n([_LT_CONFIG_STATUS_DECLARE(_lt_var)])])]) -+ -+ -+# _LT_LIBTOOL_TAGS -+# ---------------- -+# Output comment and list of tags supported by the script -+m4_defun([_LT_LIBTOOL_TAGS], -+[_LT_FORMAT_COMMENT([The names of the tagged configurations supported by this script])dnl -+available_tags="_LT_TAGS"dnl -+]) -+ -+ -+# _LT_LIBTOOL_DECLARE(VARNAME, [TAG]) -+# ----------------------------------- -+# Extract the dictionary values for VARNAME (optionally with TAG) and -+# expand to a commented shell variable setting: -+# -+# # Some comment about what VAR is for. -+# visible_name=$lt_internal_name -+m4_define([_LT_LIBTOOL_DECLARE], -+[_LT_FORMAT_COMMENT(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], -+ [description])))[]dnl -+m4_pushdef([_libtool_name], -+ m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [libtool_name])))[]dnl -+m4_case(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [value])), -+ [0], [_libtool_name=[$]$1], -+ [1], [_libtool_name=$lt_[]$1], -+ [2], [_libtool_name=$lt_[]$1], -+ [_libtool_name=lt_dict_fetch([lt_decl_dict], [$1], [value])])[]dnl -+m4_ifval([$2], [_$2])[]m4_popdef([_libtool_name])[]dnl -+]) -+ -+ -+# _LT_LIBTOOL_CONFIG_VARS -+# ----------------------- -+# Produce commented declarations of non-tagged libtool config variables -+# suitable for insertion in the LIBTOOL CONFIG section of the `libtool' -+# script. Tagged libtool config variables (even for the LIBTOOL CONFIG -+# section) are produced by _LT_LIBTOOL_TAG_VARS. -+m4_defun([_LT_LIBTOOL_CONFIG_VARS], -+[m4_foreach([_lt_var], -+ m4_quote(_lt_decl_filter([tagged?], [no], [], lt_decl_varnames)), -+ [m4_n([_LT_LIBTOOL_DECLARE(_lt_var)])])]) -+ -+ -+# _LT_LIBTOOL_TAG_VARS(TAG) -+# ------------------------- -+m4_define([_LT_LIBTOOL_TAG_VARS], -+[m4_foreach([_lt_var], m4_quote(lt_decl_tag_varnames), -+ [m4_n([_LT_LIBTOOL_DECLARE(_lt_var, [$1])])])]) -+ -+ -+# _LT_TAGVAR(VARNAME, [TAGNAME]) -+# ------------------------------ -+m4_define([_LT_TAGVAR], [m4_ifval([$2], [$1_$2], [$1])]) -+ -+ -+# _LT_CONFIG_COMMANDS -+# ------------------- -+# Send accumulated output to $CONFIG_STATUS. Thanks to the lists of -+# variables for single and double quote escaping we saved from calls -+# to _LT_DECL, we can put quote escaped variables declarations -+# into `config.status', and then the shell code to quote escape them in -+# for loops in `config.status'. Finally, any additional code accumulated -+# from calls to _LT_CONFIG_LIBTOOL_INIT is expanded. -+m4_defun([_LT_CONFIG_COMMANDS], -+[AC_PROVIDE_IFELSE([LT_OUTPUT], -+ dnl If the libtool generation code has been placed in $CONFIG_LT, -+ dnl instead of duplicating it all over again into config.status, -+ dnl then we will have config.status run $CONFIG_LT later, so it -+ dnl needs to know what name is stored there: -+ [AC_CONFIG_COMMANDS([libtool], -+ [$SHELL $CONFIG_LT || AS_EXIT(1)], [CONFIG_LT='$CONFIG_LT'])], -+ dnl If the libtool generation code is destined for config.status, -+ dnl expand the accumulated commands and init code now: -+ [AC_CONFIG_COMMANDS([libtool], -+ [_LT_OUTPUT_LIBTOOL_COMMANDS], [_LT_OUTPUT_LIBTOOL_COMMANDS_INIT])]) -+])#_LT_CONFIG_COMMANDS -+ -+ -+# Initialize. -+m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS_INIT], -+[ -+ -+# The HP-UX ksh and POSIX shell print the target directory to stdout -+# if CDPATH is set. -+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH -+ -+sed_quote_subst='$sed_quote_subst' -+double_quote_subst='$double_quote_subst' -+delay_variable_subst='$delay_variable_subst' -+_LT_CONFIG_STATUS_DECLARATIONS -+LTCC='$LTCC' -+LTCFLAGS='$LTCFLAGS' -+compiler='$compiler_DEFAULT' -+ -+# Quote evaled strings. -+for var in lt_decl_all_varnames([[ \ -+]], lt_decl_quote_varnames); do -+ case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in -+ *[[\\\\\\\`\\"\\\$]]*) -+ eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" -+ ;; -+ *) -+ eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" -+ ;; -+ esac -+done -+ -+# Double-quote double-evaled strings. -+for var in lt_decl_all_varnames([[ \ -+]], lt_decl_dquote_varnames); do -+ case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in -+ *[[\\\\\\\`\\"\\\$]]*) -+ eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" -+ ;; -+ *) -+ eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" -+ ;; -+ esac -+done -+ -+# Fix-up fallback echo if it was mangled by the above quoting rules. -+case \$lt_ECHO in -+*'\\\[$]0 --fallback-echo"')dnl " -+ lt_ECHO=\`\$ECHO "X\$lt_ECHO" | \$Xsed -e 's/\\\\\\\\\\\\\\\[$]0 --fallback-echo"\[$]/\[$]0 --fallback-echo"/'\` -+ ;; -+esac -+ -+_LT_OUTPUT_LIBTOOL_INIT -+]) -+ -+ -+# LT_OUTPUT -+# --------- -+# This macro allows early generation of the libtool script (before -+# AC_OUTPUT is called), incase it is used in configure for compilation -+# tests. -+AC_DEFUN([LT_OUTPUT], -+[: ${CONFIG_LT=./config.lt} -+AC_MSG_NOTICE([creating $CONFIG_LT]) -+cat >"$CONFIG_LT" <<_LTEOF -+#! $SHELL -+# Generated by $as_me. -+# Run this file to recreate a libtool stub with the current configuration. -+ -+lt_cl_silent=false -+SHELL=\${CONFIG_SHELL-$SHELL} -+_LTEOF -+ -+cat >>"$CONFIG_LT" <<\_LTEOF -+AS_SHELL_SANITIZE -+_AS_PREPARE -+ -+exec AS_MESSAGE_FD>&1 -+exec AS_MESSAGE_LOG_FD>>config.log -+{ -+ echo -+ AS_BOX([Running $as_me.]) -+} >&AS_MESSAGE_LOG_FD -+ -+lt_cl_help="\ -+\`$as_me' creates a local libtool stub from the current configuration, -+for use in further configure time tests before the real libtool is -+generated. -+ -+Usage: $[0] [[OPTIONS]] -+ -+ -h, --help print this help, then exit -+ -V, --version print version number, then exit -+ -q, --quiet do not print progress messages -+ -d, --debug don't remove temporary files -+ -+Report bugs to ." -+ -+lt_cl_version="\ -+m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])config.lt[]dnl -+m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION]) -+configured by $[0], generated by m4_PACKAGE_STRING. -+ -+Copyright (C) 2008 Free Software Foundation, Inc. -+This config.lt script is free software; the Free Software Foundation -+gives unlimited permision to copy, distribute and modify it." -+ -+while test $[#] != 0 -+do -+ case $[1] in -+ --version | --v* | -V ) -+ echo "$lt_cl_version"; exit 0 ;; -+ --help | --h* | -h ) -+ echo "$lt_cl_help"; exit 0 ;; -+ --debug | --d* | -d ) -+ debug=: ;; -+ --quiet | --q* | --silent | --s* | -q ) -+ lt_cl_silent=: ;; -+ -+ -*) AC_MSG_ERROR([unrecognized option: $[1] -+Try \`$[0] --help' for more information.]) ;; -+ -+ *) AC_MSG_ERROR([unrecognized argument: $[1] -+Try \`$[0] --help' for more information.]) ;; -+ esac -+ shift -+done -+ -+if $lt_cl_silent; then -+ exec AS_MESSAGE_FD>/dev/null -+fi -+_LTEOF -+ -+cat >>"$CONFIG_LT" <<_LTEOF -+_LT_OUTPUT_LIBTOOL_COMMANDS_INIT -+_LTEOF -+ -+cat >>"$CONFIG_LT" <<\_LTEOF -+AC_MSG_NOTICE([creating $ofile]) -+_LT_OUTPUT_LIBTOOL_COMMANDS -+AS_EXIT(0) -+_LTEOF -+chmod +x "$CONFIG_LT" -+ -+# configure is writing to config.log, but config.lt does its own redirection, -+# appending to config.log, which fails on DOS, as config.log is still kept -+# open by configure. Here we exec the FD to /dev/null, effectively closing -+# config.log, so it can be properly (re)opened and appended to by config.lt. -+if test "$no_create" != yes; then -+ lt_cl_success=: -+ test "$silent" = yes && -+ lt_config_lt_args="$lt_config_lt_args --quiet" -+ exec AS_MESSAGE_LOG_FD>/dev/null -+ $SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false -+ exec AS_MESSAGE_LOG_FD>>config.log -+ $lt_cl_success || AS_EXIT(1) -+fi -+])# LT_OUTPUT -+ -+ -+# _LT_CONFIG(TAG) -+# --------------- -+# If TAG is the built-in tag, create an initial libtool script with a -+# default configuration from the untagged config vars. Otherwise add code -+# to config.status for appending the configuration named by TAG from the -+# matching tagged config vars. -+m4_defun([_LT_CONFIG], -+[m4_require([_LT_FILEUTILS_DEFAULTS])dnl -+_LT_CONFIG_SAVE_COMMANDS([ -+ m4_define([_LT_TAG], m4_if([$1], [], [C], [$1]))dnl -+ m4_if(_LT_TAG, [C], [ -+ # See if we are running on zsh, and set the options which allow our -+ # commands through without removal of \ escapes. -+ if test -n "${ZSH_VERSION+set}" ; then -+ setopt NO_GLOB_SUBST -+ fi -+ -+ cfgfile="${ofile}T" -+ trap "$RM \"$cfgfile\"; exit 1" 1 2 15 -+ $RM "$cfgfile" -+ -+ cat <<_LT_EOF >> "$cfgfile" -+#! $SHELL -+ -+# `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. -+# Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION -+# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: -+# NOTE: Changes made to this file will be lost: look at ltmain.sh. -+# -+_LT_COPYING -+_LT_LIBTOOL_TAGS -+ -+# ### BEGIN LIBTOOL CONFIG -+_LT_LIBTOOL_CONFIG_VARS -+_LT_LIBTOOL_TAG_VARS -+# ### END LIBTOOL CONFIG -+ -+_LT_EOF -+ -+ case $host_os in -+ aix3*) -+ cat <<\_LT_EOF >> "$cfgfile" -+# AIX sometimes has problems with the GCC collect2 program. For some -+# reason, if we set the COLLECT_NAMES environment variable, the problems -+# vanish in a puff of smoke. -+if test "X${COLLECT_NAMES+set}" != Xset; then -+ COLLECT_NAMES= -+ export COLLECT_NAMES -+fi -+_LT_EOF -+ ;; -+ esac -+ -+ _LT_PROG_LTMAIN -+ -+ # We use sed instead of cat because bash on DJGPP gets confused if -+ # if finds mixed CR/LF and LF-only lines. Since sed operates in -+ # text mode, it properly converts lines to CR/LF. This bash problem -+ # is reportedly fixed, but why not run on old versions too? -+ sed '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \ -+ || (rm -f "$cfgfile"; exit 1) -+ -+ _LT_PROG_XSI_SHELLFNS -+ -+ sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \ -+ || (rm -f "$cfgfile"; exit 1) -+ -+ mv -f "$cfgfile" "$ofile" || -+ (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") -+ chmod +x "$ofile" -+], -+[cat <<_LT_EOF >> "$ofile" -+ -+dnl Unfortunately we have to use $1 here, since _LT_TAG is not expanded -+dnl in a comment (ie after a #). -+# ### BEGIN LIBTOOL TAG CONFIG: $1 -+_LT_LIBTOOL_TAG_VARS(_LT_TAG) -+# ### END LIBTOOL TAG CONFIG: $1 -+_LT_EOF -+])dnl /m4_if -+], -+[m4_if([$1], [], [ -+ PACKAGE='$PACKAGE' -+ VERSION='$VERSION' -+ TIMESTAMP='$TIMESTAMP' -+ RM='$RM' -+ ofile='$ofile'], []) -+])dnl /_LT_CONFIG_SAVE_COMMANDS -+])# _LT_CONFIG -+ -+ -+# LT_SUPPORTED_TAG(TAG) -+# --------------------- -+# Trace this macro to discover what tags are supported by the libtool -+# --tag option, using: -+# autoconf --trace 'LT_SUPPORTED_TAG:$1' -+AC_DEFUN([LT_SUPPORTED_TAG], []) -+ -+ -+# C support is built-in for now -+m4_define([_LT_LANG_C_enabled], []) -+m4_define([_LT_TAGS], []) -+ -+ -+# LT_LANG(LANG) -+# ------------- -+# Enable libtool support for the given language if not already enabled. -+AC_DEFUN([LT_LANG], -+[AC_BEFORE([$0], [LT_OUTPUT])dnl -+m4_case([$1], -+ [C], [_LT_LANG(C)], -+ [C++], [_LT_LANG(CXX)], -+ [Java], [_LT_LANG(GCJ)], -+ [Fortran 77], [_LT_LANG(F77)], -+ [Fortran], [_LT_LANG(FC)], -+ [Windows Resource], [_LT_LANG(RC)], -+ [m4_ifdef([_LT_LANG_]$1[_CONFIG], -+ [_LT_LANG($1)], -+ [m4_fatal([$0: unsupported language: "$1"])])])dnl -+])# LT_LANG -+ -+ -+# _LT_LANG(LANGNAME) -+# ------------------ -+m4_defun([_LT_LANG], -+[m4_ifdef([_LT_LANG_]$1[_enabled], [], -+ [LT_SUPPORTED_TAG([$1])dnl -+ m4_append([_LT_TAGS], [$1 ])dnl -+ m4_define([_LT_LANG_]$1[_enabled], [])dnl -+ _LT_LANG_$1_CONFIG($1)])dnl -+])# _LT_LANG -+ -+ -+# _LT_LANG_DEFAULT_CONFIG -+# ----------------------- -+m4_defun([_LT_LANG_DEFAULT_CONFIG], -+[AC_PROVIDE_IFELSE([AC_PROG_CXX], -+ [LT_LANG(CXX)], -+ [m4_define([AC_PROG_CXX], defn([AC_PROG_CXX])[LT_LANG(CXX)])]) -+ -+AC_PROVIDE_IFELSE([AC_PROG_F77], -+ [LT_LANG(F77)], -+ [m4_define([AC_PROG_F77], defn([AC_PROG_F77])[LT_LANG(F77)])]) -+ -+AC_PROVIDE_IFELSE([AC_PROG_FC], -+ [LT_LANG(FC)], -+ [m4_define([AC_PROG_FC], defn([AC_PROG_FC])[LT_LANG(FC)])]) -+ -+dnl The call to [A][M_PROG_GCJ] is quoted like that to stop aclocal -+dnl pulling things in needlessly. -+AC_PROVIDE_IFELSE([AC_PROG_GCJ], -+ [LT_LANG(GCJ)], -+ [AC_PROVIDE_IFELSE([A][M_PROG_GCJ], -+ [LT_LANG(GCJ)], -+ [AC_PROVIDE_IFELSE([LT_PROG_GCJ], -+ [LT_LANG(GCJ)], -+ [m4_ifdef([AC_PROG_GCJ], -+ [m4_define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[LT_LANG(GCJ)])]) -+ m4_ifdef([A][M_PROG_GCJ], -+ [m4_define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[LT_LANG(GCJ)])]) -+ m4_ifdef([LT_PROG_GCJ], -+ [m4_define([LT_PROG_GCJ], defn([LT_PROG_GCJ])[LT_LANG(GCJ)])])])])]) -+ -+AC_PROVIDE_IFELSE([LT_PROG_RC], -+ [LT_LANG(RC)], -+ [m4_define([LT_PROG_RC], defn([LT_PROG_RC])[LT_LANG(RC)])]) -+])# _LT_LANG_DEFAULT_CONFIG -+ -+# Obsolete macros: -+AU_DEFUN([AC_LIBTOOL_CXX], [LT_LANG(C++)]) -+AU_DEFUN([AC_LIBTOOL_F77], [LT_LANG(Fortran 77)]) -+AU_DEFUN([AC_LIBTOOL_FC], [LT_LANG(Fortran)]) -+AU_DEFUN([AC_LIBTOOL_GCJ], [LT_LANG(Java)]) -+dnl aclocal-1.4 backwards compatibility: -+dnl AC_DEFUN([AC_LIBTOOL_CXX], []) -+dnl AC_DEFUN([AC_LIBTOOL_F77], []) -+dnl AC_DEFUN([AC_LIBTOOL_FC], []) -+dnl AC_DEFUN([AC_LIBTOOL_GCJ], []) -+ -+ -+# _LT_TAG_COMPILER -+# ---------------- -+m4_defun([_LT_TAG_COMPILER], -+[AC_REQUIRE([AC_PROG_CC])dnl -+ -+_LT_DECL([LTCC], [CC], [1], [A C compiler])dnl -+_LT_DECL([LTCFLAGS], [CFLAGS], [1], [LTCC compiler flags])dnl -+_LT_TAGDECL([CC], [compiler], [1], [A language specific compiler])dnl -+_LT_TAGDECL([with_gcc], [GCC], [0], [Is the compiler the GNU compiler?])dnl -+ -+# If no C compiler was specified, use CC. -+LTCC=${LTCC-"$CC"} -+ -+# If no C compiler flags were specified, use CFLAGS. -+LTCFLAGS=${LTCFLAGS-"$CFLAGS"} -+ -+# Allow CC to be a program name with arguments. -+compiler=$CC -+])# _LT_TAG_COMPILER -+ -+ -+# _LT_COMPILER_BOILERPLATE -+# ------------------------ -+# Check for compiler boilerplate output or warnings with -+# the simple compiler test code. -+m4_defun([_LT_COMPILER_BOILERPLATE], -+[m4_require([_LT_DECL_SED])dnl -+ac_outfile=conftest.$ac_objext -+echo "$lt_simple_compile_test_code" >conftest.$ac_ext -+eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err -+_lt_compiler_boilerplate=`cat conftest.err` -+$RM conftest* -+])# _LT_COMPILER_BOILERPLATE -+ -+ -+# _LT_LINKER_BOILERPLATE -+# ---------------------- -+# Check for linker boilerplate output or warnings with -+# the simple link test code. -+m4_defun([_LT_LINKER_BOILERPLATE], -+[m4_require([_LT_DECL_SED])dnl -+ac_outfile=conftest.$ac_objext -+echo "$lt_simple_link_test_code" >conftest.$ac_ext -+eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err -+_lt_linker_boilerplate=`cat conftest.err` -+$RM -r conftest* -+])# _LT_LINKER_BOILERPLATE -+ -+# _LT_REQUIRED_DARWIN_CHECKS -+# ------------------------- -+m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[ -+ case $host_os in -+ rhapsody* | darwin*) -+ AC_CHECK_TOOL([DSYMUTIL], [dsymutil], [:]) -+ AC_CHECK_TOOL([NMEDIT], [nmedit], [:]) -+ AC_CHECK_TOOL([LIPO], [lipo], [:]) -+ AC_CHECK_TOOL([OTOOL], [otool], [:]) -+ AC_CHECK_TOOL([OTOOL64], [otool64], [:]) -+ _LT_DECL([], [DSYMUTIL], [1], -+ [Tool to manipulate archived DWARF debug symbol files on Mac OS X]) -+ _LT_DECL([], [NMEDIT], [1], -+ [Tool to change global to local symbols on Mac OS X]) -+ _LT_DECL([], [LIPO], [1], -+ [Tool to manipulate fat objects and archives on Mac OS X]) -+ _LT_DECL([], [OTOOL], [1], -+ [ldd/readelf like tool for Mach-O binaries on Mac OS X]) -+ _LT_DECL([], [OTOOL64], [1], -+ [ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4]) -+ -+ AC_CACHE_CHECK([for -single_module linker flag],[lt_cv_apple_cc_single_mod], -+ [lt_cv_apple_cc_single_mod=no -+ if test -z "${LT_MULTI_MODULE}"; then -+ # By default we will add the -single_module flag. You can override -+ # by either setting the environment variable LT_MULTI_MODULE -+ # non-empty at configure time, or by adding -multi_module to the -+ # link flags. -+ rm -rf libconftest.dylib* -+ echo "int foo(void){return 1;}" > conftest.c -+ echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -+-dynamiclib -Wl,-single_module conftest.c" >&AS_MESSAGE_LOG_FD -+ $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -+ -dynamiclib -Wl,-single_module conftest.c 2>conftest.err -+ _lt_result=$? -+ if test -f libconftest.dylib && test ! -s conftest.err && test $_lt_result = 0; then -+ lt_cv_apple_cc_single_mod=yes -+ else -+ cat conftest.err >&AS_MESSAGE_LOG_FD -+ fi -+ rm -rf libconftest.dylib* -+ rm -f conftest.* -+ fi]) -+ AC_CACHE_CHECK([for -exported_symbols_list linker flag], -+ [lt_cv_ld_exported_symbols_list], -+ [lt_cv_ld_exported_symbols_list=no -+ save_LDFLAGS=$LDFLAGS -+ echo "_main" > conftest.sym -+ LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" -+ AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], -+ [lt_cv_ld_exported_symbols_list=yes], -+ [lt_cv_ld_exported_symbols_list=no]) -+ LDFLAGS="$save_LDFLAGS" -+ ]) -+ case $host_os in -+ rhapsody* | darwin1.[[012]]) -+ _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;; -+ darwin1.*) -+ _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; -+ darwin*) # darwin 5.x on -+ # if running on 10.5 or later, the deployment target defaults -+ # to the OS version, if on x86, and 10.4, the deployment -+ # target defaults to 10.4. Don't you love it? -+ case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in -+ 10.0,*86*-darwin8*|10.0,*-darwin[[91]]*) -+ _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; -+ 10.[[012]]*) -+ _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; -+ 10.*) -+ _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; -+ esac -+ ;; -+ esac -+ if test "$lt_cv_apple_cc_single_mod" = "yes"; then -+ _lt_dar_single_mod='$single_module' -+ fi -+ if test "$lt_cv_ld_exported_symbols_list" = "yes"; then -+ _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym' -+ else -+ _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}' -+ fi -+ if test "$DSYMUTIL" != ":"; then -+ _lt_dsymutil='~$DSYMUTIL $lib || :' -+ else -+ _lt_dsymutil= -+ fi -+ ;; -+ esac -+]) -+ -+ -+# _LT_DARWIN_LINKER_FEATURES -+# -------------------------- -+# Checks for linker and compiler features on darwin -+m4_defun([_LT_DARWIN_LINKER_FEATURES], -+[ -+ m4_require([_LT_REQUIRED_DARWIN_CHECKS]) -+ _LT_TAGVAR(archive_cmds_need_lc, $1)=no -+ _LT_TAGVAR(hardcode_direct, $1)=no -+ _LT_TAGVAR(hardcode_automatic, $1)=yes -+ _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported -+ _LT_TAGVAR(whole_archive_flag_spec, $1)='' -+ _LT_TAGVAR(link_all_deplibs, $1)=yes -+ _LT_TAGVAR(allow_undefined_flag, $1)="$_lt_dar_allow_undefined" -+ case $cc_basename in -+ ifort*) _lt_dar_can_shared=yes ;; -+ *) _lt_dar_can_shared=$GCC ;; -+ esac -+ if test "$_lt_dar_can_shared" = "yes"; then -+ output_verbose_link_cmd=echo -+ _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" -+ _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" -+ _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" -+ _LT_TAGVAR(module_expsym_cmds, $1)="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" -+ m4_if([$1], [CXX], -+[ if test "$lt_cv_apple_cc_single_mod" != "yes"; then -+ _LT_TAGVAR(archive_cmds, $1)="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}" -+ _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dar_export_syms}${_lt_dsymutil}" -+ fi -+],[]) -+ else -+ _LT_TAGVAR(ld_shlibs, $1)=no -+ fi -+]) -+ -+# _LT_SYS_MODULE_PATH_AIX -+# ----------------------- -+# Links a minimal program and checks the executable -+# for the system default hardcoded library path. In most cases, -+# this is /usr/lib:/lib, but when the MPI compilers are used -+# the location of the communication and MPI libs are included too. -+# If we don't find anything, use the default library path according -+# to the aix ld manual. -+m4_defun([_LT_SYS_MODULE_PATH_AIX], -+[m4_require([_LT_DECL_SED])dnl -+AC_LINK_IFELSE(AC_LANG_PROGRAM,[ -+lt_aix_libpath_sed=' -+ /Import File Strings/,/^$/ { -+ /^0/ { -+ s/^0 *\(.*\)$/\1/ -+ p -+ } -+ }' -+aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -+# Check for a 64-bit object if we didn't find anything. -+if test -z "$aix_libpath"; then -+ aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -+fi],[]) -+if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi -+])# _LT_SYS_MODULE_PATH_AIX -+ -+ -+# _LT_SHELL_INIT(ARG) -+# ------------------- -+m4_define([_LT_SHELL_INIT], -+[ifdef([AC_DIVERSION_NOTICE], -+ [AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)], -+ [AC_DIVERT_PUSH(NOTICE)]) -+$1 -+AC_DIVERT_POP -+])# _LT_SHELL_INIT -+ -+ -+# _LT_PROG_ECHO_BACKSLASH -+# ----------------------- -+# Add some code to the start of the generated configure script which -+# will find an echo command which doesn't interpret backslashes. -+m4_defun([_LT_PROG_ECHO_BACKSLASH], -+[_LT_SHELL_INIT([ -+# Check that we are running under the correct shell. -+SHELL=${CONFIG_SHELL-/bin/sh} -+ -+case X$lt_ECHO in -+X*--fallback-echo) -+ # Remove one level of quotation (which was required for Make). -+ ECHO=`echo "$lt_ECHO" | sed 's,\\\\\[$]\\[$]0,'[$]0','` -+ ;; -+esac -+ -+ECHO=${lt_ECHO-echo} -+if test "X[$]1" = X--no-reexec; then -+ # Discard the --no-reexec flag, and continue. -+ shift -+elif test "X[$]1" = X--fallback-echo; then -+ # Avoid inline document here, it may be left over -+ : -+elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' ; then -+ # Yippee, $ECHO works! -+ : -+else -+ # Restart under the correct shell. -+ exec $SHELL "[$]0" --no-reexec ${1+"[$]@"} -+fi -+ -+if test "X[$]1" = X--fallback-echo; then -+ # used as fallback echo -+ shift -+ cat <<_LT_EOF -+[$]* -+_LT_EOF -+ exit 0 -+fi -+ -+# The HP-UX ksh and POSIX shell print the target directory to stdout -+# if CDPATH is set. -+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH -+ -+if test -z "$lt_ECHO"; then -+ if test "X${echo_test_string+set}" != Xset; then -+ # find a string as large as possible, as long as the shell can cope with it -+ for cmd in 'sed 50q "[$]0"' 'sed 20q "[$]0"' 'sed 10q "[$]0"' 'sed 2q "[$]0"' 'echo test'; do -+ # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ... -+ if { echo_test_string=`eval $cmd`; } 2>/dev/null && -+ { test "X$echo_test_string" = "X$echo_test_string"; } 2>/dev/null -+ then -+ break -+ fi -+ done -+ fi -+ -+ if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' && -+ echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` && -+ test "X$echo_testing_string" = "X$echo_test_string"; then -+ : -+ else -+ # The Solaris, AIX, and Digital Unix default echo programs unquote -+ # backslashes. This makes it impossible to quote backslashes using -+ # echo "$something" | sed 's/\\/\\\\/g' -+ # -+ # So, first we look for a working echo in the user's PATH. -+ -+ lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR -+ for dir in $PATH /usr/ucb; do -+ IFS="$lt_save_ifs" -+ if (test -f $dir/echo || test -f $dir/echo$ac_exeext) && -+ test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' && -+ echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` && -+ test "X$echo_testing_string" = "X$echo_test_string"; then -+ ECHO="$dir/echo" -+ break -+ fi -+ done -+ IFS="$lt_save_ifs" -+ -+ if test "X$ECHO" = Xecho; then -+ # We didn't find a better echo, so look for alternatives. -+ if test "X`{ print -r '\t'; } 2>/dev/null`" = 'X\t' && -+ echo_testing_string=`{ print -r "$echo_test_string"; } 2>/dev/null` && -+ test "X$echo_testing_string" = "X$echo_test_string"; then -+ # This shell has a builtin print -r that does the trick. -+ ECHO='print -r' -+ elif { test -f /bin/ksh || test -f /bin/ksh$ac_exeext; } && -+ test "X$CONFIG_SHELL" != X/bin/ksh; then -+ # If we have ksh, try running configure again with it. -+ ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh} -+ export ORIGINAL_CONFIG_SHELL -+ CONFIG_SHELL=/bin/ksh -+ export CONFIG_SHELL -+ exec $CONFIG_SHELL "[$]0" --no-reexec ${1+"[$]@"} -+ else -+ # Try using printf. -+ ECHO='printf %s\n' -+ if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' && -+ echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` && -+ test "X$echo_testing_string" = "X$echo_test_string"; then -+ # Cool, printf works -+ : -+ elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` && -+ test "X$echo_testing_string" = 'X\t' && -+ echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` && -+ test "X$echo_testing_string" = "X$echo_test_string"; then -+ CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL -+ export CONFIG_SHELL -+ SHELL="$CONFIG_SHELL" -+ export SHELL -+ ECHO="$CONFIG_SHELL [$]0 --fallback-echo" -+ elif echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` && -+ test "X$echo_testing_string" = 'X\t' && -+ echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` && -+ test "X$echo_testing_string" = "X$echo_test_string"; then -+ ECHO="$CONFIG_SHELL [$]0 --fallback-echo" -+ else -+ # maybe with a smaller string... -+ prev=: -+ -+ for cmd in 'echo test' 'sed 2q "[$]0"' 'sed 10q "[$]0"' 'sed 20q "[$]0"' 'sed 50q "[$]0"'; do -+ if { test "X$echo_test_string" = "X`eval $cmd`"; } 2>/dev/null -+ then -+ break -+ fi -+ prev="$cmd" -+ done -+ -+ if test "$prev" != 'sed 50q "[$]0"'; then -+ echo_test_string=`eval $prev` -+ export echo_test_string -+ exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "[$]0" ${1+"[$]@"} -+ else -+ # Oops. We lost completely, so just stick with echo. -+ ECHO=echo -+ fi -+ fi -+ fi -+ fi -+ fi -+fi -+ -+# Copy echo and quote the copy suitably for passing to libtool from -+# the Makefile, instead of quoting the original, which is used later. -+lt_ECHO=$ECHO -+if test "X$lt_ECHO" = "X$CONFIG_SHELL [$]0 --fallback-echo"; then -+ lt_ECHO="$CONFIG_SHELL \\\$\[$]0 --fallback-echo" -+fi -+ -+AC_SUBST(lt_ECHO) -+]) -+_LT_DECL([], [SHELL], [1], [Shell to use when invoking shell scripts]) -+_LT_DECL([], [ECHO], [1], -+ [An echo program that does not interpret backslashes]) -+])# _LT_PROG_ECHO_BACKSLASH -+ -+ -+# _LT_ENABLE_LOCK -+# --------------- -+m4_defun([_LT_ENABLE_LOCK], -+[AC_ARG_ENABLE([libtool-lock], -+ [AS_HELP_STRING([--disable-libtool-lock], -+ [avoid locking (might break parallel builds)])]) -+test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes -+ -+# Some flags need to be propagated to the compiler or linker for good -+# libtool support. -+case $host in -+ia64-*-hpux*) -+ # Find out which ABI we are using. -+ echo 'int i;' > conftest.$ac_ext -+ if AC_TRY_EVAL(ac_compile); then -+ case `/usr/bin/file conftest.$ac_objext` in -+ *ELF-32*) -+ HPUX_IA64_MODE="32" -+ ;; -+ *ELF-64*) -+ HPUX_IA64_MODE="64" -+ ;; -+ esac -+ fi -+ rm -rf conftest* -+ ;; -+*-*-irix6*) -+ # Find out which ABI we are using. -+ echo '[#]line __oline__ "configure"' > conftest.$ac_ext -+ if AC_TRY_EVAL(ac_compile); then -+ if test "$lt_cv_prog_gnu_ld" = yes; then -+ case `/usr/bin/file conftest.$ac_objext` in -+ *32-bit*) -+ LD="${LD-ld} -melf32bsmip" -+ ;; -+ *N32*) -+ LD="${LD-ld} -melf32bmipn32" -+ ;; -+ *64-bit*) -+ LD="${LD-ld} -melf64bmip" -+ ;; -+ esac -+ else -+ case `/usr/bin/file conftest.$ac_objext` in -+ *32-bit*) -+ LD="${LD-ld} -32" -+ ;; -+ *N32*) -+ LD="${LD-ld} -n32" -+ ;; -+ *64-bit*) -+ LD="${LD-ld} -64" -+ ;; -+ esac -+ fi -+ fi -+ rm -rf conftest* -+ ;; -+ -+x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \ -+s390*-*linux*|s390*-*tpf*|sparc*-*linux*) -+ # Find out which ABI we are using. -+ echo 'int i;' > conftest.$ac_ext -+ if AC_TRY_EVAL(ac_compile); then -+ case `/usr/bin/file conftest.o` in -+ *32-bit*) -+ case $host in -+ x86_64-*kfreebsd*-gnu) -+ LD="${LD-ld} -m elf_i386_fbsd" -+ ;; -+ x86_64-*linux*) -+ LD="${LD-ld} -m elf_i386" -+ ;; -+ ppc64-*linux*|powerpc64-*linux*) -+ LD="${LD-ld} -m elf32ppclinux" -+ ;; -+ s390x-*linux*) -+ LD="${LD-ld} -m elf_s390" -+ ;; -+ sparc64-*linux*) -+ LD="${LD-ld} -m elf32_sparc" -+ ;; -+ esac -+ ;; -+ *64-bit*) -+ case $host in -+ x86_64-*kfreebsd*-gnu) -+ LD="${LD-ld} -m elf_x86_64_fbsd" -+ ;; -+ x86_64-*linux*) -+ LD="${LD-ld} -m elf_x86_64" -+ ;; -+ ppc*-*linux*|powerpc*-*linux*) -+ LD="${LD-ld} -m elf64ppc" -+ ;; -+ s390*-*linux*|s390*-*tpf*) -+ LD="${LD-ld} -m elf64_s390" -+ ;; -+ sparc*-*linux*) -+ LD="${LD-ld} -m elf64_sparc" -+ ;; -+ esac -+ ;; -+ esac -+ fi -+ rm -rf conftest* -+ ;; -+ -+*-*-sco3.2v5*) -+ # On SCO OpenServer 5, we need -belf to get full-featured binaries. -+ SAVE_CFLAGS="$CFLAGS" -+ CFLAGS="$CFLAGS -belf" -+ AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf, -+ [AC_LANG_PUSH(C) -+ AC_LINK_IFELSE([AC_LANG_PROGRAM([[]],[[]])],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no]) -+ AC_LANG_POP]) -+ 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" -+ fi -+ ;; -+sparc*-*solaris*) -+ # Find out which ABI we are using. -+ echo 'int i;' > conftest.$ac_ext -+ if AC_TRY_EVAL(ac_compile); then -+ case `/usr/bin/file conftest.o` in -+ *64-bit*) -+ case $lt_cv_prog_gnu_ld in -+ yes*) LD="${LD-ld} -m elf64_sparc" ;; -+ *) -+ if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then -+ LD="${LD-ld} -64" -+ fi -+ ;; -+ esac -+ ;; -+ esac -+ fi -+ rm -rf conftest* -+ ;; -+esac -+ -+need_locks="$enable_libtool_lock" -+])# _LT_ENABLE_LOCK -+ -+ -+# _LT_CMD_OLD_ARCHIVE -+# ------------------- -+m4_defun([_LT_CMD_OLD_ARCHIVE], -+[AC_CHECK_TOOL(AR, ar, false) -+test -z "$AR" && AR=ar -+test -z "$AR_FLAGS" && AR_FLAGS=cru -+_LT_DECL([], [AR], [1], [The archiver]) -+_LT_DECL([], [AR_FLAGS], [1]) -+ -+AC_CHECK_TOOL(STRIP, strip, :) -+test -z "$STRIP" && STRIP=: -+_LT_DECL([], [STRIP], [1], [A symbol stripping program]) -+ -+AC_CHECK_TOOL(RANLIB, ranlib, :) -+test -z "$RANLIB" && RANLIB=: -+_LT_DECL([], [RANLIB], [1], -+ [Commands used to install an old-style archive]) -+ -+# Determine commands to create old-style static archives. -+old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' -+old_postinstall_cmds='chmod 644 $oldlib' -+old_postuninstall_cmds= -+ -+if test -n "$RANLIB"; then -+ case $host_os in -+ openbsd*) -+ old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib" -+ ;; -+ *) -+ old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib" -+ ;; -+ esac -+ old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" -+fi -+_LT_DECL([], [old_postinstall_cmds], [2]) -+_LT_DECL([], [old_postuninstall_cmds], [2]) -+_LT_TAGDECL([], [old_archive_cmds], [2], -+ [Commands used to build an old-style archive]) -+])# _LT_CMD_OLD_ARCHIVE -+ -+ -+# _LT_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, -+# [OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE]) -+# ---------------------------------------------------------------- -+# Check whether the given compiler option works -+AC_DEFUN([_LT_COMPILER_OPTION], -+[m4_require([_LT_FILEUTILS_DEFAULTS])dnl -+m4_require([_LT_DECL_SED])dnl -+AC_CACHE_CHECK([$1], [$2], -+ [$2=no -+ m4_if([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4]) -+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext -+ lt_compiler_flag="$3" -+ # Insert the option either (1) after the last *FLAGS variable, or -+ # (2) before a word containing "conftest.", or (3) at the end. -+ # Note that $ac_compile itself does not contain backslashes and begins -+ # with a dollar sign (not a hyphen), so the echo should work correctly. -+ # The option is referenced via a variable to avoid confusing sed. -+ lt_compile=`echo "$ac_compile" | $SED \ -+ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -+ -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ -+ -e 's:$: $lt_compiler_flag:'` -+ (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD) -+ (eval "$lt_compile" 2>conftest.err) -+ ac_status=$? -+ cat conftest.err >&AS_MESSAGE_LOG_FD -+ echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD -+ if (exit $ac_status) && test -s "$ac_outfile"; then -+ # The compiler can only warn and ignore the option if not recognized -+ # So say no if there are warnings other than the usual output. -+ $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp -+ $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 -+ if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then -+ $2=yes -+ fi -+ fi -+ $RM conftest* -+]) -+ -+if test x"[$]$2" = xyes; then -+ m4_if([$5], , :, [$5]) -+else -+ m4_if([$6], , :, [$6]) -+fi -+])# _LT_COMPILER_OPTION -+ -+# Old name: -+AU_ALIAS([AC_LIBTOOL_COMPILER_OPTION], [_LT_COMPILER_OPTION]) -+dnl aclocal-1.4 backwards compatibility: -+dnl AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], []) -+ -+ -+# _LT_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, -+# [ACTION-SUCCESS], [ACTION-FAILURE]) -+# ---------------------------------------------------- -+# Check whether the given linker option works -+AC_DEFUN([_LT_LINKER_OPTION], -+[m4_require([_LT_FILEUTILS_DEFAULTS])dnl -+m4_require([_LT_DECL_SED])dnl -+AC_CACHE_CHECK([$1], [$2], -+ [$2=no -+ save_LDFLAGS="$LDFLAGS" -+ LDFLAGS="$LDFLAGS $3" -+ echo "$lt_simple_link_test_code" > conftest.$ac_ext -+ if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then -+ # The linker can only warn and ignore the option if not recognized -+ # So say no if there are warnings -+ if test -s conftest.err; then -+ # Append any errors to the config.log. -+ cat conftest.err 1>&AS_MESSAGE_LOG_FD -+ $ECHO "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp -+ $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 -+ if diff conftest.exp conftest.er2 >/dev/null; then -+ $2=yes -+ fi -+ else -+ $2=yes -+ fi -+ fi -+ $RM -r conftest* -+ LDFLAGS="$save_LDFLAGS" -+]) -+ -+if test x"[$]$2" = xyes; then -+ m4_if([$4], , :, [$4]) -+else -+ m4_if([$5], , :, [$5]) -+fi -+])# _LT_LINKER_OPTION -+ -+# Old name: -+AU_ALIAS([AC_LIBTOOL_LINKER_OPTION], [_LT_LINKER_OPTION]) -+dnl aclocal-1.4 backwards compatibility: -+dnl AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], []) -+ -+ -+# LT_CMD_MAX_LEN -+#--------------- -+AC_DEFUN([LT_CMD_MAX_LEN], -+[AC_REQUIRE([AC_CANONICAL_HOST])dnl -+# find the maximum length of command line arguments -+AC_MSG_CHECKING([the maximum length of command line arguments]) -+AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl -+ i=0 -+ teststring="ABCD" -+ -+ case $build_os in -+ msdosdjgpp*) -+ # On DJGPP, this test can blow up pretty badly due to problems in libc -+ # (any single argument exceeding 2000 bytes causes a buffer overrun -+ # during glob expansion). Even if it were fixed, the result of this -+ # check would be larger than it should be. -+ lt_cv_sys_max_cmd_len=12288; # 12K is about right -+ ;; -+ -+ gnu*) -+ # Under GNU Hurd, this test is not required because there is -+ # no limit to the length of command line arguments. -+ # Libtool will interpret -1 as no limit whatsoever -+ lt_cv_sys_max_cmd_len=-1; -+ ;; -+ -+ cygwin* | mingw* | cegcc*) -+ # On Win9x/ME, this test blows up -- it succeeds, but takes -+ # about 5 minutes as the teststring grows exponentially. -+ # Worse, since 9x/ME are not pre-emptively multitasking, -+ # you end up with a "frozen" computer, even though with patience -+ # the test eventually succeeds (with a max line length of 256k). -+ # Instead, let's just punt: use the minimum linelength reported by -+ # all of the supported platforms: 8192 (on NT/2K/XP). -+ lt_cv_sys_max_cmd_len=8192; -+ ;; -+ -+ amigaos*) -+ # On AmigaOS with pdksh, this test takes hours, literally. -+ # So we just punt and use a minimum line length of 8192. -+ lt_cv_sys_max_cmd_len=8192; -+ ;; -+ -+ netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) -+ # This has been around since 386BSD, at least. Likely further. -+ if test -x /sbin/sysctl; then -+ lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` -+ elif test -x /usr/sbin/sysctl; then -+ lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` -+ else -+ lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs -+ fi -+ # And add a safety zone -+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` -+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` -+ ;; -+ -+ interix*) -+ # We know the value 262144 and hardcode it with a safety zone (like BSD) -+ lt_cv_sys_max_cmd_len=196608 -+ ;; -+ -+ osf*) -+ # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure -+ # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not -+ # nice to cause kernel panics so lets avoid the loop below. -+ # First set a reasonable default. -+ lt_cv_sys_max_cmd_len=16384 -+ # -+ if test -x /sbin/sysconfig; then -+ case `/sbin/sysconfig -q proc exec_disable_arg_limit` in -+ *1*) lt_cv_sys_max_cmd_len=-1 ;; -+ esac -+ fi -+ ;; -+ sco3.2v5*) -+ lt_cv_sys_max_cmd_len=102400 -+ ;; -+ sysv5* | sco5v6* | sysv4.2uw2*) -+ kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` -+ if test -n "$kargmax"; then -+ lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[[ ]]//'` -+ else -+ lt_cv_sys_max_cmd_len=32768 -+ fi -+ ;; -+ *) -+ lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` -+ if test -n "$lt_cv_sys_max_cmd_len"; then -+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` -+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` -+ else -+ # Make teststring a little bigger before we do anything with it. -+ # a 1K string should be a reasonable start. -+ for i in 1 2 3 4 5 6 7 8 ; do -+ teststring=$teststring$teststring -+ done -+ SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} -+ # If test is not a shell built-in, we'll probably end up computing a -+ # maximum length that is only half of the actual maximum length, but -+ # we can't tell. -+ while { test "X"`$SHELL [$]0 --fallback-echo "X$teststring$teststring" 2>/dev/null` \ -+ = "XX$teststring$teststring"; } >/dev/null 2>&1 && -+ test $i != 17 # 1/2 MB should be enough -+ do -+ i=`expr $i + 1` -+ teststring=$teststring$teststring -+ done -+ # Only check the string length outside the loop. -+ lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` -+ teststring= -+ # Add a significant safety factor because C++ compilers can tack on -+ # massive amounts of additional arguments before passing them to the -+ # linker. It appears as though 1/2 is a usable value. -+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` -+ fi -+ ;; -+ esac -+]) -+if test -n $lt_cv_sys_max_cmd_len ; then -+ AC_MSG_RESULT($lt_cv_sys_max_cmd_len) -+else -+ AC_MSG_RESULT(none) -+fi -+max_cmd_len=$lt_cv_sys_max_cmd_len -+_LT_DECL([], [max_cmd_len], [0], -+ [What is the maximum length of a command?]) -+])# LT_CMD_MAX_LEN -+ -+# Old name: -+AU_ALIAS([AC_LIBTOOL_SYS_MAX_CMD_LEN], [LT_CMD_MAX_LEN]) -+dnl aclocal-1.4 backwards compatibility: -+dnl AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], []) -+ -+ -+# _LT_HEADER_DLFCN -+# ---------------- -+m4_defun([_LT_HEADER_DLFCN], -+[AC_CHECK_HEADERS([dlfcn.h], [], [], [AC_INCLUDES_DEFAULT])dnl -+])# _LT_HEADER_DLFCN -+ -+ -+# _LT_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE, -+# ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING) -+# ---------------------------------------------------------------- -+m4_defun([_LT_TRY_DLOPEN_SELF], -+[m4_require([_LT_HEADER_DLFCN])dnl -+if test "$cross_compiling" = yes; then : -+ [$4] -+else -+ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 -+ lt_status=$lt_dlunknown -+ cat > conftest.$ac_ext <<_LT_EOF -+[#line __oline__ "configure" -+#include "confdefs.h" -+ -+#if HAVE_DLFCN_H -+#include -+#endif -+ -+#include -+ -+#ifdef RTLD_GLOBAL -+# define LT_DLGLOBAL RTLD_GLOBAL -+#else -+# ifdef DL_GLOBAL -+# define LT_DLGLOBAL DL_GLOBAL -+# else -+# define LT_DLGLOBAL 0 -+# endif -+#endif -+ -+/* We may have to define LT_DLLAZY_OR_NOW in the command line if we -+ find out it does not work in some platform. */ -+#ifndef LT_DLLAZY_OR_NOW -+# ifdef RTLD_LAZY -+# define LT_DLLAZY_OR_NOW RTLD_LAZY -+# else -+# ifdef DL_LAZY -+# define LT_DLLAZY_OR_NOW DL_LAZY -+# else -+# ifdef RTLD_NOW -+# define LT_DLLAZY_OR_NOW RTLD_NOW -+# else -+# ifdef DL_NOW -+# define LT_DLLAZY_OR_NOW DL_NOW -+# else -+# define LT_DLLAZY_OR_NOW 0 -+# endif -+# endif -+# endif -+# endif -+#endif -+ -+void fnord() { int i=42;} -+int main () -+{ -+ void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); -+ int status = $lt_dlunknown; -+ -+ if (self) -+ { -+ if (dlsym (self,"fnord")) status = $lt_dlno_uscore; -+ else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; -+ /* dlclose (self); */ -+ } -+ else -+ puts (dlerror ()); -+ -+ return status; -+}] -+_LT_EOF -+ if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then -+ (./conftest; exit; ) >&AS_MESSAGE_LOG_FD 2>/dev/null -+ lt_status=$? -+ case x$lt_status in -+ x$lt_dlno_uscore) $1 ;; -+ x$lt_dlneed_uscore) $2 ;; -+ x$lt_dlunknown|x*) $3 ;; -+ esac -+ else : -+ # compilation failed -+ $3 -+ fi -+fi -+rm -fr conftest* -+])# _LT_TRY_DLOPEN_SELF -+ -+ -+# LT_SYS_DLOPEN_SELF -+# ------------------ -+AC_DEFUN([LT_SYS_DLOPEN_SELF], -+[m4_require([_LT_HEADER_DLFCN])dnl -+if test "x$enable_dlopen" != xyes; then -+ enable_dlopen=unknown -+ enable_dlopen_self=unknown -+ enable_dlopen_self_static=unknown -+else -+ lt_cv_dlopen=no -+ lt_cv_dlopen_libs= -+ -+ case $host_os in -+ beos*) -+ lt_cv_dlopen="load_add_on" -+ lt_cv_dlopen_libs= -+ lt_cv_dlopen_self=yes -+ ;; -+ -+ mingw* | pw32* | cegcc*) -+ lt_cv_dlopen="LoadLibrary" -+ lt_cv_dlopen_libs= -+ ;; -+ -+ cygwin*) -+ lt_cv_dlopen="dlopen" -+ lt_cv_dlopen_libs= -+ ;; -+ -+ darwin*) -+ # if libdl is installed we need to link against it -+ AC_CHECK_LIB([dl], [dlopen], -+ [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],[ -+ lt_cv_dlopen="dyld" -+ lt_cv_dlopen_libs= -+ lt_cv_dlopen_self=yes -+ ]) -+ ;; -+ -+ *) -+ AC_CHECK_FUNC([shl_load], -+ [lt_cv_dlopen="shl_load"], -+ [AC_CHECK_LIB([dld], [shl_load], -+ [lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"], -+ [AC_CHECK_FUNC([dlopen], -+ [lt_cv_dlopen="dlopen"], -+ [AC_CHECK_LIB([dl], [dlopen], -+ [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"], -+ [AC_CHECK_LIB([svld], [dlopen], -+ [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"], -+ [AC_CHECK_LIB([dld], [dld_link], -+ [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"]) -+ ]) -+ ]) -+ ]) -+ ]) -+ ]) -+ ;; -+ esac -+ -+ if test "x$lt_cv_dlopen" != xno; then -+ enable_dlopen=yes -+ else -+ enable_dlopen=no -+ fi -+ -+ case $lt_cv_dlopen in -+ dlopen) -+ save_CPPFLAGS="$CPPFLAGS" -+ test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" -+ -+ save_LDFLAGS="$LDFLAGS" -+ wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" -+ -+ save_LIBS="$LIBS" -+ LIBS="$lt_cv_dlopen_libs $LIBS" -+ -+ AC_CACHE_CHECK([whether a program can dlopen itself], -+ lt_cv_dlopen_self, [dnl -+ _LT_TRY_DLOPEN_SELF( -+ lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes, -+ lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross) -+ ]) -+ -+ if test "x$lt_cv_dlopen_self" = xyes; then -+ wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" -+ AC_CACHE_CHECK([whether a statically linked program can dlopen itself], -+ lt_cv_dlopen_self_static, [dnl -+ _LT_TRY_DLOPEN_SELF( -+ lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes, -+ lt_cv_dlopen_self_static=no, lt_cv_dlopen_self_static=cross) -+ ]) -+ fi -+ -+ CPPFLAGS="$save_CPPFLAGS" -+ LDFLAGS="$save_LDFLAGS" -+ LIBS="$save_LIBS" -+ ;; -+ esac -+ -+ case $lt_cv_dlopen_self in -+ yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; -+ *) enable_dlopen_self=unknown ;; -+ esac -+ -+ case $lt_cv_dlopen_self_static in -+ yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; -+ *) enable_dlopen_self_static=unknown ;; -+ esac -+fi -+_LT_DECL([dlopen_support], [enable_dlopen], [0], -+ [Whether dlopen is supported]) -+_LT_DECL([dlopen_self], [enable_dlopen_self], [0], -+ [Whether dlopen of programs is supported]) -+_LT_DECL([dlopen_self_static], [enable_dlopen_self_static], [0], -+ [Whether dlopen of statically linked programs is supported]) -+])# LT_SYS_DLOPEN_SELF -+ -+# Old name: -+AU_ALIAS([AC_LIBTOOL_DLOPEN_SELF], [LT_SYS_DLOPEN_SELF]) -+dnl aclocal-1.4 backwards compatibility: -+dnl AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], []) -+ -+ -+# _LT_COMPILER_C_O([TAGNAME]) -+# --------------------------- -+# Check to see if options -c and -o are simultaneously supported by compiler. -+# This macro does not hard code the compiler like AC_PROG_CC_C_O. -+m4_defun([_LT_COMPILER_C_O], -+[m4_require([_LT_DECL_SED])dnl -+m4_require([_LT_FILEUTILS_DEFAULTS])dnl -+m4_require([_LT_TAG_COMPILER])dnl -+AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext], -+ [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)], -+ [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no -+ $RM -r conftest 2>/dev/null -+ mkdir conftest -+ cd conftest -+ mkdir out -+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext -+ -+ lt_compiler_flag="-o out/conftest2.$ac_objext" -+ # Insert the option either (1) after the last *FLAGS variable, or -+ # (2) before a word containing "conftest.", or (3) at the end. -+ # Note that $ac_compile itself does not contain backslashes and begins -+ # with a dollar sign (not a hyphen), so the echo should work correctly. -+ lt_compile=`echo "$ac_compile" | $SED \ -+ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -+ -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ -+ -e 's:$: $lt_compiler_flag:'` -+ (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD) -+ (eval "$lt_compile" 2>out/conftest.err) -+ ac_status=$? -+ cat out/conftest.err >&AS_MESSAGE_LOG_FD -+ echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD -+ if (exit $ac_status) && test -s out/conftest2.$ac_objext -+ then -+ # The compiler can only warn and ignore the option if not recognized -+ # So say no if there are warnings -+ $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp -+ $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 -+ if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then -+ _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes -+ fi -+ fi -+ chmod u+w . 2>&AS_MESSAGE_LOG_FD -+ $RM conftest* -+ # SGI C++ compiler will create directory out/ii_files/ for -+ # template instantiation -+ test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files -+ $RM out/* && rmdir out -+ cd .. -+ $RM -r conftest -+ $RM conftest* -+]) -+_LT_TAGDECL([compiler_c_o], [lt_cv_prog_compiler_c_o], [1], -+ [Does compiler simultaneously support -c and -o options?]) -+])# _LT_COMPILER_C_O -+ -+ -+# _LT_COMPILER_FILE_LOCKS([TAGNAME]) -+# ---------------------------------- -+# Check to see if we can do hard links to lock some files if needed -+m4_defun([_LT_COMPILER_FILE_LOCKS], -+[m4_require([_LT_ENABLE_LOCK])dnl -+m4_require([_LT_FILEUTILS_DEFAULTS])dnl -+_LT_COMPILER_C_O([$1]) -+ -+hard_links="nottested" -+if test "$_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)" = no && test "$need_locks" != no; then -+ # do not overwrite the value of need_locks provided by the user -+ AC_MSG_CHECKING([if we can lock with hard links]) -+ hard_links=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 -+ AC_MSG_RESULT([$hard_links]) -+ if test "$hard_links" = no; then -+ AC_MSG_WARN([`$CC' does not support `-c -o', so `make -j' may be unsafe]) -+ need_locks=warn -+ fi -+else -+ need_locks=no -+fi -+_LT_DECL([], [need_locks], [1], [Must we lock files when doing compilation?]) -+])# _LT_COMPILER_FILE_LOCKS -+ -+ -+# _LT_CHECK_OBJDIR -+# ---------------- -+m4_defun([_LT_CHECK_OBJDIR], -+[AC_CACHE_CHECK([for objdir], [lt_cv_objdir], -+[rm -f .libs 2>/dev/null -+mkdir .libs 2>/dev/null -+if test -d .libs; then -+ lt_cv_objdir=.libs -+else -+ # MS-DOS does not allow filenames that begin with a dot. -+ lt_cv_objdir=_libs -+fi -+rmdir .libs 2>/dev/null]) -+objdir=$lt_cv_objdir -+_LT_DECL([], [objdir], [0], -+ [The name of the directory that contains temporary libtool files])dnl -+m4_pattern_allow([LT_OBJDIR])dnl -+AC_DEFINE_UNQUOTED(LT_OBJDIR, "$lt_cv_objdir/", -+ [Define to the sub-directory in which libtool stores uninstalled libraries.]) -+])# _LT_CHECK_OBJDIR -+ -+ -+# _LT_LINKER_HARDCODE_LIBPATH([TAGNAME]) -+# -------------------------------------- -+# Check hardcoding attributes. -+m4_defun([_LT_LINKER_HARDCODE_LIBPATH], -+[AC_MSG_CHECKING([how to hardcode library paths into programs]) -+_LT_TAGVAR(hardcode_action, $1)= -+if test -n "$_LT_TAGVAR(hardcode_libdir_flag_spec, $1)" || -+ test -n "$_LT_TAGVAR(runpath_var, $1)" || -+ test "X$_LT_TAGVAR(hardcode_automatic, $1)" = "Xyes" ; then -+ -+ # We can hardcode non-existent directories. -+ if test "$_LT_TAGVAR(hardcode_direct, $1)" != no && -+ # If the only mechanism to avoid hardcoding is shlibpath_var, we -+ # have to relink, otherwise we might link with an installed library -+ # when we should be linking with a yet-to-be-installed one -+ ## test "$_LT_TAGVAR(hardcode_shlibpath_var, $1)" != no && -+ test "$_LT_TAGVAR(hardcode_minus_L, $1)" != no; then -+ # Linking always hardcodes the temporary library directory. -+ _LT_TAGVAR(hardcode_action, $1)=relink -+ else -+ # We can link without hardcoding, and we can hardcode nonexisting dirs. -+ _LT_TAGVAR(hardcode_action, $1)=immediate -+ fi -+else -+ # We cannot hardcode anything, or else we can only hardcode existing -+ # directories. -+ _LT_TAGVAR(hardcode_action, $1)=unsupported -+fi -+AC_MSG_RESULT([$_LT_TAGVAR(hardcode_action, $1)]) -+ -+if test "$_LT_TAGVAR(hardcode_action, $1)" = relink || -+ test "$_LT_TAGVAR(inherit_rpath, $1)" = yes; then -+ # Fast installation is not supported -+ enable_fast_install=no -+elif test "$shlibpath_overrides_runpath" = yes || -+ test "$enable_shared" = no; then -+ # Fast installation is not necessary -+ enable_fast_install=needless -+fi -+_LT_TAGDECL([], [hardcode_action], [0], -+ [How to hardcode a shared library path into an executable]) -+])# _LT_LINKER_HARDCODE_LIBPATH -+ -+ -+# _LT_CMD_STRIPLIB -+# ---------------- -+m4_defun([_LT_CMD_STRIPLIB], -+[m4_require([_LT_DECL_EGREP]) -+striplib= -+old_striplib= -+AC_MSG_CHECKING([whether stripping libraries is possible]) -+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" -+ AC_MSG_RESULT([yes]) -+else -+# FIXME - insert some real tests, host_os isn't really good enough -+ case $host_os in -+ darwin*) -+ if test -n "$STRIP" ; then -+ striplib="$STRIP -x" -+ old_striplib="$STRIP -S" -+ AC_MSG_RESULT([yes]) -+ else -+ AC_MSG_RESULT([no]) -+ fi -+ ;; -+ *) -+ AC_MSG_RESULT([no]) -+ ;; -+ esac -+fi -+_LT_DECL([], [old_striplib], [1], [Commands to strip libraries]) -+_LT_DECL([], [striplib], [1]) -+])# _LT_CMD_STRIPLIB -+ -+ -+# _LT_SYS_DYNAMIC_LINKER([TAG]) -+# ----------------------------- -+# PORTME Fill in your ld.so characteristics -+m4_defun([_LT_SYS_DYNAMIC_LINKER], -+[AC_REQUIRE([AC_CANONICAL_HOST])dnl -+m4_require([_LT_DECL_EGREP])dnl -+m4_require([_LT_FILEUTILS_DEFAULTS])dnl -+m4_require([_LT_DECL_OBJDUMP])dnl -+m4_require([_LT_DECL_SED])dnl -+AC_MSG_CHECKING([dynamic linker characteristics]) -+m4_if([$1], -+ [], [ -+if test "$GCC" = yes; then -+ case $host_os in -+ darwin*) lt_awk_arg="/^libraries:/,/LR/" ;; -+ *) lt_awk_arg="/^libraries:/" ;; -+ esac -+ lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e "s,=/,/,g"` -+ if $ECHO "$lt_search_path_spec" | $GREP ';' >/dev/null ; then -+ # if the path contains ";" then we assume it to be the separator -+ # otherwise default to the standard path separator (i.e. ":") - it is -+ # assumed that no part of a normal pathname contains ";" but that should -+ # okay in the real world where ";" in dirpaths is itself problematic. -+ lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e 's/;/ /g'` -+ else -+ lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` -+ fi -+ # Ok, now we have the path, separated by spaces, we can step through it -+ # and add multilib dir if necessary. -+ lt_tmp_lt_search_path_spec= -+ lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` -+ for lt_sys_path in $lt_search_path_spec; do -+ if test -d "$lt_sys_path/$lt_multi_os_dir"; then -+ lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir" -+ else -+ test -d "$lt_sys_path" && \ -+ lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" -+ fi -+ done -+ lt_search_path_spec=`$ECHO $lt_tmp_lt_search_path_spec | awk ' -+BEGIN {RS=" "; FS="/|\n";} { -+ lt_foo=""; -+ lt_count=0; -+ for (lt_i = NF; lt_i > 0; lt_i--) { -+ if ($lt_i != "" && $lt_i != ".") { -+ if ($lt_i == "..") { -+ lt_count++; -+ } else { -+ if (lt_count == 0) { -+ lt_foo="/" $lt_i lt_foo; -+ } else { -+ lt_count--; -+ } -+ } -+ } -+ } -+ if (lt_foo != "") { lt_freq[[lt_foo]]++; } -+ if (lt_freq[[lt_foo]] == 1) { print lt_foo; } -+}'` -+ sys_lib_search_path_spec=`$ECHO $lt_search_path_spec` -+else -+ sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" -+fi]) -+library_names_spec= -+libname_spec='lib$name' -+soname_spec= -+shrext_cmds=".so" -+postinstall_cmds= -+postuninstall_cmds= -+finish_cmds= -+finish_eval= -+shlibpath_var= -+shlibpath_overrides_runpath=unknown -+version_type=none -+dynamic_linker="$host_os ld.so" -+sys_lib_dlsearch_path_spec="/lib /usr/lib" -+need_lib_prefix=unknown -+hardcode_into_libs=no -+ -+# when you set need_version to no, make sure it does not cause -set_version -+# flags to be left without arguments -+need_version=unknown -+ -+case $host_os in -+aix3*) -+ version_type=linux -+ library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' -+ shlibpath_var=LIBPATH -+ -+ # AIX 3 has no versioning support, so we append a major version to the name. -+ soname_spec='${libname}${release}${shared_ext}$major' -+ ;; -+ -+aix[[4-9]]*) -+ version_type=linux -+ need_lib_prefix=no -+ need_version=no -+ hardcode_into_libs=yes -+ if test "$host_cpu" = ia64; then -+ # AIX 5 supports IA64 -+ library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' -+ shlibpath_var=LD_LIBRARY_PATH -+ else -+ # With GCC up to 2.95.x, collect2 would create an import file -+ # for dependence libraries. The import file would start with -+ # the line `#! .'. This would cause the generated library to -+ # depend on `.', always an invalid library. This was fixed in -+ # development snapshots of GCC prior to 3.0. -+ case $host_os in -+ aix4 | aix4.[[01]] | aix4.[[01]].*) -+ if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' -+ echo ' yes ' -+ echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then -+ : -+ else -+ can_build_shared=no -+ fi -+ ;; -+ esac -+ # AIX (on Power*) has no versioning support, so currently we can not hardcode correct -+ # soname into executable. Probably we can add versioning support to -+ # collect2, so additional links can be useful in future. -+ if test "$aix_use_runtimelinking" = yes; then -+ # If using run time linking (on AIX 4.2 or later) use lib.so -+ # instead of lib.a to let people know that these are not -+ # typical AIX shared libraries. -+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' -+ else -+ # We preserve .a as extension for shared libraries through AIX4.2 -+ # and later when we are not doing run time linking. -+ library_names_spec='${libname}${release}.a $libname.a' -+ soname_spec='${libname}${release}${shared_ext}$major' -+ fi -+ shlibpath_var=LIBPATH -+ fi -+ ;; -+ -+amigaos*) -+ case $host_cpu in -+ powerpc) -+ # Since July 2007 AmigaOS4 officially supports .so libraries. -+ # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. -+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' -+ ;; -+ m68k) -+ library_names_spec='$libname.ixlibrary $libname.a' -+ # Create ${libname}_ixlibrary.a entries in /sys/libs. -+ finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$ECHO "X$lib" | $Xsed -e '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' -+ ;; -+ esac -+ ;; -+ -+beos*) -+ library_names_spec='${libname}${shared_ext}' -+ dynamic_linker="$host_os ld.so" -+ shlibpath_var=LIBRARY_PATH -+ ;; -+ -+bsdi[[45]]*) -+ version_type=linux -+ need_version=no -+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' -+ soname_spec='${libname}${release}${shared_ext}$major' -+ finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' -+ shlibpath_var=LD_LIBRARY_PATH -+ sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" -+ sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" -+ # the default ld.so.conf also contains /usr/contrib/lib and -+ # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow -+ # libtool to hard-code these into programs -+ ;; -+ -+cygwin* | mingw* | pw32* | cegcc*) -+ version_type=windows -+ shrext_cmds=".dll" -+ need_version=no -+ need_lib_prefix=no -+ -+ case $GCC,$host_os in -+ yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*) -+ library_names_spec='$libname.dll.a' -+ # DLL is installed to $(libdir)/../bin by postinstall_cmds -+ postinstall_cmds='base_file=`basename \${file}`~ -+ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ -+ dldir=$destdir/`dirname \$dlpath`~ -+ test -d \$dldir || mkdir -p \$dldir~ -+ $install_prog $dir/$dlname \$dldir/$dlname~ -+ chmod a+x \$dldir/$dlname~ -+ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then -+ eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; -+ fi' -+ postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ -+ dlpath=$dir/\$dldll~ -+ $RM \$dlpath' -+ shlibpath_overrides_runpath=yes -+ -+ case $host_os in -+ cygwin*) -+ # Cygwin DLLs use 'cyg' prefix rather than 'lib' -+ soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' -+ sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" -+ ;; -+ mingw* | cegcc*) -+ # MinGW DLLs use traditional 'lib' prefix -+ soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' -+ sys_lib_search_path_spec=`$CC -print-search-dirs | $GREP "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` -+ if $ECHO "$sys_lib_search_path_spec" | [$GREP ';[c-zC-Z]:/' >/dev/null]; then -+ # It is most probably a Windows format PATH printed by -+ # mingw gcc, but we are running on Cygwin. Gcc prints its search -+ # path with ; separators, and with drive letters. We can handle the -+ # drive letters (cygwin fileutils understands them), so leave them, -+ # especially as we might pass files found there to a mingw objdump, -+ # which wouldn't understand a cygwinified path. Ahh. -+ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` -+ else -+ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` -+ fi -+ ;; -+ pw32*) -+ # pw32 DLLs use 'pw' prefix rather than 'lib' -+ library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' -+ ;; -+ esac -+ ;; -+ -+ *) -+ library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib' -+ ;; -+ esac -+ dynamic_linker='Win32 ld.exe' -+ # FIXME: first we should search . and the directory the executable is in -+ shlibpath_var=PATH -+ ;; -+ -+darwin* | rhapsody*) -+ dynamic_linker="$host_os dyld" -+ version_type=darwin -+ need_lib_prefix=no -+ need_version=no -+ library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext' -+ soname_spec='${libname}${release}${major}$shared_ext' -+ shlibpath_overrides_runpath=yes -+ shlibpath_var=DYLD_LIBRARY_PATH -+ shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' -+m4_if([$1], [],[ -+ sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"]) -+ sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' -+ ;; -+ -+dgux*) -+ version_type=linux -+ need_lib_prefix=no -+ need_version=no -+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' -+ soname_spec='${libname}${release}${shared_ext}$major' -+ shlibpath_var=LD_LIBRARY_PATH -+ ;; -+ -+freebsd1*) -+ dynamic_linker=no -+ ;; -+ -+freebsd* | dragonfly*) -+ # DragonFly does not have aout. When/if they implement a new -+ # versioning mechanism, adjust this. -+ if test -x /usr/bin/objformat; then -+ objformat=`/usr/bin/objformat` -+ else -+ case $host_os in -+ freebsd[[123]]*) objformat=aout ;; -+ *) objformat=elf ;; -+ esac -+ fi -+ version_type=freebsd-$objformat -+ case $version_type in -+ freebsd-elf*) -+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' -+ need_version=no -+ need_lib_prefix=no -+ ;; -+ freebsd-*) -+ library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' -+ need_version=yes -+ ;; -+ esac -+ shlibpath_var=LD_LIBRARY_PATH -+ case $host_os in -+ freebsd2*) -+ shlibpath_overrides_runpath=yes -+ ;; -+ freebsd3.[[01]]* | freebsdelf3.[[01]]*) -+ shlibpath_overrides_runpath=yes -+ hardcode_into_libs=yes -+ ;; -+ freebsd3.[[2-9]]* | freebsdelf3.[[2-9]]* | \ -+ freebsd4.[[0-5]] | freebsdelf4.[[0-5]] | freebsd4.1.1 | freebsdelf4.1.1) -+ shlibpath_overrides_runpath=no -+ hardcode_into_libs=yes -+ ;; -+ *) # from 4.6 on, and DragonFly -+ shlibpath_overrides_runpath=yes -+ hardcode_into_libs=yes -+ ;; -+ esac -+ ;; -+ -+gnu*) -+ version_type=linux -+ need_lib_prefix=no -+ need_version=no -+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' -+ soname_spec='${libname}${release}${shared_ext}$major' -+ shlibpath_var=LD_LIBRARY_PATH -+ hardcode_into_libs=yes -+ ;; -+ -+hpux9* | hpux10* | hpux11*) -+ # Give a soname corresponding to the major version so that dld.sl refuses to -+ # link against other versions. -+ version_type=sunos -+ need_lib_prefix=no -+ need_version=no -+ case $host_cpu in -+ ia64*) -+ shrext_cmds='.so' -+ hardcode_into_libs=yes -+ dynamic_linker="$host_os dld.so" -+ shlibpath_var=LD_LIBRARY_PATH -+ shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. -+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' -+ soname_spec='${libname}${release}${shared_ext}$major' -+ if test "X$HPUX_IA64_MODE" = X32; then -+ sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" -+ else -+ sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" -+ fi -+ sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec -+ ;; -+ hppa*64*) -+ shrext_cmds='.sl' -+ hardcode_into_libs=yes -+ dynamic_linker="$host_os dld.sl" -+ shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH -+ shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. -+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' -+ soname_spec='${libname}${release}${shared_ext}$major' -+ sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" -+ sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec -+ ;; -+ *) -+ shrext_cmds='.sl' -+ dynamic_linker="$host_os dld.sl" -+ shlibpath_var=SHLIB_PATH -+ shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH -+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' -+ soname_spec='${libname}${release}${shared_ext}$major' -+ ;; -+ esac -+ # HP-UX runs *really* slowly unless shared libraries are mode 555. -+ postinstall_cmds='chmod 555 $lib' -+ ;; -+ -+interix[[3-9]]*) -+ version_type=linux -+ need_lib_prefix=no -+ need_version=no -+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' -+ soname_spec='${libname}${release}${shared_ext}$major' -+ dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' -+ shlibpath_var=LD_LIBRARY_PATH -+ shlibpath_overrides_runpath=no -+ hardcode_into_libs=yes -+ ;; -+ -+irix5* | irix6* | nonstopux*) -+ case $host_os in -+ nonstopux*) version_type=nonstopux ;; -+ *) -+ if test "$lt_cv_prog_gnu_ld" = yes; then -+ version_type=linux -+ else -+ version_type=irix -+ fi ;; -+ esac -+ need_lib_prefix=no -+ need_version=no -+ soname_spec='${libname}${release}${shared_ext}$major' -+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' -+ case $host_os in -+ irix5* | nonstopux*) -+ libsuff= shlibsuff= -+ ;; -+ *) -+ case $LD in # libtool.m4 will add one of these switches to LD -+ *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") -+ libsuff= shlibsuff= libmagic=32-bit;; -+ *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") -+ libsuff=32 shlibsuff=N32 libmagic=N32;; -+ *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") -+ libsuff=64 shlibsuff=64 libmagic=64-bit;; -+ *) libsuff= shlibsuff= libmagic=never-match;; -+ esac -+ ;; -+ esac -+ shlibpath_var=LD_LIBRARY${shlibsuff}_PATH -+ shlibpath_overrides_runpath=no -+ sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" -+ sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" -+ hardcode_into_libs=yes -+ ;; -+ -+# No shared lib support for Linux oldld, aout, or coff. -+linux*oldld* | linux*aout* | linux*coff*) -+ dynamic_linker=no -+ ;; -+ -+# This must be Linux ELF. -+linux* | k*bsd*-gnu) -+ version_type=linux -+ need_lib_prefix=no -+ need_version=no -+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' -+ soname_spec='${libname}${release}${shared_ext}$major' -+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' -+ shlibpath_var=LD_LIBRARY_PATH -+ shlibpath_overrides_runpath=no -+ # Some binutils ld are patched to set DT_RUNPATH -+ save_LDFLAGS=$LDFLAGS -+ save_libdir=$libdir -+ eval "libdir=/foo; wl=\"$_LT_TAGVAR(lt_prog_compiler_wl, $1)\"; \ -+ LDFLAGS=\"\$LDFLAGS $_LT_TAGVAR(hardcode_libdir_flag_spec, $1)\"" -+ AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], -+ [AS_IF([ ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null], -+ [shlibpath_overrides_runpath=yes])]) -+ LDFLAGS=$save_LDFLAGS -+ libdir=$save_libdir -+ -+ # This implies no fast_install, which is unacceptable. -+ # Some rework will be needed to allow for fast_install -+ # before this can be enabled. -+ hardcode_into_libs=yes -+ -+ # Add ABI-specific directories to the system library path. -+ sys_lib_dlsearch_path_spec="/lib64 /usr/lib64 /lib /usr/lib" -+ -+ # Append ld.so.conf contents to the search path -+ if test -f /etc/ld.so.conf; then -+ lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` -+ sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec $lt_ld_extra" -+ fi -+ -+ # We used to test for /lib/ld.so.1 and disable shared libraries on -+ # powerpc, because MkLinux only supported shared libraries with the -+ # GNU dynamic linker. Since this was broken with cross compilers, -+ # most powerpc-linux boxes support dynamic linking these days and -+ # people can always --disable-shared, the test was removed, and we -+ # assume the GNU/Linux dynamic linker is in use. -+ dynamic_linker='GNU/Linux ld.so' -+ ;; -+ -+netbsd*) -+ version_type=sunos -+ need_lib_prefix=no -+ need_version=no -+ if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then -+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' -+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' -+ dynamic_linker='NetBSD (a.out) ld.so' -+ else -+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' -+ soname_spec='${libname}${release}${shared_ext}$major' -+ dynamic_linker='NetBSD ld.elf_so' -+ fi -+ shlibpath_var=LD_LIBRARY_PATH -+ shlibpath_overrides_runpath=yes -+ hardcode_into_libs=yes -+ ;; -+ -+newsos6) -+ version_type=linux -+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' -+ shlibpath_var=LD_LIBRARY_PATH -+ shlibpath_overrides_runpath=yes -+ ;; -+ -+*nto* | *qnx*) -+ version_type=qnx -+ need_lib_prefix=no -+ need_version=no -+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' -+ soname_spec='${libname}${release}${shared_ext}$major' -+ shlibpath_var=LD_LIBRARY_PATH -+ shlibpath_overrides_runpath=no -+ hardcode_into_libs=yes -+ dynamic_linker='ldqnx.so' -+ ;; -+ -+openbsd*) -+ version_type=sunos -+ sys_lib_dlsearch_path_spec="/usr/lib" -+ need_lib_prefix=no -+ # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. -+ case $host_os in -+ openbsd3.3 | openbsd3.3.*) need_version=yes ;; -+ *) need_version=no ;; -+ esac -+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' -+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' -+ shlibpath_var=LD_LIBRARY_PATH -+ if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then -+ case $host_os in -+ openbsd2.[[89]] | openbsd2.[[89]].*) -+ shlibpath_overrides_runpath=no -+ ;; -+ *) -+ shlibpath_overrides_runpath=yes -+ ;; -+ esac -+ else -+ shlibpath_overrides_runpath=yes -+ fi -+ ;; -+ -+os2*) -+ libname_spec='$name' -+ shrext_cmds=".dll" -+ need_lib_prefix=no -+ library_names_spec='$libname${shared_ext} $libname.a' -+ dynamic_linker='OS/2 ld.exe' -+ shlibpath_var=LIBPATH -+ ;; -+ -+osf3* | osf4* | osf5*) -+ version_type=osf -+ need_lib_prefix=no -+ need_version=no -+ soname_spec='${libname}${release}${shared_ext}$major' -+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' -+ shlibpath_var=LD_LIBRARY_PATH -+ sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" -+ sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" -+ ;; -+ -+rdos*) -+ dynamic_linker=no -+ ;; -+ -+solaris*) -+ version_type=linux -+ need_lib_prefix=no -+ need_version=no -+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' -+ soname_spec='${libname}${release}${shared_ext}$major' -+ shlibpath_var=LD_LIBRARY_PATH -+ shlibpath_overrides_runpath=yes -+ hardcode_into_libs=yes -+ # ldd complains unless libraries are executable -+ postinstall_cmds='chmod +x $lib' -+ ;; -+ -+sunos4*) -+ version_type=sunos -+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' -+ finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' -+ shlibpath_var=LD_LIBRARY_PATH -+ shlibpath_overrides_runpath=yes -+ if test "$with_gnu_ld" = yes; then -+ need_lib_prefix=no -+ fi -+ need_version=yes -+ ;; -+ -+sysv4 | sysv4.3*) -+ version_type=linux -+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' -+ soname_spec='${libname}${release}${shared_ext}$major' -+ shlibpath_var=LD_LIBRARY_PATH -+ case $host_vendor in -+ sni) -+ shlibpath_overrides_runpath=no -+ need_lib_prefix=no -+ runpath_var=LD_RUN_PATH -+ ;; -+ siemens) -+ need_lib_prefix=no -+ ;; -+ motorola) -+ need_lib_prefix=no -+ need_version=no -+ shlibpath_overrides_runpath=no -+ sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' -+ ;; -+ esac -+ ;; -+ -+sysv4*MP*) -+ if test -d /usr/nec ;then -+ version_type=linux -+ library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' -+ soname_spec='$libname${shared_ext}.$major' -+ shlibpath_var=LD_LIBRARY_PATH -+ fi -+ ;; -+ -+sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) -+ version_type=freebsd-elf -+ need_lib_prefix=no -+ need_version=no -+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' -+ soname_spec='${libname}${release}${shared_ext}$major' -+ shlibpath_var=LD_LIBRARY_PATH -+ shlibpath_overrides_runpath=yes -+ hardcode_into_libs=yes -+ if test "$with_gnu_ld" = yes; then -+ sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' -+ else -+ sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' -+ case $host_os in -+ sco3.2v5*) -+ sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" -+ ;; -+ esac -+ fi -+ sys_lib_dlsearch_path_spec='/usr/lib' -+ ;; -+ -+tpf*) -+ # TPF is a cross-target only. Preferred cross-host = GNU/Linux. -+ version_type=linux -+ need_lib_prefix=no -+ need_version=no -+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' -+ shlibpath_var=LD_LIBRARY_PATH -+ shlibpath_overrides_runpath=no -+ hardcode_into_libs=yes -+ ;; -+ -+uts4*) -+ version_type=linux -+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' -+ soname_spec='${libname}${release}${shared_ext}$major' -+ shlibpath_var=LD_LIBRARY_PATH -+ ;; -+ -+*) -+ dynamic_linker=no -+ ;; -+esac -+AC_MSG_RESULT([$dynamic_linker]) -+test "$dynamic_linker" = no && can_build_shared=no -+ -+variables_saved_for_relink="PATH $shlibpath_var $runpath_var" -+if test "$GCC" = yes; then -+ variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" -+fi -+ -+if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then -+ sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" -+fi -+if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then -+ sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" -+fi -+ -+_LT_DECL([], [variables_saved_for_relink], [1], -+ [Variables whose values should be saved in libtool wrapper scripts and -+ restored at link time]) -+_LT_DECL([], [need_lib_prefix], [0], -+ [Do we need the "lib" prefix for modules?]) -+_LT_DECL([], [need_version], [0], [Do we need a version for libraries?]) -+_LT_DECL([], [version_type], [0], [Library versioning type]) -+_LT_DECL([], [runpath_var], [0], [Shared library runtime path variable]) -+_LT_DECL([], [shlibpath_var], [0],[Shared library path variable]) -+_LT_DECL([], [shlibpath_overrides_runpath], [0], -+ [Is shlibpath searched before the hard-coded library search path?]) -+_LT_DECL([], [libname_spec], [1], [Format of library name prefix]) -+_LT_DECL([], [library_names_spec], [1], -+ [[List of archive names. First name is the real one, the rest are links. -+ The last name is the one that the linker finds with -lNAME]]) -+_LT_DECL([], [soname_spec], [1], -+ [[The coded name of the library, if different from the real name]]) -+_LT_DECL([], [postinstall_cmds], [2], -+ [Command to use after installation of a shared archive]) -+_LT_DECL([], [postuninstall_cmds], [2], -+ [Command to use after uninstallation of a shared archive]) -+_LT_DECL([], [finish_cmds], [2], -+ [Commands used to finish a libtool library installation in a directory]) -+_LT_DECL([], [finish_eval], [1], -+ [[As "finish_cmds", except a single script fragment to be evaled but -+ not shown]]) -+_LT_DECL([], [hardcode_into_libs], [0], -+ [Whether we should hardcode library paths into libraries]) -+_LT_DECL([], [sys_lib_search_path_spec], [2], -+ [Compile-time system search path for libraries]) -+_LT_DECL([], [sys_lib_dlsearch_path_spec], [2], -+ [Run-time system search path for libraries]) -+])# _LT_SYS_DYNAMIC_LINKER -+ -+ -+# _LT_PATH_TOOL_PREFIX(TOOL) -+# -------------------------- -+# find a file program which can recognize shared library -+AC_DEFUN([_LT_PATH_TOOL_PREFIX], -+[m4_require([_LT_DECL_EGREP])dnl -+AC_MSG_CHECKING([for $1]) -+AC_CACHE_VAL(lt_cv_path_MAGIC_CMD, -+[case $MAGIC_CMD in -+[[\\/*] | ?:[\\/]*]) -+ lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. -+ ;; -+*) -+ lt_save_MAGIC_CMD="$MAGIC_CMD" -+ lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR -+dnl $ac_dummy forces splitting on constant user-supplied paths. -+dnl POSIX.2 word splitting is done only on the output of word expansions, -+dnl not every word. This closes a longstanding sh security hole. -+ ac_dummy="m4_if([$2], , $PATH, [$2])" -+ for ac_dir in $ac_dummy; do -+ IFS="$lt_save_ifs" -+ test -z "$ac_dir" && ac_dir=. -+ if test -f $ac_dir/$1; then -+ lt_cv_path_MAGIC_CMD="$ac_dir/$1" -+ if test -n "$file_magic_test_file"; then -+ case $deplibs_check_method in -+ "file_magic "*) -+ file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` -+ MAGIC_CMD="$lt_cv_path_MAGIC_CMD" -+ if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | -+ $EGREP "$file_magic_regex" > /dev/null; then -+ : -+ else -+ cat <<_LT_EOF 1>&2 -+ -+*** Warning: the command libtool uses to detect shared libraries, -+*** $file_magic_cmd, produces output that libtool cannot recognize. -+*** The result is that libtool may fail to recognize shared libraries -+*** as such. This will affect the creation of libtool libraries that -+*** depend on shared libraries, but programs linked with such libtool -+*** libraries will work regardless of this problem. Nevertheless, you -+*** may want to report the problem to your system manager and/or to -+*** bug-libtool@gnu.org -+ -+_LT_EOF -+ fi ;; -+ esac -+ fi -+ break -+ fi -+ done -+ IFS="$lt_save_ifs" -+ MAGIC_CMD="$lt_save_MAGIC_CMD" -+ ;; -+esac]) -+MAGIC_CMD="$lt_cv_path_MAGIC_CMD" -+if test -n "$MAGIC_CMD"; then -+ AC_MSG_RESULT($MAGIC_CMD) -+else -+ AC_MSG_RESULT(no) -+fi -+_LT_DECL([], [MAGIC_CMD], [0], -+ [Used to examine libraries when file_magic_cmd begins with "file"])dnl -+])# _LT_PATH_TOOL_PREFIX -+ -+# Old name: -+AU_ALIAS([AC_PATH_TOOL_PREFIX], [_LT_PATH_TOOL_PREFIX]) -+dnl aclocal-1.4 backwards compatibility: -+dnl AC_DEFUN([AC_PATH_TOOL_PREFIX], []) -+ -+ -+# _LT_PATH_MAGIC -+# -------------- -+# find a file program which can recognize a shared library -+m4_defun([_LT_PATH_MAGIC], -+[_LT_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH) -+if test -z "$lt_cv_path_MAGIC_CMD"; then -+ if test -n "$ac_tool_prefix"; then -+ _LT_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH) -+ else -+ MAGIC_CMD=: -+ fi -+fi -+])# _LT_PATH_MAGIC -+ -+ -+# LT_PATH_LD -+# ---------- -+# find the pathname to the GNU or non-GNU linker -+AC_DEFUN([LT_PATH_LD], -+[AC_REQUIRE([AC_PROG_CC])dnl -+AC_REQUIRE([AC_CANONICAL_HOST])dnl -+AC_REQUIRE([AC_CANONICAL_BUILD])dnl -+m4_require([_LT_DECL_SED])dnl -+m4_require([_LT_DECL_EGREP])dnl -+ -+AC_ARG_WITH([gnu-ld], -+ [AS_HELP_STRING([--with-gnu-ld], -+ [assume the C compiler uses GNU ld @<:@default=no@:>@])], -+ [test "$withval" = no || with_gnu_ld=yes], -+ [with_gnu_ld=no])dnl -+ -+ac_prog=ld -+if test "$GCC" = yes; then -+ # Check if gcc -print-prog-name=ld gives a path. -+ AC_MSG_CHECKING([for ld used by $CC]) -+ case $host in -+ *-*-mingw*) -+ # gcc leaves a trailing carriage return which upsets mingw -+ ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; -+ *) -+ ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; -+ esac -+ case $ac_prog in -+ # Accept absolute paths. -+ [[\\/]]* | ?:[[\\/]]*) -+ re_direlt='/[[^/]][[^/]]*/\.\./' -+ # Canonicalize the pathname of ld -+ ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` -+ while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do -+ ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` -+ done -+ test -z "$LD" && LD="$ac_prog" -+ ;; -+ "") -+ # If it fails, then pretend we aren't using GCC. -+ ac_prog=ld -+ ;; -+ *) -+ # If it is relative, then search for the first ld in PATH. -+ with_gnu_ld=unknown -+ ;; -+ esac -+elif test "$with_gnu_ld" = yes; then -+ AC_MSG_CHECKING([for GNU ld]) -+else -+ AC_MSG_CHECKING([for non-GNU ld]) -+fi -+AC_CACHE_VAL(lt_cv_path_LD, -+[if test -z "$LD"; then -+ lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR -+ for ac_dir in $PATH; do -+ IFS="$lt_save_ifs" -+ test -z "$ac_dir" && ac_dir=. -+ if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then -+ lt_cv_path_LD="$ac_dir/$ac_prog" -+ # Check to see if the program is GNU ld. I'd rather use --version, -+ # but apparently some variants of GNU ld only accept -v. -+ # Break only if it was the GNU/non-GNU ld that we prefer. -+ case `"$lt_cv_path_LD" -v 2>&1 &1 /dev/null 2>&1; then -+ lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' -+ lt_cv_file_magic_cmd='func_win32_libid' -+ else -+ lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' -+ lt_cv_file_magic_cmd='$OBJDUMP -f' -+ fi -+ ;; -+ -+cegcc) -+ # use the weaker test based on 'objdump'. See mingw*. -+ lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' -+ lt_cv_file_magic_cmd='$OBJDUMP -f' -+ ;; -+ -+darwin* | rhapsody*) -+ lt_cv_deplibs_check_method=pass_all -+ ;; -+ -+freebsd* | dragonfly*) -+ if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then -+ case $host_cpu in -+ i*86 ) -+ # Not sure whether the presence of OpenBSD here was a mistake. -+ # Let's accept both of them until this is cleared up. -+ lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[[3-9]]86 (compact )?demand paged shared library' -+ lt_cv_file_magic_cmd=/usr/bin/file -+ lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` -+ ;; -+ esac -+ else -+ lt_cv_deplibs_check_method=pass_all -+ fi -+ ;; -+ -+gnu*) -+ lt_cv_deplibs_check_method=pass_all -+ ;; -+ -+hpux10.20* | hpux11*) -+ lt_cv_file_magic_cmd=/usr/bin/file -+ case $host_cpu in -+ ia64*) -+ lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64' -+ lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so -+ ;; -+ hppa*64*) -+ [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]'] -+ lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl -+ ;; -+ *) -+ lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]].[[0-9]]) shared library' -+ lt_cv_file_magic_test_file=/usr/lib/libc.sl -+ ;; -+ esac -+ ;; -+ -+interix[[3-9]]*) -+ # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here -+ lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|\.a)$' -+ ;; -+ -+irix5* | irix6* | nonstopux*) -+ case $LD in -+ *-32|*"-32 ") libmagic=32-bit;; -+ *-n32|*"-n32 ") libmagic=N32;; -+ *-64|*"-64 ") libmagic=64-bit;; -+ *) libmagic=never-match;; -+ esac -+ lt_cv_deplibs_check_method=pass_all -+ ;; -+ -+# This must be Linux ELF. -+linux* | k*bsd*-gnu) -+ lt_cv_deplibs_check_method=pass_all -+ ;; -+ -+netbsd*) -+ if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then -+ lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' -+ else -+ lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$' -+ fi -+ ;; -+ -+newos6*) -+ lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)' -+ lt_cv_file_magic_cmd=/usr/bin/file -+ lt_cv_file_magic_test_file=/usr/lib/libnls.so -+ ;; -+ -+*nto* | *qnx*) -+ lt_cv_deplibs_check_method=pass_all -+ ;; -+ -+openbsd*) -+ if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then -+ lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|\.so|_pic\.a)$' -+ else -+ lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' -+ fi -+ ;; -+ -+osf3* | osf4* | osf5*) -+ lt_cv_deplibs_check_method=pass_all -+ ;; -+ -+rdos*) -+ lt_cv_deplibs_check_method=pass_all -+ ;; -+ -+solaris*) -+ lt_cv_deplibs_check_method=pass_all -+ ;; -+ -+sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) -+ lt_cv_deplibs_check_method=pass_all -+ ;; -+ -+sysv4 | sysv4.3*) -+ case $host_vendor in -+ motorola) -+ lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]' -+ lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` -+ ;; -+ ncr) -+ lt_cv_deplibs_check_method=pass_all -+ ;; -+ sequent) -+ lt_cv_file_magic_cmd='/bin/file' -+ lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )' -+ ;; -+ sni) -+ lt_cv_file_magic_cmd='/bin/file' -+ lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib" -+ lt_cv_file_magic_test_file=/lib/libc.so -+ ;; -+ siemens) -+ lt_cv_deplibs_check_method=pass_all -+ ;; -+ pc) -+ lt_cv_deplibs_check_method=pass_all -+ ;; -+ esac -+ ;; -+ -+tpf*) -+ lt_cv_deplibs_check_method=pass_all -+ ;; -+esac -+]) -+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 -+ -+_LT_DECL([], [deplibs_check_method], [1], -+ [Method to check whether dependent libraries are shared objects]) -+_LT_DECL([], [file_magic_cmd], [1], -+ [Command to use when deplibs_check_method == "file_magic"]) -+])# _LT_CHECK_MAGIC_METHOD -+ -+ -+# LT_PATH_NM -+# ---------- -+# find the pathname to a BSD- or MS-compatible name lister -+AC_DEFUN([LT_PATH_NM], -+[AC_REQUIRE([AC_PROG_CC])dnl -+AC_CACHE_CHECK([for BSD- or MS-compatible name lister (nm)], lt_cv_path_NM, -+[if test -n "$NM"; then -+ # Let the user override the test. -+ lt_cv_path_NM="$NM" -+else -+ lt_nm_to_check="${ac_tool_prefix}nm" -+ if test -n "$ac_tool_prefix" && test "$build" = "$host"; then -+ lt_nm_to_check="$lt_nm_to_check nm" -+ fi -+ for lt_tmp_nm in $lt_nm_to_check; do -+ lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR -+ for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do -+ IFS="$lt_save_ifs" -+ test -z "$ac_dir" && ac_dir=. -+ tmp_nm="$ac_dir/$lt_tmp_nm" -+ if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then -+ # Check to see if the nm accepts a BSD-compat flag. -+ # Adding the `sed 1q' prevents false positives on HP-UX, which says: -+ # nm: unknown option "B" ignored -+ # Tru64's nm complains that /dev/null is an invalid object file -+ case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in -+ */dev/null* | *'Invalid file or object type'*) -+ lt_cv_path_NM="$tmp_nm -B" -+ break -+ ;; -+ *) -+ case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in -+ */dev/null*) -+ lt_cv_path_NM="$tmp_nm -p" -+ break -+ ;; -+ *) -+ lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but -+ continue # so that we can try to find one that supports BSD flags -+ ;; -+ esac -+ ;; -+ esac -+ fi -+ done -+ IFS="$lt_save_ifs" -+ done -+ : ${lt_cv_path_NM=no} -+fi]) -+if test "$lt_cv_path_NM" != "no"; then -+ NM="$lt_cv_path_NM" -+else -+ # Didn't find any BSD compatible name lister, look for dumpbin. -+ AC_CHECK_TOOLS(DUMPBIN, ["dumpbin -symbols" "link -dump -symbols"], :) -+ AC_SUBST([DUMPBIN]) -+ if test "$DUMPBIN" != ":"; then -+ NM="$DUMPBIN" -+ fi -+fi -+test -z "$NM" && NM=nm -+AC_SUBST([NM]) -+_LT_DECL([], [NM], [1], [A BSD- or MS-compatible name lister])dnl -+ -+AC_CACHE_CHECK([the name lister ($NM) interface], [lt_cv_nm_interface], -+ [lt_cv_nm_interface="BSD nm" -+ echo "int some_variable = 0;" > conftest.$ac_ext -+ (eval echo "\"\$as_me:__oline__: $ac_compile\"" >&AS_MESSAGE_LOG_FD) -+ (eval "$ac_compile" 2>conftest.err) -+ cat conftest.err >&AS_MESSAGE_LOG_FD -+ (eval echo "\"\$as_me:__oline__: $NM \\\"conftest.$ac_objext\\\"\"" >&AS_MESSAGE_LOG_FD) -+ (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) -+ cat conftest.err >&AS_MESSAGE_LOG_FD -+ (eval echo "\"\$as_me:__oline__: output\"" >&AS_MESSAGE_LOG_FD) -+ cat conftest.out >&AS_MESSAGE_LOG_FD -+ if $GREP 'External.*some_variable' conftest.out > /dev/null; then -+ lt_cv_nm_interface="MS dumpbin" -+ fi -+ rm -f conftest*]) -+])# LT_PATH_NM -+ -+# Old names: -+AU_ALIAS([AM_PROG_NM], [LT_PATH_NM]) -+AU_ALIAS([AC_PROG_NM], [LT_PATH_NM]) -+dnl aclocal-1.4 backwards compatibility: -+dnl AC_DEFUN([AM_PROG_NM], []) -+dnl AC_DEFUN([AC_PROG_NM], []) -+ -+ -+# LT_LIB_M -+# -------- -+# check for math library -+AC_DEFUN([LT_LIB_M], -+[AC_REQUIRE([AC_CANONICAL_HOST])dnl -+LIBM= -+case $host in -+*-*-beos* | *-*-cygwin* | *-*-pw32* | *-*-darwin*) -+ # These system don't have libm, or don't need it -+ ;; -+*-ncr-sysv4.3*) -+ AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw") -+ AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm") -+ ;; -+*) -+ AC_CHECK_LIB(m, cos, LIBM="-lm") -+ ;; -+esac -+AC_SUBST([LIBM]) -+])# LT_LIB_M -+ -+# Old name: -+AU_ALIAS([AC_CHECK_LIBM], [LT_LIB_M]) -+dnl aclocal-1.4 backwards compatibility: -+dnl AC_DEFUN([AC_CHECK_LIBM], []) -+ -+ -+# _LT_COMPILER_NO_RTTI([TAGNAME]) -+# ------------------------------- -+m4_defun([_LT_COMPILER_NO_RTTI], -+[m4_require([_LT_TAG_COMPILER])dnl -+ -+_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= -+ -+if test "$GCC" = yes; then -+ _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' -+ -+ _LT_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions], -+ lt_cv_prog_compiler_rtti_exceptions, -+ [-fno-rtti -fno-exceptions], [], -+ [_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"]) -+fi -+_LT_TAGDECL([no_builtin_flag], [lt_prog_compiler_no_builtin_flag], [1], -+ [Compiler flag to turn off builtin functions]) -+])# _LT_COMPILER_NO_RTTI -+ -+ -+# _LT_CMD_GLOBAL_SYMBOLS -+# ---------------------- -+m4_defun([_LT_CMD_GLOBAL_SYMBOLS], -+[AC_REQUIRE([AC_CANONICAL_HOST])dnl -+AC_REQUIRE([AC_PROG_CC])dnl -+AC_REQUIRE([LT_PATH_NM])dnl -+AC_REQUIRE([LT_PATH_LD])dnl -+m4_require([_LT_DECL_SED])dnl -+m4_require([_LT_DECL_EGREP])dnl -+m4_require([_LT_TAG_COMPILER])dnl -+ -+# Check for command to grab the raw symbol name followed by C symbol from nm. -+AC_MSG_CHECKING([command to parse $NM output from $compiler object]) -+AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe], -+[ -+# These are sane defaults that work on at least a few old systems. -+# [They come from Ultrix. What could be older than Ultrix?!! ;)] -+ -+# Character class describing NM global symbol codes. -+symcode='[[BCDEGRST]]' -+ -+# Regexp to match symbols that can be accessed directly from C. -+sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)' -+ -+# Define system-specific variables. -+case $host_os in -+aix*) -+ symcode='[[BCDT]]' -+ ;; -+cygwin* | mingw* | pw32* | cegcc*) -+ symcode='[[ABCDGISTW]]' -+ ;; -+hpux*) -+ if test "$host_cpu" = ia64; then -+ symcode='[[ABCDEGRST]]' -+ fi -+ ;; -+irix* | nonstopux*) -+ symcode='[[BCDEGRST]]' -+ ;; -+osf*) -+ symcode='[[BCDEGQRST]]' -+ ;; -+solaris*) -+ symcode='[[BDRT]]' -+ ;; -+sco3.2v5*) -+ symcode='[[DT]]' -+ ;; -+sysv4.2uw2*) -+ symcode='[[DT]]' -+ ;; -+sysv5* | sco5v6* | unixware* | OpenUNIX*) -+ symcode='[[ABDT]]' -+ ;; -+sysv4) -+ symcode='[[DFNSTU]]' -+ ;; -+esac -+ -+# If we're using GNU nm, then use its standard symbol codes. -+case `$NM -V 2>&1` in -+*GNU* | *'with BFD'*) -+ symcode='[[ABCDGIRSTW]]' ;; -+esac -+ -+# Transform an extracted symbol line into a proper C declaration. -+# Some systems (esp. on ia64) link data and code symbols differently, -+# so use this general approach. -+lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" -+ -+# Transform an extracted symbol line into symbol name and symbol address -+lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p'" -+lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \(lib[[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"lib\2\", (void *) \&\2},/p'" -+ -+# Handle CRLF in mingw tool chain -+opt_cr= -+case $build_os in -+mingw*) -+ opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp -+ ;; -+esac -+ -+# Try without a prefix underscore, then with it. -+for ac_symprfx in "" "_"; do -+ -+ # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. -+ symxfrm="\\1 $ac_symprfx\\2 \\2" -+ -+ # Write the raw and C identifiers. -+ if test "$lt_cv_nm_interface" = "MS dumpbin"; then -+ # Fake it for dumpbin and say T for any non-static function -+ # and D for any global variable. -+ # Also find C++ and __fastcall symbols from MSVC++, -+ # which start with @ or ?. -+ lt_cv_sys_global_symbol_pipe="$AWK ['"\ -+" {last_section=section; section=\$ 3};"\ -+" /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ -+" \$ 0!~/External *\|/{next};"\ -+" / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ -+" {if(hide[section]) next};"\ -+" {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\ -+" {split(\$ 0, a, /\||\r/); split(a[2], s)};"\ -+" s[1]~/^[@?]/{print s[1], s[1]; next};"\ -+" s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\ -+" ' prfx=^$ac_symprfx]" -+ else -+ lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" -+ fi -+ -+ # Check to see that the pipe works correctly. -+ pipe_works=no -+ -+ rm -f conftest* -+ cat > conftest.$ac_ext <<_LT_EOF -+#ifdef __cplusplus -+extern "C" { -+#endif -+char nm_test_var; -+void nm_test_func(void); -+void nm_test_func(void){} -+#ifdef __cplusplus -+} -+#endif -+int main(){nm_test_var='a';nm_test_func();return(0);} -+_LT_EOF -+ -+ if AC_TRY_EVAL(ac_compile); then -+ # Now try to grab the symbols. -+ nlist=conftest.nm -+ if AC_TRY_EVAL(NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) && test -s "$nlist"; then -+ # Try sorting and uniquifying the output. -+ if sort "$nlist" | uniq > "$nlist"T; then -+ mv -f "$nlist"T "$nlist" -+ else -+ rm -f "$nlist"T -+ fi -+ -+ # Make sure that we snagged all the symbols we need. -+ if $GREP ' nm_test_var$' "$nlist" >/dev/null; then -+ if $GREP ' nm_test_func$' "$nlist" >/dev/null; then -+ cat <<_LT_EOF > conftest.$ac_ext -+#ifdef __cplusplus -+extern "C" { -+#endif -+ -+_LT_EOF -+ # Now generate the symbol file. -+ eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' -+ -+ cat <<_LT_EOF >> conftest.$ac_ext -+ -+/* The mapping between symbol names and symbols. */ -+const struct { -+ const char *name; -+ void *address; -+} -+lt__PROGRAM__LTX_preloaded_symbols[[]] = -+{ -+ { "@PROGRAM@", (void *) 0 }, -+_LT_EOF -+ $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext -+ cat <<\_LT_EOF >> conftest.$ac_ext -+ {0, (void *) 0} -+}; -+ -+/* This works around a problem in FreeBSD linker */ -+#ifdef FREEBSD_WORKAROUND -+static const void *lt_preloaded_setup() { -+ return lt__PROGRAM__LTX_preloaded_symbols; -+} -+#endif -+ -+#ifdef __cplusplus -+} -+#endif -+_LT_EOF -+ # Now try linking the two files. -+ mv conftest.$ac_objext conftstm.$ac_objext -+ lt_save_LIBS="$LIBS" -+ lt_save_CFLAGS="$CFLAGS" -+ LIBS="conftstm.$ac_objext" -+ CFLAGS="$CFLAGS$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)" -+ if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext}; then -+ pipe_works=yes -+ fi -+ LIBS="$lt_save_LIBS" -+ CFLAGS="$lt_save_CFLAGS" -+ else -+ echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD -+ fi -+ else -+ echo "cannot find nm_test_var in $nlist" >&AS_MESSAGE_LOG_FD -+ fi -+ else -+ echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD -+ fi -+ else -+ echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD -+ cat conftest.$ac_ext >&5 -+ fi -+ rm -rf conftest* conftst* -+ -+ # Do not use the global_symbol_pipe unless it works. -+ if test "$pipe_works" = yes; then -+ break -+ else -+ lt_cv_sys_global_symbol_pipe= -+ fi -+done -+]) -+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 -+ AC_MSG_RESULT(failed) -+else -+ AC_MSG_RESULT(ok) -+fi -+ -+_LT_DECL([global_symbol_pipe], [lt_cv_sys_global_symbol_pipe], [1], -+ [Take the output of nm and produce a listing of raw symbols and C names]) -+_LT_DECL([global_symbol_to_cdecl], [lt_cv_sys_global_symbol_to_cdecl], [1], -+ [Transform the output of nm in a proper C declaration]) -+_LT_DECL([global_symbol_to_c_name_address], -+ [lt_cv_sys_global_symbol_to_c_name_address], [1], -+ [Transform the output of nm in a C name address pair]) -+_LT_DECL([global_symbol_to_c_name_address_lib_prefix], -+ [lt_cv_sys_global_symbol_to_c_name_address_lib_prefix], [1], -+ [Transform the output of nm in a C name address pair when lib prefix is needed]) -+]) # _LT_CMD_GLOBAL_SYMBOLS -+ -+ -+# _LT_COMPILER_PIC([TAGNAME]) -+# --------------------------- -+m4_defun([_LT_COMPILER_PIC], -+[m4_require([_LT_TAG_COMPILER])dnl -+_LT_TAGVAR(lt_prog_compiler_wl, $1)= -+_LT_TAGVAR(lt_prog_compiler_pic, $1)= -+_LT_TAGVAR(lt_prog_compiler_static, $1)= -+ -+AC_MSG_CHECKING([for $compiler option to produce PIC]) -+m4_if([$1], [CXX], [ -+ # C++ specific cases for pic, static, wl, etc. -+ if test "$GXX" = yes; then -+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' -+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' -+ -+ case $host_os in -+ aix*) -+ # All AIX code is PIC. -+ if test "$host_cpu" = ia64; then -+ # AIX 5 now supports IA64 processor -+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' -+ fi -+ ;; -+ -+ amigaos*) -+ case $host_cpu in -+ powerpc) -+ # see comment about AmigaOS4 .so support -+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' -+ ;; -+ m68k) -+ # FIXME: we need at least 68020 code to build shared libraries, but -+ # adding the `-m68020' flag to GCC prevents building anything better, -+ # like `-m68040'. -+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' -+ ;; -+ esac -+ ;; -+ -+ beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) -+ # PIC is the default for these OSes. -+ ;; -+ mingw* | cygwin* | os2* | pw32* | cegcc*) -+ # This hack is so that the source file can tell whether it is being -+ # built for inclusion in a dll (and should export symbols for example). -+ # Although the cygwin gcc ignores -fPIC, still need this for old-style -+ # (--disable-auto-import) libraries -+ m4_if([$1], [GCJ], [], -+ [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) -+ ;; -+ darwin* | rhapsody*) -+ # PIC is the default on this platform -+ # Common symbols not allowed in MH_DYLIB files -+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' -+ ;; -+ *djgpp*) -+ # DJGPP does not support shared libraries at all -+ _LT_TAGVAR(lt_prog_compiler_pic, $1)= -+ ;; -+ interix[[3-9]]*) -+ # Interix 3.x gcc -fpic/-fPIC options generate broken code. -+ # Instead, we relocate shared libraries at runtime. -+ ;; -+ sysv4*MP*) -+ if test -d /usr/nec; then -+ _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic -+ fi -+ ;; -+ hpux*) -+ # PIC is the default for 64-bit PA HP-UX, but not for 32-bit -+ # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag -+ # sets the default TLS model and affects inlining. -+ case $host_cpu in -+ hppa*64*) -+ ;; -+ *) -+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' -+ ;; -+ esac -+ ;; -+ *qnx* | *nto*) -+ # QNX uses GNU C++, but need to define -shared option too, otherwise -+ # it will coredump. -+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' -+ ;; -+ *) -+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' -+ ;; -+ esac -+ else -+ case $host_os in -+ aix[[4-9]]*) -+ # All AIX code is PIC. -+ if test "$host_cpu" = ia64; then -+ # AIX 5 now supports IA64 processor -+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' -+ else -+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' -+ fi -+ ;; -+ chorus*) -+ case $cc_basename in -+ cxch68*) -+ # Green Hills C++ Compiler -+ # _LT_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a" -+ ;; -+ esac -+ ;; -+ dgux*) -+ case $cc_basename in -+ ec++*) -+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' -+ ;; -+ ghcx*) -+ # Green Hills C++ Compiler -+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' -+ ;; -+ *) -+ ;; -+ esac -+ ;; -+ freebsd* | dragonfly*) -+ # FreeBSD uses GNU C++ -+ ;; -+ hpux9* | hpux10* | hpux11*) -+ case $cc_basename in -+ CC*) -+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' -+ _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' -+ if test "$host_cpu" != ia64; then -+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' -+ fi -+ ;; -+ aCC*) -+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' -+ _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' -+ case $host_cpu in -+ hppa*64*|ia64*) -+ # +Z the default -+ ;; -+ *) -+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' -+ ;; -+ esac -+ ;; -+ *) -+ ;; -+ esac -+ ;; -+ interix*) -+ # This is c89, which is MS Visual C++ (no shared libs) -+ # Anyone wants to do a port? -+ ;; -+ irix5* | irix6* | nonstopux*) -+ case $cc_basename in -+ CC*) -+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' -+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' -+ # CC pic flag -KPIC is the default. -+ ;; -+ *) -+ ;; -+ esac -+ ;; -+ linux* | k*bsd*-gnu) -+ case $cc_basename in -+ KCC*) -+ # KAI C++ Compiler -+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' -+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' -+ ;; -+ ecpc* ) -+ # old Intel C++ for x86_64 which still supported -KPIC. -+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' -+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' -+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' -+ ;; -+ icpc* ) -+ # Intel C++, used to be incompatible with GCC. -+ # ICC 10 doesn't accept -KPIC any more. -+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' -+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' -+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' -+ ;; -+ pgCC* | pgcpp*) -+ # Portland Group C++ compiler -+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' -+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' -+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' -+ ;; -+ cxx*) -+ # Compaq C++ -+ # Make sure the PIC flag is empty. It appears that all Alpha -+ # Linux and Compaq Tru64 Unix objects are PIC. -+ _LT_TAGVAR(lt_prog_compiler_pic, $1)= -+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' -+ ;; -+ xlc* | xlC*) -+ # IBM XL 8.0 on PPC -+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' -+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' -+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' -+ ;; -+ *) -+ case `$CC -V 2>&1 | sed 5q` in -+ *Sun\ C*) -+ # Sun C++ 5.9 -+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' -+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' -+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' -+ ;; -+ esac -+ ;; -+ esac -+ ;; -+ lynxos*) -+ ;; -+ m88k*) -+ ;; -+ mvs*) -+ case $cc_basename in -+ cxx*) -+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall' -+ ;; -+ *) -+ ;; -+ esac -+ ;; -+ netbsd*) -+ ;; -+ *qnx* | *nto*) -+ # QNX uses GNU C++, but need to define -shared option too, otherwise -+ # it will coredump. -+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' -+ ;; -+ osf3* | osf4* | osf5*) -+ case $cc_basename in -+ KCC*) -+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' -+ ;; -+ RCC*) -+ # Rational C++ 2.4.1 -+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' -+ ;; -+ cxx*) -+ # Digital/Compaq C++ -+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' -+ # Make sure the PIC flag is empty. It appears that all Alpha -+ # Linux and Compaq Tru64 Unix objects are PIC. -+ _LT_TAGVAR(lt_prog_compiler_pic, $1)= -+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' -+ ;; -+ *) -+ ;; -+ esac -+ ;; -+ psos*) -+ ;; -+ solaris*) -+ case $cc_basename in -+ CC*) -+ # Sun C++ 4.2, 5.x and Centerline C++ -+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' -+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' -+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' -+ ;; -+ gcx*) -+ # Green Hills C++ Compiler -+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' -+ ;; -+ *) -+ ;; -+ esac -+ ;; -+ sunos4*) -+ case $cc_basename in -+ CC*) -+ # Sun C++ 4.x -+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' -+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' -+ ;; -+ lcc*) -+ # Lucid -+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' -+ ;; -+ *) -+ ;; -+ esac -+ ;; -+ sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) -+ case $cc_basename in -+ CC*) -+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' -+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' -+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' -+ ;; -+ esac -+ ;; -+ tandem*) -+ case $cc_basename in -+ NCC*) -+ # NonStop-UX NCC 3.20 -+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' -+ ;; -+ *) -+ ;; -+ esac -+ ;; -+ vxworks*) -+ ;; -+ *) -+ _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no -+ ;; -+ esac -+ fi -+], -+[ -+ if test "$GCC" = yes; then -+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' -+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' -+ -+ case $host_os in -+ aix*) -+ # All AIX code is PIC. -+ if test "$host_cpu" = ia64; then -+ # AIX 5 now supports IA64 processor -+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' -+ fi -+ ;; -+ -+ amigaos*) -+ case $host_cpu in -+ powerpc) -+ # see comment about AmigaOS4 .so support -+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' -+ ;; -+ m68k) -+ # FIXME: we need at least 68020 code to build shared libraries, but -+ # adding the `-m68020' flag to GCC prevents building anything better, -+ # like `-m68040'. -+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' -+ ;; -+ esac -+ ;; -+ -+ beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) -+ # PIC is the default for these OSes. -+ ;; -+ -+ mingw* | cygwin* | pw32* | os2* | cegcc*) -+ # This hack is so that the source file can tell whether it is being -+ # built for inclusion in a dll (and should export symbols for example). -+ # Although the cygwin gcc ignores -fPIC, still need this for old-style -+ # (--disable-auto-import) libraries -+ m4_if([$1], [GCJ], [], -+ [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) -+ ;; -+ -+ darwin* | rhapsody*) -+ # PIC is the default on this platform -+ # Common symbols not allowed in MH_DYLIB files -+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' -+ ;; -+ -+ hpux*) -+ # PIC is the default for 64-bit PA HP-UX, but not for 32-bit -+ # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag -+ # sets the default TLS model and affects inlining. -+ case $host_cpu in -+ hppa*64*) -+ # +Z the default -+ ;; -+ *) -+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' -+ ;; -+ esac -+ ;; -+ -+ interix[[3-9]]*) -+ # Interix 3.x gcc -fpic/-fPIC options generate broken code. -+ # Instead, we relocate shared libraries at runtime. -+ ;; -+ -+ msdosdjgpp*) -+ # Just because we use GCC doesn't mean we suddenly get shared libraries -+ # on systems that don't support them. -+ _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no -+ enable_shared=no -+ ;; -+ -+ *nto* | *qnx*) -+ # QNX uses GNU C++, but need to define -shared option too, otherwise -+ # it will coredump. -+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' -+ ;; -+ -+ sysv4*MP*) -+ if test -d /usr/nec; then -+ _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic -+ fi -+ ;; -+ -+ *) -+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' -+ ;; -+ esac -+ else -+ # PORTME Check for flag to pass linker flags through the system compiler. -+ case $host_os in -+ aix*) -+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' -+ if test "$host_cpu" = ia64; then -+ # AIX 5 now supports IA64 processor -+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' -+ else -+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' -+ fi -+ ;; -+ -+ mingw* | cygwin* | pw32* | os2* | cegcc*) -+ # This hack is so that the source file can tell whether it is being -+ # built for inclusion in a dll (and should export symbols for example). -+ m4_if([$1], [GCJ], [], -+ [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) -+ ;; -+ -+ hpux9* | hpux10* | hpux11*) -+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' -+ # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but -+ # not for PA HP-UX. -+ case $host_cpu in -+ hppa*64*|ia64*) -+ # +Z the default -+ ;; -+ *) -+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' -+ ;; -+ esac -+ # Is there a better lt_prog_compiler_static that works with the bundled CC? -+ _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' -+ ;; -+ -+ irix5* | irix6* | nonstopux*) -+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' -+ # PIC (with -KPIC) is the default. -+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' -+ ;; -+ -+ linux* | k*bsd*-gnu) -+ case $cc_basename in -+ # old Intel for x86_64 which still supported -KPIC. -+ ecc*) -+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' -+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' -+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' -+ ;; -+ # icc used to be incompatible with GCC. -+ # ICC 10 doesn't accept -KPIC any more. -+ icc* | ifort*) -+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' -+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' -+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' -+ ;; -+ # Lahey Fortran 8.1. -+ lf95*) -+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' -+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='--shared' -+ _LT_TAGVAR(lt_prog_compiler_static, $1)='--static' -+ ;; -+ pgcc* | pgf77* | pgf90* | pgf95*) -+ # Portland Group compilers (*not* the Pentium gcc compiler, -+ # which looks to be a dead project) -+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' -+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' -+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' -+ ;; -+ ccc*) -+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' -+ # All Alpha code is PIC. -+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' -+ ;; -+ xl*) -+ # IBM XL C 8.0/Fortran 10.1 on PPC -+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' -+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' -+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' -+ ;; -+ *) -+ case `$CC -V 2>&1 | sed 5q` in -+ *Sun\ C*) -+ # Sun C 5.9 -+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' -+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' -+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' -+ ;; -+ *Sun\ F*) -+ # Sun Fortran 8.3 passes all unrecognized flags to the linker -+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' -+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' -+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='' -+ ;; -+ esac -+ ;; -+ esac -+ ;; -+ -+ newsos6) -+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' -+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' -+ ;; -+ -+ *nto* | *qnx*) -+ # QNX uses GNU C++, but need to define -shared option too, otherwise -+ # it will coredump. -+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' -+ ;; -+ -+ osf3* | osf4* | osf5*) -+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' -+ # All OSF/1 code is PIC. -+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' -+ ;; -+ -+ rdos*) -+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' -+ ;; -+ -+ solaris*) -+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' -+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' -+ case $cc_basename in -+ f77* | f90* | f95*) -+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';; -+ *) -+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';; -+ esac -+ ;; -+ -+ sunos4*) -+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' -+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' -+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' -+ ;; -+ -+ sysv4 | sysv4.2uw2* | sysv4.3*) -+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' -+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' -+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' -+ ;; -+ -+ sysv4*MP*) -+ if test -d /usr/nec ;then -+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic' -+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' -+ fi -+ ;; -+ -+ sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) -+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' -+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' -+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' -+ ;; -+ -+ unicos*) -+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' -+ _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no -+ ;; -+ -+ uts4*) -+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' -+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' -+ ;; -+ -+ *) -+ _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no -+ ;; -+ esac -+ fi -+]) -+case $host_os in -+ # For platforms which do not support PIC, -DPIC is meaningless: -+ *djgpp*) -+ _LT_TAGVAR(lt_prog_compiler_pic, $1)= -+ ;; -+ *) -+ _LT_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])" -+ ;; -+esac -+AC_MSG_RESULT([$_LT_TAGVAR(lt_prog_compiler_pic, $1)]) -+_LT_TAGDECL([wl], [lt_prog_compiler_wl], [1], -+ [How to pass a linker flag through the compiler]) -+ -+# -+# Check to make sure the PIC flag actually works. -+# -+if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then -+ _LT_COMPILER_OPTION([if $compiler PIC flag $_LT_TAGVAR(lt_prog_compiler_pic, $1) works], -+ [_LT_TAGVAR(lt_cv_prog_compiler_pic_works, $1)], -+ [$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])], [], -+ [case $_LT_TAGVAR(lt_prog_compiler_pic, $1) in -+ "" | " "*) ;; -+ *) _LT_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_TAGVAR(lt_prog_compiler_pic, $1)" ;; -+ esac], -+ [_LT_TAGVAR(lt_prog_compiler_pic, $1)= -+ _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no]) -+fi -+_LT_TAGDECL([pic_flag], [lt_prog_compiler_pic], [1], -+ [Additional compiler flags for building library objects]) -+ -+# -+# Check to make sure the static flag actually works. -+# -+wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) eval lt_tmp_static_flag=\"$_LT_TAGVAR(lt_prog_compiler_static, $1)\" -+_LT_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works], -+ _LT_TAGVAR(lt_cv_prog_compiler_static_works, $1), -+ $lt_tmp_static_flag, -+ [], -+ [_LT_TAGVAR(lt_prog_compiler_static, $1)=]) -+_LT_TAGDECL([link_static_flag], [lt_prog_compiler_static], [1], -+ [Compiler flag to prevent dynamic linking]) -+])# _LT_COMPILER_PIC -+ -+ -+# _LT_LINKER_SHLIBS([TAGNAME]) -+# ---------------------------- -+# See if the linker supports building shared libraries. -+m4_defun([_LT_LINKER_SHLIBS], -+[AC_REQUIRE([LT_PATH_LD])dnl -+AC_REQUIRE([LT_PATH_NM])dnl -+m4_require([_LT_FILEUTILS_DEFAULTS])dnl -+m4_require([_LT_DECL_EGREP])dnl -+m4_require([_LT_DECL_SED])dnl -+m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl -+m4_require([_LT_TAG_COMPILER])dnl -+AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) -+m4_if([$1], [CXX], [ -+ _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' -+ case $host_os in -+ aix[[4-9]]*) -+ # If we're using GNU nm, then we don't want the "-C" option. -+ # -C means demangle to AIX nm, but means don't demangle with GNU nm -+ if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then -+ _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' -+ else -+ _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' -+ fi -+ ;; -+ pw32*) -+ _LT_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds" -+ ;; -+ cygwin* | mingw* | cegcc*) -+ _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;/^.*[[ ]]__nm__/s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' -+ ;; -+ *) -+ _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' -+ ;; -+ esac -+ _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] -+], [ -+ runpath_var= -+ _LT_TAGVAR(allow_undefined_flag, $1)= -+ _LT_TAGVAR(always_export_symbols, $1)=no -+ _LT_TAGVAR(archive_cmds, $1)= -+ _LT_TAGVAR(archive_expsym_cmds, $1)= -+ _LT_TAGVAR(compiler_needs_object, $1)=no -+ _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no -+ _LT_TAGVAR(export_dynamic_flag_spec, $1)= -+ _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' -+ _LT_TAGVAR(hardcode_automatic, $1)=no -+ _LT_TAGVAR(hardcode_direct, $1)=no -+ _LT_TAGVAR(hardcode_direct_absolute, $1)=no -+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= -+ _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= -+ _LT_TAGVAR(hardcode_libdir_separator, $1)= -+ _LT_TAGVAR(hardcode_minus_L, $1)=no -+ _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported -+ _LT_TAGVAR(inherit_rpath, $1)=no -+ _LT_TAGVAR(link_all_deplibs, $1)=unknown -+ _LT_TAGVAR(module_cmds, $1)= -+ _LT_TAGVAR(module_expsym_cmds, $1)= -+ _LT_TAGVAR(old_archive_from_new_cmds, $1)= -+ _LT_TAGVAR(old_archive_from_expsyms_cmds, $1)= -+ _LT_TAGVAR(thread_safe_flag_spec, $1)= -+ _LT_TAGVAR(whole_archive_flag_spec, $1)= -+ # include_expsyms should be a list of space-separated symbols to be *always* -+ # included in the symbol list -+ _LT_TAGVAR(include_expsyms, $1)= -+ # exclude_expsyms can be an extended regexp of symbols to exclude -+ # it will be wrapped by ` (' and `)$', so one must not match beginning or -+ # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', -+ # as well as any symbol that contains `d'. -+ _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] -+ # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out -+ # platforms (ab)use it in PIC code, but their linkers get confused if -+ # the symbol is explicitly referenced. Since portable code cannot -+ # rely on this symbol name, it's probably fine to never include it in -+ # preloaded symbol tables. -+ # Exclude shared library initialization/finalization symbols. -+dnl Note also adjust exclude_expsyms for C++ above. -+ extract_expsyms_cmds= -+ -+ case $host_os in -+ cygwin* | mingw* | pw32* | cegcc*) -+ # FIXME: the MSVC++ port hasn't been tested in a loooong time -+ # When not using gcc, we currently assume that we are using -+ # Microsoft Visual C++. -+ if test "$GCC" != yes; then -+ with_gnu_ld=no -+ fi -+ ;; -+ interix*) -+ # we just hope/assume this is gcc and not c89 (= MSVC++) -+ with_gnu_ld=yes -+ ;; -+ openbsd*) -+ with_gnu_ld=no -+ ;; -+ esac -+ -+ _LT_TAGVAR(ld_shlibs, $1)=yes -+ if test "$with_gnu_ld" = yes; then -+ # If archive_cmds runs LD, not CC, wlarc should be empty -+ wlarc='${wl}' -+ -+ # Set some defaults for GNU ld with shared library support. These -+ # are reset later if shared libraries are not supported. Putting them -+ # here allows them to be overridden if necessary. -+ runpath_var=LD_RUN_PATH -+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' -+ _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' -+ # ancient GNU ld didn't support --whole-archive et. al. -+ if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then -+ _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' -+ else -+ _LT_TAGVAR(whole_archive_flag_spec, $1)= -+ fi -+ supports_anon_versioning=no -+ case `$LD -v 2>&1` in -+ *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11 -+ *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... -+ *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... -+ *\ 2.11.*) ;; # other 2.11 versions -+ *) supports_anon_versioning=yes ;; -+ esac -+ -+ # See if GNU ld supports shared libraries. -+ case $host_os in -+ aix[[3-9]]*) -+ # On AIX/PPC, the GNU linker is very broken -+ if test "$host_cpu" != ia64; then -+ _LT_TAGVAR(ld_shlibs, $1)=no -+ cat <<_LT_EOF 1>&2 -+ -+*** Warning: the GNU linker, at least up to release 2.9.1, is reported -+*** to be unable to reliably create shared libraries on AIX. -+*** Therefore, libtool is disabling shared libraries support. If you -+*** really care for shared libraries, you may want to modify your PATH -+*** so that a non-GNU linker is found, and then restart. -+ -+_LT_EOF -+ fi -+ ;; -+ -+ amigaos*) -+ case $host_cpu in -+ powerpc) -+ # see comment about AmigaOS4 .so support -+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -+ _LT_TAGVAR(archive_expsym_cmds, $1)='' -+ ;; -+ m68k) -+ _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' -+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' -+ _LT_TAGVAR(hardcode_minus_L, $1)=yes -+ ;; -+ esac -+ ;; -+ -+ beos*) -+ if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then -+ _LT_TAGVAR(allow_undefined_flag, $1)=unsupported -+ # Joseph Beckenbach says some releases of gcc -+ # support --undefined. This deserves some investigation. FIXME -+ _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -+ else -+ _LT_TAGVAR(ld_shlibs, $1)=no -+ fi -+ ;; -+ -+ cygwin* | mingw* | pw32* | cegcc*) -+ # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, -+ # as there is no search path for DLLs. -+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' -+ _LT_TAGVAR(allow_undefined_flag, $1)=unsupported -+ _LT_TAGVAR(always_export_symbols, $1)=no -+ _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes -+ _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols' -+ -+ if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then -+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' -+ # If the export-symbols file already is a .def file (1st line -+ # is EXPORTS), use it as is; otherwise, prepend... -+ _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then -+ cp $export_symbols $output_objdir/$soname.def; -+ else -+ echo EXPORTS > $output_objdir/$soname.def; -+ cat $export_symbols >> $output_objdir/$soname.def; -+ fi~ -+ $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' -+ else -+ _LT_TAGVAR(ld_shlibs, $1)=no -+ fi -+ ;; -+ -+ interix[[3-9]]*) -+ _LT_TAGVAR(hardcode_direct, $1)=no -+ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no -+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' -+ _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' -+ # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. -+ # Instead, shared libraries are loaded at an image base (0x10000000 by -+ # default) and relocated if they conflict, which is a slow very memory -+ # consuming and fragmenting process. To avoid this, we pick a random, -+ # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link -+ # time. Moving up from 0x10000000 also allows more sbrk(2) space. -+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' -+ _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' -+ ;; -+ -+ gnu* | linux* | tpf* | k*bsd*-gnu) -+ tmp_diet=no -+ if test "$host_os" = linux-dietlibc; then -+ case $cc_basename in -+ diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) -+ esac -+ fi -+ if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ -+ && test "$tmp_diet" = no -+ then -+ tmp_addflag= -+ tmp_sharedflag='-shared' -+ case $cc_basename,$host_cpu in -+ pgcc*) # Portland Group C compiler -+ _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' -+ tmp_addflag=' $pic_flag' -+ ;; -+ pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers -+ _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' -+ tmp_addflag=' $pic_flag -Mnomain' ;; -+ ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 -+ tmp_addflag=' -i_dynamic' ;; -+ efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 -+ tmp_addflag=' -i_dynamic -nofor_main' ;; -+ ifc* | ifort*) # Intel Fortran compiler -+ tmp_addflag=' -nofor_main' ;; -+ lf95*) # Lahey Fortran 8.1 -+ _LT_TAGVAR(whole_archive_flag_spec, $1)= -+ tmp_sharedflag='--shared' ;; -+ xl[[cC]]*) # IBM XL C 8.0 on PPC (deal with xlf below) -+ tmp_sharedflag='-qmkshrobj' -+ tmp_addflag= ;; -+ esac -+ case `$CC -V 2>&1 | sed 5q` in -+ *Sun\ C*) # Sun C 5.9 -+ _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' -+ _LT_TAGVAR(compiler_needs_object, $1)=yes -+ tmp_sharedflag='-G' ;; -+ *Sun\ F*) # Sun Fortran 8.3 -+ tmp_sharedflag='-G' ;; -+ esac -+ _LT_TAGVAR(archive_cmds, $1)='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -+ -+ if test "x$supports_anon_versioning" = xyes; then -+ _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ -+ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ -+ echo "local: *; };" >> $output_objdir/$libname.ver~ -+ $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' -+ fi -+ -+ case $cc_basename in -+ xlf*) -+ # IBM XL Fortran 10.1 on PPC cannot create shared libs itself -+ _LT_TAGVAR(whole_archive_flag_spec, $1)='--whole-archive$convenience --no-whole-archive' -+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= -+ _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='-rpath $libdir' -+ _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib' -+ if test "x$supports_anon_versioning" = xyes; then -+ _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ -+ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ -+ echo "local: *; };" >> $output_objdir/$libname.ver~ -+ $LD -shared $libobjs $deplibs $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' -+ fi -+ ;; -+ esac -+ else -+ _LT_TAGVAR(ld_shlibs, $1)=no -+ fi -+ ;; -+ -+ netbsd*) -+ if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then -+ _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' -+ wlarc= -+ else -+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -+ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' -+ fi -+ ;; -+ -+ solaris*) -+ if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then -+ _LT_TAGVAR(ld_shlibs, $1)=no -+ cat <<_LT_EOF 1>&2 -+ -+*** Warning: The releases 2.8.* of the GNU linker cannot reliably -+*** create shared libraries on Solaris systems. Therefore, libtool -+*** is disabling shared libraries support. We urge you to upgrade GNU -+*** binutils to release 2.9.1 or newer. Another option is to modify -+*** your PATH or compiler configuration so that the native linker is -+*** used, and then restart. -+ -+_LT_EOF -+ elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then -+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -+ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' -+ else -+ _LT_TAGVAR(ld_shlibs, $1)=no -+ fi -+ ;; -+ -+ sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) -+ case `$LD -v 2>&1` in -+ *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.1[[0-5]].*) -+ _LT_TAGVAR(ld_shlibs, $1)=no -+ cat <<_LT_EOF 1>&2 -+ -+*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not -+*** reliably create shared libraries on SCO systems. Therefore, libtool -+*** is disabling shared libraries support. We urge you to upgrade GNU -+*** binutils to release 2.16.91.0.3 or newer. Another option is to modify -+*** your PATH or compiler configuration so that the native linker is -+*** used, and then restart. -+ -+_LT_EOF -+ ;; -+ *) -+ # For security reasons, it is highly recommended that you always -+ # use absolute paths for naming shared libraries, and exclude the -+ # DT_RUNPATH tag from executables and libraries. But doing so -+ # requires that you compile everything twice, which is a pain. -+ if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then -+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' -+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -+ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' -+ else -+ _LT_TAGVAR(ld_shlibs, $1)=no -+ fi -+ ;; -+ esac -+ ;; -+ -+ sunos4*) -+ _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' -+ wlarc= -+ _LT_TAGVAR(hardcode_direct, $1)=yes -+ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no -+ ;; -+ -+ *) -+ if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then -+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -+ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' -+ else -+ _LT_TAGVAR(ld_shlibs, $1)=no -+ fi -+ ;; -+ esac -+ -+ if test "$_LT_TAGVAR(ld_shlibs, $1)" = no; then -+ runpath_var= -+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= -+ _LT_TAGVAR(export_dynamic_flag_spec, $1)= -+ _LT_TAGVAR(whole_archive_flag_spec, $1)= -+ fi -+ else -+ # PORTME fill in a description of your system's linker (not GNU ld) -+ case $host_os in -+ aix3*) -+ _LT_TAGVAR(allow_undefined_flag, $1)=unsupported -+ _LT_TAGVAR(always_export_symbols, $1)=yes -+ _LT_TAGVAR(archive_expsym_cmds, $1)='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' -+ # Note: this linker hardcodes the directories in LIBPATH if there -+ # are no directories specified by -L. -+ _LT_TAGVAR(hardcode_minus_L, $1)=yes -+ if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then -+ # Neither direct hardcoding nor static linking is supported with a -+ # broken collect2. -+ _LT_TAGVAR(hardcode_direct, $1)=unsupported -+ fi -+ ;; -+ -+ aix[[4-9]]*) -+ if test "$host_cpu" = ia64; then -+ # On IA64, the linker does run time linking by default, so we don't -+ # have to do anything special. -+ aix_use_runtimelinking=no -+ exp_sym_flag='-Bexport' -+ no_entry_flag="" -+ else -+ # If we're using GNU nm, then we don't want the "-C" option. -+ # -C means demangle to AIX nm, but means don't demangle with GNU nm -+ if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then -+ _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' -+ else -+ _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' -+ fi -+ aix_use_runtimelinking=no -+ -+ # Test if we are trying to use run time linking or normal -+ # AIX style linking. If -brtl is somewhere in LDFLAGS, we -+ # need to do runtime linking. -+ case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) -+ for ld_flag in $LDFLAGS; do -+ if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then -+ aix_use_runtimelinking=yes -+ break -+ fi -+ done -+ ;; -+ esac -+ -+ exp_sym_flag='-bexport' -+ no_entry_flag='-bnoentry' -+ fi -+ -+ # When large executables or shared objects are built, AIX ld can -+ # have problems creating the table of contents. If linking a library -+ # or program results in "error TOC overflow" add -mminimal-toc to -+ # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not -+ # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. -+ -+ _LT_TAGVAR(archive_cmds, $1)='' -+ _LT_TAGVAR(hardcode_direct, $1)=yes -+ _LT_TAGVAR(hardcode_direct_absolute, $1)=yes -+ _LT_TAGVAR(hardcode_libdir_separator, $1)=':' -+ _LT_TAGVAR(link_all_deplibs, $1)=yes -+ _LT_TAGVAR(file_list_spec, $1)='${wl}-f,' -+ -+ if test "$GCC" = yes; then -+ case $host_os in aix4.[[012]]|aix4.[[012]].*) -+ # We only want to do this on AIX 4.2 and lower, the check -+ # below for broken collect2 doesn't work under 4.3+ -+ collect2name=`${CC} -print-prog-name=collect2` -+ if test -f "$collect2name" && -+ strings "$collect2name" | $GREP resolve_lib_name >/dev/null -+ then -+ # We have reworked collect2 -+ : -+ else -+ # We have old collect2 -+ _LT_TAGVAR(hardcode_direct, $1)=unsupported -+ # It fails to find uninstalled libraries when the uninstalled -+ # path is not listed in the libpath. Setting hardcode_minus_L -+ # to unsupported forces relinking -+ _LT_TAGVAR(hardcode_minus_L, $1)=yes -+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' -+ _LT_TAGVAR(hardcode_libdir_separator, $1)= -+ fi -+ ;; -+ esac -+ shared_flag='-shared' -+ if test "$aix_use_runtimelinking" = yes; then -+ shared_flag="$shared_flag "'${wl}-G' -+ fi -+ else -+ # not using gcc -+ if test "$host_cpu" = ia64; then -+ # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release -+ # chokes on -Wl,-G. The following line is correct: -+ shared_flag='-G' -+ else -+ if test "$aix_use_runtimelinking" = yes; then -+ shared_flag='${wl}-G' -+ else -+ shared_flag='${wl}-bM:SRE' -+ fi -+ fi -+ fi -+ -+ _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall' -+ # It seems that -bexpall does not export symbols beginning with -+ # underscore (_), so it is better to generate a list of symbols to export. -+ _LT_TAGVAR(always_export_symbols, $1)=yes -+ if test "$aix_use_runtimelinking" = yes; then -+ # Warning - without using the other runtime loading flags (-brtl), -+ # -berok will link without error, but may produce a broken library. -+ _LT_TAGVAR(allow_undefined_flag, $1)='-berok' -+ # Determine the default libpath from the value encoded in an -+ # empty executable. -+ _LT_SYS_MODULE_PATH_AIX -+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" -+ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" -+ else -+ if test "$host_cpu" = ia64; then -+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' -+ _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" -+ _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" -+ else -+ # Determine the default libpath from the value encoded in an -+ # empty executable. -+ _LT_SYS_MODULE_PATH_AIX -+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" -+ # Warning - without using the other run time loading flags, -+ # -berok will link without error, but may produce a broken library. -+ _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' -+ _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' -+ # Exported symbols can be pulled into shared objects from archives -+ _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' -+ _LT_TAGVAR(archive_cmds_need_lc, $1)=yes -+ # This is similar to how AIX traditionally builds its shared libraries. -+ _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' -+ fi -+ fi -+ ;; -+ -+ amigaos*) -+ case $host_cpu in -+ powerpc) -+ # see comment about AmigaOS4 .so support -+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -+ _LT_TAGVAR(archive_expsym_cmds, $1)='' -+ ;; -+ m68k) -+ _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' -+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' -+ _LT_TAGVAR(hardcode_minus_L, $1)=yes -+ ;; -+ esac -+ ;; -+ -+ bsdi[[45]]*) -+ _LT_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic -+ ;; -+ -+ cygwin* | mingw* | pw32* | cegcc*) -+ # When not using gcc, we currently assume that we are using -+ # Microsoft Visual C++. -+ # hardcode_libdir_flag_spec is actually meaningless, as there is -+ # no search path for DLLs. -+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' -+ _LT_TAGVAR(allow_undefined_flag, $1)=unsupported -+ # Tell ltmain to make .lib files, not .a files. -+ libext=lib -+ # Tell ltmain to make .dll files, not .so files. -+ shrext_cmds=".dll" -+ # FIXME: Setting linknames here is a bad hack. -+ _LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `$ECHO "X$deplibs" | $Xsed -e '\''s/ -lc$//'\''` -link -dll~linknames=' -+ # The linker will automatically build a .lib file if we build a DLL. -+ _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' -+ # FIXME: Should let the user specify the lib program. -+ _LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs' -+ _LT_TAGVAR(fix_srcfile_path, $1)='`cygpath -w "$srcfile"`' -+ _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes -+ ;; -+ -+ darwin* | rhapsody*) -+ _LT_DARWIN_LINKER_FEATURES($1) -+ ;; -+ -+ dgux*) -+ _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' -+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' -+ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no -+ ;; -+ -+ freebsd1*) -+ _LT_TAGVAR(ld_shlibs, $1)=no -+ ;; -+ -+ # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor -+ # support. Future versions do this automatically, but an explicit c++rt0.o -+ # does not break anything, and helps significantly (at the cost of a little -+ # extra space). -+ freebsd2.2*) -+ _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' -+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' -+ _LT_TAGVAR(hardcode_direct, $1)=yes -+ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no -+ ;; -+ -+ # Unfortunately, older versions of FreeBSD 2 do not have this feature. -+ freebsd2*) -+ _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' -+ _LT_TAGVAR(hardcode_direct, $1)=yes -+ _LT_TAGVAR(hardcode_minus_L, $1)=yes -+ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no -+ ;; -+ -+ # FreeBSD 3 and greater uses gcc -shared to do shared libraries. -+ freebsd* | dragonfly*) -+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' -+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' -+ _LT_TAGVAR(hardcode_direct, $1)=yes -+ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no -+ ;; -+ -+ hpux9*) -+ if test "$GCC" = yes; then -+ _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' -+ else -+ _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' -+ fi -+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' -+ _LT_TAGVAR(hardcode_libdir_separator, $1)=: -+ _LT_TAGVAR(hardcode_direct, $1)=yes -+ -+ # hardcode_minus_L: Not really in the search PATH, -+ # but as the default location of the library. -+ _LT_TAGVAR(hardcode_minus_L, $1)=yes -+ _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' -+ ;; -+ -+ hpux10*) -+ if test "$GCC" = yes -a "$with_gnu_ld" = no; then -+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' -+ else -+ _LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' -+ fi -+ if test "$with_gnu_ld" = no; then -+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' -+ _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir' -+ _LT_TAGVAR(hardcode_libdir_separator, $1)=: -+ _LT_TAGVAR(hardcode_direct, $1)=yes -+ _LT_TAGVAR(hardcode_direct_absolute, $1)=yes -+ _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' -+ # hardcode_minus_L: Not really in the search PATH, -+ # but as the default location of the library. -+ _LT_TAGVAR(hardcode_minus_L, $1)=yes -+ fi -+ ;; -+ -+ hpux11*) -+ if test "$GCC" = yes -a "$with_gnu_ld" = no; then -+ case $host_cpu in -+ hppa*64*) -+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' -+ ;; -+ ia64*) -+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' -+ ;; -+ *) -+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' -+ ;; -+ esac -+ else -+ case $host_cpu in -+ hppa*64*) -+ _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' -+ ;; -+ ia64*) -+ _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' -+ ;; -+ *) -+ _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' -+ ;; -+ esac -+ fi -+ if test "$with_gnu_ld" = no; then -+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' -+ _LT_TAGVAR(hardcode_libdir_separator, $1)=: -+ -+ case $host_cpu in -+ hppa*64*|ia64*) -+ _LT_TAGVAR(hardcode_direct, $1)=no -+ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no -+ ;; -+ *) -+ _LT_TAGVAR(hardcode_direct, $1)=yes -+ _LT_TAGVAR(hardcode_direct_absolute, $1)=yes -+ _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' -+ -+ # hardcode_minus_L: Not really in the search PATH, -+ # but as the default location of the library. -+ _LT_TAGVAR(hardcode_minus_L, $1)=yes -+ ;; -+ esac -+ fi -+ ;; -+ -+ irix5* | irix6* | nonstopux*) -+ if test "$GCC" = yes; then -+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' -+ # Try to use the -exported_symbol ld option, if it does not -+ # work, assume that -exports_file does not work either and -+ # implicitly export all symbols. -+ save_LDFLAGS="$LDFLAGS" -+ LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" -+ AC_LINK_IFELSE(int foo(void) {}, -+ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' -+ ) -+ LDFLAGS="$save_LDFLAGS" -+ else -+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' -+ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' -+ fi -+ _LT_TAGVAR(archive_cmds_need_lc, $1)='no' -+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' -+ _LT_TAGVAR(hardcode_libdir_separator, $1)=: -+ _LT_TAGVAR(inherit_rpath, $1)=yes -+ _LT_TAGVAR(link_all_deplibs, $1)=yes -+ ;; -+ -+ netbsd*) -+ if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then -+ _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out -+ else -+ _LT_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF -+ fi -+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' -+ _LT_TAGVAR(hardcode_direct, $1)=yes -+ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no -+ ;; -+ -+ newsos6) -+ _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' -+ _LT_TAGVAR(hardcode_direct, $1)=yes -+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' -+ _LT_TAGVAR(hardcode_libdir_separator, $1)=: -+ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no -+ ;; -+ -+ *nto* | *qnx*) -+ ;; -+ -+ openbsd*) -+ if test -f /usr/libexec/ld.so; then -+ _LT_TAGVAR(hardcode_direct, $1)=yes -+ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no -+ _LT_TAGVAR(hardcode_direct_absolute, $1)=yes -+ if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then -+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' -+ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' -+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' -+ _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' -+ else -+ case $host_os in -+ openbsd[[01]].* | openbsd2.[[0-7]] | openbsd2.[[0-7]].*) -+ _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' -+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' -+ ;; -+ *) -+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' -+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' -+ ;; -+ esac -+ fi -+ else -+ _LT_TAGVAR(ld_shlibs, $1)=no -+ fi -+ ;; -+ -+ os2*) -+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' -+ _LT_TAGVAR(hardcode_minus_L, $1)=yes -+ _LT_TAGVAR(allow_undefined_flag, $1)=unsupported -+ _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$ECHO DATA >> $output_objdir/$libname.def~$ECHO " SINGLE NONSHARED" >> $output_objdir/$libname.def~$ECHO EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' -+ _LT_TAGVAR(old_archive_from_new_cmds, $1)='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' -+ ;; -+ -+ osf3*) -+ if test "$GCC" = yes; then -+ _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' -+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' -+ else -+ _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' -+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' -+ fi -+ _LT_TAGVAR(archive_cmds_need_lc, $1)='no' -+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' -+ _LT_TAGVAR(hardcode_libdir_separator, $1)=: -+ ;; -+ -+ osf4* | osf5*) # as osf3* with the addition of -msym flag -+ if test "$GCC" = yes; then -+ _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' -+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' -+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' -+ else -+ _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' -+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' -+ _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ -+ $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp' -+ -+ # Both c and cxx compiler support -rpath directly -+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' -+ fi -+ _LT_TAGVAR(archive_cmds_need_lc, $1)='no' -+ _LT_TAGVAR(hardcode_libdir_separator, $1)=: -+ ;; -+ -+ solaris*) -+ _LT_TAGVAR(no_undefined_flag, $1)=' -z defs' -+ if test "$GCC" = yes; then -+ wlarc='${wl}' -+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' -+ _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ -+ $CC -shared ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' -+ else -+ case `$CC -V 2>&1` in -+ *"Compilers 5.0"*) -+ wlarc='' -+ _LT_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' -+ _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ -+ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' -+ ;; -+ *) -+ wlarc='${wl}' -+ _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags' -+ _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ -+ $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' -+ ;; -+ esac -+ fi -+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' -+ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no -+ case $host_os in -+ solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; -+ *) -+ # The compiler driver will combine and reorder linker options, -+ # but understands `-z linker_flag'. GCC discards it without `$wl', -+ # but is careful enough not to reorder. -+ # Supported since Solaris 2.6 (maybe 2.5.1?) -+ if test "$GCC" = yes; then -+ _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' -+ else -+ _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' -+ fi -+ ;; -+ esac -+ _LT_TAGVAR(link_all_deplibs, $1)=yes -+ ;; -+ -+ sunos4*) -+ if test "x$host_vendor" = xsequent; then -+ # Use $CC to link under sequent, because it throws in some extra .o -+ # files that make .init and .fini sections work. -+ _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' -+ else -+ _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' -+ fi -+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' -+ _LT_TAGVAR(hardcode_direct, $1)=yes -+ _LT_TAGVAR(hardcode_minus_L, $1)=yes -+ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no -+ ;; -+ -+ sysv4) -+ case $host_vendor in -+ sni) -+ _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' -+ _LT_TAGVAR(hardcode_direct, $1)=yes # is this really true??? -+ ;; -+ siemens) -+ ## LD is ld it makes a PLAMLIB -+ ## CC just makes a GrossModule. -+ _LT_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags' -+ _LT_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs' -+ _LT_TAGVAR(hardcode_direct, $1)=no -+ ;; -+ motorola) -+ _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' -+ _LT_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie -+ ;; -+ esac -+ runpath_var='LD_RUN_PATH' -+ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no -+ ;; -+ -+ sysv4.3*) -+ _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' -+ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no -+ _LT_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport' -+ ;; -+ -+ sysv4*MP*) -+ if test -d /usr/nec; then -+ _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' -+ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no -+ runpath_var=LD_RUN_PATH -+ hardcode_runpath_var=yes -+ _LT_TAGVAR(ld_shlibs, $1)=yes -+ fi -+ ;; -+ -+ sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) -+ _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' -+ _LT_TAGVAR(archive_cmds_need_lc, $1)=no -+ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no -+ runpath_var='LD_RUN_PATH' -+ -+ if test "$GCC" = yes; then -+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' -+ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' -+ else -+ _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' -+ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' -+ fi -+ ;; -+ -+ sysv5* | sco3.2v5* | sco5v6*) -+ # Note: We can NOT use -z defs as we might desire, because we do not -+ # link with -lc, and that would cause any symbols used from libc to -+ # always be unresolved, which means just about no library would -+ # ever link correctly. If we're not using GNU ld we use -z text -+ # though, which does catch some bad symbols but isn't as heavy-handed -+ # as -z defs. -+ _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' -+ _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs' -+ _LT_TAGVAR(archive_cmds_need_lc, $1)=no -+ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no -+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir' -+ _LT_TAGVAR(hardcode_libdir_separator, $1)=':' -+ _LT_TAGVAR(link_all_deplibs, $1)=yes -+ _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' -+ runpath_var='LD_RUN_PATH' -+ -+ if test "$GCC" = yes; then -+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' -+ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' -+ else -+ _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' -+ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' -+ fi -+ ;; -+ -+ uts4*) -+ _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' -+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' -+ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no -+ ;; -+ -+ *) -+ _LT_TAGVAR(ld_shlibs, $1)=no -+ ;; -+ esac -+ -+ if test x$host_vendor = xsni; then -+ case $host in -+ sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) -+ _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Blargedynsym' -+ ;; -+ esac -+ fi -+ fi -+]) -+AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) -+test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no -+ -+_LT_TAGVAR(with_gnu_ld, $1)=$with_gnu_ld -+ -+_LT_DECL([], [libext], [0], [Old archive suffix (normally "a")])dnl -+_LT_DECL([], [shrext_cmds], [1], [Shared library suffix (normally ".so")])dnl -+_LT_DECL([], [extract_expsyms_cmds], [2], -+ [The commands to extract the exported symbol list from a shared archive]) -+ -+# -+# Do we need to explicitly link libc? -+# -+case "x$_LT_TAGVAR(archive_cmds_need_lc, $1)" in -+x|xyes) -+ # Assume -lc should be added -+ _LT_TAGVAR(archive_cmds_need_lc, $1)=yes -+ -+ if test "$enable_shared" = yes && test "$GCC" = yes; then -+ case $_LT_TAGVAR(archive_cmds, $1) in -+ *'~'*) -+ # FIXME: we may have to deal with multi-command sequences. -+ ;; -+ '$CC '*) -+ # Test whether the compiler implicitly links with -lc since on some -+ # systems, -lgcc has to come before -lc. If gcc already passes -lc -+ # to ld, don't add -lc before -lgcc. -+ AC_MSG_CHECKING([whether -lc should be explicitly linked in]) -+ $RM conftest* -+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext -+ -+ if AC_TRY_EVAL(ac_compile) 2>conftest.err; then -+ soname=conftest -+ lib=conftest -+ libobjs=conftest.$ac_objext -+ deplibs= -+ wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) -+ pic_flag=$_LT_TAGVAR(lt_prog_compiler_pic, $1) -+ compiler_flags=-v -+ linker_flags=-v -+ verstring= -+ output_objdir=. -+ libname=conftest -+ lt_save_allow_undefined_flag=$_LT_TAGVAR(allow_undefined_flag, $1) -+ _LT_TAGVAR(allow_undefined_flag, $1)= -+ if AC_TRY_EVAL(_LT_TAGVAR(archive_cmds, $1) 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) -+ then -+ _LT_TAGVAR(archive_cmds_need_lc, $1)=no -+ else -+ _LT_TAGVAR(archive_cmds_need_lc, $1)=yes -+ fi -+ _LT_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag -+ else -+ cat conftest.err 1>&5 -+ fi -+ $RM conftest* -+ AC_MSG_RESULT([$_LT_TAGVAR(archive_cmds_need_lc, $1)]) -+ ;; -+ esac -+ fi -+ ;; -+esac -+ -+_LT_TAGDECL([build_libtool_need_lc], [archive_cmds_need_lc], [0], -+ [Whether or not to add -lc for building shared libraries]) -+_LT_TAGDECL([allow_libtool_libs_with_static_runtimes], -+ [enable_shared_with_static_runtimes], [0], -+ [Whether or not to disallow shared libs when runtime libs are static]) -+_LT_TAGDECL([], [export_dynamic_flag_spec], [1], -+ [Compiler flag to allow reflexive dlopens]) -+_LT_TAGDECL([], [whole_archive_flag_spec], [1], -+ [Compiler flag to generate shared objects directly from archives]) -+_LT_TAGDECL([], [compiler_needs_object], [1], -+ [Whether the compiler copes with passing no objects directly]) -+_LT_TAGDECL([], [old_archive_from_new_cmds], [2], -+ [Create an old-style archive from a shared archive]) -+_LT_TAGDECL([], [old_archive_from_expsyms_cmds], [2], -+ [Create a temporary old-style archive to link instead of a shared archive]) -+_LT_TAGDECL([], [archive_cmds], [2], [Commands used to build a shared archive]) -+_LT_TAGDECL([], [archive_expsym_cmds], [2]) -+_LT_TAGDECL([], [module_cmds], [2], -+ [Commands used to build a loadable module if different from building -+ a shared archive.]) -+_LT_TAGDECL([], [module_expsym_cmds], [2]) -+_LT_TAGDECL([], [with_gnu_ld], [1], -+ [Whether we are building with GNU ld or not]) -+_LT_TAGDECL([], [allow_undefined_flag], [1], -+ [Flag that allows shared libraries with undefined symbols to be built]) -+_LT_TAGDECL([], [no_undefined_flag], [1], -+ [Flag that enforces no undefined symbols]) -+_LT_TAGDECL([], [hardcode_libdir_flag_spec], [1], -+ [Flag to hardcode $libdir into a binary during linking. -+ This must work even if $libdir does not exist]) -+_LT_TAGDECL([], [hardcode_libdir_flag_spec_ld], [1], -+ [[If ld is used when linking, flag to hardcode $libdir into a binary -+ during linking. This must work even if $libdir does not exist]]) -+_LT_TAGDECL([], [hardcode_libdir_separator], [1], -+ [Whether we need a single "-rpath" flag with a separated argument]) -+_LT_TAGDECL([], [hardcode_direct], [0], -+ [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes -+ DIR into the resulting binary]) -+_LT_TAGDECL([], [hardcode_direct_absolute], [0], -+ [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes -+ DIR into the resulting binary and the resulting library dependency is -+ "absolute", i.e impossible to change by setting ${shlibpath_var} if the -+ library is relocated]) -+_LT_TAGDECL([], [hardcode_minus_L], [0], -+ [Set to "yes" if using the -LDIR flag during linking hardcodes DIR -+ into the resulting binary]) -+_LT_TAGDECL([], [hardcode_shlibpath_var], [0], -+ [Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR -+ into the resulting binary]) -+_LT_TAGDECL([], [hardcode_automatic], [0], -+ [Set to "yes" if building a shared library automatically hardcodes DIR -+ into the library and all subsequent libraries and executables linked -+ against it]) -+_LT_TAGDECL([], [inherit_rpath], [0], -+ [Set to yes if linker adds runtime paths of dependent libraries -+ to runtime path list]) -+_LT_TAGDECL([], [link_all_deplibs], [0], -+ [Whether libtool must link a program against all its dependency libraries]) -+_LT_TAGDECL([], [fix_srcfile_path], [1], -+ [Fix the shell variable $srcfile for the compiler]) -+_LT_TAGDECL([], [always_export_symbols], [0], -+ [Set to "yes" if exported symbols are required]) -+_LT_TAGDECL([], [export_symbols_cmds], [2], -+ [The commands to list exported symbols]) -+_LT_TAGDECL([], [exclude_expsyms], [1], -+ [Symbols that should not be listed in the preloaded symbols]) -+_LT_TAGDECL([], [include_expsyms], [1], -+ [Symbols that must always be exported]) -+_LT_TAGDECL([], [prelink_cmds], [2], -+ [Commands necessary for linking programs (against libraries) with templates]) -+_LT_TAGDECL([], [file_list_spec], [1], -+ [Specify filename containing input files]) -+dnl FIXME: Not yet implemented -+dnl _LT_TAGDECL([], [thread_safe_flag_spec], [1], -+dnl [Compiler flag to generate thread safe objects]) -+])# _LT_LINKER_SHLIBS -+ -+ -+# _LT_LANG_C_CONFIG([TAG]) -+# ------------------------ -+# Ensure that the configuration variables for a C compiler are suitably -+# defined. These variables are subsequently used by _LT_CONFIG to write -+# the compiler configuration to `libtool'. -+m4_defun([_LT_LANG_C_CONFIG], -+[m4_require([_LT_DECL_EGREP])dnl -+lt_save_CC="$CC" -+AC_LANG_PUSH(C) -+ -+# Source file extension for C test sources. -+ac_ext=c -+ -+# Object file extension for compiled C test sources. -+objext=o -+_LT_TAGVAR(objext, $1)=$objext -+ -+# Code to be used in simple compile tests -+lt_simple_compile_test_code="int some_variable = 0;" -+ -+# Code to be used in simple link tests -+lt_simple_link_test_code='int main(){return(0);}' -+ -+_LT_TAG_COMPILER -+# Save the default compiler, since it gets overwritten when the other -+# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. -+compiler_DEFAULT=$CC -+ -+# save warnings/boilerplate of simple test code -+_LT_COMPILER_BOILERPLATE -+_LT_LINKER_BOILERPLATE -+ -+## CAVEAT EMPTOR: -+## There is no encapsulation within the following macros, do not change -+## the running order or otherwise move them around unless you know exactly -+## what you are doing... -+if test -n "$compiler"; then -+ _LT_COMPILER_NO_RTTI($1) -+ _LT_COMPILER_PIC($1) -+ _LT_COMPILER_C_O($1) -+ _LT_COMPILER_FILE_LOCKS($1) -+ _LT_LINKER_SHLIBS($1) -+ _LT_SYS_DYNAMIC_LINKER($1) -+ _LT_LINKER_HARDCODE_LIBPATH($1) -+ LT_SYS_DLOPEN_SELF -+ _LT_CMD_STRIPLIB -+ -+ # Report which library types will actually be built -+ AC_MSG_CHECKING([if libtool supports shared libraries]) -+ AC_MSG_RESULT([$can_build_shared]) -+ -+ AC_MSG_CHECKING([whether to build shared libraries]) -+ test "$can_build_shared" = "no" && enable_shared=no -+ -+ # On AIX, shared libraries and static libraries use the same namespace, and -+ # are all built from PIC. -+ case $host_os in -+ aix3*) -+ test "$enable_shared" = yes && enable_static=no -+ if test -n "$RANLIB"; then -+ archive_cmds="$archive_cmds~\$RANLIB \$lib" -+ postinstall_cmds='$RANLIB $lib' -+ fi -+ ;; -+ -+ aix[[4-9]]*) -+ if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then -+ test "$enable_shared" = yes && enable_static=no -+ fi -+ ;; -+ esac -+ AC_MSG_RESULT([$enable_shared]) -+ -+ AC_MSG_CHECKING([whether to build static libraries]) -+ # Make sure either enable_shared or enable_static is yes. -+ test "$enable_shared" = yes || enable_static=yes -+ AC_MSG_RESULT([$enable_static]) -+ -+ _LT_CONFIG($1) -+fi -+AC_LANG_POP -+CC="$lt_save_CC" -+])# _LT_LANG_C_CONFIG -+ -+ -+# _LT_PROG_CXX -+# ------------ -+# Since AC_PROG_CXX is broken, in that it returns g++ if there is no c++ -+# compiler, we have our own version here. -+m4_defun([_LT_PROG_CXX], -+[ -+pushdef([AC_MSG_ERROR], [_lt_caught_CXX_error=yes]) -+AC_PROG_CXX -+if test -n "$CXX" && ( test "X$CXX" != "Xno" && -+ ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || -+ (test "X$CXX" != "Xg++"))) ; then -+ AC_PROG_CXXCPP -+else -+ _lt_caught_CXX_error=yes -+fi -+popdef([AC_MSG_ERROR]) -+])# _LT_PROG_CXX -+ -+dnl aclocal-1.4 backwards compatibility: -+dnl AC_DEFUN([_LT_PROG_CXX], []) -+ -+ -+# _LT_LANG_CXX_CONFIG([TAG]) -+# -------------------------- -+# Ensure that the configuration variables for a C++ compiler are suitably -+# defined. These variables are subsequently used by _LT_CONFIG to write -+# the compiler configuration to `libtool'. -+m4_defun([_LT_LANG_CXX_CONFIG], -+[AC_REQUIRE([_LT_PROG_CXX])dnl -+m4_require([_LT_FILEUTILS_DEFAULTS])dnl -+m4_require([_LT_DECL_EGREP])dnl -+ -+AC_LANG_PUSH(C++) -+_LT_TAGVAR(archive_cmds_need_lc, $1)=no -+_LT_TAGVAR(allow_undefined_flag, $1)= -+_LT_TAGVAR(always_export_symbols, $1)=no -+_LT_TAGVAR(archive_expsym_cmds, $1)= -+_LT_TAGVAR(compiler_needs_object, $1)=no -+_LT_TAGVAR(export_dynamic_flag_spec, $1)= -+_LT_TAGVAR(hardcode_direct, $1)=no -+_LT_TAGVAR(hardcode_direct_absolute, $1)=no -+_LT_TAGVAR(hardcode_libdir_flag_spec, $1)= -+_LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= -+_LT_TAGVAR(hardcode_libdir_separator, $1)= -+_LT_TAGVAR(hardcode_minus_L, $1)=no -+_LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported -+_LT_TAGVAR(hardcode_automatic, $1)=no -+_LT_TAGVAR(inherit_rpath, $1)=no -+_LT_TAGVAR(module_cmds, $1)= -+_LT_TAGVAR(module_expsym_cmds, $1)= -+_LT_TAGVAR(link_all_deplibs, $1)=unknown -+_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds -+_LT_TAGVAR(no_undefined_flag, $1)= -+_LT_TAGVAR(whole_archive_flag_spec, $1)= -+_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no -+ -+# Source file extension for C++ test sources. -+ac_ext=cpp -+ -+# Object file extension for compiled C++ test sources. -+objext=o -+_LT_TAGVAR(objext, $1)=$objext -+ -+# No sense in running all these tests if we already determined that -+# the CXX compiler isn't working. Some variables (like enable_shared) -+# are currently assumed to apply to all compilers on this platform, -+# and will be corrupted by setting them based on a non-working compiler. -+if test "$_lt_caught_CXX_error" != yes; then -+ # Code to be used in simple compile tests -+ lt_simple_compile_test_code="int some_variable = 0;" -+ -+ # Code to be used in simple link tests -+ lt_simple_link_test_code='int main(int, char *[[]]) { return(0); }' -+ -+ # ltmain only uses $CC for tagged configurations so make sure $CC is set. -+ _LT_TAG_COMPILER -+ -+ # save warnings/boilerplate of simple test code -+ _LT_COMPILER_BOILERPLATE -+ _LT_LINKER_BOILERPLATE -+ -+ # Allow CC to be a program name with arguments. -+ lt_save_CC=$CC -+ lt_save_LD=$LD -+ lt_save_GCC=$GCC -+ GCC=$GXX -+ lt_save_with_gnu_ld=$with_gnu_ld -+ lt_save_path_LD=$lt_cv_path_LD -+ if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then -+ lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx -+ else -+ $as_unset lt_cv_prog_gnu_ld -+ fi -+ if test -n "${lt_cv_path_LDCXX+set}"; then -+ lt_cv_path_LD=$lt_cv_path_LDCXX -+ else -+ $as_unset lt_cv_path_LD -+ fi -+ test -z "${LDCXX+set}" || LD=$LDCXX -+ CC=${CXX-"c++"} -+ compiler=$CC -+ _LT_TAGVAR(compiler, $1)=$CC -+ _LT_CC_BASENAME([$compiler]) -+ -+ if test -n "$compiler"; then -+ # We don't want -fno-exception when compiling C++ code, so set the -+ # no_builtin_flag separately -+ if test "$GXX" = yes; then -+ _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' -+ else -+ _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= -+ fi -+ -+ if test "$GXX" = yes; then -+ # Set up default GNU C++ configuration -+ -+ LT_PATH_LD -+ -+ # Check if GNU C++ uses GNU ld as the underlying linker, since the -+ # archiving commands below assume that GNU ld is being used. -+ if test "$with_gnu_ld" = yes; then -+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' -+ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' -+ -+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' -+ _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' -+ -+ # If archive_cmds runs LD, not CC, wlarc should be empty -+ # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to -+ # investigate it a little bit more. (MM) -+ wlarc='${wl}' -+ -+ # ancient GNU ld didn't support --whole-archive et. al. -+ if eval "`$CC -print-prog-name=ld` --help 2>&1" | -+ $GREP 'no-whole-archive' > /dev/null; then -+ _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' -+ else -+ _LT_TAGVAR(whole_archive_flag_spec, $1)= -+ fi -+ else -+ with_gnu_ld=no -+ wlarc= -+ -+ # A generic and very simple default shared library creation -+ # command for GNU C++ for the case where it uses the native -+ # linker, instead of GNU ld. If possible, this setting should -+ # overridden to take advantage of the native linker features on -+ # the platform it is being used on. -+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' -+ fi -+ -+ # Commands to make compiler produce verbose output that lists -+ # what "hidden" libraries, object files and flags are used when -+ # linking a shared library. -+ output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' -+ -+ else -+ GXX=no -+ with_gnu_ld=no -+ wlarc= -+ fi -+ -+ # PORTME: fill in a description of your system's C++ link characteristics -+ AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) -+ _LT_TAGVAR(ld_shlibs, $1)=yes -+ case $host_os in -+ aix3*) -+ # FIXME: insert proper C++ library support -+ _LT_TAGVAR(ld_shlibs, $1)=no -+ ;; -+ aix[[4-9]]*) -+ if test "$host_cpu" = ia64; then -+ # On IA64, the linker does run time linking by default, so we don't -+ # have to do anything special. -+ aix_use_runtimelinking=no -+ exp_sym_flag='-Bexport' -+ no_entry_flag="" -+ else -+ aix_use_runtimelinking=no -+ -+ # Test if we are trying to use run time linking or normal -+ # AIX style linking. If -brtl is somewhere in LDFLAGS, we -+ # need to do runtime linking. -+ case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) -+ for ld_flag in $LDFLAGS; do -+ case $ld_flag in -+ *-brtl*) -+ aix_use_runtimelinking=yes -+ break -+ ;; -+ esac -+ done -+ ;; -+ esac -+ -+ exp_sym_flag='-bexport' -+ no_entry_flag='-bnoentry' -+ fi -+ -+ # When large executables or shared objects are built, AIX ld can -+ # have problems creating the table of contents. If linking a library -+ # or program results in "error TOC overflow" add -mminimal-toc to -+ # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not -+ # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. -+ -+ _LT_TAGVAR(archive_cmds, $1)='' -+ _LT_TAGVAR(hardcode_direct, $1)=yes -+ _LT_TAGVAR(hardcode_direct_absolute, $1)=yes -+ _LT_TAGVAR(hardcode_libdir_separator, $1)=':' -+ _LT_TAGVAR(link_all_deplibs, $1)=yes -+ _LT_TAGVAR(file_list_spec, $1)='${wl}-f,' -+ -+ if test "$GXX" = yes; then -+ case $host_os in aix4.[[012]]|aix4.[[012]].*) -+ # We only want to do this on AIX 4.2 and lower, the check -+ # below for broken collect2 doesn't work under 4.3+ -+ collect2name=`${CC} -print-prog-name=collect2` -+ if test -f "$collect2name" && -+ strings "$collect2name" | $GREP resolve_lib_name >/dev/null -+ then -+ # We have reworked collect2 -+ : -+ else -+ # We have old collect2 -+ _LT_TAGVAR(hardcode_direct, $1)=unsupported -+ # It fails to find uninstalled libraries when the uninstalled -+ # path is not listed in the libpath. Setting hardcode_minus_L -+ # to unsupported forces relinking -+ _LT_TAGVAR(hardcode_minus_L, $1)=yes -+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' -+ _LT_TAGVAR(hardcode_libdir_separator, $1)= -+ fi -+ esac -+ shared_flag='-shared' -+ if test "$aix_use_runtimelinking" = yes; then -+ shared_flag="$shared_flag "'${wl}-G' -+ fi -+ else -+ # not using gcc -+ if test "$host_cpu" = ia64; then -+ # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release -+ # chokes on -Wl,-G. The following line is correct: -+ shared_flag='-G' -+ else -+ if test "$aix_use_runtimelinking" = yes; then -+ shared_flag='${wl}-G' -+ else -+ shared_flag='${wl}-bM:SRE' -+ fi -+ fi -+ fi -+ -+ _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall' -+ # It seems that -bexpall does not export symbols beginning with -+ # underscore (_), so it is better to generate a list of symbols to -+ # export. -+ _LT_TAGVAR(always_export_symbols, $1)=yes -+ if test "$aix_use_runtimelinking" = yes; then -+ # Warning - without using the other runtime loading flags (-brtl), -+ # -berok will link without error, but may produce a broken library. -+ _LT_TAGVAR(allow_undefined_flag, $1)='-berok' -+ # Determine the default libpath from the value encoded in an empty -+ # executable. -+ _LT_SYS_MODULE_PATH_AIX -+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" -+ -+ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" -+ else -+ if test "$host_cpu" = ia64; then -+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' -+ _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" -+ _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" -+ else -+ # Determine the default libpath from the value encoded in an -+ # empty executable. -+ _LT_SYS_MODULE_PATH_AIX -+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" -+ # Warning - without using the other run time loading flags, -+ # -berok will link without error, but may produce a broken library. -+ _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' -+ _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' -+ # Exported symbols can be pulled into shared objects from archives -+ _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' -+ _LT_TAGVAR(archive_cmds_need_lc, $1)=yes -+ # This is similar to how AIX traditionally builds its shared -+ # libraries. -+ _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' -+ fi -+ fi -+ ;; -+ -+ beos*) -+ if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then -+ _LT_TAGVAR(allow_undefined_flag, $1)=unsupported -+ # Joseph Beckenbach says some releases of gcc -+ # support --undefined. This deserves some investigation. FIXME -+ _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -+ else -+ _LT_TAGVAR(ld_shlibs, $1)=no -+ fi -+ ;; -+ -+ chorus*) -+ case $cc_basename in -+ *) -+ # FIXME: insert proper C++ library support -+ _LT_TAGVAR(ld_shlibs, $1)=no -+ ;; -+ esac -+ ;; -+ -+ cygwin* | mingw* | pw32* | cegcc*) -+ # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, -+ # as there is no search path for DLLs. -+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' -+ _LT_TAGVAR(allow_undefined_flag, $1)=unsupported -+ _LT_TAGVAR(always_export_symbols, $1)=no -+ _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes -+ -+ if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then -+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' -+ # If the export-symbols file already is a .def file (1st line -+ # is EXPORTS), use it as is; otherwise, prepend... -+ _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then -+ cp $export_symbols $output_objdir/$soname.def; -+ else -+ echo EXPORTS > $output_objdir/$soname.def; -+ cat $export_symbols >> $output_objdir/$soname.def; -+ fi~ -+ $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' -+ else -+ _LT_TAGVAR(ld_shlibs, $1)=no -+ fi -+ ;; -+ darwin* | rhapsody*) -+ _LT_DARWIN_LINKER_FEATURES($1) -+ ;; -+ -+ dgux*) -+ case $cc_basename in -+ ec++*) -+ # FIXME: insert proper C++ library support -+ _LT_TAGVAR(ld_shlibs, $1)=no -+ ;; -+ ghcx*) -+ # Green Hills C++ Compiler -+ # FIXME: insert proper C++ library support -+ _LT_TAGVAR(ld_shlibs, $1)=no -+ ;; -+ *) -+ # FIXME: insert proper C++ library support -+ _LT_TAGVAR(ld_shlibs, $1)=no -+ ;; -+ esac -+ ;; -+ -+ freebsd[[12]]*) -+ # C++ shared libraries reported to be fairly broken before -+ # switch to ELF -+ _LT_TAGVAR(ld_shlibs, $1)=no -+ ;; -+ -+ freebsd-elf*) -+ _LT_TAGVAR(archive_cmds_need_lc, $1)=no -+ ;; -+ -+ freebsd* | dragonfly*) -+ # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF -+ # conventions -+ _LT_TAGVAR(ld_shlibs, $1)=yes -+ ;; -+ -+ gnu*) -+ ;; -+ -+ hpux9*) -+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' -+ _LT_TAGVAR(hardcode_libdir_separator, $1)=: -+ _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' -+ _LT_TAGVAR(hardcode_direct, $1)=yes -+ _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, -+ # but as the default -+ # location of the library. -+ -+ case $cc_basename in -+ CC*) -+ # FIXME: insert proper C++ library support -+ _LT_TAGVAR(ld_shlibs, $1)=no -+ ;; -+ aCC*) -+ _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' -+ # Commands to make compiler produce verbose output that lists -+ # what "hidden" libraries, object files and flags are used when -+ # linking a shared library. -+ # -+ # There doesn't appear to be a way to prevent this compiler from -+ # explicitly linking system object files so we need to strip them -+ # from the output so that they don't get included in the library -+ # dependencies. -+ output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' -+ ;; -+ *) -+ if test "$GXX" = yes; then -+ _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' -+ else -+ # FIXME: insert proper C++ library support -+ _LT_TAGVAR(ld_shlibs, $1)=no -+ fi -+ ;; -+ esac -+ ;; -+ -+ hpux10*|hpux11*) -+ if test $with_gnu_ld = no; then -+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' -+ _LT_TAGVAR(hardcode_libdir_separator, $1)=: -+ -+ case $host_cpu in -+ hppa*64*|ia64*) -+ ;; -+ *) -+ _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' -+ ;; -+ esac -+ fi -+ case $host_cpu in -+ hppa*64*|ia64*) -+ _LT_TAGVAR(hardcode_direct, $1)=no -+ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no -+ ;; -+ *) -+ _LT_TAGVAR(hardcode_direct, $1)=yes -+ _LT_TAGVAR(hardcode_direct_absolute, $1)=yes -+ _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, -+ # but as the default -+ # location of the library. -+ ;; -+ esac -+ -+ case $cc_basename in -+ CC*) -+ # FIXME: insert proper C++ library support -+ _LT_TAGVAR(ld_shlibs, $1)=no -+ ;; -+ aCC*) -+ case $host_cpu in -+ hppa*64*) -+ _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' -+ ;; -+ ia64*) -+ _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' -+ ;; -+ *) -+ _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' -+ ;; -+ esac -+ # Commands to make compiler produce verbose output that lists -+ # what "hidden" libraries, object files and flags are used when -+ # linking a shared library. -+ # -+ # There doesn't appear to be a way to prevent this compiler from -+ # explicitly linking system object files so we need to strip them -+ # from the output so that they don't get included in the library -+ # dependencies. -+ output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' -+ ;; -+ *) -+ if test "$GXX" = yes; then -+ if test $with_gnu_ld = no; then -+ case $host_cpu in -+ hppa*64*) -+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' -+ ;; -+ ia64*) -+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' -+ ;; -+ *) -+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' -+ ;; -+ esac -+ fi -+ else -+ # FIXME: insert proper C++ library support -+ _LT_TAGVAR(ld_shlibs, $1)=no -+ fi -+ ;; -+ esac -+ ;; -+ -+ interix[[3-9]]*) -+ _LT_TAGVAR(hardcode_direct, $1)=no -+ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no -+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' -+ _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' -+ # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. -+ # Instead, shared libraries are loaded at an image base (0x10000000 by -+ # default) and relocated if they conflict, which is a slow very memory -+ # consuming and fragmenting process. To avoid this, we pick a random, -+ # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link -+ # time. Moving up from 0x10000000 also allows more sbrk(2) space. -+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' -+ _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' -+ ;; -+ irix5* | irix6*) -+ case $cc_basename in -+ CC*) -+ # SGI C++ -+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' -+ -+ # Archives containing C++ object files must be created using -+ # "CC -ar", where "CC" is the IRIX C++ compiler. This is -+ # necessary to make sure instantiated templates are included -+ # in the archive. -+ _LT_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs' -+ ;; -+ *) -+ if test "$GXX" = yes; then -+ if test "$with_gnu_ld" = no; then -+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' -+ else -+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` -o $lib' -+ fi -+ fi -+ _LT_TAGVAR(link_all_deplibs, $1)=yes -+ ;; -+ esac -+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' -+ _LT_TAGVAR(hardcode_libdir_separator, $1)=: -+ _LT_TAGVAR(inherit_rpath, $1)=yes -+ ;; -+ -+ linux* | k*bsd*-gnu) -+ case $cc_basename in -+ KCC*) -+ # Kuck and Associates, Inc. (KAI) C++ Compiler -+ -+ # KCC will only create a shared library if the output file -+ # ends with ".so" (or ".sl" for HP-UX), so rename the library -+ # to its proper name (with version) after linking. -+ _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' -+ _LT_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib' -+ # Commands to make compiler produce verbose output that lists -+ # what "hidden" libraries, object files and flags are used when -+ # linking a shared library. -+ # -+ # There doesn't appear to be a way to prevent this compiler from -+ # explicitly linking system object files so we need to strip them -+ # from the output so that they don't get included in the library -+ # dependencies. -+ output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' -+ -+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' -+ _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' -+ -+ # Archives containing C++ object files must be created using -+ # "CC -Bstatic", where "CC" is the KAI C++ compiler. -+ _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' -+ ;; -+ icpc* | ecpc* ) -+ # Intel C++ -+ with_gnu_ld=yes -+ # version 8.0 and above of icpc choke on multiply defined symbols -+ # if we add $predep_objects and $postdep_objects, however 7.1 and -+ # earlier do not add the objects themselves. -+ case `$CC -V 2>&1` in -+ *"Version 7."*) -+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' -+ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' -+ ;; -+ *) # Version 8.0 or newer -+ tmp_idyn= -+ case $host_cpu in -+ ia64*) tmp_idyn=' -i_dynamic';; -+ esac -+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -+ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' -+ ;; -+ esac -+ _LT_TAGVAR(archive_cmds_need_lc, $1)=no -+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' -+ _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' -+ _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' -+ ;; -+ pgCC* | pgcpp*) -+ # Portland Group C++ compiler -+ case `$CC -V` in -+ *pgCC\ [[1-5]]* | *pgcpp\ [[1-5]]*) -+ _LT_TAGVAR(prelink_cmds, $1)='tpldir=Template.dir~ -+ rm -rf $tpldir~ -+ $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ -+ compile_command="$compile_command `find $tpldir -name \*.o | $NL2SP`"' -+ _LT_TAGVAR(old_archive_cmds, $1)='tpldir=Template.dir~ -+ rm -rf $tpldir~ -+ $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ -+ $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | $NL2SP`~ -+ $RANLIB $oldlib' -+ _LT_TAGVAR(archive_cmds, $1)='tpldir=Template.dir~ -+ rm -rf $tpldir~ -+ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ -+ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' -+ _LT_TAGVAR(archive_expsym_cmds, $1)='tpldir=Template.dir~ -+ rm -rf $tpldir~ -+ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ -+ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' -+ ;; -+ *) # Version 6 will use weak symbols -+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' -+ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' -+ ;; -+ esac -+ -+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir' -+ _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' -+ _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' -+ ;; -+ cxx*) -+ # Compaq C++ -+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' -+ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols' -+ -+ runpath_var=LD_RUN_PATH -+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' -+ _LT_TAGVAR(hardcode_libdir_separator, $1)=: -+ -+ # Commands to make compiler produce verbose output that lists -+ # what "hidden" libraries, object files and flags are used when -+ # linking a shared library. -+ # -+ # There doesn't appear to be a way to prevent this compiler from -+ # explicitly linking system object files so we need to strip them -+ # from the output so that they don't get included in the library -+ # dependencies. -+ output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`$ECHO "X$templist" | $Xsed -e "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' -+ ;; -+ xl*) -+ # IBM XL 8.0 on PPC, with GNU ld -+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' -+ _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' -+ _LT_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -+ if test "x$supports_anon_versioning" = xyes; then -+ _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ -+ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ -+ echo "local: *; };" >> $output_objdir/$libname.ver~ -+ $CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' -+ fi -+ ;; -+ *) -+ case `$CC -V 2>&1 | sed 5q` in -+ *Sun\ C*) -+ # Sun C++ 5.9 -+ _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' -+ _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' -+ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols' -+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' -+ _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' -+ _LT_TAGVAR(compiler_needs_object, $1)=yes -+ -+ # Not sure whether something based on -+ # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 -+ # would be better. -+ output_verbose_link_cmd='echo' -+ -+ # Archives containing C++ object files must be created using -+ # "CC -xar", where "CC" is the Sun C++ compiler. This is -+ # necessary to make sure instantiated templates are included -+ # in the archive. -+ _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' -+ ;; -+ esac -+ ;; -+ esac -+ ;; -+ -+ lynxos*) -+ # FIXME: insert proper C++ library support -+ _LT_TAGVAR(ld_shlibs, $1)=no -+ ;; -+ -+ m88k*) -+ # FIXME: insert proper C++ library support -+ _LT_TAGVAR(ld_shlibs, $1)=no -+ ;; -+ -+ mvs*) -+ case $cc_basename in -+ cxx*) -+ # FIXME: insert proper C++ library support -+ _LT_TAGVAR(ld_shlibs, $1)=no -+ ;; -+ *) -+ # FIXME: insert proper C++ library support -+ _LT_TAGVAR(ld_shlibs, $1)=no -+ ;; -+ esac -+ ;; -+ -+ netbsd*) -+ if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then -+ _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' -+ wlarc= -+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' -+ _LT_TAGVAR(hardcode_direct, $1)=yes -+ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no -+ fi -+ # Workaround some broken pre-1.5 toolchains -+ output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"' -+ ;; -+ -+ *nto* | *qnx*) -+ _LT_TAGVAR(ld_shlibs, $1)=yes -+ ;; -+ -+ openbsd2*) -+ # C++ shared libraries are fairly broken -+ _LT_TAGVAR(ld_shlibs, $1)=no -+ ;; -+ -+ openbsd*) -+ if test -f /usr/libexec/ld.so; then -+ _LT_TAGVAR(hardcode_direct, $1)=yes -+ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no -+ _LT_TAGVAR(hardcode_direct_absolute, $1)=yes -+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' -+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' -+ if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then -+ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib' -+ _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' -+ _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' -+ fi -+ output_verbose_link_cmd=echo -+ else -+ _LT_TAGVAR(ld_shlibs, $1)=no -+ fi -+ ;; -+ -+ osf3* | osf4* | osf5*) -+ case $cc_basename in -+ KCC*) -+ # Kuck and Associates, Inc. (KAI) C++ Compiler -+ -+ # KCC will only create a shared library if the output file -+ # ends with ".so" (or ".sl" for HP-UX), so rename the library -+ # to its proper name (with version) after linking. -+ _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' -+ -+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' -+ _LT_TAGVAR(hardcode_libdir_separator, $1)=: -+ -+ # Archives containing C++ object files must be created using -+ # the KAI C++ compiler. -+ case $host in -+ osf3*) _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;; -+ *) _LT_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs' ;; -+ esac -+ ;; -+ RCC*) -+ # Rational C++ 2.4.1 -+ # FIXME: insert proper C++ library support -+ _LT_TAGVAR(ld_shlibs, $1)=no -+ ;; -+ cxx*) -+ case $host in -+ osf3*) -+ _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' -+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && $ECHO "X${wl}-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' -+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' -+ ;; -+ *) -+ _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' -+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' -+ _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ -+ echo "-hidden">> $lib.exp~ -+ $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname ${wl}-input ${wl}$lib.exp `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~ -+ $RM $lib.exp' -+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' -+ ;; -+ esac -+ -+ _LT_TAGVAR(hardcode_libdir_separator, $1)=: -+ -+ # Commands to make compiler produce verbose output that lists -+ # what "hidden" libraries, object files and flags are used when -+ # linking a shared library. -+ # -+ # There doesn't appear to be a way to prevent this compiler from -+ # explicitly linking system object files so we need to strip them -+ # from the output so that they don't get included in the library -+ # dependencies. -+ output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`$ECHO "X$templist" | $Xsed -e "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' -+ ;; -+ *) -+ if test "$GXX" = yes && test "$with_gnu_ld" = no; then -+ _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' -+ case $host in -+ osf3*) -+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' -+ ;; -+ *) -+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' -+ ;; -+ esac -+ -+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' -+ _LT_TAGVAR(hardcode_libdir_separator, $1)=: -+ -+ # Commands to make compiler produce verbose output that lists -+ # what "hidden" libraries, object files and flags are used when -+ # linking a shared library. -+ output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' -+ -+ else -+ # FIXME: insert proper C++ library support -+ _LT_TAGVAR(ld_shlibs, $1)=no -+ fi -+ ;; -+ esac -+ ;; -+ -+ psos*) -+ # FIXME: insert proper C++ library support -+ _LT_TAGVAR(ld_shlibs, $1)=no -+ ;; -+ -+ sunos4*) -+ case $cc_basename in -+ CC*) -+ # Sun C++ 4.x -+ # FIXME: insert proper C++ library support -+ _LT_TAGVAR(ld_shlibs, $1)=no -+ ;; -+ lcc*) -+ # Lucid -+ # FIXME: insert proper C++ library support -+ _LT_TAGVAR(ld_shlibs, $1)=no -+ ;; -+ *) -+ # FIXME: insert proper C++ library support -+ _LT_TAGVAR(ld_shlibs, $1)=no -+ ;; -+ esac -+ ;; -+ -+ solaris*) -+ case $cc_basename in -+ CC*) -+ # Sun C++ 4.2, 5.x and Centerline C++ -+ _LT_TAGVAR(archive_cmds_need_lc,$1)=yes -+ _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' -+ _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' -+ _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ -+ $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' -+ -+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' -+ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no -+ case $host_os in -+ solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; -+ *) -+ # The compiler driver will combine and reorder linker options, -+ # but understands `-z linker_flag'. -+ # Supported since Solaris 2.6 (maybe 2.5.1?) -+ _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' -+ ;; -+ esac -+ _LT_TAGVAR(link_all_deplibs, $1)=yes -+ -+ output_verbose_link_cmd='echo' -+ -+ # Archives containing C++ object files must be created using -+ # "CC -xar", where "CC" is the Sun C++ compiler. This is -+ # necessary to make sure instantiated templates are included -+ # in the archive. -+ _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' -+ ;; -+ gcx*) -+ # Green Hills C++ Compiler -+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' -+ -+ # The C++ compiler must be used to create the archive. -+ _LT_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs' -+ ;; -+ *) -+ # GNU C++ compiler with Solaris linker -+ if test "$GXX" = yes && test "$with_gnu_ld" = no; then -+ _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs' -+ if $CC --version | $GREP -v '^2\.7' > /dev/null; then -+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' -+ _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ -+ $CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' -+ -+ # Commands to make compiler produce verbose output that lists -+ # what "hidden" libraries, object files and flags are used when -+ # linking a shared library. -+ output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' -+ else -+ # g++ 2.7 appears to require `-G' NOT `-shared' on this -+ # platform. -+ _LT_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' -+ _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ -+ $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' -+ -+ # Commands to make compiler produce verbose output that lists -+ # what "hidden" libraries, object files and flags are used when -+ # linking a shared library. -+ output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' -+ fi -+ -+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $wl$libdir' -+ case $host_os in -+ solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; -+ *) -+ _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' -+ ;; -+ esac -+ fi -+ ;; -+ esac -+ ;; -+ -+ sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) -+ _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' -+ _LT_TAGVAR(archive_cmds_need_lc, $1)=no -+ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no -+ runpath_var='LD_RUN_PATH' -+ -+ case $cc_basename in -+ CC*) -+ _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' -+ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' -+ ;; -+ *) -+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' -+ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' -+ ;; -+ esac -+ ;; -+ -+ sysv5* | sco3.2v5* | sco5v6*) -+ # Note: We can NOT use -z defs as we might desire, because we do not -+ # link with -lc, and that would cause any symbols used from libc to -+ # always be unresolved, which means just about no library would -+ # ever link correctly. If we're not using GNU ld we use -z text -+ # though, which does catch some bad symbols but isn't as heavy-handed -+ # as -z defs. -+ _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' -+ _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs' -+ _LT_TAGVAR(archive_cmds_need_lc, $1)=no -+ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no -+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir' -+ _LT_TAGVAR(hardcode_libdir_separator, $1)=':' -+ _LT_TAGVAR(link_all_deplibs, $1)=yes -+ _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' -+ runpath_var='LD_RUN_PATH' -+ -+ case $cc_basename in -+ CC*) -+ _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' -+ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' -+ ;; -+ *) -+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' -+ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' -+ ;; -+ esac -+ ;; -+ -+ tandem*) -+ case $cc_basename in -+ NCC*) -+ # NonStop-UX NCC 3.20 -+ # FIXME: insert proper C++ library support -+ _LT_TAGVAR(ld_shlibs, $1)=no -+ ;; -+ *) -+ # FIXME: insert proper C++ library support -+ _LT_TAGVAR(ld_shlibs, $1)=no -+ ;; -+ esac -+ ;; -+ -+ vxworks*) -+ # FIXME: insert proper C++ library support -+ _LT_TAGVAR(ld_shlibs, $1)=no -+ ;; -+ -+ *) -+ # FIXME: insert proper C++ library support -+ _LT_TAGVAR(ld_shlibs, $1)=no -+ ;; -+ esac -+ -+ AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) -+ test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no -+ -+ _LT_TAGVAR(GCC, $1)="$GXX" -+ _LT_TAGVAR(LD, $1)="$LD" -+ -+ ## CAVEAT EMPTOR: -+ ## There is no encapsulation within the following macros, do not change -+ ## the running order or otherwise move them around unless you know exactly -+ ## what you are doing... -+ _LT_SYS_HIDDEN_LIBDEPS($1) -+ _LT_COMPILER_PIC($1) -+ _LT_COMPILER_C_O($1) -+ _LT_COMPILER_FILE_LOCKS($1) -+ _LT_LINKER_SHLIBS($1) -+ _LT_SYS_DYNAMIC_LINKER($1) -+ _LT_LINKER_HARDCODE_LIBPATH($1) -+ -+ _LT_CONFIG($1) -+ fi # test -n "$compiler" -+ -+ CC=$lt_save_CC -+ LDCXX=$LD -+ LD=$lt_save_LD -+ GCC=$lt_save_GCC -+ with_gnu_ld=$lt_save_with_gnu_ld -+ lt_cv_path_LDCXX=$lt_cv_path_LD -+ lt_cv_path_LD=$lt_save_path_LD -+ lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld -+ lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld -+fi # test "$_lt_caught_CXX_error" != yes -+ -+AC_LANG_POP -+])# _LT_LANG_CXX_CONFIG -+ -+ -+# _LT_SYS_HIDDEN_LIBDEPS([TAGNAME]) -+# --------------------------------- -+# Figure out "hidden" library dependencies from verbose -+# compiler output when linking a shared library. -+# Parse the compiler output and extract the necessary -+# objects, libraries and library flags. -+m4_defun([_LT_SYS_HIDDEN_LIBDEPS], -+[m4_require([_LT_FILEUTILS_DEFAULTS])dnl -+# Dependencies to place before and after the object being linked: -+_LT_TAGVAR(predep_objects, $1)= -+_LT_TAGVAR(postdep_objects, $1)= -+_LT_TAGVAR(predeps, $1)= -+_LT_TAGVAR(postdeps, $1)= -+_LT_TAGVAR(compiler_lib_search_path, $1)= -+ -+dnl we can't use the lt_simple_compile_test_code here, -+dnl because it contains code intended for an executable, -+dnl not a library. It's possible we should let each -+dnl tag define a new lt_????_link_test_code variable, -+dnl but it's only used here... -+m4_if([$1], [], [cat > conftest.$ac_ext <<_LT_EOF -+int a; -+void foo (void) { a = 0; } -+_LT_EOF -+], [$1], [CXX], [cat > conftest.$ac_ext <<_LT_EOF -+class Foo -+{ -+public: -+ Foo (void) { a = 0; } -+private: -+ int a; -+}; -+_LT_EOF -+], [$1], [F77], [cat > conftest.$ac_ext <<_LT_EOF -+ subroutine foo -+ implicit none -+ integer*4 a -+ a=0 -+ return -+ end -+_LT_EOF -+], [$1], [FC], [cat > conftest.$ac_ext <<_LT_EOF -+ subroutine foo -+ implicit none -+ integer a -+ a=0 -+ return -+ end -+_LT_EOF -+], [$1], [GCJ], [cat > conftest.$ac_ext <<_LT_EOF -+public class foo { -+ private int a; -+ public void bar (void) { -+ a = 0; -+ } -+}; -+_LT_EOF -+]) -+dnl Parse the compiler output and extract the necessary -+dnl objects, libraries and library flags. -+if AC_TRY_EVAL(ac_compile); then -+ # Parse the compiler output and extract the necessary -+ # objects, libraries and library flags. -+ -+ # Sentinel used to keep track of whether or not we are before -+ # the conftest object file. -+ pre_test_object_deps_done=no -+ -+ for p in `eval "$output_verbose_link_cmd"`; do -+ case $p in -+ -+ -L* | -R* | -l*) -+ # Some compilers place space between "-{L,R}" and the path. -+ # Remove the space. -+ if test $p = "-L" || -+ test $p = "-R"; then -+ prev=$p -+ continue -+ else -+ prev= -+ fi -+ -+ if test "$pre_test_object_deps_done" = no; then -+ case $p in -+ -L* | -R*) -+ # Internal compiler library paths should come after those -+ # provided the user. The postdeps already come after the -+ # user supplied libs so there is no need to process them. -+ if test -z "$_LT_TAGVAR(compiler_lib_search_path, $1)"; then -+ _LT_TAGVAR(compiler_lib_search_path, $1)="${prev}${p}" -+ else -+ _LT_TAGVAR(compiler_lib_search_path, $1)="${_LT_TAGVAR(compiler_lib_search_path, $1)} ${prev}${p}" -+ fi -+ ;; -+ # The "-l" case would never come before the object being -+ # linked, so don't bother handling this case. -+ esac -+ else -+ if test -z "$_LT_TAGVAR(postdeps, $1)"; then -+ _LT_TAGVAR(postdeps, $1)="${prev}${p}" -+ else -+ _LT_TAGVAR(postdeps, $1)="${_LT_TAGVAR(postdeps, $1)} ${prev}${p}" -+ fi -+ fi -+ ;; -+ -+ *.$objext) -+ # This assumes that the test object file only shows up -+ # once in the compiler output. -+ if test "$p" = "conftest.$objext"; then -+ pre_test_object_deps_done=yes -+ continue -+ fi -+ -+ if test "$pre_test_object_deps_done" = no; then -+ if test -z "$_LT_TAGVAR(predep_objects, $1)"; then -+ _LT_TAGVAR(predep_objects, $1)="$p" -+ else -+ _LT_TAGVAR(predep_objects, $1)="$_LT_TAGVAR(predep_objects, $1) $p" -+ fi -+ else -+ if test -z "$_LT_TAGVAR(postdep_objects, $1)"; then -+ _LT_TAGVAR(postdep_objects, $1)="$p" -+ else -+ _LT_TAGVAR(postdep_objects, $1)="$_LT_TAGVAR(postdep_objects, $1) $p" -+ fi -+ fi -+ ;; -+ -+ *) ;; # Ignore the rest. -+ -+ esac -+ done -+ -+ # Clean up. -+ rm -f a.out a.exe -+else -+ echo "libtool.m4: error: problem compiling $1 test program" -+fi -+ -+$RM -f confest.$objext -+ -+# PORTME: override above test on systems where it is broken -+m4_if([$1], [CXX], -+[case $host_os in -+interix[[3-9]]*) -+ # Interix 3.5 installs completely hosed .la files for C++, so rather than -+ # hack all around it, let's just trust "g++" to DTRT. -+ _LT_TAGVAR(predep_objects,$1)= -+ _LT_TAGVAR(postdep_objects,$1)= -+ _LT_TAGVAR(postdeps,$1)= -+ ;; -+ -+linux*) -+ case `$CC -V 2>&1 | sed 5q` in -+ *Sun\ C*) -+ # Sun C++ 5.9 -+ -+ # The more standards-conforming stlport4 library is -+ # incompatible with the Cstd library. Avoid specifying -+ # it if it's in CXXFLAGS. Ignore libCrun as -+ # -library=stlport4 depends on it. -+ case " $CXX $CXXFLAGS " in -+ *" -library=stlport4 "*) -+ solaris_use_stlport4=yes -+ ;; -+ esac -+ -+ if test "$solaris_use_stlport4" != yes; then -+ _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun' -+ fi -+ ;; -+ esac -+ ;; -+ -+solaris*) -+ case $cc_basename in -+ CC*) -+ # The more standards-conforming stlport4 library is -+ # incompatible with the Cstd library. Avoid specifying -+ # it if it's in CXXFLAGS. Ignore libCrun as -+ # -library=stlport4 depends on it. -+ case " $CXX $CXXFLAGS " in -+ *" -library=stlport4 "*) -+ solaris_use_stlport4=yes -+ ;; -+ esac -+ -+ # Adding this requires a known-good setup of shared libraries for -+ # Sun compiler versions before 5.6, else PIC objects from an old -+ # archive will be linked into the output, leading to subtle bugs. -+ if test "$solaris_use_stlport4" != yes; then -+ _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun' -+ fi -+ ;; -+ esac -+ ;; -+esac -+]) -+ -+case " $_LT_TAGVAR(postdeps, $1) " in -+*" -lc "*) _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;; -+esac -+ _LT_TAGVAR(compiler_lib_search_dirs, $1)= -+if test -n "${_LT_TAGVAR(compiler_lib_search_path, $1)}"; then -+ _LT_TAGVAR(compiler_lib_search_dirs, $1)=`echo " ${_LT_TAGVAR(compiler_lib_search_path, $1)}" | ${SED} -e 's! -L! !g' -e 's!^ !!'` -+fi -+_LT_TAGDECL([], [compiler_lib_search_dirs], [1], -+ [The directories searched by this compiler when creating a shared library]) -+_LT_TAGDECL([], [predep_objects], [1], -+ [Dependencies to place before and after the objects being linked to -+ create a shared library]) -+_LT_TAGDECL([], [postdep_objects], [1]) -+_LT_TAGDECL([], [predeps], [1]) -+_LT_TAGDECL([], [postdeps], [1]) -+_LT_TAGDECL([], [compiler_lib_search_path], [1], -+ [The library search path used internally by the compiler when linking -+ a shared library]) -+])# _LT_SYS_HIDDEN_LIBDEPS -+ -+ -+# _LT_PROG_F77 -+# ------------ -+# Since AC_PROG_F77 is broken, in that it returns the empty string -+# if there is no fortran compiler, we have our own version here. -+m4_defun([_LT_PROG_F77], -+[ -+pushdef([AC_MSG_ERROR], [_lt_disable_F77=yes]) -+AC_PROG_F77 -+if test -z "$F77" || test "X$F77" = "Xno"; then -+ _lt_disable_F77=yes -+fi -+popdef([AC_MSG_ERROR]) -+])# _LT_PROG_F77 -+ -+dnl aclocal-1.4 backwards compatibility: -+dnl AC_DEFUN([_LT_PROG_F77], []) -+ -+ -+# _LT_LANG_F77_CONFIG([TAG]) -+# -------------------------- -+# Ensure that the configuration variables for a Fortran 77 compiler are -+# suitably defined. These variables are subsequently used by _LT_CONFIG -+# to write the compiler configuration to `libtool'. -+m4_defun([_LT_LANG_F77_CONFIG], -+[AC_REQUIRE([_LT_PROG_F77])dnl -+AC_LANG_PUSH(Fortran 77) -+ -+_LT_TAGVAR(archive_cmds_need_lc, $1)=no -+_LT_TAGVAR(allow_undefined_flag, $1)= -+_LT_TAGVAR(always_export_symbols, $1)=no -+_LT_TAGVAR(archive_expsym_cmds, $1)= -+_LT_TAGVAR(export_dynamic_flag_spec, $1)= -+_LT_TAGVAR(hardcode_direct, $1)=no -+_LT_TAGVAR(hardcode_direct_absolute, $1)=no -+_LT_TAGVAR(hardcode_libdir_flag_spec, $1)= -+_LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= -+_LT_TAGVAR(hardcode_libdir_separator, $1)= -+_LT_TAGVAR(hardcode_minus_L, $1)=no -+_LT_TAGVAR(hardcode_automatic, $1)=no -+_LT_TAGVAR(inherit_rpath, $1)=no -+_LT_TAGVAR(module_cmds, $1)= -+_LT_TAGVAR(module_expsym_cmds, $1)= -+_LT_TAGVAR(link_all_deplibs, $1)=unknown -+_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds -+_LT_TAGVAR(no_undefined_flag, $1)= -+_LT_TAGVAR(whole_archive_flag_spec, $1)= -+_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no -+ -+# Source file extension for f77 test sources. -+ac_ext=f -+ -+# Object file extension for compiled f77 test sources. -+objext=o -+_LT_TAGVAR(objext, $1)=$objext -+ -+# No sense in running all these tests if we already determined that -+# the F77 compiler isn't working. Some variables (like enable_shared) -+# are currently assumed to apply to all compilers on this platform, -+# and will be corrupted by setting them based on a non-working compiler. -+if test "$_lt_disable_F77" != yes; then -+ # Code to be used in simple compile tests -+ lt_simple_compile_test_code="\ -+ subroutine t -+ return -+ end -+" -+ -+ # Code to be used in simple link tests -+ lt_simple_link_test_code="\ -+ program t -+ end -+" -+ -+ # ltmain only uses $CC for tagged configurations so make sure $CC is set. -+ _LT_TAG_COMPILER -+ -+ # save warnings/boilerplate of simple test code -+ _LT_COMPILER_BOILERPLATE -+ _LT_LINKER_BOILERPLATE -+ -+ # Allow CC to be a program name with arguments. -+ lt_save_CC="$CC" -+ lt_save_GCC=$GCC -+ CC=${F77-"f77"} -+ compiler=$CC -+ _LT_TAGVAR(compiler, $1)=$CC -+ _LT_CC_BASENAME([$compiler]) -+ GCC=$G77 -+ if test -n "$compiler"; then -+ AC_MSG_CHECKING([if libtool supports shared libraries]) -+ AC_MSG_RESULT([$can_build_shared]) -+ -+ AC_MSG_CHECKING([whether to build shared libraries]) -+ test "$can_build_shared" = "no" && enable_shared=no -+ -+ # On AIX, shared libraries and static libraries use the same namespace, and -+ # are all built from PIC. -+ case $host_os in -+ aix3*) -+ test "$enable_shared" = yes && enable_static=no -+ if test -n "$RANLIB"; then -+ archive_cmds="$archive_cmds~\$RANLIB \$lib" -+ postinstall_cmds='$RANLIB $lib' -+ fi -+ ;; -+ aix[[4-9]]*) -+ if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then -+ test "$enable_shared" = yes && enable_static=no -+ fi -+ ;; -+ esac -+ AC_MSG_RESULT([$enable_shared]) -+ -+ AC_MSG_CHECKING([whether to build static libraries]) -+ # Make sure either enable_shared or enable_static is yes. -+ test "$enable_shared" = yes || enable_static=yes -+ AC_MSG_RESULT([$enable_static]) -+ -+ _LT_TAGVAR(GCC, $1)="$G77" -+ _LT_TAGVAR(LD, $1)="$LD" -+ -+ ## CAVEAT EMPTOR: -+ ## There is no encapsulation within the following macros, do not change -+ ## the running order or otherwise move them around unless you know exactly -+ ## what you are doing... -+ _LT_COMPILER_PIC($1) -+ _LT_COMPILER_C_O($1) -+ _LT_COMPILER_FILE_LOCKS($1) -+ _LT_LINKER_SHLIBS($1) -+ _LT_SYS_DYNAMIC_LINKER($1) -+ _LT_LINKER_HARDCODE_LIBPATH($1) -+ -+ _LT_CONFIG($1) -+ fi # test -n "$compiler" -+ -+ GCC=$lt_save_GCC -+ CC="$lt_save_CC" -+fi # test "$_lt_disable_F77" != yes -+ -+AC_LANG_POP -+])# _LT_LANG_F77_CONFIG -+ -+ -+# _LT_PROG_FC -+# ----------- -+# Since AC_PROG_FC is broken, in that it returns the empty string -+# if there is no fortran compiler, we have our own version here. -+m4_defun([_LT_PROG_FC], -+[ -+pushdef([AC_MSG_ERROR], [_lt_disable_FC=yes]) -+AC_PROG_FC -+if test -z "$FC" || test "X$FC" = "Xno"; then -+ _lt_disable_FC=yes -+fi -+popdef([AC_MSG_ERROR]) -+])# _LT_PROG_FC -+ -+dnl aclocal-1.4 backwards compatibility: -+dnl AC_DEFUN([_LT_PROG_FC], []) -+ -+ -+# _LT_LANG_FC_CONFIG([TAG]) -+# ------------------------- -+# Ensure that the configuration variables for a Fortran compiler are -+# suitably defined. These variables are subsequently used by _LT_CONFIG -+# to write the compiler configuration to `libtool'. -+m4_defun([_LT_LANG_FC_CONFIG], -+[AC_REQUIRE([_LT_PROG_FC])dnl -+AC_LANG_PUSH(Fortran) -+ -+_LT_TAGVAR(archive_cmds_need_lc, $1)=no -+_LT_TAGVAR(allow_undefined_flag, $1)= -+_LT_TAGVAR(always_export_symbols, $1)=no -+_LT_TAGVAR(archive_expsym_cmds, $1)= -+_LT_TAGVAR(export_dynamic_flag_spec, $1)= -+_LT_TAGVAR(hardcode_direct, $1)=no -+_LT_TAGVAR(hardcode_direct_absolute, $1)=no -+_LT_TAGVAR(hardcode_libdir_flag_spec, $1)= -+_LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= -+_LT_TAGVAR(hardcode_libdir_separator, $1)= -+_LT_TAGVAR(hardcode_minus_L, $1)=no -+_LT_TAGVAR(hardcode_automatic, $1)=no -+_LT_TAGVAR(inherit_rpath, $1)=no -+_LT_TAGVAR(module_cmds, $1)= -+_LT_TAGVAR(module_expsym_cmds, $1)= -+_LT_TAGVAR(link_all_deplibs, $1)=unknown -+_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds -+_LT_TAGVAR(no_undefined_flag, $1)= -+_LT_TAGVAR(whole_archive_flag_spec, $1)= -+_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no -+ -+# Source file extension for fc test sources. -+ac_ext=${ac_fc_srcext-f} -+ -+# Object file extension for compiled fc test sources. -+objext=o -+_LT_TAGVAR(objext, $1)=$objext -+ -+# No sense in running all these tests if we already determined that -+# the FC compiler isn't working. Some variables (like enable_shared) -+# are currently assumed to apply to all compilers on this platform, -+# and will be corrupted by setting them based on a non-working compiler. -+if test "$_lt_disable_FC" != yes; then -+ # Code to be used in simple compile tests -+ lt_simple_compile_test_code="\ -+ subroutine t -+ return -+ end -+" -+ -+ # Code to be used in simple link tests -+ lt_simple_link_test_code="\ -+ program t -+ end -+" -+ -+ # ltmain only uses $CC for tagged configurations so make sure $CC is set. -+ _LT_TAG_COMPILER -+ -+ # save warnings/boilerplate of simple test code -+ _LT_COMPILER_BOILERPLATE -+ _LT_LINKER_BOILERPLATE -+ -+ # Allow CC to be a program name with arguments. -+ lt_save_CC="$CC" -+ lt_save_GCC=$GCC -+ CC=${FC-"f95"} -+ compiler=$CC -+ GCC=$ac_cv_fc_compiler_gnu -+ -+ _LT_TAGVAR(compiler, $1)=$CC -+ _LT_CC_BASENAME([$compiler]) -+ -+ if test -n "$compiler"; then -+ AC_MSG_CHECKING([if libtool supports shared libraries]) -+ AC_MSG_RESULT([$can_build_shared]) -+ -+ AC_MSG_CHECKING([whether to build shared libraries]) -+ test "$can_build_shared" = "no" && enable_shared=no -+ -+ # On AIX, shared libraries and static libraries use the same namespace, and -+ # are all built from PIC. -+ case $host_os in -+ aix3*) -+ test "$enable_shared" = yes && enable_static=no -+ if test -n "$RANLIB"; then -+ archive_cmds="$archive_cmds~\$RANLIB \$lib" -+ postinstall_cmds='$RANLIB $lib' -+ fi -+ ;; -+ aix[[4-9]]*) -+ if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then -+ test "$enable_shared" = yes && enable_static=no -+ fi -+ ;; -+ esac -+ AC_MSG_RESULT([$enable_shared]) -+ -+ AC_MSG_CHECKING([whether to build static libraries]) -+ # Make sure either enable_shared or enable_static is yes. -+ test "$enable_shared" = yes || enable_static=yes -+ AC_MSG_RESULT([$enable_static]) -+ -+ _LT_TAGVAR(GCC, $1)="$ac_cv_fc_compiler_gnu" -+ _LT_TAGVAR(LD, $1)="$LD" -+ -+ ## CAVEAT EMPTOR: -+ ## There is no encapsulation within the following macros, do not change -+ ## the running order or otherwise move them around unless you know exactly -+ ## what you are doing... -+ _LT_SYS_HIDDEN_LIBDEPS($1) -+ _LT_COMPILER_PIC($1) -+ _LT_COMPILER_C_O($1) -+ _LT_COMPILER_FILE_LOCKS($1) -+ _LT_LINKER_SHLIBS($1) -+ _LT_SYS_DYNAMIC_LINKER($1) -+ _LT_LINKER_HARDCODE_LIBPATH($1) -+ -+ _LT_CONFIG($1) -+ fi # test -n "$compiler" -+ -+ GCC=$lt_save_GCC -+ CC="$lt_save_CC" -+fi # test "$_lt_disable_FC" != yes -+ -+AC_LANG_POP -+])# _LT_LANG_FC_CONFIG -+ -+ -+# _LT_LANG_GCJ_CONFIG([TAG]) -+# -------------------------- -+# Ensure that the configuration variables for the GNU Java Compiler compiler -+# are suitably defined. These variables are subsequently used by _LT_CONFIG -+# to write the compiler configuration to `libtool'. -+m4_defun([_LT_LANG_GCJ_CONFIG], -+[AC_REQUIRE([LT_PROG_GCJ])dnl -+AC_LANG_SAVE -+ -+# Source file extension for Java test sources. -+ac_ext=java -+ -+# Object file extension for compiled Java test sources. -+objext=o -+_LT_TAGVAR(objext, $1)=$objext -+ -+# Code to be used in simple compile tests -+lt_simple_compile_test_code="class foo {}" -+ -+# Code to be used in simple link tests -+lt_simple_link_test_code='public class conftest { public static void main(String[[]] argv) {}; }' -+ -+# ltmain only uses $CC for tagged configurations so make sure $CC is set. -+_LT_TAG_COMPILER -+ -+# save warnings/boilerplate of simple test code -+_LT_COMPILER_BOILERPLATE -+_LT_LINKER_BOILERPLATE -+ -+# Allow CC to be a program name with arguments. -+lt_save_CC="$CC" -+lt_save_GCC=$GCC -+GCC=yes -+CC=${GCJ-"gcj"} -+compiler=$CC -+_LT_TAGVAR(compiler, $1)=$CC -+_LT_TAGVAR(LD, $1)="$LD" -+_LT_CC_BASENAME([$compiler]) -+ -+# GCJ did not exist at the time GCC didn't implicitly link libc in. -+_LT_TAGVAR(archive_cmds_need_lc, $1)=no -+ -+_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds -+ -+## CAVEAT EMPTOR: -+## There is no encapsulation within the following macros, do not change -+## the running order or otherwise move them around unless you know exactly -+## what you are doing... -+if test -n "$compiler"; then -+ _LT_COMPILER_NO_RTTI($1) -+ _LT_COMPILER_PIC($1) -+ _LT_COMPILER_C_O($1) -+ _LT_COMPILER_FILE_LOCKS($1) -+ _LT_LINKER_SHLIBS($1) -+ _LT_LINKER_HARDCODE_LIBPATH($1) -+ -+ _LT_CONFIG($1) -+fi -+ -+AC_LANG_RESTORE -+ -+GCC=$lt_save_GCC -+CC="$lt_save_CC" -+])# _LT_LANG_GCJ_CONFIG -+ -+ -+# _LT_LANG_RC_CONFIG([TAG]) -+# ------------------------- -+# Ensure that the configuration variables for the Windows resource compiler -+# are suitably defined. These variables are subsequently used by _LT_CONFIG -+# to write the compiler configuration to `libtool'. -+m4_defun([_LT_LANG_RC_CONFIG], -+[AC_REQUIRE([LT_PROG_RC])dnl -+AC_LANG_SAVE -+ -+# Source file extension for RC test sources. -+ac_ext=rc -+ -+# Object file extension for compiled RC test sources. -+objext=o -+_LT_TAGVAR(objext, $1)=$objext -+ -+# Code to be used in simple compile tests -+lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }' -+ -+# Code to be used in simple link tests -+lt_simple_link_test_code="$lt_simple_compile_test_code" -+ -+# ltmain only uses $CC for tagged configurations so make sure $CC is set. -+_LT_TAG_COMPILER -+ -+# save warnings/boilerplate of simple test code -+_LT_COMPILER_BOILERPLATE -+_LT_LINKER_BOILERPLATE -+ -+# Allow CC to be a program name with arguments. -+lt_save_CC="$CC" -+lt_save_GCC=$GCC -+GCC= -+CC=${RC-"windres"} -+compiler=$CC -+_LT_TAGVAR(compiler, $1)=$CC -+_LT_CC_BASENAME([$compiler]) -+_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes -+ -+if test -n "$compiler"; then -+ : -+ _LT_CONFIG($1) -+fi -+ -+GCC=$lt_save_GCC -+AC_LANG_RESTORE -+CC="$lt_save_CC" -+])# _LT_LANG_RC_CONFIG -+ -+ -+# LT_PROG_GCJ -+# ----------- -+AC_DEFUN([LT_PROG_GCJ], -+[m4_ifdef([AC_PROG_GCJ], [AC_PROG_GCJ], -+ [m4_ifdef([A][M_PROG_GCJ], [A][M_PROG_GCJ], -+ [AC_CHECK_TOOL(GCJ, gcj,) -+ test "x${GCJFLAGS+set}" = xset || GCJFLAGS="-g -O2" -+ AC_SUBST(GCJFLAGS)])])[]dnl -+]) -+ -+# Old name: -+AU_ALIAS([LT_AC_PROG_GCJ], [LT_PROG_GCJ]) -+dnl aclocal-1.4 backwards compatibility: -+dnl AC_DEFUN([LT_AC_PROG_GCJ], []) -+ -+ -+# LT_PROG_RC -+# ---------- -+AC_DEFUN([LT_PROG_RC], -+[AC_CHECK_TOOL(RC, windres,) -+]) -+ -+# Old name: -+AU_ALIAS([LT_AC_PROG_RC], [LT_PROG_RC]) -+dnl aclocal-1.4 backwards compatibility: -+dnl AC_DEFUN([LT_AC_PROG_RC], []) -+ -+ -+# _LT_DECL_EGREP -+# -------------- -+# If we don't have a new enough Autoconf to choose the best grep -+# available, choose the one first in the user's PATH. -+m4_defun([_LT_DECL_EGREP], -+[AC_REQUIRE([AC_PROG_EGREP])dnl -+AC_REQUIRE([AC_PROG_FGREP])dnl -+test -z "$GREP" && GREP=grep -+_LT_DECL([], [GREP], [1], [A grep program that handles long lines]) -+_LT_DECL([], [EGREP], [1], [An ERE matcher]) -+_LT_DECL([], [FGREP], [1], [A literal string matcher]) -+dnl Non-bleeding-edge autoconf doesn't subst GREP, so do it here too -+AC_SUBST([GREP]) -+]) -+ -+ -+# _LT_DECL_OBJDUMP -+# -------------- -+# If we don't have a new enough Autoconf to choose the best objdump -+# available, choose the one first in the user's PATH. -+m4_defun([_LT_DECL_OBJDUMP], -+[AC_CHECK_TOOL(OBJDUMP, objdump, false) -+test -z "$OBJDUMP" && OBJDUMP=objdump -+_LT_DECL([], [OBJDUMP], [1], [An object symbol dumper]) -+AC_SUBST([OBJDUMP]) -+]) -+ -+ -+# _LT_DECL_SED -+# ------------ -+# Check for a fully-functional sed program, that truncates -+# as few characters as possible. Prefer GNU sed if found. -+m4_defun([_LT_DECL_SED], -+[AC_PROG_SED -+test -z "$SED" && SED=sed -+Xsed="$SED -e 1s/^X//" -+_LT_DECL([], [SED], [1], [A sed program that does not truncate output]) -+_LT_DECL([], [Xsed], ["\$SED -e 1s/^X//"], -+ [Sed that helps us avoid accidentally triggering echo(1) options like -n]) -+])# _LT_DECL_SED -+ -+m4_ifndef([AC_PROG_SED], [ -+############################################################ -+# NOTE: This macro has been submitted for inclusion into # -+# GNU Autoconf as AC_PROG_SED. When it is available in # -+# a released version of Autoconf we should remove this # -+# macro and use it instead. # -+############################################################ -+ -+m4_defun([AC_PROG_SED], -+[AC_MSG_CHECKING([for a sed that does not truncate output]) -+AC_CACHE_VAL(lt_cv_path_SED, -+[# Loop through the user's path and test for sed and gsed. -+# Then use that list of sed's as ones to test for truncation. -+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -+for as_dir in $PATH -+do -+ IFS=$as_save_IFS -+ 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 -+ lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext" -+ fi -+ done -+ done -+done -+IFS=$as_save_IFS -+lt_ac_max=0 -+lt_ac_count=0 -+# Add /usr/xpg4/bin/sed as it is typically found on Solaris -+# along with /bin/sed that truncates output. -+for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do -+ test ! -f $lt_ac_sed && continue -+ cat /dev/null > conftest.in -+ lt_ac_count=0 -+ echo $ECHO_N "0123456789$ECHO_C" >conftest.in -+ # Check for GNU sed and select it if it is found. -+ if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then -+ lt_cv_path_SED=$lt_ac_sed -+ break -+ fi -+ while true; do -+ cat conftest.in conftest.in >conftest.tmp -+ mv conftest.tmp conftest.in -+ cp conftest.in conftest.nl -+ echo >>conftest.nl -+ $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break -+ cmp -s conftest.out conftest.nl || break -+ # 10000 chars as input seems more than enough -+ test $lt_ac_count -gt 10 && break -+ lt_ac_count=`expr $lt_ac_count + 1` -+ if test $lt_ac_count -gt $lt_ac_max; then -+ lt_ac_max=$lt_ac_count -+ lt_cv_path_SED=$lt_ac_sed -+ fi -+ done -+done -+]) -+SED=$lt_cv_path_SED -+AC_SUBST([SED]) -+AC_MSG_RESULT([$SED]) -+])#AC_PROG_SED -+])#m4_ifndef -+ -+# Old name: -+AU_ALIAS([LT_AC_PROG_SED], [AC_PROG_SED]) -+dnl aclocal-1.4 backwards compatibility: -+dnl AC_DEFUN([LT_AC_PROG_SED], []) -+ -+ -+# _LT_CHECK_SHELL_FEATURES -+# ------------------------ -+# Find out whether the shell is Bourne or XSI compatible, -+# or has some other useful features. -+m4_defun([_LT_CHECK_SHELL_FEATURES], -+[AC_MSG_CHECKING([whether the shell understands some XSI constructs]) -+# Try some XSI features -+xsi_shell=no -+( _lt_dummy="a/b/c" -+ test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \ -+ = c,a/b,, \ -+ && eval 'test $(( 1 + 1 )) -eq 2 \ -+ && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ -+ && xsi_shell=yes -+AC_MSG_RESULT([$xsi_shell]) -+_LT_CONFIG_LIBTOOL_INIT([xsi_shell='$xsi_shell']) -+ -+AC_MSG_CHECKING([whether the shell understands "+="]) -+lt_shell_append=no -+( foo=bar; set foo baz; eval "$[1]+=\$[2]" && test "$foo" = barbaz ) \ -+ >/dev/null 2>&1 \ -+ && lt_shell_append=yes -+AC_MSG_RESULT([$lt_shell_append]) -+_LT_CONFIG_LIBTOOL_INIT([lt_shell_append='$lt_shell_append']) -+ -+if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then -+ lt_unset=unset -+else -+ lt_unset=false -+fi -+_LT_DECL([], [lt_unset], [0], [whether the shell understands "unset"])dnl -+ -+# test EBCDIC or ASCII -+case `echo X|tr X '\101'` in -+ A) # ASCII based system -+ # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr -+ lt_SP2NL='tr \040 \012' -+ lt_NL2SP='tr \015\012 \040\040' -+ ;; -+ *) # EBCDIC based system -+ lt_SP2NL='tr \100 \n' -+ lt_NL2SP='tr \r\n \100\100' -+ ;; -+esac -+_LT_DECL([SP2NL], [lt_SP2NL], [1], [turn spaces into newlines])dnl -+_LT_DECL([NL2SP], [lt_NL2SP], [1], [turn newlines into spaces])dnl -+])# _LT_CHECK_SHELL_FEATURES -+ -+ -+# _LT_PROG_XSI_SHELLFNS -+# --------------------- -+# Bourne and XSI compatible variants of some useful shell functions. -+m4_defun([_LT_PROG_XSI_SHELLFNS], -+[case $xsi_shell in -+ yes) -+ cat << \_LT_EOF >> "$cfgfile" -+ -+# func_dirname file append nondir_replacement -+# Compute the dirname of FILE. If nonempty, add APPEND to the result, -+# otherwise set result to NONDIR_REPLACEMENT. -+func_dirname () -+{ -+ case ${1} in -+ */*) func_dirname_result="${1%/*}${2}" ;; -+ * ) func_dirname_result="${3}" ;; -+ esac -+} -+ -+# func_basename file -+func_basename () -+{ -+ func_basename_result="${1##*/}" -+} -+ -+# func_dirname_and_basename file append nondir_replacement -+# perform func_basename and func_dirname in a single function -+# call: -+# dirname: Compute the dirname of FILE. If nonempty, -+# add APPEND to the result, otherwise set result -+# to NONDIR_REPLACEMENT. -+# value returned in "$func_dirname_result" -+# basename: Compute filename of FILE. -+# value retuned in "$func_basename_result" -+# Implementation must be kept synchronized with func_dirname -+# and func_basename. For efficiency, we do not delegate to -+# those functions but instead duplicate the functionality here. -+func_dirname_and_basename () -+{ -+ case ${1} in -+ */*) func_dirname_result="${1%/*}${2}" ;; -+ * ) func_dirname_result="${3}" ;; -+ esac -+ func_basename_result="${1##*/}" -+} -+ -+# func_stripname prefix suffix name -+# strip PREFIX and SUFFIX off of NAME. -+# PREFIX and SUFFIX must not contain globbing or regex special -+# characters, hashes, percent signs, but SUFFIX may contain a leading -+# dot (in which case that matches only a dot). -+func_stripname () -+{ -+ # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are -+ # positional parameters, so assign one to ordinary parameter first. -+ func_stripname_result=${3} -+ func_stripname_result=${func_stripname_result#"${1}"} -+ func_stripname_result=${func_stripname_result%"${2}"} -+} -+ -+# func_opt_split -+func_opt_split () -+{ -+ func_opt_split_opt=${1%%=*} -+ func_opt_split_arg=${1#*=} -+} -+ -+# func_lo2o object -+func_lo2o () -+{ -+ case ${1} in -+ *.lo) func_lo2o_result=${1%.lo}.${objext} ;; -+ *) func_lo2o_result=${1} ;; -+ esac -+} -+ -+# func_xform libobj-or-source -+func_xform () -+{ -+ func_xform_result=${1%.*}.lo -+} -+ -+# func_arith arithmetic-term... -+func_arith () -+{ -+ func_arith_result=$(( $[*] )) -+} -+ -+# func_len string -+# STRING may not start with a hyphen. -+func_len () -+{ -+ func_len_result=${#1} -+} -+ -+_LT_EOF -+ ;; -+ *) # Bourne compatible functions. -+ cat << \_LT_EOF >> "$cfgfile" -+ -+# func_dirname file append nondir_replacement -+# Compute the dirname of FILE. If nonempty, add APPEND to the result, -+# otherwise set result to NONDIR_REPLACEMENT. -+func_dirname () -+{ -+ # Extract subdirectory from the argument. -+ func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"` -+ if test "X$func_dirname_result" = "X${1}"; then -+ func_dirname_result="${3}" -+ else -+ func_dirname_result="$func_dirname_result${2}" -+ fi -+} -+ -+# func_basename file -+func_basename () -+{ -+ func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"` -+} -+ -+dnl func_dirname_and_basename -+dnl A portable version of this function is already defined in general.m4sh -+dnl so there is no need for it here. -+ -+# func_stripname prefix suffix name -+# strip PREFIX and SUFFIX off of NAME. -+# PREFIX and SUFFIX must not contain globbing or regex special -+# characters, hashes, percent signs, but SUFFIX may contain a leading -+# dot (in which case that matches only a dot). -+# func_strip_suffix prefix name -+func_stripname () -+{ -+ case ${2} in -+ .*) func_stripname_result=`$ECHO "X${3}" \ -+ | $Xsed -e "s%^${1}%%" -e "s%\\\\${2}\$%%"`;; -+ *) func_stripname_result=`$ECHO "X${3}" \ -+ | $Xsed -e "s%^${1}%%" -e "s%${2}\$%%"`;; -+ esac -+} -+ -+# sed scripts: -+my_sed_long_opt='1s/^\(-[[^=]]*\)=.*/\1/;q' -+my_sed_long_arg='1s/^-[[^=]]*=//' -+ -+# func_opt_split -+func_opt_split () -+{ -+ func_opt_split_opt=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_opt"` -+ func_opt_split_arg=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_arg"` -+} -+ -+# func_lo2o object -+func_lo2o () -+{ -+ func_lo2o_result=`$ECHO "X${1}" | $Xsed -e "$lo2o"` -+} -+ -+# func_xform libobj-or-source -+func_xform () -+{ -+ func_xform_result=`$ECHO "X${1}" | $Xsed -e 's/\.[[^.]]*$/.lo/'` -+} -+ -+# func_arith arithmetic-term... -+func_arith () -+{ -+ func_arith_result=`expr "$[@]"` -+} -+ -+# func_len string -+# STRING may not start with a hyphen. -+func_len () -+{ -+ func_len_result=`expr "$[1]" : ".*" 2>/dev/null || echo $max_cmd_len` -+} -+ -+_LT_EOF -+esac -+ -+case $lt_shell_append in -+ yes) -+ cat << \_LT_EOF >> "$cfgfile" -+ -+# func_append var value -+# Append VALUE to the end of shell variable VAR. -+func_append () -+{ -+ eval "$[1]+=\$[2]" -+} -+_LT_EOF -+ ;; -+ *) -+ cat << \_LT_EOF >> "$cfgfile" -+ -+# func_append var value -+# Append VALUE to the end of shell variable VAR. -+func_append () -+{ -+ eval "$[1]=\$$[1]\$[2]" -+} -+ -+_LT_EOF -+ ;; -+ esac -+]) -diff -Naur libva-0.31.0/m4/lt~obsolete.m4 libva-0.31.0.patch/m4/lt~obsolete.m4 ---- libva-0.31.0/m4/lt~obsolete.m4 1970-01-01 01:00:00.000000000 +0100 -+++ libva-0.31.0.patch/m4/lt~obsolete.m4 2009-10-19 14:20:15.000000000 +0200 -@@ -0,0 +1,92 @@ -+# lt~obsolete.m4 -- aclocal satisfying obsolete definitions. -*-Autoconf-*- -+# -+# Copyright (C) 2004, 2005, 2007 Free Software Foundation, Inc. -+# Written by Scott James Remnant, 2004. -+# -+# This file is free software; the Free Software Foundation gives -+# unlimited permission to copy and/or distribute it, with or without -+# modifications, as long as this notice is preserved. -+ -+# serial 4 lt~obsolete.m4 -+ -+# These exist entirely to fool aclocal when bootstrapping libtool. -+# -+# In the past libtool.m4 has provided macros via AC_DEFUN (or AU_DEFUN) -+# which have later been changed to m4_define as they aren't part of the -+# exported API, or moved to Autoconf or Automake where they belong. -+# -+# The trouble is, aclocal is a bit thick. It'll see the old AC_DEFUN -+# in /usr/share/aclocal/libtool.m4 and remember it, then when it sees us -+# using a macro with the same name in our local m4/libtool.m4 it'll -+# pull the old libtool.m4 in (it doesn't see our shiny new m4_define -+# and doesn't know about Autoconf macros at all.) -+# -+# So we provide this file, which has a silly filename so it's always -+# included after everything else. This provides aclocal with the -+# AC_DEFUNs it wants, but when m4 processes it, it doesn't do anything -+# because those macros already exist, or will be overwritten later. -+# We use AC_DEFUN over AU_DEFUN for compatibility with aclocal-1.6. -+# -+# Anytime we withdraw an AC_DEFUN or AU_DEFUN, remember to add it here. -+# Yes, that means every name once taken will need to remain here until -+# we give up compatibility with versions before 1.7, at which point -+# we need to keep only those names which we still refer to. -+ -+# This is to help aclocal find these macros, as it can't see m4_define. -+AC_DEFUN([LTOBSOLETE_VERSION], [m4_if([1])]) -+ -+m4_ifndef([AC_LIBTOOL_LINKER_OPTION], [AC_DEFUN([AC_LIBTOOL_LINKER_OPTION])]) -+m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP])]) -+m4_ifndef([_LT_AC_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH])]) -+m4_ifndef([_LT_AC_SHELL_INIT], [AC_DEFUN([_LT_AC_SHELL_INIT])]) -+m4_ifndef([_LT_AC_SYS_LIBPATH_AIX], [AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX])]) -+m4_ifndef([_LT_PROG_LTMAIN], [AC_DEFUN([_LT_PROG_LTMAIN])]) -+m4_ifndef([_LT_AC_TAGVAR], [AC_DEFUN([_LT_AC_TAGVAR])]) -+m4_ifndef([AC_LTDL_ENABLE_INSTALL], [AC_DEFUN([AC_LTDL_ENABLE_INSTALL])]) -+m4_ifndef([AC_LTDL_PREOPEN], [AC_DEFUN([AC_LTDL_PREOPEN])]) -+m4_ifndef([_LT_AC_SYS_COMPILER], [AC_DEFUN([_LT_AC_SYS_COMPILER])]) -+m4_ifndef([_LT_AC_LOCK], [AC_DEFUN([_LT_AC_LOCK])]) -+m4_ifndef([AC_LIBTOOL_SYS_OLD_ARCHIVE], [AC_DEFUN([AC_LIBTOOL_SYS_OLD_ARCHIVE])]) -+m4_ifndef([_LT_AC_TRY_DLOPEN_SELF], [AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF])]) -+m4_ifndef([AC_LIBTOOL_PROG_CC_C_O], [AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O])]) -+m4_ifndef([AC_LIBTOOL_SYS_HARD_LINK_LOCKS], [AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS])]) -+m4_ifndef([AC_LIBTOOL_OBJDIR], [AC_DEFUN([AC_LIBTOOL_OBJDIR])]) -+m4_ifndef([AC_LTDL_OBJDIR], [AC_DEFUN([AC_LTDL_OBJDIR])]) -+m4_ifndef([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH], [AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH])]) -+m4_ifndef([AC_LIBTOOL_SYS_LIB_STRIP], [AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP])]) -+m4_ifndef([AC_PATH_MAGIC], [AC_DEFUN([AC_PATH_MAGIC])]) -+m4_ifndef([AC_PROG_LD_GNU], [AC_DEFUN([AC_PROG_LD_GNU])]) -+m4_ifndef([AC_PROG_LD_RELOAD_FLAG], [AC_DEFUN([AC_PROG_LD_RELOAD_FLAG])]) -+m4_ifndef([AC_DEPLIBS_CHECK_METHOD], [AC_DEFUN([AC_DEPLIBS_CHECK_METHOD])]) -+m4_ifndef([AC_LIBTOOL_PROG_COMPILER_NO_RTTI], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI])]) -+m4_ifndef([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], [AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE])]) -+m4_ifndef([AC_LIBTOOL_PROG_COMPILER_PIC], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC])]) -+m4_ifndef([AC_LIBTOOL_PROG_LD_SHLIBS], [AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS])]) -+m4_ifndef([AC_LIBTOOL_POSTDEP_PREDEP], [AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP])]) -+m4_ifndef([LT_AC_PROG_EGREP], [AC_DEFUN([LT_AC_PROG_EGREP])]) -+m4_ifndef([LT_AC_PROG_SED], [AC_DEFUN([LT_AC_PROG_SED])]) -+m4_ifndef([_LT_CC_BASENAME], [AC_DEFUN([_LT_CC_BASENAME])]) -+m4_ifndef([_LT_COMPILER_BOILERPLATE], [AC_DEFUN([_LT_COMPILER_BOILERPLATE])]) -+m4_ifndef([_LT_LINKER_BOILERPLATE], [AC_DEFUN([_LT_LINKER_BOILERPLATE])]) -+m4_ifndef([_AC_PROG_LIBTOOL], [AC_DEFUN([_AC_PROG_LIBTOOL])]) -+m4_ifndef([AC_LIBTOOL_SETUP], [AC_DEFUN([AC_LIBTOOL_SETUP])]) -+m4_ifndef([_LT_AC_CHECK_DLFCN], [AC_DEFUN([_LT_AC_CHECK_DLFCN])]) -+m4_ifndef([AC_LIBTOOL_SYS_DYNAMIC_LINKER], [AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER])]) -+m4_ifndef([_LT_AC_TAGCONFIG], [AC_DEFUN([_LT_AC_TAGCONFIG])]) -+m4_ifndef([AC_DISABLE_FAST_INSTALL], [AC_DEFUN([AC_DISABLE_FAST_INSTALL])]) -+m4_ifndef([_LT_AC_LANG_CXX], [AC_DEFUN([_LT_AC_LANG_CXX])]) -+m4_ifndef([_LT_AC_LANG_F77], [AC_DEFUN([_LT_AC_LANG_F77])]) -+m4_ifndef([_LT_AC_LANG_GCJ], [AC_DEFUN([_LT_AC_LANG_GCJ])]) -+m4_ifndef([AC_LIBTOOL_RC], [AC_DEFUN([AC_LIBTOOL_RC])]) -+m4_ifndef([AC_LIBTOOL_LANG_C_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG])]) -+m4_ifndef([_LT_AC_LANG_C_CONFIG], [AC_DEFUN([_LT_AC_LANG_C_CONFIG])]) -+m4_ifndef([AC_LIBTOOL_LANG_CXX_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG])]) -+m4_ifndef([_LT_AC_LANG_CXX_CONFIG], [AC_DEFUN([_LT_AC_LANG_CXX_CONFIG])]) -+m4_ifndef([AC_LIBTOOL_LANG_F77_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG])]) -+m4_ifndef([_LT_AC_LANG_F77_CONFIG], [AC_DEFUN([_LT_AC_LANG_F77_CONFIG])]) -+m4_ifndef([AC_LIBTOOL_LANG_GCJ_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG])]) -+m4_ifndef([_LT_AC_LANG_GCJ_CONFIG], [AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG])]) -+m4_ifndef([AC_LIBTOOL_LANG_RC_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG])]) -+m4_ifndef([_LT_AC_LANG_RC_CONFIG], [AC_DEFUN([_LT_AC_LANG_RC_CONFIG])]) -+m4_ifndef([AC_LIBTOOL_CONFIG], [AC_DEFUN([AC_LIBTOOL_CONFIG])]) -+m4_ifndef([_LT_AC_FILE_LTDLL_C], [AC_DEFUN([_LT_AC_FILE_LTDLL_C])]) -diff -Naur libva-0.31.0/m4/ltoptions.m4 libva-0.31.0.patch/m4/ltoptions.m4 ---- libva-0.31.0/m4/ltoptions.m4 1970-01-01 01:00:00.000000000 +0100 -+++ libva-0.31.0.patch/m4/ltoptions.m4 2009-10-19 14:20:15.000000000 +0200 -@@ -0,0 +1,368 @@ -+# Helper functions for option handling. -*- Autoconf -*- -+# -+# Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc. -+# Written by Gary V. Vaughan, 2004 -+# -+# This file is free software; the Free Software Foundation gives -+# unlimited permission to copy and/or distribute it, with or without -+# modifications, as long as this notice is preserved. -+ -+# serial 6 ltoptions.m4 -+ -+# This is to help aclocal find these macros, as it can't see m4_define. -+AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])]) -+ -+ -+# _LT_MANGLE_OPTION(MACRO-NAME, OPTION-NAME) -+# ------------------------------------------ -+m4_define([_LT_MANGLE_OPTION], -+[[_LT_OPTION_]m4_bpatsubst($1__$2, [[^a-zA-Z0-9_]], [_])]) -+ -+ -+# _LT_SET_OPTION(MACRO-NAME, OPTION-NAME) -+# --------------------------------------- -+# Set option OPTION-NAME for macro MACRO-NAME, and if there is a -+# matching handler defined, dispatch to it. Other OPTION-NAMEs are -+# saved as a flag. -+m4_define([_LT_SET_OPTION], -+[m4_define(_LT_MANGLE_OPTION([$1], [$2]))dnl -+m4_ifdef(_LT_MANGLE_DEFUN([$1], [$2]), -+ _LT_MANGLE_DEFUN([$1], [$2]), -+ [m4_warning([Unknown $1 option `$2'])])[]dnl -+]) -+ -+ -+# _LT_IF_OPTION(MACRO-NAME, OPTION-NAME, IF-SET, [IF-NOT-SET]) -+# ------------------------------------------------------------ -+# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. -+m4_define([_LT_IF_OPTION], -+[m4_ifdef(_LT_MANGLE_OPTION([$1], [$2]), [$3], [$4])]) -+ -+ -+# _LT_UNLESS_OPTIONS(MACRO-NAME, OPTION-LIST, IF-NOT-SET) -+# ------------------------------------------------------- -+# Execute IF-NOT-SET unless all options in OPTION-LIST for MACRO-NAME -+# are set. -+m4_define([_LT_UNLESS_OPTIONS], -+[m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), -+ [m4_ifdef(_LT_MANGLE_OPTION([$1], _LT_Option), -+ [m4_define([$0_found])])])[]dnl -+m4_ifdef([$0_found], [m4_undefine([$0_found])], [$3 -+])[]dnl -+]) -+ -+ -+# _LT_SET_OPTIONS(MACRO-NAME, OPTION-LIST) -+# ---------------------------------------- -+# OPTION-LIST is a space-separated list of Libtool options associated -+# with MACRO-NAME. If any OPTION has a matching handler declared with -+# LT_OPTION_DEFINE, dispatch to that macro; otherwise complain about -+# the unknown option and exit. -+m4_defun([_LT_SET_OPTIONS], -+[# Set options -+m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), -+ [_LT_SET_OPTION([$1], _LT_Option)]) -+ -+m4_if([$1],[LT_INIT],[ -+ dnl -+ dnl Simply set some default values (i.e off) if boolean options were not -+ dnl specified: -+ _LT_UNLESS_OPTIONS([LT_INIT], [dlopen], [enable_dlopen=no -+ ]) -+ _LT_UNLESS_OPTIONS([LT_INIT], [win32-dll], [enable_win32_dll=no -+ ]) -+ dnl -+ dnl If no reference was made to various pairs of opposing options, then -+ dnl we run the default mode handler for the pair. For example, if neither -+ dnl `shared' nor `disable-shared' was passed, we enable building of shared -+ dnl archives by default: -+ _LT_UNLESS_OPTIONS([LT_INIT], [shared disable-shared], [_LT_ENABLE_SHARED]) -+ _LT_UNLESS_OPTIONS([LT_INIT], [static disable-static], [_LT_ENABLE_STATIC]) -+ _LT_UNLESS_OPTIONS([LT_INIT], [pic-only no-pic], [_LT_WITH_PIC]) -+ _LT_UNLESS_OPTIONS([LT_INIT], [fast-install disable-fast-install], -+ [_LT_ENABLE_FAST_INSTALL]) -+ ]) -+])# _LT_SET_OPTIONS -+ -+ -+## --------------------------------- ## -+## Macros to handle LT_INIT options. ## -+## --------------------------------- ## -+ -+# _LT_MANGLE_DEFUN(MACRO-NAME, OPTION-NAME) -+# ----------------------------------------- -+m4_define([_LT_MANGLE_DEFUN], -+[[_LT_OPTION_DEFUN_]m4_bpatsubst(m4_toupper([$1__$2]), [[^A-Z0-9_]], [_])]) -+ -+ -+# LT_OPTION_DEFINE(MACRO-NAME, OPTION-NAME, CODE) -+# ----------------------------------------------- -+m4_define([LT_OPTION_DEFINE], -+[m4_define(_LT_MANGLE_DEFUN([$1], [$2]), [$3])[]dnl -+])# LT_OPTION_DEFINE -+ -+ -+# dlopen -+# ------ -+LT_OPTION_DEFINE([LT_INIT], [dlopen], [enable_dlopen=yes -+]) -+ -+AU_DEFUN([AC_LIBTOOL_DLOPEN], -+[_LT_SET_OPTION([LT_INIT], [dlopen]) -+AC_DIAGNOSE([obsolete], -+[$0: Remove this warning and the call to _LT_SET_OPTION when you -+put the `dlopen' option into LT_INIT's first parameter.]) -+]) -+ -+dnl aclocal-1.4 backwards compatibility: -+dnl AC_DEFUN([AC_LIBTOOL_DLOPEN], []) -+ -+ -+# win32-dll -+# --------- -+# Declare package support for building win32 dll's. -+LT_OPTION_DEFINE([LT_INIT], [win32-dll], -+[enable_win32_dll=yes -+ -+case $host in -+*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-cegcc*) -+ AC_CHECK_TOOL(AS, as, false) -+ AC_CHECK_TOOL(DLLTOOL, dlltool, false) -+ AC_CHECK_TOOL(OBJDUMP, objdump, false) -+ ;; -+esac -+ -+test -z "$AS" && AS=as -+_LT_DECL([], [AS], [0], [Assembler program])dnl -+ -+test -z "$DLLTOOL" && DLLTOOL=dlltool -+_LT_DECL([], [DLLTOOL], [0], [DLL creation program])dnl -+ -+test -z "$OBJDUMP" && OBJDUMP=objdump -+_LT_DECL([], [OBJDUMP], [0], [Object dumper program])dnl -+])# win32-dll -+ -+AU_DEFUN([AC_LIBTOOL_WIN32_DLL], -+[AC_REQUIRE([AC_CANONICAL_HOST])dnl -+_LT_SET_OPTION([LT_INIT], [win32-dll]) -+AC_DIAGNOSE([obsolete], -+[$0: Remove this warning and the call to _LT_SET_OPTION when you -+put the `win32-dll' option into LT_INIT's first parameter.]) -+]) -+ -+dnl aclocal-1.4 backwards compatibility: -+dnl AC_DEFUN([AC_LIBTOOL_WIN32_DLL], []) -+ -+ -+# _LT_ENABLE_SHARED([DEFAULT]) -+# ---------------------------- -+# implement the --enable-shared flag, and supports the `shared' and -+# `disable-shared' LT_INIT options. -+# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. -+m4_define([_LT_ENABLE_SHARED], -+[m4_define([_LT_ENABLE_SHARED_DEFAULT], [m4_if($1, no, no, yes)])dnl -+AC_ARG_ENABLE([shared], -+ [AS_HELP_STRING([--enable-shared@<:@=PKGS@:>@], -+ [build shared libraries @<:@default=]_LT_ENABLE_SHARED_DEFAULT[@:>@])], -+ [p=${PACKAGE-default} -+ case $enableval in -+ yes) enable_shared=yes ;; -+ no) enable_shared=no ;; -+ *) -+ enable_shared=no -+ # Look at the argument we got. We use all the common list separators. -+ lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," -+ for pkg in $enableval; do -+ IFS="$lt_save_ifs" -+ if test "X$pkg" = "X$p"; then -+ enable_shared=yes -+ fi -+ done -+ IFS="$lt_save_ifs" -+ ;; -+ esac], -+ [enable_shared=]_LT_ENABLE_SHARED_DEFAULT) -+ -+ _LT_DECL([build_libtool_libs], [enable_shared], [0], -+ [Whether or not to build shared libraries]) -+])# _LT_ENABLE_SHARED -+ -+LT_OPTION_DEFINE([LT_INIT], [shared], [_LT_ENABLE_SHARED([yes])]) -+LT_OPTION_DEFINE([LT_INIT], [disable-shared], [_LT_ENABLE_SHARED([no])]) -+ -+# Old names: -+AC_DEFUN([AC_ENABLE_SHARED], -+[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[shared]) -+]) -+ -+AC_DEFUN([AC_DISABLE_SHARED], -+[_LT_SET_OPTION([LT_INIT], [disable-shared]) -+]) -+ -+AU_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)]) -+AU_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)]) -+ -+dnl aclocal-1.4 backwards compatibility: -+dnl AC_DEFUN([AM_ENABLE_SHARED], []) -+dnl AC_DEFUN([AM_DISABLE_SHARED], []) -+ -+ -+ -+# _LT_ENABLE_STATIC([DEFAULT]) -+# ---------------------------- -+# implement the --enable-static flag, and support the `static' and -+# `disable-static' LT_INIT options. -+# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. -+m4_define([_LT_ENABLE_STATIC], -+[m4_define([_LT_ENABLE_STATIC_DEFAULT], [m4_if($1, no, no, yes)])dnl -+AC_ARG_ENABLE([static], -+ [AS_HELP_STRING([--enable-static@<:@=PKGS@:>@], -+ [build static libraries @<:@default=]_LT_ENABLE_STATIC_DEFAULT[@:>@])], -+ [p=${PACKAGE-default} -+ case $enableval in -+ yes) enable_static=yes ;; -+ no) enable_static=no ;; -+ *) -+ enable_static=no -+ # Look at the argument we got. We use all the common list separators. -+ lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," -+ for pkg in $enableval; do -+ IFS="$lt_save_ifs" -+ if test "X$pkg" = "X$p"; then -+ enable_static=yes -+ fi -+ done -+ IFS="$lt_save_ifs" -+ ;; -+ esac], -+ [enable_static=]_LT_ENABLE_STATIC_DEFAULT) -+ -+ _LT_DECL([build_old_libs], [enable_static], [0], -+ [Whether or not to build static libraries]) -+])# _LT_ENABLE_STATIC -+ -+LT_OPTION_DEFINE([LT_INIT], [static], [_LT_ENABLE_STATIC([yes])]) -+LT_OPTION_DEFINE([LT_INIT], [disable-static], [_LT_ENABLE_STATIC([no])]) -+ -+# Old names: -+AC_DEFUN([AC_ENABLE_STATIC], -+[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[static]) -+]) -+ -+AC_DEFUN([AC_DISABLE_STATIC], -+[_LT_SET_OPTION([LT_INIT], [disable-static]) -+]) -+ -+AU_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)]) -+AU_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)]) -+ -+dnl aclocal-1.4 backwards compatibility: -+dnl AC_DEFUN([AM_ENABLE_STATIC], []) -+dnl AC_DEFUN([AM_DISABLE_STATIC], []) -+ -+ -+ -+# _LT_ENABLE_FAST_INSTALL([DEFAULT]) -+# ---------------------------------- -+# implement the --enable-fast-install flag, and support the `fast-install' -+# and `disable-fast-install' LT_INIT options. -+# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. -+m4_define([_LT_ENABLE_FAST_INSTALL], -+[m4_define([_LT_ENABLE_FAST_INSTALL_DEFAULT], [m4_if($1, no, no, yes)])dnl -+AC_ARG_ENABLE([fast-install], -+ [AS_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@], -+ [optimize for fast installation @<:@default=]_LT_ENABLE_FAST_INSTALL_DEFAULT[@:>@])], -+ [p=${PACKAGE-default} -+ case $enableval in -+ yes) enable_fast_install=yes ;; -+ no) enable_fast_install=no ;; -+ *) -+ enable_fast_install=no -+ # Look at the argument we got. We use all the common list separators. -+ lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," -+ for pkg in $enableval; do -+ IFS="$lt_save_ifs" -+ if test "X$pkg" = "X$p"; then -+ enable_fast_install=yes -+ fi -+ done -+ IFS="$lt_save_ifs" -+ ;; -+ esac], -+ [enable_fast_install=]_LT_ENABLE_FAST_INSTALL_DEFAULT) -+ -+_LT_DECL([fast_install], [enable_fast_install], [0], -+ [Whether or not to optimize for fast installation])dnl -+])# _LT_ENABLE_FAST_INSTALL -+ -+LT_OPTION_DEFINE([LT_INIT], [fast-install], [_LT_ENABLE_FAST_INSTALL([yes])]) -+LT_OPTION_DEFINE([LT_INIT], [disable-fast-install], [_LT_ENABLE_FAST_INSTALL([no])]) -+ -+# Old names: -+AU_DEFUN([AC_ENABLE_FAST_INSTALL], -+[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install]) -+AC_DIAGNOSE([obsolete], -+[$0: Remove this warning and the call to _LT_SET_OPTION when you put -+the `fast-install' option into LT_INIT's first parameter.]) -+]) -+ -+AU_DEFUN([AC_DISABLE_FAST_INSTALL], -+[_LT_SET_OPTION([LT_INIT], [disable-fast-install]) -+AC_DIAGNOSE([obsolete], -+[$0: Remove this warning and the call to _LT_SET_OPTION when you put -+the `disable-fast-install' option into LT_INIT's first parameter.]) -+]) -+ -+dnl aclocal-1.4 backwards compatibility: -+dnl AC_DEFUN([AC_ENABLE_FAST_INSTALL], []) -+dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], []) -+ -+ -+# _LT_WITH_PIC([MODE]) -+# -------------------- -+# implement the --with-pic flag, and support the `pic-only' and `no-pic' -+# LT_INIT options. -+# MODE is either `yes' or `no'. If omitted, it defaults to `both'. -+m4_define([_LT_WITH_PIC], -+[AC_ARG_WITH([pic], -+ [AS_HELP_STRING([--with-pic], -+ [try to use only PIC/non-PIC objects @<:@default=use both@:>@])], -+ [pic_mode="$withval"], -+ [pic_mode=default]) -+ -+test -z "$pic_mode" && pic_mode=m4_default([$1], [default]) -+ -+_LT_DECL([], [pic_mode], [0], [What type of objects to build])dnl -+])# _LT_WITH_PIC -+ -+LT_OPTION_DEFINE([LT_INIT], [pic-only], [_LT_WITH_PIC([yes])]) -+LT_OPTION_DEFINE([LT_INIT], [no-pic], [_LT_WITH_PIC([no])]) -+ -+# Old name: -+AU_DEFUN([AC_LIBTOOL_PICMODE], -+[_LT_SET_OPTION([LT_INIT], [pic-only]) -+AC_DIAGNOSE([obsolete], -+[$0: Remove this warning and the call to _LT_SET_OPTION when you -+put the `pic-only' option into LT_INIT's first parameter.]) -+]) -+ -+dnl aclocal-1.4 backwards compatibility: -+dnl AC_DEFUN([AC_LIBTOOL_PICMODE], []) -+ -+## ----------------- ## -+## LTDL_INIT Options ## -+## ----------------- ## -+ -+m4_define([_LTDL_MODE], []) -+LT_OPTION_DEFINE([LTDL_INIT], [nonrecursive], -+ [m4_define([_LTDL_MODE], [nonrecursive])]) -+LT_OPTION_DEFINE([LTDL_INIT], [recursive], -+ [m4_define([_LTDL_MODE], [recursive])]) -+LT_OPTION_DEFINE([LTDL_INIT], [subproject], -+ [m4_define([_LTDL_MODE], [subproject])]) -+ -+m4_define([_LTDL_TYPE], []) -+LT_OPTION_DEFINE([LTDL_INIT], [installable], -+ [m4_define([_LTDL_TYPE], [installable])]) -+LT_OPTION_DEFINE([LTDL_INIT], [convenience], -+ [m4_define([_LTDL_TYPE], [convenience])]) -diff -Naur libva-0.31.0/m4/ltsugar.m4 libva-0.31.0.patch/m4/ltsugar.m4 ---- libva-0.31.0/m4/ltsugar.m4 1970-01-01 01:00:00.000000000 +0100 -+++ libva-0.31.0.patch/m4/ltsugar.m4 2009-10-19 14:20:15.000000000 +0200 -@@ -0,0 +1,123 @@ -+# ltsugar.m4 -- libtool m4 base layer. -*-Autoconf-*- -+# -+# Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc. -+# Written by Gary V. Vaughan, 2004 -+# -+# This file is free software; the Free Software Foundation gives -+# unlimited permission to copy and/or distribute it, with or without -+# modifications, as long as this notice is preserved. -+ -+# serial 6 ltsugar.m4 -+ -+# This is to help aclocal find these macros, as it can't see m4_define. -+AC_DEFUN([LTSUGAR_VERSION], [m4_if([0.1])]) -+ -+ -+# lt_join(SEP, ARG1, [ARG2...]) -+# ----------------------------- -+# Produce ARG1SEPARG2...SEPARGn, omitting [] arguments and their -+# associated separator. -+# Needed until we can rely on m4_join from Autoconf 2.62, since all earlier -+# versions in m4sugar had bugs. -+m4_define([lt_join], -+[m4_if([$#], [1], [], -+ [$#], [2], [[$2]], -+ [m4_if([$2], [], [], [[$2]_])$0([$1], m4_shift(m4_shift($@)))])]) -+m4_define([_lt_join], -+[m4_if([$#$2], [2], [], -+ [m4_if([$2], [], [], [[$1$2]])$0([$1], m4_shift(m4_shift($@)))])]) -+ -+ -+# lt_car(LIST) -+# lt_cdr(LIST) -+# ------------ -+# Manipulate m4 lists. -+# These macros are necessary as long as will still need to support -+# Autoconf-2.59 which quotes differently. -+m4_define([lt_car], [[$1]]) -+m4_define([lt_cdr], -+[m4_if([$#], 0, [m4_fatal([$0: cannot be called without arguments])], -+ [$#], 1, [], -+ [m4_dquote(m4_shift($@))])]) -+m4_define([lt_unquote], $1) -+ -+ -+# lt_append(MACRO-NAME, STRING, [SEPARATOR]) -+# ------------------------------------------ -+# Redefine MACRO-NAME to hold its former content plus `SEPARATOR'`STRING'. -+# Note that neither SEPARATOR nor STRING are expanded; they are appended -+# to MACRO-NAME as is (leaving the expansion for when MACRO-NAME is invoked). -+# No SEPARATOR is output if MACRO-NAME was previously undefined (different -+# than defined and empty). -+# -+# This macro is needed until we can rely on Autoconf 2.62, since earlier -+# versions of m4sugar mistakenly expanded SEPARATOR but not STRING. -+m4_define([lt_append], -+[m4_define([$1], -+ m4_ifdef([$1], [m4_defn([$1])[$3]])[$2])]) -+ -+ -+ -+# lt_combine(SEP, PREFIX-LIST, INFIX, SUFFIX1, [SUFFIX2...]) -+# ---------------------------------------------------------- -+# Produce a SEP delimited list of all paired combinations of elements of -+# PREFIX-LIST with SUFFIX1 through SUFFIXn. Each element of the list -+# has the form PREFIXmINFIXSUFFIXn. -+# Needed until we can rely on m4_combine added in Autoconf 2.62. -+m4_define([lt_combine], -+[m4_if(m4_eval([$# > 3]), [1], -+ [m4_pushdef([_Lt_sep], [m4_define([_Lt_sep], m4_defn([lt_car]))])]]dnl -+[[m4_foreach([_Lt_prefix], [$2], -+ [m4_foreach([_Lt_suffix], -+ ]m4_dquote(m4_dquote(m4_shift(m4_shift(m4_shift($@)))))[, -+ [_Lt_sep([$1])[]m4_defn([_Lt_prefix])[$3]m4_defn([_Lt_suffix])])])])]) -+ -+ -+# lt_if_append_uniq(MACRO-NAME, VARNAME, [SEPARATOR], [UNIQ], [NOT-UNIQ]) -+# ----------------------------------------------------------------------- -+# Iff MACRO-NAME does not yet contain VARNAME, then append it (delimited -+# by SEPARATOR if supplied) and expand UNIQ, else NOT-UNIQ. -+m4_define([lt_if_append_uniq], -+[m4_ifdef([$1], -+ [m4_if(m4_index([$3]m4_defn([$1])[$3], [$3$2$3]), [-1], -+ [lt_append([$1], [$2], [$3])$4], -+ [$5])], -+ [lt_append([$1], [$2], [$3])$4])]) -+ -+ -+# lt_dict_add(DICT, KEY, VALUE) -+# ----------------------------- -+m4_define([lt_dict_add], -+[m4_define([$1($2)], [$3])]) -+ -+ -+# lt_dict_add_subkey(DICT, KEY, SUBKEY, VALUE) -+# -------------------------------------------- -+m4_define([lt_dict_add_subkey], -+[m4_define([$1($2:$3)], [$4])]) -+ -+ -+# lt_dict_fetch(DICT, KEY, [SUBKEY]) -+# ---------------------------------- -+m4_define([lt_dict_fetch], -+[m4_ifval([$3], -+ m4_ifdef([$1($2:$3)], [m4_defn([$1($2:$3)])]), -+ m4_ifdef([$1($2)], [m4_defn([$1($2)])]))]) -+ -+ -+# lt_if_dict_fetch(DICT, KEY, [SUBKEY], VALUE, IF-TRUE, [IF-FALSE]) -+# ----------------------------------------------------------------- -+m4_define([lt_if_dict_fetch], -+[m4_if(lt_dict_fetch([$1], [$2], [$3]), [$4], -+ [$5], -+ [$6])]) -+ -+ -+# lt_dict_filter(DICT, [SUBKEY], VALUE, [SEPARATOR], KEY, [...]) -+# -------------------------------------------------------------- -+m4_define([lt_dict_filter], -+[m4_if([$5], [], [], -+ [lt_join(m4_quote(m4_default([$4], [[, ]])), -+ lt_unquote(m4_split(m4_normalize(m4_foreach(_Lt_key, lt_car([m4_shiftn(4, $@)]), -+ [lt_if_dict_fetch([$1], _Lt_key, [$2], [$3], [_Lt_key ])])))))])[]dnl -+]) -diff -Naur libva-0.31.0/m4/ltversion.m4 libva-0.31.0.patch/m4/ltversion.m4 ---- libva-0.31.0/m4/ltversion.m4 1970-01-01 01:00:00.000000000 +0100 -+++ libva-0.31.0.patch/m4/ltversion.m4 2009-10-19 14:20:15.000000000 +0200 -@@ -0,0 +1,23 @@ -+# ltversion.m4 -- version numbers -*- Autoconf -*- -+# -+# Copyright (C) 2004 Free Software Foundation, Inc. -+# Written by Scott James Remnant, 2004 -+# -+# This file is free software; the Free Software Foundation gives -+# unlimited permission to copy and/or distribute it, with or without -+# modifications, as long as this notice is preserved. -+ -+# Generated from ltversion.in. -+ -+# serial 3012 ltversion.m4 -+# This file is part of GNU Libtool -+ -+m4_define([LT_PACKAGE_VERSION], [2.2.6]) -+m4_define([LT_PACKAGE_REVISION], [1.3012]) -+ -+AC_DEFUN([LTVERSION_VERSION], -+[macro_version='2.2.6' -+macro_revision='1.3012' -+_LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?]) -+_LT_DECL(, macro_revision, 0) -+]) -diff -Naur libva-0.31.0/Makefile.am libva-0.31.0.patch/Makefile.am ---- libva-0.31.0/Makefile.am 2009-09-10 17:18:49.000000000 +0200 -+++ libva-0.31.0.patch/Makefile.am 2009-12-15 13:51:38.186322659 +0100 -@@ -21,6 +21,7 @@ - # SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - - AUTOMAKE_OPTIONS = foreign -+ACLOCAL_AMFLAGS = -I m4 - - SUBDIRS = src test - if BUILD_DUMMY_DRIVER -@@ -32,10 +33,13 @@ - - pcfiles = libva.pc - pcfiles += libva-x11.pc -+if USE_GLX -+pcfiles += libva-glx.pc -+endif - - pkgconfigdir = @pkgconfigdir@ - pkgconfig_DATA = $(pcfiles) - --EXTRA_DIST = libva.pc.in libva-x11.pc.in -+EXTRA_DIST = libva.pc.in libva-x11.pc.in libva-glx.pc.in - - CLEANFILES = $(pcfiles) -diff -Naur libva-0.31.0/Makefile.in libva-0.31.0.patch/Makefile.in ---- libva-0.31.0/Makefile.in 2009-09-10 17:18:49.000000000 +0200 -+++ libva-0.31.0.patch/Makefile.in 2009-12-15 13:51:56.532446458 +0100 -@@ -1,8 +1,9 @@ --# Makefile.in generated by automake 1.10.1 from Makefile.am. -+# Makefile.in generated by automake 1.11 from Makefile.am. - # @configure_input@ - - # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, --# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. -+# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -+# Inc. - # This Makefile.in is free software; the Free Software Foundation - # gives unlimited permission to copy and/or distribute it, - # with or without modifications, as long as this notice is preserved. -@@ -38,8 +39,9 @@ - - VPATH = @srcdir@ - pkgdatadir = $(datadir)/@PACKAGE@ --pkglibdir = $(libdir)/@PACKAGE@ - pkgincludedir = $(includedir)/@PACKAGE@ -+pkglibdir = $(libdir)/@PACKAGE@ -+pkglibexecdir = $(libexecdir)/@PACKAGE@ - am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd - install_sh_DATA = $(install_sh) -c -m 644 - install_sh_PROGRAM = $(install_sh) -c -@@ -56,21 +58,26 @@ - host_triplet = @host@ - @BUILD_DUMMY_DRIVER_TRUE@am__append_1 = dummy_drv_video - @BUILD_I965_DRIVER_TRUE@am__append_2 = i965_drv_video -+@USE_GLX_TRUE@am__append_3 = libva-glx.pc - subdir = . - DIST_COMMON = $(am__configure_deps) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in $(srcdir)/config.h.in \ -- $(srcdir)/libva.pc.in $(srcdir)/libva_display.pc.in \ -- $(top_srcdir)/configure COPYING config.guess config.sub \ -- depcomp install-sh ltmain.sh missing -+ $(srcdir)/libva-glx.pc.in $(srcdir)/libva-x11.pc.in \ -+ $(srcdir)/libva.pc.in $(top_srcdir)/configure COPYING \ -+ config.guess config.sub depcomp install-sh ltmain.sh missing - ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 --am__aclocal_m4_deps = $(top_srcdir)/configure.ac -+am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ -+ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ -+ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.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 config.status.lineno - mkinstalldirs = $(install_sh) -d - CONFIG_HEADER = config.h --CONFIG_CLEAN_FILES = libva.pc libva_display.pc -+CONFIG_CLEAN_FILES = libva.pc libva-x11.pc libva-glx.pc -+CONFIG_CLEAN_VPATH_FILES = - SOURCES = - DIST_SOURCES = - RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ -@@ -85,12 +92,29 @@ - $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ - *) f=$$p;; \ - esac; --am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; -+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; -+am__install_max = 40 -+am__nobase_strip_setup = \ -+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` -+am__nobase_strip = \ -+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" -+am__nobase_list = $(am__nobase_strip_setup); \ -+ for p in $$list; do echo "$$p $$p"; done | \ -+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ -+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ -+ if (++n[$$2] == $(am__install_max)) \ -+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ -+ END { for (dir in files) print dir, files[dir] }' -+am__base_list = \ -+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ -+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' - am__installdirs = "$(DESTDIR)$(pkgconfigdir)" --pkgconfigDATA_INSTALL = $(INSTALL_DATA) - DATA = $(pkgconfig_DATA) - RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ - distclean-recursive maintainer-clean-recursive -+AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ -+ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ -+ distdir dist dist-all distcheck - ETAGS = etags - CTAGS = ctags - DIST_SUBDIRS = src test dummy_drv_video i965_drv_video -@@ -98,9 +122,34 @@ - distdir = $(PACKAGE)-$(VERSION) - top_distdir = $(distdir) - am__remove_distdir = \ -- { test ! -d $(distdir) \ -- || { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \ -- && rm -fr $(distdir); }; } -+ { test ! -d "$(distdir)" \ -+ || { find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \ -+ && rm -fr "$(distdir)"; }; } -+am__relativize = \ -+ dir0=`pwd`; \ -+ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ -+ sed_rest='s,^[^/]*/*,,'; \ -+ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ -+ sed_butlast='s,/*[^/]*$$,,'; \ -+ while test -n "$$dir1"; do \ -+ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ -+ if test "$$first" != "."; then \ -+ if test "$$first" = ".."; then \ -+ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ -+ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ -+ else \ -+ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ -+ if test "$$first2" = "$$first"; then \ -+ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ -+ else \ -+ dir2="../$$dir2"; \ -+ fi; \ -+ dir0="$$dir0"/"$$first"; \ -+ fi; \ -+ fi; \ -+ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ -+ done; \ -+ reldir="$$dir2" - DIST_ARCHIVES = $(distdir).tar.gz $(distdir).tar.bz2 - GZIP_ENV = --best - distuninstallcheck_listfiles = find . -type f -print -@@ -117,38 +166,35 @@ - CFLAGS = @CFLAGS@ - CPP = @CPP@ - CPPFLAGS = @CPPFLAGS@ --CXX = @CXX@ --CXXCPP = @CXXCPP@ --CXXDEPMODE = @CXXDEPMODE@ --CXXFLAGS = @CXXFLAGS@ - CYGPATH_W = @CYGPATH_W@ - DEFS = @DEFS@ - DEPDIR = @DEPDIR@ - DRM_CFLAGS = @DRM_CFLAGS@ - DRM_LIBS = @DRM_LIBS@ - DSYMUTIL = @DSYMUTIL@ --ECHO = @ECHO@ -+DUMPBIN = @DUMPBIN@ - ECHO_C = @ECHO_C@ - ECHO_N = @ECHO_N@ - ECHO_T = @ECHO_T@ - EGREP = @EGREP@ - EXEEXT = @EXEEXT@ --F77 = @F77@ --FFLAGS = @FFLAGS@ -+FGREP = @FGREP@ - GEN4ASM_CFLAGS = @GEN4ASM_CFLAGS@ - GEN4ASM_LIBS = @GEN4ASM_LIBS@ -+GL_DEPS_CFLAGS = @GL_DEPS_CFLAGS@ -+GL_DEPS_LIBS = @GL_DEPS_LIBS@ - GREP = @GREP@ - INSTALL = @INSTALL@ - INSTALL_DATA = @INSTALL_DATA@ - INSTALL_PROGRAM = @INSTALL_PROGRAM@ - INSTALL_SCRIPT = @INSTALL_SCRIPT@ - INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -+LD = @LD@ - LDFLAGS = @LDFLAGS@ - LIBOBJS = @LIBOBJS@ - LIBS = @LIBS@ - LIBTOOL = @LIBTOOL@ - LIBVA_CFLAGS = @LIBVA_CFLAGS@ --LIBVA_DISPLAY = @LIBVA_DISPLAY@ - LIBVA_DRIVERS_PATH = @LIBVA_DRIVERS_PATH@ - LIBVA_LIBS = @LIBVA_LIBS@ - LIBVA_LT_LDFLAGS = @LIBVA_LT_LDFLAGS@ -@@ -156,13 +202,19 @@ - LIBVA_MAJOR_VERSION = @LIBVA_MAJOR_VERSION@ - LIBVA_MICRO_VERSION = @LIBVA_MICRO_VERSION@ - LIBVA_MINOR_VERSION = @LIBVA_MINOR_VERSION@ -+LIBVA_SDS_VERSION = @LIBVA_SDS_VERSION@ - LIBVA_VERSION = @LIBVA_VERSION@ -+LIPO = @LIPO@ - LN_S = @LN_S@ - LTLIBOBJS = @LTLIBOBJS@ - MAKEINFO = @MAKEINFO@ - MKDIR_P = @MKDIR_P@ -+NM = @NM@ - NMEDIT = @NMEDIT@ -+OBJDUMP = @OBJDUMP@ - OBJEXT = @OBJEXT@ -+OTOOL = @OTOOL@ -+OTOOL64 = @OTOOL64@ - PACKAGE = @PACKAGE@ - PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ - PACKAGE_NAME = @PACKAGE_NAME@ -@@ -188,8 +240,7 @@ - abs_top_builddir = @abs_top_builddir@ - abs_top_srcdir = @abs_top_srcdir@ - ac_ct_CC = @ac_ct_CC@ --ac_ct_CXX = @ac_ct_CXX@ --ac_ct_F77 = @ac_ct_F77@ -+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ - am__include = @am__include@ - am__leading_dot = @am__leading_dot@ - am__quote = @am__quote@ -@@ -222,6 +273,7 @@ - libvacorelib = @libvacorelib@ - localedir = @localedir@ - localstatedir = @localstatedir@ -+lt_ECHO = @lt_ECHO@ - mandir = @mandir@ - mkdir_p = @mkdir_p@ - oldincludedir = @oldincludedir@ -@@ -235,16 +287,15 @@ - srcdir = @srcdir@ - sysconfdir = @sysconfdir@ - target_alias = @target_alias@ -+top_build_prefix = @top_build_prefix@ - top_builddir = @top_builddir@ - top_srcdir = @top_srcdir@ - AUTOMAKE_OPTIONS = foreign -+ACLOCAL_AMFLAGS = -I m4 - SUBDIRS = src test $(am__append_1) $(am__append_2) --pcfiles = \ -- libva.pc \ -- libva-$(LIBVA_DISPLAY).pc -- -+pcfiles = libva.pc libva-x11.pc $(am__append_3) - pkgconfig_DATA = $(pcfiles) --EXTRA_DIST = libva.pc.in libva_display.pc.in -+EXTRA_DIST = libva.pc.in libva-x11.pc.in libva-glx.pc.in - CLEANFILES = $(pcfiles) - all: config.h - $(MAKE) $(AM_MAKEFLAGS) all-recursive -@@ -256,15 +307,15 @@ - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ -- echo ' cd $(srcdir) && $(AUTOMAKE) --foreign '; \ -- cd $(srcdir) && $(AUTOMAKE) --foreign \ -+ echo ' cd $(srcdir) && $(AUTOMAKE) --foreign'; \ -+ $(am__cd) $(srcdir) && $(AUTOMAKE) --foreign \ - && exit 0; \ - exit 1;; \ - esac; \ - done; \ -- echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \ -- cd $(top_srcdir) && \ -- $(AUTOMAKE) --foreign Makefile -+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \ -+ $(am__cd) $(top_srcdir) && \ -+ $(AUTOMAKE) --foreign Makefile - .PRECIOUS: Makefile - Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ -@@ -280,9 +331,10 @@ - $(SHELL) ./config.status --recheck - - $(top_srcdir)/configure: $(am__configure_deps) -- cd $(srcdir) && $(AUTOCONF) -+ $(am__cd) $(srcdir) && $(AUTOCONF) - $(ACLOCAL_M4): $(am__aclocal_m4_deps) -- cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) -+ $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) -+$(am__aclocal_m4_deps): - - config.h: stamp-h1 - @if test ! -f $@; then \ -@@ -294,7 +346,7 @@ - @rm -f stamp-h1 - cd $(top_builddir) && $(SHELL) ./config.status config.h - $(srcdir)/config.h.in: $(am__configure_deps) -- cd $(top_srcdir) && $(AUTOHEADER) -+ ($(am__cd) $(top_srcdir) && $(AUTOHEADER)) - rm -f stamp-h1 - touch $@ - -@@ -302,7 +354,9 @@ - -rm -f config.h stamp-h1 - libva.pc: $(top_builddir)/config.status $(srcdir)/libva.pc.in - cd $(top_builddir) && $(SHELL) ./config.status $@ --libva_display.pc: $(top_builddir)/config.status $(srcdir)/libva_display.pc.in -+libva-x11.pc: $(top_builddir)/config.status $(srcdir)/libva-x11.pc.in -+ cd $(top_builddir) && $(SHELL) ./config.status $@ -+libva-glx.pc: $(top_builddir)/config.status $(srcdir)/libva-glx.pc.in - cd $(top_builddir) && $(SHELL) ./config.status $@ - - mostlyclean-libtool: -@@ -312,24 +366,27 @@ - -rm -rf .libs _libs - - distclean-libtool: -- -rm -f libtool -+ -rm -f libtool config.lt - install-pkgconfigDATA: $(pkgconfig_DATA) - @$(NORMAL_INSTALL) - test -z "$(pkgconfigdir)" || $(MKDIR_P) "$(DESTDIR)$(pkgconfigdir)" -- @list='$(pkgconfig_DATA)'; for p in $$list; do \ -+ @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \ -+ for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ -- f=$(am__strip_dir) \ -- echo " $(pkgconfigDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(pkgconfigdir)/$$f'"; \ -- $(pkgconfigDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(pkgconfigdir)/$$f"; \ -+ echo "$$d$$p"; \ -+ done | $(am__base_list) | \ -+ while read files; do \ -+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pkgconfigdir)'"; \ -+ $(INSTALL_DATA) $$files "$(DESTDIR)$(pkgconfigdir)" || exit $$?; \ - done - - uninstall-pkgconfigDATA: - @$(NORMAL_UNINSTALL) -- @list='$(pkgconfig_DATA)'; for p in $$list; do \ -- f=$(am__strip_dir) \ -- echo " rm -f '$(DESTDIR)$(pkgconfigdir)/$$f'"; \ -- rm -f "$(DESTDIR)$(pkgconfigdir)/$$f"; \ -- done -+ @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \ -+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ -+ test -n "$$files" || exit 0; \ -+ echo " ( cd '$(DESTDIR)$(pkgconfigdir)' && rm -f" $$files ")"; \ -+ cd "$(DESTDIR)$(pkgconfigdir)" && rm -f $$files - - # This directory's subdirectories are mostly independent; you can cd - # into them and run `make' without going through this Makefile. -@@ -355,7 +412,7 @@ - else \ - local_target="$$target"; \ - fi; \ -- (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ -+ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ - done; \ - if test "$$dot_seen" = "no"; then \ -@@ -389,16 +446,16 @@ - else \ - local_target="$$target"; \ - fi; \ -- (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ -+ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ - done && test -z "$$fail" - tags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ -- test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ -+ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ - done - ctags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ -- test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ -+ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ - done - - ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) -@@ -406,14 +463,14 @@ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ -- $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \ -+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique - tags: TAGS - - TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) -- tags=; \ -+ set x; \ - here=`pwd`; \ - if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ - include_option=--etags-include; \ -@@ -425,7 +482,7 @@ - list='$(SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - test ! -f $$subdir/TAGS || \ -- tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ -+ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ - fi; \ - done; \ - list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ -@@ -434,36 +491,41 @@ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ -- if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ -+ shift; \ -+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ -- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ -- $$tags $$unique; \ -+ if test $$# -gt 0; then \ -+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ -+ "$$@" $$unique; \ -+ else \ -+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ -+ $$unique; \ -+ fi; \ - fi - ctags: CTAGS - CTAGS: ctags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) -- tags=; \ - list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ -- test -z "$(CTAGS_ARGS)$$tags$$unique" \ -+ test -z "$(CTAGS_ARGS)$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ -- $$tags $$unique -+ $$unique - - GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ -- && cd $(top_srcdir) \ -- && gtags -i $(GTAGS_ARGS) $$here -+ && $(am__cd) $(top_srcdir) \ -+ && gtags -i $(GTAGS_ARGS) "$$here" - - distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - - distdir: $(DISTFILES) - $(am__remove_distdir) -- test -d $(distdir) || mkdir $(distdir) -+ test -d "$(distdir)" || mkdir "$(distdir)" - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ -@@ -479,38 +541,54 @@ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ -+ if test -d "$(distdir)/$$file"; then \ -+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ -+ fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ -- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ -+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ -+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ -- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ -+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ -- test -f $(distdir)/$$file \ -- || cp -p $$d/$$file $(distdir)/$$file \ -+ test -f "$(distdir)/$$file" \ -+ || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done -- list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ -+ @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - test -d "$(distdir)/$$subdir" \ - || $(MKDIR_P) "$(distdir)/$$subdir" \ - || exit 1; \ -- distdir=`$(am__cd) $(distdir) && pwd`; \ -- top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ -- (cd $$subdir && \ -+ fi; \ -+ done -+ @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ -+ if test "$$subdir" = .; then :; else \ -+ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ -+ $(am__relativize); \ -+ new_distdir=$$reldir; \ -+ dir1=$$subdir; dir2="$(top_distdir)"; \ -+ $(am__relativize); \ -+ new_top_distdir=$$reldir; \ -+ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ -+ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ -+ ($(am__cd) $$subdir && \ - $(MAKE) $(AM_MAKEFLAGS) \ -- top_distdir="$$top_distdir" \ -- distdir="$$distdir/$$subdir" \ -+ top_distdir="$$new_top_distdir" \ -+ distdir="$$new_distdir" \ - am__remove_distdir=: \ - am__skip_length_check=: \ -+ am__skip_mode_fix=: \ - distdir) \ - || exit 1; \ - fi; \ - done -- -find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \ -+ -test -n "$(am__skip_mode_fix)" \ -+ || find "$(distdir)" -type d ! -perm -777 -exec chmod a+rwx {} \; -o \ - ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ - ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ - ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \ -- || chmod -R a+r $(distdir) -+ || chmod -R a+r "$(distdir)" - dist-gzip: distdir - tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz - $(am__remove_distdir) -@@ -522,6 +600,10 @@ - tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma - $(am__remove_distdir) - -+dist-xz: distdir -+ tardir=$(distdir) && $(am__tar) | xz -c >$(distdir).tar.xz -+ $(am__remove_distdir) -+ - dist-tarZ: distdir - tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z - $(am__remove_distdir) -@@ -551,6 +633,8 @@ - bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\ - *.tar.lzma*) \ - unlzma -c $(distdir).tar.lzma | $(am__untar) ;;\ -+ *.tar.xz*) \ -+ xz -dc $(distdir).tar.xz | $(am__untar) ;;\ - *.tar.Z*) \ - uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ - *.shar.gz*) \ -@@ -562,9 +646,11 @@ - mkdir $(distdir)/_build - mkdir $(distdir)/_inst - chmod a-w $(distdir) -+ test -d $(distdir)/_build || exit 0; \ - dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ - && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ -- && cd $(distdir)/_build \ -+ && am__cwd=`pwd` \ -+ && $(am__cd) $(distdir)/_build \ - && ../configure --srcdir=.. --prefix="$$dc_install_base" \ - $(DISTCHECK_CONFIGURE_FLAGS) \ - && $(MAKE) $(AM_MAKEFLAGS) \ -@@ -586,13 +672,15 @@ - && rm -rf "$$dc_destdir" \ - && $(MAKE) $(AM_MAKEFLAGS) dist \ - && rm -rf $(DIST_ARCHIVES) \ -- && $(MAKE) $(AM_MAKEFLAGS) distcleancheck -+ && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \ -+ && cd "$$am__cwd" \ -+ || exit 1 - $(am__remove_distdir) - @(echo "$(distdir) archives ready for distribution: "; \ - list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ - sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x' - distuninstallcheck: -- @cd $(distuninstallcheck_dir) \ -+ @$(am__cd) '$(distuninstallcheck_dir)' \ - && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \ - || { echo "ERROR: files left after uninstall:" ; \ - if test -n "$(DESTDIR)"; then \ -@@ -638,6 +726,7 @@ - - distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - - maintainer-clean-generic: - @echo "This command is intended for maintainers to use" -@@ -658,6 +747,8 @@ - - html: html-recursive - -+html-am: -+ - info: info-recursive - - info-am: -@@ -666,18 +757,28 @@ - - install-dvi: install-dvi-recursive - -+install-dvi-am: -+ - install-exec-am: - - install-html: install-html-recursive - -+install-html-am: -+ - install-info: install-info-recursive - -+install-info-am: -+ - install-man: - - install-pdf: install-pdf-recursive - -+install-pdf-am: -+ - install-ps: install-ps-recursive - -+install-ps-am: -+ - installcheck-am: - - maintainer-clean: maintainer-clean-recursive -@@ -700,30 +801,27 @@ - - uninstall-am: uninstall-pkgconfigDATA - --.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \ -- install-strip -+.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) all \ -+ ctags-recursive install-am install-strip tags-recursive - - .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ - all all-am am--refresh check check-am clean clean-generic \ - clean-libtool ctags ctags-recursive dist dist-all dist-bzip2 \ -- dist-gzip dist-lzma dist-shar dist-tarZ dist-zip distcheck \ -- distclean distclean-generic distclean-hdr distclean-libtool \ -- distclean-tags distcleancheck distdir distuninstallcheck dvi \ -- dvi-am html html-am info info-am install install-am \ -- install-data install-data-am install-dvi install-dvi-am \ -- install-exec install-exec-am install-html install-html-am \ -- install-info install-info-am install-man install-pdf \ -- install-pdf-am install-pkgconfigDATA install-ps install-ps-am \ -- install-strip installcheck installcheck-am installdirs \ -- installdirs-am maintainer-clean maintainer-clean-generic \ -- mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ -- ps ps-am tags tags-recursive uninstall uninstall-am \ -- uninstall-pkgconfigDATA -- -- --# libva-.pc - for display-specific dependencies --libva-$(LIBVA_DISPLAY).pc: libva_display.pc -- @cp $< $@ -+ dist-gzip dist-lzma dist-shar dist-tarZ dist-xz dist-zip \ -+ distcheck distclean distclean-generic distclean-hdr \ -+ distclean-libtool distclean-tags distcleancheck distdir \ -+ distuninstallcheck dvi dvi-am html html-am info info-am \ -+ install install-am install-data install-data-am install-dvi \ -+ install-dvi-am install-exec install-exec-am install-html \ -+ install-html-am install-info install-info-am install-man \ -+ install-pdf install-pdf-am install-pkgconfigDATA install-ps \ -+ install-ps-am install-strip installcheck installcheck-am \ -+ installdirs installdirs-am maintainer-clean \ -+ maintainer-clean-generic mostlyclean mostlyclean-generic \ -+ mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \ -+ uninstall uninstall-am uninstall-pkgconfigDATA -+ -+ - # Tell versions [3.59,3.63) of GNU make to not export all variables. - # Otherwise a system limit (for SysV at least) may be exceeded. - .NOEXPORT: -diff -Naur libva-0.31.0/src/glx/Makefile.am libva-0.31.0.patch/src/glx/Makefile.am ---- libva-0.31.0/src/glx/Makefile.am 1970-01-01 01:00:00.000000000 +0100 -+++ libva-0.31.0.patch/src/glx/Makefile.am 2009-12-15 13:45:21.398448562 +0100 -@@ -0,0 +1,41 @@ -+# Copyright (C) 2009 Splitted-Desktop Systems. All Rights Reserved. -+# -+# 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, sub license, 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 PRECISION INSIGHT AND/OR ITS 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. -+ -+AM_CFLAGS = -DLINUX -DIN_LIBVA -I$(top_srcdir)/src -I$(top_srcdir)/src/x11 -+ -+source_c = \ -+ va_glx.c \ -+ va_glx_impl.c -+ -+source_h = \ -+ va_glx.h \ -+ va_backend_glx.h -+ -+source_h_priv = \ -+ va_glx_impl.h \ -+ va_glx_private.h -+ -+noinst_LTLIBRARIES = libva_glx.la -+libva_glxincludedir = ${includedir}/va -+libva_glxinclude_HEADERS = $(source_h) -+libva_glx_la_SOURCES = $(source_c) -+noinst_HEADERS = $(source_h_priv) -diff -Naur libva-0.31.0/src/glx/Makefile.in libva-0.31.0.patch/src/glx/Makefile.in ---- libva-0.31.0/src/glx/Makefile.in 1970-01-01 01:00:00.000000000 +0100 -+++ libva-0.31.0.patch/src/glx/Makefile.in 2009-12-15 13:51:56.201446299 +0100 -@@ -0,0 +1,580 @@ -+# Makefile.in generated by automake 1.11 from Makefile.am. -+# @configure_input@ -+ -+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -+# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -+# Inc. -+# This Makefile.in is free software; the Free Software Foundation -+# gives unlimited permission to copy and/or distribute it, -+# with or without modifications, as long as this notice is preserved. -+ -+# This program is distributed in the hope that it will be useful, -+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -+# PARTICULAR PURPOSE. -+ -+@SET_MAKE@ -+ -+# Copyright (C) 2009 Splitted-Desktop Systems. All Rights Reserved. -+# -+# 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, sub license, 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 PRECISION INSIGHT AND/OR ITS 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. -+ -+ -+VPATH = @srcdir@ -+pkgdatadir = $(datadir)/@PACKAGE@ -+pkgincludedir = $(includedir)/@PACKAGE@ -+pkglibdir = $(libdir)/@PACKAGE@ -+pkglibexecdir = $(libexecdir)/@PACKAGE@ -+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -+install_sh_DATA = $(install_sh) -c -m 644 -+install_sh_PROGRAM = $(install_sh) -c -+install_sh_SCRIPT = $(install_sh) -c -+INSTALL_HEADER = $(INSTALL_DATA) -+transform = $(program_transform_name) -+NORMAL_INSTALL = : -+PRE_INSTALL = : -+POST_INSTALL = : -+NORMAL_UNINSTALL = : -+PRE_UNINSTALL = : -+POST_UNINSTALL = : -+build_triplet = @build@ -+host_triplet = @host@ -+subdir = src/glx -+DIST_COMMON = $(libva_glxinclude_HEADERS) $(noinst_HEADERS) \ -+ $(srcdir)/Makefile.am $(srcdir)/Makefile.in -+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -+am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ -+ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ -+ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ -+ $(top_srcdir)/configure.ac -+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ -+ $(ACLOCAL_M4) -+mkinstalldirs = $(install_sh) -d -+CONFIG_HEADER = $(top_builddir)/config.h -+CONFIG_CLEAN_FILES = -+CONFIG_CLEAN_VPATH_FILES = -+LTLIBRARIES = $(noinst_LTLIBRARIES) -+libva_glx_la_LIBADD = -+am__objects_1 = va_glx.lo va_glx_impl.lo -+am_libva_glx_la_OBJECTS = $(am__objects_1) -+libva_glx_la_OBJECTS = $(am_libva_glx_la_OBJECTS) -+DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) -+depcomp = $(SHELL) $(top_srcdir)/depcomp -+am__depfiles_maybe = depfiles -+am__mv = mv -f -+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ -+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -+LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ -+ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ -+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -+CCLD = $(CC) -+LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ -+ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ -+ $(LDFLAGS) -o $@ -+SOURCES = $(libva_glx_la_SOURCES) -+DIST_SOURCES = $(libva_glx_la_SOURCES) -+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; -+am__vpath_adj = case $$p in \ -+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ -+ *) f=$$p;; \ -+ esac; -+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; -+am__install_max = 40 -+am__nobase_strip_setup = \ -+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` -+am__nobase_strip = \ -+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" -+am__nobase_list = $(am__nobase_strip_setup); \ -+ for p in $$list; do echo "$$p $$p"; done | \ -+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ -+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ -+ if (++n[$$2] == $(am__install_max)) \ -+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ -+ END { for (dir in files) print dir, files[dir] }' -+am__base_list = \ -+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ -+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' -+am__installdirs = "$(DESTDIR)$(libva_glxincludedir)" -+HEADERS = $(libva_glxinclude_HEADERS) $(noinst_HEADERS) -+ETAGS = etags -+CTAGS = ctags -+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -+ACLOCAL = @ACLOCAL@ -+AMTAR = @AMTAR@ -+AR = @AR@ -+AUTOCONF = @AUTOCONF@ -+AUTOHEADER = @AUTOHEADER@ -+AUTOMAKE = @AUTOMAKE@ -+AWK = @AWK@ -+CC = @CC@ -+CCDEPMODE = @CCDEPMODE@ -+CFLAGS = @CFLAGS@ -+CPP = @CPP@ -+CPPFLAGS = @CPPFLAGS@ -+CYGPATH_W = @CYGPATH_W@ -+DEFS = @DEFS@ -+DEPDIR = @DEPDIR@ -+DRM_CFLAGS = @DRM_CFLAGS@ -+DRM_LIBS = @DRM_LIBS@ -+DSYMUTIL = @DSYMUTIL@ -+DUMPBIN = @DUMPBIN@ -+ECHO_C = @ECHO_C@ -+ECHO_N = @ECHO_N@ -+ECHO_T = @ECHO_T@ -+EGREP = @EGREP@ -+EXEEXT = @EXEEXT@ -+FGREP = @FGREP@ -+GEN4ASM_CFLAGS = @GEN4ASM_CFLAGS@ -+GEN4ASM_LIBS = @GEN4ASM_LIBS@ -+GL_DEPS_CFLAGS = @GL_DEPS_CFLAGS@ -+GL_DEPS_LIBS = @GL_DEPS_LIBS@ -+GREP = @GREP@ -+INSTALL = @INSTALL@ -+INSTALL_DATA = @INSTALL_DATA@ -+INSTALL_PROGRAM = @INSTALL_PROGRAM@ -+INSTALL_SCRIPT = @INSTALL_SCRIPT@ -+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -+LD = @LD@ -+LDFLAGS = @LDFLAGS@ -+LIBOBJS = @LIBOBJS@ -+LIBS = @LIBS@ -+LIBTOOL = @LIBTOOL@ -+LIBVA_CFLAGS = @LIBVA_CFLAGS@ -+LIBVA_DRIVERS_PATH = @LIBVA_DRIVERS_PATH@ -+LIBVA_LIBS = @LIBVA_LIBS@ -+LIBVA_LT_LDFLAGS = @LIBVA_LT_LDFLAGS@ -+LIBVA_LT_VERSION = @LIBVA_LT_VERSION@ -+LIBVA_MAJOR_VERSION = @LIBVA_MAJOR_VERSION@ -+LIBVA_MICRO_VERSION = @LIBVA_MICRO_VERSION@ -+LIBVA_MINOR_VERSION = @LIBVA_MINOR_VERSION@ -+LIBVA_SDS_VERSION = @LIBVA_SDS_VERSION@ -+LIBVA_VERSION = @LIBVA_VERSION@ -+LIPO = @LIPO@ -+LN_S = @LN_S@ -+LTLIBOBJS = @LTLIBOBJS@ -+MAKEINFO = @MAKEINFO@ -+MKDIR_P = @MKDIR_P@ -+NM = @NM@ -+NMEDIT = @NMEDIT@ -+OBJDUMP = @OBJDUMP@ -+OBJEXT = @OBJEXT@ -+OTOOL = @OTOOL@ -+OTOOL64 = @OTOOL64@ -+PACKAGE = @PACKAGE@ -+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -+PACKAGE_NAME = @PACKAGE_NAME@ -+PACKAGE_STRING = @PACKAGE_STRING@ -+PACKAGE_TARNAME = @PACKAGE_TARNAME@ -+PACKAGE_VERSION = @PACKAGE_VERSION@ -+PATH_SEPARATOR = @PATH_SEPARATOR@ -+PKG_CONFIG = @PKG_CONFIG@ -+RANLIB = @RANLIB@ -+SED = @SED@ -+SET_MAKE = @SET_MAKE@ -+SHELL = @SHELL@ -+STRIP = @STRIP@ -+VERSION = @VERSION@ -+X11_CFLAGS = @X11_CFLAGS@ -+X11_LIBS = @X11_LIBS@ -+XEXT_CFLAGS = @XEXT_CFLAGS@ -+XEXT_LIBS = @XEXT_LIBS@ -+XFIXES_CFLAGS = @XFIXES_CFLAGS@ -+XFIXES_LIBS = @XFIXES_LIBS@ -+abs_builddir = @abs_builddir@ -+abs_srcdir = @abs_srcdir@ -+abs_top_builddir = @abs_top_builddir@ -+abs_top_srcdir = @abs_top_srcdir@ -+ac_ct_CC = @ac_ct_CC@ -+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -+am__include = @am__include@ -+am__leading_dot = @am__leading_dot@ -+am__quote = @am__quote@ -+am__tar = @am__tar@ -+am__untar = @am__untar@ -+bindir = @bindir@ -+build = @build@ -+build_alias = @build_alias@ -+build_cpu = @build_cpu@ -+build_os = @build_os@ -+build_vendor = @build_vendor@ -+builddir = @builddir@ -+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@ -+libvabackendlib = @libvabackendlib@ -+libvacorelib = @libvacorelib@ -+localedir = @localedir@ -+localstatedir = @localstatedir@ -+lt_ECHO = @lt_ECHO@ -+mandir = @mandir@ -+mkdir_p = @mkdir_p@ -+oldincludedir = @oldincludedir@ -+pdfdir = @pdfdir@ -+pkgconfigdir = @pkgconfigdir@ -+prefix = @prefix@ -+program_transform_name = @program_transform_name@ -+psdir = @psdir@ -+sbindir = @sbindir@ -+sharedstatedir = @sharedstatedir@ -+srcdir = @srcdir@ -+sysconfdir = @sysconfdir@ -+target_alias = @target_alias@ -+top_build_prefix = @top_build_prefix@ -+top_builddir = @top_builddir@ -+top_srcdir = @top_srcdir@ -+AM_CFLAGS = -DLINUX -DIN_LIBVA -I$(top_srcdir)/src -I$(top_srcdir)/src/x11 -+source_c = \ -+ va_glx.c \ -+ va_glx_impl.c -+ -+source_h = \ -+ va_glx.h \ -+ va_backend_glx.h -+ -+source_h_priv = \ -+ va_glx_impl.h \ -+ va_glx_private.h -+ -+noinst_LTLIBRARIES = libva_glx.la -+libva_glxincludedir = ${includedir}/va -+libva_glxinclude_HEADERS = $(source_h) -+libva_glx_la_SOURCES = $(source_c) -+noinst_HEADERS = $(source_h_priv) -+all: all-am -+ -+.SUFFIXES: -+.SUFFIXES: .c .lo .o .obj -+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) -+ @for dep in $?; do \ -+ case '$(am__configure_deps)' in \ -+ *$$dep*) \ -+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ -+ && { if test -f $@; then exit 0; else break; fi; }; \ -+ exit 1;; \ -+ esac; \ -+ done; \ -+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/glx/Makefile'; \ -+ $(am__cd) $(top_srcdir) && \ -+ $(AUTOMAKE) --gnu src/glx/Makefile -+.PRECIOUS: Makefile -+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status -+ @case '$?' in \ -+ *config.status*) \ -+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ -+ *) \ -+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ -+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ -+ esac; -+ -+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) -+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -+ -+$(top_srcdir)/configure: $(am__configure_deps) -+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -+$(ACLOCAL_M4): $(am__aclocal_m4_deps) -+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -+$(am__aclocal_m4_deps): -+ -+clean-noinstLTLIBRARIES: -+ -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) -+ @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ -+ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ -+ test "$$dir" != "$$p" || dir=.; \ -+ echo "rm -f \"$${dir}/so_locations\""; \ -+ rm -f "$${dir}/so_locations"; \ -+ done -+libva_glx.la: $(libva_glx_la_OBJECTS) $(libva_glx_la_DEPENDENCIES) -+ $(LINK) $(libva_glx_la_OBJECTS) $(libva_glx_la_LIBADD) $(LIBS) -+ -+mostlyclean-compile: -+ -rm -f *.$(OBJEXT) -+ -+distclean-compile: -+ -rm -f *.tab.c -+ -+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/va_glx.Plo@am__quote@ -+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/va_glx_impl.Plo@am__quote@ -+ -+.c.o: -+@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -+@am__fastdepCC_FALSE@ $(COMPILE) -c $< -+ -+.c.obj: -+@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -+@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` -+ -+.c.lo: -+@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ -+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -+@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< -+ -+mostlyclean-libtool: -+ -rm -f *.lo -+ -+clean-libtool: -+ -rm -rf .libs _libs -+install-libva_glxincludeHEADERS: $(libva_glxinclude_HEADERS) -+ @$(NORMAL_INSTALL) -+ test -z "$(libva_glxincludedir)" || $(MKDIR_P) "$(DESTDIR)$(libva_glxincludedir)" -+ @list='$(libva_glxinclude_HEADERS)'; test -n "$(libva_glxincludedir)" || list=; \ -+ for p in $$list; do \ -+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ -+ echo "$$d$$p"; \ -+ done | $(am__base_list) | \ -+ while read files; do \ -+ echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(libva_glxincludedir)'"; \ -+ $(INSTALL_HEADER) $$files "$(DESTDIR)$(libva_glxincludedir)" || exit $$?; \ -+ done -+ -+uninstall-libva_glxincludeHEADERS: -+ @$(NORMAL_UNINSTALL) -+ @list='$(libva_glxinclude_HEADERS)'; test -n "$(libva_glxincludedir)" || list=; \ -+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ -+ test -n "$$files" || exit 0; \ -+ echo " ( cd '$(DESTDIR)$(libva_glxincludedir)' && rm -f" $$files ")"; \ -+ cd "$(DESTDIR)$(libva_glxincludedir)" && rm -f $$files -+ -+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) -+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ -+ unique=`for i in $$list; do \ -+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ -+ done | \ -+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ -+ END { if (nonempty) { for (i in files) print i; }; }'`; \ -+ mkid -fID $$unique -+tags: TAGS -+ -+TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ -+ $(TAGS_FILES) $(LISP) -+ set x; \ -+ here=`pwd`; \ -+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ -+ unique=`for i in $$list; do \ -+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ -+ done | \ -+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ -+ END { if (nonempty) { for (i in files) print i; }; }'`; \ -+ shift; \ -+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ -+ test -n "$$unique" || unique=$$empty_fix; \ -+ if test $$# -gt 0; then \ -+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ -+ "$$@" $$unique; \ -+ else \ -+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ -+ $$unique; \ -+ fi; \ -+ fi -+ctags: CTAGS -+CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ -+ $(TAGS_FILES) $(LISP) -+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ -+ unique=`for i in $$list; do \ -+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ -+ done | \ -+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ -+ END { if (nonempty) { for (i in files) print i; }; }'`; \ -+ test -z "$(CTAGS_ARGS)$$unique" \ -+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ -+ $$unique -+ -+GTAGS: -+ here=`$(am__cd) $(top_builddir) && pwd` \ -+ && $(am__cd) $(top_srcdir) \ -+ && gtags -i $(GTAGS_ARGS) "$$here" -+ -+distclean-tags: -+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -+ -+distdir: $(DISTFILES) -+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ -+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ -+ list='$(DISTFILES)'; \ -+ dist_files=`for file in $$list; do echo $$file; done | \ -+ sed -e "s|^$$srcdirstrip/||;t" \ -+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ -+ case $$dist_files in \ -+ */*) $(MKDIR_P) `echo "$$dist_files" | \ -+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ -+ sort -u` ;; \ -+ esac; \ -+ for file in $$dist_files; do \ -+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ -+ if test -d $$d/$$file; then \ -+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ -+ if test -d "$(distdir)/$$file"; then \ -+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ -+ fi; \ -+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ -+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ -+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ -+ fi; \ -+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ -+ else \ -+ test -f "$(distdir)/$$file" \ -+ || cp -p $$d/$$file "$(distdir)/$$file" \ -+ || exit 1; \ -+ fi; \ -+ done -+check-am: all-am -+check: check-am -+all-am: Makefile $(LTLIBRARIES) $(HEADERS) -+installdirs: -+ for dir in "$(DESTDIR)$(libva_glxincludedir)"; do \ -+ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ -+ done -+install: install-am -+install-exec: install-exec-am -+install-data: install-data-am -+uninstall: uninstall-am -+ -+install-am: all-am -+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am -+ -+installcheck: installcheck-am -+install-strip: -+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ -+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ -+ `test -z '$(STRIP)' || \ -+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install -+mostlyclean-generic: -+ -+clean-generic: -+ -+distclean-generic: -+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) -+ -+maintainer-clean-generic: -+ @echo "This command is intended for maintainers to use" -+ @echo "it deletes files that may require special tools to rebuild." -+clean: clean-am -+ -+clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ -+ mostlyclean-am -+ -+distclean: distclean-am -+ -rm -rf ./$(DEPDIR) -+ -rm -f Makefile -+distclean-am: clean-am distclean-compile distclean-generic \ -+ distclean-tags -+ -+dvi: dvi-am -+ -+dvi-am: -+ -+html: html-am -+ -+html-am: -+ -+info: info-am -+ -+info-am: -+ -+install-data-am: install-libva_glxincludeHEADERS -+ -+install-dvi: install-dvi-am -+ -+install-dvi-am: -+ -+install-exec-am: -+ -+install-html: install-html-am -+ -+install-html-am: -+ -+install-info: install-info-am -+ -+install-info-am: -+ -+install-man: -+ -+install-pdf: install-pdf-am -+ -+install-pdf-am: -+ -+install-ps: install-ps-am -+ -+install-ps-am: -+ -+installcheck-am: -+ -+maintainer-clean: maintainer-clean-am -+ -rm -rf ./$(DEPDIR) -+ -rm -f Makefile -+maintainer-clean-am: distclean-am maintainer-clean-generic -+ -+mostlyclean: mostlyclean-am -+ -+mostlyclean-am: mostlyclean-compile mostlyclean-generic \ -+ mostlyclean-libtool -+ -+pdf: pdf-am -+ -+pdf-am: -+ -+ps: ps-am -+ -+ps-am: -+ -+uninstall-am: uninstall-libva_glxincludeHEADERS -+ -+.MAKE: install-am install-strip -+ -+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ -+ clean-libtool clean-noinstLTLIBRARIES ctags distclean \ -+ distclean-compile distclean-generic distclean-libtool \ -+ distclean-tags distdir dvi dvi-am html html-am info info-am \ -+ install install-am install-data install-data-am install-dvi \ -+ install-dvi-am install-exec install-exec-am install-html \ -+ install-html-am install-info install-info-am \ -+ install-libva_glxincludeHEADERS install-man install-pdf \ -+ install-pdf-am install-ps install-ps-am install-strip \ -+ installcheck installcheck-am installdirs maintainer-clean \ -+ maintainer-clean-generic mostlyclean mostlyclean-compile \ -+ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ -+ tags uninstall uninstall-am uninstall-libva_glxincludeHEADERS -+ -+ -+# Tell versions [3.59,3.63) of GNU make to not export all variables. -+# Otherwise a system limit (for SysV at least) may be exceeded. -+.NOEXPORT: -diff -Naur libva-0.31.0/src/glx/va_backend_glx.h libva-0.31.0.patch/src/glx/va_backend_glx.h ---- libva-0.31.0/src/glx/va_backend_glx.h 1970-01-01 01:00:00.000000000 +0100 -+++ libva-0.31.0.patch/src/glx/va_backend_glx.h 2009-12-15 13:45:21.399448402 +0100 -@@ -0,0 +1,87 @@ -+/* -+ * Copyright (C) 2009 Splitted-Desktop Systems. All Rights Reserved. -+ * -+ * 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, sub license, 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 PRECISION INSIGHT AND/OR ITS 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 VA_BACKEND_GLX_H -+#define VA_BACKEND_GLX_H -+ -+struct VADriverContext; -+ -+struct VADriverVTableGLX { -+ /* Optional: create a surface used for display to OpenGL */ -+ VAStatus (*vaCreateSurfaceGLX)( -+ struct VADriverContext *ctx, -+ unsigned int gl_target, -+ unsigned int gl_texture, -+ void **gl_surface -+ ); -+ -+ /* Optional: destroy a VA/GLX surface */ -+ VAStatus (*vaDestroySurfaceGLX)( -+ struct VADriverContext *ctx, -+ void *gl_surface -+ ); -+ -+ /* Optional: associate a VA surface to a VA/GLX surface */ -+ VAStatus (*vaAssociateSurfaceGLX)( -+ struct VADriverContext *ctx, -+ void *gl_surface, -+ VASurfaceID surface, -+ unsigned int flags -+ ); -+ -+ /* Optional: deassociate a VA surface from a VA/GLX surface */ -+ VAStatus (*vaDeassociateSurfaceGLX)( -+ struct VADriverContext *ctx, -+ void *gl_surface -+ ); -+ -+ /* Optional: synchronize a VA/GLX surface */ -+ VAStatus (*vaSyncSurfaceGLX)( -+ struct VADriverContext *ctx, -+ void *gl_surface -+ ); -+ -+ /* Optional: prepare VA/GLX surface for rendering */ -+ VAStatus (*vaBeginRenderSurfaceGLX)( -+ struct VADriverContext *ctx, -+ void *gl_surface -+ ); -+ -+ /* Optional: notify the server that the VA/GLX surface is no -+ longer used for rendering */ -+ VAStatus (*vaEndRenderSurfaceGLX)( -+ struct VADriverContext *ctx, -+ void *gl_surface -+ ); -+ -+ /* Optional: copy a VA surface to a VA/GLX surface */ -+ VAStatus (*vaCopySurfaceGLX)( -+ struct VADriverContext *ctx, -+ void *gl_surface, -+ VASurfaceID surface, -+ unsigned int flags -+ ); -+}; -+ -+#endif /* VA_BACKEND_GLX_H */ -diff -Naur libva-0.31.0/src/glx/va_glx.c libva-0.31.0.patch/src/glx/va_glx.c ---- libva-0.31.0/src/glx/va_glx.c 1970-01-01 01:00:00.000000000 +0100 -+++ libva-0.31.0.patch/src/glx/va_glx.c 2009-12-15 13:45:21.400448451 +0100 -@@ -0,0 +1,295 @@ -+/* -+ * Copyright (C) 2009 Splitted-Desktop Systems. All Rights Reserved. -+ * -+ * 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, sub license, 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 PRECISION INSIGHT AND/OR ITS 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. -+ */ -+ -+#include "va_glx_private.h" -+#include "va_glx_impl.h" -+ -+#define INIT_CONTEXT(ctx, dpy) do { \ -+ if (!vaDisplayIsValid(dpy)) \ -+ return VA_STATUS_ERROR_INVALID_DISPLAY; \ -+ \ -+ ctx = ((VADisplayContextP)(dpy))->pDriverContext; \ -+ if (!(ctx)) \ -+ return VA_STATUS_ERROR_INVALID_DISPLAY; \ -+ \ -+ VAStatus status = va_glx_init_context(ctx); \ -+ if (status != VA_STATUS_SUCCESS) \ -+ return status; \ -+ } while (0) -+ -+#define INIT_SURFACE(surface, surface_arg) do { \ -+ surface = (VASurfaceGLXP)(surface_arg); \ -+ if (!vaSurfaceIsValid(surface)) \ -+ return VA_STATUS_ERROR_INVALID_SURFACE; \ -+ } while (0) -+ -+#define INVOKE(ctx, func, args) do { \ -+ VADriverVTableGLXP vtable; \ -+ vtable = &VA_DRIVER_CONTEXT_GLX(ctx)->vtable; \ -+ if (!vtable->va##func##GLX) \ -+ return VA_STATUS_ERROR_UNIMPLEMENTED; \ -+ status = vtable->va##func##GLX args; \ -+ } while (0) -+ -+// Check VADisplay is valid -+static inline int vaDisplayIsValid(VADisplay dpy) -+{ -+ VADisplayContextP pDisplayContext = (VADisplayContextP)dpy; -+ -+ return (pDisplayContext && -+ pDisplayContext->vaIsValid && -+ pDisplayContext->vaIsValid(pDisplayContext)); -+} -+ -+// Check VASurfaceGLX is valid -+static inline int vaSurfaceIsValid(VASurfaceGLXP pSurfaceGLX) -+{ -+ return pSurfaceGLX && pSurfaceGLX->magic == VA_SURFACE_GLX_MAGIC; -+} -+ -+// Destroy VA/GLX display context -+static void va_DisplayContextDestroy(VADisplayContextP pDisplayContext) -+{ -+ VADisplayContextGLXP pDisplayContextGLX; -+ VADriverContextP pDriverContext; -+ VADriverContextGLXP pDriverContextGLX; -+ -+ if (!pDisplayContext) -+ return; -+ -+ pDriverContext = pDisplayContext->pDriverContext; -+ pDriverContextGLX = pDriverContext->glx; -+ if (pDriverContextGLX) { -+ free(pDriverContextGLX); -+ pDriverContext->glx = NULL; -+ } -+ -+ pDisplayContextGLX = pDisplayContext->opaque; -+ if (pDisplayContextGLX) { -+ if (pDisplayContextGLX->vaDestroy) -+ pDisplayContextGLX->vaDestroy(pDisplayContext); -+ free(pDisplayContextGLX); -+ pDisplayContext->opaque = NULL; -+ } -+} -+ -+// Return a suitable VADisplay for VA API -+VADisplay vaGetDisplayGLX(Display *native_dpy) -+{ -+ VADisplay dpy = NULL; -+ VADisplayContextP pDisplayContext = NULL; -+ VADisplayContextGLXP pDisplayContextGLX = NULL; -+ VADriverContextP pDriverContext; -+ VADriverContextGLXP pDriverContextGLX = NULL; -+ -+ dpy = vaGetDisplay(native_dpy); -+ if (!dpy) -+ return NULL; -+ pDisplayContext = (VADisplayContextP)dpy; -+ pDriverContext = pDisplayContext->pDriverContext; -+ -+ pDisplayContextGLX = calloc(1, sizeof(*pDisplayContextGLX)); -+ if (!pDisplayContextGLX) -+ goto error; -+ -+ pDriverContextGLX = calloc(1, sizeof(*pDriverContextGLX)); -+ if (!pDriverContextGLX) -+ goto error; -+ -+ pDisplayContextGLX->vaDestroy = pDisplayContext->vaDestroy; -+ pDisplayContext->vaDestroy = va_DisplayContextDestroy; -+ pDisplayContext->opaque = pDisplayContextGLX; -+ pDriverContext->glx = pDriverContextGLX; -+ return dpy; -+ -+error: -+ free(pDriverContextGLX); -+ free(pDisplayContextGLX); -+ pDisplayContext->vaDestroy(pDisplayContext); -+ return NULL; -+} -+ -+// Create a surface used for display to OpenGL -+VAStatus vaCreateSurfaceGLX( -+ VADisplay dpy, -+ GLenum target, -+ GLuint texture, -+ void **gl_surface -+) -+{ -+ VADriverContextP ctx; -+ VASurfaceGLXP pSurfaceGLX; -+ VAStatus status; -+ -+ /* Make sure it is a valid GL texture object */ -+ if (!glIsTexture(texture)) -+ return VA_STATUS_ERROR_INVALID_PARAMETER; -+ -+ INIT_CONTEXT(ctx, dpy); -+ -+ pSurfaceGLX = va_glx_create_surface(ctx, target, texture); -+ if (!pSurfaceGLX) -+ return VA_STATUS_ERROR_ALLOCATION_FAILED; -+ -+ INVOKE(ctx, CreateSurface, (ctx, target, texture, &pSurfaceGLX->priv)); -+ -+ if (status != VA_STATUS_SUCCESS) -+ va_glx_destroy_surface(ctx, &pSurfaceGLX); -+ -+ *gl_surface = pSurfaceGLX; -+ return status; -+} -+ -+// Destroy a VA/GLX surface -+VAStatus vaDestroySurfaceGLX( -+ VADisplay dpy, -+ void *gl_surface -+) -+{ -+ VADriverContextP ctx; -+ VASurfaceGLXP pSurfaceGLX; -+ VAStatus status; -+ -+ INIT_CONTEXT(ctx, dpy); -+ INIT_SURFACE(pSurfaceGLX, gl_surface); -+ -+ INVOKE(ctx, DestroySurface, (ctx, pSurfaceGLX)); -+ -+ free(pSurfaceGLX); -+ return status; -+} -+ -+// Associate a VA surface to a VA/GLX surface -+VAStatus vaAssociateSurfaceGLX( -+ VADisplay dpy, -+ void *gl_surface, -+ VASurfaceID surface, -+ unsigned int flags -+) -+{ -+ VADriverContextP ctx; -+ VASurfaceGLXP pSurfaceGLX; -+ VAStatus status; -+ -+ INIT_CONTEXT(ctx, dpy); -+ INIT_SURFACE(pSurfaceGLX, gl_surface); -+ -+ INVOKE(ctx, AssociateSurface, (ctx, pSurfaceGLX, surface, flags)); -+ -+ if (status == VA_STATUS_SUCCESS) -+ pSurfaceGLX->surface = surface; -+ -+ return status; -+} -+ -+// Deassociate a VA surface from a VA/GLX surface -+VAStatus vaDeassociateSurfaceGLX( -+ VADisplay dpy, -+ void *gl_surface -+) -+{ -+ VADriverContextP ctx; -+ VASurfaceGLXP pSurfaceGLX; -+ VAStatus status; -+ -+ INIT_CONTEXT(ctx, dpy); -+ INIT_SURFACE(pSurfaceGLX, gl_surface); -+ -+ INVOKE(ctx, DeassociateSurface, (ctx, pSurfaceGLX)); -+ -+ if (status == VA_STATUS_SUCCESS) -+ pSurfaceGLX->surface = VA_INVALID_SURFACE; -+ -+ return status; -+} -+ -+// Synchronize a VA/GLX surface -+VAStatus vaSyncSurfaceGLX( -+ VADisplay dpy, -+ void *gl_surface -+) -+{ -+ VADriverContextP ctx; -+ VASurfaceGLXP pSurfaceGLX; -+ VAStatus status; -+ -+ INIT_CONTEXT(ctx, dpy); -+ INIT_SURFACE(pSurfaceGLX, gl_surface); -+ -+ INVOKE(ctx, SyncSurface, (ctx, pSurfaceGLX)); -+ return status; -+} -+ -+// Prepare VA/GLX surface for rendering -+VAStatus vaBeginRenderSurfaceGLX( -+ VADisplay dpy, -+ void *gl_surface -+) -+{ -+ VADriverContextP ctx; -+ VASurfaceGLXP pSurfaceGLX; -+ VAStatus status; -+ -+ INIT_CONTEXT(ctx, dpy); -+ INIT_SURFACE(pSurfaceGLX, gl_surface); -+ -+ INVOKE(ctx, BeginRenderSurface, (ctx, pSurfaceGLX)); -+ return status; -+} -+ -+// Notify the server that the VA/GLX surface is no longer used for rendering -+VAStatus vaEndRenderSurfaceGLX( -+ VADisplay dpy, -+ void *gl_surface -+) -+{ -+ VADriverContextP ctx; -+ VASurfaceGLXP pSurfaceGLX; -+ VAStatus status; -+ -+ INIT_CONTEXT(ctx, dpy); -+ INIT_SURFACE(pSurfaceGLX, gl_surface); -+ -+ INVOKE(ctx, EndRenderSurface, (ctx, pSurfaceGLX)); -+ return status; -+} -+ -+// Copy a VA surface to a VA/GLX surface -+VAStatus vaCopySurfaceGLX( -+ VADisplay dpy, -+ void *gl_surface, -+ VASurfaceID surface, -+ unsigned int flags -+) -+{ -+ VADriverContextP ctx; -+ VASurfaceGLXP pSurfaceGLX; -+ VAStatus status; -+ -+ INIT_CONTEXT(ctx, dpy); -+ INIT_SURFACE(pSurfaceGLX, gl_surface); -+ -+ INVOKE(ctx, CopySurface, (ctx, pSurfaceGLX, surface, flags)); -+ return status; -+} -diff -Naur libva-0.31.0/src/glx/va_glx.h libva-0.31.0.patch/src/glx/va_glx.h ---- libva-0.31.0/src/glx/va_glx.h 1970-01-01 01:00:00.000000000 +0100 -+++ libva-0.31.0.patch/src/glx/va_glx.h 2009-12-15 13:45:21.401447942 +0100 -@@ -0,0 +1,217 @@ -+/* -+ * Copyright (C) 2009 Splitted-Desktop Systems. All Rights Reserved. -+ * -+ * 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, sub license, 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 PRECISION INSIGHT AND/OR ITS 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 VA_GLX_H -+#define VA_GLX_H -+ -+#ifdef IN_LIBVA -+#include "va.h" -+#else -+#include -+#endif -+#include -+ -+#ifdef __cplusplus -+extern "C" { -+#endif -+ -+/** -+ * Return a suitable VADisplay for VA API -+ * -+ * @param[in] dpy the X11 display -+ * @return a VADisplay -+ */ -+VADisplay vaGetDisplayGLX( -+ Display *dpy -+); -+ -+/** -+ * Create a surface used for display to OpenGL -+ * -+ * The application shall maintain the live GLX context itself. -+ * Implementations are free to use glXGetCurrentContext() and -+ * glXGetCurrentDrawable() functions for internal purposes. -+ * -+ * @param[in] dpy the VA display -+ * @param[in] target the GL target to which the texture needs to be bound -+ * @param[in] texture the GL texture -+ * @param[out] gl_surface the VA/GLX surface -+ * @return VA_STATUS_SUCCESS if successful -+ */ -+VAStatus vaCreateSurfaceGLX( -+ VADisplay dpy, -+ GLenum target, -+ GLuint texture, -+ void **gl_surface -+); -+ -+/** -+ * Destroy a VA/GLX surface -+ * -+ * The application shall maintain the live GLX context itself. -+ * Implementations are free to use glXGetCurrentContext() and -+ * glXGetCurrentDrawable() functions for internal purposes. -+ * -+ * @param[in] dpy the VA display -+ * @param[in] gl_surface the VA surface -+ * @return VA_STATUS_SUCCESS if successful -+ */ -+VAStatus vaDestroySurfaceGLX( -+ VADisplay dpy, -+ void *gl_surface -+); -+ -+/** -+ * Associate a VA surface to a VA/GLX surface -+ * -+ * The association is live until vaDeassociateSurfaceGLX(), -+ * vaCopySurfaceGLX() or the next call to vaBeginPicture() with the -+ * specificed VA surface. -+ * -+ * The application shall maintain the live GLX context itself. -+ * Implementations are free to use glXGetCurrentContext() and -+ * glXGetCurrentDrawable() functions for internal purposes. -+ * -+ * @param[in] dpy the VA display -+ * @param[in] gl_surface the VA/GLX surface -+ * @param[in] surface the VA surface -+ * @param[in] flags the PutSurface flags -+ * @return VA_STATUS_SUCCESS if successful -+ */ -+VAStatus vaAssociateSurfaceGLX( -+ VADisplay dpy, -+ void *gl_surface, -+ VASurfaceID surface, -+ unsigned int flags -+); -+ -+/** -+ * Deassociate a VA surface from a VA/GLX surface -+ * -+ * The application shall maintain the live GLX context itself. -+ * Implementations are free to use glXGetCurrentContext() and -+ * glXGetCurrentDrawable() functions for internal purposes. -+ * -+ * @param[in] dpy the VA display -+ * @param[in] gl_surface the VA surface -+ * @return VA_STATUS_SUCCESS if successful -+ */ -+VAStatus vaDeassociateSurfaceGLX( -+ VADisplay dpy, -+ void *gl_surface -+); -+ -+/** -+ * Synchronize a VA/GLX surface -+ * -+ * This function blocks until all pending operations on the VA/GLX -+ * surface have been completed. -+ * -+ * The application shall maintain the live GLX context itself. -+ * Implementations are free to use glXGetCurrentContext() and -+ * glXGetCurrentDrawable() functions for internal purposes. -+ * -+ * @param[in] dpy the VA display -+ * @param[in] gl_surface the VA surface -+ * @return VA_STATUS_SUCCESS if successful -+ */ -+VAStatus vaSyncSurfaceGLX( -+ VADisplay dpy, -+ void *gl_surface -+); -+ -+/** -+ * Prepare VA/GLX surface for rendering -+ * -+ * This function performs an implicit vaSyncSurfaceGLX(). -+ * -+ * Implementations using the GLX texture-from-pixmap extension will -+ * generally call glXBindTexImage() here. -+ * -+ * The application shall maintain the live GLX context itself. -+ * Implementations are free to use glXGetCurrentContext() and -+ * glXGetCurrentDrawable() functions for internal purposes. -+ * -+ * @param[in] dpy the VA display -+ * @param[in] gl_surface the VA surface -+ * @return VA_STATUS_SUCCESS if successful -+ */ -+VAStatus vaBeginRenderSurfaceGLX( -+ VADisplay dpy, -+ void *gl_surface -+); -+ -+/** -+ * Notify the server that the VA/GLX surface is no longer used for -+ * rendering -+ * -+ * Implementations using the GLX texture-from-pixmap extension will -+ * generally call glXReleaseTexImage() here. -+ * -+ * The application shall maintain the live GLX context itself. -+ * Implementations are free to use glXGetCurrentContext() and -+ * glXGetCurrentDrawable() functions for internal purposes. -+ * -+ * @param[in] dpy the VA display -+ * @param[in] gl_surface the VA surface -+ * @return VA_STATUS_SUCCESS if successful -+ */ -+VAStatus vaEndRenderSurfaceGLX( -+ VADisplay dpy, -+ void *gl_surface -+); -+ -+/** -+ * Copy a VA surface to a VA/GLX surface -+ * -+ * This function kills any association that was previously made with -+ * vaAssociateSurfaceGLX() and will not return until the copy is -+ * completed. -+ * -+ * Upon successful return, the underlying GL texture will contain the -+ * complete pixels and no call to vaBeginRenderSurfaceGLX() or -+ * vaEndRenderSurfaceGLX() is required. -+ * -+ * The application shall maintain the live GLX context itself. -+ * Implementations are free to use glXGetCurrentContext() and -+ * glXGetCurrentDrawable() functions for internal purposes. -+ * -+ * @param[in] dpy the VA display -+ * @param[in] gl_surface the VA/GLX destination surface -+ * @param[in] surface the VA source surface -+ * @param[in] flags the PutSurface flags -+ * @return VA_STATUS_SUCCESS if successful -+ */ -+VAStatus vaCopySurfaceGLX( -+ VADisplay dpy, -+ void *gl_surface, -+ VASurfaceID surface, -+ unsigned int flags -+); -+ -+#ifdef __cplusplus -+} -+#endif -+ -+#endif /* VA_GLX_H */ -diff -Naur libva-0.31.0/src/glx/va_glx_impl.c libva-0.31.0.patch/src/glx/va_glx_impl.c ---- libva-0.31.0/src/glx/va_glx_impl.c 1970-01-01 01:00:00.000000000 +0100 -+++ libva-0.31.0.patch/src/glx/va_glx_impl.c 2009-12-15 13:45:21.406448259 +0100 -@@ -0,0 +1,1168 @@ -+/* -+ * Copyright (C) 2009 Splitted-Desktop Systems. All Rights Reserved. -+ * -+ * 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, sub license, 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 PRECISION INSIGHT AND/OR ITS 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. -+ */ -+ -+#define _GNU_SOURCE 1 -+#include "va_glx_private.h" -+#include "va_glx_impl.h" -+#include -+#include -+#include -+#include -+#include -+ -+static void va_glx_error_message(const char *format, ...) -+{ -+ va_list args; -+ va_start(args, format); -+ fprintf(stderr, "[%s] ", PACKAGE_NAME); -+ vfprintf(stderr, format, args); -+ va_end(args); -+} -+ -+// X error trap -+static int x11_error_code = 0; -+static int (*old_error_handler)(Display *, XErrorEvent *); -+ -+static int error_handler(Display *dpy, XErrorEvent *error) -+{ -+ x11_error_code = error->error_code; -+ return 0; -+} -+ -+static void x11_trap_errors(void) -+{ -+ x11_error_code = 0; -+ old_error_handler = XSetErrorHandler(error_handler); -+} -+ -+static int x11_untrap_errors(void) -+{ -+ XSetErrorHandler(old_error_handler); -+ return x11_error_code; -+} -+ -+// Returns a string representation of an OpenGL error -+static const char *gl_get_error_string(GLenum error) -+{ -+ static const struct { -+ GLenum val; -+ const char *str; -+ } -+ gl_errors[] = { -+ { GL_NO_ERROR, "no error" }, -+ { GL_INVALID_ENUM, "invalid enumerant" }, -+ { GL_INVALID_VALUE, "invalid value" }, -+ { GL_INVALID_OPERATION, "invalid operation" }, -+ { GL_STACK_OVERFLOW, "stack overflow" }, -+ { GL_STACK_UNDERFLOW, "stack underflow" }, -+ { GL_OUT_OF_MEMORY, "out of memory" }, -+#ifdef GL_INVALID_FRAMEBUFFER_OPERATION_EXT -+ { GL_INVALID_FRAMEBUFFER_OPERATION_EXT, "invalid framebuffer operation" }, -+#endif -+ { ~0, NULL } -+ }; -+ -+ int i; -+ for (i = 0; gl_errors[i].str; i++) { -+ if (gl_errors[i].val == error) -+ return gl_errors[i].str; -+ } -+ return "unknown"; -+} -+ -+static inline int gl_do_check_error(int report) -+{ -+ GLenum error; -+ int is_error = 0; -+ while ((error = glGetError()) != GL_NO_ERROR) { -+ if (report) -+ va_glx_error_message("glError: %s caught\n", -+ gl_get_error_string(error)); -+ is_error = 1; -+ } -+ return is_error; -+} -+ -+static inline void gl_purge_errors(void) -+{ -+ gl_do_check_error(0); -+} -+ -+static inline int gl_check_error(void) -+{ -+ return gl_do_check_error(1); -+} -+ -+// glGetFloatv() wrapper -+static int gl_get_current_color(float color[4]) -+{ -+ gl_purge_errors(); -+ glGetFloatv(GL_CURRENT_COLOR, color); -+ if (gl_check_error()) -+ return -1; -+ return 0; -+} -+ -+// glGetIntegerv() wrapper -+static int gl_get_param(GLenum param, unsigned int *pval) -+{ -+ GLint val; -+ -+ gl_purge_errors(); -+ glGetIntegerv(param, &val); -+ if (gl_check_error()) -+ return -1; -+ if (pval) -+ *pval = val; -+ return 0; -+} -+ -+// glGetTexLevelParameteriv() wrapper -+static int gl_get_texture_param(GLenum param, unsigned int *pval) -+{ -+ GLint val; -+ -+ gl_purge_errors(); -+ glGetTexLevelParameteriv(GL_TEXTURE_2D, 0, param, &val); -+ if (gl_check_error()) -+ return -1; -+ if (pval) -+ *pval = val; -+ return 0; -+} -+ -+// Returns the OpenGL VTable -+static inline VAOpenGLVTableP gl_get_vtable(VADriverContextP ctx) -+{ -+ return &VA_DRIVER_CONTEXT_GLX(ctx)->gl_vtable; -+} -+ -+// Lookup for a GLX function -+typedef void (*GLFuncPtr)(void); -+typedef GLFuncPtr (*GLXGetProcAddressProc)(const char *); -+ -+static GLFuncPtr get_proc_address_default(const char *name) -+{ -+ return NULL; -+} -+ -+static GLXGetProcAddressProc get_proc_address_func(void) -+{ -+ GLXGetProcAddressProc get_proc_func; -+ -+ dlerror(); -+ get_proc_func = (GLXGetProcAddressProc) -+ dlsym(RTLD_DEFAULT, "glXGetProcAddress"); -+ if (dlerror() == NULL) -+ return get_proc_func; -+ -+ get_proc_func = (GLXGetProcAddressProc) -+ dlsym(RTLD_DEFAULT, "glXGetProcAddressARB"); -+ if (dlerror() == NULL) -+ return get_proc_func; -+ -+ return get_proc_address_default; -+} -+ -+static inline GLFuncPtr get_proc_address(const char *name) -+{ -+ static GLXGetProcAddressProc get_proc_func = NULL; -+ if (get_proc_func == NULL) -+ get_proc_func = get_proc_address_func(); -+ return get_proc_func(name); -+} -+ -+// Check for GLX extensions (TFP, FBO) -+static int check_extension(const char *name, const char *ext) -+{ -+ const char *end; -+ int name_len, n; -+ -+ if (name == NULL || ext == NULL) -+ return 0; -+ -+ end = ext + strlen(ext); -+ name_len = strlen(name); -+ while (ext < end) { -+ n = strcspn(ext, " "); -+ if (n == name_len && strncmp(name, ext, n) == 0) -+ return 1; -+ ext += (n + 1); -+ } -+ return 0; -+} -+ -+static int check_tfp_extensions(VADriverContextP ctx) -+{ -+ const char *gl_extensions; -+ const char *glx_extensions; -+ -+ gl_extensions = (const char *)glGetString(GL_EXTENSIONS); -+ if (!check_extension("GL_ARB_texture_non_power_of_two", gl_extensions)) -+ return 0; -+ -+ glx_extensions = glXQueryExtensionsString(ctx->x11_dpy, ctx->x11_screen); -+ if (!check_extension("GLX_EXT_texture_from_pixmap", glx_extensions)) -+ return 0; -+ return 1; -+} -+ -+static int check_fbo_extensions(VADriverContextP ctx) -+{ -+ const char *gl_extensions; -+ -+ gl_extensions = (const char *)glGetString(GL_EXTENSIONS); -+ if (!check_extension("GL_ARB_framebuffer_object", gl_extensions)) -+ return 0; -+ if (!check_extension("GL_EXT_framebuffer_object", gl_extensions)) -+ return 0; -+ return 1; -+} -+ -+// Load GLX extensions -+static int load_tfp_extensions(VADriverContextP ctx) -+{ -+ VAOpenGLVTableP pOpenGLVTable = gl_get_vtable(ctx); -+ -+ pOpenGLVTable->glx_bind_tex_image = (PFNGLXBINDTEXIMAGEEXTPROC) -+ get_proc_address("glXBindTexImageEXT"); -+ if (pOpenGLVTable->glx_bind_tex_image == NULL) -+ return 0; -+ pOpenGLVTable->glx_release_tex_image = (PFNGLXRELEASETEXIMAGEEXTPROC) -+ get_proc_address("glXReleaseTexImageEXT"); -+ if (pOpenGLVTable->glx_release_tex_image == NULL) -+ return 0; -+ return 1; -+} -+ -+static int load_fbo_extensions(VADriverContextP ctx) -+{ -+ VAOpenGLVTableP pOpenGLVTable = gl_get_vtable(ctx); -+ -+ pOpenGLVTable->gl_gen_framebuffers = (PFNGLGENFRAMEBUFFERSEXTPROC) -+ get_proc_address("glGenFramebuffersEXT"); -+ if (pOpenGLVTable->gl_gen_framebuffers == NULL) -+ return 0; -+ pOpenGLVTable->gl_delete_framebuffers = (PFNGLDELETEFRAMEBUFFERSEXTPROC) -+ get_proc_address("glDeleteFramebuffersEXT"); -+ if (pOpenGLVTable->gl_delete_framebuffers == NULL) -+ return 0; -+ pOpenGLVTable->gl_bind_framebuffer = (PFNGLBINDFRAMEBUFFEREXTPROC) -+ get_proc_address("glBindFramebufferEXT"); -+ if (pOpenGLVTable->gl_bind_framebuffer == NULL) -+ return 0; -+ pOpenGLVTable->gl_gen_renderbuffers = (PFNGLGENRENDERBUFFERSEXTPROC) -+ get_proc_address("glGenRenderbuffersEXT"); -+ if (pOpenGLVTable->gl_gen_renderbuffers == NULL) -+ return 0; -+ pOpenGLVTable->gl_delete_renderbuffers = (PFNGLDELETERENDERBUFFERSEXTPROC) -+ get_proc_address("glDeleteRenderbuffersEXT"); -+ if (pOpenGLVTable->gl_delete_renderbuffers == NULL) -+ return 0; -+ pOpenGLVTable->gl_bind_renderbuffer = (PFNGLBINDRENDERBUFFEREXTPROC) -+ get_proc_address("glBindRenderbufferEXT"); -+ if (pOpenGLVTable->gl_bind_renderbuffer == NULL) -+ return 0; -+ pOpenGLVTable->gl_renderbuffer_storage = (PFNGLRENDERBUFFERSTORAGEEXTPROC) -+ get_proc_address("glRenderbufferStorageEXT"); -+ if (pOpenGLVTable->gl_renderbuffer_storage == NULL) -+ return 0; -+ pOpenGLVTable->gl_framebuffer_renderbuffer = (PFNGLFRAMEBUFFERRENDERBUFFEREXTPROC) -+ get_proc_address("glFramebufferRenderbufferEXT"); -+ if (pOpenGLVTable->gl_framebuffer_renderbuffer == NULL) -+ return 0; -+ pOpenGLVTable->gl_framebuffer_texture_2d = (PFNGLFRAMEBUFFERTEXTURE2DEXTPROC) -+ get_proc_address("glFramebufferTexture2DEXT"); -+ if (pOpenGLVTable->gl_framebuffer_texture_2d == NULL) -+ return 0; -+ pOpenGLVTable->gl_check_framebuffer_status = (PFNGLCHECKFRAMEBUFFERSTATUSEXTPROC) -+ get_proc_address("glCheckFramebufferStatusEXT"); -+ if (pOpenGLVTable->gl_check_framebuffer_status == NULL) -+ return 0; -+ return 1; -+} -+ -+ -+/* ========================================================================= */ -+/* === VA/GLX helpers === */ -+/* ========================================================================= */ -+ -+// OpenGL texture state -+typedef struct OpenGLTextureState *OpenGLTextureStateP; -+ -+struct OpenGLTextureState { -+ int was_enabled; -+ int was_bound; -+ GLenum target; -+ GLuint old_texture; -+}; -+ -+// Bind texture, preserve previous texture state -+static int bind_texture(OpenGLTextureStateP ts, GLenum target, GLuint texture) -+{ -+ ts->target = target; -+ ts->old_texture = 0; -+ ts->was_bound = 0; -+ ts->was_enabled = glIsEnabled(target); -+ if (!ts->was_enabled) -+ glEnable(target); -+ -+ GLenum texture_binding; -+ switch (target) { -+ case GL_TEXTURE_1D: -+ texture_binding = GL_TEXTURE_BINDING_1D; -+ break; -+ case GL_TEXTURE_2D: -+ texture_binding = GL_TEXTURE_BINDING_2D; -+ break; -+ case GL_TEXTURE_3D: -+ texture_binding = GL_TEXTURE_BINDING_3D; -+ break; -+ case GL_TEXTURE_RECTANGLE_ARB: -+ texture_binding = GL_TEXTURE_BINDING_RECTANGLE_ARB; -+ break; -+ default: -+ assert(!target); -+ return -1; -+ } -+ -+ if (ts->was_enabled && gl_get_param(texture_binding, &ts->old_texture) < 0) -+ return -1; -+ -+ ts->was_bound = texture == ts->old_texture; -+ if (!ts->was_bound) { -+ gl_purge_errors(); -+ glBindTexture(target, texture); -+ if (gl_check_error()) -+ return -1; -+ } -+ return 0; -+} -+ -+// Unbind texture, restore previous texture state -+static void unbind_texture(OpenGLTextureStateP ts) -+{ -+ if (!ts->was_bound && ts->old_texture) -+ glBindTexture(ts->target, ts->old_texture); -+ if (!ts->was_enabled) -+ glDisable(ts->target); -+} -+ -+// Create Pixmaps for GLX texture-from-pixmap extension -+static int create_tfp_surface(VADriverContextP ctx, VASurfaceGLXP pSurfaceGLX) -+{ -+ const unsigned int width = pSurfaceGLX->width; -+ const unsigned int height = pSurfaceGLX->height; -+ Pixmap pixmap = None; -+ GLXFBConfig *fbconfig = NULL; -+ GLXPixmap glx_pixmap = None; -+ Window root_window; -+ XWindowAttributes wattr; -+ int *attrib; -+ int n_fbconfig_attribs, x, y, status; -+ unsigned int border_width, depth, dummy; -+ -+ root_window = RootWindow(ctx->x11_dpy, ctx->x11_screen); -+ XGetWindowAttributes(ctx->x11_dpy, root_window, &wattr); -+ pixmap = XCreatePixmap(ctx->x11_dpy, root_window, -+ width, height, wattr.depth); -+ if (!pixmap) -+ return -1; -+ pSurfaceGLX->pixmap = pixmap; -+ -+ x11_trap_errors(); -+ status = XGetGeometry(ctx->x11_dpy, -+ (Drawable)pixmap, -+ &root_window, -+ &x, -+ &y, -+ &dummy, -+ &dummy, -+ &border_width, -+ &depth); -+ if (x11_untrap_errors() != 0 || status == 0) -+ return -1; -+ if (depth != 24 && depth != 32) -+ return -1; -+ -+ int fbconfig_attribs[32] = { -+ GLX_DRAWABLE_TYPE, GLX_PIXMAP_BIT, -+ GLX_DOUBLEBUFFER, GL_TRUE, -+ GLX_RENDER_TYPE, GLX_RGBA_BIT, -+ GLX_X_RENDERABLE, GL_TRUE, -+ GLX_Y_INVERTED_EXT, GL_TRUE, -+ GLX_RED_SIZE, 8, -+ GLX_GREEN_SIZE, 8, -+ GLX_BLUE_SIZE, 8, -+ GL_NONE, -+ }; -+ for (attrib = fbconfig_attribs; *attrib != GL_NONE; attrib += 2) -+ ; -+ *attrib++ = GLX_DEPTH_SIZE; *attrib++ = depth; -+ if (depth == 32) { -+ *attrib++ = GLX_ALPHA_SIZE; *attrib++ = 8; -+ *attrib++ = GLX_BIND_TO_TEXTURE_RGBA_EXT; *attrib++ = GL_TRUE; -+ } -+ else { -+ *attrib++ = GLX_BIND_TO_TEXTURE_RGB_EXT; *attrib++ = GL_TRUE; -+ } -+ *attrib++ = GL_NONE; -+ -+ fbconfig = glXChooseFBConfig(ctx->x11_dpy, ctx->x11_screen, fbconfig_attribs, &n_fbconfig_attribs); -+ if (fbconfig == NULL) -+ return -1; -+ -+ int pixmap_attribs[10] = { -+ GLX_TEXTURE_TARGET_EXT, GLX_TEXTURE_2D_EXT, -+ GLX_MIPMAP_TEXTURE_EXT, GL_FALSE, -+ GL_NONE, -+ }; -+ for (attrib = pixmap_attribs; *attrib != GL_NONE; attrib += 2) -+ ; -+ *attrib++ = GLX_TEXTURE_FORMAT_EXT; -+ if (depth == 32) -+ *attrib++ = GLX_TEXTURE_FORMAT_RGBA_EXT; -+ else -+ *attrib++ = GLX_TEXTURE_FORMAT_RGB_EXT; -+ *attrib++ = GL_NONE; -+ -+ x11_trap_errors(); -+ glx_pixmap = glXCreatePixmap(ctx->x11_dpy, -+ fbconfig[0], -+ pixmap, -+ pixmap_attribs); -+ free(fbconfig); -+ if (x11_untrap_errors() != 0) -+ return -1; -+ pSurfaceGLX->glx_pixmap = glx_pixmap; -+ return 0; -+} -+ -+// Destroy Pixmaps used for TFP -+static void destroy_tfp_surface(VADriverContextP ctx, VASurfaceGLXP pSurfaceGLX) -+{ -+ if (pSurfaceGLX->glx_pixmap) { -+ glXDestroyPixmap(ctx->x11_dpy, pSurfaceGLX->glx_pixmap); -+ pSurfaceGLX->glx_pixmap = None; -+ } -+ -+ if (pSurfaceGLX->pixmap) { -+ XFreePixmap(ctx->x11_dpy, pSurfaceGLX->pixmap); -+ pSurfaceGLX->pixmap = None; -+ } -+} -+ -+// Bind GLX Pixmap to texture -+static int bind_pixmap(VADriverContextP ctx, VASurfaceGLXP pSurfaceGLX) -+{ -+ VAOpenGLVTableP pOpenGLVTable = gl_get_vtable(ctx); -+ -+ if (pSurfaceGLX->is_bound) -+ return 0; -+ -+ x11_trap_errors(); -+ pOpenGLVTable->glx_bind_tex_image(ctx->x11_dpy, pSurfaceGLX->glx_pixmap, -+ GLX_FRONT_LEFT_EXT, NULL); -+ XSync(ctx->x11_dpy, False); -+ if (x11_untrap_errors() != 0) { -+ va_glx_error_message("failed to bind pixmap\n"); -+ return -1; -+ } -+ -+ pSurfaceGLX->is_bound = 1; -+ return 0; -+} -+ -+// Release GLX Pixmap from texture -+static int unbind_pixmap(VADriverContextP ctx, VASurfaceGLXP pSurfaceGLX) -+{ -+ VAOpenGLVTableP pOpenGLVTable = gl_get_vtable(ctx); -+ -+ if (!pSurfaceGLX->is_bound) -+ return 0; -+ -+ x11_trap_errors(); -+ pOpenGLVTable->glx_release_tex_image(ctx->x11_dpy, pSurfaceGLX->glx_pixmap, -+ GLX_FRONT_LEFT_EXT); -+ XSync(ctx->x11_dpy, False); -+ if (x11_untrap_errors() != 0) { -+ va_glx_error_message("failed to release pixmap\n"); -+ return -1; -+ } -+ -+ pSurfaceGLX->is_bound = 0; -+ return 0; -+} -+ -+// Render GLX Pixmap to texture -+static void render_pixmap(VADriverContextP ctx, VASurfaceGLXP pSurfaceGLX) -+{ -+ const unsigned int w = pSurfaceGLX->width; -+ const unsigned int h = pSurfaceGLX->height; -+ float old_color[4]; -+ -+ gl_get_current_color(old_color); -+ glColor4f(1.0f, 1.0f, 1.0f, 1.0f); -+ glBegin(GL_QUADS); -+ { -+ glTexCoord2f(0.0f, 0.0f); glVertex2i(0, 0); -+ glTexCoord2f(0.0f, 1.0f); glVertex2i(0, h); -+ glTexCoord2f(1.0f, 1.0f); glVertex2i(w, h); -+ glTexCoord2f(1.0f, 0.0f); glVertex2i(w, 0); -+ } -+ glEnd(); -+ glColor4fv(old_color); -+} -+ -+// Create offscreen surface -+static int create_fbo_surface(VADriverContextP ctx, VASurfaceGLXP pSurfaceGLX) -+{ -+ VAOpenGLVTableP pOpenGLVTable = gl_get_vtable(ctx); -+ const GLenum texture = pSurfaceGLX->texture; -+ const unsigned int texture_width = pSurfaceGLX->width; -+ const unsigned int texture_height = pSurfaceGLX->height; -+ GLuint fbo, fbo_buffer, fbo_texture; -+ GLenum status; -+ -+ glGenTextures(1, &fbo_texture); -+ glBindTexture(GL_TEXTURE_2D, fbo_texture); -+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); -+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); -+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); -+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); -+ glPixelStorei(GL_UNPACK_ALIGNMENT, 4); -+ glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, texture_width, texture_height, 0, -+ GL_BGRA, GL_UNSIGNED_BYTE, NULL); -+ -+ pOpenGLVTable->gl_gen_framebuffers(1, &fbo); -+ pOpenGLVTable->gl_bind_framebuffer(GL_FRAMEBUFFER_EXT, fbo); -+ pOpenGLVTable->gl_gen_renderbuffers(1, &fbo_buffer); -+ pOpenGLVTable->gl_bind_renderbuffer(GL_RENDERBUFFER_EXT, fbo_buffer); -+ -+ glBindTexture(GL_TEXTURE_2D, texture); -+ pOpenGLVTable->gl_framebuffer_texture_2d(GL_FRAMEBUFFER_EXT, -+ GL_COLOR_ATTACHMENT0_EXT, -+ GL_TEXTURE_2D, texture, 0); -+ -+ status = pOpenGLVTable->gl_check_framebuffer_status(GL_DRAW_FRAMEBUFFER_EXT); -+ pOpenGLVTable->gl_bind_framebuffer(GL_FRAMEBUFFER_EXT, 0); -+ if (status != GL_FRAMEBUFFER_COMPLETE_EXT) -+ return -1; -+ -+ pSurfaceGLX->fbo = fbo; -+ pSurfaceGLX->fbo_buffer = fbo_buffer; -+ pSurfaceGLX->fbo_texture = fbo_texture; -+ return 0; -+} -+ -+// Destroy offscreen surface -+static void destroy_fbo_surface(VADriverContextP ctx, VASurfaceGLXP pSurfaceGLX) -+{ -+ VAOpenGLVTableP pOpenGLVTable = gl_get_vtable(ctx); -+ -+ if (pSurfaceGLX->fbo_texture) { -+ glDeleteTextures(1, &pSurfaceGLX->fbo_texture); -+ pSurfaceGLX->fbo_texture = 0; -+ } -+ -+ if (pSurfaceGLX->fbo_buffer) { -+ pOpenGLVTable->gl_delete_renderbuffers(1, &pSurfaceGLX->fbo_buffer); -+ pSurfaceGLX->fbo_buffer = 0; -+ } -+ -+ if (pSurfaceGLX->fbo) { -+ pOpenGLVTable->gl_delete_framebuffers(1, &pSurfaceGLX->fbo); -+ pSurfaceGLX->fbo = 0; -+ } -+} -+ -+// Setup matrices to match the FBO texture dimensions -+static void fbo_enter(VADriverContextP ctx, VASurfaceGLXP pSurfaceGLX) -+{ -+ VAOpenGLVTableP pOpenGLVTable = gl_get_vtable(ctx); -+ const unsigned int width = pSurfaceGLX->width; -+ const unsigned int height = pSurfaceGLX->height; -+ -+ pOpenGLVTable->gl_bind_framebuffer(GL_FRAMEBUFFER_EXT, pSurfaceGLX->fbo); -+ glPushAttrib(GL_VIEWPORT_BIT); -+ glMatrixMode(GL_PROJECTION); -+ glPushMatrix(); -+ glLoadIdentity(); -+ glMatrixMode(GL_MODELVIEW); -+ glPushMatrix(); -+ glLoadIdentity(); -+ glViewport(0, 0, width, height); -+ glTranslatef(-1.0f, -1.0f, 0.0f); -+ glScalef(2.0f / width, 2.0f / height, 1.0f); -+ -+ glBindTexture(GL_TEXTURE_2D, pSurfaceGLX->fbo_texture); -+} -+ -+// Restore original OpenGL matrices -+static void fbo_leave(VADriverContextP ctx) -+{ -+ VAOpenGLVTableP pOpenGLVTable = gl_get_vtable(ctx); -+ -+ glPopAttrib(); -+ glMatrixMode(GL_PROJECTION); -+ glPopMatrix(); -+ glMatrixMode(GL_MODELVIEW); -+ glPopMatrix(); -+ pOpenGLVTable->gl_bind_framebuffer(GL_FRAMEBUFFER_EXT, 0); -+} -+ -+// Create VA/GLX surface -+VASurfaceGLXP -+va_glx_create_surface(VADriverContextP ctx, GLenum target, GLuint texture) -+{ -+ VADriverContextGLXP pDriverContextGLX = VA_DRIVER_CONTEXT_GLX(ctx); -+ VASurfaceGLXP pSurfaceGLX; -+ unsigned int internal_format, border_width, width, height; -+ int is_error = 1; -+ -+ /* Make sure binding succeeds, if texture was not already bound */ -+ struct OpenGLTextureState ts; -+ if (bind_texture(&ts, target, texture) < 0) -+ goto end; -+ -+ pSurfaceGLX = malloc(sizeof(*pSurfaceGLX)); -+ if (!pSurfaceGLX) -+ goto end; -+ -+ pSurfaceGLX->magic = VA_SURFACE_GLX_MAGIC; -+ pSurfaceGLX->target = target; -+ pSurfaceGLX->texture = texture; -+ pSurfaceGLX->surface = VA_INVALID_SURFACE; -+ pSurfaceGLX->is_bound = 0; -+ pSurfaceGLX->pixmap = None; -+ pSurfaceGLX->glx_pixmap = None; -+ pSurfaceGLX->fbo = 0; -+ pSurfaceGLX->fbo_buffer = 0; -+ pSurfaceGLX->fbo_texture = 0; -+ pSurfaceGLX->priv = NULL; -+ -+ /* XXX: we don't support other textures than RGBA */ -+ if (gl_get_texture_param(GL_TEXTURE_INTERNAL_FORMAT, &internal_format) < 0) -+ goto end; -+ if (internal_format != GL_RGBA) -+ goto end; -+ -+ /* Check texture dimensions */ -+ if (gl_get_texture_param(GL_TEXTURE_BORDER, &border_width) < 0) -+ goto end; -+ if (gl_get_texture_param(GL_TEXTURE_WIDTH, &width) < 0) -+ goto end; -+ if (gl_get_texture_param(GL_TEXTURE_HEIGHT, &height) < 0) -+ goto end; -+ -+ width -= 2 * border_width; -+ height -= 2 * border_width; -+ if (width == 0 || height == 0) -+ goto end; -+ -+ pSurfaceGLX->width = width; -+ pSurfaceGLX->height = height; -+ -+ /* Create Pixmaps for TFP */ -+ if (pDriverContextGLX->use_tfp) { -+ if (create_tfp_surface(ctx, pSurfaceGLX) < 0) -+ goto end; -+ } -+ -+ /* Create Pixmaps for FBO */ -+ if (pDriverContextGLX->use_fbo) { -+ if (create_fbo_surface(ctx, pSurfaceGLX) < 0) -+ goto end; -+ } -+ -+ is_error = 0; -+end: -+ if (is_error && pSurfaceGLX) -+ va_glx_destroy_surface(ctx, &pSurfaceGLX); -+ -+ unbind_texture(&ts); -+ return pSurfaceGLX; -+} -+ -+// Destroy VA/GLX surface -+void va_glx_destroy_surface(VADriverContextP ctx, VASurfaceGLXP *ppSurfaceGLX) -+{ -+ VASurfaceGLXP pSurfaceGLX = *ppSurfaceGLX; -+ -+ unbind_pixmap(ctx, pSurfaceGLX); -+ destroy_fbo_surface(ctx, pSurfaceGLX); -+ destroy_tfp_surface(ctx, pSurfaceGLX); -+ -+ free(pSurfaceGLX); -+ *ppSurfaceGLX = NULL; -+} -+ -+ -+/* ========================================================================= */ -+/* === VA/GLX implementation from the driver (fordward calls) === */ -+/* ========================================================================= */ -+ -+#define INVOKE(ctx, func, args) do { \ -+ VADriverVTableGLXP vtable = &(ctx)->vtable.glx; \ -+ if (!vtable->va##func##GLX) \ -+ return VA_STATUS_ERROR_UNIMPLEMENTED; \ -+ \ -+ VAStatus status = vtable->va##func##GLX args; \ -+ if (status != VA_STATUS_SUCCESS) \ -+ return status; \ -+ } while (0) -+ -+static VAStatus -+vaCreateSurfaceGLX_impl_driver( -+ VADriverContextP ctx, -+ GLenum target, -+ GLuint texture, -+ void **gl_surface -+) -+{ -+ INVOKE(ctx, CreateSurface, (ctx, target, texture, gl_surface)); -+ return VA_STATUS_SUCCESS; -+} -+ -+static VAStatus -+vaDestroySurfaceGLX_impl_driver(VADriverContextP ctx, void *gl_surface) -+{ -+ VASurfaceGLXP pSurfaceGLX = gl_surface; -+ -+ INVOKE(ctx, DestroySurface, (ctx, pSurfaceGLX->priv)); -+ return VA_STATUS_SUCCESS; -+} -+ -+static VAStatus -+vaAssociateSurfaceGLX_impl_driver( -+ VADriverContextP ctx, -+ void *gl_surface, -+ VASurfaceID surface, -+ unsigned int flags -+) -+{ -+ VASurfaceGLXP pSurfaceGLX = gl_surface; -+ -+ INVOKE(ctx, AssociateSurface, (ctx, pSurfaceGLX->priv, surface, flags)); -+ return VA_STATUS_SUCCESS; -+} -+ -+static VAStatus -+vaDeassociateSurfaceGLX_impl_driver(VADriverContextP ctx, void *gl_surface) -+{ -+ VASurfaceGLXP pSurfaceGLX = gl_surface; -+ -+ INVOKE(ctx, DeassociateSurface, (ctx, pSurfaceGLX->priv)); -+ return VA_STATUS_SUCCESS; -+} -+ -+static VAStatus -+vaSyncSurfaceGLX_impl_driver(VADriverContextP ctx, void *gl_surface) -+{ -+ VASurfaceGLXP pSurfaceGLX = gl_surface; -+ -+ INVOKE(ctx, SyncSurface, (ctx, pSurfaceGLX->priv)); -+ return VA_STATUS_SUCCESS; -+} -+ -+static VAStatus -+vaBeginRenderSurfaceGLX_impl_driver(VADriverContextP ctx, void *gl_surface) -+{ -+ VASurfaceGLXP pSurfaceGLX = gl_surface; -+ -+ INVOKE(ctx, BeginRenderSurface, (ctx, pSurfaceGLX->priv)); -+ return VA_STATUS_SUCCESS; -+} -+ -+static VAStatus -+vaEndRenderSurfaceGLX_impl_driver(VADriverContextP ctx, void *gl_surface) -+{ -+ VASurfaceGLXP pSurfaceGLX = gl_surface; -+ -+ INVOKE(ctx, EndRenderSurface, (ctx, pSurfaceGLX->priv)); -+ return VA_STATUS_SUCCESS; -+} -+ -+static VAStatus -+vaCopySurfaceGLX_impl_driver( -+ VADriverContextP ctx, -+ void *gl_surface, -+ VASurfaceID surface, -+ unsigned int flags -+) -+{ -+ VASurfaceGLXP pSurfaceGLX = gl_surface; -+ -+ INVOKE(ctx, CopySurface, (ctx, pSurfaceGLX->priv, surface, flags)); -+ return VA_STATUS_SUCCESS; -+} -+ -+#undef INVOKE -+ -+ -+/* ========================================================================= */ -+/* === VA/GLX implementation from libVA (generic and suboptimal path) === */ -+/* ========================================================================= */ -+ -+static VAStatus -+vaCreateSurfaceGLX_impl_libva( -+ VADriverContextP ctx, -+ GLenum target, -+ GLuint texture, -+ void **gl_surface -+) -+{ -+ VADriverContextGLXP pDriverContextGLX = VA_DRIVER_CONTEXT_GLX(ctx); -+ -+ if (!pDriverContextGLX->use_tfp) -+ return VA_STATUS_ERROR_UNIMPLEMENTED; -+ -+ *gl_surface = NULL; -+ return VA_STATUS_SUCCESS; -+} -+ -+static VAStatus -+vaDestroySurfaceGLX_impl_libva(VADriverContextP ctx, void *gl_surface) -+{ -+ VADriverContextGLXP pDriverContextGLX = VA_DRIVER_CONTEXT_GLX(ctx); -+ -+ if (!pDriverContextGLX->use_tfp) -+ return VA_STATUS_ERROR_UNIMPLEMENTED; -+ -+ return VA_STATUS_SUCCESS; -+} -+ -+static VAStatus -+vaAssociateSurfaceGLX_impl_libva( -+ VADriverContextP ctx, -+ void *gl_surface, -+ VASurfaceID surface, -+ unsigned int flags -+) -+{ -+ VADriverContextGLXP pDriverContextGLX = VA_DRIVER_CONTEXT_GLX(ctx); -+ VADriverVTableGLXP vtable = &pDriverContextGLX->vtable; -+ VASurfaceGLXP pSurfaceGLX = gl_surface; -+ VAStatus status; -+ -+ if (!pDriverContextGLX->use_tfp) -+ return VA_STATUS_ERROR_UNIMPLEMENTED; -+ -+ /* XXX: only support VA_FRAME_PICTURE */ -+ if (flags != VA_FRAME_PICTURE) -+ return VA_STATUS_ERROR_FLAG_NOT_SUPPORTED; -+ -+ /* XXX: optimise case where we are associating the same VA surface -+ as before an no changed occurred to it */ -+ status = vtable->vaDeassociateSurfaceGLX(ctx, gl_surface); -+ if (status != VA_STATUS_SUCCESS) -+ return status; -+ -+ x11_trap_errors(); -+ status = ctx->vtable.vaPutSurface(ctx, -+ surface, -+ pSurfaceGLX->pixmap, -+ 0, 0, -+ pSurfaceGLX->width, -+ pSurfaceGLX->height, -+ 0, 0, -+ pSurfaceGLX->width, -+ pSurfaceGLX->height, -+ NULL, 0, -+ flags); -+ XSync(ctx->x11_dpy, False); -+ if (x11_untrap_errors() != 0) -+ return VA_STATUS_ERROR_OPERATION_FAILED; -+ if (status != VA_STATUS_SUCCESS) -+ return status; -+ -+ pSurfaceGLX->surface = surface; -+ return VA_STATUS_SUCCESS; -+} -+ -+static VAStatus -+vaDeassociateSurfaceGLX_impl_libva(VADriverContextP ctx, void *gl_surface) -+{ -+ VADriverContextGLXP pDriverContextGLX = VA_DRIVER_CONTEXT_GLX(ctx); -+ VASurfaceGLXP pSurfaceGLX = gl_surface; -+ -+ if (!pDriverContextGLX->use_tfp) -+ return VA_STATUS_ERROR_UNIMPLEMENTED; -+ -+ if (unbind_pixmap(ctx, pSurfaceGLX) < 0) -+ return VA_STATUS_ERROR_OPERATION_FAILED; -+ -+ pSurfaceGLX->surface = VA_INVALID_SURFACE; -+ return VA_STATUS_SUCCESS; -+} -+ -+static VAStatus -+vaSyncSurfaceGLX_impl_libva(VADriverContextP ctx, void *gl_surface) -+{ -+ VADriverContextGLXP pDriverContextGLX = VA_DRIVER_CONTEXT_GLX(ctx); -+ VASurfaceGLXP pSurfaceGLX = gl_surface; -+ -+ if (!pDriverContextGLX->use_tfp) -+ return VA_STATUS_ERROR_UNIMPLEMENTED; -+ -+ if (pSurfaceGLX->surface == VA_INVALID_SURFACE) -+ return VA_STATUS_ERROR_INVALID_SURFACE; -+ -+ return ctx->vtable.vaSyncSurface(ctx, pSurfaceGLX->surface); -+} -+ -+static VAStatus -+vaBeginRenderSurfaceGLX_impl_libva(VADriverContextP ctx, void *gl_surface) -+{ -+ VADriverContextGLXP pDriverContextGLX = VA_DRIVER_CONTEXT_GLX(ctx); -+ VASurfaceGLXP pSurfaceGLX = gl_surface; -+ VAStatus status; -+ -+ if (!pDriverContextGLX->use_tfp) -+ return VA_STATUS_ERROR_UNIMPLEMENTED; -+ -+ status = vaSyncSurfaceGLX_impl_libva(ctx, gl_surface); -+ if (status != VA_STATUS_SUCCESS) -+ return status; -+ -+ if (bind_pixmap(ctx, pSurfaceGLX) < 0) -+ return VA_STATUS_ERROR_OPERATION_FAILED; -+ -+ return VA_STATUS_SUCCESS; -+} -+ -+static VAStatus -+vaEndRenderSurfaceGLX_impl_libva(VADriverContextP ctx, void *gl_surface) -+{ -+ VADriverContextGLXP pDriverContextGLX = VA_DRIVER_CONTEXT_GLX(ctx); -+ VASurfaceGLXP pSurfaceGLX = gl_surface; -+ VAStatus status; -+ -+ if (!pDriverContextGLX->use_tfp) -+ return VA_STATUS_ERROR_UNIMPLEMENTED; -+ -+ if (unbind_pixmap(ctx, pSurfaceGLX) < 0) -+ return VA_STATUS_ERROR_OPERATION_FAILED; -+ -+ return VA_STATUS_SUCCESS; -+} -+ -+static VAStatus -+vaCopySurfaceGLX_impl_libva( -+ VADriverContextP ctx, -+ void *gl_surface, -+ VASurfaceID surface, -+ unsigned int flags -+) -+{ -+ VADriverContextGLXP pDriverContextGLX = VA_DRIVER_CONTEXT_GLX(ctx); -+ VADriverVTableGLXP vtable = &pDriverContextGLX->vtable; -+ VASurfaceGLXP pSurfaceGLX = gl_surface; -+ VAStatus status; -+ -+ if (!pDriverContextGLX->use_fbo) -+ return VA_STATUS_ERROR_UNIMPLEMENTED; -+ -+ /* XXX: only support VA_FRAME_PICTURE */ -+ if (flags != VA_FRAME_PICTURE) -+ return VA_STATUS_ERROR_FLAG_NOT_SUPPORTED; -+ -+ /* Associate VA surface */ -+ status = vtable->vaAssociateSurfaceGLX(ctx, gl_surface, surface, flags); -+ if (status != VA_STATUS_SUCCESS) -+ return status; -+ -+ /* Make sure binding succeeds, if texture was not already bound */ -+ struct OpenGLTextureState ts; -+ if (bind_texture(&ts, pSurfaceGLX->target, pSurfaceGLX->texture) < 0) -+ return VA_STATUS_ERROR_OPERATION_FAILED; -+ -+ /* Render to FBO */ -+ fbo_enter(ctx, pSurfaceGLX); -+ status = vtable->vaBeginRenderSurfaceGLX(ctx, gl_surface); -+ if (status == VA_STATUS_SUCCESS) { -+ render_pixmap(ctx, pSurfaceGLX); -+ status = vtable->vaEndRenderSurfaceGLX(ctx, gl_surface); -+ } -+ fbo_leave(ctx); -+ unbind_texture(&ts); -+ if (status != VA_STATUS_SUCCESS) -+ return status; -+ -+ return vtable->vaDeassociateSurfaceGLX(ctx, gl_surface); -+} -+ -+ -+/* ========================================================================= */ -+/* === VA/GLX bind functions implementation with vaCopySurfaceGLX() === */ -+/* ========================================================================= */ -+ -+static VAStatus -+vaAssociateSurfaceGLX_impl_bind( -+ VADriverContextP ctx, -+ void *gl_surface, -+ VASurfaceID surface, -+ unsigned int flags -+) -+{ -+ VADriverContextGLXP pDriverContextGLX = VA_DRIVER_CONTEXT_GLX(ctx); -+ VADriverVTableGLXP vtable = &pDriverContextGLX->vtable; -+ VASurfaceGLXP pSurfaceGLX = gl_surface; -+ VAStatus status; -+ -+ if (!pDriverContextGLX->has_copy) -+ return VA_STATUS_ERROR_UNIMPLEMENTED; -+ -+ status = vtable->vaCopySurfaceGLX(ctx, gl_surface, surface, flags); -+ if (status != VA_STATUS_SUCCESS) -+ return status; -+ -+ pSurfaceGLX->surface = surface; -+ return VA_STATUS_SUCCESS; -+} -+ -+static VAStatus -+vaDeassociateSurfaceGLX_impl_bind(VADriverContextP ctx, void *gl_surface) -+{ -+ VADriverContextGLXP pDriverContextGLX = VA_DRIVER_CONTEXT_GLX(ctx); -+ VASurfaceGLXP pSurfaceGLX = gl_surface; -+ -+ if (!pDriverContextGLX->has_copy) -+ return VA_STATUS_ERROR_UNIMPLEMENTED; -+ -+ pSurfaceGLX->surface = VA_INVALID_SURFACE; -+ return VA_STATUS_SUCCESS; -+} -+ -+static VAStatus -+vaBeginRenderSurfaceGLX_impl_bind(VADriverContextP ctx, void *gl_surface) -+{ -+ /* Surface is already copied into the texture, in vaAssociateSurfaceGLX() */ -+ return VA_STATUS_SUCCESS; -+} -+ -+static VAStatus -+vaEndRenderSurfaceGLX_impl_bind(VADriverContextP ctx, void *gl_surface) -+{ -+ return VA_STATUS_SUCCESS; -+} -+ -+ -+/* ========================================================================= */ -+/* === Private VA/GLX vtable initialization === */ -+/* ========================================================================= */ -+ -+// Initialize GLX driver context -+VAStatus va_glx_init_context(VADriverContextP ctx) -+{ -+ VADriverContextGLXP glx_ctx = VA_DRIVER_CONTEXT_GLX(ctx); -+ VADriverVTableGLXP vtable = &glx_ctx->vtable; -+ int needs_tfp = 0, needs_fbo = 0; -+ -+ if (glx_ctx->is_initialized) -+ return VA_STATUS_SUCCESS; -+ -+ glx_ctx->has_copy = ctx->vtable.glx.vaCopySurfaceGLX != NULL; -+ glx_ctx->has_bind = (ctx->vtable.glx.vaAssociateSurfaceGLX != NULL && -+ ctx->vtable.glx.vaBeginRenderSurfaceGLX != NULL && -+ ctx->vtable.glx.vaEndRenderSurfaceGLX != NULL && -+ ctx->vtable.glx.vaDeassociateSurfaceGLX != NULL); -+ -+ switch ((((unsigned int)glx_ctx->has_bind) << 1) | glx_ctx->has_copy) { -+ case 0: -+ /* Full implementation in libVA */ -+ needs_tfp = 1; -+ needs_fbo = 1; -+ vtable->vaCreateSurfaceGLX = vaCreateSurfaceGLX_impl_libva; -+ vtable->vaDestroySurfaceGLX = vaDestroySurfaceGLX_impl_libva; -+ vtable->vaAssociateSurfaceGLX = vaAssociateSurfaceGLX_impl_libva; -+ vtable->vaDeassociateSurfaceGLX = vaDeassociateSurfaceGLX_impl_libva; -+ vtable->vaBeginRenderSurfaceGLX = vaBeginRenderSurfaceGLX_impl_libva; -+ vtable->vaEndRenderSurfaceGLX = vaEndRenderSurfaceGLX_impl_libva; -+ vtable->vaSyncSurfaceGLX = vaSyncSurfaceGLX_impl_libva; -+ vtable->vaCopySurfaceGLX = vaCopySurfaceGLX_impl_libva; -+ break; -+ case 1: -+ /* Add bind functions based on vaCopySurfaceGLX() */ -+ /* XXX: override vaSyncSurfaceGLX()? */ -+ vtable->vaCreateSurfaceGLX = vaCreateSurfaceGLX_impl_driver; -+ vtable->vaDestroySurfaceGLX = vaDestroySurfaceGLX_impl_driver; -+ vtable->vaAssociateSurfaceGLX = vaAssociateSurfaceGLX_impl_bind; -+ vtable->vaDeassociateSurfaceGLX = vaDeassociateSurfaceGLX_impl_bind; -+ vtable->vaBeginRenderSurfaceGLX = vaBeginRenderSurfaceGLX_impl_bind; -+ vtable->vaEndRenderSurfaceGLX = vaEndRenderSurfaceGLX_impl_bind; -+ vtable->vaSyncSurfaceGLX = vaSyncSurfaceGLX_impl_driver; -+ vtable->vaCopySurfaceGLX = vaCopySurfaceGLX_impl_driver; -+ break; -+ case 2: -+ /* Add copy function based on vaBeginRenderSurfaceGLX() et al. */ -+ needs_fbo = 1; -+ vtable->vaCreateSurfaceGLX = vaCreateSurfaceGLX_impl_driver; -+ vtable->vaDestroySurfaceGLX = vaDestroySurfaceGLX_impl_driver; -+ vtable->vaAssociateSurfaceGLX = vaAssociateSurfaceGLX_impl_driver; -+ vtable->vaDeassociateSurfaceGLX = vaDeassociateSurfaceGLX_impl_driver; -+ vtable->vaBeginRenderSurfaceGLX = vaBeginRenderSurfaceGLX_impl_driver; -+ vtable->vaEndRenderSurfaceGLX = vaEndRenderSurfaceGLX_impl_driver; -+ vtable->vaSyncSurfaceGLX = vaSyncSurfaceGLX_impl_driver; -+ vtable->vaCopySurfaceGLX = vaCopySurfaceGLX_impl_libva; -+ break; -+ case 3: -+ /* Keep driver bind & copy functions */ -+ vtable->vaCreateSurfaceGLX = vaCreateSurfaceGLX_impl_driver; -+ vtable->vaDestroySurfaceGLX = vaDestroySurfaceGLX_impl_driver; -+ vtable->vaAssociateSurfaceGLX = vaAssociateSurfaceGLX_impl_driver; -+ vtable->vaDeassociateSurfaceGLX = vaDeassociateSurfaceGLX_impl_driver; -+ vtable->vaBeginRenderSurfaceGLX = vaBeginRenderSurfaceGLX_impl_driver; -+ vtable->vaEndRenderSurfaceGLX = vaEndRenderSurfaceGLX_impl_driver; -+ vtable->vaSyncSurfaceGLX = vaSyncSurfaceGLX_impl_driver; -+ vtable->vaCopySurfaceGLX = vaCopySurfaceGLX_impl_driver; -+ break; -+ default: -+ /* Fatal error: this cannot happen */ -+ assert(0); -+ return VA_STATUS_ERROR_UNKNOWN; -+ } -+ -+ glx_ctx->has_tfp = 0; -+ glx_ctx->use_tfp = 0; -+ glx_ctx->has_fbo = 0; -+ glx_ctx->use_fbo = 0; -+ -+ if (needs_tfp) { -+ glx_ctx->has_tfp = check_tfp_extensions(ctx); -+ if (!glx_ctx->has_tfp || !load_tfp_extensions(ctx)) -+ return VA_STATUS_ERROR_UNIMPLEMENTED; -+ glx_ctx->use_tfp = 1; -+ } -+ -+ if (needs_fbo) { -+ glx_ctx->has_fbo = check_fbo_extensions(ctx); -+ if (!glx_ctx->has_fbo || !load_fbo_extensions(ctx)) -+ return VA_STATUS_ERROR_UNIMPLEMENTED; -+ glx_ctx->use_fbo = 1; -+ } -+ -+ glx_ctx->is_initialized = 1; -+ return VA_STATUS_SUCCESS; -+} -diff -Naur libva-0.31.0/src/glx/va_glx_impl.h libva-0.31.0.patch/src/glx/va_glx_impl.h ---- libva-0.31.0/src/glx/va_glx_impl.h 1970-01-01 01:00:00.000000000 +0100 -+++ libva-0.31.0.patch/src/glx/va_glx_impl.h 2009-12-15 13:45:21.407448519 +0100 -@@ -0,0 +1,46 @@ -+/* -+ * Copyright (C) 2009 Splitted-Desktop Systems. All Rights Reserved. -+ * -+ * 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, sub license, 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 PRECISION INSIGHT AND/OR ITS 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 VA_GLX_IMPL_H -+#define VA_GLX_IMPL_H -+ -+/** -+ * Initialize GLX driver context -+ * -+ * @param[in] ctx the VA driver context -+ * @return VA_STATUS_SUCCESS if successful -+ */ -+VAStatus va_glx_init_context(VADriverContextP ctx) -+ ATTRIBUTE_HIDDEN; -+ -+/** Create VA/GLX surface */ -+VASurfaceGLXP -+va_glx_create_surface(VADriverContextP ctx, GLenum target, GLuint texture) -+ ATTRIBUTE_HIDDEN; -+ -+/** Destroy VA/GLX surface */ -+void va_glx_destroy_surface(VADriverContextP ctx, VASurfaceGLXP *pSurfaceGLX) -+ ATTRIBUTE_HIDDEN; -+ -+#endif /* VA_GLX_IMPL_H */ -diff -Naur libva-0.31.0/src/glx/va_glx_private.h libva-0.31.0.patch/src/glx/va_glx_private.h ---- libva-0.31.0/src/glx/va_glx_private.h 1970-01-01 01:00:00.000000000 +0100 -+++ libva-0.31.0.patch/src/glx/va_glx_private.h 2009-12-15 13:45:21.408448777 +0100 -@@ -0,0 +1,98 @@ -+/* -+ * Copyright (C) 2009 Splitted-Desktop Systems. All Rights Reserved. -+ * -+ * 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, sub license, 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 PRECISION INSIGHT AND/OR ITS 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 VA_GLX_PRIVATE_H -+#define VA_GLX_PRIVATE_H -+ -+#include "config.h" -+#include "va.h" -+#include "va_backend.h" -+#include "va_x11.h" -+#include "va_glx.h" -+ -+#if GLX_GLXEXT_VERSION < 18 -+typedef void (*PFNGLXBINDTEXIMAGEEXTPROC)(Display *, GLXDrawable, int, const int *); -+typedef void (*PFNGLXRELEASETEXIMAGEEXTPROC)(Display *, GLXDrawable, int); -+#endif -+ -+typedef struct VAOpenGLVTable *VAOpenGLVTableP; -+ -+struct VAOpenGLVTable { -+ PFNGLXBINDTEXIMAGEEXTPROC glx_bind_tex_image; -+ PFNGLXRELEASETEXIMAGEEXTPROC glx_release_tex_image; -+ PFNGLGENFRAMEBUFFERSEXTPROC gl_gen_framebuffers; -+ PFNGLDELETEFRAMEBUFFERSEXTPROC gl_delete_framebuffers; -+ PFNGLBINDFRAMEBUFFEREXTPROC gl_bind_framebuffer; -+ PFNGLGENRENDERBUFFERSEXTPROC gl_gen_renderbuffers; -+ PFNGLDELETERENDERBUFFERSEXTPROC gl_delete_renderbuffers; -+ PFNGLBINDRENDERBUFFEREXTPROC gl_bind_renderbuffer; -+ PFNGLRENDERBUFFERSTORAGEEXTPROC gl_renderbuffer_storage; -+ PFNGLFRAMEBUFFERRENDERBUFFEREXTPROC gl_framebuffer_renderbuffer; -+ PFNGLFRAMEBUFFERTEXTURE2DEXTPROC gl_framebuffer_texture_2d; -+ PFNGLCHECKFRAMEBUFFERSTATUSEXTPROC gl_check_framebuffer_status; -+}; -+ -+typedef struct VADisplayContextGLX *VADisplayContextGLXP; -+typedef struct VADriverContextGLX *VADriverContextGLXP; -+typedef struct VASurfaceGLX *VASurfaceGLXP; -+typedef struct VADriverVTableGLX *VADriverVTableGLXP; -+ -+struct VADisplayContextGLX { -+ void (*vaDestroy)(VADisplayContextP ctx); -+}; -+ -+#define VA_DRIVER_CONTEXT_GLX(ctx) ((VADriverContextGLXP)((ctx)->glx)) -+ -+struct VADriverContextGLX { -+ struct VADriverVTableGLX vtable; -+ struct VAOpenGLVTable gl_vtable; -+ unsigned int is_initialized : 1; -+ unsigned int has_copy : 1; -+ unsigned int has_bind : 1; -+ unsigned int has_tfp : 1; -+ unsigned int has_fbo : 1; -+ unsigned int use_tfp : 1; -+ unsigned int use_fbo : 1; -+}; -+ -+/** Unique VASurfaceGLX identifier */ -+#define VA_SURFACE_GLX_MAGIC VA_FOURCC('V','A','G','L') -+ -+struct VASurfaceGLX { -+ uint32_t magic; ///< Magic number identifying a VASurfaceGLX -+ GLenum target; ///< GL target to which the texture is bound -+ GLuint texture; ///< GL texture -+ VASurfaceID surface; ///< Associated VA surface -+ unsigned int width; -+ unsigned int height; -+ int is_bound; -+ Pixmap pixmap; -+ GLXPixmap glx_pixmap; -+ GLuint fbo; -+ GLuint fbo_buffer; -+ GLuint fbo_texture; -+ void *priv; ///< Private VA/GLX surface data from driver -+}; -+ -+#endif /* VA_GLX_PRIVATE_H */ -diff -Naur libva-0.31.0/src/Makefile.am libva-0.31.0.patch/src/Makefile.am ---- libva-0.31.0/src/Makefile.am 2009-09-10 17:18:49.000000000 +0200 -+++ libva-0.31.0.patch/src/Makefile.am 2009-12-15 13:45:34.214447499 +0100 -@@ -28,22 +28,37 @@ - LDADD = \ - $(LIBVA_LT_LDFLAGS) - --lib_LTLIBRARIES = \ -- libva.la \ -- libva-x11.la -+libva_x11_backend = libva-x11.la -+libva_x11_backenddir = x11 -+if USE_GLX -+libva_glx_backend = libva-glx.la -+libva_glx_backenddir = glx -+else -+libva_glx_backend = -+libva_glx_backenddir = -+endif -+ -+lib_LTLIBRARIES = libva.la $(libva_x11_backend) $(libva_glx_backend) - - libva_ladir = $(libdir) - libva_la_LDFLAGS = $(LDADD) -no-undefined - libva_la_LIBADD = $(LIBVA_LIBS) -ldl - - libva_x11_la_SOURCES = --libva_x11_la_LIBADD = $(libvacorelib) x11/libva_x11.la $(LIBVA_LIBS) $(X11_LIBS) $(XEXT_LIBS) $(DRM_LIBS) $(XFIXES_LIBS) -+libva_x11_la_LIBADD = $(libvacorelib) x11/libva_x11.la $(LIBVA_LIBS) $(X11_LIBS) $(XEXT_LIBS) $(XFIXES_LIBS) -ldl - libva_x11_la_LDFLAGS = $(LDADD) - libva_x11_la_DEPENDENCIES = $(libvacorelib) x11/libva_x11.la - --SUBDIRS = x11 -+libva_glx_la_SOURCES = -+libva_glx_la_LIBADD = $(libvacorelib) glx/libva_glx.la libva-x11.la $(GL_DEPS_LIBS) -ldl -+libva_glx_la_LDFLAGS = $(LDADD) -+libva_glx_la_DEPENDENCIES = $(libvacorelib) glx/libva_glx.la libva-x11.la -+ -+SUBDIRS = $(libva_x11_backenddir) $(libva_glx_backenddir) -+ -+DIST_SUBDIRS = x11 glx - --libva_la_SOURCES = va.c -+libva_la_SOURCES = va.c va_compat.c - - libvaincludedir = ${includedir}/va - libvainclude_HEADERS = va.h va_backend.h va_version.h -@@ -52,4 +67,13 @@ - va_version.h - - EXTRA_DIST = \ -- va_version.h.in -+ va_version.h.in \ -+ va_compat.h \ -+ va_compat_template.h -+ -+va_compat.c: va_compat_template.h -+ -+lib_LTLIBRARIES += libva-compat.la -+libva_compat_la_SOURCES = va_compat_lib.c -+libva_compat_la_LIBADD = libva-x11.la -ldl -+libva_compat_la_DEPENDENCIES = libva-x11.la -diff -Naur libva-0.31.0/src/Makefile.am.orig libva-0.31.0.patch/src/Makefile.am.orig -diff -Naur libva-0.31.0/src/Makefile.in libva-0.31.0.patch/src/Makefile.in ---- libva-0.31.0/src/Makefile.in 2009-09-10 17:18:49.000000000 +0200 -+++ libva-0.31.0.patch/src/Makefile.in 2009-12-15 13:51:56.104446602 +0100 -@@ -1,8 +1,9 @@ --# Makefile.in generated by automake 1.10.1 from Makefile.am. -+# Makefile.in generated by automake 1.11 from Makefile.am. - # @configure_input@ - - # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, --# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. -+# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -+# Inc. - # This Makefile.in is free software; the Free Software Foundation - # gives unlimited permission to copy and/or distribute it, - # with or without modifications, as long as this notice is preserved. -@@ -39,8 +40,9 @@ - - VPATH = @srcdir@ - pkgdatadir = $(datadir)/@PACKAGE@ --pkglibdir = $(libdir)/@PACKAGE@ - pkgincludedir = $(includedir)/@PACKAGE@ -+pkglibdir = $(libdir)/@PACKAGE@ -+pkglibexecdir = $(libexecdir)/@PACKAGE@ - am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd - install_sh_DATA = $(install_sh) -c -m 644 - install_sh_PROGRAM = $(install_sh) -c -@@ -59,29 +61,55 @@ - DIST_COMMON = $(libvainclude_HEADERS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in $(srcdir)/va_version.h.in - ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 --am__aclocal_m4_deps = $(top_srcdir)/configure.ac -+am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ -+ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ -+ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ -+ $(top_srcdir)/configure.ac - am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) - mkinstalldirs = $(install_sh) -d - CONFIG_HEADER = $(top_builddir)/config.h - CONFIG_CLEAN_FILES = va_version.h -+CONFIG_CLEAN_VPATH_FILES = - am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; - am__vpath_adj = case $$p in \ - $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ - *) f=$$p;; \ - esac; --am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; -+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; -+am__install_max = 40 -+am__nobase_strip_setup = \ -+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` -+am__nobase_strip = \ -+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" -+am__nobase_list = $(am__nobase_strip_setup); \ -+ for p in $$list; do echo "$$p $$p"; done | \ -+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ -+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ -+ if (++n[$$2] == $(am__install_max)) \ -+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ -+ END { for (dir in files) print dir, files[dir] }' -+am__base_list = \ -+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ -+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' - am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(libvaincludedir)" --libLTLIBRARIES_INSTALL = $(INSTALL) - LTLIBRARIES = $(lib_LTLIBRARIES) -+am_libva_compat_la_OBJECTS = va_compat_lib.lo -+libva_compat_la_OBJECTS = $(am_libva_compat_la_OBJECTS) - am__DEPENDENCIES_1 = -+am_libva_glx_la_OBJECTS = -+libva_glx_la_OBJECTS = $(am_libva_glx_la_OBJECTS) -+libva_glx_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ -+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ -+ $(libva_glx_la_LDFLAGS) $(LDFLAGS) -o $@ -+@USE_GLX_TRUE@am_libva_glx_la_rpath = -rpath $(libdir) - am_libva_x11_la_OBJECTS = - libva_x11_la_OBJECTS = $(am_libva_x11_la_OBJECTS) - libva_x11_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(libva_x11_la_LDFLAGS) $(LDFLAGS) -o $@ - libva_la_DEPENDENCIES = $(am__DEPENDENCIES_1) --am_libva_la_OBJECTS = va.lo -+am_libva_la_OBJECTS = va.lo va_compat.lo - libva_la_OBJECTS = $(am_libva_la_OBJECTS) - libva_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(libva_la_LDFLAGS) \ -@@ -89,6 +117,7 @@ - DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) - depcomp = $(SHELL) $(top_srcdir)/depcomp - am__depfiles_maybe = depfiles -+am__mv = mv -f - COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ - $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) - LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ -@@ -98,8 +127,10 @@ - LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ - $(LDFLAGS) -o $@ --SOURCES = $(libva_x11_la_SOURCES) $(libva_la_SOURCES) --DIST_SOURCES = $(libva_x11_la_SOURCES) $(libva_la_SOURCES) -+SOURCES = $(libva_compat_la_SOURCES) $(libva_glx_la_SOURCES) \ -+ $(libva_x11_la_SOURCES) $(libva_la_SOURCES) -+DIST_SOURCES = $(libva_compat_la_SOURCES) $(libva_glx_la_SOURCES) \ -+ $(libva_x11_la_SOURCES) $(libva_la_SOURCES) - RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ - html-recursive info-recursive install-data-recursive \ - install-dvi-recursive install-exec-recursive \ -@@ -107,14 +138,40 @@ - install-pdf-recursive install-ps-recursive install-recursive \ - installcheck-recursive installdirs-recursive pdf-recursive \ - ps-recursive uninstall-recursive --libvaincludeHEADERS_INSTALL = $(INSTALL_HEADER) - HEADERS = $(libvainclude_HEADERS) - RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ - distclean-recursive maintainer-clean-recursive -+AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ -+ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ -+ distdir - ETAGS = etags - CTAGS = ctags --DIST_SUBDIRS = $(SUBDIRS) - DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -+am__relativize = \ -+ dir0=`pwd`; \ -+ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ -+ sed_rest='s,^[^/]*/*,,'; \ -+ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ -+ sed_butlast='s,/*[^/]*$$,,'; \ -+ while test -n "$$dir1"; do \ -+ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ -+ if test "$$first" != "."; then \ -+ if test "$$first" = ".."; then \ -+ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ -+ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ -+ else \ -+ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ -+ if test "$$first2" = "$$first"; then \ -+ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ -+ else \ -+ dir2="../$$dir2"; \ -+ fi; \ -+ dir0="$$dir0"/"$$first"; \ -+ fi; \ -+ fi; \ -+ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ -+ done; \ -+ reldir="$$dir2" - ACLOCAL = @ACLOCAL@ - AMTAR = @AMTAR@ - AR = @AR@ -@@ -127,38 +184,35 @@ - CFLAGS = @CFLAGS@ - CPP = @CPP@ - CPPFLAGS = @CPPFLAGS@ --CXX = @CXX@ --CXXCPP = @CXXCPP@ --CXXDEPMODE = @CXXDEPMODE@ --CXXFLAGS = @CXXFLAGS@ - CYGPATH_W = @CYGPATH_W@ - DEFS = @DEFS@ - DEPDIR = @DEPDIR@ - DRM_CFLAGS = @DRM_CFLAGS@ - DRM_LIBS = @DRM_LIBS@ - DSYMUTIL = @DSYMUTIL@ --ECHO = @ECHO@ -+DUMPBIN = @DUMPBIN@ - ECHO_C = @ECHO_C@ - ECHO_N = @ECHO_N@ - ECHO_T = @ECHO_T@ - EGREP = @EGREP@ - EXEEXT = @EXEEXT@ --F77 = @F77@ --FFLAGS = @FFLAGS@ -+FGREP = @FGREP@ - GEN4ASM_CFLAGS = @GEN4ASM_CFLAGS@ - GEN4ASM_LIBS = @GEN4ASM_LIBS@ -+GL_DEPS_CFLAGS = @GL_DEPS_CFLAGS@ -+GL_DEPS_LIBS = @GL_DEPS_LIBS@ - GREP = @GREP@ - INSTALL = @INSTALL@ - INSTALL_DATA = @INSTALL_DATA@ - INSTALL_PROGRAM = @INSTALL_PROGRAM@ - INSTALL_SCRIPT = @INSTALL_SCRIPT@ - INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -+LD = @LD@ - LDFLAGS = @LDFLAGS@ - LIBOBJS = @LIBOBJS@ - LIBS = @LIBS@ - LIBTOOL = @LIBTOOL@ - LIBVA_CFLAGS = @LIBVA_CFLAGS@ --LIBVA_DISPLAY = @LIBVA_DISPLAY@ - LIBVA_DRIVERS_PATH = @LIBVA_DRIVERS_PATH@ - LIBVA_LIBS = @LIBVA_LIBS@ - LIBVA_LT_LDFLAGS = @LIBVA_LT_LDFLAGS@ -@@ -166,13 +220,19 @@ - LIBVA_MAJOR_VERSION = @LIBVA_MAJOR_VERSION@ - LIBVA_MICRO_VERSION = @LIBVA_MICRO_VERSION@ - LIBVA_MINOR_VERSION = @LIBVA_MINOR_VERSION@ -+LIBVA_SDS_VERSION = @LIBVA_SDS_VERSION@ - LIBVA_VERSION = @LIBVA_VERSION@ -+LIPO = @LIPO@ - LN_S = @LN_S@ - LTLIBOBJS = @LTLIBOBJS@ - MAKEINFO = @MAKEINFO@ - MKDIR_P = @MKDIR_P@ -+NM = @NM@ - NMEDIT = @NMEDIT@ -+OBJDUMP = @OBJDUMP@ - OBJEXT = @OBJEXT@ -+OTOOL = @OTOOL@ -+OTOOL64 = @OTOOL64@ - PACKAGE = @PACKAGE@ - PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ - PACKAGE_NAME = @PACKAGE_NAME@ -@@ -198,8 +258,7 @@ - abs_top_builddir = @abs_top_builddir@ - abs_top_srcdir = @abs_top_srcdir@ - ac_ct_CC = @ac_ct_CC@ --ac_ct_CXX = @ac_ct_CXX@ --ac_ct_F77 = @ac_ct_F77@ -+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ - am__include = @am__include@ - am__leading_dot = @am__leading_dot@ - am__quote = @am__quote@ -@@ -232,6 +291,7 @@ - libvacorelib = @libvacorelib@ - localedir = @localedir@ - localstatedir = @localstatedir@ -+lt_ECHO = @lt_ECHO@ - mandir = @mandir@ - mkdir_p = @mkdir_p@ - oldincludedir = @oldincludedir@ -@@ -245,6 +305,7 @@ - srcdir = @srcdir@ - sysconfdir = @sysconfdir@ - target_alias = @target_alias@ -+top_build_prefix = @top_build_prefix@ - top_builddir = @top_builddir@ - top_srcdir = @top_srcdir@ - INCLUDES = \ -@@ -255,27 +316,41 @@ - LDADD = \ - $(LIBVA_LT_LDFLAGS) - --lib_LTLIBRARIES = \ -- libva.la \ -- libva-x11.la -- -+libva_x11_backend = libva-x11.la -+libva_x11_backenddir = x11 -+@USE_GLX_FALSE@libva_glx_backend = -+@USE_GLX_TRUE@libva_glx_backend = libva-glx.la -+@USE_GLX_FALSE@libva_glx_backenddir = -+@USE_GLX_TRUE@libva_glx_backenddir = glx -+lib_LTLIBRARIES = libva.la $(libva_x11_backend) $(libva_glx_backend) \ -+ libva-compat.la - libva_ladir = $(libdir) - libva_la_LDFLAGS = $(LDADD) -no-undefined - libva_la_LIBADD = $(LIBVA_LIBS) -ldl - libva_x11_la_SOURCES = --libva_x11_la_LIBADD = $(libvacorelib) x11/libva_x11.la $(LIBVA_LIBS) $(X11_LIBS) $(XEXT_LIBS) $(DRM_LIBS) $(XFIXES_LIBS) -+libva_x11_la_LIBADD = $(libvacorelib) x11/libva_x11.la $(LIBVA_LIBS) $(X11_LIBS) $(XEXT_LIBS) $(XFIXES_LIBS) -ldl - libva_x11_la_LDFLAGS = $(LDADD) --libva_x11_la_DEPENDENCIES = $(libvacorelib) --SUBDIRS = x11 --libva_la_SOURCES = va.c -+libva_x11_la_DEPENDENCIES = $(libvacorelib) x11/libva_x11.la -+libva_glx_la_SOURCES = -+libva_glx_la_LIBADD = $(libvacorelib) glx/libva_glx.la libva-x11.la $(GL_DEPS_LIBS) -ldl -+libva_glx_la_LDFLAGS = $(LDADD) -+libva_glx_la_DEPENDENCIES = $(libvacorelib) glx/libva_glx.la libva-x11.la -+SUBDIRS = $(libva_x11_backenddir) $(libva_glx_backenddir) -+DIST_SUBDIRS = x11 glx -+libva_la_SOURCES = va.c va_compat.c - libvaincludedir = ${includedir}/va - libvainclude_HEADERS = va.h va_backend.h va_version.h - DISTCLEANFILES = \ - va_version.h - - EXTRA_DIST = \ -- va_version.h.in -- -+ va_version.h.in \ -+ va_compat.h \ -+ va_compat_template.h -+ -+libva_compat_la_SOURCES = va_compat_lib.c -+libva_compat_la_LIBADD = libva-x11.la -ldl -+libva_compat_la_DEPENDENCIES = libva-x11.la - all: all-recursive - - .SUFFIXES: -@@ -284,14 +359,14 @@ - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ -- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ -- && exit 0; \ -+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ -+ && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ -- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/Makefile'; \ -- cd $(top_srcdir) && \ -- $(AUTOMAKE) --gnu src/Makefile -+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/Makefile'; \ -+ $(am__cd) $(top_srcdir) && \ -+ $(AUTOMAKE) --gnu src/Makefile - .PRECIOUS: Makefile - Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ -@@ -309,25 +384,30 @@ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - $(ACLOCAL_M4): $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -+$(am__aclocal_m4_deps): - va_version.h: $(top_builddir)/config.status $(srcdir)/va_version.h.in - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ - install-libLTLIBRARIES: $(lib_LTLIBRARIES) - @$(NORMAL_INSTALL) - test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)" -- @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ -+ @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ -+ list2=; for p in $$list; do \ - if test -f $$p; then \ -- f=$(am__strip_dir) \ -- echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) '$$p' '$(DESTDIR)$(libdir)/$$f'"; \ -- $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) "$$p" "$(DESTDIR)$(libdir)/$$f"; \ -+ list2="$$list2 $$p"; \ - else :; fi; \ -- done -+ done; \ -+ test -z "$$list2" || { \ -+ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \ -+ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \ -+ } - - uninstall-libLTLIBRARIES: - @$(NORMAL_UNINSTALL) -- @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ -- p=$(am__strip_dir) \ -- echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$p'"; \ -- $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$p"; \ -+ @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ -+ for p in $$list; do \ -+ $(am__strip_dir) \ -+ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \ -+ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \ - done - - clean-libLTLIBRARIES: -@@ -338,6 +418,10 @@ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done -+libva-compat.la: $(libva_compat_la_OBJECTS) $(libva_compat_la_DEPENDENCIES) -+ $(LINK) -rpath $(libdir) $(libva_compat_la_OBJECTS) $(libva_compat_la_LIBADD) $(LIBS) -+libva-glx.la: $(libva_glx_la_OBJECTS) $(libva_glx_la_DEPENDENCIES) -+ $(libva_glx_la_LINK) $(am_libva_glx_la_rpath) $(libva_glx_la_OBJECTS) $(libva_glx_la_LIBADD) $(LIBS) - libva-x11.la: $(libva_x11_la_OBJECTS) $(libva_x11_la_DEPENDENCIES) - $(libva_x11_la_LINK) -rpath $(libdir) $(libva_x11_la_OBJECTS) $(libva_x11_la_LIBADD) $(LIBS) - libva.la: $(libva_la_OBJECTS) $(libva_la_DEPENDENCIES) -@@ -350,24 +434,26 @@ - -rm -f *.tab.c - - @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/va.Plo@am__quote@ -+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/va_compat.Plo@am__quote@ -+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/va_compat_lib.Plo@am__quote@ - - .c.o: - @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< --@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po - @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ - @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ - @am__fastdepCC_FALSE@ $(COMPILE) -c $< - - .c.obj: - @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` --@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po - @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ - @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ - @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` - - .c.lo: - @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< --@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo - @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ - @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ - @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< -@@ -380,20 +466,23 @@ - install-libvaincludeHEADERS: $(libvainclude_HEADERS) - @$(NORMAL_INSTALL) - test -z "$(libvaincludedir)" || $(MKDIR_P) "$(DESTDIR)$(libvaincludedir)" -- @list='$(libvainclude_HEADERS)'; for p in $$list; do \ -+ @list='$(libvainclude_HEADERS)'; test -n "$(libvaincludedir)" || list=; \ -+ for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ -- f=$(am__strip_dir) \ -- echo " $(libvaincludeHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(libvaincludedir)/$$f'"; \ -- $(libvaincludeHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(libvaincludedir)/$$f"; \ -+ echo "$$d$$p"; \ -+ done | $(am__base_list) | \ -+ while read files; do \ -+ echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(libvaincludedir)'"; \ -+ $(INSTALL_HEADER) $$files "$(DESTDIR)$(libvaincludedir)" || exit $$?; \ - done - - uninstall-libvaincludeHEADERS: - @$(NORMAL_UNINSTALL) -- @list='$(libvainclude_HEADERS)'; for p in $$list; do \ -- f=$(am__strip_dir) \ -- echo " rm -f '$(DESTDIR)$(libvaincludedir)/$$f'"; \ -- rm -f "$(DESTDIR)$(libvaincludedir)/$$f"; \ -- done -+ @list='$(libvainclude_HEADERS)'; test -n "$(libvaincludedir)" || list=; \ -+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ -+ test -n "$$files" || exit 0; \ -+ echo " ( cd '$(DESTDIR)$(libvaincludedir)' && rm -f" $$files ")"; \ -+ cd "$(DESTDIR)$(libvaincludedir)" && rm -f $$files - - # This directory's subdirectories are mostly independent; you can cd - # into them and run `make' without going through this Makefile. -@@ -419,7 +508,7 @@ - else \ - local_target="$$target"; \ - fi; \ -- (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ -+ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ - done; \ - if test "$$dot_seen" = "no"; then \ -@@ -453,16 +542,16 @@ - else \ - local_target="$$target"; \ - fi; \ -- (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ -+ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ - done && test -z "$$fail" - tags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ -- test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ -+ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ - done - ctags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ -- test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ -+ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ - done - - ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) -@@ -470,14 +559,14 @@ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ -- $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \ -+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique - tags: TAGS - - TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) -- tags=; \ -+ set x; \ - here=`pwd`; \ - if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ - include_option=--etags-include; \ -@@ -489,7 +578,7 @@ - list='$(SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - test ! -f $$subdir/TAGS || \ -- tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ -+ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ - fi; \ - done; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ -@@ -498,29 +587,34 @@ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ -- if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ -+ shift; \ -+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ -- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ -- $$tags $$unique; \ -+ if test $$# -gt 0; then \ -+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ -+ "$$@" $$unique; \ -+ else \ -+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ -+ $$unique; \ -+ fi; \ - fi - ctags: CTAGS - CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) -- tags=; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ -- test -z "$(CTAGS_ARGS)$$tags$$unique" \ -+ test -z "$(CTAGS_ARGS)$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ -- $$tags $$unique -+ $$unique - - GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ -- && cd $(top_srcdir) \ -- && gtags -i $(GTAGS_ARGS) $$here -+ && $(am__cd) $(top_srcdir) \ -+ && gtags -i $(GTAGS_ARGS) "$$here" - - distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -@@ -541,29 +635,44 @@ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ -+ if test -d "$(distdir)/$$file"; then \ -+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ -+ fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ -- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ -+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ -+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ -- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ -+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ -- test -f $(distdir)/$$file \ -- || cp -p $$d/$$file $(distdir)/$$file \ -+ test -f "$(distdir)/$$file" \ -+ || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done -- list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ -+ @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - test -d "$(distdir)/$$subdir" \ - || $(MKDIR_P) "$(distdir)/$$subdir" \ - || exit 1; \ -- distdir=`$(am__cd) $(distdir) && pwd`; \ -- top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ -- (cd $$subdir && \ -+ fi; \ -+ done -+ @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ -+ if test "$$subdir" = .; then :; else \ -+ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ -+ $(am__relativize); \ -+ new_distdir=$$reldir; \ -+ dir1=$$subdir; dir2="$(top_distdir)"; \ -+ $(am__relativize); \ -+ new_top_distdir=$$reldir; \ -+ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ -+ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ -+ ($(am__cd) $$subdir && \ - $(MAKE) $(AM_MAKEFLAGS) \ -- top_distdir="$$top_distdir" \ -- distdir="$$distdir/$$subdir" \ -+ top_distdir="$$new_top_distdir" \ -+ distdir="$$new_distdir" \ - am__remove_distdir=: \ - am__skip_length_check=: \ -+ am__skip_mode_fix=: \ - distdir) \ - || exit 1; \ - fi; \ -@@ -596,6 +705,7 @@ - - distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) - - maintainer-clean-generic: -@@ -618,6 +728,8 @@ - - html: html-recursive - -+html-am: -+ - info: info-recursive - - info-am: -@@ -626,18 +738,28 @@ - - install-dvi: install-dvi-recursive - -+install-dvi-am: -+ - install-exec-am: install-libLTLIBRARIES - - install-html: install-html-recursive - -+install-html-am: -+ - install-info: install-info-recursive - -+install-info-am: -+ - install-man: - - install-pdf: install-pdf-recursive - -+install-pdf-am: -+ - install-ps: install-ps-recursive - -+install-ps-am: -+ - installcheck-am: - - maintainer-clean: maintainer-clean-recursive -@@ -660,8 +782,8 @@ - - uninstall-am: uninstall-libLTLIBRARIES uninstall-libvaincludeHEADERS - --.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \ -- install-strip -+.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ -+ install-am install-strip tags-recursive - - .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ - all all-am check check-am clean clean-generic \ -@@ -680,6 +802,9 @@ - pdf pdf-am ps ps-am tags tags-recursive uninstall uninstall-am \ - uninstall-libLTLIBRARIES uninstall-libvaincludeHEADERS - -+ -+va_compat.c: va_compat_template.h -+ - # Tell versions [3.59,3.63) of GNU make to not export all variables. - # Otherwise a system limit (for SysV at least) may be exceeded. - .NOEXPORT: -diff -Naur libva-0.31.0/src/va_backend.h libva-0.31.0.patch/src/va_backend.h ---- libva-0.31.0/src/va_backend.h 2009-09-10 17:18:49.000000000 +0200 -+++ libva-0.31.0.patch/src/va_backend.h 2009-12-15 13:45:26.818448620 +0100 -@@ -32,9 +32,11 @@ - #ifdef IN_LIBVA - #include "va.h" - #include "x11/va_x11.h" -+#include "glx/va_backend_glx.h" - #else - #include - #include -+#include - #endif - - #include -@@ -372,6 +374,9 @@ - unsigned int *chroma_v_offset, - void **buffer - ); -+ -+ /* Optional: GLX support hooks */ -+ struct VADriverVTableGLX glx; - }; - - struct VADriverContext -@@ -394,6 +399,8 @@ - void *handle; /* dlopen handle */ - - void *dri_state; -+ void *glx; /* opaque for GLX code */ -+ void *compat; /* opaque for compat code */ - }; - - struct VADisplayContext -@@ -413,6 +420,8 @@ - VADisplayContextP ctx, - char **driver_name - ); -+ -+ void *opaque; /* opaque for display extensions (e.g. GLX) */ - }; - - typedef VAStatus (*VADriverInit) ( -diff -Naur libva-0.31.0/src/va_backend.h.orig libva-0.31.0.patch/src/va_backend.h.orig -diff -Naur libva-0.31.0/src/va.c libva-0.31.0.patch/src/va.c ---- libva-0.31.0/src/va.c 2009-11-20 17:12:42.000000000 +0100 -+++ libva-0.31.0.patch/src/va.c 2009-12-15 13:45:26.817448431 +0100 -@@ -25,6 +25,7 @@ - #define _GNU_SOURCE 1 - #include "va.h" - #include "va_backend.h" -+#include "va_compat.h" - - #include - #include -@@ -40,6 +41,9 @@ - - - #define DRIVER_INIT_FUNC "__vaDriverInit_0_31" -+#define DRIVER_INIT_FUNC_SDS "__vaDriverInit_0_31_sds" -+#define DRIVER_INIT_FUNC_0_29 "__vaDriverInit_0_29" -+#define DRIVER_INIT_FUNC_0_30 "__vaDriverInit_0_30" - - #define DRIVER_EXTENSION "_drv_video.so" - -@@ -130,10 +134,6 @@ - { - /* don't allow setuid apps to use LIBVA_DRIVERS_PATH */ - search_path = getenv("LIBVA_DRIVERS_PATH"); -- if (!search_path) -- { -- search_path = getenv("LIBGL_DRIVERS_PATH"); -- } - } - if (!search_path) - { -@@ -167,7 +167,23 @@ - else - { - VADriverInit init_func; -- init_func = (VADriverInit) dlsym(handle, DRIVER_INIT_FUNC); -+ int compat_version = 0; -+ /* First, try SDS extensions (VDPAU and XvBA backends) */ -+ init_func = (VADriverInit) dlsym(handle, DRIVER_INIT_FUNC_SDS); -+ if (!init_func) -+ { -+ /* Otherwise, we need the compatibility layer for some buffers */ -+ init_func = (VADriverInit) dlsym(handle, DRIVER_INIT_FUNC); -+ compat_version = VA_MINOR_VERSION; -+ if (!init_func) { -+ init_func = (VADriverInit) dlsym(handle, DRIVER_INIT_FUNC_0_29); -+ compat_version = 29; -+ } -+ if (!init_func) { -+ init_func = (VADriverInit) dlsym(handle, DRIVER_INIT_FUNC_0_30); -+ compat_version = 30; -+ } -+ } - if (!init_func) - { - va_errorMessage("%s has no function %s\n", driver_path, DRIVER_INIT_FUNC); -@@ -175,7 +191,36 @@ - } - else - { -- vaStatus = (*init_func)(ctx); -+ struct VADriverContext_0_29 ctx_0_29; -+ struct VADriverContext_0_30 ctx_0_30; -+ void *compat_ctx = NULL; -+ -+ switch (compat_version) { -+ case 29: -+ compat_ctx = &ctx_0_29; -+ ctx_0_29.pDriverData = NULL; -+ ctx_0_29.x11_dpy = ctx->x11_dpy; -+ ctx_0_29.x11_screen = ctx->x11_screen; -+ break; -+ case 30: -+ compat_ctx = &ctx_0_30; -+ ctx_0_30.pDriverData = NULL; -+ ctx_0_30.x11_dpy = ctx->x11_dpy; -+ ctx_0_30.x11_screen = ctx->x11_screen; -+ break; -+ case VA_MINOR_VERSION: -+ compat_ctx = ctx; -+ break; -+ default: -+ ASSERT(compat_version == 0); -+ vaStatus = VA_STATUS_ERROR_UNKNOWN; -+ break; -+ } -+ -+ vaStatus = (*init_func)(compat_ctx ? compat_ctx : ctx); -+ -+ if (VA_STATUS_SUCCESS == vaStatus) -+ vaStatus = va_compat_init(dpy, compat_version, compat_ctx); - - if (VA_STATUS_SUCCESS == vaStatus) - { -@@ -375,6 +420,8 @@ - old_ctx->handle = NULL; - } - -+ va_compat_fini(dpy); -+ - if (VA_STATUS_SUCCESS == vaStatus) - pDisplayContext->vaDestroy(pDisplayContext); - return vaStatus; -diff -Naur libva-0.31.0/src/va_compat.c libva-0.31.0.patch/src/va_compat.c ---- libva-0.31.0/src/va_compat.c 1970-01-01 01:00:00.000000000 +0100 -+++ libva-0.31.0.patch/src/va_compat.c 2009-12-15 13:45:30.916323441 +0100 -@@ -0,0 +1,1171 @@ -+/* -+ * Copyright (C) 2009 Splitted-Desktop Systems. All Rights Reserved. -+ * -+ * 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, sub license, 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 PRECISION INSIGHT AND/OR ITS 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. -+ */ -+ -+#include "config.h" -+#include "va.h" -+#include "va_compat.h" -+#include "va_backend.h" -+#include -+#include -+#include -+ -+#define CTX(dpy) (((VADisplayContextP)dpy)->pDriverContext) -+#define COMPAT_CTX(ctx) ((VACompatContextP)(ctx)->compat) -+#define ASSERT assert -+ -+/* Invoke the normal VA API entry-point. This one can be replaced with -+ one of the va_compat_*() functions */ -+#define VA_INVOKE(FUNC, CTX, ...) \ -+ (CTX)->vtable.FUNC(CTX, __VA_ARGS__) -+ -+/* Invoke the real VA API entry-point. That is, the driver's function */ -+#define VA_INVOKE_COMPAT_ARGS(CTX, ...) \ -+ (COMPAT_CTX(CTX)->compat_ctx, __VA_ARGS__) -+#define VA_INVOKE_COMPAT(FUNC, CTX, ...) \ -+ COMPAT_CTX(CTX)->vtable.FUNC VA_INVOKE_COMPAT_ARGS(CTX, __VA_ARGS__) -+ -+typedef struct VACompatContext *VACompatContextP; -+ -+typedef VAStatus (*VABufferTranslateFunc)(VACompatContextP ctx, void *dest, const void *src); -+ -+typedef enum { -+ VA_DRIVER_ID_UNKNOWN, -+ VA_DRIVER_ID_POULSBO, -+ VA_DRIVER_ID_IEGD -+} VADriverID; -+ -+typedef struct { -+ VABufferID id; -+ VABufferType type; -+ unsigned int size; -+ unsigned int num_elements; -+ unsigned char *data; -+ VABufferTranslateFunc translate; -+ VABufferID compat_id; -+ unsigned int compat_size; -+ unsigned char *compat_data; -+ unsigned int map_count; -+} VABufferCompat; -+ -+typedef struct VAContextMap *VAContextMapP; -+typedef struct VAContextMap { -+ VASurfaceID surface; -+ VAContextID context; -+ VAContextMapP next; -+} VAContextMap; -+ -+typedef struct { -+ VAStatus (*vaTerminate)(void *); -+ VAStatus (*vaQueryConfigProfiles)(void *, VAProfile *, int *); -+ VAStatus (*vaQueryConfigEntrypoints)(void *, VAProfile, VAEntrypoint *, int *); -+ VAStatus (*vaGetConfigAttributes)(void *, VAProfile, VAEntrypoint, VAConfigAttrib *, int); -+ VAStatus (*vaCreateConfig)(void *, VAProfile, VAEntrypoint, VAConfigAttrib *, int, VAConfigID *); -+ VAStatus (*vaDestroyConfig)(void *, VAConfigID); -+ VAStatus (*vaQueryConfigAttributes)(void *, VAConfigID, VAProfile *, VAEntrypoint *, VAConfigAttrib *, int *); -+ VAStatus (*vaCreateSurfaces)(void *, int, int, int, int, VASurfaceID *); -+ VAStatus (*vaDestroySurfaces)(void *, VASurfaceID *, int); -+ VAStatus (*vaCreateContext)(void *, VAConfigID, int, int, int, VASurfaceID *, int, VAContextID *); -+ VAStatus (*vaDestroyContext)(void *, VAContextID); -+ VAStatus (*vaCreateBuffer)(void *, VAContextID, VABufferType, unsigned int, unsigned int, void *, VABufferID *); -+ VAStatus (*vaBufferSetNumElements)(void *, VABufferID, unsigned int); -+ VAStatus (*vaMapBuffer)(void *, VABufferID, void **); -+ VAStatus (*vaUnmapBuffer)(void *, VABufferID); -+ VAStatus (*vaDestroyBuffer)(void *, VABufferID); -+ VAStatus (*vaBeginPicture)(void *, VAContextID, VASurfaceID); -+ VAStatus (*vaRenderPicture)(void *, VAContextID, VABufferID *, int); -+ VAStatus (*vaEndPicture)(void *, VAContextID); -+ VAStatus (*vaSyncSurface_pre31)(void *, VAContextID, VASurfaceID); -+ VAStatus (*vaQuerySurfaceStatus)(void *, VASurfaceID, VASurfaceStatus *); -+ VAStatus (*vaPutSurface)(void *, VASurfaceID, unsigned long, short, short, unsigned short, unsigned short, short, short, unsigned short, unsigned short, VARectangle *, unsigned int, unsigned int); -+ VAStatus (*vaQueryImageFormats)(void *, VAImageFormat *, int *); -+ VAStatus (*vaCreateImage)(void *, VAImageFormat *, int, int, VAImage *); -+ VAStatus (*vaDeriveImage)(void *, VASurfaceID, VAImage *); -+ VAStatus (*vaDestroyImage)(void *, VAImageID); -+ VAStatus (*vaSetImagePalette)(void *, VAImageID, unsigned char *); -+ VAStatus (*vaGetImage)(void *, VASurfaceID, int, int, unsigned int, unsigned int, VAImageID); -+ VAStatus (*vaPutImage_pre31)(void *, VASurfaceID, VAImageID, int, int, unsigned int, unsigned int, int, int); -+ VAStatus (*vaPutImage2_pre31)(void *, VASurfaceID, VAImageID, int, int, unsigned int, unsigned int, int, int, unsigned int, unsigned int); -+ VAStatus (*vaQuerySubpictureFormats)(void *, VAImageFormat *, unsigned int *, unsigned int *); -+ VAStatus (*vaCreateSubpicture)(void *, VAImageID, VASubpictureID *); -+ VAStatus (*vaDestroySubpicture)(void *, VASubpictureID); -+ VAStatus (*vaSetSubpictureImage)(void *, VASubpictureID, VAImageID); -+ VAStatus (*vaSetSubpictureChromakey)(void *, VASubpictureID, unsigned int, unsigned int, unsigned int); -+ VAStatus (*vaSetSubpictureGlobalAlpha)(void *, VASubpictureID, float); -+ VAStatus (*vaAssociateSubpicture_pre31)(void *, VASubpictureID, VASurfaceID *, int, short, short, short, short, unsigned short, unsigned short, unsigned int); -+ VAStatus (*vaAssociateSubpicture2_pre31)(void *, VASubpictureID, VASurfaceID *, int, short, short, unsigned short, unsigned short, short, short, unsigned short, unsigned short, unsigned int); -+ VAStatus (*vaDeassociateSubpicture)(void *, VASubpictureID, VASurfaceID *, int); -+ VAStatus (*vaQueryDisplayAttributes)(void *, VADisplayAttribute *, int *); -+ VAStatus (*vaGetDisplayAttributes)(void *, VADisplayAttribute *, int); -+ VAStatus (*vaSetDisplayAttributes)(void *, VADisplayAttribute *, int); -+ -+ /* 0.29 hooks */ -+ VAStatus (*vaSetSubpicturePalette)(void *, VASubpictureID, unsigned char *); -+ VAStatus (*vaDbgCopySurfaceToBuffer)(void *, VASurfaceID, void **, unsigned int *); -+ -+ /* 0.30 hooks */ -+ VAStatus (*vaCreateSurfaceFromCIFrame)(void *, unsigned long, VASurfaceID *); -+ VAStatus (*vaCreateSurfaceFromV4L2Buf)(void *, int, struct v4l2_format *, struct v4l2_buffer *, VASurfaceID *); -+ VAStatus (*vaCopySurfaceToBuffer)(void *, VASurfaceID, unsigned int *, unsigned int *, unsigned int *, unsigned int *, unsigned int *, unsigned int *, unsigned int *, void **); -+ -+ /* 0.31 hooks */ -+ VAStatus (*vaPutImage)(void *, VASurfaceID, VAImageID, int, int, unsigned int, unsigned int, int, int, unsigned int, unsigned int); -+ VAStatus (*vaAssociateSubpicture)(void *, VASubpictureID, VASurfaceID *, int, short, short, unsigned short, unsigned short, short, short, unsigned short, unsigned short, unsigned int); -+ VAStatus (*vaSyncSurface)(void *, VASurfaceID); -+} VACompatDriverVTable; -+ -+typedef struct VACompatContext { -+ VABufferCompat *buffers; -+ unsigned int buffers_count_max; -+ unsigned int compat_version; -+ void *compat_ctx; -+ VACompatDriverVTable vtable; /* original vtable */ -+ VADriverID driver_id; -+ char *driver_name; -+ VAContextMapP context_map; -+ VAContextMapP last_context_map_match; -+ unsigned int skip_frame : 1; -+} VACompatContext; -+ -+#define COMPAT_MAJOR 0 -+#define COMPAT_MINOR 29 -+#include "va_compat_template.h" -+ -+#define COMPAT_MAJOR 0 -+#define COMPAT_MINOR 30 -+#include "va_compat_template.h" -+ -+#define COMPAT_MAJOR 0 -+#define COMPAT_MINOR 31 -+#include "va_compat_template.h" -+ -+static inline int va_IsIntelBuffer(VADriverContextP ctx, VABufferID id) -+{ -+ VACompatContextP compat = ctx->compat; -+ -+ if (compat->driver_id == VA_DRIVER_ID_POULSBO) { -+ /* There were only Intel implementations for VA API. Besides, the -+ returned buffer IDs had the following format [ 0 BASE ID ] where -+ BASE is the 7-bit value 0x04 and ID an index into the heap of -+ objects */ -+ return (id & 0x7f000000) == 0x04000000; -+ } -+ -+ if (compat->driver_id == VA_DRIVER_ID_IEGD) { -+ /* XXX: there is no means to differentiate the buffers, they -+ are linearly generated (IEGD 10.0 build 1335) */ -+ return 1; -+ } -+ -+ return 0; -+} -+ -+static VAContextMapP va_context_map_lookup_p( -+ VACompatContextP ctx, -+ VASurfaceID surface -+) -+{ -+ VAContextMapP m = ctx->context_map; -+ -+ while (m) { -+ if (m->surface == surface) -+ return m; -+ m = m->next; -+ } -+ return NULL; -+} -+ -+static VAContextID va_context_map_lookup( -+ VACompatContextP ctx, -+ VASurfaceID surface -+) -+{ -+ VAContextMapP m; -+ -+ /* Lookup in cached */ -+ m = ctx->last_context_map_match; -+ if (m && m->surface == surface) -+ return m->context; -+ -+ /* Full (slow) lookup */ -+ m = va_context_map_lookup_p(ctx, surface); -+ if (m) { -+ ctx->last_context_map_match = m; -+ return m->context; -+ } -+ return VA_INVALID_ID; -+} -+ -+static void va_context_map_add( -+ VACompatContextP ctx, -+ VAContextID context, -+ VASurfaceID surface -+) -+{ -+ VAContextMapP m; -+ -+ /* Update existing entry */ -+ m = va_context_map_lookup_p(ctx, surface); -+ if (m) { -+ m->context = context; -+ return; -+ } -+ -+ /* Create new mapping */ -+ m = malloc(sizeof(*m)); -+ ASSERT(m); -+ if (m) { -+ m->surface = surface; -+ m->context = context; -+ m->next = ctx->context_map; -+ ctx->context_map = m; -+ } -+} -+ -+static void va_context_map_remove( -+ VACompatContextP ctx, -+ VAContextID context -+) -+{ -+ VAContextMapP p = NULL; -+ VAContextMapP m = ctx->context_map; -+ VAContextMapP d; -+ -+ while (m) { -+ if (m->context == context) { -+ d = m; -+ -+ /* Unlink current node */ -+ if (p) -+ p->next = m->next; -+ else -+ ctx->context_map = m->next; -+ m = m->next; -+ -+ /* Reset cache */ -+ if (ctx->last_context_map_match == d) -+ ctx->last_context_map_match = NULL; -+ -+ free(d); -+ } -+ else { -+ p = m; -+ m = m->next; -+ } -+ } -+} -+ -+static VABufferCompat *va_GetBufferCompat ( -+ VADriverContextP ctx, -+ VABufferID id -+) -+{ -+ VACompatContextP compat = ctx->compat; -+ int index; -+ -+ if (!va_IsIntelBuffer(ctx, id)) -+ return NULL; -+ -+ index = id & 0x00ffffff; -+ if (index >= compat->buffers_count_max) -+ return NULL; -+ -+ if (compat->buffers[index].id != id) -+ return NULL; -+ -+ return &compat->buffers[index]; -+} -+ -+static VAStatus va_TranslateBufferCompat ( -+ VADriverContextP ctx, -+ VABufferCompat *compat_buffer -+) -+{ -+ VAStatus status; -+ unsigned char *src, *dest; -+ int i; -+ -+ status = VA_INVOKE(vaMapBuffer, ctx, compat_buffer->id, (void **)&src); -+ if (status != VA_STATUS_SUCCESS) -+ return status; -+ -+ ASSERT(compat_buffer->data); -+ ASSERT(src == compat_buffer->data); -+ ASSERT(compat_buffer->compat_data); -+ dest = compat_buffer->compat_data; -+ for (i = 0; i < compat_buffer->num_elements; i++) -+ { -+ /* XXX: check errors */ -+ status = compat_buffer->translate(ctx->compat, dest, src); -+ -+ src += compat_buffer->size; -+ dest += compat_buffer->compat_size; -+ } -+ -+ return VA_INVOKE(vaUnmapBuffer, ctx, compat_buffer->id); -+} -+ -+static VAStatus va_CreateBufferCompat ( -+ VADriverContextP ctx, -+ VAContextID context, -+ VABufferID id, -+ VABufferType type, -+ unsigned int size, -+ unsigned int num_elements, -+ unsigned int compat_size, -+ VABufferTranslateFunc translate_func -+) -+{ -+ VACompatContextP compat = ctx->compat; -+ VABufferCompat *compat_buffer; -+ int index; -+ -+ if (!va_IsIntelBuffer(ctx, id)) -+ return VA_STATUS_ERROR_INVALID_BUFFER; -+ index = id & 0x00ffffff; -+ -+ /* XXX: this allocation strategy is not really space efficient... */ -+ if (index >= compat->buffers_count_max) -+ { -+ compat->buffers_count_max = index + 1; -+ compat->buffers = realloc(compat->buffers, -+ (compat->buffers_count_max * -+ sizeof(VABufferCompat))); -+ if (compat->buffers == NULL) -+ return VA_STATUS_ERROR_ALLOCATION_FAILED; -+ } -+ -+ compat_buffer = &compat->buffers[index]; -+ compat_buffer->id = id; -+ compat_buffer->type = type; -+ compat_buffer->size = size; -+ compat_buffer->num_elements = num_elements; -+ compat_buffer->data = NULL; -+ compat_buffer->translate = translate_func; -+ compat_buffer->compat_size = compat_size; -+ compat_buffer->compat_data = NULL; -+ compat_buffer->map_count = 0; -+ -+ return VA_INVOKE_COMPAT(vaCreateBuffer, -+ ctx, -+ context, -+ type, -+ compat_size, -+ num_elements, -+ NULL, -+ &compat_buffer->compat_id); -+} -+ -+static VAStatus va_DestroyBufferCompat ( -+ VADriverContextP ctx, -+ VABufferID id -+) -+{ -+ VABufferCompat *compat_buffer; -+ VAStatus status; -+ -+ if ((compat_buffer = va_GetBufferCompat(ctx, id)) == NULL) -+ return VA_STATUS_SUCCESS; -+ -+ /* Force unmap if there were more maps than unmaps */ -+ if (compat_buffer->map_count > 1) -+ compat_buffer->map_count = 1; -+ if (compat_buffer->map_count > 1) -+ { -+ if ((status = VA_INVOKE(vaUnmapBuffer, ctx, id)) != VA_STATUS_SUCCESS) -+ return status; -+ } -+ -+ compat_buffer->id = 0; -+ return VA_INVOKE_COMPAT(vaDestroyBuffer, ctx, compat_buffer->compat_id); -+} -+ -+static VAStatus va_compat_CreateBuffer ( -+ VADriverContextP ctx, -+ VAContextID context, /* in */ -+ VABufferType type, /* in */ -+ unsigned int size, /* in */ -+ unsigned int num_elements, /* in */ -+ void *data, /* in */ -+ VABufferID *buf_id /* out */ -+) -+{ -+ VABufferTranslateFunc translate_func = NULL; -+ unsigned int compat_size = 0; -+ VAStatus status; -+ -+ status = VA_INVOKE_COMPAT(vaCreateBuffer, -+ ctx, -+ context, -+ type, -+ size, -+ num_elements, -+ data, -+ buf_id); -+ -+ if (status != VA_STATUS_SUCCESS) -+ return status; -+ -+#define INIT_TRANSLATE_FUNC_(STRUCT, MAJOR, MINOR) do { \ -+ translate_func = va_compat_translate_VA##STRUCT##_##MAJOR##_##MINOR; \ -+ compat_size = sizeof(VA##STRUCT##_##MAJOR##_##MINOR); \ -+} while (0) -+#define INIT_TRANSLATE_FUNC(BUFFER, CODEC, MAJOR, MINOR) \ -+ INIT_TRANSLATE_FUNC_(BUFFER##Buffer##CODEC, MAJOR, MINOR) -+ -+ /* XXX: this assumes all structures have different sizes from each other */ -+ switch (size) { -+ case sizeof(VAPictureParameterBufferH264): -+ if (type == VAPictureParameterBufferType && ctx->version_major == 0) -+ { -+ switch (ctx->version_minor) { -+ case 29: INIT_TRANSLATE_FUNC(PictureParameter,H264, 0,29); break; -+ case 30: INIT_TRANSLATE_FUNC(PictureParameter,H264, 0,30); break; -+ } -+ } -+ break; -+ case sizeof(VASliceParameterBufferH264): -+ if (type == VASliceParameterBufferType && ctx->version_major == 0) -+ { -+ switch (ctx->version_minor) { -+ case 29: INIT_TRANSLATE_FUNC(SliceParameter,H264, 0,29); break; -+ case 30: INIT_TRANSLATE_FUNC(SliceParameter,H264, 0,30); break; -+ } -+ } -+ break; -+ case sizeof(VAPictureParameterBufferVC1): -+ if (type == VAPictureParameterBufferType && ctx->version_major == 0) -+ { -+ switch (ctx->version_minor) { -+ case 29: INIT_TRANSLATE_FUNC(PictureParameter,VC1, 0,29); break; -+ case 30: INIT_TRANSLATE_FUNC(PictureParameter,VC1, 0,30); break; -+ } -+ } -+ break; -+ case sizeof(VAPictureParameterBufferMPEG2): -+ if (type == VAPictureParameterBufferType && ctx->version_major == 0) -+ { -+ switch (ctx->version_minor) { -+ case 29: INIT_TRANSLATE_FUNC(PictureParameter,MPEG2, 0,29); break; -+ case 30: INIT_TRANSLATE_FUNC(PictureParameter,MPEG2, 0,30); break; -+ } -+ } -+ break; -+ case sizeof(VASliceParameterBufferMPEG2): -+ if (type == VASliceParameterBufferType && ctx->version_major == 0) -+ { -+ switch (ctx->version_minor) { -+ case 29: INIT_TRANSLATE_FUNC(SliceParameter,MPEG2, 0,29); break; -+ case 30: INIT_TRANSLATE_FUNC(SliceParameter,MPEG2, 0,30); break; -+ } -+ } -+ break; -+ case sizeof(VAPictureParameterBufferMPEG4): -+ if (type == VAPictureParameterBufferType && ctx->version_major == 0) -+ { -+ switch (ctx->version_minor) { -+ case 29: INIT_TRANSLATE_FUNC(PictureParameter,MPEG4, 0,29); break; -+ case 30: INIT_TRANSLATE_FUNC(PictureParameter,MPEG4, 0,30); break; -+ case 31: INIT_TRANSLATE_FUNC(PictureParameter,MPEG4, 0,31); break; -+ } -+ } -+ break; -+ case sizeof(VAEncSliceParameterBuffer): -+ if (type == VAEncSliceParameterBufferType && ctx->version_major == 0) -+ { -+ switch (ctx->version_minor) { -+ case 30: INIT_TRANSLATE_FUNC_(EncSliceParameterBuffer, 0,30); break; -+ } -+ } -+ break; -+ } -+ -+#undef INIT_TRANSLATE_FUNC -+ -+ /* Create thunk */ -+ if (buf_id && translate_func) -+ { -+ ASSERT(compat_size > 0); -+ -+ status = va_CreateBufferCompat(ctx, -+ context, -+ *buf_id, -+ type, -+ size, -+ num_elements, -+ compat_size, -+ translate_func); -+ } -+ -+ return status; -+} -+ -+static VAStatus va_compat_BufferSetNumElements ( -+ VADriverContextP ctx, -+ VABufferID buf_id, /* in */ -+ unsigned int num_elements /* in */ -+) -+{ -+ VABufferCompat *compat_buffer; -+ VAStatus status; -+ -+ status = VA_INVOKE_COMPAT(vaBufferSetNumElements, ctx, buf_id, num_elements); -+ if (status != VA_STATUS_SUCCESS) -+ return status; -+ -+ if ((compat_buffer = va_GetBufferCompat(ctx, buf_id)) != NULL) -+ { -+ compat_buffer->num_elements = num_elements; -+ status = VA_INVOKE_COMPAT(vaBufferSetNumElements, -+ ctx, -+ compat_buffer->compat_id, -+ num_elements); -+ } -+ -+ return status; -+} -+ -+static VAStatus va_compat_DestroyBuffer ( -+ VADriverContextP ctx, -+ VABufferID buffer_id -+) -+{ -+ VAStatus status; -+ if ((status = va_DestroyBufferCompat(ctx, buffer_id)) != VA_STATUS_SUCCESS) -+ return status; -+ -+ return VA_INVOKE_COMPAT(vaDestroyBuffer, ctx, buffer_id); -+} -+ -+static VAStatus va_compat_MapBuffer ( -+ VADriverContextP ctx, -+ VABufferID buf_id, /* in */ -+ void **pbuf /* out */ -+) -+{ -+ VABufferCompat *compat_buffer; -+ VAStatus status; -+ -+ if ((compat_buffer = va_GetBufferCompat(ctx, buf_id)) == NULL) -+ return VA_INVOKE_COMPAT(vaMapBuffer, ctx, buf_id, pbuf); -+ -+ if (compat_buffer->map_count++ == 0) -+ { -+ status = VA_INVOKE_COMPAT(vaMapBuffer, ctx, buf_id, (void **)&compat_buffer->data); -+ if (status != VA_STATUS_SUCCESS) -+ return status; -+ -+ status = VA_INVOKE_COMPAT(vaMapBuffer, ctx, compat_buffer->compat_id, (void **)&compat_buffer->compat_data); -+ if (status != VA_STATUS_SUCCESS) -+ return status; -+ } -+ -+ if (pbuf) -+ *pbuf = compat_buffer->data; -+ -+ return VA_STATUS_SUCCESS; -+} -+ -+static VAStatus va_compat_UnmapBuffer ( -+ VADriverContextP ctx, -+ VABufferID buf_id /* in */ -+) -+{ -+ VABufferCompat *compat_buffer; -+ VAStatus status; -+ -+ if ((compat_buffer = va_GetBufferCompat(ctx, buf_id)) == NULL) -+ return VA_INVOKE_COMPAT(vaUnmapBuffer, ctx, buf_id); -+ -+ if (--compat_buffer->map_count == 0) -+ { -+ status = VA_INVOKE_COMPAT(vaUnmapBuffer, ctx, compat_buffer->compat_id); -+ if (status != VA_STATUS_SUCCESS) -+ return status; -+ compat_buffer->compat_data = NULL; -+ -+ status = VA_INVOKE_COMPAT(vaUnmapBuffer, ctx, compat_buffer->id); -+ if (status != VA_STATUS_SUCCESS) -+ return status; -+ compat_buffer->data = NULL; -+ } -+ -+ return VA_STATUS_SUCCESS; -+} -+ -+static VAStatus va_compat_BeginPicture ( -+ VADriverContextP ctx, -+ VAContextID context, -+ VASurfaceID render_target -+) -+{ -+ VACompatContextP compat = ctx->compat; -+ compat->skip_frame = 0; -+ return VA_INVOKE_COMPAT(vaBeginPicture, ctx, context, render_target); -+} -+ -+static VAStatus va_compat_EndPicture ( -+ VADriverContextP ctx, -+ VAContextID context -+) -+{ -+ VACompatContextP compat = ctx->compat; -+ VAStatus status = VA_INVOKE_COMPAT(vaEndPicture, ctx, context); -+ -+ /* Ignore errors if the HW decoder did not handle VC-1 skipped P-frames */ -+ if (compat->skip_frame && status == VA_STATUS_ERROR_UNKNOWN) -+ status = VA_STATUS_SUCCESS; -+ -+ return status; -+} -+ -+static VAStatus va_compat_RenderPicture ( -+ VADriverContextP ctx, -+ VAContextID context, -+ VABufferID *buffers, -+ int num_buffers -+) -+{ -+ VACompatContextP compat = ctx->compat; -+ VABufferCompat *compat_buffer; -+ VABufferID *compat_buffer_ids; -+ VAStatus status; -+ int i, n; -+ -+ if ((n = num_buffers) < 1) -+ n = 1; -+ compat_buffer_ids = alloca(n * sizeof(compat_buffer_ids[0])); -+ -+ for (i = 0; i < num_buffers; i++) -+ { -+ if ((compat_buffer = va_GetBufferCompat(ctx, buffers[i])) == NULL) -+ compat_buffer_ids[i] = buffers[i]; -+ else -+ { -+ status = va_TranslateBufferCompat(ctx, compat_buffer); -+ if (status != VA_STATUS_SUCCESS) -+ return status; -+ compat_buffer_ids[i] = compat_buffer->compat_id; -+ } -+ } -+ -+ if (!compat->skip_frame) -+ { -+ status = VA_INVOKE_COMPAT(vaRenderPicture, ctx, context, compat_buffer_ids, num_buffers); -+ if (status != VA_STATUS_SUCCESS) -+ return status; -+ } -+ -+ /* Buffers are automatically destroyed afterwards */ -+ for (i = 0; i < num_buffers; i++) -+ { -+ if ((compat_buffer = va_GetBufferCompat(ctx, buffers[i])) != NULL) -+ { -+ status = VA_INVOKE_COMPAT(vaDestroyBuffer, ctx, compat_buffer->id); -+ if (status != VA_STATUS_SUCCESS) -+ return status; -+ } -+ } -+ -+ return VA_STATUS_SUCCESS; -+} -+ -+#define DEFINE_VTABLE_ENTRY_(RETVAL, PROC, ARGS, COMPAT_PROC, COMPAT_ARGS, COMPAT_PRE, COMPAT_POST) \ -+static RETVAL va_compat_##PROC ARGS \ -+{ \ -+ if (COMPAT_CTX(ctx)->vtable.va##COMPAT_PROC == NULL) \ -+ return VA_STATUS_ERROR_OPERATION_FAILED; \ -+ COMPAT_PRE; \ -+ RETVAL ret = COMPAT_CTX(ctx)->vtable.va##COMPAT_PROC VA_INVOKE_COMPAT_ARGS COMPAT_ARGS; \ -+ COMPAT_POST; \ -+ return ret; \ -+} -+ -+#define DEFINE_VTABLE_ENTRY(RETVAL, PROC, DECL_ARGS, CALL_ARGS) \ -+DEFINE_VTABLE_ENTRY_(RETVAL, PROC, DECL_ARGS, PROC, CALL_ARGS, {}, {}) -+ -+static VAStatus va_compat_Terminate(VADriverContextP ctx) -+{ -+ if (COMPAT_CTX(ctx)->vtable.vaTerminate == NULL) -+ return VA_STATUS_ERROR_OPERATION_FAILED; -+ return COMPAT_CTX(ctx)->vtable.vaTerminate(COMPAT_CTX(ctx)->compat_ctx); -+} -+ -+DEFINE_VTABLE_ENTRY( -+ VAStatus, QueryConfigProfiles, -+ (VADriverContextP ctx, VAProfile *profile_list, int *num_profiles), -+ (ctx, profile_list, num_profiles)) -+ -+DEFINE_VTABLE_ENTRY( -+ VAStatus, QueryConfigEntrypoints, -+ (VADriverContextP ctx, VAProfile profile, -+ VAEntrypoint *entrypoint_list, int *num_entrypoints), -+ (ctx, profile, entrypoint_list, num_entrypoints)) -+ -+DEFINE_VTABLE_ENTRY( -+ VAStatus, GetConfigAttributes, -+ (VADriverContextP ctx, VAProfile profile, VAEntrypoint entrypoint, -+ VAConfigAttrib *attrib_list, int num_attribs), -+ (ctx, profile, entrypoint, attrib_list, num_attribs)) -+ -+DEFINE_VTABLE_ENTRY( -+ VAStatus, CreateConfig, -+ (VADriverContextP ctx, VAProfile profile, VAEntrypoint entrypoint, -+ VAConfigAttrib *attrib_list, int num_attribs, VAConfigID *config_id), -+ (ctx, profile, entrypoint, attrib_list, num_attribs, config_id)) -+ -+DEFINE_VTABLE_ENTRY( -+ VAStatus, DestroyConfig, -+ (VADriverContextP ctx, VAConfigID config_id), -+ (ctx, config_id)) -+ -+DEFINE_VTABLE_ENTRY( -+ VAStatus, QueryConfigAttributes, -+ (VADriverContextP ctx, VAConfigID config_id, VAProfile *profile, -+ VAEntrypoint *entrypoint, VAConfigAttrib *attrib_list, int *num_attribs), -+ (ctx, config_id, profile, entrypoint, attrib_list, num_attribs)) -+ -+DEFINE_VTABLE_ENTRY( -+ VAStatus, CreateSurfaces, -+ (VADriverContextP ctx, int width, int height, int format, -+ int num_surfaces, VASurfaceID *surfaces), -+ (ctx, width, height, format, num_surfaces, surfaces)) -+ -+DEFINE_VTABLE_ENTRY( -+ VAStatus, DestroySurfaces, -+ (VADriverContextP ctx, VASurfaceID *surface_list, int num_surfaces), -+ (ctx, surface_list, num_surfaces)) -+ -+DEFINE_VTABLE_ENTRY( -+ VAStatus, CreateContext, -+ (VADriverContextP ctx, VAConfigID config_id, -+ int picture_width, int picture_height, int flag, -+ VASurfaceID *render_targets, int num_render_targets, VAContextID *context), -+ (ctx, config_id, picture_width, picture_height, flag, -+ render_targets, num_render_targets, context)) -+ -+DEFINE_VTABLE_ENTRY( -+ VAStatus, DestroyContext, -+ (VADriverContextP ctx, VAContextID context), -+ (ctx, context)) -+ -+DEFINE_VTABLE_ENTRY( -+ VAStatus, SyncSurface, -+ (VADriverContextP ctx, VASurfaceID render_target), -+ (ctx, render_target)) -+ -+DEFINE_VTABLE_ENTRY( -+ VAStatus, QuerySurfaceStatus, -+ (VADriverContextP ctx, VASurfaceID render_target, VASurfaceStatus *status), -+ (ctx, render_target, status)) -+ -+DEFINE_VTABLE_ENTRY( -+ VAStatus, PutSurface, -+ (VADriverContextP ctx, VASurfaceID surface, Drawable draw, -+ short srcx, short srcy, unsigned short srcw, unsigned short srch, -+ short destx, short desty, unsigned short destw, unsigned short desth, -+ VARectangle *cliprects, unsigned int number_cliprects, unsigned int flags), -+ (ctx, surface, draw, srcx, srcy, srcw, srch, destx, desty, destw, desth, -+ cliprects, number_cliprects, flags)) -+ -+DEFINE_VTABLE_ENTRY( -+ VAStatus, QueryImageFormats, -+ (VADriverContextP ctx, VAImageFormat *format_list, int *num_formats), -+ (ctx, format_list, num_formats)) -+ -+DEFINE_VTABLE_ENTRY( -+ VAStatus, CreateImage, -+ (VADriverContextP ctx, VAImageFormat *format, -+ int width, int height, VAImage *image), -+ (ctx, format, width, height, image)) -+ -+DEFINE_VTABLE_ENTRY( -+ VAStatus, DeriveImage, -+ (VADriverContextP ctx, VASurfaceID surface, VAImage *image), -+ (ctx, surface, image)) -+ -+DEFINE_VTABLE_ENTRY( -+ VAStatus, DestroyImage, -+ (VADriverContextP ctx, VAImageID image), -+ (ctx, image)) -+ -+DEFINE_VTABLE_ENTRY( -+ VAStatus, SetImagePalette, -+ (VADriverContextP ctx, VAImageID image, unsigned char *palette), -+ (ctx, image, palette)) -+ -+DEFINE_VTABLE_ENTRY( -+ VAStatus, GetImage, -+ (VADriverContextP ctx, VASurfaceID surface, -+ int x, int y, unsigned int width, unsigned int height, VAImageID image), -+ (ctx, surface, x, y, width, height, image)) -+ -+DEFINE_VTABLE_ENTRY( -+ VAStatus, PutImage, -+ (VADriverContextP ctx, VASurfaceID surface, VAImageID image, -+ int srcx, int srcy, unsigned int srcw, unsigned int srch, -+ int destx, int desty, unsigned int destw, unsigned int desth), -+ (ctx, surface, image, srcx, srcy, srcw, srch, destx, desty, destw, desth)) -+ -+DEFINE_VTABLE_ENTRY( -+ VAStatus, QuerySubpictureFormats, -+ (VADriverContextP ctx, VAImageFormat *format_list, -+ unsigned int *flags, unsigned int *num_formats), -+ (ctx, format_list, flags, num_formats)) -+ -+DEFINE_VTABLE_ENTRY( -+ VAStatus, CreateSubpicture, -+ (VADriverContextP ctx, VAImageID image, VASubpictureID *subpicture), -+ (ctx, image, subpicture)) -+ -+DEFINE_VTABLE_ENTRY( -+ VAStatus, DestroySubpicture, -+ (VADriverContextP ctx, VASubpictureID subpicture), -+ (ctx, subpicture)) -+ -+DEFINE_VTABLE_ENTRY( -+ VAStatus, SetSubpictureImage, -+ (VADriverContextP ctx, VASubpictureID subpicture, VAImageID image), -+ (ctx, subpicture, image)) -+ -+DEFINE_VTABLE_ENTRY( -+ VAStatus, SetSubpictureChromakey, -+ (VADriverContextP ctx, VASubpictureID subpicture, -+ unsigned int chromakey_min, -+ unsigned int chromakey_max, -+ unsigned int chromakey_mask), -+ (ctx, subpicture, chromakey_min, chromakey_max, chromakey_mask)) -+ -+DEFINE_VTABLE_ENTRY( -+ VAStatus, SetSubpictureGlobalAlpha, -+ (VADriverContextP ctx, VASubpictureID subpicture, float global_alpha), -+ (ctx, subpicture, global_alpha)) -+ -+DEFINE_VTABLE_ENTRY( -+ VAStatus, AssociateSubpicture, -+ (VADriverContextP ctx, VASubpictureID subpicture, -+ VASurfaceID *target_surfaces, int num_surfaces, -+ short srcx, short srcy, unsigned short srcw, unsigned short srch, -+ short destx, short desty, unsigned short destw, unsigned short desth, -+ unsigned int flags), -+ (ctx, subpicture, target_surfaces, num_surfaces, -+ srcx, srcy, srcw, srch, destx, desty, destw, desth, flags)) -+ -+DEFINE_VTABLE_ENTRY( -+ VAStatus, DeassociateSubpicture, -+ (VADriverContextP ctx, VASubpictureID subpicture, -+ VASurfaceID *target_surfaces, int num_surfaces), -+ (ctx, subpicture, target_surfaces, num_surfaces)) -+ -+DEFINE_VTABLE_ENTRY( -+ VAStatus, QueryDisplayAttributes, -+ (VADriverContextP ctx, VADisplayAttribute *attr_list, int *num_attributes), -+ (ctx, attr_list, num_attributes)) -+ -+DEFINE_VTABLE_ENTRY( -+ VAStatus, GetDisplayAttributes, -+ (VADriverContextP ctx, VADisplayAttribute *attr_list, int num_attributes), -+ (ctx, attr_list, num_attributes)) -+ -+DEFINE_VTABLE_ENTRY( -+ VAStatus, SetDisplayAttributes, -+ (VADriverContextP ctx, VADisplayAttribute *attr_list, int num_attributes), -+ (ctx, attr_list, num_attributes)) -+ -+DEFINE_VTABLE_ENTRY( -+ VAStatus, CreateSurfaceFromCIFrame, -+ (VADriverContextP ctx, unsigned long frame_id, VASurfaceID *surface), -+ (ctx, frame_id, surface)) -+ -+DEFINE_VTABLE_ENTRY( -+ VAStatus, CreateSurfaceFromV4L2Buf, -+ (VADriverContextP ctx, int v4l2_fd, -+ struct v4l2_format *v4l2_fmt, struct v4l2_buffer *v4l2_buf, -+ VASurfaceID *surface), -+ (ctx, v4l2_fd, v4l2_fmt, v4l2_buf, surface)) -+ -+DEFINE_VTABLE_ENTRY( -+ VAStatus, CopySurfaceToBuffer, -+ (VADriverContextP ctx, VASurfaceID surface, unsigned int *fourcc, -+ unsigned int *luma_stride, -+ unsigned int *chroma_u_stride, unsigned int *chroma_v_stride, -+ unsigned int *luma_offset, -+ unsigned int *chroma_u_offset, unsigned int *chroma_v_offset, -+ void **buffer), -+ (ctx, surface, fourcc, -+ luma_stride, chroma_u_stride, chroma_v_stride, -+ luma_offset, chroma_u_offset, chroma_v_offset, -+ buffer)) -+ -+DEFINE_VTABLE_ENTRY_( -+ VAStatus, SyncSurface_pre31, -+ (VADriverContextP ctx, VASurfaceID render_target), -+ SyncSurface_pre31, -+ (ctx, va_context_map_lookup(COMPAT_CTX(ctx), render_target), render_target), -+ {}, {}) -+ -+DEFINE_VTABLE_ENTRY_( -+ VAStatus, PutImage_pre31, -+ (VADriverContextP ctx, VASurfaceID surface, VAImageID image, -+ int srcx, int srcy, unsigned int srcw, unsigned int srch, -+ int destx, int desty, unsigned int destw, unsigned int desth), -+ PutImage2_pre31, -+ (ctx, surface, image, srcx, srcy, srcw, srch, destx, desty, destw, desth), -+ {}, {}) -+ -+DEFINE_VTABLE_ENTRY_( -+ VAStatus, AssociateSubpicture_pre31, -+ (VADriverContextP ctx, VASubpictureID subpicture, -+ VASurfaceID *target_surfaces, int num_surfaces, -+ short srcx, short srcy, unsigned short srcw, unsigned short srch, -+ short destx, short desty, unsigned short destw, unsigned short desth, -+ unsigned int flags), -+ AssociateSubpicture2_pre31, -+ (ctx, subpicture, target_surfaces, num_surfaces, -+ srcx, srcy, srcw, srch, destx, desty, destw, desth, flags), -+ {}, {}) -+ -+DEFINE_VTABLE_ENTRY_( -+ VAStatus, CreateContext_pre31, -+ (VADriverContextP ctx, VAConfigID config_id, -+ int picture_width, int picture_height, int flag, -+ VASurfaceID *render_targets, int num_render_targets, VAContextID *context), -+ CreateContext, -+ (ctx, config_id, picture_width, picture_height, flag, -+ render_targets, num_render_targets, context), -+ {}, { -+ VACompatContextP const compat_ctx = COMPAT_CTX(ctx); -+ int i; -+ for (i = 0; i < num_render_targets; i++) -+ va_context_map_add(compat_ctx, *context, render_targets[i]); -+ }) -+ -+DEFINE_VTABLE_ENTRY_( -+ VAStatus, DestroyContext_pre31, -+ (VADriverContextP ctx, VAContextID context), -+ DestroyContext, -+ (ctx, context), -+ {}, { va_context_map_remove(COMPAT_CTX(ctx), context); }) -+ -+#undef DEFINE_VTABLE_ENTRY -+#undef DEFINE_VTABLE_ENTRY_ -+ -+static void va_compat_init_VADriverVTable(VADriverContextP ctx, int compat_version) -+{ -+#define INIT_VTABLE_(CTX, DST_PROC, SRC_PROC) \ -+ (CTX)->vtable.va##DST_PROC = va_compat_##SRC_PROC -+#define INIT_VTABLE(CTX, PROC) \ -+ INIT_VTABLE_(CTX, PROC, PROC) -+ -+ INIT_VTABLE(ctx, Terminate); -+ INIT_VTABLE(ctx, QueryConfigProfiles); -+ INIT_VTABLE(ctx, QueryConfigEntrypoints); -+ INIT_VTABLE(ctx, GetConfigAttributes); -+ INIT_VTABLE(ctx, CreateConfig); -+ INIT_VTABLE(ctx, DestroyConfig); -+ INIT_VTABLE(ctx, QueryConfigAttributes); -+ INIT_VTABLE(ctx, CreateSurfaces); -+ INIT_VTABLE(ctx, DestroySurfaces); -+ INIT_VTABLE(ctx, CreateContext); -+ INIT_VTABLE(ctx, DestroyContext); -+ INIT_VTABLE(ctx, CreateBuffer); -+ INIT_VTABLE(ctx, BufferSetNumElements); -+ INIT_VTABLE(ctx, MapBuffer); -+ INIT_VTABLE(ctx, UnmapBuffer); -+ INIT_VTABLE(ctx, DestroyBuffer); -+ INIT_VTABLE(ctx, BeginPicture); -+ INIT_VTABLE(ctx, RenderPicture); -+ INIT_VTABLE(ctx, EndPicture); -+ INIT_VTABLE(ctx, SyncSurface); -+ INIT_VTABLE(ctx, QuerySurfaceStatus); -+ INIT_VTABLE(ctx, PutSurface); -+ INIT_VTABLE(ctx, QueryImageFormats); -+ INIT_VTABLE(ctx, CreateImage); -+ INIT_VTABLE(ctx, DeriveImage); -+ INIT_VTABLE(ctx, DestroyImage); -+ INIT_VTABLE(ctx, SetImagePalette); -+ INIT_VTABLE(ctx, GetImage); -+ INIT_VTABLE(ctx, PutImage); -+ INIT_VTABLE(ctx, QuerySubpictureFormats); -+ INIT_VTABLE(ctx, CreateSubpicture); -+ INIT_VTABLE(ctx, DestroySubpicture); -+ INIT_VTABLE(ctx, SetSubpictureImage); -+ INIT_VTABLE(ctx, SetSubpictureChromakey); -+ INIT_VTABLE(ctx, SetSubpictureGlobalAlpha); -+ INIT_VTABLE(ctx, AssociateSubpicture); -+ INIT_VTABLE(ctx, DeassociateSubpicture); -+ INIT_VTABLE(ctx, QueryDisplayAttributes); -+ INIT_VTABLE(ctx, GetDisplayAttributes); -+ INIT_VTABLE(ctx, SetDisplayAttributes); -+ INIT_VTABLE(ctx, CreateSurfaceFromCIFrame); -+ INIT_VTABLE(ctx, CreateSurfaceFromV4L2Buf); -+ INIT_VTABLE(ctx, CopySurfaceToBuffer); -+ -+ if (compat_version && compat_version < 31) { -+ INIT_VTABLE_(ctx, CreateContext, CreateContext_pre31); -+ INIT_VTABLE_(ctx, DestroyContext, DestroyContext_pre31); -+ INIT_VTABLE_(ctx, SyncSurface, SyncSurface_pre31); -+ INIT_VTABLE_(ctx, PutImage, PutImage_pre31); -+ INIT_VTABLE_(ctx, AssociateSubpicture, AssociateSubpicture_pre31); -+ } -+ -+#undef INIT_VTABLE -+#undef INIT_VTABLE__ -+} -+ -+VAStatus va_compat_init(VADisplay dpy, int compat_version, void *compat_ctx) -+{ -+ VADisplayContextP pDisplayContext = (VADisplayContextP)dpy; -+ VADriverContextP ctx = CTX(dpy); -+ VADriverContextP_0_29 ctx_0_29; -+ VADriverContextP_0_30 ctx_0_30; -+ VACompatContextP compat; -+ VAStatus status; -+ char *driver_name; -+ -+ ctx->compat = NULL; -+ -+ if (compat_version == 0) -+ return VA_STATUS_SUCCESS; -+ -+ ASSERT(compat_ctx); -+ if (compat_ctx == NULL) -+ return VA_STATUS_ERROR_UNKNOWN; -+ -+ driver_name = NULL; -+ status = pDisplayContext->vaGetDriverName(pDisplayContext, &driver_name); -+ ASSERT(status == VA_STATUS_SUCCESS); -+ if (status != VA_STATUS_SUCCESS) -+ return status; -+ -+ if ((compat = malloc(sizeof(*compat))) == NULL) -+ return VA_STATUS_ERROR_ALLOCATION_FAILED; -+ compat->buffers = NULL; -+ compat->buffers_count_max = 0; -+ compat->compat_version = compat_version; -+ compat->compat_ctx = NULL; -+ compat->driver_name = driver_name; -+ compat->context_map = NULL; -+ compat->last_context_map_match = NULL; -+ ctx->compat = compat; -+ -+ if (strcmp(driver_name, "psb") == 0) -+ compat->driver_id = VA_DRIVER_ID_POULSBO; -+ else if (strcmp(driver_name, "iegd") == 0) -+ compat->driver_id = VA_DRIVER_ID_IEGD; -+ else -+ compat->driver_id = VA_DRIVER_ID_UNKNOWN; -+ -+ switch (compat_version) { -+ case 29: -+ if ((ctx_0_29 = malloc(sizeof(*ctx_0_29))) == NULL) -+ return VA_STATUS_ERROR_ALLOCATION_FAILED; -+ memcpy(ctx_0_29, compat_ctx, sizeof(*ctx_0_29)); -+ va_compat_translate_VADriverContext_0_29(compat, ctx_0_29); -+ compat->compat_ctx = ctx_0_29; -+ COPY_FIELD(ctx, ctx_0_29, version_major); -+ COPY_FIELD(ctx, ctx_0_29, version_minor); -+ COPY_FIELD(ctx, ctx_0_29, max_profiles); -+ COPY_FIELD(ctx, ctx_0_29, max_entrypoints); -+ COPY_FIELD(ctx, ctx_0_29, max_attributes); -+ COPY_FIELD(ctx, ctx_0_29, max_image_formats); -+ COPY_FIELD(ctx, ctx_0_29, max_subpic_formats); -+ COPY_FIELD(ctx, ctx_0_29, max_display_attributes); -+ COPY_FIELD(ctx, ctx_0_29, str_vendor); -+ break; -+ case 30: -+ if ((ctx_0_30 = malloc(sizeof(*ctx_0_30))) == NULL) -+ return VA_STATUS_ERROR_ALLOCATION_FAILED; -+ memcpy(ctx_0_30, compat_ctx, sizeof(*ctx_0_30)); -+ va_compat_translate_VADriverContext_0_30(compat, ctx_0_30); -+ compat->compat_ctx = ctx_0_30; -+ COPY_FIELD(ctx, ctx_0_30, version_major); -+ COPY_FIELD(ctx, ctx_0_30, version_minor); -+ COPY_FIELD(ctx, ctx_0_30, max_profiles); -+ COPY_FIELD(ctx, ctx_0_30, max_entrypoints); -+ COPY_FIELD(ctx, ctx_0_30, max_attributes); -+ COPY_FIELD(ctx, ctx_0_30, max_image_formats); -+ COPY_FIELD(ctx, ctx_0_30, max_subpic_formats); -+ COPY_FIELD(ctx, ctx_0_30, max_display_attributes); -+ COPY_FIELD(ctx, ctx_0_30, str_vendor); -+ break; -+ case VA_MINOR_VERSION: -+ va_compat_translate_VADriverContext(compat, compat_ctx); -+ compat->compat_ctx = compat_ctx; -+ break; -+ default: -+ ASSERT(compat_version == 0); -+ return VA_STATUS_ERROR_UNKNOWN; -+ } -+ -+ va_compat_init_VADriverVTable(ctx, compat_version); -+ return VA_STATUS_SUCCESS; -+} -+ -+VAStatus va_compat_fini(VADisplay dpy) -+{ -+ VADriverContextP ctx = CTX(dpy); -+ VACompatContextP compat = ctx->compat; -+ int i; -+ -+ if (compat == NULL) -+ return VA_STATUS_SUCCESS; -+ -+ if (compat->driver_name) -+ { -+ free(compat->driver_name); -+ compat->driver_name = NULL; -+ } -+ -+ if (compat->buffers) -+ { -+ for (i = 0; i < compat->buffers_count_max; i++) -+ { -+ if (compat->buffers[i].id) -+ va_DestroyBufferCompat(ctx, compat->buffers[i].id); -+ } -+ free(compat->buffers); -+ compat->buffers = NULL; -+ } -+ -+ if (compat->compat_ctx && compat->compat_version != VA_MINOR_VERSION) -+ { -+ free(compat->compat_ctx); -+ compat->compat_ctx = NULL; -+ } -+ -+ if (compat->context_map) -+ { -+ VAContextMapP d, m = compat->context_map; -+ while (m) { -+ d = m; -+ m = m->next; -+ free(d); -+ } -+ } -+ compat->last_context_map_match = NULL; -+ -+ free(compat); -+ ctx->compat = NULL; -+ return VA_STATUS_SUCCESS; -+} -diff -Naur libva-0.31.0/src/va_compat.h libva-0.31.0.patch/src/va_compat.h ---- libva-0.31.0/src/va_compat.h 1970-01-01 01:00:00.000000000 +0100 -+++ libva-0.31.0.patch/src/va_compat.h 2009-12-15 13:45:30.923321622 +0100 -@@ -0,0 +1,1467 @@ -+/* -+ * Copyright (C) 2009 Splitted-Desktop Systems. All Rights Reserved. -+ * -+ * 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, sub license, 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 PRECISION INSIGHT AND/OR ITS 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 VA_COMPAT_H -+#define VA_COMPAT_H -+ -+VAStatus va_compat_init(VADisplay dpy, int compat_version, void *compat_ctx); -+VAStatus va_compat_fini(VADisplay dpy); -+ -+/* H.264 Picture (0.29) */ -+typedef struct _VAPictureH264_0_29 -+{ -+ VASurfaceID picture_id; -+ unsigned int flags; -+ unsigned int TopFieldOrderCnt; -+ unsigned int BottomFieldOrderCnt; -+} VAPictureH264_0_29; -+ -+/* H.264 Picture Parameter Buffer (0.29) */ -+typedef struct _VAPictureParameterBufferH264_0_29 -+{ -+ VAPictureH264_0_29 CurrPic; -+ VAPictureH264_0_29 ReferenceFrames[16]; /* in DPB */ -+ unsigned short picture_width_in_mbs_minus1; -+ unsigned short picture_height_in_mbs_minus1; -+ unsigned char bit_depth_luma_minus8; -+ unsigned char bit_depth_chroma_minus8; -+ unsigned char num_ref_frames; -+ union { -+ struct { -+ unsigned char chroma_format_idc : 2; -+ unsigned char residual_colour_transform_flag : 1; -+ unsigned char frame_mbs_only_flag : 1; -+ unsigned char mb_adaptive_frame_field_flag : 1; -+ unsigned char direct_8x8_inference_flag : 1; -+ unsigned char MinLumaBiPredSize8x8 : 1; /* see A.3.3.2 */ -+ }; -+ unsigned char seq_fields; -+ }; -+ unsigned char num_slice_groups_minus1; -+ unsigned char slice_group_map_type; -+ signed char pic_init_qp_minus26; -+ signed char chroma_qp_index_offset; -+ signed char second_chroma_qp_index_offset; -+ union { -+ struct { -+ unsigned char entropy_coding_mode_flag : 1; -+ unsigned char weighted_pred_flag : 1; -+ unsigned char weighted_bipred_idc : 2; -+ unsigned char transform_8x8_mode_flag : 1; -+ unsigned char field_pic_flag : 1; -+ unsigned char constrained_intra_pred_flag : 1; -+ }; -+ unsigned char pic_fields; -+ }; -+ unsigned short frame_num; -+} VAPictureParameterBufferH264_0_29; -+ -+/* H.264 Slice Parameter Buffer (0.29) */ -+typedef struct _VASliceParameterBufferH264_0_29 -+{ -+ unsigned int slice_data_size;/* number of bytes in the slice data buffer for this slice */ -+ unsigned int slice_data_offset;/* the offset to the NAL start code for this slice */ -+ unsigned int slice_data_flag; /* see VA_SLICE_DATA_FLAG_XXX defintions */ -+ unsigned short slice_data_bit_offset; /* bit offset from NAL start code to the beginning of slice data */ -+ unsigned short first_mb_in_slice; -+ unsigned char slice_type; -+ unsigned char direct_spatial_mv_pred_flag; -+ unsigned char num_ref_idx_l0_active_minus1; -+ unsigned char num_ref_idx_l1_active_minus1; -+ unsigned char cabac_init_idc; -+ char slice_qp_delta; -+ unsigned char disable_deblocking_filter_idc; -+ char slice_alpha_c0_offset_div2; -+ char slice_beta_offset_div2; -+ VAPictureH264_0_29 RefPicList0[32]; /* See 8.2.4.2 */ -+ VAPictureH264_0_29 RefPicList1[32]; /* See 8.2.4.2 */ -+ unsigned char luma_log2_weight_denom; -+ unsigned char chroma_log2_weight_denom; -+ unsigned char luma_weight_l0_flag; -+ short luma_weight_l0[32]; -+ short luma_offset_l0[32]; -+ unsigned char chroma_weight_l0_flag; -+ short chroma_weight_l0[32][2]; -+ short chroma_offset_l0[32][2]; -+ unsigned char luma_weight_l1_flag; -+ short luma_weight_l1[32]; -+ short luma_offset_l1[32]; -+ unsigned char chroma_weight_l1_flag; -+ short chroma_weight_l1[32][2]; -+ short chroma_offset_l1[32][2]; -+} VASliceParameterBufferH264_0_29; -+ -+/* VC-1 Picture Parameter Buffer (0.29) */ -+typedef struct _VAPictureParameterBufferVC1_0_29 -+{ -+ VASurfaceID forward_reference_picture; -+ VASurfaceID backward_reference_picture; -+ /* if out-of-loop post-processing is done on the render -+ target, then we need to keep the in-loop decoded -+ picture as a reference picture */ -+ VASurfaceID inloop_decoded_picture; -+ -+ /* sequence layer for AP or meta data for SP and MP */ -+ union { -+ struct { -+ unsigned char interlace : 1; /* SEQUENCE_LAYER::INTERLACE */ -+ unsigned char syncmarker : 1;/* METADATA::SYNCMARKER */ -+ unsigned char overlap : 1;/* METADATA::OVERLAP */ -+ }; -+ unsigned char sequence_fields; -+ }; -+ -+ unsigned short coded_width; /* ENTRY_POINT_LAYER::CODED_WIDTH */ -+ unsigned short coded_height; /* ENTRY_POINT_LAYER::CODED_HEIGHT */ -+ unsigned char closed_entry; /* ENTRY_POINT_LAYER::CLOSED_ENTRY */ -+ unsigned char broken_link; /* ENTRY_POINT_LAYER::BROKEN_LINK */ -+ unsigned char loopfilter; /* ENTRY_POINT_LAYER::LOOPFILTER */ -+ unsigned char conditional_overlap_flag; /* ENTRY_POINT_LAYER::CONDOVER */ -+ unsigned char fast_uvmc_flag; /* ENTRY_POINT_LAYER::FASTUVMC */ -+ union { -+ struct { -+ unsigned char range_mapping_luma_flag: 1; /* ENTRY_POINT_LAYER::RANGE_MAPY_FLAG */ -+ unsigned char range_mapping_luma: 3; /* ENTRY_POINT_LAYER::RANGE_MAPY */ -+ unsigned char range_mapping_chroma_flag: 1; /* ENTRY_POINT_LAYER::RANGE_MAPUV_FLAG */ -+ unsigned char range_mapping_chroma: 3; /* ENTRY_POINT_LAYER::RANGE_MAPUV */ -+ }; -+ unsigned char range_mapping_fields; -+ }; -+ -+ unsigned char b_picture_fraction; /* PICTURE_LAYER::BFRACTION */ -+ unsigned char cbp_table; /* PICTURE_LAYER::CBPTAB/ICBPTAB */ -+ unsigned char mb_mode_table; /* PICTURE_LAYER::MBMODETAB */ -+ unsigned char range_reduction_frame;/* PICTURE_LAYER::RANGEREDFRM */ -+ unsigned char rounding_control; /* PICTURE_LAYER::RNDCTRL */ -+ unsigned char post_processing; /* PICTURE_LAYER::POSTPROC */ -+ unsigned char picture_resolution_index; /* PICTURE_LAYER::RESPIC */ -+ unsigned char luma_scale; /* PICTURE_LAYER::LUMSCALE */ -+ unsigned char luma_shift; /* PICTURE_LAYER::LUMSHIFT */ -+ union { -+ struct { -+ unsigned char picture_type : 2; /* PICTURE_LAYER::PTYPE */ -+ unsigned char frame_coding_mode : 3;/* PICTURE_LAYER::FCM */ -+ unsigned char top_field_first : 1;/* PICTURE_LAYER::TFF */ -+ unsigned char is_first_field : 1; /* set to 1 if it is the first field */ -+ unsigned char intensity_compensation: 1;/* PICTURE_LAYER::INTCOMP */ -+ }; -+ unsigned char picture_fields; -+ }; -+ union { -+ struct { -+ unsigned char mv_type_mb : 1; /* PICTURE::MVTYPEMB */ -+ unsigned char direct_mb : 1; /* PICTURE::DIRECTMB */ -+ unsigned char skip_mb : 1; /* PICTURE::SKIPMB */ -+ unsigned char field_tx : 1; /* PICTURE::FIELDTX */ -+ unsigned char forward_mb : 1; /* PICTURE::FORWARDMB */ -+ unsigned char ac_pred : 1; /* PICTURE::ACPRED */ -+ unsigned char overflags : 1; /* PICTURE::OVERFLAGS */ -+ }; -+ unsigned char raw_coding_flag; -+ }; -+ union { -+ struct { -+ unsigned char bp_mv_type_mb : 1; /* PICTURE::MVTYPEMB */ -+ unsigned char bp_direct_mb : 1; /* PICTURE::DIRECTMB */ -+ unsigned char bp_skip_mb : 1; /* PICTURE::SKIPMB */ -+ unsigned char bp_field_tx : 1; /* PICTURE::FIELDTX */ -+ unsigned char bp_forward_mb : 1; /* PICTURE::FORWARDMB */ -+ unsigned char bp_ac_pred : 1; /* PICTURE::ACPRED */ -+ unsigned char bp_overflags : 1; /* PICTURE::OVERFLAGS */ -+ }; -+ unsigned char bitplane_present_flag; /* signal what bitplane is being passed via the bitplane buffer */ -+ }; -+ union { -+ struct { -+ unsigned char reference_distance_flag : 1;/* PICTURE_LAYER::REFDIST_FLAG */ -+ unsigned char reference_distance : 5;/* PICTURE_LAYER::REFDIST */ -+ unsigned char num_reference_pictures: 1;/* PICTURE_LAYER::NUMREF */ -+ unsigned char reference_field_pic_indicator : 1;/* PICTURE_LAYER::REFFIELD */ -+ }; -+ unsigned short reference_fields; -+ }; -+ union { -+ struct { -+ VAMvModeVC1 mv_mode : 3; /* PICTURE_LAYER::MVMODE */ -+ VAMvModeVC1 mv_mode2 : 3; /* PICTURE_LAYER::MVMODE2 */ -+ unsigned char mv_table : 3; /* PICTURE_LAYER::MVTAB/IMVTAB */ -+ unsigned char two_mv_block_pattern_table: 2; /* PICTURE_LAYER::2MVBPTAB */ -+ unsigned char four_mv_switch : 1; /* PICTURE_LAYER::4MVSWITCH */ -+ unsigned char four_mv_block_pattern_table : 2; /* PICTURE_LAYER::4MVBPTAB */ -+ unsigned char extended_mv_flag : 1; /* ENTRY_POINT_LAYER::EXTENDED_MV */ -+ unsigned char extended_mv_range : 2; /* PICTURE_LAYER::MVRANGE */ -+ unsigned char extended_dmv_flag : 1; /* ENTRY_POINT_LAYER::EXTENDED_DMV */ -+ unsigned char extended_dmv_range : 2; /* PICTURE_LAYER::DMVRANGE */ -+ }; -+ unsigned int mv_fields; -+ }; -+ union { -+ struct { -+ unsigned char dquant : 2; /* ENTRY_POINT_LAYER::DQUANT */ -+ unsigned char quantizer : 2; /* ENTRY_POINT_LAYER::QUANTIZER */ -+ unsigned char half_qp : 1; /* PICTURE_LAYER::HALFQP */ -+ unsigned char pic_quantizer_scale : 5;/* PICTURE_LAYER::PQUANT */ -+ unsigned char pic_quantizer_type : 1;/* PICTURE_LAYER::PQUANTIZER */ -+ unsigned char dq_frame : 1; /* VOPDQUANT::DQUANTFRM */ -+ unsigned char dq_profile : 2; /* VOPDQUANT::DQPROFILE */ -+ unsigned char dq_sb_edge : 2; /* VOPDQUANT::DQSBEDGE */ -+ unsigned char dq_db_edge : 2; /* VOPDQUANT::DQDBEDGE */ -+ unsigned char dq_binary_level : 1; /* VOPDQUANT::DQBILEVEL */ -+ unsigned char alt_pic_quantizer : 5;/* VOPDQUANT::ALTPQUANT */ -+ }; -+ unsigned long pic_quantizer_fields; -+ }; -+ union { -+ struct { -+ unsigned char variable_sized_transform_flag : 1;/* ENTRY_POINT_LAYER::VSTRANSFORM */ -+ unsigned char mb_level_transform_type_flag : 1;/* PICTURE_LAYER::TTMBF */ -+ unsigned char frame_level_transform_type : 2;/* PICTURE_LAYER::TTFRM */ -+ unsigned char transform_ac_codingset_idx1 : 2;/* PICTURE_LAYER::TRANSACFRM */ -+ unsigned char transform_ac_codingset_idx2 : 2;/* PICTURE_LAYER::TRANSACFRM2 */ -+ unsigned char intra_transform_dc_table : 1;/* PICTURE_LAYER::TRANSDCTAB */ -+ }; -+ unsigned short transform_fields; -+ }; -+} VAPictureParameterBufferVC1_0_29; -+ -+/* MPEG-2 Picture Parameter Buffer (0.29) */ -+typedef struct _VAPictureParameterBufferMPEG2_0_29 -+{ -+ unsigned short horizontal_size; -+ unsigned short vertical_size; -+ VASurfaceID forward_reference_picture; -+ VASurfaceID backward_reference_picture; -+ /* meanings of the following fields are the same as in the standard */ -+ int picture_coding_type; -+ int f_code; /* pack all four fcode into this */ -+ union { -+ struct { -+ unsigned char intra_dc_precision : 2; -+ unsigned char picture_structure : 2; -+ unsigned char top_field_first : 1; -+ unsigned char frame_pred_frame_dct : 1; -+ unsigned char concealment_motion_vectors : 1; -+ unsigned char q_scale_type : 1; -+ unsigned char intra_vlc_format : 1; -+ unsigned char alternate_scan : 1; -+ unsigned char repeat_first_field : 1; -+ unsigned char progressive_frame : 1; -+ unsigned char is_first_field : 1; /* indicate whether the current field -+ * is the first field for field picture -+ */ -+ }; -+ unsigned int picture_coding_extension; -+ }; -+} VAPictureParameterBufferMPEG2_0_29; -+ -+/* MPEG-2 Slice Parameter Buffer (0.29) */ -+typedef struct _VASliceParameterBufferMPEG2_0_29 -+{ -+ unsigned int slice_data_size;/* number of bytes in the slice data buffer for this slice */ -+ unsigned int slice_data_offset;/* the offset to the first byte of slice data */ -+ unsigned int slice_data_flag; /* see VA_SLICE_DATA_FLAG_XXX defintions */ -+ unsigned int macroblock_offset;/* the offset to the first bit of MB from the first byte of slice data */ -+ unsigned int slice_vertical_position; -+ int quantiser_scale_code; -+ int intra_slice_flag; -+} VASliceParameterBufferMPEG2_0_29; -+ -+/* MPEG-4 Picture Parameter Buffer (0.29) */ -+typedef struct _VAPictureParameterBufferMPEG4_0_29 -+{ -+ unsigned short vop_width; -+ unsigned short vop_height; -+ VASurfaceID forward_reference_picture; -+ VASurfaceID backward_reference_picture; -+ union { -+ struct { -+ unsigned char short_video_header : 1; -+ unsigned char chroma_format : 2; -+ unsigned char interlaced : 1; -+ unsigned char obmc_disable : 1; -+ unsigned char sprite_enable : 2; -+ unsigned char sprite_warping_accuracy : 2; -+ unsigned char quant_type : 1; -+ unsigned char quarter_sample : 1; -+ unsigned char data_partitioned : 1; -+ unsigned char reversible_vlc : 1; -+ }; -+ unsigned short vol_fields; -+ }; -+ unsigned char no_of_sprite_warping_points; -+ short sprite_trajectory_du[3]; -+ short sprite_trajectory_dv[3]; -+ unsigned char quant_precision; -+ union { -+ struct { -+ unsigned char vop_coding_type : 2; -+ unsigned char backward_reference_vop_coding_type : 2; -+ unsigned char vop_rounding_type : 1; -+ unsigned char intra_dc_vlc_thr : 3; -+ unsigned char top_field_first : 1; -+ unsigned char alternate_vertical_scan_flag : 1; -+ }; -+ unsigned short vop_fields; -+ }; -+ unsigned char vop_fcode_forward; -+ unsigned char vop_fcode_backward; -+ /* short header related */ -+ unsigned char num_gobs_in_vop; -+ unsigned char num_macroblocks_in_gob; -+ /* for direct mode prediction */ -+ short TRB; -+ short TRD; -+} VAPictureParameterBufferMPEG4_0_29; -+ -+/* H.264 Picture (0.30) */ -+typedef struct _VAPictureH264_0_30 -+{ -+ VASurfaceID picture_id; -+ unsigned int flags; -+ unsigned int TopFieldOrderCnt; -+ unsigned int BottomFieldOrderCnt; -+} VAPictureH264_0_30; -+ -+/* H.264 Picture Parameter Buffer (0.30) */ -+typedef struct _VAPictureParameterBufferH264_0_30 -+{ -+ VAPictureH264 CurrPic; -+ VAPictureH264 ReferenceFrames[16]; /* in DPB */ -+ unsigned short picture_width_in_mbs_minus1; -+ unsigned short picture_height_in_mbs_minus1; -+ unsigned char bit_depth_luma_minus8; -+ unsigned char bit_depth_chroma_minus8; -+ unsigned char num_ref_frames; -+ union { -+ struct { -+ unsigned char chroma_format_idc : 2; -+ unsigned char residual_colour_transform_flag : 1; -+ unsigned char frame_mbs_only_flag : 1; -+ unsigned char mb_adaptive_frame_field_flag : 1; -+ unsigned char direct_8x8_inference_flag : 1; -+ unsigned char MinLumaBiPredSize8x8 : 1; /* see A.3.3.2 */ -+ } bits; -+ unsigned char value; -+ } seq_fields; -+ unsigned char num_slice_groups_minus1; -+ unsigned char slice_group_map_type; -+ signed char pic_init_qp_minus26; -+ signed char chroma_qp_index_offset; -+ signed char second_chroma_qp_index_offset; -+ union { -+ struct { -+ unsigned char entropy_coding_mode_flag : 1; -+ unsigned char weighted_pred_flag : 1; -+ unsigned char weighted_bipred_idc : 2; -+ unsigned char transform_8x8_mode_flag : 1; -+ unsigned char field_pic_flag : 1; -+ unsigned char constrained_intra_pred_flag : 1; -+ } bits; -+ unsigned char value; -+ } pic_fields; -+ unsigned short frame_num; -+} VAPictureParameterBufferH264_0_30; -+ -+/* H.264 Slice Parameter Buffer (0.30) */ -+typedef struct _VASliceParameterBufferH264_0_30 -+{ -+ unsigned int slice_data_size;/* number of bytes in the slice data buffer for this slice */ -+ unsigned int slice_data_offset;/* the offset to the NAL start code for this slice */ -+ unsigned int slice_data_flag; /* see VA_SLICE_DATA_FLAG_XXX defintions */ -+ unsigned short slice_data_bit_offset; /* bit offset from NAL start code to the beginning of slice data */ -+ unsigned short first_mb_in_slice; -+ unsigned char slice_type; -+ unsigned char direct_spatial_mv_pred_flag; -+ unsigned char num_ref_idx_l0_active_minus1; -+ unsigned char num_ref_idx_l1_active_minus1; -+ unsigned char cabac_init_idc; -+ char slice_qp_delta; -+ unsigned char disable_deblocking_filter_idc; -+ char slice_alpha_c0_offset_div2; -+ char slice_beta_offset_div2; -+ VAPictureH264 RefPicList0[32]; /* See 8.2.4.2 */ -+ VAPictureH264 RefPicList1[32]; /* See 8.2.4.2 */ -+ unsigned char luma_log2_weight_denom; -+ unsigned char chroma_log2_weight_denom; -+ unsigned char luma_weight_l0_flag; -+ short luma_weight_l0[32]; -+ short luma_offset_l0[32]; -+ unsigned char chroma_weight_l0_flag; -+ short chroma_weight_l0[32][2]; -+ short chroma_offset_l0[32][2]; -+ unsigned char luma_weight_l1_flag; -+ short luma_weight_l1[32]; -+ short luma_offset_l1[32]; -+ unsigned char chroma_weight_l1_flag; -+ short chroma_weight_l1[32][2]; -+ short chroma_offset_l1[32][2]; -+} VASliceParameterBufferH264_0_30; -+ -+/* VC-1 Picture Parameter Buffer (0.30) */ -+typedef struct _VAPictureParameterBufferVC1_0_30 -+{ -+ VASurfaceID forward_reference_picture; -+ VASurfaceID backward_reference_picture; -+ /* if out-of-loop post-processing is done on the render -+ target, then we need to keep the in-loop decoded -+ picture as a reference picture */ -+ VASurfaceID inloop_decoded_picture; -+ -+ /* sequence layer for AP or meta data for SP and MP */ -+ union { -+ struct { -+ unsigned char interlace : 1; /* SEQUENCE_LAYER::INTERLACE */ -+ unsigned char syncmarker : 1;/* METADATA::SYNCMARKER */ -+ unsigned char overlap : 1;/* METADATA::OVERLAP */ -+ } bits; -+ unsigned char value; -+ } sequence_fields; -+ -+ unsigned short coded_width; /* ENTRY_POINT_LAYER::CODED_WIDTH */ -+ unsigned short coded_height; /* ENTRY_POINT_LAYER::CODED_HEIGHT */ -+ unsigned char closed_entry; /* ENTRY_POINT_LAYER::CLOSED_ENTRY */ -+ unsigned char broken_link; /* ENTRY_POINT_LAYER::BROKEN_LINK */ -+ unsigned char loopfilter; /* ENTRY_POINT_LAYER::LOOPFILTER */ -+ unsigned char conditional_overlap_flag; /* ENTRY_POINT_LAYER::CONDOVER */ -+ unsigned char fast_uvmc_flag; /* ENTRY_POINT_LAYER::FASTUVMC */ -+ union { -+ struct { -+ unsigned char luma_flag : 1; /* ENTRY_POINT_LAYER::RANGE_MAPY_FLAG */ -+ unsigned char luma : 3; /* ENTRY_POINT_LAYER::RANGE_MAPY */ -+ unsigned char chroma_flag : 1; /* ENTRY_POINT_LAYER::RANGE_MAPUV_FLAG */ -+ unsigned char chroma : 3; /* ENTRY_POINT_LAYER::RANGE_MAPUV */ -+ } bits; -+ unsigned char value; -+ } range_mapping_fields; -+ -+ unsigned char b_picture_fraction; /* PICTURE_LAYER::BFRACTION */ -+ unsigned char cbp_table; /* PICTURE_LAYER::CBPTAB/ICBPTAB */ -+ unsigned char mb_mode_table; /* PICTURE_LAYER::MBMODETAB */ -+ unsigned char range_reduction_frame;/* PICTURE_LAYER::RANGEREDFRM */ -+ unsigned char rounding_control; /* PICTURE_LAYER::RNDCTRL */ -+ unsigned char post_processing; /* PICTURE_LAYER::POSTPROC */ -+ unsigned char picture_resolution_index; /* PICTURE_LAYER::RESPIC */ -+ unsigned char luma_scale; /* PICTURE_LAYER::LUMSCALE */ -+ unsigned char luma_shift; /* PICTURE_LAYER::LUMSHIFT */ -+ union { -+ struct { -+ unsigned char picture_type : 2; /* PICTURE_LAYER::PTYPE */ -+ unsigned char frame_coding_mode : 3; /* PICTURE_LAYER::FCM */ -+ unsigned char top_field_first : 1; /* PICTURE_LAYER::TFF */ -+ unsigned char is_first_field : 1; /* set to 1 if it is the first field */ -+ unsigned char intensity_compensation : 1; /* PICTURE_LAYER::INTCOMP */ -+ } bits; -+ unsigned char value; -+ } picture_fields; -+ union { -+ struct { -+ unsigned char mv_type_mb : 1; /* PICTURE::MVTYPEMB */ -+ unsigned char direct_mb : 1; /* PICTURE::DIRECTMB */ -+ unsigned char skip_mb : 1; /* PICTURE::SKIPMB */ -+ unsigned char field_tx : 1; /* PICTURE::FIELDTX */ -+ unsigned char forward_mb : 1; /* PICTURE::FORWARDMB */ -+ unsigned char ac_pred : 1; /* PICTURE::ACPRED */ -+ unsigned char overflags : 1; /* PICTURE::OVERFLAGS */ -+ } flags; -+ unsigned char value; -+ } raw_coding; -+ union { -+ struct { -+ unsigned char bp_mv_type_mb : 1; /* PICTURE::MVTYPEMB */ -+ unsigned char bp_direct_mb : 1; /* PICTURE::DIRECTMB */ -+ unsigned char bp_skip_mb : 1; /* PICTURE::SKIPMB */ -+ unsigned char bp_field_tx : 1; /* PICTURE::FIELDTX */ -+ unsigned char bp_forward_mb : 1; /* PICTURE::FORWARDMB */ -+ unsigned char bp_ac_pred : 1; /* PICTURE::ACPRED */ -+ unsigned char bp_overflags : 1; /* PICTURE::OVERFLAGS */ -+ } flags; -+ unsigned char value; -+ } bitplane_present; /* signal what bitplane is being passed via the bitplane buffer */ -+ union { -+ struct { -+ unsigned char reference_distance_flag : 1;/* PICTURE_LAYER::REFDIST_FLAG */ -+ unsigned char reference_distance : 5;/* PICTURE_LAYER::REFDIST */ -+ unsigned char num_reference_pictures: 1;/* PICTURE_LAYER::NUMREF */ -+ unsigned char reference_field_pic_indicator : 1;/* PICTURE_LAYER::REFFIELD */ -+ } bits; -+ unsigned short value; -+ } reference_fields; -+ union { -+ struct { -+ unsigned char mv_mode : 3; /* PICTURE_LAYER::MVMODE */ -+ unsigned char mv_mode2 : 3; /* PICTURE_LAYER::MVMODE2 */ -+ unsigned char mv_table : 3; /* PICTURE_LAYER::MVTAB/IMVTAB */ -+ unsigned char two_mv_block_pattern_table: 2; /* PICTURE_LAYER::2MVBPTAB */ -+ unsigned char four_mv_switch : 1; /* PICTURE_LAYER::4MVSWITCH */ -+ unsigned char four_mv_block_pattern_table : 2; /* PICTURE_LAYER::4MVBPTAB */ -+ unsigned char extended_mv_flag : 1; /* ENTRY_POINT_LAYER::EXTENDED_MV */ -+ unsigned char extended_mv_range : 2; /* PICTURE_LAYER::MVRANGE */ -+ unsigned char extended_dmv_flag : 1; /* ENTRY_POCHAR_LAYER::EXTENDED_DMV */ -+ unsigned char extended_dmv_range : 2; /* PICTURE_LAYER::DMVRANGE */ -+ } bits; -+ unsigned int value; -+ } mv_fields; -+ union { -+ struct { -+ unsigned char dquant : 2; /* ENTRY_POINT_LAYER::DQUANT */ -+ unsigned char quantizer : 2; /* ENTRY_POINT_LAYER::QUANTIZER */ -+ unsigned char half_qp : 1; /* PICTURE_LAYER::HALFQP */ -+ unsigned char pic_quantizer_scale : 5;/* PICTURE_LAYER::PQUANT */ -+ unsigned char pic_quantizer_type : 1;/* PICTURE_LAYER::PQUANTIZER */ -+ unsigned char dq_frame : 1; /* VOPDQUANT::DQUANTFRM */ -+ unsigned char dq_profile : 2; /* VOPDQUANT::DQPROFILE */ -+ unsigned char dq_sb_edge : 2; /* VOPDQUANT::DQSBEDGE */ -+ unsigned char dq_db_edge : 2; /* VOPDQUANT::DQDBEDGE */ -+ unsigned char dq_binary_level : 1; /* VOPDQUANT::DQBILEVEL */ -+ unsigned char alt_pic_quantizer : 5;/* VOPDQUANT::ALTPQUANT */ -+ } bits; -+ unsigned long value; -+ } pic_quantizer_fields; -+ union { -+ struct { -+ unsigned char variable_sized_transform_flag : 1;/* ENTRY_POINT_LAYER::VSTRANSFORM */ -+ unsigned char mb_level_transform_type_flag : 1;/* PICTURE_LAYER::TTMBF */ -+ unsigned char frame_level_transform_type : 2;/* PICTURE_LAYER::TTFRM */ -+ unsigned char transform_ac_codingset_idx1 : 2;/* PICTURE_LAYER::TRANSACFRM */ -+ unsigned char transform_ac_codingset_idx2 : 2;/* PICTURE_LAYER::TRANSACFRM2 */ -+ unsigned char intra_transform_dc_table : 1;/* PICTURE_LAYER::TRANSDCTAB */ -+ } bits; -+ unsigned short value; -+ } transform_fields; -+} VAPictureParameterBufferVC1_0_30; -+ -+/* MPEG-2 Picture Parameter Buffer (0.30) */ -+typedef struct _VAPictureParameterBufferMPEG2_0_30 -+{ -+ unsigned short horizontal_size; -+ unsigned short vertical_size; -+ VASurfaceID forward_reference_picture; -+ VASurfaceID backward_reference_picture; -+ /* meanings of the following fields are the same as in the standard */ -+ int picture_coding_type; -+ int f_code; /* pack all four fcode into this */ -+ union { -+ struct { -+ unsigned int intra_dc_precision : 2; -+ unsigned int picture_structure : 2; -+ unsigned int top_field_first : 1; -+ unsigned int frame_pred_frame_dct : 1; -+ unsigned int concealment_motion_vectors : 1; -+ unsigned int q_scale_type : 1; -+ unsigned int intra_vlc_format : 1; -+ unsigned int alternate_scan : 1; -+ unsigned int repeat_first_field : 1; -+ unsigned int progressive_frame : 1; -+ unsigned int is_first_field : 1; /* indicate whether the current field -+ * is the first field for field picture -+ */ -+ } bits; -+ unsigned int value; -+ } picture_coding_extension; -+} VAPictureParameterBufferMPEG2_0_30; -+ -+/* MPEG-2 Slice Parameter Buffer (0.29) */ -+typedef VASliceParameterBufferMPEG2_0_29 VASliceParameterBufferMPEG2_0_30; -+ -+/* MPEG-4 Picture Parameter Buffer (0.30) */ -+typedef struct _VAPictureParameterBufferMPEG4_0_30 -+{ -+ unsigned short vop_width; -+ unsigned short vop_height; -+ VASurfaceID forward_reference_picture; -+ VASurfaceID backward_reference_picture; -+ union { -+ struct { -+ unsigned char short_video_header : 1; -+ unsigned char chroma_format : 2; -+ unsigned char interlaced : 1; -+ unsigned char obmc_disable : 1; -+ unsigned char sprite_enable : 2; -+ unsigned char sprite_warping_accuracy : 2; -+ unsigned char quant_type : 1; -+ unsigned char quarter_sample : 1; -+ unsigned char data_partitioned : 1; -+ unsigned char reversible_vlc : 1; -+ } bits; -+ unsigned short value; -+ } vol_fields; -+ unsigned char no_of_sprite_warping_points; -+ short sprite_trajectory_du[3]; -+ short sprite_trajectory_dv[3]; -+ unsigned char quant_precision; -+ union { -+ struct { -+ unsigned char vop_coding_type : 2; -+ unsigned char backward_reference_vop_coding_type : 2; -+ unsigned char vop_rounding_type : 1; -+ unsigned char intra_dc_vlc_thr : 3; -+ unsigned char top_field_first : 1; -+ unsigned char alternate_vertical_scan_flag : 1; -+ } bits; -+ unsigned short value; -+ } vop_fields; -+ unsigned char vop_fcode_forward; -+ unsigned char vop_fcode_backward; -+ /* short header related */ -+ unsigned char num_gobs_in_vop; -+ unsigned char num_macroblocks_in_gob; -+ /* for direct mode prediction */ -+ short TRB; -+ short TRD; -+} VAPictureParameterBufferMPEG4_0_30; -+ -+/* Encode Slice Parameter Buffer (0.30) */ -+typedef struct _VAEncSliceParameterBuffer_0_30 -+{ -+ unsigned int start_row_number; /* starting MB row number for this slice */ -+ unsigned int slice_height; /* slice height measured in MB */ -+ union { -+ struct { -+ unsigned char is_intra : 1; -+ unsigned char disable_deblocking_filter_idc : 2; -+ } bits; -+ unsigned char value; -+ } slice_flags; -+} VAEncSliceParameterBuffer_0_30; -+ -+/* MPEG-4 Picture Parameter Buffer (0.31) */ -+typedef struct _VAPictureParameterBufferMPEG4_0_31 -+{ -+ unsigned short vop_width; -+ unsigned short vop_height; -+ VASurfaceID forward_reference_picture; -+ VASurfaceID backward_reference_picture; -+ union { -+ struct { -+ unsigned int short_video_header : 1; -+ unsigned int chroma_format : 2; -+ unsigned int interlaced : 1; -+ unsigned int obmc_disable : 1; -+ unsigned int sprite_enable : 2; -+ unsigned int sprite_warping_accuracy : 2; -+ unsigned int quant_type : 1; -+ unsigned int quarter_sample : 1; -+ unsigned int data_partitioned : 1; -+ unsigned int reversible_vlc : 1; -+ } bits; -+ unsigned int value; -+ } vol_fields; -+ unsigned char no_of_sprite_warping_points; -+ short sprite_trajectory_du[3]; -+ short sprite_trajectory_dv[3]; -+ unsigned char quant_precision; -+ union { -+ struct { -+ unsigned int vop_coding_type : 2; -+ unsigned int backward_reference_vop_coding_type : 2; -+ unsigned int vop_rounding_type : 1; -+ unsigned int intra_dc_vlc_thr : 3; -+ unsigned int top_field_first : 1; -+ unsigned int alternate_vertical_scan_flag : 1; -+ } bits; -+ unsigned int value; -+ } vop_fields; -+ unsigned char vop_fcode_forward; -+ unsigned char vop_fcode_backward; -+ /* short header related */ -+ unsigned char num_gobs_in_vop; -+ unsigned char num_macroblocks_in_gob; -+ /* for direct mode prediction */ -+ short TRB; -+ short TRD; -+} VAPictureParameterBufferMPEG4_0_31; -+ -+typedef struct VADriverContext_0_29 *VADriverContextP_0_29; -+ -+/* Driver VTable (0.29) */ -+struct VADriverVTable_0_29 -+{ -+ VAStatus (*vaTerminate) ( VADriverContextP_0_29 ctx ); -+ -+ VAStatus (*vaQueryConfigProfiles) ( -+ VADriverContextP_0_29 ctx, -+ VAProfile *profile_list, /* out */ -+ int *num_profiles /* out */ -+ ); -+ -+ VAStatus (*vaQueryConfigEntrypoints) ( -+ VADriverContextP_0_29 ctx, -+ VAProfile profile, -+ VAEntrypoint *entrypoint_list, /* out */ -+ int *num_entrypoints /* out */ -+ ); -+ -+ VAStatus (*vaGetConfigAttributes) ( -+ VADriverContextP_0_29 ctx, -+ VAProfile profile, -+ VAEntrypoint entrypoint, -+ VAConfigAttrib *attrib_list, /* in/out */ -+ int num_attribs -+ ); -+ -+ VAStatus (*vaCreateConfig) ( -+ VADriverContextP_0_29 ctx, -+ VAProfile profile, -+ VAEntrypoint entrypoint, -+ VAConfigAttrib *attrib_list, -+ int num_attribs, -+ VAConfigID *config_id /* out */ -+ ); -+ -+ VAStatus (*vaDestroyConfig) ( -+ VADriverContextP_0_29 ctx, -+ VAConfigID config_id -+ ); -+ -+ VAStatus (*vaQueryConfigAttributes) ( -+ VADriverContextP_0_29 ctx, -+ VAConfigID config_id, -+ VAProfile *profile, /* out */ -+ VAEntrypoint *entrypoint, /* out */ -+ VAConfigAttrib *attrib_list, /* out */ -+ int *num_attribs /* out */ -+ ); -+ -+ VAStatus (*vaCreateSurfaces) ( -+ VADriverContextP_0_29 ctx, -+ int width, -+ int height, -+ int format, -+ int num_surfaces, -+ VASurfaceID *surfaces /* out */ -+ ); -+ -+ VAStatus (*vaDestroySurfaces) ( -+ VADriverContextP_0_29 ctx, -+ VASurfaceID *surface_list, -+ int num_surfaces -+ ); -+ -+ VAStatus (*vaCreateContext) ( -+ VADriverContextP_0_29 ctx, -+ VAConfigID config_id, -+ int picture_width, -+ int picture_height, -+ int flag, -+ VASurfaceID *render_targets, -+ int num_render_targets, -+ VAContextID *context /* out */ -+ ); -+ -+ VAStatus (*vaDestroyContext) ( -+ VADriverContextP_0_29 ctx, -+ VAContextID context -+ ); -+ -+ VAStatus (*vaCreateBuffer) ( -+ VADriverContextP_0_29 ctx, -+ VAContextID context, /* in */ -+ VABufferType type, /* in */ -+ unsigned int size, /* in */ -+ unsigned int num_elements, /* in */ -+ void *data, /* in */ -+ VABufferID *buf_id /* out */ -+ ); -+ -+ VAStatus (*vaBufferSetNumElements) ( -+ VADriverContextP_0_29 ctx, -+ VABufferID buf_id, /* in */ -+ unsigned int num_elements /* in */ -+ ); -+ -+ VAStatus (*vaMapBuffer) ( -+ VADriverContextP_0_29 ctx, -+ VABufferID buf_id, /* in */ -+ void **pbuf /* out */ -+ ); -+ -+ VAStatus (*vaUnmapBuffer) ( -+ VADriverContextP_0_29 ctx, -+ VABufferID buf_id /* in */ -+ ); -+ -+ VAStatus (*vaDestroyBuffer) ( -+ VADriverContextP_0_29 ctx, -+ VABufferID buffer_id -+ ); -+ -+ VAStatus (*vaBeginPicture) ( -+ VADriverContextP_0_29 ctx, -+ VAContextID context, -+ VASurfaceID render_target -+ ); -+ -+ VAStatus (*vaRenderPicture) ( -+ VADriverContextP_0_29 ctx, -+ VAContextID context, -+ VABufferID *buffers, -+ int num_buffers -+ ); -+ -+ VAStatus (*vaEndPicture) ( -+ VADriverContextP_0_29 ctx, -+ VAContextID context -+ ); -+ -+ VAStatus (*vaSyncSurface) ( -+ VADriverContextP_0_29 ctx, -+ VAContextID context, -+ VASurfaceID render_target -+ ); -+ -+ VAStatus (*vaQuerySurfaceStatus) ( -+ VADriverContextP_0_29 ctx, -+ VASurfaceID render_target, -+ VASurfaceStatus *status /* out */ -+ ); -+ -+ VAStatus (*vaPutSurface) ( -+ VADriverContextP_0_29 ctx, -+ VASurfaceID surface, -+ unsigned long draw, /* X Drawable */ -+ short srcx, -+ short srcy, -+ unsigned short srcw, -+ unsigned short srch, -+ short destx, -+ short desty, -+ unsigned short destw, -+ unsigned short desth, -+ VARectangle *cliprects, /* client supplied clip list */ -+ unsigned int number_cliprects, /* number of clip rects in the clip list */ -+ unsigned int flags /* de-interlacing flags */ -+ ); -+ -+ VAStatus (*vaQueryImageFormats) ( -+ VADriverContextP_0_29 ctx, -+ VAImageFormat *format_list, /* out */ -+ int *num_formats /* out */ -+ ); -+ -+ VAStatus (*vaCreateImage) ( -+ VADriverContextP_0_29 ctx, -+ VAImageFormat *format, -+ int width, -+ int height, -+ VAImage *image /* out */ -+ ); -+ -+ VAStatus (*vaDeriveImage) ( -+ VADriverContextP_0_29 ctx, -+ VASurfaceID surface, -+ VAImage *image /* out */ -+ ); -+ -+ VAStatus (*vaDestroyImage) ( -+ VADriverContextP_0_29 ctx, -+ VAImageID image -+ ); -+ -+ VAStatus (*vaSetImagePalette) ( -+ VADriverContextP_0_29 ctx, -+ VAImageID image, -+ /* -+ * pointer to an array holding the palette data. The size of the array is -+ * num_palette_entries * entry_bytes in size. The order of the components -+ * in the palette is described by the component_order in VAImage struct -+ */ -+ unsigned char *palette -+ ); -+ -+ VAStatus (*vaGetImage) ( -+ VADriverContextP_0_29 ctx, -+ VASurfaceID surface, -+ int x, /* coordinates of the upper left source pixel */ -+ int y, -+ unsigned int width, /* width and height of the region */ -+ unsigned int height, -+ VAImageID image -+ ); -+ -+ VAStatus (*vaPutImage) ( -+ VADriverContextP_0_29 ctx, -+ VASurfaceID surface, -+ VAImageID image, -+ int src_x, -+ int src_y, -+ unsigned int width, -+ unsigned int height, -+ int dest_x, -+ int dest_y -+ ); -+ -+ VAStatus (*vaPutImage2) ( -+ VADriverContextP_0_29 ctx, -+ VASurfaceID surface, -+ VAImageID image, -+ int src_x, -+ int src_y, -+ unsigned int src_width, -+ unsigned int src_height, -+ int dest_x, -+ int dest_y, -+ unsigned int dest_width, -+ unsigned int dest_height -+ ); -+ -+ VAStatus (*vaQuerySubpictureFormats) ( -+ VADriverContextP_0_29 ctx, -+ VAImageFormat *format_list, /* out */ -+ unsigned int *flags, /* out */ -+ unsigned int *num_formats /* out */ -+ ); -+ -+ VAStatus (*vaCreateSubpicture) ( -+ VADriverContextP_0_29 ctx, -+ VAImageID image, -+ VASubpictureID *subpicture /* out */ -+ ); -+ -+ VAStatus (*vaDestroySubpicture) ( -+ VADriverContextP_0_29 ctx, -+ VASubpictureID subpicture -+ ); -+ -+ VAStatus (*vaSetSubpictureImage) ( -+ VADriverContextP_0_29 ctx, -+ VASubpictureID subpicture, -+ VAImageID image -+ ); -+ -+ VAStatus (*vaSetSubpicturePalette) ( -+ VADriverContextP_0_29 ctx, -+ VASubpictureID subpicture, -+ /* -+ * pointer to an array holding the palette data. The size of the array is -+ * num_palette_entries * entry_bytes in size. The order of the components -+ * in the palette is described by the component_order in VASubpicture struct -+ */ -+ unsigned char *palette -+ ); -+ -+ VAStatus (*vaSetSubpictureChromakey) ( -+ VADriverContextP_0_29 ctx, -+ VASubpictureID subpicture, -+ unsigned int chromakey_min, -+ unsigned int chromakey_max, -+ unsigned int chromakey_mask -+ ); -+ -+ VAStatus (*vaSetSubpictureGlobalAlpha) ( -+ VADriverContextP_0_29 ctx, -+ VASubpictureID subpicture, -+ float global_alpha -+ ); -+ -+ VAStatus (*vaAssociateSubpicture) ( -+ VADriverContextP_0_29 ctx, -+ VASubpictureID subpicture, -+ VASurfaceID *target_surfaces, -+ int num_surfaces, -+ short src_x, /* upper left offset in subpicture */ -+ short src_y, -+ short dest_x, /* upper left offset in surface */ -+ short dest_y, -+ unsigned short width, -+ unsigned short height, -+ /* -+ * whether to enable chroma-keying or global-alpha -+ * see VA_SUBPICTURE_XXX values -+ */ -+ unsigned int flags -+ ); -+ -+ VAStatus (*vaAssociateSubpicture2) ( -+ VADriverContextP_0_29 ctx, -+ VASubpictureID subpicture, -+ VASurfaceID *target_surfaces, -+ int num_surfaces, -+ short src_x, /* upper left offset in subpicture */ -+ short src_y, -+ unsigned short src_width, -+ unsigned short src_height, -+ short dest_x, /* upper left offset in surface */ -+ short dest_y, -+ unsigned short dest_width, -+ unsigned short dest_height, -+ /* -+ * whether to enable chroma-keying or global-alpha -+ * see VA_SUBPICTURE_XXX values -+ */ -+ unsigned int flags -+ ); -+ -+ VAStatus (*vaDeassociateSubpicture) ( -+ VADriverContextP_0_29 ctx, -+ VASubpictureID subpicture, -+ VASurfaceID *target_surfaces, -+ int num_surfaces -+ ); -+ -+ VAStatus (*vaQueryDisplayAttributes) ( -+ VADriverContextP_0_29 ctx, -+ VADisplayAttribute *attr_list, /* out */ -+ int *num_attributes /* out */ -+ ); -+ -+ VAStatus (*vaGetDisplayAttributes) ( -+ VADriverContextP_0_29 ctx, -+ VADisplayAttribute *attr_list, /* in/out */ -+ int num_attributes -+ ); -+ -+ VAStatus (*vaSetDisplayAttributes) ( -+ VADriverContextP_0_29 ctx, -+ VADisplayAttribute *attr_list, -+ int num_attributes -+ ); -+ -+ -+ VAStatus (*vaDbgCopySurfaceToBuffer) ( -+ VADriverContextP_0_29 ctx, -+ VASurfaceID surface, -+ void **buffer, /* out */ -+ unsigned int *stride /* out */ -+ ); -+}; -+ -+/* Driver context (0.29) */ -+struct VADriverContext_0_29 -+{ -+ void *old_pNext; /* preserved for binary compatibility */ -+ -+ void *pDriverData; -+ struct VADriverVTable_0_29 vtable; -+ -+ void *x11_dpy; -+ int x11_screen; -+ -+ int version_major; -+ int version_minor; -+ int max_profiles; -+ int max_entrypoints; -+ int max_attributes; -+ int max_image_formats; -+ int max_subpic_formats; -+ int max_display_attributes; -+ const char *str_vendor; -+ -+ void *handle; /* dlopen handle */ -+}; -+ -+/* Forward declarations for VA API 0.30 */ -+struct v4l2_format; -+struct v4l2_buffer; -+typedef struct VADriverContext_0_30 *VADriverContextP_0_30; -+ -+/* Driver VTable (0.30) */ -+struct VADriverVTable_0_30 -+{ -+ VAStatus (*vaTerminate) ( VADriverContextP_0_30 ctx ); -+ -+ VAStatus (*vaQueryConfigProfiles) ( -+ VADriverContextP_0_30 ctx, -+ VAProfile *profile_list, /* out */ -+ int *num_profiles /* out */ -+ ); -+ -+ VAStatus (*vaQueryConfigEntrypoints) ( -+ VADriverContextP_0_30 ctx, -+ VAProfile profile, -+ VAEntrypoint *entrypoint_list, /* out */ -+ int *num_entrypoints /* out */ -+ ); -+ -+ VAStatus (*vaGetConfigAttributes) ( -+ VADriverContextP_0_30 ctx, -+ VAProfile profile, -+ VAEntrypoint entrypoint, -+ VAConfigAttrib *attrib_list, /* in/out */ -+ int num_attribs -+ ); -+ -+ VAStatus (*vaCreateConfig) ( -+ VADriverContextP_0_30 ctx, -+ VAProfile profile, -+ VAEntrypoint entrypoint, -+ VAConfigAttrib *attrib_list, -+ int num_attribs, -+ VAConfigID *config_id /* out */ -+ ); -+ -+ VAStatus (*vaDestroyConfig) ( -+ VADriverContextP_0_30 ctx, -+ VAConfigID config_id -+ ); -+ -+ VAStatus (*vaQueryConfigAttributes) ( -+ VADriverContextP_0_30 ctx, -+ VAConfigID config_id, -+ VAProfile *profile, /* out */ -+ VAEntrypoint *entrypoint, /* out */ -+ VAConfigAttrib *attrib_list, /* out */ -+ int *num_attribs /* out */ -+ ); -+ -+ VAStatus (*vaCreateSurfaces) ( -+ VADriverContextP_0_30 ctx, -+ int width, -+ int height, -+ int format, -+ int num_surfaces, -+ VASurfaceID *surfaces /* out */ -+ ); -+ -+ VAStatus (*vaDestroySurfaces) ( -+ VADriverContextP_0_30 ctx, -+ VASurfaceID *surface_list, -+ int num_surfaces -+ ); -+ -+ VAStatus (*vaCreateContext) ( -+ VADriverContextP_0_30 ctx, -+ VAConfigID config_id, -+ int picture_width, -+ int picture_height, -+ int flag, -+ VASurfaceID *render_targets, -+ int num_render_targets, -+ VAContextID *context /* out */ -+ ); -+ -+ VAStatus (*vaDestroyContext) ( -+ VADriverContextP_0_30 ctx, -+ VAContextID context -+ ); -+ -+ VAStatus (*vaCreateBuffer) ( -+ VADriverContextP_0_30 ctx, -+ VAContextID context, /* in */ -+ VABufferType type, /* in */ -+ unsigned int size, /* in */ -+ unsigned int num_elements, /* in */ -+ void *data, /* in */ -+ VABufferID *buf_id /* out */ -+ ); -+ -+ VAStatus (*vaBufferSetNumElements) ( -+ VADriverContextP_0_30 ctx, -+ VABufferID buf_id, /* in */ -+ unsigned int num_elements /* in */ -+ ); -+ -+ VAStatus (*vaMapBuffer) ( -+ VADriverContextP_0_30 ctx, -+ VABufferID buf_id, /* in */ -+ void **pbuf /* out */ -+ ); -+ -+ VAStatus (*vaUnmapBuffer) ( -+ VADriverContextP_0_30 ctx, -+ VABufferID buf_id /* in */ -+ ); -+ -+ VAStatus (*vaDestroyBuffer) ( -+ VADriverContextP_0_30 ctx, -+ VABufferID buffer_id -+ ); -+ -+ VAStatus (*vaBeginPicture) ( -+ VADriverContextP_0_30 ctx, -+ VAContextID context, -+ VASurfaceID render_target -+ ); -+ -+ VAStatus (*vaRenderPicture) ( -+ VADriverContextP_0_30 ctx, -+ VAContextID context, -+ VABufferID *buffers, -+ int num_buffers -+ ); -+ -+ VAStatus (*vaEndPicture) ( -+ VADriverContextP_0_30 ctx, -+ VAContextID context -+ ); -+ -+ VAStatus (*vaSyncSurface) ( -+ VADriverContextP_0_30 ctx, -+ VAContextID context, -+ VASurfaceID render_target -+ ); -+ -+ VAStatus (*vaQuerySurfaceStatus) ( -+ VADriverContextP_0_30 ctx, -+ VASurfaceID render_target, -+ VASurfaceStatus *status /* out */ -+ ); -+ -+ VAStatus (*vaPutSurface) ( -+ VADriverContextP_0_30 ctx, -+ VASurfaceID surface, -+ unsigned long draw, /* X Drawable */ -+ short srcx, -+ short srcy, -+ unsigned short srcw, -+ unsigned short srch, -+ short destx, -+ short desty, -+ unsigned short destw, -+ unsigned short desth, -+ VARectangle *cliprects, /* client supplied clip list */ -+ unsigned int number_cliprects, /* number of clip rects in the clip list */ -+ unsigned int flags /* de-interlacing flags */ -+ ); -+ -+ VAStatus (*vaQueryImageFormats) ( -+ VADriverContextP_0_30 ctx, -+ VAImageFormat *format_list, /* out */ -+ int *num_formats /* out */ -+ ); -+ -+ VAStatus (*vaCreateImage) ( -+ VADriverContextP_0_30 ctx, -+ VAImageFormat *format, -+ int width, -+ int height, -+ VAImage *image /* out */ -+ ); -+ -+ VAStatus (*vaDeriveImage) ( -+ VADriverContextP_0_30 ctx, -+ VASurfaceID surface, -+ VAImage *image /* out */ -+ ); -+ -+ VAStatus (*vaDestroyImage) ( -+ VADriverContextP_0_30 ctx, -+ VAImageID image -+ ); -+ -+ VAStatus (*vaSetImagePalette) ( -+ VADriverContextP_0_30 ctx, -+ VAImageID image, -+ /* -+ * pointer to an array holding the palette data. The size of the array is -+ * num_palette_entries * entry_bytes in size. The order of the components -+ * in the palette is described by the component_order in VAImage struct -+ */ -+ unsigned char *palette -+ ); -+ -+ VAStatus (*vaGetImage) ( -+ VADriverContextP_0_30 ctx, -+ VASurfaceID surface, -+ int x, /* coordinates of the upper left source pixel */ -+ int y, -+ unsigned int width, /* width and height of the region */ -+ unsigned int height, -+ VAImageID image -+ ); -+ -+ VAStatus (*vaPutImage) ( -+ VADriverContextP_0_30 ctx, -+ VASurfaceID surface, -+ VAImageID image, -+ int src_x, -+ int src_y, -+ unsigned int width, -+ unsigned int height, -+ int dest_x, -+ int dest_y -+ ); -+ -+ VAStatus (*vaPutImage2) ( -+ VADriverContextP_0_30 ctx, -+ VASurfaceID surface, -+ VAImageID image, -+ int src_x, -+ int src_y, -+ unsigned int src_width, -+ unsigned int src_height, -+ int dest_x, -+ int dest_y, -+ unsigned int dest_width, -+ unsigned int dest_height -+ ); -+ -+ VAStatus (*vaQuerySubpictureFormats) ( -+ VADriverContextP_0_30 ctx, -+ VAImageFormat *format_list, /* out */ -+ unsigned int *flags, /* out */ -+ unsigned int *num_formats /* out */ -+ ); -+ -+ VAStatus (*vaCreateSubpicture) ( -+ VADriverContextP_0_30 ctx, -+ VAImageID image, -+ VASubpictureID *subpicture /* out */ -+ ); -+ -+ VAStatus (*vaDestroySubpicture) ( -+ VADriverContextP_0_30 ctx, -+ VASubpictureID subpicture -+ ); -+ -+ VAStatus (*vaSetSubpictureImage) ( -+ VADriverContextP_0_30 ctx, -+ VASubpictureID subpicture, -+ VAImageID image -+ ); -+ -+ VAStatus (*vaSetSubpictureChromakey) ( -+ VADriverContextP_0_30 ctx, -+ VASubpictureID subpicture, -+ unsigned int chromakey_min, -+ unsigned int chromakey_max, -+ unsigned int chromakey_mask -+ ); -+ -+ VAStatus (*vaSetSubpictureGlobalAlpha) ( -+ VADriverContextP_0_30 ctx, -+ VASubpictureID subpicture, -+ float global_alpha -+ ); -+ -+ VAStatus (*vaAssociateSubpicture) ( -+ VADriverContextP_0_30 ctx, -+ VASubpictureID subpicture, -+ VASurfaceID *target_surfaces, -+ int num_surfaces, -+ short src_x, /* upper left offset in subpicture */ -+ short src_y, -+ short dest_x, /* upper left offset in surface */ -+ short dest_y, -+ unsigned short width, -+ unsigned short height, -+ /* -+ * whether to enable chroma-keying or global-alpha -+ * see VA_SUBPICTURE_XXX values -+ */ -+ unsigned int flags -+ ); -+ -+ VAStatus (*vaAssociateSubpicture2) ( -+ VADriverContextP_0_30 ctx, -+ VASubpictureID subpicture, -+ VASurfaceID *target_surfaces, -+ int num_surfaces, -+ short src_x, /* upper left offset in subpicture */ -+ short src_y, -+ unsigned short src_width, -+ unsigned short src_height, -+ short dest_x, /* upper left offset in surface */ -+ short dest_y, -+ unsigned short dest_width, -+ unsigned short dest_height, -+ /* -+ * whether to enable chroma-keying or global-alpha -+ * see VA_SUBPICTURE_XXX values -+ */ -+ unsigned int flags -+ ); -+ -+ VAStatus (*vaDeassociateSubpicture) ( -+ VADriverContextP_0_30 ctx, -+ VASubpictureID subpicture, -+ VASurfaceID *target_surfaces, -+ int num_surfaces -+ ); -+ -+ VAStatus (*vaQueryDisplayAttributes) ( -+ VADriverContextP_0_30 ctx, -+ VADisplayAttribute *attr_list, /* out */ -+ int *num_attributes /* out */ -+ ); -+ -+ VAStatus (*vaGetDisplayAttributes) ( -+ VADriverContextP_0_30 ctx, -+ VADisplayAttribute *attr_list, /* in/out */ -+ int num_attributes -+ ); -+ -+ VAStatus (*vaSetDisplayAttributes) ( -+ VADriverContextP_0_30 ctx, -+ VADisplayAttribute *attr_list, -+ int num_attributes -+ ); -+ -+ /* device specific */ -+ VAStatus (*vaCreateSurfaceFromCIFrame) ( -+ VADriverContextP_0_30 ctx, -+ unsigned long frame_id, -+ VASurfaceID *surface /* out */ -+ ); -+ -+ -+ VAStatus (*vaCreateSurfaceFromV4L2Buf) ( -+ VADriverContextP_0_30 ctx, -+ int v4l2_fd, /* file descriptor of V4L2 device */ -+ struct v4l2_format *v4l2_fmt, /* format of V4L2 */ -+ struct v4l2_buffer *v4l2_buf, /* V4L2 buffer */ -+ VASurfaceID *surface /* out */ -+ ); -+ -+ VAStatus (*vaCopySurfaceToBuffer) ( -+ VADriverContextP_0_30 ctx, -+ VASurfaceID surface, -+ unsigned int *fourcc, /* out for follow argument */ -+ unsigned int *luma_stride, -+ unsigned int *chroma_u_stride, -+ unsigned int *chroma_v_stride, -+ unsigned int *luma_offset, -+ unsigned int *chroma_u_offset, -+ unsigned int *chroma_v_offset, -+ void **buffer -+ ); -+}; -+ -+/* Driver context (0.30) */ -+struct VADriverContext_0_30 -+{ -+ void *pDriverData; -+ struct VADriverVTable_0_30 vtable; -+ -+ void *x11_dpy; -+ int x11_screen; -+ int version_major; -+ int version_minor; -+ int max_profiles; -+ int max_entrypoints; -+ int max_attributes; -+ int max_image_formats; -+ int max_subpic_formats; -+ int max_display_attributes; -+ const char *str_vendor; -+ -+ void *handle; /* dlopen handle */ -+ -+ void *dri_state; -+}; -+ -+/* Driver VTable and context (0.31) */ -+#define VADriverVTable_0_31 VADriverVTable -+#define VADriverContext_0_31 VADriverContext -+ -+#endif /* VA_COMPAT_H */ -diff -Naur libva-0.31.0/src/va_compat_lib.c libva-0.31.0.patch/src/va_compat_lib.c ---- libva-0.31.0/src/va_compat_lib.c 1970-01-01 01:00:00.000000000 +0100 -+++ libva-0.31.0.patch/src/va_compat_lib.c 2009-12-15 13:45:34.215323582 +0100 -@@ -0,0 +1,158 @@ -+/* -+ * Copyright (C) 2009 Splitted-Desktop Systems. All Rights Reserved. -+ * -+ * 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, sub license, 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 PRECISION INSIGHT AND/OR ITS 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. -+ */ -+ -+#define _GNU_SOURCE 1 -+#include -+#include -+#include -+ -+typedef void *VADisplay; -+typedef int VAStatus; -+typedef unsigned int VAGenericID; -+typedef VAGenericID VAContextID; -+typedef VAGenericID VASurfaceID; -+typedef VAGenericID VAImageID; -+typedef VAGenericID VASubpictureID; -+ -+#define PREPARE_FUNC(NAME, RET, ARGS) \ -+ static RET (*lib_##NAME) ARGS; \ -+ if (lib_##NAME == NULL) \ -+ lib_##NAME = dlsym(RTLD_NEXT, #NAME); \ -+ assert(lib_##NAME != NULL) -+ -+VAStatus -+vaSyncSurface( -+ VADisplay dpy, -+ VAContextID context, -+ VASurfaceID render_target -+) -+{ -+ PREPARE_FUNC(vaSyncSurface, VAStatus, (VADisplay, VASurfaceID)); -+ -+ return lib_vaSyncSurface(dpy, render_target); -+} -+ -+VAStatus -+vaPutImage( -+ VADisplay dpy, -+ VASurfaceID surface, -+ VAImageID image, -+ int src_x, -+ int src_y, -+ unsigned int width, -+ unsigned int height, -+ int dest_x, -+ int dest_y -+) -+{ -+ PREPARE_FUNC(vaPutImage, VAStatus, (VADisplay, VASurfaceID, VAImageID, -+ int, int, unsigned int, unsigned int, -+ int, int, unsigned int, unsigned int)); -+ -+ return lib_vaPutImage(dpy, surface, image, -+ src_x, src_y, width, height, -+ dest_x, dest_y, width, height); -+} -+ -+VAStatus -+vaPutImage2( -+ VADisplay dpy, -+ VASurfaceID surface, -+ VAImageID image, -+ int src_x, -+ int src_y, -+ unsigned int src_width, -+ unsigned int src_height, -+ int dest_x, -+ int dest_y, -+ unsigned int dest_width, -+ unsigned int dest_height -+) -+{ -+ PREPARE_FUNC(vaPutImage, VAStatus, (VADisplay, VASurfaceID, VAImageID, -+ int, int, unsigned int, unsigned int, -+ int, int, unsigned int, unsigned int)); -+ -+ return lib_vaPutImage(dpy, surface, image, -+ src_x, src_y, src_width, src_height, -+ dest_x, dest_y, dest_width, dest_height); -+} -+ -+VAStatus -+vaAssociateSubpicture( -+ VADisplay dpy, -+ VASubpictureID subpicture, -+ VASurfaceID *target_surfaces, -+ int num_surfaces, -+ short src_x, -+ short src_y, -+ short dest_x, -+ short dest_y, -+ unsigned short width, -+ unsigned short height, -+ unsigned int flags -+) -+{ -+ PREPARE_FUNC(vaAssociateSubpicture, -+ VAStatus, (VADisplay, VASubpictureID, VASurfaceID *, int, -+ short, short, unsigned short, unsigned short, -+ short, short, unsigned short, unsigned short, -+ unsigned int)); -+ -+ return lib_vaAssociateSubpicture(dpy, subpicture, -+ target_surfaces, num_surfaces, -+ src_x, src_y, width, height, -+ dest_x, dest_y, width, height, -+ flags); -+} -+ -+VAStatus -+vaAssociateSubpicture2( -+ VADisplay dpy, -+ VASubpictureID subpicture, -+ VASurfaceID *target_surfaces, -+ int num_surfaces, -+ short src_x, -+ short src_y, -+ unsigned short src_width, -+ unsigned short src_height, -+ short dest_x, -+ short dest_y, -+ unsigned short dest_width, -+ unsigned short dest_height, -+ unsigned int flags -+) -+{ -+ PREPARE_FUNC(vaAssociateSubpicture, -+ VAStatus, (VADisplay, VASubpictureID, VASurfaceID *, int, -+ short, short, unsigned short, unsigned short, -+ short, short, unsigned short, unsigned short, -+ unsigned int)); -+ -+ return lib_vaAssociateSubpicture(dpy, subpicture, -+ target_surfaces, num_surfaces, -+ src_x, src_y, src_width, src_height, -+ dest_x, dest_y, dest_width, dest_height, -+ flags); -+} -diff -Naur libva-0.31.0/src/va_compat_template.h libva-0.31.0.patch/src/va_compat_template.h ---- libva-0.31.0/src/va_compat_template.h 1970-01-01 01:00:00.000000000 +0100 -+++ libva-0.31.0.patch/src/va_compat_template.h 2009-12-15 13:45:30.924321462 +0100 -@@ -0,0 +1,539 @@ -+/* -+ * Copyright (C) 2009 Splitted-Desktop Systems. All Rights Reserved. -+ * -+ * 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, sub license, 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 PRECISION INSIGHT AND/OR ITS 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. -+ */ -+ -+#undef CONCAT_ -+#define CONCAT_(x, y) x##y -+#undef CONCAT -+#define CONCAT(x, y) CONCAT_(x, y) -+#undef MKCOMPAT_ -+#define MKCOMPAT_(NAME,MINOR) CONCAT(CONCAT(NAME,_0_),MINOR) -+#undef MKCOMPAT -+#define MKCOMPAT(NAME) MKCOMPAT_(NAME,COMPAT_MINOR) -+#undef STRUCT -+#define STRUCT(BUFFER, CODEC) MKCOMPAT(VA##BUFFER##Buffer##CODEC) -+#undef TRANSLATE_1 -+#define TRANSLATE_1(NAME) CONCAT(va_compat_translate_,NAME) -+#undef TRANSLATE_ -+#define TRANSLATE_(NAME) TRANSLATE_1(MKCOMPAT(NAME)) -+#undef TRANSLATE -+#define TRANSLATE(BUFFER, CODEC) TRANSLATE_1(STRUCT(BUFFER,CODEC)) -+ -+#undef COPY_ARRAY -+#define COPY_ARRAY(DST, SRC, ARRAY) \ -+ memcpy((DST)->ARRAY, (SRC)->ARRAY, sizeof((DST)->ARRAY)) -+ -+#undef COPY_FIELD -+#define COPY_FIELD(DST, SRC, MEMBER) \ -+ (DST)->MEMBER = (SRC)->MEMBER -+ -+#undef COPY_VTABLE__ -+#define COPY_VTABLE__(DST, DST_MEMBER, SRC, SRC_MEMBER) \ -+ (DST##_vtable)->DST_MEMBER = (SRC##_vtable)->SRC_MEMBER -+ -+#undef COPY_VTABLE_ -+#define COPY_VTABLE_(DST, DST_SUFFIX, SRC, MEMBER) \ -+ COPY_VTABLE__(DST, MEMBER##_##DST_SUFFIX, SRC, MEMBER) -+ -+#undef COPY_VTABLE -+#define COPY_VTABLE(DST, SRC, MEMBER) \ -+ COPY_VTABLE__(DST, MEMBER, SRC, MEMBER) -+ -+/* 0.29 */ -+#if COMPAT_MAJOR == 0 && COMPAT_MINOR == 29 -+#undef BFV -+#define BFV(a, b) a -+#undef BFM -+#define BFM(a, b, c) c -+#undef COPY_BIT_FIELD -+#define COPY_BIT_FIELD(DST, SRC, FIELD, MEMBER) \ -+ (DST)->MEMBER = (SRC)->FIELD.bits.MEMBER -+#undef COPY_BIT_FLAG -+#define COPY_BIT_FLAG(DST, SRC, FIELD, MEMBER) \ -+ (DST)->MEMBER = (SRC)->FIELD.flags.MEMBER -+#endif -+ -+/* 0.29 glue to match 0.30 names */ -+#undef M_raw_coding -+#undef M_bitplane_present -+#undef M_luma_flag -+#undef M_luma -+#undef M_chroma_flag -+#undef M_chroma -+ -+#if COMPAT_MAJOR == 0 && COMPAT_MINOR == 29 -+#define M_raw_coding raw_coding_flag -+#define M_bitplane_present bitplane_present_flag -+#define M_luma_flag range_mapping_luma_flag -+#define M_luma range_mapping_luma -+#define M_chroma_flag range_mapping_chroma_flag -+#define M_chroma range_mapping_chroma -+#else -+#define M_raw_coding raw_coding -+#define M_bitplane_present bitplane_present -+#define M_luma_flag luma_flag -+#define M_luma luma -+#define M_chroma_flag chroma_flag -+#define M_chroma chroma -+#endif -+ -+/* 0.30 */ -+#if COMPAT_MAJOR == 0 && COMPAT_MINOR == 30 -+#undef BFV -+#define BFV(a, b) a.b -+#undef BFM -+#define BFM(a, b, c) a.b.c -+#undef COPY_BIT_FIELD -+#define COPY_BIT_FIELD(DST, SRC, FIELD, MEMBER) \ -+ (DST)->FIELD.bits.MEMBER = (SRC)->FIELD.bits.MEMBER -+#undef COPY_BIT_FLAG -+#define COPY_BIT_FLAG(DST, SRC, FIELD, MEMBER) \ -+ (DST)->FIELD.flags.MEMBER = (SRC)->FIELD.flags.MEMBER -+#endif -+ -+#if COMPAT_MAJOR == 0 && COMPAT_MINOR < 31 -+static VAStatus TRANSLATE_(VAPictureH264)( -+ VACompatContextP ctx, -+ void *dest_pic, -+ const void *src_pic -+) -+{ -+ MKCOMPAT(VAPictureH264) *dest = dest_pic; -+ const VAPictureH264 *src = src_pic; -+ -+ COPY_FIELD(dest, src, picture_id); -+ COPY_FIELD(dest, src, flags); -+ COPY_FIELD(dest, src, TopFieldOrderCnt); -+ COPY_FIELD(dest, src, BottomFieldOrderCnt); -+ -+ return VA_STATUS_SUCCESS; -+} -+ -+static VAStatus TRANSLATE(PictureParameter,H264)( -+ VACompatContextP ctx, -+ void *dest_buffer, -+ const void *src_buffer -+) -+{ -+ STRUCT(PictureParameter,H264) *dest = dest_buffer; -+ const VAPictureParameterBufferH264 *src = src_buffer; -+ VAStatus status; -+ int i; -+ -+ status = TRANSLATE_(VAPictureH264)(ctx, -+ &dest->CurrPic, &src->CurrPic); -+ if (status != VA_STATUS_SUCCESS) -+ return status; -+ -+ for (i = 0; i < 16; i++) { -+ status = TRANSLATE_(VAPictureH264)(ctx, -+ &dest->ReferenceFrames[i], -+ &src->ReferenceFrames[i]); -+ if (status != VA_STATUS_SUCCESS) -+ return status; -+ } -+ -+ COPY_FIELD(dest, src, picture_width_in_mbs_minus1); -+ COPY_FIELD(dest, src, picture_height_in_mbs_minus1); -+ COPY_FIELD(dest, src, bit_depth_luma_minus8); -+ COPY_FIELD(dest, src, bit_depth_chroma_minus8); -+ COPY_FIELD(dest, src, num_ref_frames); -+ dest->BFV(seq_fields, value) = 0; /* reset all bits */ -+ COPY_BIT_FIELD(dest, src, seq_fields, chroma_format_idc); -+ COPY_BIT_FIELD(dest, src, seq_fields, residual_colour_transform_flag); -+ COPY_BIT_FIELD(dest, src, seq_fields, frame_mbs_only_flag); -+ COPY_BIT_FIELD(dest, src, seq_fields, mb_adaptive_frame_field_flag); -+ COPY_BIT_FIELD(dest, src, seq_fields, direct_8x8_inference_flag); -+ COPY_BIT_FIELD(dest, src, seq_fields, MinLumaBiPredSize8x8); -+ COPY_FIELD(dest, src, num_slice_groups_minus1); -+ COPY_FIELD(dest, src, slice_group_map_type); -+ COPY_FIELD(dest, src, pic_init_qp_minus26); -+ COPY_FIELD(dest, src, chroma_qp_index_offset); -+ COPY_FIELD(dest, src, second_chroma_qp_index_offset); -+ dest->BFV(pic_fields, value) = 0; /* reset all bits */ -+ COPY_BIT_FIELD(dest, src, pic_fields, entropy_coding_mode_flag); -+ COPY_BIT_FIELD(dest, src, pic_fields, weighted_pred_flag); -+ COPY_BIT_FIELD(dest, src, pic_fields, weighted_bipred_idc); -+ COPY_BIT_FIELD(dest, src, pic_fields, transform_8x8_mode_flag); -+ COPY_BIT_FIELD(dest, src, pic_fields, field_pic_flag); -+ COPY_BIT_FIELD(dest, src, pic_fields, constrained_intra_pred_flag); -+ COPY_FIELD(dest, src, frame_num); -+ -+ return VA_STATUS_SUCCESS; -+} -+ -+static VAStatus TRANSLATE(SliceParameter,H264)( -+ VACompatContextP ctx, -+ void *dest_buffer, -+ const void *src_buffer -+) -+{ -+ STRUCT(SliceParameter,H264) *dest = dest_buffer; -+ const VASliceParameterBufferH264 *src = src_buffer; -+ VAStatus status; -+ int i; -+ -+ COPY_FIELD(dest, src, slice_data_size); -+ COPY_FIELD(dest, src, slice_data_offset); -+ COPY_FIELD(dest, src, slice_data_flag); -+ COPY_FIELD(dest, src, slice_data_bit_offset); -+ COPY_FIELD(dest, src, first_mb_in_slice); -+ COPY_FIELD(dest, src, slice_type); -+ COPY_FIELD(dest, src, direct_spatial_mv_pred_flag); -+ COPY_FIELD(dest, src, num_ref_idx_l0_active_minus1); -+ COPY_FIELD(dest, src, num_ref_idx_l1_active_minus1); -+ COPY_FIELD(dest, src, cabac_init_idc); -+ COPY_FIELD(dest, src, slice_qp_delta); -+ COPY_FIELD(dest, src, disable_deblocking_filter_idc); -+ COPY_FIELD(dest, src, slice_alpha_c0_offset_div2); -+ COPY_FIELD(dest, src, slice_beta_offset_div2); -+ for (i = 0; i < 32; i++) { -+ status = TRANSLATE_(VAPictureH264)(ctx, -+ &dest->RefPicList0[i], -+ &src->RefPicList0[i]); -+ if (status != VA_STATUS_SUCCESS) -+ return status; -+ status = TRANSLATE_(VAPictureH264)(ctx, -+ &dest->RefPicList1[i], -+ &src->RefPicList1[i]); -+ if (status != VA_STATUS_SUCCESS) -+ return status; -+ } -+ COPY_FIELD(dest, src, luma_log2_weight_denom); -+ COPY_FIELD(dest, src, chroma_log2_weight_denom); -+ COPY_FIELD(dest, src, luma_weight_l0_flag); -+ COPY_ARRAY(dest, src, luma_weight_l0); -+ COPY_ARRAY(dest, src, luma_offset_l0); -+ COPY_FIELD(dest, src, chroma_weight_l0_flag); -+ COPY_ARRAY(dest, src, chroma_weight_l0); -+ COPY_ARRAY(dest, src, chroma_offset_l0); -+ COPY_FIELD(dest, src, luma_weight_l1_flag); -+ COPY_ARRAY(dest, src, luma_weight_l1); -+ COPY_ARRAY(dest, src, luma_offset_l1); -+ COPY_FIELD(dest, src, chroma_weight_l1_flag); -+ COPY_ARRAY(dest, src, chroma_weight_l1); -+ COPY_ARRAY(dest, src, chroma_offset_l1); -+ -+ return VA_STATUS_SUCCESS; -+} -+ -+static VAStatus TRANSLATE(PictureParameter,VC1)( -+ VACompatContextP ctx, -+ void *dest_buffer, -+ const void *src_buffer -+) -+{ -+ STRUCT(PictureParameter,VC1) *dest = dest_buffer; -+ const VAPictureParameterBufferVC1 *src = src_buffer; -+ -+ COPY_FIELD(dest, src, forward_reference_picture); -+ COPY_FIELD(dest, src, backward_reference_picture); -+ COPY_FIELD(dest, src, inloop_decoded_picture); -+ dest->BFV(sequence_fields, value) = 0; /* reset all bits */ -+ COPY_BIT_FIELD(dest, src, sequence_fields, interlace); -+ COPY_BIT_FIELD(dest, src, sequence_fields, syncmarker); -+ COPY_BIT_FIELD(dest, src, sequence_fields, overlap); -+ COPY_FIELD(dest, src, coded_width); -+ COPY_FIELD(dest, src, coded_height); -+#if COMPAT_MAJOR == 0 && COMPAT_MINOR == 30 -+ dest->closed_entry = src->entrypoint_fields.bits.closed_entry; -+ dest->broken_link = src->entrypoint_fields.bits.broken_link; -+ dest->loopfilter = src->entrypoint_fields.bits.loopfilter; -+#else -+ COPY_BIT_FIELD(dest, src, entrypoint_fields, closed_entry); -+ COPY_BIT_FIELD(dest, src, entrypoint_fields, broken_link); -+ COPY_BIT_FIELD(dest, src, entrypoint_fields, loopfilter); -+#endif -+ COPY_FIELD(dest, src, conditional_overlap_flag); -+ COPY_FIELD(dest, src, fast_uvmc_flag); -+ dest->BFV(range_mapping_fields, value) = 0; /* reset all bits */ -+ dest->BFM(range_mapping_fields, bits, M_luma_flag) = -+ src->range_mapping_fields.bits.luma_flag; -+ dest->BFM(range_mapping_fields, bits, M_luma) = -+ src->range_mapping_fields.bits.luma; -+ dest->BFM(range_mapping_fields, bits, M_chroma_flag) = -+ src->range_mapping_fields.bits.chroma_flag; -+ dest->BFM(range_mapping_fields, bits, M_chroma) = -+ src->range_mapping_fields.bits.chroma; -+ COPY_FIELD(dest, src, b_picture_fraction); -+ COPY_FIELD(dest, src, cbp_table); -+ COPY_FIELD(dest, src, mb_mode_table); -+ COPY_FIELD(dest, src, range_reduction_frame); -+ COPY_FIELD(dest, src, rounding_control); -+ COPY_FIELD(dest, src, post_processing); -+ COPY_FIELD(dest, src, picture_resolution_index); -+ COPY_FIELD(dest, src, luma_scale); -+ COPY_FIELD(dest, src, luma_shift); -+ dest->BFV(picture_fields, value) = 0; /* reset all bits */ -+ COPY_BIT_FIELD(dest, src, picture_fields, picture_type); -+ COPY_BIT_FIELD(dest, src, picture_fields, frame_coding_mode); -+ COPY_BIT_FIELD(dest, src, picture_fields, top_field_first); -+ COPY_BIT_FIELD(dest, src, picture_fields, is_first_field); -+ COPY_BIT_FIELD(dest, src, picture_fields, intensity_compensation); -+ dest->BFV(M_raw_coding, value) = 0; /* reset all bits */ -+ COPY_BIT_FLAG(dest, src, raw_coding, mv_type_mb); -+ COPY_BIT_FLAG(dest, src, raw_coding, direct_mb); -+ COPY_BIT_FLAG(dest, src, raw_coding, skip_mb); -+ COPY_BIT_FLAG(dest, src, raw_coding, field_tx); -+ COPY_BIT_FLAG(dest, src, raw_coding, forward_mb); -+ COPY_BIT_FLAG(dest, src, raw_coding, ac_pred); -+ COPY_BIT_FLAG(dest, src, raw_coding, overflags); -+ dest->BFV(M_bitplane_present, value) = 0; /* reset all bits */ -+ COPY_BIT_FLAG(dest, src, bitplane_present, bp_mv_type_mb); -+ COPY_BIT_FLAG(dest, src, bitplane_present, bp_direct_mb); -+ COPY_BIT_FLAG(dest, src, bitplane_present, bp_skip_mb); -+ COPY_BIT_FLAG(dest, src, bitplane_present, bp_field_tx); -+ COPY_BIT_FLAG(dest, src, bitplane_present, bp_forward_mb); -+ COPY_BIT_FLAG(dest, src, bitplane_present, bp_ac_pred); -+ COPY_BIT_FLAG(dest, src, bitplane_present, bp_overflags); -+ dest->BFV(reference_fields, value) = 0; /* reset all bits */ -+ COPY_BIT_FIELD(dest, src, reference_fields, reference_distance_flag); -+ COPY_BIT_FIELD(dest, src, reference_fields, reference_distance); -+ COPY_BIT_FIELD(dest, src, reference_fields, num_reference_pictures); -+ COPY_BIT_FIELD(dest, src, reference_fields, reference_field_pic_indicator); -+ dest->BFV(mv_fields, value) = 0; /* reset all bits */ -+ COPY_BIT_FIELD(dest, src, mv_fields, mv_mode); -+ COPY_BIT_FIELD(dest, src, mv_fields, mv_mode2); -+ COPY_BIT_FIELD(dest, src, mv_fields, mv_table); -+ COPY_BIT_FIELD(dest, src, mv_fields, two_mv_block_pattern_table); -+ COPY_BIT_FIELD(dest, src, mv_fields, four_mv_switch); -+ COPY_BIT_FIELD(dest, src, mv_fields, four_mv_block_pattern_table); -+ COPY_BIT_FIELD(dest, src, mv_fields, extended_mv_flag); -+ COPY_BIT_FIELD(dest, src, mv_fields, extended_mv_range); -+ COPY_BIT_FIELD(dest, src, mv_fields, extended_dmv_flag); -+ COPY_BIT_FIELD(dest, src, mv_fields, extended_dmv_range); -+ dest->BFV(pic_quantizer_fields, value) = 0; /* reset all bits */ -+ COPY_BIT_FIELD(dest, src, pic_quantizer_fields, dquant); -+ COPY_BIT_FIELD(dest, src, pic_quantizer_fields, quantizer); -+ COPY_BIT_FIELD(dest, src, pic_quantizer_fields, half_qp); -+ COPY_BIT_FIELD(dest, src, pic_quantizer_fields, pic_quantizer_scale); -+ COPY_BIT_FIELD(dest, src, pic_quantizer_fields, pic_quantizer_type); -+ COPY_BIT_FIELD(dest, src, pic_quantizer_fields, dq_frame); -+ COPY_BIT_FIELD(dest, src, pic_quantizer_fields, dq_profile); -+ COPY_BIT_FIELD(dest, src, pic_quantizer_fields, dq_sb_edge); -+ COPY_BIT_FIELD(dest, src, pic_quantizer_fields, dq_db_edge); -+ COPY_BIT_FIELD(dest, src, pic_quantizer_fields, dq_binary_level); -+ COPY_BIT_FIELD(dest, src, pic_quantizer_fields, alt_pic_quantizer); -+ dest->BFV(transform_fields, value) = 0; /* reset all bits */ -+ COPY_BIT_FIELD(dest, src, transform_fields, variable_sized_transform_flag); -+ COPY_BIT_FIELD(dest, src, transform_fields, mb_level_transform_type_flag); -+ COPY_BIT_FIELD(dest, src, transform_fields, frame_level_transform_type); -+ COPY_BIT_FIELD(dest, src, transform_fields, transform_ac_codingset_idx1); -+ COPY_BIT_FIELD(dest, src, transform_fields, transform_ac_codingset_idx2); -+ COPY_BIT_FIELD(dest, src, transform_fields, intra_transform_dc_table); -+ -+ if (src->picture_fields.bits.picture_type == 4) { -+ dest->BFM(picture_fields, bits, picture_type) = 1; /* P-frame */ -+ ctx->skip_frame = 1; -+ } -+ -+ return VA_STATUS_SUCCESS; -+} -+ -+static VAStatus TRANSLATE(PictureParameter,MPEG2)( -+ VACompatContextP ctx, -+ void *dest_buffer, -+ const void *src_buffer -+) -+{ -+ STRUCT(PictureParameter,MPEG2) *dest = dest_buffer; -+ const VAPictureParameterBufferMPEG2 *src = src_buffer; -+ -+ COPY_FIELD(dest, src, horizontal_size); -+ COPY_FIELD(dest, src, vertical_size); -+ COPY_FIELD(dest, src, forward_reference_picture); -+ COPY_FIELD(dest, src, backward_reference_picture); -+ COPY_FIELD(dest, src, picture_coding_type); -+ COPY_FIELD(dest, src, f_code); -+ dest->BFV(picture_coding_extension, value) = 0; /* reset all bits */ -+ COPY_BIT_FIELD(dest, src, picture_coding_extension, intra_dc_precision); -+ COPY_BIT_FIELD(dest, src, picture_coding_extension, picture_structure); -+ COPY_BIT_FIELD(dest, src, picture_coding_extension, top_field_first); -+ COPY_BIT_FIELD(dest, src, picture_coding_extension, frame_pred_frame_dct); -+ COPY_BIT_FIELD(dest, src, picture_coding_extension, concealment_motion_vectors); -+ COPY_BIT_FIELD(dest, src, picture_coding_extension, q_scale_type); -+ COPY_BIT_FIELD(dest, src, picture_coding_extension, intra_vlc_format); -+ COPY_BIT_FIELD(dest, src, picture_coding_extension, alternate_scan); -+ COPY_BIT_FIELD(dest, src, picture_coding_extension, repeat_first_field); -+ COPY_BIT_FIELD(dest, src, picture_coding_extension, progressive_frame); -+ COPY_BIT_FIELD(dest, src, picture_coding_extension, is_first_field); -+ -+ return VA_STATUS_SUCCESS; -+} -+ -+static VAStatus TRANSLATE(SliceParameter,MPEG2)( -+ VACompatContextP ctx, -+ void *dest_buffer, -+ const void *src_buffer -+) -+{ -+ STRUCT(SliceParameter,MPEG2) *dest = dest_buffer; -+ const VASliceParameterBufferMPEG2 *src = src_buffer; -+ -+ COPY_FIELD(dest, src, slice_data_size); -+ COPY_FIELD(dest, src, slice_data_offset); -+ COPY_FIELD(dest, src, slice_data_flag); -+ COPY_FIELD(dest, src, macroblock_offset); -+ COPY_FIELD(dest, src, slice_vertical_position); -+ COPY_FIELD(dest, src, quantiser_scale_code); -+ COPY_FIELD(dest, src, intra_slice_flag); -+ -+ return VA_STATUS_SUCCESS; -+} -+#endif -+ -+static VAStatus TRANSLATE(PictureParameter,MPEG4)( -+ VACompatContextP ctx, -+ void *dest_buffer, -+ const void *src_buffer -+) -+{ -+ STRUCT(PictureParameter,MPEG4) *dest = dest_buffer; -+ const VAPictureParameterBufferMPEG4 *src = src_buffer; -+ -+ COPY_FIELD(dest, src, vop_width); -+ COPY_FIELD(dest, src, vop_height); -+ COPY_FIELD(dest, src, forward_reference_picture); -+ COPY_FIELD(dest, src, backward_reference_picture); -+ dest->BFV(vol_fields, value) = 0; /* reset all bits */ -+ COPY_BIT_FIELD(dest, src, vol_fields, short_video_header); -+ COPY_BIT_FIELD(dest, src, vol_fields, chroma_format); -+ COPY_BIT_FIELD(dest, src, vol_fields, interlaced); -+ COPY_BIT_FIELD(dest, src, vol_fields, obmc_disable); -+ COPY_BIT_FIELD(dest, src, vol_fields, sprite_enable); -+ COPY_BIT_FIELD(dest, src, vol_fields, sprite_warping_accuracy); -+ COPY_BIT_FIELD(dest, src, vol_fields, quant_type); -+ COPY_BIT_FIELD(dest, src, vol_fields, quarter_sample); -+ COPY_BIT_FIELD(dest, src, vol_fields, data_partitioned); -+ COPY_BIT_FIELD(dest, src, vol_fields, reversible_vlc); -+ COPY_FIELD(dest, src, no_of_sprite_warping_points); -+ COPY_ARRAY(dest, src, sprite_trajectory_du); -+ COPY_ARRAY(dest, src, sprite_trajectory_dv); -+ COPY_FIELD(dest, src, quant_precision); -+ dest->BFV(vop_fields, value) = 0; /* reset all bits */ -+ COPY_BIT_FIELD(dest, src, vop_fields, vop_coding_type); -+ COPY_BIT_FIELD(dest, src, vop_fields, backward_reference_vop_coding_type); -+ COPY_BIT_FIELD(dest, src, vop_fields, vop_rounding_type); -+ COPY_BIT_FIELD(dest, src, vop_fields, intra_dc_vlc_thr); -+ COPY_BIT_FIELD(dest, src, vop_fields, top_field_first); -+ COPY_BIT_FIELD(dest, src, vop_fields, alternate_vertical_scan_flag); -+ COPY_FIELD(dest, src, vop_fcode_forward); -+ COPY_FIELD(dest, src, vop_fcode_backward); -+ COPY_FIELD(dest, src, num_gobs_in_vop); -+ COPY_FIELD(dest, src, num_macroblocks_in_gob); -+ COPY_FIELD(dest, src, TRB); -+ COPY_FIELD(dest, src, TRD); -+ -+ return VA_STATUS_SUCCESS; -+} -+ -+#if COMPAT_MAJOR == 0 && COMPAT_MINOR == 30 -+static VAStatus TRANSLATE_(VAEncSliceParameterBuffer)( -+ VACompatContextP ctx, -+ void *dest_buffer, -+ const void *src_buffer -+) -+{ -+ MKCOMPAT(VAEncSliceParameterBuffer) * const dest = dest_buffer; -+ const VAEncSliceParameterBuffer * const src = src_buffer; -+ -+ COPY_FIELD(dest, src, start_row_number); -+ COPY_FIELD(dest, src, slice_height); -+ dest->BFV(slice_flags, value) = 0; /* reset all bits */ -+ COPY_BIT_FIELD(dest, src, slice_flags, is_intra); -+ COPY_BIT_FIELD(dest, src, slice_flags, disable_deblocking_filter_idc); -+ -+ return VA_STATUS_SUCCESS; -+} -+#endif -+ -+static void TRANSLATE_(VADriverContext)( -+ VACompatContext *dest, -+ const struct MKCOMPAT(VADriverContext) *src -+) -+{ -+ VACompatDriverVTable *dest_vtable = &dest->vtable; -+ const struct MKCOMPAT(VADriverVTable) *src_vtable = &src->vtable; -+ -+ memset(dest_vtable, 0, sizeof(*dest_vtable)); -+ COPY_VTABLE(dest, src, vaTerminate); -+ COPY_VTABLE(dest, src, vaQueryConfigProfiles); -+ COPY_VTABLE(dest, src, vaQueryConfigEntrypoints); -+ COPY_VTABLE(dest, src, vaGetConfigAttributes); -+ COPY_VTABLE(dest, src, vaCreateConfig); -+ COPY_VTABLE(dest, src, vaDestroyConfig); -+ COPY_VTABLE(dest, src, vaQueryConfigAttributes); -+ COPY_VTABLE(dest, src, vaCreateSurfaces); -+ COPY_VTABLE(dest, src, vaDestroySurfaces); -+ COPY_VTABLE(dest, src, vaCreateContext); -+ COPY_VTABLE(dest, src, vaDestroyContext); -+ COPY_VTABLE(dest, src, vaCreateBuffer); -+ COPY_VTABLE(dest, src, vaBufferSetNumElements); -+ COPY_VTABLE(dest, src, vaMapBuffer); -+ COPY_VTABLE(dest, src, vaUnmapBuffer); -+ COPY_VTABLE(dest, src, vaDestroyBuffer); -+ COPY_VTABLE(dest, src, vaBeginPicture); -+ COPY_VTABLE(dest, src, vaRenderPicture); -+ COPY_VTABLE(dest, src, vaEndPicture); -+ COPY_VTABLE(dest, src, vaQuerySurfaceStatus); -+ COPY_VTABLE(dest, src, vaPutSurface); -+ COPY_VTABLE(dest, src, vaQueryImageFormats); -+ COPY_VTABLE(dest, src, vaCreateImage); -+ COPY_VTABLE(dest, src, vaDeriveImage); -+ COPY_VTABLE(dest, src, vaDestroyImage); -+ COPY_VTABLE(dest, src, vaSetImagePalette); -+ COPY_VTABLE(dest, src, vaGetImage); -+ COPY_VTABLE(dest, src, vaQuerySubpictureFormats); -+ COPY_VTABLE(dest, src, vaCreateSubpicture); -+ COPY_VTABLE(dest, src, vaDestroySubpicture); -+ COPY_VTABLE(dest, src, vaSetSubpictureImage); -+ COPY_VTABLE(dest, src, vaSetSubpictureChromakey); -+ COPY_VTABLE(dest, src, vaSetSubpictureGlobalAlpha); -+ COPY_VTABLE(dest, src, vaDeassociateSubpicture); -+ COPY_VTABLE(dest, src, vaQueryDisplayAttributes); -+ COPY_VTABLE(dest, src, vaGetDisplayAttributes); -+ COPY_VTABLE(dest, src, vaSetDisplayAttributes); -+#if COMPAT_MAJOR == 0 && COMPAT_MINOR <= 29 -+ COPY_VTABLE(dest, src, vaSetSubpicturePalette); -+ COPY_VTABLE(dest, src, vaDbgCopySurfaceToBuffer); -+#endif -+#if COMPAT_MAJOR == 0 && COMPAT_MINOR >= 30 -+ COPY_VTABLE(dest, src, vaCreateSurfaceFromCIFrame); -+ COPY_VTABLE(dest, src, vaCreateSurfaceFromV4L2Buf); -+ COPY_VTABLE(dest, src, vaCopySurfaceToBuffer); -+#endif -+#if COMPAT_MAJOR == 0 && COMPAT_MINOR >= 31 -+ COPY_VTABLE(dest, src, vaSyncSurface); -+ COPY_VTABLE(dest, src, vaPutImage); -+ COPY_VTABLE(dest, src, vaAssociateSubpicture); -+#else -+ COPY_VTABLE_(dest, pre31, src, vaSyncSurface); -+ COPY_VTABLE_(dest, pre31, src, vaPutImage); -+ COPY_VTABLE_(dest, pre31, src, vaPutImage2); -+ COPY_VTABLE_(dest, pre31, src, vaAssociateSubpicture); -+ COPY_VTABLE_(dest, pre31, src, vaAssociateSubpicture2); -+#endif -+} -+ -+#undef COMPAT_MAJOR -+#undef COMPAT_MINOR -diff -Naur libva-0.31.0/src/va.c.orig libva-0.31.0.patch/src/va.c.orig -diff -Naur libva-0.31.0/src/va.h libva-0.31.0.patch/src/va.h ---- libva-0.31.0/src/va.h 2009-11-20 17:12:42.000000000 +0100 -+++ libva-0.31.0.patch/src/va.h 2009-12-15 13:45:13.207447712 +0100 -@@ -131,6 +131,22 @@ - #define VA_STATUS_ERROR_SURFACE_IN_DISPLAYING 0x00000015 - #define VA_STATUS_ERROR_UNKNOWN 0xFFFFFFFF - -+/* De-interlacing flags for vaPutSurface() */ -+#define VA_FRAME_PICTURE 0x00000000 -+#define VA_TOP_FIELD 0x00000001 -+#define VA_BOTTOM_FIELD 0x00000002 -+ -+/* -+ * Clears the drawable with background color. -+ * for hardware overlay based implementation this flag -+ * can be used to turn off the overlay -+ */ -+#define VA_CLEAR_DRAWABLE 0x00000008 -+ -+/* Color space conversion flags for vaPutSurface() */ -+#define VA_SRC_BT601 0x00000010 -+#define VA_SRC_BT709 0x00000020 -+ - /* - * Returns a short english description of error_status - */ -@@ -656,6 +672,7 @@ - unsigned int quarter_sample : 1; - unsigned int data_partitioned : 1; - unsigned int reversible_vlc : 1; -+ unsigned int resync_marker_disable : 1; - } bits; - unsigned int value; - } vol_fields; -@@ -676,6 +693,7 @@ - } vop_fields; - unsigned char vop_fcode_forward; - unsigned char vop_fcode_backward; -+ unsigned short vop_time_increment_resolution; - /* short header related */ - unsigned char num_gobs_in_vop; - unsigned char num_macroblocks_in_gob; -diff -Naur libva-0.31.0/src/va.h.orig libva-0.31.0.patch/src/va.h.orig ---- libva-0.31.0/src/va.h.orig 1970-01-01 01:00:00.000000000 +0100 -+++ libva-0.31.0.patch/src/va.h.orig 2009-12-15 13:45:03.791323497 +0100 -@@ -0,0 +1,1717 @@ -+/* -+ * Copyright (c) 2007-2009 Intel Corporation. All Rights Reserved. -+ * -+ * 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, sub license, 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 INTEL AND/OR ITS 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. -+ */ -+/* -+ * Video Acceleration (VA) API Specification -+ * -+ * Rev. 0.30 -+ * -+ * -+ * Revision History: -+ * rev 0.10 (12/10/2006 Jonathan Bian) - Initial draft -+ * rev 0.11 (12/15/2006 Jonathan Bian) - Fixed some errors -+ * rev 0.12 (02/05/2007 Jonathan Bian) - Added VC-1 data structures for slice level decode -+ * rev 0.13 (02/28/2007 Jonathan Bian) - Added GetDisplay() -+ * rev 0.14 (04/13/2007 Jonathan Bian) - Fixed MPEG-2 PictureParameter structure, cleaned up a few funcs. -+ * rev 0.15 (04/20/2007 Jonathan Bian) - Overhauled buffer management -+ * rev 0.16 (05/02/2007 Jonathan Bian) - Added error codes and fixed some issues with configuration -+ * rev 0.17 (05/07/2007 Jonathan Bian) - Added H.264/AVC data structures for slice level decode. -+ * rev 0.18 (05/14/2007 Jonathan Bian) - Added data structures for MPEG-4 slice level decode -+ * and MPEG-2 motion compensation. -+ * rev 0.19 (08/06/2007 Jonathan Bian) - Removed extra type for bitplane data. -+ * rev 0.20 (08/08/2007 Jonathan Bian) - Added missing fields to VC-1 PictureParameter structure. -+ * rev 0.21 (08/20/2007 Jonathan Bian) - Added image and subpicture support. -+ * rev 0.22 (08/27/2007 Jonathan Bian) - Added support for chroma-keying and global alpha. -+ * rev 0.23 (09/11/2007 Jonathan Bian) - Fixed some issues with images and subpictures. -+ * rev 0.24 (09/18/2007 Jonathan Bian) - Added display attributes. -+ * rev 0.25 (10/18/2007 Jonathan Bian) - Changed to use IDs only for some types. -+ * rev 0.26 (11/07/2007 Waldo Bastian) - Change vaCreateBuffer semantics -+ * rev 0.27 (11/19/2007 Matt Sottek) - Added DeriveImage -+ * rev 0.28 (12/06/2007 Jonathan Bian) - Added new versions of PutImage and AssociateSubpicture -+ * to enable scaling -+ * rev 0.29 (02/07/2008 Jonathan Bian) - VC1 parameter fixes, -+ * added VA_STATUS_ERROR_RESOLUTION_NOT_SUPPORTED -+ * rev 0.30 (03/01/2009 Jonathan Bian) - Added encoding support for H.264 BP and MPEG-4 SP and fixes -+ * for ISO C conformance. -+ * rev 0.31 (09/02/2009 Gwenole Beauchesne) - VC-1/H264 fields change for VDPAU and XvBA backend -+ * Application needs to relink with the new library. -+ * -+ * Acknowledgements: -+ * Some concepts borrowed from XvMC and XvImage. -+ * Waldo Bastian (Intel), Matt Sottek (Intel), Austin Yuan (Intel), and Gwenole Beauchesne (SDS) -+ * contributed to various aspects of the API. -+ */ -+ -+#ifndef _VA_H_ -+#define _VA_H_ -+ -+#ifdef IN_LIBVA -+#include "va_version.h" -+#else -+#include -+#endif -+ -+#ifdef __cplusplus -+extern "C" { -+#endif -+ -+/* -+Overview -+ -+The VA API is intended to provide an interface between a video decode/encode/display -+application (client) and a hardware accelerator (server), to off-load -+video decode/encode/display operations from the host to the hardware accelerator at various -+entry-points. -+ -+The basic operation steps are: -+ -+- Negotiate a mutually acceptable configuration with the server to lock -+ down profile, entrypoints, and other attributes that will not change on -+ a frame-by-frame basis. -+- Create a decode context which represents a "virtualized" hardware decode -+ device -+- Get and fill decode buffers with picture level, slice level and macroblock -+ level data (depending on entrypoints) -+- Pass the decode buffers to the server to decode the current frame -+ -+Initialization & Configuration Management -+ -+- Find out supported profiles -+- Find out entrypoints for a given profile -+- Find out configuration attributes for a given profile/entrypoint pair -+- Create a configuration for use by the decoder -+ -+*/ -+ -+typedef void* VADisplay; /* window system dependent */ -+ -+typedef int VAStatus; /* Return status type from functions */ -+/* Values for the return status */ -+#define VA_STATUS_SUCCESS 0x00000000 -+#define VA_STATUS_ERROR_OPERATION_FAILED 0x00000001 -+#define VA_STATUS_ERROR_ALLOCATION_FAILED 0x00000002 -+#define VA_STATUS_ERROR_INVALID_DISPLAY 0x00000003 -+#define VA_STATUS_ERROR_INVALID_CONFIG 0x00000004 -+#define VA_STATUS_ERROR_INVALID_CONTEXT 0x00000005 -+#define VA_STATUS_ERROR_INVALID_SURFACE 0x00000006 -+#define VA_STATUS_ERROR_INVALID_BUFFER 0x00000007 -+#define VA_STATUS_ERROR_INVALID_IMAGE 0x00000008 -+#define VA_STATUS_ERROR_INVALID_SUBPICTURE 0x00000009 -+#define VA_STATUS_ERROR_ATTR_NOT_SUPPORTED 0x0000000a -+#define VA_STATUS_ERROR_MAX_NUM_EXCEEDED 0x0000000b -+#define VA_STATUS_ERROR_UNSUPPORTED_PROFILE 0x0000000c -+#define VA_STATUS_ERROR_UNSUPPORTED_ENTRYPOINT 0x0000000d -+#define VA_STATUS_ERROR_UNSUPPORTED_RT_FORMAT 0x0000000e -+#define VA_STATUS_ERROR_UNSUPPORTED_BUFFERTYPE 0x0000000f -+#define VA_STATUS_ERROR_SURFACE_BUSY 0x00000010 -+#define VA_STATUS_ERROR_FLAG_NOT_SUPPORTED 0x00000011 -+#define VA_STATUS_ERROR_INVALID_PARAMETER 0x00000012 -+#define VA_STATUS_ERROR_RESOLUTION_NOT_SUPPORTED 0x00000013 -+#define VA_STATUS_ERROR_UNIMPLEMENTED 0x00000014 -+#define VA_STATUS_ERROR_SURFACE_IN_DISPLAYING 0x00000015 -+#define VA_STATUS_ERROR_UNKNOWN 0xFFFFFFFF -+ -+/* -+ * Returns a short english description of error_status -+ */ -+const char *vaErrorStr(VAStatus error_status); -+ -+/* -+ * Initialization: -+ * A display must be obtained by calling vaGetDisplay() before calling -+ * vaInitialize() and other functions. This connects the API to the -+ * native window system. -+ * For X Windows, native_dpy would be from XOpenDisplay() -+ */ -+typedef void* NativeDisplay; /* window system dependent */ -+ -+/* -+ * Initialize the library -+ */ -+VAStatus vaInitialize ( -+ VADisplay dpy, -+ int *major_version, /* out */ -+ int *minor_version /* out */ -+); -+ -+/* -+ * After this call, all library internal resources will be cleaned up -+ */ -+VAStatus vaTerminate ( -+ VADisplay dpy -+); -+ -+/* -+ * vaQueryVendorString returns a pointer to a zero-terminated string -+ * describing some aspects of the VA implemenation on a specific -+ * hardware accelerator. The format of the returned string is vendor -+ * specific and at the discretion of the implementer. -+ * e.g. for the Intel GMA500 implementation, an example would be: -+ * "Intel GMA500 - 2.0.0.32L.0005" -+ */ -+const char *vaQueryVendorString ( -+ VADisplay dpy -+); -+ -+typedef int (*VAPrivFunc)(); -+ -+/* -+ * Return a function pointer given a function name in the library. -+ * This allows private interfaces into the library -+ */ -+VAPrivFunc vaGetLibFunc ( -+ VADisplay dpy, -+ const char *func -+); -+ -+/* Currently defined profiles */ -+typedef enum -+{ -+ VAProfileMPEG2Simple = 0, -+ VAProfileMPEG2Main = 1, -+ VAProfileMPEG4Simple = 2, -+ VAProfileMPEG4AdvancedSimple = 3, -+ VAProfileMPEG4Main = 4, -+ VAProfileH264Baseline = 5, -+ VAProfileH264Main = 6, -+ VAProfileH264High = 7, -+ VAProfileVC1Simple = 8, -+ VAProfileVC1Main = 9, -+ VAProfileVC1Advanced = 10, -+ VAProfileH263Baseline = 11 -+} VAProfile; -+ -+/* -+ * Currently defined entrypoints -+ */ -+typedef enum -+{ -+ VAEntrypointVLD = 1, -+ VAEntrypointIZZ = 2, -+ VAEntrypointIDCT = 3, -+ VAEntrypointMoComp = 4, -+ VAEntrypointDeblocking = 5, -+ VAEntrypointEncSlice = 6 /* slice level encode */ -+} VAEntrypoint; -+ -+/* Currently defined configuration attribute types */ -+typedef enum -+{ -+ VAConfigAttribRTFormat = 0, -+ VAConfigAttribSpatialResidual = 1, -+ VAConfigAttribSpatialClipping = 2, -+ VAConfigAttribIntraResidual = 3, -+ VAConfigAttribEncryption = 4, -+ VAConfigAttribRateControl = 5 -+} VAConfigAttribType; -+ -+/* -+ * Configuration attributes -+ * If there is more than one value for an attribute, a default -+ * value will be assigned to the attribute if the client does not -+ * specify the attribute when creating a configuration -+ */ -+typedef struct _VAConfigAttrib { -+ VAConfigAttribType type; -+ unsigned int value; /* OR'd flags (bits) for this attribute */ -+} VAConfigAttrib; -+ -+/* attribute value for VAConfigAttribRTFormat */ -+#define VA_RT_FORMAT_YUV420 0x00000001 -+#define VA_RT_FORMAT_YUV422 0x00000002 -+#define VA_RT_FORMAT_YUV444 0x00000004 -+#define VA_RT_FORMAT_PROTECTED 0x80000000 -+ -+/* attribute value for VAConfigAttribRateControl */ -+#define VA_RC_NONE 0x00000001 -+#define VA_RC_CBR 0x00000002 -+#define VA_RC_VBR 0x00000004 -+ -+/* -+ * if an attribute is not applicable for a given -+ * profile/entrypoint pair, then set the value to the following -+ */ -+#define VA_ATTRIB_NOT_SUPPORTED 0x80000000 -+ -+/* Get maximum number of profiles supported by the implementation */ -+int vaMaxNumProfiles ( -+ VADisplay dpy -+); -+ -+/* Get maximum number of entrypoints supported by the implementation */ -+int vaMaxNumEntrypoints ( -+ VADisplay dpy -+); -+ -+/* Get maximum number of attributs supported by the implementation */ -+int vaMaxNumConfigAttributes ( -+ VADisplay dpy -+); -+ -+/* -+ * Query supported profiles -+ * The caller must provide a "profile_list" array that can hold at -+ * least vaMaxNumProfile() entries. The actual number of profiles -+ * returned in "profile_list" is returned in "num_profile". -+ */ -+VAStatus vaQueryConfigProfiles ( -+ VADisplay dpy, -+ VAProfile *profile_list, /* out */ -+ int *num_profiles /* out */ -+); -+ -+/* -+ * Query supported entrypoints for a given profile -+ * The caller must provide an "entrypoint_list" array that can hold at -+ * least vaMaxNumEntrypoints() entries. The actual number of entrypoints -+ * returned in "entrypoint_list" is returned in "num_entrypoints". -+ */ -+VAStatus vaQueryConfigEntrypoints ( -+ VADisplay dpy, -+ VAProfile profile, -+ VAEntrypoint *entrypoint_list, /* out */ -+ int *num_entrypoints /* out */ -+); -+ -+/* -+ * Get attributes for a given profile/entrypoint pair -+ * The caller must provide an "attrib_list" with all attributes to be -+ * retrieved. Upon return, the attributes in "attrib_list" have been -+ * updated with their value. Unknown attributes or attributes that are -+ * not supported for the given profile/entrypoint pair will have their -+ * value set to VA_ATTRIB_NOT_SUPPORTED -+ */ -+VAStatus vaGetConfigAttributes ( -+ VADisplay dpy, -+ VAProfile profile, -+ VAEntrypoint entrypoint, -+ VAConfigAttrib *attrib_list, /* in/out */ -+ int num_attribs -+); -+ -+/* Generic ID type, can be re-typed for specific implementation */ -+typedef unsigned int VAGenericID; -+ -+typedef VAGenericID VAConfigID; -+ -+/* -+ * Create a configuration for the decode pipeline -+ * it passes in the attribute list that specifies the attributes it cares -+ * about, with the rest taking default values. -+ */ -+VAStatus vaCreateConfig ( -+ VADisplay dpy, -+ VAProfile profile, -+ VAEntrypoint entrypoint, -+ VAConfigAttrib *attrib_list, -+ int num_attribs, -+ VAConfigID *config_id /* out */ -+); -+ -+/* -+ * Free resources associdated with a given config -+ */ -+VAStatus vaDestroyConfig ( -+ VADisplay dpy, -+ VAConfigID config_id -+); -+ -+/* -+ * Query all attributes for a given configuration -+ * The profile of the configuration is returned in "profile" -+ * The entrypoint of the configuration is returned in "entrypoint" -+ * The caller must provide an "attrib_list" array that can hold at least -+ * vaMaxNumConfigAttributes() entries. The actual number of attributes -+ * returned in "attrib_list" is returned in "num_attribs" -+ */ -+VAStatus vaQueryConfigAttributes ( -+ VADisplay dpy, -+ VAConfigID config_id, -+ VAProfile *profile, /* out */ -+ VAEntrypoint *entrypoint, /* out */ -+ VAConfigAttrib *attrib_list,/* out */ -+ int *num_attribs /* out */ -+); -+ -+ -+/* -+ * Contexts and Surfaces -+ * -+ * Context represents a "virtual" video decode pipeline. Surfaces are render -+ * targets for a given context. The data in the surfaces are not accessible -+ * to the client and the internal data format of the surface is implementatin -+ * specific. -+ * -+ * Surfaces will be bound to a context when the context is created. Once -+ * a surface is bound to a given context, it can not be used to create -+ * another context. The association is removed when the context is destroyed -+ * -+ * Both contexts and surfaces are identified by unique IDs and its -+ * implementation specific internals are kept opaque to the clients -+ */ -+ -+typedef VAGenericID VAContextID; -+ -+typedef VAGenericID VASurfaceID; -+ -+#define VA_INVALID_ID 0xffffffff -+#define VA_INVALID_SURFACE VA_INVALID_ID -+ -+/* -+ * vaCreateSurfaces - Create an array of surfaces used for decode and display -+ * dpy: display -+ * width: surface width -+ * height: surface height -+ * format: VA_RT_FORMAT_YUV420, VA_RT_FORMAT_YUV422 or VA_RT_FORMAT_YUV444 -+ * num_surfaces: number of surfaces to be created -+ * surfaces: array of surfaces created upon return -+ */ -+VAStatus vaCreateSurfaces ( -+ VADisplay dpy, -+ int width, -+ int height, -+ int format, -+ int num_surfaces, -+ VASurfaceID *surfaces /* out */ -+); -+ -+/* Wrap a CI (camera imaging) frame as a VA surface to share captured video between camear -+ * and VA encode. With frame_id, VA driver need to call CI interfaces to get the information -+ * of the frame, and to determine if the frame can be wrapped as a VA surface -+ * -+ * Application should make sure the frame is idle before the frame is passed into VA stack -+ * and also a vaSyncSurface should be called before application tries to access the frame -+ * from CI stack -+ */ -+VAStatus vaCreateSurfaceFromCIFrame ( -+ VADisplay dpy, -+ unsigned long frame_id, -+ VASurfaceID *surface /* out */ -+); -+ -+ -+/* -+ * vaDestroySurfaces - Destroy resources associated with surfaces. -+ * Surfaces can only be destroyed after the context associated has been -+ * destroyed. -+ * dpy: display -+ * surfaces: array of surfaces to destroy -+ * num_surfaces: number of surfaces in the array to be destroyed. -+ */ -+VAStatus vaDestroySurfaces ( -+ VADisplay dpy, -+ VASurfaceID *surfaces, -+ int num_surfaces -+); -+ -+#define VA_PROGRESSIVE 0x1 -+/* -+ * vaCreateContext - Create a context -+ * dpy: display -+ * config_id: configuration for the context -+ * picture_width: coded picture width -+ * picture_height: coded picture height -+ * flag: any combination of the following: -+ * VA_PROGRESSIVE (only progressive frame pictures in the sequence when set) -+ * render_targets: render targets (surfaces) tied to the context -+ * num_render_targets: number of render targets in the above array -+ * context: created context id upon return -+ */ -+VAStatus vaCreateContext ( -+ VADisplay dpy, -+ VAConfigID config_id, -+ int picture_width, -+ int picture_height, -+ int flag, -+ VASurfaceID *render_targets, -+ int num_render_targets, -+ VAContextID *context /* out */ -+); -+ -+/* -+ * vaDestroyContext - Destroy a context -+ * dpy: display -+ * context: context to be destroyed -+ */ -+VAStatus vaDestroyContext ( -+ VADisplay dpy, -+ VAContextID context -+); -+ -+/* -+ * Buffers -+ * Buffers are used to pass various types of data from the -+ * client to the server. The server maintains a data store -+ * for each buffer created, and the client idenfies a buffer -+ * through a unique buffer id assigned by the server. -+ */ -+ -+typedef VAGenericID VABufferID; -+ -+typedef enum -+{ -+ VAPictureParameterBufferType = 0, -+ VAIQMatrixBufferType = 1, -+ VABitPlaneBufferType = 2, -+ VASliceGroupMapBufferType = 3, -+ VASliceParameterBufferType = 4, -+ VASliceDataBufferType = 5, -+ VAMacroblockParameterBufferType = 6, -+ VAResidualDataBufferType = 7, -+ VADeblockingParameterBufferType = 8, -+ VAImageBufferType = 9, -+ VAProtectedSliceDataBufferType = 10, -+/* Following are encode buffer types */ -+ VAEncCodedBufferType = 21, -+ VAEncSequenceParameterBufferType = 22, -+ VAEncPictureParameterBufferType = 23, -+ VAEncSliceParameterBufferType = 24, -+ VAEncH264VUIBufferType = 25, -+ VAEncH264SEIBufferType = 26, -+} VABufferType; -+ -+ -+/* -+ * There will be cases where the bitstream buffer will not have enough room to hold -+ * the data for the entire slice, and the following flags will be used in the slice -+ * parameter to signal to the server for the possible cases. -+ * If a slice parameter buffer and slice data buffer pair is sent to the server with -+ * the slice data partially in the slice data buffer (BEGIN and MIDDLE cases below), -+ * then a slice parameter and data buffer needs to be sent again to complete this slice. -+ */ -+#define VA_SLICE_DATA_FLAG_ALL 0x00 /* whole slice is in the buffer */ -+#define VA_SLICE_DATA_FLAG_BEGIN 0x01 /* The beginning of the slice is in the buffer but the end if not */ -+#define VA_SLICE_DATA_FLAG_MIDDLE 0x02 /* Neither beginning nor end of the slice is in the buffer */ -+#define VA_SLICE_DATA_FLAG_END 0x04 /* end of the slice is in the buffer */ -+ -+/* Codec-independent Slice Parameter Buffer base */ -+typedef struct _VASliceParameterBufferBase -+{ -+ unsigned int slice_data_size; /* number of bytes in the slice data buffer for this slice */ -+ unsigned int slice_data_offset; /* the offset to the first byte of slice data */ -+ unsigned int slice_data_flag; /* see VA_SLICE_DATA_FLAG_XXX definitions */ -+} VASliceParameterBufferBase; -+ -+/**************************** -+ * MPEG-2 data structures -+ ****************************/ -+ -+/* MPEG-2 Picture Parameter Buffer */ -+/* -+ * For each frame or field, and before any slice data, a single -+ * picture parameter buffer must be send. -+ */ -+typedef struct _VAPictureParameterBufferMPEG2 -+{ -+ unsigned short horizontal_size; -+ unsigned short vertical_size; -+ VASurfaceID forward_reference_picture; -+ VASurfaceID backward_reference_picture; -+ /* meanings of the following fields are the same as in the standard */ -+ int picture_coding_type; -+ int f_code; /* pack all four fcode into this */ -+ union { -+ struct { -+ unsigned int intra_dc_precision : 2; -+ unsigned int picture_structure : 2; -+ unsigned int top_field_first : 1; -+ unsigned int frame_pred_frame_dct : 1; -+ unsigned int concealment_motion_vectors : 1; -+ unsigned int q_scale_type : 1; -+ unsigned int intra_vlc_format : 1; -+ unsigned int alternate_scan : 1; -+ unsigned int repeat_first_field : 1; -+ unsigned int progressive_frame : 1; -+ unsigned int is_first_field : 1; /* indicate whether the current field -+ * is the first field for field picture -+ */ -+ } bits; -+ unsigned int value; -+ } picture_coding_extension; -+} VAPictureParameterBufferMPEG2; -+ -+/* MPEG-2 Inverse Quantization Matrix Buffer */ -+typedef struct _VAIQMatrixBufferMPEG2 -+{ -+ int load_intra_quantiser_matrix; -+ int load_non_intra_quantiser_matrix; -+ int load_chroma_intra_quantiser_matrix; -+ int load_chroma_non_intra_quantiser_matrix; -+ unsigned char intra_quantiser_matrix[64]; -+ unsigned char non_intra_quantiser_matrix[64]; -+ unsigned char chroma_intra_quantiser_matrix[64]; -+ unsigned char chroma_non_intra_quantiser_matrix[64]; -+} VAIQMatrixBufferMPEG2; -+ -+/* MPEG-2 Slice Parameter Buffer */ -+typedef struct _VASliceParameterBufferMPEG2 -+{ -+ unsigned int slice_data_size;/* number of bytes in the slice data buffer for this slice */ -+ unsigned int slice_data_offset;/* the offset to the first byte of slice data */ -+ unsigned int slice_data_flag; /* see VA_SLICE_DATA_FLAG_XXX defintions */ -+ unsigned int macroblock_offset;/* the offset to the first bit of MB from the first byte of slice data */ -+ unsigned int slice_horizontal_position; -+ unsigned int slice_vertical_position; -+ int quantiser_scale_code; -+ int intra_slice_flag; -+} VASliceParameterBufferMPEG2; -+ -+/* MPEG-2 Macroblock Parameter Buffer */ -+typedef struct _VAMacroblockParameterBufferMPEG2 -+{ -+ unsigned short macroblock_address; -+ /* -+ * macroblock_address (in raster scan order) -+ * top-left: 0 -+ * bottom-right: picture-height-in-mb*picture-width-in-mb - 1 -+ */ -+ unsigned char macroblock_type; /* see definition below */ -+ union { -+ struct { -+ unsigned int frame_motion_type : 2; -+ unsigned int field_motion_type : 2; -+ unsigned int dct_type : 1; -+ } bits; -+ unsigned int value; -+ } macroblock_modes; -+ unsigned char motion_vertical_field_select; -+ /* -+ * motion_vertical_field_select: -+ * see section 6.3.17.2 in the spec -+ * only the lower 4 bits are used -+ * bit 0: first vector forward -+ * bit 1: first vector backward -+ * bit 2: second vector forward -+ * bit 3: second vector backward -+ */ -+ short PMV[2][2][2]; /* see Table 7-7 in the spec */ -+ unsigned short coded_block_pattern; -+ /* -+ * The bitplanes for coded_block_pattern are described -+ * in Figure 6.10-12 in the spec -+ */ -+ -+ /* Number of skipped macroblocks after this macroblock */ -+ unsigned short num_skipped_macroblocks; -+} VAMacroblockParameterBufferMPEG2; -+ -+/* -+ * OR'd flags for macroblock_type (section 6.3.17.1 in the spec) -+ */ -+#define VA_MB_TYPE_MOTION_FORWARD 0x02 -+#define VA_MB_TYPE_MOTION_BACKWARD 0x04 -+#define VA_MB_TYPE_MOTION_PATTERN 0x08 -+#define VA_MB_TYPE_MOTION_INTRA 0x10 -+ -+/* -+ * MPEG-2 Residual Data Buffer -+ * For each macroblock, there wil be 64 shorts (16-bit) in the -+ * residual data buffer -+ */ -+ -+/**************************** -+ * MPEG-4 Part 2 data structures -+ ****************************/ -+ -+/* MPEG-4 Picture Parameter Buffer */ -+/* -+ * For each frame or field, and before any slice data, a single -+ * picture parameter buffer must be send. -+ */ -+typedef struct _VAPictureParameterBufferMPEG4 -+{ -+ unsigned short vop_width; -+ unsigned short vop_height; -+ VASurfaceID forward_reference_picture; -+ VASurfaceID backward_reference_picture; -+ union { -+ struct { -+ unsigned int short_video_header : 1; -+ unsigned int chroma_format : 2; -+ unsigned int interlaced : 1; -+ unsigned int obmc_disable : 1; -+ unsigned int sprite_enable : 2; -+ unsigned int sprite_warping_accuracy : 2; -+ unsigned int quant_type : 1; -+ unsigned int quarter_sample : 1; -+ unsigned int data_partitioned : 1; -+ unsigned int reversible_vlc : 1; -+ unsigned int resync_marker_disable : 1; -+ } bits; -+ unsigned int value; -+ } vol_fields; -+ unsigned char no_of_sprite_warping_points; -+ short sprite_trajectory_du[3]; -+ short sprite_trajectory_dv[3]; -+ unsigned char quant_precision; -+ union { -+ struct { -+ unsigned int vop_coding_type : 2; -+ unsigned int backward_reference_vop_coding_type : 2; -+ unsigned int vop_rounding_type : 1; -+ unsigned int intra_dc_vlc_thr : 3; -+ unsigned int top_field_first : 1; -+ unsigned int alternate_vertical_scan_flag : 1; -+ } bits; -+ unsigned int value; -+ } vop_fields; -+ unsigned char vop_fcode_forward; -+ unsigned char vop_fcode_backward; -+ unsigned short vop_time_increment_resolution; -+ /* short header related */ -+ unsigned char num_gobs_in_vop; -+ unsigned char num_macroblocks_in_gob; -+ /* for direct mode prediction */ -+ short TRB; -+ short TRD; -+} VAPictureParameterBufferMPEG4; -+ -+/* MPEG-4 Inverse Quantization Matrix Buffer */ -+typedef struct _VAIQMatrixBufferMPEG4 -+{ -+ int load_intra_quant_mat; -+ int load_non_intra_quant_mat; -+ unsigned char intra_quant_mat[64]; -+ unsigned char non_intra_quant_mat[64]; -+} VAIQMatrixBufferMPEG4; -+ -+/* MPEG-4 Slice Parameter Buffer */ -+typedef struct _VASliceParameterBufferMPEG4 -+{ -+ unsigned int slice_data_size;/* number of bytes in the slice data buffer for this slice */ -+ unsigned int slice_data_offset;/* the offset to the first byte of slice data */ -+ unsigned int slice_data_flag; /* see VA_SLICE_DATA_FLAG_XXX defintions */ -+ unsigned int macroblock_offset;/* the offset to the first bit of MB from the first byte of slice data */ -+ unsigned int macroblock_number; -+ int quant_scale; -+} VASliceParameterBufferMPEG4; -+ -+/* -+ VC-1 data structures -+*/ -+ -+typedef enum /* see 7.1.1.32 */ -+{ -+ VAMvMode1Mv = 0, -+ VAMvMode1MvHalfPel = 1, -+ VAMvMode1MvHalfPelBilinear = 2, -+ VAMvModeMixedMv = 3, -+ VAMvModeIntensityCompensation = 4 -+} VAMvModeVC1; -+ -+/* VC-1 Picture Parameter Buffer */ -+/* -+ * For each picture, and before any slice data, a picture parameter -+ * buffer must be send. Multiple picture parameter buffers may be -+ * sent for a single picture. In that case picture parameters will -+ * apply to all slice data that follow it until a new picture -+ * parameter buffer is sent. -+ * -+ * Notes: -+ * pic_quantizer_type should be set to the applicable quantizer -+ * type as defined by QUANTIZER (J.1.19) and either -+ * PQUANTIZER (7.1.1.8) or PQINDEX (7.1.1.6) -+ */ -+typedef struct _VAPictureParameterBufferVC1 -+{ -+ VASurfaceID forward_reference_picture; -+ VASurfaceID backward_reference_picture; -+ /* if out-of-loop post-processing is done on the render -+ target, then we need to keep the in-loop decoded -+ picture as a reference picture */ -+ VASurfaceID inloop_decoded_picture; -+ -+ /* sequence layer for AP or meta data for SP and MP */ -+ union { -+ struct { -+ unsigned int pulldown : 1; /* SEQUENCE_LAYER::PULLDOWN */ -+ unsigned int interlace : 1; /* SEQUENCE_LAYER::INTERLACE */ -+ unsigned int tfcntrflag : 1; /* SEQUENCE_LAYER::TFCNTRFLAG */ -+ unsigned int finterpflag : 1; /* SEQUENCE_LAYER::FINTERPFLAG */ -+ unsigned int psf : 1; /* SEQUENCE_LAYER::PSF */ -+ unsigned int multires : 1; /* METADATA::MULTIRES */ -+ unsigned int overlap : 1; /* METADATA::OVERLAP */ -+ unsigned int syncmarker : 1; /* METADATA::SYNCMARKER */ -+ unsigned int rangered : 1; /* METADATA::RANGERED */ -+ unsigned int max_b_frames : 3; /* METADATA::MAXBFRAMES */ -+ } bits; -+ unsigned int value; -+ } sequence_fields; -+ -+ unsigned short coded_width; /* ENTRY_POINT_LAYER::CODED_WIDTH */ -+ unsigned short coded_height; /* ENTRY_POINT_LAYER::CODED_HEIGHT */ -+ union { -+ struct { -+ unsigned int broken_link : 1; /* ENTRY_POINT_LAYER::BROKEN_LINK */ -+ unsigned int closed_entry : 1; /* ENTRY_POINT_LAYER::CLOSED_ENTRY */ -+ unsigned int panscan_flag : 1; /* ENTRY_POINT_LAYER::PANSCAN_FLAG */ -+ unsigned int loopfilter : 1; /* ENTRY_POINT_LAYER::LOOPFILTER */ -+ } bits; -+ unsigned int value; -+ } entrypoint_fields; -+ unsigned char conditional_overlap_flag; /* ENTRY_POINT_LAYER::CONDOVER */ -+ unsigned char fast_uvmc_flag; /* ENTRY_POINT_LAYER::FASTUVMC */ -+ union { -+ struct { -+ unsigned int luma_flag : 1; /* ENTRY_POINT_LAYER::RANGE_MAPY_FLAG */ -+ unsigned int luma : 3; /* ENTRY_POINT_LAYER::RANGE_MAPY */ -+ unsigned int chroma_flag : 1; /* ENTRY_POINT_LAYER::RANGE_MAPUV_FLAG */ -+ unsigned int chroma : 3; /* ENTRY_POINT_LAYER::RANGE_MAPUV */ -+ } bits; -+ unsigned int value; -+ } range_mapping_fields; -+ -+ unsigned char b_picture_fraction; /* PICTURE_LAYER::BFRACTION */ -+ unsigned char cbp_table; /* PICTURE_LAYER::CBPTAB/ICBPTAB */ -+ unsigned char mb_mode_table; /* PICTURE_LAYER::MBMODETAB */ -+ unsigned char range_reduction_frame;/* PICTURE_LAYER::RANGEREDFRM */ -+ unsigned char rounding_control; /* PICTURE_LAYER::RNDCTRL */ -+ unsigned char post_processing; /* PICTURE_LAYER::POSTPROC */ -+ unsigned char picture_resolution_index; /* PICTURE_LAYER::RESPIC */ -+ unsigned char luma_scale; /* PICTURE_LAYER::LUMSCALE */ -+ unsigned char luma_shift; /* PICTURE_LAYER::LUMSHIFT */ -+ union { -+ struct { -+ unsigned int picture_type : 3; /* PICTURE_LAYER::PTYPE */ -+ unsigned int frame_coding_mode : 3; /* PICTURE_LAYER::FCM */ -+ unsigned int top_field_first : 1; /* PICTURE_LAYER::TFF */ -+ unsigned int is_first_field : 1; /* set to 1 if it is the first field */ -+ unsigned int intensity_compensation : 1; /* PICTURE_LAYER::INTCOMP */ -+ } bits; -+ unsigned int value; -+ } picture_fields; -+ union { -+ struct { -+ unsigned int mv_type_mb : 1; /* PICTURE::MVTYPEMB */ -+ unsigned int direct_mb : 1; /* PICTURE::DIRECTMB */ -+ unsigned int skip_mb : 1; /* PICTURE::SKIPMB */ -+ unsigned int field_tx : 1; /* PICTURE::FIELDTX */ -+ unsigned int forward_mb : 1; /* PICTURE::FORWARDMB */ -+ unsigned int ac_pred : 1; /* PICTURE::ACPRED */ -+ unsigned int overflags : 1; /* PICTURE::OVERFLAGS */ -+ } flags; -+ unsigned int value; -+ } raw_coding; -+ union { -+ struct { -+ unsigned int bp_mv_type_mb : 1; /* PICTURE::MVTYPEMB */ -+ unsigned int bp_direct_mb : 1; /* PICTURE::DIRECTMB */ -+ unsigned int bp_skip_mb : 1; /* PICTURE::SKIPMB */ -+ unsigned int bp_field_tx : 1; /* PICTURE::FIELDTX */ -+ unsigned int bp_forward_mb : 1; /* PICTURE::FORWARDMB */ -+ unsigned int bp_ac_pred : 1; /* PICTURE::ACPRED */ -+ unsigned int bp_overflags : 1; /* PICTURE::OVERFLAGS */ -+ } flags; -+ unsigned int value; -+ } bitplane_present; /* signal what bitplane is being passed via the bitplane buffer */ -+ union { -+ struct { -+ unsigned int reference_distance_flag : 1;/* PICTURE_LAYER::REFDIST_FLAG */ -+ unsigned int reference_distance : 5;/* PICTURE_LAYER::REFDIST */ -+ unsigned int num_reference_pictures: 1;/* PICTURE_LAYER::NUMREF */ -+ unsigned int reference_field_pic_indicator : 1;/* PICTURE_LAYER::REFFIELD */ -+ } bits; -+ unsigned int value; -+ } reference_fields; -+ union { -+ struct { -+ unsigned int mv_mode : 3; /* PICTURE_LAYER::MVMODE */ -+ unsigned int mv_mode2 : 3; /* PICTURE_LAYER::MVMODE2 */ -+ unsigned int mv_table : 3; /* PICTURE_LAYER::MVTAB/IMVTAB */ -+ unsigned int two_mv_block_pattern_table: 2; /* PICTURE_LAYER::2MVBPTAB */ -+ unsigned int four_mv_switch : 1; /* PICTURE_LAYER::4MVSWITCH */ -+ unsigned int four_mv_block_pattern_table : 2; /* PICTURE_LAYER::4MVBPTAB */ -+ unsigned int extended_mv_flag : 1; /* ENTRY_POINT_LAYER::EXTENDED_MV */ -+ unsigned int extended_mv_range : 2; /* PICTURE_LAYER::MVRANGE */ -+ unsigned int extended_dmv_flag : 1; /* ENTRY_POINT_LAYER::EXTENDED_DMV */ -+ unsigned int extended_dmv_range : 2; /* PICTURE_LAYER::DMVRANGE */ -+ } bits; -+ unsigned int value; -+ } mv_fields; -+ union { -+ struct { -+ unsigned int dquant : 2; /* ENTRY_POINT_LAYER::DQUANT */ -+ unsigned int quantizer : 2; /* ENTRY_POINT_LAYER::QUANTIZER */ -+ unsigned int half_qp : 1; /* PICTURE_LAYER::HALFQP */ -+ unsigned int pic_quantizer_scale : 5;/* PICTURE_LAYER::PQUANT */ -+ unsigned int pic_quantizer_type : 1;/* PICTURE_LAYER::PQUANTIZER */ -+ unsigned int dq_frame : 1; /* VOPDQUANT::DQUANTFRM */ -+ unsigned int dq_profile : 2; /* VOPDQUANT::DQPROFILE */ -+ unsigned int dq_sb_edge : 2; /* VOPDQUANT::DQSBEDGE */ -+ unsigned int dq_db_edge : 2; /* VOPDQUANT::DQDBEDGE */ -+ unsigned int dq_binary_level : 1; /* VOPDQUANT::DQBILEVEL */ -+ unsigned int alt_pic_quantizer : 5;/* VOPDQUANT::ALTPQUANT */ -+ } bits; -+ unsigned int value; -+ } pic_quantizer_fields; -+ union { -+ struct { -+ unsigned int variable_sized_transform_flag : 1;/* ENTRY_POINT_LAYER::VSTRANSFORM */ -+ unsigned int mb_level_transform_type_flag : 1;/* PICTURE_LAYER::TTMBF */ -+ unsigned int frame_level_transform_type : 2;/* PICTURE_LAYER::TTFRM */ -+ unsigned int transform_ac_codingset_idx1 : 2;/* PICTURE_LAYER::TRANSACFRM */ -+ unsigned int transform_ac_codingset_idx2 : 2;/* PICTURE_LAYER::TRANSACFRM2 */ -+ unsigned int intra_transform_dc_table : 1;/* PICTURE_LAYER::TRANSDCTAB */ -+ } bits; -+ unsigned int value; -+ } transform_fields; -+} VAPictureParameterBufferVC1; -+ -+/* VC-1 Bitplane Buffer -+There will be at most three bitplanes coded in any picture header. To send -+the bitplane data more efficiently, each byte is divided in two nibbles, with -+each nibble carrying three bitplanes for one macroblock. The following table -+shows the bitplane data arrangement within each nibble based on the picture -+type. -+ -+Picture Type Bit3 Bit2 Bit1 Bit0 -+I or BI OVERFLAGS ACPRED FIELDTX -+P MYTYPEMB SKIPMB DIRECTMB -+B FORWARDMB SKIPMB DIRECTMB -+ -+Within each byte, the lower nibble is for the first MB and the upper nibble is -+for the second MB. E.g. the lower nibble of the first byte in the bitplane -+buffer is for Macroblock #1 and the upper nibble of the first byte is for -+Macroblock #2 in the first row. -+*/ -+ -+/* VC-1 Slice Parameter Buffer */ -+typedef struct _VASliceParameterBufferVC1 -+{ -+ unsigned int slice_data_size;/* number of bytes in the slice data buffer for this slice */ -+ unsigned int slice_data_offset;/* the offset to the first byte of slice data */ -+ unsigned int slice_data_flag; /* see VA_SLICE_DATA_FLAG_XXX defintions */ -+ unsigned int macroblock_offset;/* the offset to the first bit of MB from the first byte of slice data */ -+ unsigned int slice_vertical_position; -+} VASliceParameterBufferVC1; -+ -+/* VC-1 Slice Data Buffer */ -+/* -+This is simplely a buffer containing raw bit-stream bytes -+*/ -+ -+/**************************** -+ * H.264/AVC data structures -+ ****************************/ -+ -+typedef struct _VAPictureH264 -+{ -+ VASurfaceID picture_id; -+ unsigned int frame_idx; -+ unsigned int flags; -+ unsigned int TopFieldOrderCnt; -+ unsigned int BottomFieldOrderCnt; -+} VAPictureH264; -+/* flags in VAPictureH264 could be OR of the following */ -+#define VA_PICTURE_H264_INVALID 0x00000001 -+#define VA_PICTURE_H264_TOP_FIELD 0x00000002 -+#define VA_PICTURE_H264_BOTTOM_FIELD 0x00000004 -+#define VA_PICTURE_H264_SHORT_TERM_REFERENCE 0x00000008 -+#define VA_PICTURE_H264_LONG_TERM_REFERENCE 0x00000010 -+ -+/* H.264 Picture Parameter Buffer */ -+/* -+ * For each picture, and before any slice data, a single -+ * picture parameter buffer must be send. -+ */ -+typedef struct _VAPictureParameterBufferH264 -+{ -+ VAPictureH264 CurrPic; -+ VAPictureH264 ReferenceFrames[16]; /* in DPB */ -+ unsigned short picture_width_in_mbs_minus1; -+ unsigned short picture_height_in_mbs_minus1; -+ unsigned char bit_depth_luma_minus8; -+ unsigned char bit_depth_chroma_minus8; -+ unsigned char num_ref_frames; -+ union { -+ struct { -+ unsigned int chroma_format_idc : 2; -+ unsigned int residual_colour_transform_flag : 1; -+ unsigned int gaps_in_frame_num_value_allowed_flag : 1; -+ unsigned int frame_mbs_only_flag : 1; -+ unsigned int mb_adaptive_frame_field_flag : 1; -+ unsigned int direct_8x8_inference_flag : 1; -+ unsigned int MinLumaBiPredSize8x8 : 1; /* see A.3.3.2 */ -+ unsigned int log2_max_frame_num_minus4 : 4; -+ unsigned int pic_order_cnt_type : 2; -+ unsigned int log2_max_pic_order_cnt_lsb_minus4 : 4; -+ unsigned int delta_pic_order_always_zero_flag : 1; -+ } bits; -+ unsigned int value; -+ } seq_fields; -+ unsigned char num_slice_groups_minus1; -+ unsigned char slice_group_map_type; -+ unsigned short slice_group_change_rate_minus1; -+ signed char pic_init_qp_minus26; -+ signed char pic_init_qs_minus26; -+ signed char chroma_qp_index_offset; -+ signed char second_chroma_qp_index_offset; -+ union { -+ struct { -+ unsigned int entropy_coding_mode_flag : 1; -+ unsigned int weighted_pred_flag : 1; -+ unsigned int weighted_bipred_idc : 2; -+ unsigned int transform_8x8_mode_flag : 1; -+ unsigned int field_pic_flag : 1; -+ unsigned int constrained_intra_pred_flag : 1; -+ unsigned int pic_order_present_flag : 1; -+ unsigned int deblocking_filter_control_present_flag : 1; -+ unsigned int redundant_pic_cnt_present_flag : 1; -+ unsigned int reference_pic_flag : 1; /* nal_ref_idc != 0 */ -+ } bits; -+ unsigned int value; -+ } pic_fields; -+ unsigned short frame_num; -+} VAPictureParameterBufferH264; -+ -+/* H.264 Inverse Quantization Matrix Buffer */ -+typedef struct _VAIQMatrixBufferH264 -+{ -+ unsigned char ScalingList4x4[6][16]; -+ unsigned char ScalingList8x8[2][64]; -+} VAIQMatrixBufferH264; -+ -+/* -+ * H.264 Slice Group Map Buffer -+ * When VAPictureParameterBufferH264::num_slice_group_minus1 is not equal to 0, -+ * A slice group map buffer should be sent for each picture if required. The buffer -+ * is sent only when there is a change in the mapping values. -+ * The slice group map buffer map "map units" to slice groups as specified in -+ * section 8.2.2 of the H.264 spec. The buffer will contain one byte for each macroblock -+ * in raster scan order -+ */ -+ -+/* H.264 Slice Parameter Buffer */ -+typedef struct _VASliceParameterBufferH264 -+{ -+ unsigned int slice_data_size;/* number of bytes in the slice data buffer for this slice */ -+ unsigned int slice_data_offset;/* the offset to the NAL start code for this slice */ -+ unsigned int slice_data_flag; /* see VA_SLICE_DATA_FLAG_XXX defintions */ -+ unsigned short slice_data_bit_offset; /* bit offset from NAL start code to the beginning of slice data */ -+ unsigned short first_mb_in_slice; -+ unsigned char slice_type; -+ unsigned char direct_spatial_mv_pred_flag; -+ unsigned char num_ref_idx_l0_active_minus1; -+ unsigned char num_ref_idx_l1_active_minus1; -+ unsigned char cabac_init_idc; -+ char slice_qp_delta; -+ unsigned char disable_deblocking_filter_idc; -+ char slice_alpha_c0_offset_div2; -+ char slice_beta_offset_div2; -+ VAPictureH264 RefPicList0[32]; /* See 8.2.4.2 */ -+ VAPictureH264 RefPicList1[32]; /* See 8.2.4.2 */ -+ unsigned char luma_log2_weight_denom; -+ unsigned char chroma_log2_weight_denom; -+ unsigned char luma_weight_l0_flag; -+ short luma_weight_l0[32]; -+ short luma_offset_l0[32]; -+ unsigned char chroma_weight_l0_flag; -+ short chroma_weight_l0[32][2]; -+ short chroma_offset_l0[32][2]; -+ unsigned char luma_weight_l1_flag; -+ short luma_weight_l1[32]; -+ short luma_offset_l1[32]; -+ unsigned char chroma_weight_l1_flag; -+ short chroma_weight_l1[32][2]; -+ short chroma_offset_l1[32][2]; -+} VASliceParameterBufferH264; -+ -+/**************************** -+ * Common encode data structures -+ ****************************/ -+typedef enum -+{ -+ VAEncPictureTypeIntra = 0, -+ VAEncPictureTypePredictive = 1, -+ VAEncPictureTypeBidirectional = 2, -+} VAEncPictureType; -+ -+/* Encode Slice Parameter Buffer */ -+typedef struct _VAEncSliceParameterBuffer -+{ -+ unsigned int start_row_number; /* starting MB row number for this slice */ -+ unsigned int slice_height; /* slice height measured in MB */ -+ union { -+ struct { -+ unsigned int is_intra : 1; -+ unsigned int disable_deblocking_filter_idc : 2; -+ } bits; -+ unsigned int value; -+ } slice_flags; -+} VAEncSliceParameterBuffer; -+ -+/**************************** -+ * H.264 specific encode data structures -+ ****************************/ -+ -+typedef struct _VAEncSequenceParameterBufferH264 -+{ -+ unsigned char seq_parameter_set_id; -+ unsigned char level_idc; -+ unsigned int intra_period; -+ unsigned int picture_width_in_mbs; -+ unsigned int picture_height_in_mbs; -+ unsigned int bits_per_second; -+ unsigned int frame_rate; -+ unsigned int initial_qp; -+ unsigned int min_qp; -+ unsigned int basic_unit_size; -+ unsigned char vui_flag; -+} VAEncSequenceParameterBufferH264; -+ -+typedef struct _VAEncPictureParameterBufferH264 -+{ -+ VASurfaceID reference_picture; -+ VASurfaceID reconstructed_picture; -+ VABufferID coded_buf; -+ unsigned short picture_width; -+ unsigned short picture_height; -+ unsigned char last_picture; /* if set to 1 it indicates the last picture in the sequence */ -+} VAEncPictureParameterBufferH264; -+ -+/**************************** -+ * H.263 specific encode data structures -+ ****************************/ -+ -+typedef struct _VAEncSequenceParameterBufferH263 -+{ -+ unsigned int intra_period; -+ unsigned int bits_per_second; -+ unsigned int frame_rate; -+ unsigned int initial_qp; -+ unsigned int min_qp; -+} VAEncSequenceParameterBufferH263; -+ -+typedef struct _VAEncPictureParameterBufferH263 -+{ -+ VASurfaceID reference_picture; -+ VASurfaceID reconstructed_picture; -+ VABufferID coded_buf; -+ unsigned short picture_width; -+ unsigned short picture_height; -+ VAEncPictureType picture_type; -+} VAEncPictureParameterBufferH263; -+ -+/**************************** -+ * MPEG-4 specific encode data structures -+ ****************************/ -+ -+typedef struct _VAEncSequenceParameterBufferMPEG4 -+{ -+ unsigned char profile_and_level_indication; -+ unsigned int intra_period; -+ unsigned int video_object_layer_width; -+ unsigned int video_object_layer_height; -+ unsigned int vop_time_increment_resolution; -+ unsigned int fixed_vop_rate; -+ unsigned int fixed_vop_time_increment; -+ unsigned int bits_per_second; -+ unsigned int frame_rate; -+ unsigned int initial_qp; -+ unsigned int min_qp; -+} VAEncSequenceParameterBufferMPEG4; -+ -+typedef struct _VAEncPictureParameterBufferMPEG4 -+{ -+ VASurfaceID reference_picture; -+ VASurfaceID reconstructed_picture; -+ VABufferID coded_buf; -+ unsigned short picture_width; -+ unsigned short picture_height; -+ unsigned int modulo_time_base; /* number of 1s */ -+ unsigned int vop_time_increment; -+ VAEncPictureType picture_type; -+} VAEncPictureParameterBufferMPEG4; -+ -+ -+ -+/* Buffer functions */ -+ -+/* -+ * Creates a buffer for "num_elements" elements of "size" bytes and -+ * initalize with "data". -+ * if "data" is null, then the contents of the buffer data store -+ * are undefined. -+ * Basically there are two ways to get buffer data to the server side. One is -+ * to call vaCreateBuffer() with a non-null "data", which results the data being -+ * copied to the data store on the server side. A different method that -+ * eliminates this copy is to pass null as "data" when calling vaCreateBuffer(), -+ * and then use vaMapBuffer() to map the data store from the server side to the -+ * client address space for access. -+ * Note: image buffers are created by the library, not the client. Please see -+ * vaCreateImage on how image buffers are managed. -+ */ -+VAStatus vaCreateBuffer ( -+ VADisplay dpy, -+ VAContextID context, -+ VABufferType type, /* in */ -+ unsigned int size, /* in */ -+ unsigned int num_elements, /* in */ -+ void *data, /* in */ -+ VABufferID *buf_id /* out */ -+); -+ -+/* -+ * Convey to the server how many valid elements are in the buffer. -+ * e.g. if multiple slice parameters are being held in a single buffer, -+ * this will communicate to the server the number of slice parameters -+ * that are valid in the buffer. -+ */ -+VAStatus vaBufferSetNumElements ( -+ VADisplay dpy, -+ VABufferID buf_id, /* in */ -+ unsigned int num_elements /* in */ -+); -+ -+/* -+ * Map data store of the buffer into the client's address space -+ * vaCreateBuffer() needs to be called with "data" set to NULL before -+ * calling vaMapBuffer() -+ */ -+VAStatus vaMapBuffer ( -+ VADisplay dpy, -+ VABufferID buf_id, /* in */ -+ void **pbuf /* out */ -+); -+ -+/* -+ * After client making changes to a mapped data store, it needs to -+ * "Unmap" it to let the server know that the data is ready to be -+ * consumed by the server -+ */ -+VAStatus vaUnmapBuffer ( -+ VADisplay dpy, -+ VABufferID buf_id /* in */ -+); -+ -+/* -+ * After this call, the buffer is deleted and this buffer_id is no longer valid -+ * Only call this if the buffer is not going to be passed to vaRenderBuffer -+ */ -+VAStatus vaDestroyBuffer ( -+ VADisplay dpy, -+ VABufferID buffer_id -+); -+ -+/* -+Render (Decode) Pictures -+ -+A picture represents either a frame or a field. -+ -+The Begin/Render/End sequence sends the decode buffers to the server -+*/ -+ -+/* -+ * Get ready to decode a picture to a target surface -+ */ -+VAStatus vaBeginPicture ( -+ VADisplay dpy, -+ VAContextID context, -+ VASurfaceID render_target -+); -+ -+/* -+ * Send decode buffers to the server. -+ * Buffers are automatically destroyed afterwards -+ */ -+VAStatus vaRenderPicture ( -+ VADisplay dpy, -+ VAContextID context, -+ VABufferID *buffers, -+ int num_buffers -+); -+ -+/* -+ * Make the end of rendering for a picture. -+ * The server should start processing all pending operations for this -+ * surface. This call is non-blocking. The client can start another -+ * Begin/Render/End sequence on a different render target. -+ */ -+VAStatus vaEndPicture ( -+ VADisplay dpy, -+ VAContextID context -+); -+ -+/* -+ -+Synchronization -+ -+*/ -+ -+/* -+ * This function blocks until all pending operations on the render target -+ * have been completed. Upon return it is safe to use the render target for a -+ * different picture. -+ */ -+VAStatus vaSyncSurface ( -+ VADisplay dpy, -+ VASurfaceID render_target -+); -+ -+typedef enum -+{ -+ VASurfaceRendering = 1, /* Rendering in progress */ -+ VASurfaceDisplaying = 2, /* Displaying in progress (not safe to render into it) */ -+ /* this status is useful if surface is used as the source */ -+ /* of an overlay */ -+ VASurfaceReady = 4, /* not being rendered or displayed */ -+ VASurfaceSkipped = 8 /* Indicate a skipped frame during encode */ -+} VASurfaceStatus; -+ -+/* -+ * Find out any pending ops on the render target -+ */ -+VAStatus vaQuerySurfaceStatus ( -+ VADisplay dpy, -+ VASurfaceID render_target, -+ VASurfaceStatus *status /* out */ -+); -+ -+/* -+ * Images and Subpictures -+ * VAImage is used to either get the surface data to client memory, or -+ * to copy image data in client memory to a surface. -+ * Both images, subpictures and surfaces follow the same 2D coordinate system where origin -+ * is at the upper left corner with positive X to the right and positive Y down -+ */ -+#define VA_FOURCC(ch0, ch1, ch2, ch3) \ -+ ((unsigned long)(unsigned char) (ch0) | ((unsigned long)(unsigned char) (ch1) << 8) | \ -+ ((unsigned long)(unsigned char) (ch2) << 16) | ((unsigned long)(unsigned char) (ch3) << 24 )) -+ -+/* a few common FourCCs */ -+#define VA_FOURCC_NV12 0x3231564E -+#define VA_FOURCC_AI44 0x34344149 -+#define VA_FOURCC_RGBA 0x41424752 -+#define VA_FOURCC_UYVY 0x59565955 -+#define VA_FOURCC_YUY2 0x32595559 -+#define VA_FOURCC_AYUV 0x56555941 -+#define VA_FOURCC_NV11 0x3131564e -+#define VA_FOURCC_YV12 0x32315659 -+#define VA_FOURCC_P208 0x38303250 -+#define VA_FOURCC_IYUV 0x56555949 -+ -+/* byte order */ -+#define VA_LSB_FIRST 1 -+#define VA_MSB_FIRST 2 -+ -+typedef struct _VAImageFormat -+{ -+ unsigned int fourcc; -+ unsigned int byte_order; /* VA_LSB_FIRST, VA_MSB_FIRST */ -+ unsigned int bits_per_pixel; -+ /* for RGB formats */ -+ unsigned int depth; /* significant bits per pixel */ -+ unsigned int red_mask; -+ unsigned int green_mask; -+ unsigned int blue_mask; -+ unsigned int alpha_mask; -+} VAImageFormat; -+ -+typedef VAGenericID VAImageID; -+ -+typedef struct _VAImage -+{ -+ VAImageID image_id; /* uniquely identify this image */ -+ VAImageFormat format; -+ VABufferID buf; /* image data buffer */ -+ /* -+ * Image data will be stored in a buffer of type VAImageBufferType to facilitate -+ * data store on the server side for optimal performance. The buffer will be -+ * created by the CreateImage function, and proper storage allocated based on the image -+ * size and format. This buffer is managed by the library implementation, and -+ * accessed by the client through the buffer Map/Unmap functions. -+ */ -+ unsigned short width; -+ unsigned short height; -+ unsigned int data_size; -+ unsigned int num_planes; /* can not be greater than 3 */ -+ /* -+ * An array indicating the scanline pitch in bytes for each plane. -+ * Each plane may have a different pitch. Maximum 3 planes for planar formats -+ */ -+ unsigned int pitches[3]; -+ /* -+ * An array indicating the byte offset from the beginning of the image data -+ * to the start of each plane. -+ */ -+ unsigned int offsets[3]; -+ -+ /* The following fields are only needed for paletted formats */ -+ int num_palette_entries; /* set to zero for non-palette images */ -+ /* -+ * Each component is one byte and entry_bytes indicates the number of components in -+ * each entry (eg. 3 for YUV palette entries). set to zero for non-palette images -+ */ -+ int entry_bytes; -+ /* -+ * An array of ascii characters describing the order of the components within the bytes. -+ * Only entry_bytes characters of the string are used. -+ */ -+ char component_order[4]; -+} VAImage; -+ -+/* Get maximum number of image formats supported by the implementation */ -+int vaMaxNumImageFormats ( -+ VADisplay dpy -+); -+ -+/* -+ * Query supported image formats -+ * The caller must provide a "format_list" array that can hold at -+ * least vaMaxNumImageFormats() entries. The actual number of formats -+ * returned in "format_list" is returned in "num_formats". -+ */ -+VAStatus vaQueryImageFormats ( -+ VADisplay dpy, -+ VAImageFormat *format_list, /* out */ -+ int *num_formats /* out */ -+); -+ -+/* -+ * Create a VAImage structure -+ * The width and height fields returned in the VAImage structure may get -+ * enlarged for some YUV formats. Upon return from this function, -+ * image->buf has been created and proper storage allocated by the library. -+ * The client can access the image through the Map/Unmap calls. -+ */ -+VAStatus vaCreateImage ( -+ VADisplay dpy, -+ VAImageFormat *format, -+ int width, -+ int height, -+ VAImage *image /* out */ -+); -+ -+/* -+ * Should call DestroyImage before destroying the surface it is bound to -+ */ -+VAStatus vaDestroyImage ( -+ VADisplay dpy, -+ VAImageID image -+); -+ -+VAStatus vaSetImagePalette ( -+ VADisplay dpy, -+ VAImageID image, -+ /* -+ * pointer to an array holding the palette data. The size of the array is -+ * num_palette_entries * entry_bytes in size. The order of the components -+ * in the palette is described by the component_order in VAImage struct -+ */ -+ unsigned char *palette -+); -+ -+/* -+ * Retrive surface data into a VAImage -+ * Image must be in a format supported by the implementation -+ */ -+VAStatus vaGetImage ( -+ VADisplay dpy, -+ VASurfaceID surface, -+ int x, /* coordinates of the upper left source pixel */ -+ int y, -+ unsigned int width, /* width and height of the region */ -+ unsigned int height, -+ VAImageID image -+); -+ -+/* -+ * Copy data from a VAImage to a surface -+ * Image must be in a format supported by the implementation -+ * Returns a VA_STATUS_ERROR_SURFACE_BUSY if the surface -+ * shouldn't be rendered into when this is called -+ */ -+VAStatus vaPutImage ( -+ VADisplay dpy, -+ VASurfaceID surface, -+ VAImageID image, -+ int src_x, -+ int src_y, -+ unsigned int src_width, -+ unsigned int src_height, -+ int dest_x, -+ int dest_y, -+ unsigned int dest_width, -+ unsigned int dest_height -+); -+ -+/* -+ * Derive an VAImage from an existing surface. -+ * This interface will derive a VAImage and corresponding image buffer from -+ * an existing VA Surface. The image buffer can then be mapped/unmapped for -+ * direct CPU access. This operation is only possible on implementations with -+ * direct rendering capabilities and internal surface formats that can be -+ * represented with a VAImage. When the operation is not possible this interface -+ * will return VA_STATUS_ERROR_OPERATION_FAILED. Clients should then fall back -+ * to using vaCreateImage + vaPutImage to accomplish the same task in an -+ * indirect manner. -+ * -+ * Implementations should only return success when the resulting image buffer -+ * would be useable with vaMap/Unmap. -+ * -+ * When directly accessing a surface special care must be taken to insure -+ * proper synchronization with the graphics hardware. Clients should call -+ * vaQuerySurfaceStatus to insure that a surface is not the target of concurrent -+ * rendering or currently being displayed by an overlay. -+ * -+ * Additionally nothing about the contents of a surface should be assumed -+ * following a vaPutSurface. Implementations are free to modify the surface for -+ * scaling or subpicture blending within a call to vaPutImage. -+ * -+ * Calls to vaPutImage or vaGetImage using the same surface from which the image -+ * has been derived will return VA_STATUS_ERROR_SURFACE_BUSY. vaPutImage or -+ * vaGetImage with other surfaces is supported. -+ * -+ * An image created with vaDeriveImage should be freed with vaDestroyImage. The -+ * image and image buffer structures will be destroyed; however, the underlying -+ * surface will remain unchanged until freed with vaDestroySurfaces. -+ */ -+VAStatus vaDeriveImage ( -+ VADisplay dpy, -+ VASurfaceID surface, -+ VAImage *image /* out */ -+); -+ -+/* -+ * Subpictures -+ * Subpicture is a special type of image that can be blended -+ * with a surface during vaPutSurface(). Subpicture can be used to render -+ * DVD sub-titles or closed captioning text etc. -+ */ -+ -+typedef VAGenericID VASubpictureID; -+ -+/* Get maximum number of subpicture formats supported by the implementation */ -+int vaMaxNumSubpictureFormats ( -+ VADisplay dpy -+); -+ -+/* flags for subpictures */ -+#define VA_SUBPICTURE_CHROMA_KEYING 0x0001 -+#define VA_SUBPICTURE_GLOBAL_ALPHA 0x0002 -+/* -+ * Query supported subpicture formats -+ * The caller must provide a "format_list" array that can hold at -+ * least vaMaxNumSubpictureFormats() entries. The flags arrary holds the flag -+ * for each format to indicate additional capabilities for that format. The actual -+ * number of formats returned in "format_list" is returned in "num_formats". -+ * flags: returned value to indicate addtional capabilities -+ * VA_SUBPICTURE_CHROMA_KEYING - supports chroma-keying -+ * VA_SUBPICTURE_GLOBAL_ALPHA - supports global alpha -+ */ -+VAStatus vaQuerySubpictureFormats ( -+ VADisplay dpy, -+ VAImageFormat *format_list, /* out */ -+ unsigned int *flags, /* out */ -+ unsigned int *num_formats /* out */ -+); -+ -+/* -+ * Subpictures are created with an image associated. -+ */ -+VAStatus vaCreateSubpicture ( -+ VADisplay dpy, -+ VAImageID image, -+ VASubpictureID *subpicture /* out */ -+); -+ -+/* -+ * Destroy the subpicture before destroying the image it is assocated to -+ */ -+VAStatus vaDestroySubpicture ( -+ VADisplay dpy, -+ VASubpictureID subpicture -+); -+ -+/* -+ * Bind an image to the subpicture. This image will now be associated with -+ * the subpicture instead of the one at creation. -+ */ -+VAStatus vaSetSubpictureImage ( -+ VADisplay dpy, -+ VASubpictureID subpicture, -+ VAImageID image -+); -+ -+/* -+ * If chromakey is enabled, then the area where the source value falls within -+ * the chromakey [min, max] range is transparent -+ * The chromakey component format is the following: -+ * For RGB: [0:7] Red [8:15] Blue [16:23] Green -+ * For YUV: [0:7] V [8:15] U [16:23] Y -+ * The chromakey mask can be used to mask out certain components for chromakey -+ * comparision -+ */ -+VAStatus vaSetSubpictureChromakey ( -+ VADisplay dpy, -+ VASubpictureID subpicture, -+ unsigned int chromakey_min, -+ unsigned int chromakey_max, -+ unsigned int chromakey_mask -+); -+ -+/* -+ * Global alpha value is between 0 and 1. A value of 1 means fully opaque and -+ * a value of 0 means fully transparent. If per-pixel alpha is also specified then -+ * the overall alpha is per-pixel alpha multiplied by the global alpha -+ */ -+VAStatus vaSetSubpictureGlobalAlpha ( -+ VADisplay dpy, -+ VASubpictureID subpicture, -+ float global_alpha -+); -+ -+/* -+ * vaAssociateSubpicture associates the subpicture with target_surfaces. -+ * It defines the region mapping between the subpicture and the target -+ * surfaces through source and destination rectangles (with the same width and height). -+ * Both will be displayed at the next call to vaPutSurface. Additional -+ * associations before the call to vaPutSurface simply overrides the association. -+ */ -+VAStatus vaAssociateSubpicture ( -+ VADisplay dpy, -+ VASubpictureID subpicture, -+ VASurfaceID *target_surfaces, -+ int num_surfaces, -+ short src_x, /* upper left offset in subpicture */ -+ short src_y, -+ unsigned short src_width, -+ unsigned short src_height, -+ short dest_x, /* upper left offset in surface */ -+ short dest_y, -+ unsigned short dest_width, -+ unsigned short dest_height, -+ /* -+ * whether to enable chroma-keying or global-alpha -+ * see VA_SUBPICTURE_XXX values -+ */ -+ unsigned int flags -+); -+ -+/* -+ * vaDeassociateSubpicture removes the association of the subpicture with target_surfaces. -+ */ -+VAStatus vaDeassociateSubpicture ( -+ VADisplay dpy, -+ VASubpictureID subpicture, -+ VASurfaceID *target_surfaces, -+ int num_surfaces -+); -+ -+typedef struct _VARectangle -+{ -+ short x; -+ short y; -+ unsigned short width; -+ unsigned short height; -+} VARectangle; -+ -+/* -+ * Display attributes -+ * Display attributes are used to control things such as contrast, hue, saturation, -+ * brightness etc. in the rendering process. The application can query what -+ * attributes are supported by the driver, and then set the appropriate attributes -+ * before calling vaPutSurface() -+ */ -+ -+/* Currently defined display attribute types */ -+typedef enum -+{ -+ VADisplayAttribBrightness = 0, -+ VADisplayAttribContrast = 1, -+ VADisplayAttribHue = 2, -+ VADisplayAttribSaturation = 3, -+ /* client can specifiy a background color for the target window */ -+ VADisplayAttribBackgroundColor = 4, -+ /* -+ * this is a gettable only attribute. For some implementations that use the -+ * hardware overlay, after PutSurface is called, the surface can not be -+ * re-used until after the subsequent PutSurface call. If this is the case -+ * then the value for this attribute will be set to 1 so that the client -+ * will not attempt to re-use the surface right after returning from a call -+ * to PutSurface. -+ */ -+ VADisplayAttribDirectSurface = 5, -+} VADisplayAttribType; -+ -+/* flags for VADisplayAttribute */ -+#define VA_DISPLAY_ATTRIB_NOT_SUPPORTED 0x0000 -+#define VA_DISPLAY_ATTRIB_GETTABLE 0x0001 -+#define VA_DISPLAY_ATTRIB_SETTABLE 0x0002 -+ -+typedef struct _VADisplayAttribute -+{ -+ VADisplayAttribType type; -+ int min_value; -+ int max_value; -+ int value; /* used by the set/get attribute functions */ -+/* flags can be VA_DISPLAY_ATTRIB_GETTABLE or VA_DISPLAY_ATTRIB_SETTABLE or OR'd together */ -+ unsigned int flags; -+} VADisplayAttribute; -+ -+/* Get maximum number of display attributs supported by the implementation */ -+int vaMaxNumDisplayAttributes ( -+ VADisplay dpy -+); -+ -+/* -+ * Query display attributes -+ * The caller must provide a "attr_list" array that can hold at -+ * least vaMaxNumDisplayAttributes() entries. The actual number of attributes -+ * returned in "attr_list" is returned in "num_attributes". -+ */ -+VAStatus vaQueryDisplayAttributes ( -+ VADisplay dpy, -+ VADisplayAttribute *attr_list, /* out */ -+ int *num_attributes /* out */ -+); -+ -+/* -+ * Get display attributes -+ * This function returns the current attribute values in "attr_list". -+ * Only attributes returned with VA_DISPLAY_ATTRIB_GETTABLE set in the "flags" field -+ * from vaQueryDisplayAttributes() can have their values retrieved. -+ */ -+VAStatus vaGetDisplayAttributes ( -+ VADisplay dpy, -+ VADisplayAttribute *attr_list, /* in/out */ -+ int num_attributes -+); -+ -+/* -+ * Set display attributes -+ * Only attributes returned with VA_DISPLAY_ATTRIB_SETTABLE set in the "flags" field -+ * from vaQueryDisplayAttributes() can be set. If the attribute is not settable or -+ * the value is out of range, the function returns VA_STATUS_ERROR_ATTR_NOT_SUPPORTED -+ */ -+VAStatus vaSetDisplayAttributes ( -+ VADisplay dpy, -+ VADisplayAttribute *attr_list, -+ int num_attributes -+); -+ -+#ifdef __cplusplus -+} -+#endif -+ -+#endif /* _VA_H_ */ -diff -Naur libva-0.31.0/src/va_version.h.in libva-0.31.0.patch/src/va_version.h.in ---- libva-0.31.0/src/va_version.h.in 2009-09-10 17:18:49.000000000 +0200 -+++ libva-0.31.0.patch/src/va_version.h.in 2009-12-15 13:44:59.071448443 +0100 -@@ -47,6 +47,13 @@ - #define VA_MICRO_VERSION (@LIBVA_MICRO_VERSION@) - - /** -+ * VA_SDS_VERSION: -+ * -+ * The version of the SDS API extensions to the VA library -+ */ -+#define VA_SDS_VERSION (@LIBVA_SDS_VERSION@) -+ -+/** - * VA_VERSION: - * - * The full version of the VA library, like 1.2.3 -@@ -59,7 +66,7 @@ - * The full version of the VA library, in string form (suited for - * string concatenation) - */ --#define VA_VERSION_S "@LIBVA_VERSION@" -+#define VA_VERSION_S "@LIBVA_VERSION@-sds@LIBVA_SDS_VERSION@" - - /** - * VA_VERSION_HEX: -diff -Naur libva-0.31.0/src/x11/dri1_util.c libva-0.31.0.patch/src/x11/dri1_util.c ---- libva-0.31.0/src/x11/dri1_util.c 2009-09-22 15:17:03.000000000 +0200 -+++ libva-0.31.0.patch/src/x11/dri1_util.c 2009-12-15 13:44:45.454354628 +0100 -@@ -1,10 +1,12 @@ -+#include "config.h" -+#include - #include - #include - #include - #include - #include - --#include -+#include "libdrm_glue.h" - - #include "X11/Xlib.h" - #include "va.h" -@@ -21,6 +23,75 @@ - int height; - }; - -+static int -+firegl_drmOpenMinor(int minor) -+{ -+ char buf[64]; -+ int fd; -+ -+ sprintf(buf, "/dev/ati/card%d", minor); -+ if ((fd = open(buf, O_RDWR, 0)) >= 0) -+ return fd; -+ return -1; -+} -+ -+static int -+firegl_drmOpenByBusID(const char *busid) -+{ -+ int i, fd; -+ drmSetVersion sv; -+ const char *buf; -+ -+ for (i = 0; i < DRM_MAX_MINOR; i++) { -+ if ((fd = firegl_drmOpenMinor(i)) < 0) -+ continue; -+ sv.drm_di_major = 1; -+ sv.drm_di_minor = 1; -+ sv.drm_dd_major = -1; -+ sv.drm_dd_minor = -1; -+ libdrm_drmSetInterfaceVersion(fd, &sv); -+ buf = libdrm_drmGetBusid(fd); -+ if (buf && strcasecmp(buf, busid) == 0) { /* XXX: drmMatchBusID() */ -+ libdrm_drmFreeBusid(buf); -+ return fd; -+ } -+ if (buf) -+ libdrm_drmFreeBusid(buf); -+ close(fd); -+ } -+ return -1; -+} -+ -+static int -+drm_open_once(struct dri_state *dri_state, const char *BusID, int *newlyopened) -+{ -+ dri_state->driConnectedFlag = VA_NONE; -+ dri_state->fd = libdrm_drmOpenOnce(NULL, BusID, newlyopened); -+ if (dri_state->fd < 0) { -+ dri_state->fd = firegl_drmOpenByBusID(BusID); -+ if (dri_state->fd >= 0) { -+ *newlyopened = 1; -+ dri_state->driConnectedFlag |= VA_DRI_AMD; -+ } -+ } -+ return dri_state->fd; -+} -+ -+static void -+drm_close_once(struct dri_state *dri_state) -+{ -+ /* XXX: dri_state->close() doesn't seem to be called, thus this -+ function is never called either */ -+ if (dri_state->fd < 0) -+ return; -+ if (dri_state->driConnectedFlag & VA_DRI_AMD) -+ close(dri_state->fd); -+ else -+ libdrm_drmCloseOnce(dri_state->fd); -+ dri_state->fd = -1; -+ dri_state->driConnectedFlag = VA_NONE; -+} -+ - static struct dri_drawable * - dri1CreateDrawable(VADriverContextP ctx, XID x_drawable) - { -@@ -64,9 +135,9 @@ - free_drawable_hashtable(ctx); - VA_DRIDestroyContext(ctx->x11_dpy, ctx->x11_screen, dri_state->hwContextID); - assert(dri_state->pSAREA != MAP_FAILED); -- drmUnmap(dri_state->pSAREA, SAREA_MAX); -+ libdrm_drmUnmap(dri_state->pSAREA, SAREA_MAX); - assert(dri_state->fd >= 0); -- drmCloseOnce(dri_state->fd); -+ drm_close_once(dri_state); - VA_DRICloseConnection(ctx->x11_dpy, ctx->x11_screen); - } - -@@ -104,21 +175,20 @@ - &dri_state->hSAREA, &BusID)) - goto err_out0; - -- -- dri_state->fd = drmOpenOnce(NULL, BusID, &newlyopened); -+ drm_open_once(dri_state, BusID, &newlyopened); - XFree(BusID); - - if (dri_state->fd < 0) - goto err_out1; - - -- if (drmGetMagic(dri_state->fd, &magic)) -+ if (libdrm_drmGetMagic(dri_state->fd, &magic)) - goto err_out1; - - if (newlyopened && !VA_DRIAuthConnection(ctx->x11_dpy, ctx->x11_screen, magic)) - goto err_out1; - -- if (drmMap(dri_state->fd, dri_state->hSAREA, SAREA_MAX, &dri_state->pSAREA)) -+ if (libdrm_drmMap(dri_state->fd, dri_state->hSAREA, SAREA_MAX, &dri_state->pSAREA)) - goto err_out1; - - if (!VA_DRICreateContext(ctx->x11_dpy, ctx->x11_screen, -@@ -126,7 +196,8 @@ - &dri_state->hwContextID, &dri_state->hwContext)) - goto err_out1; - -- dri_state->driConnectedFlag = VA_DRI1; -+ dri_state->driConnectedFlag &= VA_DRI_AMD; /* clear flags but AMD bit */ -+ dri_state->driConnectedFlag |= VA_DRI1; - dri_state->createDrawable = dri1CreateDrawable; - dri_state->destroyDrawable = dri1DestroyDrawable; - dri_state->swapBuffer = dri1SwapBuffer; -@@ -137,10 +208,10 @@ - - err_out1: - if (dri_state->pSAREA != MAP_FAILED) -- drmUnmap(dri_state->pSAREA, SAREA_MAX); -+ libdrm_drmUnmap(dri_state->pSAREA, SAREA_MAX); - - if (dri_state->fd >= 0) -- drmCloseOnce(dri_state->fd); -+ drm_close_once(dri_state); - - VA_DRICloseConnection(ctx->x11_dpy, ctx->x11_screen); - -diff -Naur libva-0.31.0/src/x11/dri1_util.c.orig libva-0.31.0.patch/src/x11/dri1_util.c.orig -diff -Naur libva-0.31.0/src/x11/dri2_util.c libva-0.31.0.patch/src/x11/dri2_util.c ---- libva-0.31.0/src/x11/dri2_util.c 2009-09-10 17:18:49.000000000 +0200 -+++ libva-0.31.0.patch/src/x11/dri2_util.c 2009-12-15 13:44:45.454354628 +0100 -@@ -3,7 +3,7 @@ - #include - #include - --#include -+#include "libdrm_glue.h" - - #include - #include -@@ -166,7 +166,7 @@ - if (dri_state->fd < 0) - goto err_out; - -- if (drmGetMagic(dri_state->fd, &magic)) -+ if (libdrm_drmGetMagic(dri_state->fd, &magic)) - goto err_out; - - if (!VA_DRI2Authenticate(ctx->x11_dpy, RootWindow(ctx->x11_dpy, ctx->x11_screen), -diff -Naur libva-0.31.0/src/x11/libdrm_glue.c libva-0.31.0.patch/src/x11/libdrm_glue.c ---- libva-0.31.0/src/x11/libdrm_glue.c 1970-01-01 01:00:00.000000000 +0100 -+++ libva-0.31.0.patch/src/x11/libdrm_glue.c 2009-12-15 13:44:45.456448314 +0100 -@@ -0,0 +1,208 @@ -+/* -+ * Copyright (C) 2009 Splitted-Desktop Systems. All Rights Reserved. -+ * -+ * 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, sub license, 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 PRECISION INSIGHT AND/OR ITS 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. -+ */ -+ -+#define _GNU_SOURCE 1 -+#include "libdrm_glue.h" -+#include -+#include -+#include -+#include -+ -+#define LOAD_FUNC_(NAME, RET, ARGS, FALLBACK) \ -+ static RET (*lib_##NAME) ARGS; \ -+ if (lib_##NAME == NULL) { \ -+ lib_##NAME = libdrm_symbol(#NAME); \ -+ if (!lib_##NAME) \ -+ lib_##NAME = FALLBACK; \ -+ } \ -+ assert(lib_##NAME != NULL) -+ -+#define LOAD_FUNC(NAME, RET, ARGS) \ -+ LOAD_FUNC_(NAME, RET, ARGS, NULL) -+ -+static void *libdrm_handle; -+static int libdrm_handle_ok = -1; -+ -+static inline void *libdrm_symbol(const char *name) -+{ -+ if (!libdrm_open()) -+ return NULL; -+ return dlsym(libdrm_handle, name); -+} -+ -+int libdrm_open(void) -+{ -+ if (libdrm_handle_ok < 0) { -+ libdrm_handle = dlopen("libdrm.so.2", RTLD_LOCAL|RTLD_LAZY); -+ libdrm_handle_ok = libdrm_handle != NULL; -+ } -+ assert(libdrm_handle); -+ return libdrm_handle_ok; -+} -+ -+void libdrm_close(void) -+{ -+ if (libdrm_handle) -+ dlclose(libdrm_handle); -+} -+ -+// Default drmOpenOnce() and drmCloseOnce() implementations based on current GIT -+#define DRM_MAX_FDS 16 -+static struct { -+ char *BusID; -+ int fd; -+ int refcount; -+} connection[DRM_MAX_FDS]; -+ -+static int nr_fds = 0; -+ -+// Default implementation for drmOpenOnce() if none exists in the library -+static int -+libdrm_default_drmOpenOnce(void *unused, const char *BusID, int *newlyopened) -+{ -+ int i; -+ int fd; -+ -+ for (i = 0; i < nr_fds; i++) -+ if (strcmp(BusID, connection[i].BusID) == 0) { -+ connection[i].refcount++; -+ *newlyopened = 0; -+ return connection[i].fd; -+ } -+ -+ fd = libdrm_drmOpen(unused, BusID); -+ if (fd <= 0 || nr_fds == DRM_MAX_FDS) -+ return fd; -+ -+ connection[nr_fds].BusID = strdup(BusID); -+ connection[nr_fds].fd = fd; -+ connection[nr_fds].refcount = 1; -+ *newlyopened = 1; -+ -+ if (0) -+ fprintf(stderr, "saved connection %d for %s %d\n", -+ nr_fds, connection[nr_fds].BusID, -+ strcmp(BusID, connection[nr_fds].BusID)); -+ nr_fds++; -+ return fd; -+} -+ -+// Default implementation for drmCloseOnce() if none exists in the library -+static void libdrm_default_drmCloseOnce(int fd) -+{ -+ int i; -+ -+ for (i = 0; i < nr_fds; i++) { -+ if (fd == connection[i].fd) { -+ if (--connection[i].refcount == 0) { -+ libdrm_drmClose(connection[i].fd); -+ free(connection[i].BusID); -+ if (i < --nr_fds) -+ connection[i] = connection[nr_fds]; -+ return; -+ } -+ } -+ } -+} -+ -+// Determine whether the DRM kernel driver has been loaded -+int libdrm_drmAvailable(void) -+{ -+ LOAD_FUNC(drmAvailable, int, (void)); -+ return lib_drmAvailable(); -+} -+ -+// Open the DRM device -+int libdrm_drmOpen(const char *name, const char *busid) -+{ -+ LOAD_FUNC(drmOpen, int, (const char *, const char *)); -+ return lib_drmOpen(name, busid); -+} -+ -+// Close the device -+int libdrm_drmClose(int fd) -+{ -+ LOAD_FUNC(drmClose, int, (int)); -+ return lib_drmClose(fd); -+} -+ -+// Open the DRM device (re-use an existing connection) -+int libdrm_drmOpenOnce(void *unused, const char *BusID, int *newlyopened) -+{ -+ LOAD_FUNC_(drmOpenOnce, int, (void *, const char *, int *), -+ libdrm_default_drmOpenOnce); -+ return lib_drmOpenOnce(unused, BusID, newlyopened); -+} -+ -+// Close the device (unref an existing connection prior to actually closing it) -+void libdrm_drmCloseOnce(int fd) -+{ -+ LOAD_FUNC_(drmCloseOnce, void, (int), libdrm_default_drmCloseOnce); -+ lib_drmCloseOnce(fd); -+} -+ -+// DRM connection cookie -+int libdrm_drmGetMagic(int fd, drm_magic_t * magic) -+{ -+ LOAD_FUNC(drmGetMagic, int, (int, drm_magic_t *)); -+ return lib_drmGetMagic(fd, magic); -+} -+ -+// Issue a set-version ioctl -+int libdrm_drmSetInterfaceVersion(int fd, drmSetVersion *version) -+{ -+ LOAD_FUNC(drmSetInterfaceVersion, int, (int, drmSetVersion *)); -+ return lib_drmSetInterfaceVersion(fd, version); -+} -+ -+// Get the bus ID of the device -+char *libdrm_drmGetBusid(int fd) -+{ -+ LOAD_FUNC(drmGetBusid, char *, (int)); -+ return lib_drmGetBusid(fd); -+} -+ -+// Free the bus ID information -+void libdrm_drmFreeBusid(const char *busid) -+{ -+ LOAD_FUNC(drmFreeBusid, void, (const char *)); -+ lib_drmFreeBusid(busid); -+} -+ -+// Map a region of memory -+int libdrm_drmMap(int fd, -+ drm_handle_t handle, -+ drmSize size, -+ drmAddressPtr address) -+{ -+ LOAD_FUNC(drmMap, int, (int, drm_handle_t, drmSize, drmAddressPtr)); -+ return lib_drmMap(fd, handle, size, address); -+} -+ -+// Unmap mappings obtained with drmMap() -+int libdrm_drmUnmap(drmAddress address, drmSize size) -+{ -+ LOAD_FUNC(drmUnmap, int, (drmAddress, drmSize)); -+ return lib_drmUnmap(address, size); -+} -diff -Naur libva-0.31.0/src/x11/libdrm_glue.h libva-0.31.0.patch/src/x11/libdrm_glue.h ---- libva-0.31.0/src/x11/libdrm_glue.h 1970-01-01 01:00:00.000000000 +0100 -+++ libva-0.31.0.patch/src/x11/libdrm_glue.h 2009-12-15 13:44:45.456448314 +0100 -@@ -0,0 +1,73 @@ -+/* -+ * Copyright (C) 2009 Splitted-Desktop Systems. All Rights Reserved. -+ * -+ * 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, sub license, 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 PRECISION INSIGHT AND/OR ITS 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 LIBDRM_GLUE_H -+#define LIBDRM_GLUE_H -+ -+#include "config.h" -+#include -+ -+int libdrm_open(void) -+ ATTRIBUTE_HIDDEN; -+ -+void libdrm_close(void) -+ ATTRIBUTE_HIDDEN; -+ -+int libdrm_drmAvailable(void) -+ ATTRIBUTE_HIDDEN; -+ -+int libdrm_drmOpen(const char *name, const char *busid) -+ ATTRIBUTE_HIDDEN; -+ -+int libdrm_drmClose(int fd) -+ ATTRIBUTE_HIDDEN; -+ -+int libdrm_drmOpenOnce(void *unused, const char *BusID, int *newlyopened) -+ ATTRIBUTE_HIDDEN; -+ -+void libdrm_drmCloseOnce(int fd) -+ ATTRIBUTE_HIDDEN; -+ -+int libdrm_drmGetMagic(int fd, drm_magic_t * magic) -+ ATTRIBUTE_HIDDEN; -+ -+int libdrm_drmSetInterfaceVersion(int fd, drmSetVersion *version) -+ ATTRIBUTE_HIDDEN; -+ -+char *libdrm_drmGetBusid(int fd) -+ ATTRIBUTE_HIDDEN; -+ -+void libdrm_drmFreeBusid(const char *busid) -+ ATTRIBUTE_HIDDEN; -+ -+int libdrm_drmMap(int fd, -+ drm_handle_t handle, -+ drmSize size, -+ drmAddressPtr address) -+ ATTRIBUTE_HIDDEN; -+ -+int libdrm_drmUnmap(drmAddress address, drmSize size) -+ ATTRIBUTE_HIDDEN; -+ -+#endif /* LIBDRM_GLUE_H */ -diff -Naur libva-0.31.0/src/x11/Makefile.am libva-0.31.0.patch/src/x11/Makefile.am ---- libva-0.31.0/src/x11/Makefile.am 2009-09-10 17:18:49.000000000 +0200 -+++ libva-0.31.0.patch/src/x11/Makefile.am 2009-12-15 13:44:52.000328238 +0100 -@@ -25,6 +25,23 @@ - libva_x11includedir = ${includedir}/va - libva_x11include_HEADERS = va_x11.h va_dri.h va_dri2.h va_dricommon.h - --libva_x11_la_SOURCES = va_x11.c va_dri.c va_dri2.c va_dricommon.c dri2_util.c dri1_util.c va_nvctrl.c -+libva_x11_la_SOURCES = \ -+ dri1_util.c \ -+ dri2_util.c \ -+ libdrm_glue.c \ -+ va_dri.c \ -+ va_dri2.c \ -+ va_dricommon.c \ -+ va_fglext.c \ -+ va_nvctrl.c \ -+ va_x11.c \ -+ $(NULL) - --EXTRA_DIST = va_dristr.h va_dri2str.h va_dri2tokens.h va_nvctrl.h -+EXTRA_DIST = \ -+ libdrm_glue.h \ -+ va_dri2str.h \ -+ va_dri2tokens.h \ -+ va_dristr.h \ -+ va_fglext.h \ -+ va_nvctrl.h \ -+ $(NULL) -diff -Naur libva-0.31.0/src/x11/Makefile.in libva-0.31.0.patch/src/x11/Makefile.in ---- libva-0.31.0/src/x11/Makefile.in 2009-09-10 17:18:49.000000000 +0200 -+++ libva-0.31.0.patch/src/x11/Makefile.in 2009-12-15 13:51:56.296446665 +0100 -@@ -1,8 +1,9 @@ --# Makefile.in generated by automake 1.10.1 from Makefile.am. -+# Makefile.in generated by automake 1.11 from Makefile.am. - # @configure_input@ - - # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, --# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. -+# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -+# Inc. - # This Makefile.in is free software; the Free Software Foundation - # gives unlimited permission to copy and/or distribute it, - # with or without modifications, as long as this notice is preserved. -@@ -37,8 +38,9 @@ - - VPATH = @srcdir@ - pkgdatadir = $(datadir)/@PACKAGE@ --pkglibdir = $(libdir)/@PACKAGE@ - pkgincludedir = $(includedir)/@PACKAGE@ -+pkglibdir = $(libdir)/@PACKAGE@ -+pkglibexecdir = $(libexecdir)/@PACKAGE@ - am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd - install_sh_DATA = $(install_sh) -c -m 644 - install_sh_PROGRAM = $(install_sh) -c -@@ -57,20 +59,26 @@ - DIST_COMMON = $(libva_x11include_HEADERS) $(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)/m4/libtool.m4 \ -+ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ -+ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ -+ $(top_srcdir)/configure.ac - am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) - mkinstalldirs = $(install_sh) -d - CONFIG_HEADER = $(top_builddir)/config.h - CONFIG_CLEAN_FILES = -+CONFIG_CLEAN_VPATH_FILES = - LTLIBRARIES = $(noinst_LTLIBRARIES) - libva_x11_la_LIBADD = --am_libva_x11_la_OBJECTS = va_x11.lo va_dri.lo va_dri2.lo \ -- va_dricommon.lo dri2_util.lo dri1_util.lo va_nvctrl.lo -+am_libva_x11_la_OBJECTS = dri1_util.lo dri2_util.lo libdrm_glue.lo \ -+ va_dri.lo va_dri2.lo va_dricommon.lo va_fglext.lo va_nvctrl.lo \ -+ va_x11.lo - libva_x11_la_OBJECTS = $(am_libva_x11_la_OBJECTS) - DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) - depcomp = $(SHELL) $(top_srcdir)/depcomp - am__depfiles_maybe = depfiles -+am__mv = mv -f - COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ - $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) - LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ -@@ -87,9 +95,23 @@ - $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ - *) f=$$p;; \ - esac; --am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; -+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; -+am__install_max = 40 -+am__nobase_strip_setup = \ -+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` -+am__nobase_strip = \ -+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" -+am__nobase_list = $(am__nobase_strip_setup); \ -+ for p in $$list; do echo "$$p $$p"; done | \ -+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ -+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ -+ if (++n[$$2] == $(am__install_max)) \ -+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ -+ END { for (dir in files) print dir, files[dir] }' -+am__base_list = \ -+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ -+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' - am__installdirs = "$(DESTDIR)$(libva_x11includedir)" --libva_x11includeHEADERS_INSTALL = $(INSTALL_HEADER) - HEADERS = $(libva_x11include_HEADERS) - ETAGS = etags - CTAGS = ctags -@@ -106,38 +128,35 @@ - CFLAGS = @CFLAGS@ - CPP = @CPP@ - CPPFLAGS = @CPPFLAGS@ --CXX = @CXX@ --CXXCPP = @CXXCPP@ --CXXDEPMODE = @CXXDEPMODE@ --CXXFLAGS = @CXXFLAGS@ - CYGPATH_W = @CYGPATH_W@ - DEFS = @DEFS@ - DEPDIR = @DEPDIR@ - DRM_CFLAGS = @DRM_CFLAGS@ - DRM_LIBS = @DRM_LIBS@ - DSYMUTIL = @DSYMUTIL@ --ECHO = @ECHO@ -+DUMPBIN = @DUMPBIN@ - ECHO_C = @ECHO_C@ - ECHO_N = @ECHO_N@ - ECHO_T = @ECHO_T@ - EGREP = @EGREP@ - EXEEXT = @EXEEXT@ --F77 = @F77@ --FFLAGS = @FFLAGS@ -+FGREP = @FGREP@ - GEN4ASM_CFLAGS = @GEN4ASM_CFLAGS@ - GEN4ASM_LIBS = @GEN4ASM_LIBS@ -+GL_DEPS_CFLAGS = @GL_DEPS_CFLAGS@ -+GL_DEPS_LIBS = @GL_DEPS_LIBS@ - GREP = @GREP@ - INSTALL = @INSTALL@ - INSTALL_DATA = @INSTALL_DATA@ - INSTALL_PROGRAM = @INSTALL_PROGRAM@ - INSTALL_SCRIPT = @INSTALL_SCRIPT@ - INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -+LD = @LD@ - LDFLAGS = @LDFLAGS@ - LIBOBJS = @LIBOBJS@ - LIBS = @LIBS@ - LIBTOOL = @LIBTOOL@ - LIBVA_CFLAGS = @LIBVA_CFLAGS@ --LIBVA_DISPLAY = @LIBVA_DISPLAY@ - LIBVA_DRIVERS_PATH = @LIBVA_DRIVERS_PATH@ - LIBVA_LIBS = @LIBVA_LIBS@ - LIBVA_LT_LDFLAGS = @LIBVA_LT_LDFLAGS@ -@@ -145,13 +164,19 @@ - LIBVA_MAJOR_VERSION = @LIBVA_MAJOR_VERSION@ - LIBVA_MICRO_VERSION = @LIBVA_MICRO_VERSION@ - LIBVA_MINOR_VERSION = @LIBVA_MINOR_VERSION@ -+LIBVA_SDS_VERSION = @LIBVA_SDS_VERSION@ - LIBVA_VERSION = @LIBVA_VERSION@ -+LIPO = @LIPO@ - LN_S = @LN_S@ - LTLIBOBJS = @LTLIBOBJS@ - MAKEINFO = @MAKEINFO@ - MKDIR_P = @MKDIR_P@ -+NM = @NM@ - NMEDIT = @NMEDIT@ -+OBJDUMP = @OBJDUMP@ - OBJEXT = @OBJEXT@ -+OTOOL = @OTOOL@ -+OTOOL64 = @OTOOL64@ - PACKAGE = @PACKAGE@ - PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ - PACKAGE_NAME = @PACKAGE_NAME@ -@@ -177,8 +202,7 @@ - abs_top_builddir = @abs_top_builddir@ - abs_top_srcdir = @abs_top_srcdir@ - ac_ct_CC = @ac_ct_CC@ --ac_ct_CXX = @ac_ct_CXX@ --ac_ct_F77 = @ac_ct_F77@ -+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ - am__include = @am__include@ - am__leading_dot = @am__leading_dot@ - am__quote = @am__quote@ -@@ -211,6 +235,7 @@ - libvacorelib = @libvacorelib@ - localedir = @localedir@ - localstatedir = @localstatedir@ -+lt_ECHO = @lt_ECHO@ - mandir = @mandir@ - mkdir_p = @mkdir_p@ - oldincludedir = @oldincludedir@ -@@ -224,14 +249,34 @@ - srcdir = @srcdir@ - sysconfdir = @sysconfdir@ - target_alias = @target_alias@ -+top_build_prefix = @top_build_prefix@ - top_builddir = @top_builddir@ - top_srcdir = @top_srcdir@ - AM_CFLAGS = -DLINUX -DIN_LIBVA -I$(top_srcdir)/src $(DRM_CFLAGS) - noinst_LTLIBRARIES = libva_x11.la - libva_x11includedir = ${includedir}/va - libva_x11include_HEADERS = va_x11.h va_dri.h va_dri2.h va_dricommon.h --libva_x11_la_SOURCES = va_x11.c va_dri.c va_dri2.c va_dricommon.c dri2_util.c dri1_util.c va_nvctrl.c --EXTRA_DIST = va_dristr.h va_dri2str.h va_dri2tokens.h va_nvctrl.h -+libva_x11_la_SOURCES = \ -+ dri1_util.c \ -+ dri2_util.c \ -+ libdrm_glue.c \ -+ va_dri.c \ -+ va_dri2.c \ -+ va_dricommon.c \ -+ va_fglext.c \ -+ va_nvctrl.c \ -+ va_x11.c \ -+ $(NULL) -+ -+EXTRA_DIST = \ -+ libdrm_glue.h \ -+ va_dri2str.h \ -+ va_dri2tokens.h \ -+ va_dristr.h \ -+ va_fglext.h \ -+ va_nvctrl.h \ -+ $(NULL) -+ - all: all-am - - .SUFFIXES: -@@ -240,14 +285,14 @@ - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ -- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ -- && exit 0; \ -+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ -+ && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ -- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/x11/Makefile'; \ -- cd $(top_srcdir) && \ -- $(AUTOMAKE) --gnu src/x11/Makefile -+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/x11/Makefile'; \ -+ $(am__cd) $(top_srcdir) && \ -+ $(AUTOMAKE) --gnu src/x11/Makefile - .PRECIOUS: Makefile - Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ -@@ -265,6 +310,7 @@ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - $(ACLOCAL_M4): $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -+$(am__aclocal_m4_deps): - - clean-noinstLTLIBRARIES: - -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) -@@ -285,29 +331,31 @@ - - @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dri1_util.Plo@am__quote@ - @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dri2_util.Plo@am__quote@ -+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdrm_glue.Plo@am__quote@ - @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/va_dri.Plo@am__quote@ - @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/va_dri2.Plo@am__quote@ - @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/va_dricommon.Plo@am__quote@ -+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/va_fglext.Plo@am__quote@ - @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/va_nvctrl.Plo@am__quote@ - @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/va_x11.Plo@am__quote@ - - .c.o: - @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< --@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po - @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ - @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ - @am__fastdepCC_FALSE@ $(COMPILE) -c $< - - .c.obj: - @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` --@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po - @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ - @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ - @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` - - .c.lo: - @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< --@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo - @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ - @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ - @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< -@@ -320,34 +368,37 @@ - install-libva_x11includeHEADERS: $(libva_x11include_HEADERS) - @$(NORMAL_INSTALL) - test -z "$(libva_x11includedir)" || $(MKDIR_P) "$(DESTDIR)$(libva_x11includedir)" -- @list='$(libva_x11include_HEADERS)'; for p in $$list; do \ -+ @list='$(libva_x11include_HEADERS)'; test -n "$(libva_x11includedir)" || list=; \ -+ for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ -- f=$(am__strip_dir) \ -- echo " $(libva_x11includeHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(libva_x11includedir)/$$f'"; \ -- $(libva_x11includeHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(libva_x11includedir)/$$f"; \ -+ echo "$$d$$p"; \ -+ done | $(am__base_list) | \ -+ while read files; do \ -+ echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(libva_x11includedir)'"; \ -+ $(INSTALL_HEADER) $$files "$(DESTDIR)$(libva_x11includedir)" || exit $$?; \ - done - - uninstall-libva_x11includeHEADERS: - @$(NORMAL_UNINSTALL) -- @list='$(libva_x11include_HEADERS)'; for p in $$list; do \ -- f=$(am__strip_dir) \ -- echo " rm -f '$(DESTDIR)$(libva_x11includedir)/$$f'"; \ -- rm -f "$(DESTDIR)$(libva_x11includedir)/$$f"; \ -- done -+ @list='$(libva_x11include_HEADERS)'; test -n "$(libva_x11includedir)" || list=; \ -+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ -+ test -n "$$files" || exit 0; \ -+ echo " ( cd '$(DESTDIR)$(libva_x11includedir)' && rm -f" $$files ")"; \ -+ cd "$(DESTDIR)$(libva_x11includedir)" && rm -f $$files - - ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ -- $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \ -+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique - tags: TAGS - - TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) -- tags=; \ -+ set x; \ - here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ -@@ -355,29 +406,34 @@ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ -- if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ -+ shift; \ -+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ -- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ -- $$tags $$unique; \ -+ if test $$# -gt 0; then \ -+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ -+ "$$@" $$unique; \ -+ else \ -+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ -+ $$unique; \ -+ fi; \ - fi - ctags: CTAGS - CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) -- tags=; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ -- test -z "$(CTAGS_ARGS)$$tags$$unique" \ -+ test -z "$(CTAGS_ARGS)$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ -- $$tags $$unique -+ $$unique - - GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ -- && cd $(top_srcdir) \ -- && gtags -i $(GTAGS_ARGS) $$here -+ && $(am__cd) $(top_srcdir) \ -+ && gtags -i $(GTAGS_ARGS) "$$here" - - distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -@@ -398,13 +454,17 @@ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ -+ if test -d "$(distdir)/$$file"; then \ -+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ -+ fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ -- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ -+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ -+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ -- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ -+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ -- test -f $(distdir)/$$file \ -- || cp -p $$d/$$file $(distdir)/$$file \ -+ test -f "$(distdir)/$$file" \ -+ || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done -@@ -435,6 +495,7 @@ - - distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - - maintainer-clean-generic: - @echo "This command is intended for maintainers to use" -@@ -456,6 +517,8 @@ - - html: html-am - -+html-am: -+ - info: info-am - - info-am: -@@ -464,18 +527,28 @@ - - install-dvi: install-dvi-am - -+install-dvi-am: -+ - install-exec-am: - - install-html: install-html-am - -+install-html-am: -+ - install-info: install-info-am - -+install-info-am: -+ - install-man: - - install-pdf: install-pdf-am - -+install-pdf-am: -+ - install-ps: install-ps-am - -+install-ps-am: -+ - installcheck-am: - - maintainer-clean: maintainer-clean-am -@@ -514,6 +587,7 @@ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags uninstall uninstall-am uninstall-libva_x11includeHEADERS - -+ - # Tell versions [3.59,3.63) of GNU make to not export all variables. - # Otherwise a system limit (for SysV at least) may be exceeded. - .NOEXPORT: -diff -Naur libva-0.31.0/src/x11/va_dricommon.h libva-0.31.0.patch/src/x11/va_dricommon.h ---- libva-0.31.0/src/x11/va_dricommon.h 2009-07-06 12:44:10.000000000 +0200 -+++ libva-0.31.0.patch/src/x11/va_dricommon.h 2009-12-15 13:44:45.457448573 +0100 -@@ -13,7 +13,8 @@ - { - VA_NONE = 0, - VA_DRI1 = 1, -- VA_DRI2 = 2 -+ VA_DRI2 = 2, -+ VA_DRI_AMD = 4 /* AMD DRI implementation */ - }; - - union dri_buffer -diff -Naur libva-0.31.0/src/x11/va_fglext.c libva-0.31.0.patch/src/x11/va_fglext.c ---- libva-0.31.0/src/x11/va_fglext.c 1970-01-01 01:00:00.000000000 +0100 -+++ libva-0.31.0.patch/src/x11/va_fglext.c 2009-12-15 13:44:52.001353221 +0100 -@@ -0,0 +1,175 @@ -+/* -+ * Copyright (C) 2009 Splitted-Desktop Systems. All Rights Reserved. -+ * -+ * 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, sub license, 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 PRECISION INSIGHT AND/OR ITS 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. -+ */ -+ -+#define _GNU_SOURCE 1 -+#include -+ -+#define NEED_REPLIES -+#include -+#include -+#include -+#include -+#include -+#include "va_fglext.h" -+ -+#define ATIFGL_EXTENSION_NAME "ATIFGLEXTENSION" -+#define ATIFGL_EXTENSION_EVENTS 0 -+ -+typedef struct _FGLGetDriverData { -+ CARD8 reqType; -+ CARD8 fireglReqType; -+ CARD16 length B16; -+ CARD32 screen B32; -+ CARD16 size B16; -+ CARD16 pad1; -+} xFGLGetDriverDataReq; -+#define sz_xFGLGetDriverDataReq sizeof(xFGLGetDriverDataReq) -+ -+typedef struct { -+ BYTE type; -+ BYTE pad1; -+ CARD16 sequenceNumber B16; -+ CARD32 length B32; -+ CARD8 majorVersion; -+ CARD8 minorVersion; -+ CARD8 patchlevel B16; -+ CARD8 BIOSVersionMajor; -+ CARD8 BIOSVersionMinor; -+ CARD8 HasSecondary; -+ CARD16 pad3 B16; -+ CARD32 pad4 B32; -+ CARD32 pad5 B32; -+ CARD32 pad6 B32; -+ CARD32 pad7 B32; -+ // ... there are more fields -+} xFGLGetDriverDataReply; -+#define sz_xFGLGetDriverDataReply sizeof(xFGLGetDriverDataReply) -+ -+#define X_FGLGetDriverData 0 -+ -+static XExtensionInfo _fglext_ext_info_data; -+static XExtensionInfo *fglext_ext_info = &_fglext_ext_info_data; -+static /* const */ char *fglext_extension_name = ATIFGL_EXTENSION_NAME; -+ -+#define xFGLCheckExtension(dpy,i,val) \ -+ XextCheckExtension (dpy, i, fglext_extension_name, val) -+ -+static int close_display(); -+static /* const */ XExtensionHooks fglext_extension_hooks = { -+ NULL, /* create_gc */ -+ NULL, /* copy_gc */ -+ NULL, /* flush_gc */ -+ NULL, /* free_gc */ -+ NULL, /* create_font */ -+ NULL, /* free_font */ -+ close_display, /* close_display */ -+ NULL, /* wire_to_event */ -+ NULL, /* event_to_wire */ -+ NULL, /* error */ -+ NULL, /* error_string */ -+}; -+ -+static XEXT_GENERATE_FIND_DISPLAY (find_display, fglext_ext_info, -+ fglext_extension_name, -+ &fglext_extension_hooks, -+ ATIFGL_EXTENSION_EVENTS, NULL) -+ -+static XEXT_GENERATE_CLOSE_DISPLAY (close_display, fglext_ext_info) -+ -+Bool VA_FGLEXTQueryDirectRenderingCapable( Display *dpy, int screen, -+ Bool *isCapable ) -+{ -+ char **extensions; -+ int i, n_extensions, has_fglext = 0, has_fglrxdri = 0; -+ -+ if (isCapable) -+ *isCapable = False; -+ -+ extensions = XListExtensions(dpy, &n_extensions); -+ if (!extensions) -+ return False; -+ -+ for (i = 0; i < n_extensions; i++) { -+ if (strcmp(extensions[i], ATIFGL_EXTENSION_NAME) == 0) -+ has_fglext = 1; -+ if (strcmp(extensions[i], "ATIFGLRXDRI") == 0) -+ has_fglrxdri = 1; -+ } -+ XFreeExtensionList(extensions); -+ -+ if (!has_fglext) -+ return False; -+ -+ if (isCapable) -+ *isCapable = has_fglrxdri; -+ -+ return True; -+} -+ -+Bool VA_FGLEXTGetClientDriverName( Display *dpy, int screen, -+ int *ddxDriverMajorVersion, int *ddxDriverMinorVersion, -+ int *ddxDriverPatchVersion, char **clientDriverName ) -+{ -+ XExtDisplayInfo *info = find_display (dpy); -+ xFGLGetDriverDataReply rep; -+ xFGLGetDriverDataReq *req; -+ -+ if (ddxDriverMajorVersion) -+ *ddxDriverMajorVersion = 0; -+ if (ddxDriverMinorVersion) -+ *ddxDriverMinorVersion = 0; -+ if (ddxDriverPatchVersion) -+ *ddxDriverPatchVersion = 0; -+ if (clientDriverName) -+ *clientDriverName = NULL; -+ -+ if(!XextHasExtension(info)) -+ return False; -+ -+ xFGLCheckExtension (dpy, info, False); -+ -+ LockDisplay (dpy); -+ GetReq (FGLGetDriverData, req); -+ req->reqType = info->codes->major_opcode; -+ req->fireglReqType = X_FGLGetDriverData; -+ req->screen = screen; -+ if (!_XReply (dpy, (xReply *) &rep, 0, xTrue)) { -+ UnlockDisplay (dpy); -+ SyncHandle (); -+ return False; -+ } -+ UnlockDisplay (dpy); -+ SyncHandle (); -+ -+ if (ddxDriverMajorVersion) -+ *ddxDriverMajorVersion = rep.majorVersion; -+ if (ddxDriverMinorVersion) -+ *ddxDriverMinorVersion = rep.minorVersion; -+ if (ddxDriverPatchVersion) -+ *ddxDriverPatchVersion = rep.patchlevel; -+ if (clientDriverName) -+ *clientDriverName = strdup("fglrx"); -+ -+ return True; -+} -diff -Naur libva-0.31.0/src/x11/va_fglext.h libva-0.31.0.patch/src/x11/va_fglext.h ---- libva-0.31.0/src/x11/va_fglext.h 1970-01-01 01:00:00.000000000 +0100 -+++ libva-0.31.0.patch/src/x11/va_fglext.h 2009-12-15 13:44:52.001353221 +0100 -@@ -0,0 +1,37 @@ -+/* -+ * Copyright (C) 2009 Splitted-Desktop Systems. All Rights Reserved. -+ * -+ * 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, sub license, 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 PRECISION INSIGHT AND/OR ITS 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 VA_FGLEXTLIB_H -+#define VA_FGLEXTLIB_H -+ -+#include -+ -+Bool VA_FGLEXTQueryDirectRenderingCapable( Display *dpy, int screen, -+ Bool *isCapable ); -+ -+Bool VA_FGLEXTGetClientDriverName( Display *dpy, int screen, -+ int *ddxDriverMajorVersion, int *ddxDriverMinorVersion, -+ int *ddxDriverPatchVersion, char **clientDriverName ); -+ -+#endif /* VA_FGLEXTLIB_H */ -diff -Naur libva-0.31.0/src/x11/va_x11.c libva-0.31.0.patch/src/x11/va_x11.c ---- libva-0.31.0/src/x11/va_x11.c 2009-09-22 15:17:03.000000000 +0200 -+++ libva-0.31.0.patch/src/x11/va_x11.c 2009-12-15 13:45:17.334446778 +0100 -@@ -31,6 +31,8 @@ - #include "va_dri2.h" - #include "va_dricommon.h" - #include "va_nvctrl.h" -+#include "va_fglext.h" -+#include "libdrm_glue.h" - #include - #include - #include -@@ -74,6 +76,8 @@ - } - ctx = &((*ctx)->pNext); - } -+ -+ libdrm_close(); - free(pDisplayContext->pDriverContext->dri_state); - free(pDisplayContext->pDriverContext); - free(pDisplayContext); -@@ -129,6 +133,29 @@ - return VA_STATUS_SUCCESS; - } - -+static VAStatus va_FGLEXT_GetDriverName( -+ VADisplayContextP pDisplayContext, -+ char **driver_name -+) -+{ -+ VADriverContextP ctx = pDisplayContext->pDriverContext; -+ int direct_capable, driver_major, driver_minor, driver_patch; -+ Bool result; -+ -+ result = VA_FGLEXTQueryDirectRenderingCapable(ctx->x11_dpy, ctx->x11_screen, -+ &direct_capable); -+ if (!result || !direct_capable) -+ return VA_STATUS_ERROR_UNKNOWN; -+ -+ result = VA_FGLEXTGetClientDriverName(ctx->x11_dpy, ctx->x11_screen, -+ &driver_major, &driver_minor, -+ &driver_patch, driver_name); -+ if (!result) -+ return VA_STATUS_ERROR_UNKNOWN; -+ -+ return VA_STATUS_SUCCESS; -+} -+ - static VAStatus va_DisplayContextGetDriverName ( - VADisplayContextP pDisplayContext, - char **driver_name -@@ -153,7 +180,8 @@ - vaStatus = va_DRIGetDriverName(pDisplayContext, driver_name); - if (vaStatus != VA_STATUS_SUCCESS) - vaStatus = va_NVCTRL_GetDriverName(pDisplayContext, driver_name); -- -+ if (vaStatus != VA_STATUS_SUCCESS) -+ vaStatus = va_FGLEXT_GetDriverName(pDisplayContext, driver_name); - return vaStatus; - } - -@@ -195,6 +223,7 @@ - pDisplayContext->vaIsValid = va_DisplayContextIsValid; - pDisplayContext->vaDestroy = va_DisplayContextDestroy; - pDisplayContext->vaGetDriverName = va_DisplayContextGetDriverName; -+ pDisplayContext->opaque = NULL; - pDisplayContexts = pDisplayContext; - pDriverContext->dri_state = dri_state; - dpy = (VADisplay)pDisplayContext; -diff -Naur libva-0.31.0/src/x11/va_x11.c.orig libva-0.31.0.patch/src/x11/va_x11.c.orig -diff -Naur libva-0.31.0/src/x11/va_x11.h libva-0.31.0.patch/src/x11/va_x11.h ---- libva-0.31.0/src/x11/va_x11.h 2009-07-06 12:44:10.000000000 +0200 -+++ libva-0.31.0.patch/src/x11/va_x11.h 2009-12-15 13:45:13.207447712 +0100 -@@ -27,22 +27,6 @@ - * color space conversion and scaling to the destination - * rectangle - */ --/* de-interlacing flags for vaPutSurface */ --#define VA_FRAME_PICTURE 0x00000000 --#define VA_TOP_FIELD 0x00000001 --#define VA_BOTTOM_FIELD 0x00000002 -- --/* -- * clears the drawable with background color. -- * for hardware overlay based implementation this flag -- * can be used to turn off the overlay -- */ --#define VA_CLEAR_DRAWABLE 0x00000008 -- --/* color space conversion flags for vaPutSurface */ --#define VA_SRC_BT601 0x00000010 --#define VA_SRC_BT709 0x00000020 -- - VAStatus vaPutSurface ( - VADisplay dpy, - VASurfaceID surface, -diff -Naur libva-0.31.0/test/Makefile.am libva-0.31.0.patch/test/Makefile.am ---- libva-0.31.0/test/Makefile.am 2009-09-10 17:18:48.000000000 +0200 -+++ libva-0.31.0.patch/test/Makefile.am 2009-12-15 13:44:23.054446870 +0100 -@@ -31,10 +31,10 @@ - - TESTS = $(check_PROGRAMS) - --TEST_LIBS = $(top_srcdir)/src/$(libvabackendlib) -+TEST_LIBS = $(top_srcdir)/src/libva.la $(top_srcdir)/src/$(libvabackendlib) - --vainfo_LDADD = $(top_srcdir)/src/$(libvabackendlib) --vainfo_DEPENDENCIES = $(top_srcdir)/src/$(libvabackendlib) -+vainfo_LDADD = $(top_srcdir)/src/libva.la $(top_srcdir)/src/$(libvabackendlib) -+vainfo_DEPENDENCIES = $(top_srcdir)/src/libva.la $(top_srcdir)/src/$(libvabackendlib) - vainfo_SOURCES = vainfo.c - - test_01_LDADD = $(TEST_LIBS) -diff -Naur libva-0.31.0/test/Makefile.in libva-0.31.0.patch/test/Makefile.in ---- libva-0.31.0/test/Makefile.in 2009-09-10 17:18:48.000000000 +0200 -+++ libva-0.31.0.patch/test/Makefile.in 2009-12-15 13:51:56.442446618 +0100 -@@ -1,8 +1,9 @@ --# Makefile.in generated by automake 1.10.1 from Makefile.am. -+# Makefile.in generated by automake 1.11 from Makefile.am. - # @configure_input@ - - # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, --# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. -+# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -+# Inc. - # This Makefile.in is free software; the Free Software Foundation - # gives unlimited permission to copy and/or distribute it, - # with or without modifications, as long as this notice is preserved. -@@ -38,8 +39,9 @@ - - VPATH = @srcdir@ - pkgdatadir = $(datadir)/@PACKAGE@ --pkglibdir = $(libdir)/@PACKAGE@ - pkgincludedir = $(includedir)/@PACKAGE@ -+pkglibdir = $(libdir)/@PACKAGE@ -+pkglibexecdir = $(libexecdir)/@PACKAGE@ - am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd - install_sh_DATA = $(install_sh) -c -m 644 - install_sh_PROGRAM = $(install_sh) -c -@@ -62,14 +64,17 @@ - subdir = test - 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)/m4/libtool.m4 \ -+ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ -+ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ -+ $(top_srcdir)/configure.ac - am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) - mkinstalldirs = $(install_sh) -d - CONFIG_HEADER = $(top_builddir)/config.h - CONFIG_CLEAN_FILES = -+CONFIG_CLEAN_VPATH_FILES = - am__installdirs = "$(DESTDIR)$(bindir)" --binPROGRAMS_INSTALL = $(INSTALL_PROGRAM) - PROGRAMS = $(bin_PROGRAMS) - am_test_01_OBJECTS = test_01.$(OBJEXT) - test_01_OBJECTS = $(am_test_01_OBJECTS) -@@ -112,6 +117,7 @@ - DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) - depcomp = $(SHELL) $(top_srcdir)/depcomp - am__depfiles_maybe = depfiles -+am__mv = mv -f - COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ - $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) - LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ -@@ -133,6 +139,8 @@ - $(test_12_SOURCES) $(vainfo_SOURCES) - ETAGS = etags - CTAGS = ctags -+am__tty_colors = \ -+red=; grn=; lgn=; blu=; std= - DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) - ACLOCAL = @ACLOCAL@ - AMTAR = @AMTAR@ -@@ -146,38 +154,35 @@ - CFLAGS = @CFLAGS@ - CPP = @CPP@ - CPPFLAGS = @CPPFLAGS@ --CXX = @CXX@ --CXXCPP = @CXXCPP@ --CXXDEPMODE = @CXXDEPMODE@ --CXXFLAGS = @CXXFLAGS@ - CYGPATH_W = @CYGPATH_W@ - DEFS = @DEFS@ - DEPDIR = @DEPDIR@ - DRM_CFLAGS = @DRM_CFLAGS@ - DRM_LIBS = @DRM_LIBS@ - DSYMUTIL = @DSYMUTIL@ --ECHO = @ECHO@ -+DUMPBIN = @DUMPBIN@ - ECHO_C = @ECHO_C@ - ECHO_N = @ECHO_N@ - ECHO_T = @ECHO_T@ - EGREP = @EGREP@ - EXEEXT = @EXEEXT@ --F77 = @F77@ --FFLAGS = @FFLAGS@ -+FGREP = @FGREP@ - GEN4ASM_CFLAGS = @GEN4ASM_CFLAGS@ - GEN4ASM_LIBS = @GEN4ASM_LIBS@ -+GL_DEPS_CFLAGS = @GL_DEPS_CFLAGS@ -+GL_DEPS_LIBS = @GL_DEPS_LIBS@ - GREP = @GREP@ - INSTALL = @INSTALL@ - INSTALL_DATA = @INSTALL_DATA@ - INSTALL_PROGRAM = @INSTALL_PROGRAM@ - INSTALL_SCRIPT = @INSTALL_SCRIPT@ - INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -+LD = @LD@ - LDFLAGS = @LDFLAGS@ - LIBOBJS = @LIBOBJS@ - LIBS = @LIBS@ - LIBTOOL = @LIBTOOL@ - LIBVA_CFLAGS = @LIBVA_CFLAGS@ --LIBVA_DISPLAY = @LIBVA_DISPLAY@ - LIBVA_DRIVERS_PATH = @LIBVA_DRIVERS_PATH@ - LIBVA_LIBS = @LIBVA_LIBS@ - LIBVA_LT_LDFLAGS = @LIBVA_LT_LDFLAGS@ -@@ -185,13 +190,19 @@ - LIBVA_MAJOR_VERSION = @LIBVA_MAJOR_VERSION@ - LIBVA_MICRO_VERSION = @LIBVA_MICRO_VERSION@ - LIBVA_MINOR_VERSION = @LIBVA_MINOR_VERSION@ -+LIBVA_SDS_VERSION = @LIBVA_SDS_VERSION@ - LIBVA_VERSION = @LIBVA_VERSION@ -+LIPO = @LIPO@ - LN_S = @LN_S@ - LTLIBOBJS = @LTLIBOBJS@ - MAKEINFO = @MAKEINFO@ - MKDIR_P = @MKDIR_P@ -+NM = @NM@ - NMEDIT = @NMEDIT@ -+OBJDUMP = @OBJDUMP@ - OBJEXT = @OBJEXT@ -+OTOOL = @OTOOL@ -+OTOOL64 = @OTOOL64@ - PACKAGE = @PACKAGE@ - PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ - PACKAGE_NAME = @PACKAGE_NAME@ -@@ -217,8 +228,7 @@ - abs_top_builddir = @abs_top_builddir@ - abs_top_srcdir = @abs_top_srcdir@ - ac_ct_CC = @ac_ct_CC@ --ac_ct_CXX = @ac_ct_CXX@ --ac_ct_F77 = @ac_ct_F77@ -+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ - am__include = @am__include@ - am__leading_dot = @am__leading_dot@ - am__quote = @am__quote@ -@@ -251,6 +261,7 @@ - libvacorelib = @libvacorelib@ - localedir = @localedir@ - localstatedir = @localstatedir@ -+lt_ECHO = @lt_ECHO@ - mandir = @mandir@ - mkdir_p = @mkdir_p@ - oldincludedir = @oldincludedir@ -@@ -264,14 +275,15 @@ - srcdir = @srcdir@ - sysconfdir = @sysconfdir@ - target_alias = @target_alias@ -+top_build_prefix = @top_build_prefix@ - top_builddir = @top_builddir@ - top_srcdir = @top_srcdir@ - testdir = $(bindir) - AM_CFLAGS = -I$(top_srcdir)/../../include/external/ -I$(top_srcdir)/src -I$(top_srcdir)/src/x11 -DIN_LIBVA - TESTS = $(check_PROGRAMS) --TEST_LIBS = $(top_srcdir)/src/$(libvabackendlib) --vainfo_LDADD = $(top_srcdir)/src/$(libvabackendlib) --vainfo_DEPENDENCIES = $(top_srcdir)/src/$(libvabackendlib) -+TEST_LIBS = $(top_srcdir)/src/libva.la $(top_srcdir)/src/$(libvabackendlib) -+vainfo_LDADD = $(top_srcdir)/src/libva.la $(top_srcdir)/src/$(libvabackendlib) -+vainfo_DEPENDENCIES = $(top_srcdir)/src/libva.la $(top_srcdir)/src/$(libvabackendlib) - vainfo_SOURCES = vainfo.c - test_01_LDADD = $(TEST_LIBS) - test_01_SOURCES = test_01.c -@@ -306,14 +318,14 @@ - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ -- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ -- && exit 0; \ -+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ -+ && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ -- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu test/Makefile'; \ -- cd $(top_srcdir) && \ -- $(AUTOMAKE) --gnu test/Makefile -+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu test/Makefile'; \ -+ $(am__cd) $(top_srcdir) && \ -+ $(AUTOMAKE) --gnu test/Makefile - .PRECIOUS: Makefile - Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ -@@ -331,41 +343,59 @@ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - $(ACLOCAL_M4): $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -+$(am__aclocal_m4_deps): - install-binPROGRAMS: $(bin_PROGRAMS) - @$(NORMAL_INSTALL) - test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)" -- @list='$(bin_PROGRAMS)'; for p in $$list; do \ -- p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ -- if test -f $$p \ -- || test -f $$p1 \ -- ; then \ -- f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \ -- echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(binPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(bindir)/$$f'"; \ -- $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(binPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(bindir)/$$f" || exit 1; \ -- else :; fi; \ -- done -+ @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ -+ for p in $$list; do echo "$$p $$p"; done | \ -+ sed 's/$(EXEEXT)$$//' | \ -+ while read p p1; do if test -f $$p || test -f $$p1; \ -+ then echo "$$p"; echo "$$p"; else :; fi; \ -+ done | \ -+ sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \ -+ -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ -+ sed 'N;N;N;s,\n, ,g' | \ -+ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ -+ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ -+ if ($$2 == $$4) files[d] = files[d] " " $$1; \ -+ else { print "f", $$3 "/" $$4, $$1; } } \ -+ END { for (d in files) print "f", d, files[d] }' | \ -+ while read type dir files; do \ -+ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ -+ test -z "$$files" || { \ -+ echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \ -+ $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ -+ } \ -+ ; done - - uninstall-binPROGRAMS: - @$(NORMAL_UNINSTALL) -- @list='$(bin_PROGRAMS)'; for p in $$list; do \ -- f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \ -- echo " rm -f '$(DESTDIR)$(bindir)/$$f'"; \ -- rm -f "$(DESTDIR)$(bindir)/$$f"; \ -- done -+ @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ -+ files=`for p in $$list; do echo "$$p"; done | \ -+ sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ -+ -e 's/$$/$(EXEEXT)/' `; \ -+ test -n "$$list" || exit 0; \ -+ echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ -+ cd "$(DESTDIR)$(bindir)" && rm -f $$files - - clean-binPROGRAMS: -- @list='$(bin_PROGRAMS)'; for p in $$list; do \ -- f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ -- echo " rm -f $$p $$f"; \ -- rm -f $$p $$f ; \ -- done -+ @list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \ -+ echo " rm -f" $$list; \ -+ rm -f $$list || exit $$?; \ -+ test -n "$(EXEEXT)" || exit 0; \ -+ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ -+ echo " rm -f" $$list; \ -+ rm -f $$list - - clean-checkPROGRAMS: -- @list='$(check_PROGRAMS)'; for p in $$list; do \ -- f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ -- echo " rm -f $$p $$f"; \ -- rm -f $$p $$f ; \ -- done -+ @list='$(check_PROGRAMS)'; test -n "$$list" || exit 0; \ -+ echo " rm -f" $$list; \ -+ rm -f $$list || exit $$?; \ -+ test -n "$(EXEEXT)" || exit 0; \ -+ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ -+ echo " rm -f" $$list; \ -+ rm -f $$list - test_01$(EXEEXT): $(test_01_OBJECTS) $(test_01_DEPENDENCIES) - @rm -f test_01$(EXEEXT) - $(LINK) $(test_01_OBJECTS) $(test_01_LDADD) $(LIBS) -@@ -428,21 +458,21 @@ - - .c.o: - @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< --@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po - @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ - @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ - @am__fastdepCC_FALSE@ $(COMPILE) -c $< - - .c.obj: - @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` --@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po - @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ - @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ - @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` - - .c.lo: - @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< --@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo - @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ - @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ - @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< -@@ -458,14 +488,14 @@ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ -- $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \ -+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique - tags: TAGS - - TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) -- tags=; \ -+ set x; \ - here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ -@@ -473,37 +503,43 @@ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ -- if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ -+ shift; \ -+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ -- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ -- $$tags $$unique; \ -+ if test $$# -gt 0; then \ -+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ -+ "$$@" $$unique; \ -+ else \ -+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ -+ $$unique; \ -+ fi; \ - fi - ctags: CTAGS - CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) -- tags=; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ -- test -z "$(CTAGS_ARGS)$$tags$$unique" \ -+ test -z "$(CTAGS_ARGS)$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ -- $$tags $$unique -+ $$unique - - GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ -- && cd $(top_srcdir) \ -- && gtags -i $(GTAGS_ARGS) $$here -+ && $(am__cd) $(top_srcdir) \ -+ && gtags -i $(GTAGS_ARGS) "$$here" - - distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - - check-TESTS: $(TESTS) -- @failed=0; all=0; xfail=0; xpass=0; skip=0; ws='[ ]'; \ -+ @failed=0; all=0; xfail=0; xpass=0; skip=0; \ - srcdir=$(srcdir); export srcdir; \ - list=' $(TESTS) '; \ -+ $(am__tty_colors); \ - if test -n "$$list"; then \ - for tst in $$list; do \ - if test -f ./$$tst; then dir=./; \ -@@ -512,49 +548,63 @@ - if $(TESTS_ENVIRONMENT) $${dir}$$tst; then \ - all=`expr $$all + 1`; \ - case " $(XFAIL_TESTS) " in \ -- *$$ws$$tst$$ws*) \ -+ *[\ \ ]$$tst[\ \ ]*) \ - xpass=`expr $$xpass + 1`; \ - failed=`expr $$failed + 1`; \ -- echo "XPASS: $$tst"; \ -+ col=$$red; res=XPASS; \ - ;; \ - *) \ -- echo "PASS: $$tst"; \ -+ col=$$grn; res=PASS; \ - ;; \ - esac; \ - elif test $$? -ne 77; then \ - all=`expr $$all + 1`; \ - case " $(XFAIL_TESTS) " in \ -- *$$ws$$tst$$ws*) \ -+ *[\ \ ]$$tst[\ \ ]*) \ - xfail=`expr $$xfail + 1`; \ -- echo "XFAIL: $$tst"; \ -+ col=$$lgn; res=XFAIL; \ - ;; \ - *) \ - failed=`expr $$failed + 1`; \ -- echo "FAIL: $$tst"; \ -+ col=$$red; res=FAIL; \ - ;; \ - esac; \ - else \ - skip=`expr $$skip + 1`; \ -- echo "SKIP: $$tst"; \ -+ col=$$blu; res=SKIP; \ - fi; \ -+ echo "$${col}$$res$${std}: $$tst"; \ - done; \ -+ if test "$$all" -eq 1; then \ -+ tests="test"; \ -+ All=""; \ -+ else \ -+ tests="tests"; \ -+ All="All "; \ -+ fi; \ - if test "$$failed" -eq 0; then \ - if test "$$xfail" -eq 0; then \ -- banner="All $$all tests passed"; \ -+ banner="$$All$$all $$tests passed"; \ - else \ -- banner="All $$all tests behaved as expected ($$xfail expected failures)"; \ -+ if test "$$xfail" -eq 1; then failures=failure; else failures=failures; fi; \ -+ banner="$$All$$all $$tests behaved as expected ($$xfail expected $$failures)"; \ - fi; \ - else \ - if test "$$xpass" -eq 0; then \ -- banner="$$failed of $$all tests failed"; \ -+ banner="$$failed of $$all $$tests failed"; \ - else \ -- banner="$$failed of $$all tests did not behave as expected ($$xpass unexpected passes)"; \ -+ if test "$$xpass" -eq 1; then passes=pass; else passes=passes; fi; \ -+ banner="$$failed of $$all $$tests did not behave as expected ($$xpass unexpected $$passes)"; \ - fi; \ - fi; \ - dashes="$$banner"; \ - skipped=""; \ - if test "$$skip" -ne 0; then \ -- skipped="($$skip tests were not run)"; \ -+ if test "$$skip" -eq 1; then \ -+ skipped="($$skip test was not run)"; \ -+ else \ -+ skipped="($$skip tests were not run)"; \ -+ fi; \ - test `echo "$$skipped" | wc -c` -le `echo "$$banner" | wc -c` || \ - dashes="$$skipped"; \ - fi; \ -@@ -565,11 +615,15 @@ - dashes="$$report"; \ - fi; \ - dashes=`echo "$$dashes" | sed s/./=/g`; \ -- echo "$$dashes"; \ -+ if test "$$failed" -eq 0; then \ -+ echo "$$grn$$dashes"; \ -+ else \ -+ echo "$$red$$dashes"; \ -+ fi; \ - echo "$$banner"; \ - test -z "$$skipped" || echo "$$skipped"; \ - test -z "$$report" || echo "$$report"; \ -- echo "$$dashes"; \ -+ echo "$$dashes$$std"; \ - test "$$failed" -eq 0; \ - else :; fi - -@@ -589,13 +643,17 @@ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ -+ if test -d "$(distdir)/$$file"; then \ -+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ -+ fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ -- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ -+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ -+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ -- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ -+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ -- test -f $(distdir)/$$file \ -- || cp -p $$d/$$file $(distdir)/$$file \ -+ test -f "$(distdir)/$$file" \ -+ || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done -@@ -628,6 +686,7 @@ - - distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - - maintainer-clean-generic: - @echo "This command is intended for maintainers to use" -@@ -649,6 +708,8 @@ - - html: html-am - -+html-am: -+ - info: info-am - - info-am: -@@ -657,18 +718,28 @@ - - install-dvi: install-dvi-am - -+install-dvi-am: -+ - install-exec-am: install-binPROGRAMS - - install-html: install-html-am - -+install-html-am: -+ - install-info: install-info-am - -+install-info-am: -+ - install-man: - - install-pdf: install-pdf-am - -+install-pdf-am: -+ - install-ps: install-ps-am - -+install-ps-am: -+ - installcheck-am: - - maintainer-clean: maintainer-clean-am -@@ -691,7 +762,7 @@ - - uninstall-am: uninstall-binPROGRAMS - --.MAKE: install-am install-strip -+.MAKE: check-am install-am install-strip - - .PHONY: CTAGS GTAGS all all-am check check-TESTS check-am clean \ - clean-binPROGRAMS clean-checkPROGRAMS clean-generic \ -@@ -713,6 +784,7 @@ - for a in $(check_PROGRAMS); do \ - valgrind --leak-check=full --show-reachable=yes .libs/$$a; \ - done -+ - # Tell versions [3.59,3.63) of GNU make to not export all variables. - # Otherwise a system limit (for SysV at least) may be exceeded. - .NOEXPORT: diff --git a/packages/multimedia/libva/url b/packages/multimedia/libva/url index 961fb2d1cd..f88b85c2c1 100644 --- a/packages/multimedia/libva/url +++ b/packages/multimedia/libva/url @@ -1 +1 @@ -http://www.splitted-desktop.com/~gbeauchesne/libva/libva_0.31.0-1+sds9.tar.gz \ No newline at end of file +http://www.splitted-desktop.com/~gbeauchesne/libva/libva_0.31.0-1+sds12.tar.gz \ No newline at end of file From b8aa9a76c06a79b77d897176a573b7acb1f58ea9 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Tue, 6 Apr 2010 17:32:41 +0200 Subject: [PATCH 041/320] xbmc: - add options to build and install with vaapi support --- packages/mediacenter/xbmc/build | 7 +++++++ packages/mediacenter/xbmc/install | 1 + 2 files changed, 8 insertions(+) diff --git a/packages/mediacenter/xbmc/build b/packages/mediacenter/xbmc/build index 00673e71bc..e91f2508f3 100755 --- a/packages/mediacenter/xbmc/build +++ b/packages/mediacenter/xbmc/build @@ -66,6 +66,13 @@ else XBMC_VDPAU="--disable-vdpau" fi +if [ "$VAAPI" = yes ]; then + $SCRIPTS/build libva + XBMC_VDPAU="--enable-vaapi" +else + XBMC_VDPAU="--disable-vaapi" +fi + if [ "$CRYSTALHD" = yes ]; then $SCRIPTS/build crystalhd XBMC_CRYSTALHD="--enable-crystalhd" diff --git a/packages/mediacenter/xbmc/install b/packages/mediacenter/xbmc/install index e9be26fc89..34059048d7 100755 --- a/packages/mediacenter/xbmc/install +++ b/packages/mediacenter/xbmc/install @@ -26,6 +26,7 @@ $SCRIPTS/install libXrandr $SCRIPTS/install Mesa [ "$VDPAU" = yes ] && $SCRIPTS/install libvdpau +[ "$VAAPI" = yes ] && $SCRIPTS/install libva [ "$CRYSTALHD" = yes ] && $SCRIPTS/install crystalhd $SCRIPTS/install glew $SCRIPTS/install fontconfig From b5b7df97e67001317d6e22e579ee989078cd71b0 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Tue, 6 Apr 2010 17:35:40 +0200 Subject: [PATCH 042/320] xbmc: - remove option to build against external ffmpeg - fix otpion to build with vaapi support --- packages/mediacenter/xbmc/build | 14 ++++---------- packages/mediacenter/xbmc/install | 1 - 2 files changed, 4 insertions(+), 11 deletions(-) diff --git a/packages/mediacenter/xbmc/build b/packages/mediacenter/xbmc/build index e91f2508f3..4eb5141083 100755 --- a/packages/mediacenter/xbmc/build +++ b/packages/mediacenter/xbmc/build @@ -68,9 +68,9 @@ fi if [ "$VAAPI" = yes ]; then $SCRIPTS/build libva - XBMC_VDPAU="--enable-vaapi" + XBMC_VAAPI="--enable-vaapi" else - XBMC_VDPAU="--disable-vaapi" + XBMC_VAAPI="--disable-vaapi" fi if [ "$CRYSTALHD" = yes ]; then @@ -80,13 +80,6 @@ else XBMC_CRYSTALHD="--disable-crystalhd" fi -if [ "$FFMPEG" = external ]; then - $SCRIPTS/build ffmpeg - XBMC_FFMPEG="--enable-external-ffmpeg" -else - XBMC_FFMPEG="--disable-external-ffmpeg" -fi - LDFLAGS="$LDFLAGS -lpython2.6" cd $PKG_BUILD @@ -124,8 +117,9 @@ cd - --enable-hal \ --enable-webserver \ $XBMC_VDPAU \ + $XBMC_VAAPI \ $XBMC_CRYSTALHD \ - $XBMC_FFMPEG \ + --disable-internal-ffmpeg \ --disable-external-liba52 \ --disable-external-libdts \ --disable-external-libass \ diff --git a/packages/mediacenter/xbmc/install b/packages/mediacenter/xbmc/install index 34059048d7..532da929e0 100755 --- a/packages/mediacenter/xbmc/install +++ b/packages/mediacenter/xbmc/install @@ -53,7 +53,6 @@ $SCRIPTS/install flac $SCRIPTS/install wavpack $SCRIPTS/install libmpeg2 # $SCRIPTS/install musepack -[ "$FFMPEG" = external ] && $SCRIPTS/install ffmpeg $SCRIPTS/install SDL $SCRIPTS/install SDL_mixer From 18ad065c74af69b30323346dc79c5f771687c067 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Tue, 6 Apr 2010 17:38:25 +0200 Subject: [PATCH 043/320] ffmpeg: - remove package --- packages/multimedia/ffmpeg/build | 95 - packages/multimedia/ffmpeg/install | 15 - .../ffmpeg/patches/ffmpeg-mt_20100104.diff | 3909 ----------------- .../ffmpeg/patches/ffmpeg-vaapi_20100105.diff | 12 - packages/multimedia/ffmpeg/url | 1 - 5 files changed, 4032 deletions(-) delete mode 100755 packages/multimedia/ffmpeg/build delete mode 100755 packages/multimedia/ffmpeg/install delete mode 100644 packages/multimedia/ffmpeg/patches/ffmpeg-mt_20100104.diff delete mode 100644 packages/multimedia/ffmpeg/patches/ffmpeg-vaapi_20100105.diff delete mode 100644 packages/multimedia/ffmpeg/url diff --git a/packages/multimedia/ffmpeg/build b/packages/multimedia/ffmpeg/build deleted file mode 100755 index d825a59ca6..0000000000 --- a/packages/multimedia/ffmpeg/build +++ /dev/null @@ -1,95 +0,0 @@ -#!/bin/sh - -. config/options - -$SCRIPTS/build toolchain -$SCRIPTS/build faad2 -$SCRIPTS/build zlib - -if [ "$VDPAU" = yes ]; then - $SCRIPTS/build libvdpau - FFMPEG_VDPAU="--enable-vdpau" -else - FFMPEG_VDPAU="--disable-vdpau" -fi - -if [ "$VAAPI" = yes ]; then - $SCRIPTS/build libva - FFMPEG_VAAPI="--enable-vaapi" -else - FFMPEG_VAAPI="--disable-vaapi" -fi - -cd $PKG_BUILD/ -./configure --prefix=/usr \ - --cpu=$TARGET_CPU \ - --arch=$TARGET_ARCH \ - --enable-cross-compile \ - --cross-prefix=$TARGET_PREFIX \ - --sysroot=$SYSROOT_PREFIX \ - --extra-cflags="$CFLAGS" \ - --disable-debug \ - --enable-stripping \ - --disable-static \ - --enable-shared \ - --enable-gpl \ - --enable-yasm \ - --disable-ffplay \ - --disable-ffserver \ - --disable-ffmpeg \ - --enable-postproc \ - --disable-avfilter \ - --disable-avfilter-lavf \ - --enable-pthreads \ - --disable-x11grab \ - --disable-ipv6 \ - --disable-mpegaudio-hp \ - --disable-gray \ - --enable-swscale-alpha \ - --enable-fastdiv \ - --enable-small \ - --enable-aandct \ - --enable-fft \ - --enable-golomb \ - --enable-mdct \ - --enable-rdft \ - $FFMPEG_VAAPI \ - $FFMPEG_VDPAU \ - --disable-encoders \ - --enable-decoders \ - --disable-decoder=mpeg_xvmc \ - --disable-muxers \ - --enable-demuxers \ - --enable-parsers \ - --enable-bsfs \ - --enable-protocols \ - --enable-protocol=http \ - --disable-indevs \ - --disable-outdevs \ - --disable-devices \ - --enable-filters \ - --disable-avisynth \ - --disable-bzlib \ - --disable-libopencore-amrnb \ - --disable-libopencore-amrwb \ - --disable-libdc1394 \ - --disable-libdirac \ - --disable-libfaac \ - --enable-libfaad \ - --disable-libfaadbin \ - --disable-libgsm \ - --disable-libmp3lame \ - --disable-libnut \ - --disable-libopenjpeg \ - --disable-libschroedinger \ - --disable-libspeex \ - --disable-libtheora \ - --disable-libvorbis \ - --disable-libx264 \ - --disable-libxvid \ - --disable-mlib \ - --enable-zlib \ - -make - -$MAKEINSTALL diff --git a/packages/multimedia/ffmpeg/install b/packages/multimedia/ffmpeg/install deleted file mode 100755 index fca661d8a8..0000000000 --- a/packages/multimedia/ffmpeg/install +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/sh - -. config/options - -$SCRIPTS/install zlib -$SCRIPTS/install faad2 -[ "$VAAPI" = yes ] && $SCRIPTS/install libva -[ "$VDPAU" = yes ] && $SCRIPTS/install libvdpau - -mkdir -p $INSTALL/usr/lib - cp -P $PKG_BUILD/libavcodec/libavcodec.so* $INSTALL/usr/lib - cp -P $PKG_BUILD/libavformat/libavformat.so* $INSTALL/usr/lib - cp -P $PKG_BUILD/libavutil/libavutil.so* $INSTALL/usr/lib - cp -P $PKG_BUILD/libswscale/libswscale.so.* $INSTALL/usr/lib - cp -P $PKG_BUILD/libpostproc/libpostproc.so.* $INSTALL/usr/lib diff --git a/packages/multimedia/ffmpeg/patches/ffmpeg-mt_20100104.diff b/packages/multimedia/ffmpeg/patches/ffmpeg-mt_20100104.diff deleted file mode 100644 index b04a72734c..0000000000 --- a/packages/multimedia/ffmpeg/patches/ffmpeg-mt_20100104.diff +++ /dev/null @@ -1,3909 +0,0 @@ -diff -Naur ffmpeg-mt-normal/doc/multithreading.txt ffmpeg-mt-thread/doc/multithreading.txt ---- ffmpeg-mt-normal/doc/multithreading.txt 1969-12-31 16:00:00.000000000 -0800 -+++ ffmpeg-mt-thread/doc/multithreading.txt 2010-01-04 22:36:29.000000000 -0800 -@@ -0,0 +1,73 @@ -+FFmpeg multithreading methods -+============================================== -+ -+FFmpeg provides two methods for multithreading codecs, controlled by -+AVCodecContext thread_type: -+ -+Slice threading decodes multiple parts of a frame at the same time, using -+execute(). -+ -+Frame threading decodes more than one frame at once by adding more decoder -+delay. Given X threads, it will queue the first X submitted frames, then -+return the last Xth frame; meanwhile, it decodes the upcoming frames on -+separate threads. -+ -+Restrictions on clients -+============================================== -+ -+Slice threading - -+* If the client uses draw_horiz_band, it must handle it being called from -+ separate threads. -+ -+Frame threading - -+* Restrictions with slice threading also apply. -+* get_buffer and release_buffer will be called by separate threads, but are -+ protected by a mutex, so do not need to be reentrant. -+* There is one frame of delay added for every thread. Use of reordered_opaque -+ will help with A/V sync problems, and clients should not assume that no frame -+ being returned after all frames have been submitted means there are no frames -+ left. -+ -+Restrictions on codecs -+============================================== -+ -+Slice threading - -+None. -+ -+Frame threading - -+* Relying on previous contents of buffers no longer works. This includes using -+ reget_buffer() and not copying skipped MBs. Buffers will have age set to -+ INT_MAX, so this won't be a problem for most cases. -+* Accepting randomly truncated packets (CODEC_FLAG_TRUNCATED) no longer works. -+* Some codecs (such as ffv1) can't be multithreaded. -+* If the codec uses draw_edges, it must be called before -+ ff_report_frame_progress() is called on any row. -+ -+Porting codecs to frame threading -+============================================== -+1. Fix the above restrictions. -+ -+2. Find all the context variables that are needed by the next frame, and make -+sure they aren't changed after the actual decoding process starts. Code that -+does this can either be moved up, put under if (!USE_FRAME_THREADING()) and -+later copied into update_context(), or changed to work on a copy of the -+variables it changes. -+ -+3. If the codec allocates writable tables in its init(), add an init_copy() -+which re-allocates them. If it uses inter-frame compression, add an -+update_context() which copies everything necessary for the next frame and does -+whatever operations would otherwise be done at the end of the last frame -+decoding. -+ -+Add CODEC_CAP_FRAME_THREADS to the capabilities - there won't be any speed gain -+but it should work. -+ -+4. After decoding some part of a frame, call ff_report_frame_progress(). Units -+don't matter - MB rows work for most codecs, but pixel rows may be better if it -+uses a deblocking filter. Codecs using MpegEncContext should make sure they call -+ff_draw_horiz_slice() correctly. -+ -+Before accessing a reference frame, call ff_await_frame_progress(). -+ -+5. Call ff_report_frame_setup_done() as soon as possible. This will start the -+next thread. -diff -Naur ffmpeg-mt-normal/ffmpeg.c ffmpeg-mt-thread/ffmpeg.c ---- ffmpeg-mt-normal/ffmpeg.c 2010-01-04 22:34:21.000000000 -0800 -+++ ffmpeg-mt-thread/ffmpeg.c 2010-01-04 22:36:29.000000000 -0800 -@@ -495,11 +495,6 @@ - else if (st->codec->codec_type == CODEC_TYPE_VIDEO && video_stream_copy) - st->stream_copy = 1; - -- if(!st->codec->thread_count) -- st->codec->thread_count = 1; -- if(st->codec->thread_count>1) -- avcodec_thread_init(st->codec, st->codec->thread_count); -- - if(st->codec->flags & CODEC_FLAG_BITEXACT) - nopts = 1; - } -@@ -3059,8 +3054,7 @@ - bitstream_filters[nb_output_files][oc->nb_streams - 1]= video_bitstream_filters; - video_bitstream_filters= NULL; - -- if(thread_count>1) -- avcodec_thread_init(st->codec, thread_count); -+ st->codec->thread_count= thread_count; - - video_enc = st->codec; - -@@ -3205,8 +3199,7 @@ - bitstream_filters[nb_output_files][oc->nb_streams - 1]= audio_bitstream_filters; - audio_bitstream_filters= NULL; - -- if(thread_count>1) -- avcodec_thread_init(st->codec, thread_count); -+ st->codec->thread_count= thread_count; - - audio_enc = st->codec; - audio_enc->codec_type = CODEC_TYPE_AUDIO; -diff -Naur ffmpeg-mt-normal/ffplay.c ffmpeg-mt-thread/ffplay.c ---- ffmpeg-mt-normal/ffplay.c 2010-01-04 22:34:21.000000000 -0800 -+++ ffmpeg-mt-thread/ffplay.c 2010-01-04 22:36:29.000000000 -0800 -@@ -215,7 +215,7 @@ - static enum AVDiscard skip_loop_filter= AVDISCARD_DEFAULT; - static int error_recognition = FF_ER_CAREFUL; - static int error_concealment = 3; --static int decoder_reorder_pts= 0; -+static int decoder_no_reorder_pts= 0; - - /* current context */ - static int is_full_screen; -@@ -1343,7 +1343,7 @@ - frame, &got_picture, - pkt); - -- if( (decoder_reorder_pts || pkt->dts == AV_NOPTS_VALUE) -+ if( (!decoder_no_reorder_pts || pkt->dts == AV_NOPTS_VALUE) - && frame->reordered_opaque != AV_NOPTS_VALUE) - pts= frame->reordered_opaque; - else if(pkt->dts != AV_NOPTS_VALUE) -@@ -2475,7 +2475,7 @@ - { "vismv", HAS_ARG | OPT_FUNC2 | OPT_EXPERT, {(void*)opt_vismv}, "visualize motion vectors", "" }, - { "fast", OPT_BOOL | OPT_EXPERT, {(void*)&fast}, "non spec compliant optimizations", "" }, - { "genpts", OPT_BOOL | OPT_EXPERT, {(void*)&genpts}, "generate pts", "" }, -- { "drp", OPT_BOOL |OPT_EXPERT, {(void*)&decoder_reorder_pts}, "let decoder reorder pts", ""}, -+ { "nodrp", OPT_BOOL |OPT_EXPERT, {(void*)&decoder_no_reorder_pts}, "do not let decoder reorder pts", ""}, - { "lowres", OPT_INT | HAS_ARG | OPT_EXPERT, {(void*)&lowres}, "", "" }, - { "skiploop", OPT_INT | HAS_ARG | OPT_EXPERT, {(void*)&skip_loop_filter}, "", "" }, - { "skipframe", OPT_INT | HAS_ARG | OPT_EXPERT, {(void*)&skip_frame}, "", "" }, -diff -Naur ffmpeg-mt-normal/.gitmodules ffmpeg-mt-thread/.gitmodules ---- ffmpeg-mt-normal/.gitmodules 1969-12-31 16:00:00.000000000 -0800 -+++ ffmpeg-mt-thread/.gitmodules 2010-01-04 22:36:29.000000000 -0800 -@@ -0,0 +1,3 @@ -+[submodule "libswscale"] -+ path = libswscale -+ url = git://git.mplayerhq.hu/libswscale -diff -Naur ffmpeg-mt-normal/libavcodec/avcodec.h ffmpeg-mt-thread/libavcodec/avcodec.h ---- ffmpeg-mt-normal/libavcodec/avcodec.h 2010-01-04 22:34:18.000000000 -0800 -+++ ffmpeg-mt-thread/libavcodec/avcodec.h 2010-01-04 22:36:29.000000000 -0800 -@@ -30,7 +30,7 @@ - #include "libavutil/avutil.h" - - #define LIBAVCODEC_VERSION_MAJOR 52 --#define LIBAVCODEC_VERSION_MINOR 45 -+#define LIBAVCODEC_VERSION_MINOR 46 - #define LIBAVCODEC_VERSION_MICRO 0 - - #define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \ -@@ -620,6 +620,10 @@ - * Codec can output multiple frames per AVPacket - */ - #define CODEC_CAP_SUBFRAMES 0x0100 -+/** -+ * Codec supports frame-based multithreading. -+ */ -+#define CODEC_CAP_FRAME_THREADS 0x0200 - - //The following defines may change, don't expect compatibility if you use them. - #define MB_TYPE_INTRA4x4 0x0001 -@@ -899,7 +903,20 @@ - * - decoding: Set by libavcodec\ - */\ - void *hwaccel_picture_private;\ -- -+\ -+ /**\ -+ * the AVCodecContext which ff_get_buffer was last called on\ -+ * - encoding: Set by libavcodec.\ -+ * - decoding: Set by libavcodec.\ -+ */\ -+ struct AVCodecContext *owner;\ -+\ -+ /**\ -+ * used by multithreading to store frame-specific info\ -+ * - encoding: Set by libavcodec.\ -+ * - decoding: Set by libavcodec.\ -+ */\ -+ void *thread_opaque; - - #define FF_QSCALE_TYPE_MPEG1 0 - #define FF_QSCALE_TYPE_MPEG2 1 -@@ -1105,7 +1122,7 @@ - * If non NULL, 'draw_horiz_band' is called by the libavcodec - * decoder to draw a horizontal band. It improves cache usage. Not - * all codecs can do that. You must check the codec capabilities -- * beforehand. -+ * beforehand. May be called by different threads at the same time. - * The function is also used by hardware acceleration APIs. - * It is called at least once during frame decoding to pass - * the data needed for hardware render. -@@ -1354,7 +1371,8 @@ - * height, as they normally need to be rounded up to the next multiple of 16. - * if CODEC_CAP_DR1 is not set then get_buffer() must call - * avcodec_default_get_buffer() instead of providing buffers allocated by -- * some other means. -+ * some other means. May be called from a different thread if FF_THREAD_FRAME -+ * is set, but does not need to be reentrant. - * - encoding: unused - * - decoding: Set by libavcodec., user can override. - */ -@@ -1363,7 +1381,9 @@ - /** - * Called to release buffers which were allocated with get_buffer. - * A released buffer can be reused in get_buffer(). -- * pic.data[*] must be set to NULL. -+ * pic.data[*] must be set to NULL. May be called by different threads -+ * if frame threading is enabled, but not more than one at the same time. -+ * - * - encoding: unused - * - decoding: Set by libavcodec., user can override. - */ -@@ -1664,6 +1684,7 @@ - #define FF_DEBUG_VIS_QP 0x00002000 - #define FF_DEBUG_VIS_MB_TYPE 0x00004000 - #define FF_DEBUG_BUFFERS 0x00008000 -+#define FF_DEBUG_THREADS 0x00010000 - - /** - * debug -@@ -2475,7 +2496,7 @@ - */ - float rc_min_vbv_overflow_use; - -- /** -+ /** - * Hardware accelerator in use - * - encoding: unused. - * - decoding: Set by libavcodec -@@ -2567,6 +2588,32 @@ - * - decoding: unused - */ - int weighted_p_pred; -+ -+ /** -+ * Whether this is a copy of the context which had init() called on it. -+ * This is used by multithreading - shared tables and picture pointers -+ * should be freed from the original context only. -+ * - encoding: Set by libavcodec. -+ * - decoding: Set by libavcodec. -+ */ -+ int is_copy; -+ -+ /** -+ * Which multithreading methods to use, for codecs that support more than one. -+ * - encoding: Set by user, otherwise the default is used. -+ * - decoding: Set by user, otherwise the default is used. -+ */ -+ int thread_type; -+#define FF_THREAD_FRAME 1 //< Decode more than one frame at once -+#define FF_THREAD_SLICE 2 //< Decode more than one part of a single frame at once -+#define FF_THREAD_DEFAULT 3 //< Use both if possible. -+ -+ /** -+ * Which multithreading methods are actually active at the moment. -+ * - encoding: Set by libavcodec. -+ * - decoding: Set by libavcodec. -+ */ -+ int active_thread_type; - } AVCodecContext; - - /** -@@ -2608,6 +2655,26 @@ - const int *supported_samplerates; ///< array of supported audio samplerates, or NULL if unknown, array is terminated by 0 - const enum SampleFormat *sample_fmts; ///< array of supported sample formats, or NULL if unknown, array is terminated by -1 - const int64_t *channel_layouts; ///< array of support channel layouts, or NULL if unknown. array is terminated by 0 -+ -+ /** -+ * @defgroup framethreading Frame threading support functions. -+ * @{ -+ */ -+ /** -+ * If the codec allocates writable tables in init(), define init_copy() to re-allocate -+ * them in the copied contexts. Before calling it, priv_data will be set to a copy of -+ * the original. -+ */ -+ int (*init_copy)(AVCodecContext *); -+ /** -+ * Copy all necessary context variables from the last thread before starting the next one. -+ * If the codec doesn't define this, the next thread will start automatically; otherwise, -+ * the codec must call ff_report_frame_setup_done(). Do not assume anything about the -+ * contents of priv data except that it has been copied from the original some time after -+ * codec init. Will not be called if frame threading is disabled. -+ */ -+ int (*update_context)(AVCodecContext *, AVCodecContext *from); -+ /** @} */ - } AVCodec; - - /** -diff -Naur ffmpeg-mt-normal/libavcodec/beosthread.c ffmpeg-mt-thread/libavcodec/beosthread.c ---- ffmpeg-mt-normal/libavcodec/beosthread.c 2010-01-04 22:34:18.000000000 -0800 -+++ ffmpeg-mt-thread/libavcodec/beosthread.c 2010-01-04 22:36:29.000000000 -0800 -@@ -121,7 +121,13 @@ - int i; - ThreadContext *c; - -+ if(!(s->thread_type & FF_THREAD_SLICE)){ -+ av_log(s, AV_LOG_WARNING, "The requested thread algorithm is not supported with this thread library.\n"); -+ return 0; -+ } -+ - s->thread_count= thread_count; -+ s->active_thread_type= FF_THREAD_SLICE; - - assert(!s->thread_opaque); - c= av_mallocz(sizeof(ThreadContext)*thread_count); -diff -Naur ffmpeg-mt-normal/libavcodec/dsputil.c ffmpeg-mt-thread/libavcodec/dsputil.c ---- ffmpeg-mt-normal/libavcodec/dsputil.c 2010-01-04 22:34:18.000000000 -0800 -+++ ffmpeg-mt-thread/libavcodec/dsputil.c 2010-01-04 22:36:29.000000000 -0800 -@@ -441,7 +441,7 @@ - - /* draw the edges of width 'w' of an image of size width, height */ - //FIXME check that this is ok for mpeg4 interlaced --static void draw_edges_c(uint8_t *buf, int wrap, int width, int height, int w) -+static void draw_edges_c(uint8_t *buf, int wrap, int width, int height, int w, int sides) - { - uint8_t *ptr, *last_line; - int i; -@@ -449,8 +449,8 @@ - last_line = buf + (height - 1) * wrap; - for(i=0;i -@@ -3326,7 +3327,14 @@ - return -1; - } - if(s->pict_type == FF_B_TYPE){ -- while(s->next_picture.mbskip_table[ s->mb_index2xy[ mb_num ] ]) mb_num++; -+ int mb_x = 0, mb_y = 0; -+ -+ while(s->next_picture.mbskip_table[ s->mb_index2xy[ mb_num ] ]) { -+ if (!mb_x) ff_await_frame_progress((AVFrame*)s->next_picture_ptr, mb_y++); -+ mb_num++; -+ if (++mb_x == s->mb_width) mb_x = 0; -+ } -+ - if(mb_num >= s->mb_num) return -1; // slice contains just skipped MBs which where already decoded - } - -@@ -4965,6 +4973,8 @@ - s->last_mv[i][1][0]= - s->last_mv[i][1][1]= 0; - } -+ -+ ff_await_frame_progress((AVFrame*)s->next_picture_ptr, s->mb_y); - } - - /* if we skipped it in the future P Frame than skip it now too */ -@@ -5144,6 +5154,12 @@ - if(s->codec_id==CODEC_ID_MPEG4){ - if(mpeg4_is_resync(s)){ - const int delta= s->mb_x + 1 == s->mb_width ? 2 : 1; -+ -+ if(s->pict_type==FF_B_TYPE){ -+ ff_await_frame_progress((AVFrame*)s->next_picture_ptr, -+ (s->mb_x + delta >= s->mb_width) ? FFMIN(s->mb_y+1, s->mb_height-1) : s->mb_y); -+ } -+ - if(s->pict_type==FF_B_TYPE && s->next_picture.mbskip_table[xy + delta]) - return SLICE_OK; - return SLICE_END; -diff -Naur ffmpeg-mt-normal/libavcodec/h263dec.c ffmpeg-mt-thread/libavcodec/h263dec.c ---- ffmpeg-mt-normal/libavcodec/h263dec.c 2010-01-04 22:34:18.000000000 -0800 -+++ ffmpeg-mt-thread/libavcodec/h263dec.c 2010-01-04 22:36:29.000000000 -0800 -@@ -33,6 +33,7 @@ - #include "mpeg4video_parser.h" - #include "msmpeg4.h" - #include "vdpau_internal.h" -+#include "thread.h" - - //#define DEBUG - //#define PRINT_FRAME_TIME -@@ -239,6 +240,7 @@ - if(++s->mb_x >= s->mb_width){ - s->mb_x=0; - ff_draw_horiz_band(s, s->mb_y*mb_size, mb_size); -+ MPV_report_decode_progress(s); - s->mb_y++; - } - return 0; -@@ -259,6 +261,7 @@ - } - - ff_draw_horiz_band(s, s->mb_y*mb_size, mb_size); -+ MPV_report_decode_progress(s); - - s->mb_x= 0; - } -@@ -622,6 +625,8 @@ - if(MPV_frame_start(s, avctx) < 0) - return -1; - -+ if (!s->divx_packed) ff_report_frame_setup_done(avctx); -+ - if (CONFIG_MPEG4_VDPAU_DECODER && (s->avctx->codec->capabilities & CODEC_CAP_HWACCEL_VDPAU)) { - ff_vdpau_mpeg4_decode_picture(s, buf, buf_size); - goto frame_end; -@@ -743,6 +748,7 @@ - .flush= ff_mpeg_flush, - .long_name= NULL_IF_CONFIG_SMALL("MPEG-4 part 2"), - .pix_fmts= ff_hwaccel_pixfmt_list_420, -+ .update_context= ONLY_IF_THREADS_ENABLED(ff_mpeg_update_context) - }; - - AVCodec h263_decoder = { -diff -Naur ffmpeg-mt-normal/libavcodec/h264.c ffmpeg-mt-thread/libavcodec/h264.c ---- ffmpeg-mt-normal/libavcodec/h264.c 2010-01-04 22:34:18.000000000 -0800 -+++ ffmpeg-mt-thread/libavcodec/h264.c 2010-01-04 22:36:29.000000000 -0800 -@@ -35,6 +35,7 @@ - #include "golomb.h" - #include "mathops.h" - #include "rectangle.h" -+#include "thread.h" - #include "vdpau_internal.h" - - #include "cabac.h" -@@ -981,11 +982,27 @@ - } - } - -+static void await_reference_mb_row(H264Context * const h, Picture *ref, int mb_y) -+{ -+ int ref_field = ref->reference - 1; -+ int ref_field_picture = ref->field_picture; -+ int ref_height = 16*h->s.mb_height >> ref_field_picture; -+ -+ if(!USE_FRAME_THREADING(h->s.avctx)) -+ return; -+ -+ //FIXME it can be safe to access mb stuff -+ //even if pixels aren't deblocked yet -+ -+ ff_await_field_progress((AVFrame*)ref, FFMIN(16*mb_y >> ref_field_picture, ref_height-1), -+ ref_field_picture && ref_field); -+} -+ - static inline void pred_direct_motion(H264Context * const h, int *mb_type){ - MpegEncContext * const s = &h->s; - int b8_stride = h->b8_stride; - int b4_stride = h->b_stride; -- int mb_xy = h->mb_xy; -+ int mb_xy = h->mb_xy, mb_y = s->mb_y; - int mb_type_col[2]; - const int16_t (*l1mv0)[2], (*l1mv1)[2]; - const int8_t *l1ref0, *l1ref1; -@@ -995,6 +1012,8 @@ - - assert(h->ref_list[1][0].reference&3); - -+ await_reference_mb_row(h, &h->ref_list[1][0], s->mb_y + !!IS_INTERLACED(*mb_type)); -+ - #define MB_TYPE_16x16_OR_INTRA (MB_TYPE_16x16|MB_TYPE_INTRA4x4|MB_TYPE_INTRA16x16|MB_TYPE_INTRA_PCM) - - if(IS_INTERLACED(h->ref_list[1][0].mb_type[mb_xy])){ // AFL/AFR/FR/FL -> AFL/FL -@@ -1002,16 +1021,19 @@ - int cur_poc = s->current_picture_ptr->poc; - int *col_poc = h->ref_list[1]->field_poc; - int col_parity = FFABS(col_poc[0] - cur_poc) >= FFABS(col_poc[1] - cur_poc); -- mb_xy= s->mb_x + ((s->mb_y&~1) + col_parity)*s->mb_stride; -+ mb_y = (s->mb_y&~1) + col_parity; -+ mb_xy= s->mb_x + mb_y*s->mb_stride; - b8_stride = 0; - }else if(!(s->picture_structure & h->ref_list[1][0].reference) && !h->ref_list[1][0].mbaff){// FL -> FL & differ parity - int fieldoff= 2*(h->ref_list[1][0].reference)-3; -+ mb_y += fieldoff; - mb_xy += s->mb_stride*fieldoff; - } - goto single_col; - }else{ // AFL/AFR/FR/FL -> AFR/FR - if(IS_INTERLACED(*mb_type)){ // AFL /FL -> AFR/FR -- mb_xy= s->mb_x + (s->mb_y&~1)*s->mb_stride; -+ mb_y = s->mb_y&~1; -+ mb_xy= s->mb_x + mb_y*s->mb_stride; - mb_type_col[0] = h->ref_list[1][0].mb_type[mb_xy]; - mb_type_col[1] = h->ref_list[1][0].mb_type[mb_xy + s->mb_stride]; - b8_stride *= 3; -@@ -1045,6 +1067,8 @@ - } - } - -+ await_reference_mb_row(h, &h->ref_list[1][0], mb_y); -+ - l1mv0 = &h->ref_list[1][0].motion_val[0][h->mb2b_xy [mb_xy]]; - l1mv1 = &h->ref_list[1][0].motion_val[1][h->mb2b_xy [mb_xy]]; - l1ref0 = &h->ref_list[1][0].ref_index [0][h->mb2b8_xy[mb_xy]]; -@@ -1599,6 +1623,137 @@ - return h->pps.chroma_qp_table[t][qscale]; - } - -+static inline int mc_dir_part_y(H264Context *h, Picture *pic, int n, int height, -+ int y_offset, int list){ -+ int raw_my= h->mv_cache[list][ scan8[n] ][1]; -+ int filter_height= (raw_my&3) ? 2 : 0; -+ int full_my= (raw_my>>2) + y_offset; -+ int top = full_my - filter_height, bottom = full_my + height + filter_height; -+ -+ return FFMAX(abs(top), bottom); -+} -+ -+static inline void mc_part_y(H264Context *h, int refs[2][48], int n, int height, -+ int y_offset, int list0, int list1){ -+ MpegEncContext * const s = &h->s; -+ int my; -+ -+ y_offset += 16*(s->mb_y >> MB_FIELD); -+ -+ if(list0){ -+ int ref_n = h->ref_cache[0][ scan8[n] ], my; -+ Picture *ref= &h->ref_list[0][ref_n]; -+ -+ // Error resilience puts the current picture in the ref list. -+ // Don't try to wait on these as it will cause a deadlock. -+ // Fields can wait on each other, though. -+ if(ref->thread_opaque != s->current_picture.thread_opaque || -+ (ref->reference&3) != s->picture_structure) { -+ my = mc_dir_part_y(h, ref, n, height, y_offset, 0); -+ refs[0][ref_n] = FFMAX(refs[0][ref_n], my); -+ } -+ } -+ -+ if(list1){ -+ int ref_n = h->ref_cache[1][ scan8[n] ]; -+ Picture *ref= &h->ref_list[1][ref_n]; -+ -+ if(ref->thread_opaque != s->current_picture.thread_opaque || -+ (ref->reference&3) != s->picture_structure) { -+ my = mc_dir_part_y(h, ref, n, height, y_offset, 1); -+ refs[1][ref_n] = FFMAX(refs[1][ref_n], my); -+ } -+ } -+} -+ -+/** -+ * Wait until all reference frames are available for MC operations. -+ * -+ * @param h the H264 context -+ */ -+static void avail_motion(H264Context *h){ -+ MpegEncContext * const s = &h->s; -+ const int mb_xy= h->mb_xy; -+ const int mb_type= s->current_picture.mb_type[mb_xy]; -+ int refs[2][48]; -+ int ref, list; -+ -+ memset(refs, -1, sizeof(refs)); -+ -+ if(IS_16X16(mb_type)){ -+ mc_part_y(h, refs, 0, 16, 0, -+ IS_DIR(mb_type, 0, 0), IS_DIR(mb_type, 0, 1)); -+ }else if(IS_16X8(mb_type)){ -+ mc_part_y(h, refs, 0, 8, 0, -+ IS_DIR(mb_type, 0, 0), IS_DIR(mb_type, 0, 1)); -+ mc_part_y(h, refs, 8, 8, 8, -+ IS_DIR(mb_type, 1, 0), IS_DIR(mb_type, 1, 1)); -+ }else if(IS_8X16(mb_type)){ -+ mc_part_y(h, refs, 0, 16, 0, -+ IS_DIR(mb_type, 0, 0), IS_DIR(mb_type, 0, 1)); -+ mc_part_y(h, refs, 4, 16, 0, -+ IS_DIR(mb_type, 1, 0), IS_DIR(mb_type, 1, 1)); -+ }else{ -+ int i; -+ -+ assert(IS_8X8(mb_type)); -+ -+ for(i=0; i<4; i++){ -+ const int sub_mb_type= h->sub_mb_type[i]; -+ const int n= 4*i; -+ int y_offset= (i&2)<<2; -+ -+ if(IS_SUB_8X8(sub_mb_type)){ -+ mc_part_y(h, refs, n , 8, y_offset, -+ IS_DIR(sub_mb_type, 0, 0), IS_DIR(sub_mb_type, 0, 1)); -+ }else if(IS_SUB_8X4(sub_mb_type)){ -+ mc_part_y(h, refs, n , 4, y_offset, -+ IS_DIR(sub_mb_type, 0, 0), IS_DIR(sub_mb_type, 0, 1)); -+ mc_part_y(h, refs, n+2, 4, y_offset+4, -+ IS_DIR(sub_mb_type, 0, 0), IS_DIR(sub_mb_type, 0, 1)); -+ }else if(IS_SUB_4X8(sub_mb_type)){ -+ mc_part_y(h, refs, n , 8, y_offset, -+ IS_DIR(sub_mb_type, 0, 0), IS_DIR(sub_mb_type, 0, 1)); -+ mc_part_y(h, refs, n+1, 8, y_offset, -+ IS_DIR(sub_mb_type, 0, 0), IS_DIR(sub_mb_type, 0, 1)); -+ }else{ -+ int j; -+ assert(IS_SUB_4X4(sub_mb_type)); -+ for(j=0; j<4; j++){ -+ int sub_y_offset= y_offset + 2*(j&2); -+ mc_part_y(h, refs, n+j, 4, sub_y_offset, -+ IS_DIR(sub_mb_type, 0, 0), IS_DIR(sub_mb_type, 0, 1)); -+ } -+ } -+ } -+ } -+ -+ for(list=h->list_count-1; list>=0; list--){ -+ for(ref=0; ref<48; ref++){ -+ int row = refs[list][ref]; -+ if(row >= 0){ -+ Picture *ref_pic = &h->ref_list[list][ref]; -+ int ref_field = ref_pic->reference - 1; -+ int ref_field_picture = ref_pic->field_picture; -+ int pic_height = 16*s->mb_height >> ref_field_picture; -+ -+ row <<= MB_MBAFF; -+ -+ if(!FIELD_PICTURE && ref_field_picture){ // frame referencing two fields -+ ff_await_field_progress((AVFrame*)ref_pic, FFMIN((row >> 1) - !(row&1), pic_height-1), 1); -+ ff_await_field_progress((AVFrame*)ref_pic, FFMIN((row >> 1) , pic_height-1), 0); -+ }else if(FIELD_PICTURE && !ref_field_picture){ // field referencing one field of a frame -+ ff_await_field_progress((AVFrame*)ref_pic, FFMIN(row*2 + ref_field , pic_height-1), 0); -+ }else if(FIELD_PICTURE){ -+ ff_await_field_progress((AVFrame*)ref_pic, FFMIN(row, pic_height-1), ref_field); -+ }else{ -+ ff_await_field_progress((AVFrame*)ref_pic, FFMIN(row, pic_height-1), 0); -+ } -+ } -+ } -+ } -+} -+ - static inline void mc_dir_part(H264Context *h, Picture *pic, int n, int square, int chroma_height, int delta, int list, - uint8_t *dest_y, uint8_t *dest_cb, uint8_t *dest_cr, - int src_x_offset, int src_y_offset, -@@ -1802,6 +1957,7 @@ - - assert(IS_INTER(mb_type)); - -+ if(USE_FRAME_THREADING(s->avctx)) avail_motion(h); - prefetch_motion(h, 0); - - if(IS_16X16(mb_type)){ -@@ -2205,7 +2361,7 @@ - if(avctx->extradata_size > 0 && avctx->extradata && - *(char *)avctx->extradata == 1){ - h->is_avc = 1; -- h->got_avcC = 0; -+ h->got_extradata = 0; - } else { - h->is_avc = 0; - } -@@ -2223,6 +2379,109 @@ - return 0; - } - -+static void copy_picture_range(Picture **to, Picture **from, int count, MpegEncContext *new_base, MpegEncContext *old_base) -+{ -+ int i; -+ -+ for (i=0; istart_field, &from->start_field, (char*)&to->end_field - (char*)&to->start_field) -+static int decode_update_context(AVCodecContext *dst, AVCodecContext *src){ -+ H264Context *h= dst->priv_data, *h1= src->priv_data; -+ MpegEncContext * const s = &h->s, * const s1 = &h1->s; -+ int inited = s->context_initialized, err; -+ int i; -+ -+ if(!s1->context_initialized) return 0; -+ -+ err = ff_mpeg_update_context(dst, src); -+ if(err) return err; -+ -+ //FIXME handle width/height changing -+ if(!inited){ -+ memcpy(&h->s + 1, &h1->s + 1, sizeof(H264Context) - sizeof(MpegEncContext)); //copy all fields after MpegEnc -+ memset(h->sps_buffers, 0, sizeof(h->sps_buffers)); -+ memset(h->pps_buffers, 0, sizeof(h->pps_buffers)); -+ alloc_tables(h); -+ context_init(h); -+ -+ for(i=0; i<2; i++){ -+ h->rbsp_buffer[i] = NULL; -+ h->rbsp_buffer_size[i] = 0; -+ } -+ -+ h->thread_context[0] = h; -+ -+ // frame_start may not be called for the next thread (if it's decoding a bottom field) -+ // so this has to be allocated here -+ h->s.obmc_scratchpad = av_malloc(16*2*s->linesize + 8*2*s->uvlinesize); -+ } -+ -+ //extradata/NAL handling -+ h->is_avc = h1->is_avc; -+ h->got_extradata = h1->got_extradata; -+ -+ //SPS/PPS -+ copy_parameter_set((void**)h->sps_buffers, (void**)h1->sps_buffers, MAX_SPS_COUNT, sizeof(SPS)); -+ h->sps = h1->sps; -+ copy_parameter_set((void**)h->pps_buffers, (void**)h1->pps_buffers, MAX_PPS_COUNT, sizeof(PPS)); -+ h->pps = h1->pps; -+ -+ //Dequantization matrices -+ //FIXME these are big - can they be only copied when PPS changes? -+ copy_fields(h, h1, dequant4_buffer, dequant4_coeff); -+ -+ for(i=0; i<6; i++) -+ h->dequant4_coeff[i] = h->dequant4_buffer[0] + (h1->dequant4_coeff[i] - h1->dequant4_buffer[0]); -+ -+ for(i=0; i<2; i++) -+ h->dequant8_coeff[i] = h->dequant8_buffer[0] + (h1->dequant8_coeff[i] - h1->dequant8_buffer[0]); -+ -+ h->dequant_coeff_pps = h1->dequant_coeff_pps; -+ -+ //POC timing -+ copy_fields(h, h1, poc_lsb, use_weight); -+ -+ //reference lists -+ copy_fields(h, h1, ref_count, intra_gb); -+ -+ copy_picture_range(h->short_ref, h1->short_ref, 32, s, s1); -+ copy_picture_range(h->long_ref, h1->long_ref, 32, s, s1); -+ copy_picture_range(h->delayed_pic, h1->delayed_pic, MAX_DELAYED_PIC_COUNT+2, s, s1); -+ -+ h->last_slice_type = h1->last_slice_type; -+ -+ if(!s->current_picture_ptr) return 0; -+ -+ if(!s->dropable) { -+ execute_ref_pic_marking(h, h->mmco, h->mmco_index); -+ h->prev_poc_msb = h->poc_msb; -+ h->prev_poc_lsb = h->poc_lsb; -+ } -+ h->prev_frame_num_offset= h->frame_num_offset; -+ h->prev_frame_num = h->frame_num; -+ h->outputed_poc = h->next_outputed_poc; -+ -+ return 0; -+} -+ - static int frame_start(H264Context *h){ - MpegEncContext * const s = &h->s; - int i; -@@ -2255,11 +2514,11 @@ - /* can't be in alloc_tables because linesize isn't known there. - * FIXME: redo bipred weight to not require extra buffer? */ - for(i = 0; i < s->avctx->thread_count; i++) -- if(!h->thread_context[i]->s.obmc_scratchpad) -+ if(h->thread_context[i] && !h->thread_context[i]->s.obmc_scratchpad) - h->thread_context[i]->s.obmc_scratchpad = av_malloc(16*2*s->linesize + 8*2*s->uvlinesize); - - /* some macroblocks will be accessed before they're available */ -- if(FRAME_MBAFF || s->avctx->thread_count > 1) -+ if(FRAME_MBAFF || USE_AVCODEC_EXECUTE(s->avctx)) - memset(h->slice_table, -1, (s->mb_height*s->mb_stride-1) * sizeof(*h->slice_table)); - - // s->decode= (s->flags&CODEC_FLAG_PSNR) || !s->encoding || s->current_picture.reference /*|| h->contains_intra*/ || 1; -@@ -2275,11 +2534,164 @@ - - s->current_picture_ptr->field_poc[0]= - s->current_picture_ptr->field_poc[1]= INT_MAX; -+ -+ h->next_output_pic = NULL; -+ - assert(s->current_picture_ptr->long_ref==0); - - return 0; - } - -+/** -+ * Run setup operations that must be run after slice header decoding. -+ * This includes finding the next displayed frame. -+ * -+ * @param h h264 master context -+ */ -+static void decode_postinit(H264Context *h){ -+ MpegEncContext * const s = &h->s; -+ Picture *out = s->current_picture_ptr; -+ Picture *cur = s->current_picture_ptr; -+ int i, pics, out_of_order, out_idx; -+ -+ s->current_picture_ptr->qscale_type= FF_QSCALE_TYPE_H264; -+ s->current_picture_ptr->pict_type= s->pict_type; -+ -+ if (h->next_output_pic) return; -+ -+ if (cur->field_poc[0]==INT_MAX || cur->field_poc[1]==INT_MAX) { -+ ff_report_frame_setup_done(s->avctx); -+ return; -+ } -+ -+ cur->interlaced_frame = 0; -+ cur->repeat_pict = 0; -+ -+ /* Signal interlacing information externally. */ -+ /* Prioritize picture timing SEI information over used decoding process if it exists. */ -+ -+ if(h->sps.pic_struct_present_flag){ -+ switch (h->sei_pic_struct) -+ { -+ case SEI_PIC_STRUCT_FRAME: -+ break; -+ case SEI_PIC_STRUCT_TOP_FIELD: -+ case SEI_PIC_STRUCT_BOTTOM_FIELD: -+ cur->interlaced_frame = 1; -+ break; -+ case SEI_PIC_STRUCT_TOP_BOTTOM: -+ case SEI_PIC_STRUCT_BOTTOM_TOP: -+ if (FIELD_OR_MBAFF_PICTURE) -+ cur->interlaced_frame = 1; -+ else -+ // try to flag soft telecine progressive -+ cur->interlaced_frame = h->prev_interlaced_frame; -+ break; -+ case SEI_PIC_STRUCT_TOP_BOTTOM_TOP: -+ case SEI_PIC_STRUCT_BOTTOM_TOP_BOTTOM: -+ // Signal the possibility of telecined film externally (pic_struct 5,6) -+ // From these hints, let the applications decide if they apply deinterlacing. -+ cur->repeat_pict = 1; -+ break; -+ case SEI_PIC_STRUCT_FRAME_DOUBLING: -+ // Force progressive here, as doubling interlaced frame is a bad idea. -+ cur->repeat_pict = 2; -+ break; -+ case SEI_PIC_STRUCT_FRAME_TRIPLING: -+ cur->repeat_pict = 4; -+ break; -+ } -+ -+ if ((h->sei_ct_type & 3) && h->sei_pic_struct <= SEI_PIC_STRUCT_BOTTOM_TOP) -+ cur->interlaced_frame = (h->sei_ct_type & (1<<1)) != 0; -+ }else{ -+ /* Derive interlacing flag from used decoding process. */ -+ cur->interlaced_frame = FIELD_OR_MBAFF_PICTURE; -+ } -+ h->prev_interlaced_frame = cur->interlaced_frame; -+ -+ if (cur->field_poc[0] != cur->field_poc[1]){ -+ /* Derive top_field_first from field pocs. */ -+ cur->top_field_first = cur->field_poc[0] < cur->field_poc[1]; -+ }else{ -+ if(cur->interlaced_frame || h->sps.pic_struct_present_flag){ -+ /* Use picture timing SEI information. Even if it is a information of a past frame, better than nothing. */ -+ if(h->sei_pic_struct == SEI_PIC_STRUCT_TOP_BOTTOM -+ || h->sei_pic_struct == SEI_PIC_STRUCT_TOP_BOTTOM_TOP) -+ cur->top_field_first = 1; -+ else -+ cur->top_field_first = 0; -+ }else{ -+ /* Most likely progressive */ -+ cur->top_field_first = 0; -+ } -+ } -+ -+ //FIXME do something with unavailable reference frames -+ -+ /* Sort B-frames into display order */ -+ -+ if(h->sps.bitstream_restriction_flag -+ && s->avctx->has_b_frames < h->sps.num_reorder_frames){ -+ s->avctx->has_b_frames = h->sps.num_reorder_frames; -+ s->low_delay = 0; -+ } -+ -+ if( s->avctx->strict_std_compliance >= FF_COMPLIANCE_STRICT -+ && !h->sps.bitstream_restriction_flag){ -+ s->avctx->has_b_frames= MAX_DELAYED_PIC_COUNT; -+ s->low_delay= 0; -+ } -+ -+ pics = 0; -+ while(h->delayed_pic[pics]) pics++; -+ -+ assert(pics <= MAX_DELAYED_PIC_COUNT); -+ -+ h->delayed_pic[pics++] = cur; -+ if(cur->reference == 0) -+ cur->reference = DELAYED_PIC_REF; -+ -+ out = h->delayed_pic[0]; -+ out_idx = 0; -+ for(i=1; h->delayed_pic[i] && !h->delayed_pic[i]->key_frame && !h->delayed_pic[i]->mmco_reset; i++) -+ if(h->delayed_pic[i]->poc < out->poc){ -+ out = h->delayed_pic[i]; -+ out_idx = i; -+ } -+ if(s->avctx->has_b_frames == 0 && (h->delayed_pic[0]->key_frame || h->delayed_pic[0]->mmco_reset)) -+ h->next_outputed_poc= INT_MIN; -+ out_of_order = out->poc < h->next_outputed_poc; -+ -+ if(h->sps.bitstream_restriction_flag && s->avctx->has_b_frames >= h->sps.num_reorder_frames) -+ { } -+ else if((out_of_order && pics-1 == s->avctx->has_b_frames && s->avctx->has_b_frames < MAX_DELAYED_PIC_COUNT) -+ || (s->low_delay && -+ ((h->next_outputed_poc != INT_MIN && out->poc > h->next_outputed_poc + 2) -+ || cur->pict_type == FF_B_TYPE))) -+ { -+ s->low_delay = 0; -+ s->avctx->has_b_frames++; -+ } -+ -+ if(out_of_order || pics > s->avctx->has_b_frames){ -+ out->reference &= ~DELAYED_PIC_REF; -+ for(i=out_idx; h->delayed_pic[i]; i++) -+ h->delayed_pic[i] = h->delayed_pic[i+1]; -+ } -+ if(!out_of_order && pics > s->avctx->has_b_frames){ -+ h->next_output_pic = out; -+ if(out_idx==0 && h->delayed_pic[0] && (h->delayed_pic[0]->key_frame || h->delayed_pic[0]->mmco_reset)) { -+ h->next_outputed_poc = INT_MIN; -+ } else -+ h->next_outputed_poc = out->poc; -+ }else{ -+ av_log(s->avctx, AV_LOG_DEBUG, "no picture\n"); -+ } -+ -+ ff_report_frame_setup_done(s->avctx); -+} -+ - static inline void backup_mb_border(H264Context *h, uint8_t *src_y, uint8_t *src_cb, uint8_t *src_cr, int linesize, int uvlinesize, int simple){ - MpegEncContext * const s = &h->s; - int i; -@@ -3153,7 +3565,7 @@ - h->delayed_pic[i]->reference= 0; - h->delayed_pic[i]= NULL; - } -- h->outputed_poc= INT_MIN; -+ h->outputed_poc=h->next_outputed_poc= INT_MIN; - h->prev_interlaced_frame = 1; - idr(h); - if(h->s.current_picture_ptr) -@@ -3626,19 +4038,23 @@ - AVCodecContext * const avctx= s->avctx; - s->mb_y= 0; - -- s->current_picture_ptr->qscale_type= FF_QSCALE_TYPE_H264; -- s->current_picture_ptr->pict_type= s->pict_type; -+ if (!s->dropable) -+ ff_report_field_progress((AVFrame*)s->current_picture_ptr, (16*s->mb_height >> FIELD_PICTURE) - 1, -+ s->picture_structure==PICT_BOTTOM_FIELD); - - if (CONFIG_H264_VDPAU_DECODER && s->avctx->codec->capabilities&CODEC_CAP_HWACCEL_VDPAU) - ff_vdpau_h264_set_reference_frames(s); - -- if(!s->dropable) { -- execute_ref_pic_marking(h, h->mmco, h->mmco_index); -- h->prev_poc_msb= h->poc_msb; -- h->prev_poc_lsb= h->poc_lsb; -+ if(!USE_FRAME_THREADING(avctx)){ -+ if(!s->dropable) { -+ execute_ref_pic_marking(h, h->mmco, h->mmco_index); -+ h->prev_poc_msb= h->poc_msb; -+ h->prev_poc_lsb= h->poc_lsb; -+ } -+ h->prev_frame_num_offset= h->frame_num_offset; -+ h->prev_frame_num= h->frame_num; -+ h->outputed_poc = h->next_outputed_poc; - } -- h->prev_frame_num_offset= h->frame_num_offset; -- h->prev_frame_num= h->frame_num; - - if (avctx->hwaccel) { - if (avctx->hwaccel->end_frame(avctx) < 0) -@@ -3798,8 +4214,10 @@ - - if (s->context_initialized - && ( s->width != s->avctx->width || s->height != s->avctx->height)) { -- if(h != h0) -+ if(h != h0 || USE_FRAME_THREADING(s->avctx)) { -+ av_log_missing_feature(s->avctx, "Width/height changing with threads is", 0); - return -1; // width / height changed during parallelized decoding -+ } - free_tables(h); - flush_dpb(s->avctx); - MPV_common_end(s); -@@ -3831,20 +4249,25 @@ - init_scan_tables(h); - alloc_tables(h); - -- for(i = 1; i < s->avctx->thread_count; i++) { -- H264Context *c; -- c = h->thread_context[i] = av_malloc(sizeof(H264Context)); -- memcpy(c, h->s.thread_context[i], sizeof(MpegEncContext)); -- memset(&c->s + 1, 0, sizeof(H264Context) - sizeof(MpegEncContext)); -- c->sps = h->sps; -- c->pps = h->pps; -- init_scan_tables(c); -- clone_tables(c, h); -- } -- -- for(i = 0; i < s->avctx->thread_count; i++) -- if(context_init(h->thread_context[i]) < 0) -+ if (!USE_AVCODEC_EXECUTE(s->avctx)) { -+ if (context_init(h) < 0) - return -1; -+ } else { -+ for(i = 1; i < s->avctx->thread_count; i++) { -+ H264Context *c; -+ c = h->thread_context[i] = av_malloc(sizeof(H264Context)); -+ memcpy(c, h->s.thread_context[i], sizeof(MpegEncContext)); -+ memset(&c->s + 1, 0, sizeof(H264Context) - sizeof(MpegEncContext)); -+ c->sps = h->sps; -+ c->pps = h->pps; -+ init_scan_tables(c); -+ clone_tables(c, h); -+ } -+ -+ for(i = 0; i < s->avctx->thread_count; i++) -+ if(context_init(h->thread_context[i]) < 0) -+ return -1; -+ } - } - - h->frame_num= get_bits(&s->gb, h->sps.log2_max_frame_num); -@@ -3865,6 +4288,10 @@ - h->mb_field_decoding_flag= s->picture_structure != PICT_FRAME; - - if(h0->current_slice == 0){ -+ if(h->frame_num != h->prev_frame_num && -+ (h->prev_frame_num+1)%(1<sps.log2_max_frame_num) < (h->frame_num - h->sps.ref_frame_count)) -+ h->prev_frame_num = h->frame_num - h->sps.ref_frame_count - 1; -+ - while(h->frame_num != h->prev_frame_num && - h->frame_num != (h->prev_frame_num+1)%(1<sps.log2_max_frame_num)){ - av_log(NULL, AV_LOG_DEBUG, "Frame num gap %d %d\n", h->frame_num, h->prev_frame_num); -@@ -3873,6 +4300,8 @@ - h->prev_frame_num++; - h->prev_frame_num %= 1<sps.log2_max_frame_num; - s->current_picture_ptr->frame_num= h->prev_frame_num; -+ ff_report_field_progress((AVFrame*)s->current_picture_ptr, INT_MAX, 0); -+ ff_report_field_progress((AVFrame*)s->current_picture_ptr, INT_MAX, 1); - execute_ref_pic_marking(h, NULL, 0); - } - -@@ -4006,6 +4435,7 @@ - if(h->slice_type_nos!=FF_I_TYPE && decode_ref_pic_list_reordering(h) < 0) - return -1; - -+ /* - if(h->slice_type_nos!=FF_I_TYPE){ - s->last_picture_ptr= &h->ref_list[0][0]; - ff_copy_picture(&s->last_picture, s->last_picture_ptr); -@@ -4014,6 +4444,7 @@ - s->next_picture_ptr= &h->ref_list[1][0]; - ff_copy_picture(&s->next_picture, s->next_picture_ptr); - } -+ */ - - if( (h->pps.weighted_pred && h->slice_type_nos == FF_P_TYPE ) - || (h->pps.weighted_bipred_idc==1 && h->slice_type_nos== FF_B_TYPE ) ) -@@ -4130,7 +4561,8 @@ - +(h->ref_list[j][i].reference&3); - } - -- h->emu_edge_width= (s->flags&CODEC_FLAG_EMU_EDGE) ? 0 : 16; -+ //FIXME: fix draw_edges+PAFF+frame threads -+ h->emu_edge_width= (s->flags&CODEC_FLAG_EMU_EDGE || (!h->sps.frame_mbs_only_flag && USE_FRAME_THREADING(s->avctx))) ? 0 : 16; - h->emu_edge_height= (FRAME_MBAFF || FIELD_PICTURE) ? 0 : h->emu_edge_width; - - s->avctx->refs= h->sps.ref_frame_count; -@@ -6672,6 +7104,40 @@ - #endif - } - -+/** -+ * Draw edges and report progress for the last MB row. -+ */ -+static void decode_finish_row(H264Context *h){ -+ MpegEncContext * const s = &h->s; -+ int top = 16*(s->mb_y >> FIELD_PICTURE); -+ int height = 16 << FRAME_MBAFF; -+ int deblock_border = (16 + 4) << FRAME_MBAFF; -+ int pic_height = 16*s->mb_height >> FIELD_PICTURE; -+ -+ if (h->deblocking_filter) { -+ if((top + height) >= pic_height) -+ height += deblock_border; -+ -+ top -= deblock_border; -+ } -+ -+ if (top >= pic_height || (top + height) < h->emu_edge_height) -+ return; -+ -+ height = FFMIN(height, pic_height - top); -+ if (top < h->emu_edge_height) { -+ height = top+height; -+ top = 0; -+ } -+ -+ ff_draw_horiz_band(s, top, height); -+ -+ if (s->dropable) return; -+ -+ ff_report_field_progress((AVFrame*)s->current_picture_ptr, top + height - 1, -+ s->picture_structure==PICT_BOTTOM_FIELD); -+} -+ - static int decode_slice(struct AVCodecContext *avctx, void *arg){ - H264Context *h = *(void**)arg; - MpegEncContext * const s = &h->s; -@@ -6733,7 +7199,7 @@ - - if( ++s->mb_x >= s->mb_width ) { - s->mb_x = 0; -- ff_draw_horiz_band(s, 16*s->mb_y, 16); -+ decode_finish_row(h); - ++s->mb_y; - if(FIELD_OR_MBAFF_PICTURE) { - ++s->mb_y; -@@ -6770,7 +7236,7 @@ - - if(++s->mb_x >= s->mb_width){ - s->mb_x=0; -- ff_draw_horiz_band(s, 16*s->mb_y, 16); -+ decode_finish_row(h); - ++s->mb_y; - if(FIELD_OR_MBAFF_PICTURE) { - ++s->mb_y; -@@ -7482,7 +7948,7 @@ - int context_count = 0; - int next_avc= h->is_avc ? 0 : buf_size; - -- h->max_contexts = avctx->thread_count; -+ h->max_contexts = USE_AVCODEC_EXECUTE(s->avctx) ? avctx->thread_count : 1; - #if 0 - int i; - for(i=0; i<50; i++){ -@@ -7575,14 +8041,21 @@ - if((err = decode_slice_header(hx, h))) - break; - -- if (s->avctx->hwaccel && h->current_slice == 1) { -- if (s->avctx->hwaccel->start_frame(s->avctx, NULL, 0) < 0) -- return -1; -- } -- - s->current_picture_ptr->key_frame |= - (hx->nal_unit_type == NAL_IDR_SLICE) || - (h->sei_recovery_frame_cnt >= 0); -+ -+ if (h->current_slice == 1) { -+ if(!(s->flags2 & CODEC_FLAG2_CHUNKS)) { -+ decode_postinit(h); -+ } -+ -+ if (s->avctx->hwaccel) { -+ if (s->avctx->hwaccel->start_frame(s->avctx, NULL, 0) < 0) -+ return -1; -+ } -+ } -+ - if(hx->redundant_pic_count==0 && hx->s.hurry_up < 5 - && (avctx->skip_frame < AVDISCARD_NONREF || hx->nal_ref_idc) - && (avctx->skip_frame < AVDISCARD_BIDIR || hx->slice_type_nos!=FF_B_TYPE) -@@ -7711,7 +8184,9 @@ - Picture *out; - int i, out_idx; - --//FIXME factorize this with the output code below -+ s->current_picture_ptr = NULL; -+ -+//FIXME factorize this with the output code - out = h->delayed_pic[0]; - out_idx = 0; - for(i=1; h->delayed_pic[i] && !h->delayed_pic[i]->key_frame && !h->delayed_pic[i]->mmco_reset; i++) -@@ -7731,7 +8206,7 @@ - return 0; - } - -- if(h->is_avc && !h->got_avcC) { -+ if(h->is_avc && !h->got_extradata) { - int i, cnt, nalsize; - unsigned char *p = avctx->extradata; - if(avctx->extradata_size < 7) { -@@ -7769,13 +8244,13 @@ - // Now store right nal length size, that will be use to parse all other nals - h->nal_length_size = ((*(((char*)(avctx->extradata))+4))&0x03)+1; - // Do not reparse avcC -- h->got_avcC = 1; -+ h->got_extradata = 1; - } - -- if(!h->got_avcC && !h->is_avc && s->avctx->extradata_size){ -+ if(!h->got_extradata && !h->is_avc && s->avctx->extradata_size){ - if(decode_nal_units(h, s->avctx->extradata, s->avctx->extradata_size) < 0) - return -1; -- h->got_avcC = 1; -+ h->got_extradata = 1; - } - - buf_index=decode_nal_units(h, buf, buf_size); -@@ -7789,143 +8264,18 @@ - } - - if(!(s->flags2 & CODEC_FLAG2_CHUNKS) || (s->mb_y >= s->mb_height && s->mb_height)){ -- Picture *out = s->current_picture_ptr; -- Picture *cur = s->current_picture_ptr; -- int i, pics, out_of_order, out_idx; -+ -+ if(s->flags2 & CODEC_FLAG2_CHUNKS) decode_postinit(h); - - field_end(h); - -- if (cur->field_poc[0]==INT_MAX || cur->field_poc[1]==INT_MAX) { -+ if (!h->next_output_pic) { - /* Wait for second field. */ - *data_size = 0; - - } else { -- cur->interlaced_frame = 0; -- cur->repeat_pict = 0; -- -- /* Signal interlacing information externally. */ -- /* Prioritize picture timing SEI information over used decoding process if it exists. */ -- -- if(h->sps.pic_struct_present_flag){ -- switch (h->sei_pic_struct) -- { -- case SEI_PIC_STRUCT_FRAME: -- break; -- case SEI_PIC_STRUCT_TOP_FIELD: -- case SEI_PIC_STRUCT_BOTTOM_FIELD: -- cur->interlaced_frame = 1; -- break; -- case SEI_PIC_STRUCT_TOP_BOTTOM: -- case SEI_PIC_STRUCT_BOTTOM_TOP: -- if (FIELD_OR_MBAFF_PICTURE) -- cur->interlaced_frame = 1; -- else -- // try to flag soft telecine progressive -- cur->interlaced_frame = h->prev_interlaced_frame; -- break; -- case SEI_PIC_STRUCT_TOP_BOTTOM_TOP: -- case SEI_PIC_STRUCT_BOTTOM_TOP_BOTTOM: -- // Signal the possibility of telecined film externally (pic_struct 5,6) -- // From these hints, let the applications decide if they apply deinterlacing. -- cur->repeat_pict = 1; -- break; -- case SEI_PIC_STRUCT_FRAME_DOUBLING: -- // Force progressive here, as doubling interlaced frame is a bad idea. -- cur->repeat_pict = 2; -- break; -- case SEI_PIC_STRUCT_FRAME_TRIPLING: -- cur->repeat_pict = 4; -- break; -- } -- -- if ((h->sei_ct_type & 3) && h->sei_pic_struct <= SEI_PIC_STRUCT_BOTTOM_TOP) -- cur->interlaced_frame = (h->sei_ct_type & (1<<1)) != 0; -- }else{ -- /* Derive interlacing flag from used decoding process. */ -- cur->interlaced_frame = FIELD_OR_MBAFF_PICTURE; -- } -- h->prev_interlaced_frame = cur->interlaced_frame; -- -- if (cur->field_poc[0] != cur->field_poc[1]){ -- /* Derive top_field_first from field pocs. */ -- cur->top_field_first = cur->field_poc[0] < cur->field_poc[1]; -- }else{ -- if(cur->interlaced_frame || h->sps.pic_struct_present_flag){ -- /* Use picture timing SEI information. Even if it is a information of a past frame, better than nothing. */ -- if(h->sei_pic_struct == SEI_PIC_STRUCT_TOP_BOTTOM -- || h->sei_pic_struct == SEI_PIC_STRUCT_TOP_BOTTOM_TOP) -- cur->top_field_first = 1; -- else -- cur->top_field_first = 0; -- }else{ -- /* Most likely progressive */ -- cur->top_field_first = 0; -- } -- } -- -- //FIXME do something with unavailable reference frames -- -- /* Sort B-frames into display order */ -- -- if(h->sps.bitstream_restriction_flag -- && s->avctx->has_b_frames < h->sps.num_reorder_frames){ -- s->avctx->has_b_frames = h->sps.num_reorder_frames; -- s->low_delay = 0; -- } -- -- if( s->avctx->strict_std_compliance >= FF_COMPLIANCE_STRICT -- && !h->sps.bitstream_restriction_flag){ -- s->avctx->has_b_frames= MAX_DELAYED_PIC_COUNT; -- s->low_delay= 0; -- } -- -- pics = 0; -- while(h->delayed_pic[pics]) pics++; -- -- assert(pics <= MAX_DELAYED_PIC_COUNT); -- -- h->delayed_pic[pics++] = cur; -- if(cur->reference == 0) -- cur->reference = DELAYED_PIC_REF; -- -- out = h->delayed_pic[0]; -- out_idx = 0; -- for(i=1; h->delayed_pic[i] && !h->delayed_pic[i]->key_frame && !h->delayed_pic[i]->mmco_reset; i++) -- if(h->delayed_pic[i]->poc < out->poc){ -- out = h->delayed_pic[i]; -- out_idx = i; -- } -- if(s->avctx->has_b_frames == 0 && (h->delayed_pic[0]->key_frame || h->delayed_pic[0]->mmco_reset)) -- h->outputed_poc= INT_MIN; -- out_of_order = out->poc < h->outputed_poc; -- -- if(h->sps.bitstream_restriction_flag && s->avctx->has_b_frames >= h->sps.num_reorder_frames) -- { } -- else if((out_of_order && pics-1 == s->avctx->has_b_frames && s->avctx->has_b_frames < MAX_DELAYED_PIC_COUNT) -- || (s->low_delay && -- ((h->outputed_poc != INT_MIN && out->poc > h->outputed_poc + 2) -- || cur->pict_type == FF_B_TYPE))) -- { -- s->low_delay = 0; -- s->avctx->has_b_frames++; -- } -- -- if(out_of_order || pics > s->avctx->has_b_frames){ -- out->reference &= ~DELAYED_PIC_REF; -- for(i=out_idx; h->delayed_pic[i]; i++) -- h->delayed_pic[i] = h->delayed_pic[i+1]; -- } -- if(!out_of_order && pics > s->avctx->has_b_frames){ -- *data_size = sizeof(AVFrame); -- -- if(out_idx==0 && h->delayed_pic[0] && (h->delayed_pic[0]->key_frame || h->delayed_pic[0]->mmco_reset)) { -- h->outputed_poc = INT_MIN; -- } else -- h->outputed_poc = out->poc; -- *pict= *(AVFrame*)out; -- }else{ -- av_log(avctx, AV_LOG_DEBUG, "no picture\n"); -- } -+ *data_size = sizeof(AVFrame); -+ *pict = *(AVFrame*)h->next_output_pic; - } - } - -@@ -8168,10 +8518,11 @@ - NULL, - decode_end, - decode_frame, -- /*CODEC_CAP_DRAW_HORIZ_BAND |*/ CODEC_CAP_DR1 | CODEC_CAP_DELAY, -+ /*CODEC_CAP_DRAW_HORIZ_BAND |*/ CODEC_CAP_DR1 | CODEC_CAP_DELAY | CODEC_CAP_FRAME_THREADS, - .flush= flush_dpb, - .long_name = NULL_IF_CONFIG_SMALL("H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10"), - .pix_fmts= ff_hwaccel_pixfmt_list_420, -+ .update_context = ONLY_IF_THREADS_ENABLED(decode_update_context) - }; - - #if CONFIG_H264_VDPAU_DECODER -diff -Naur ffmpeg-mt-normal/libavcodec/h264.h ffmpeg-mt-thread/libavcodec/h264.h ---- ffmpeg-mt-normal/libavcodec/h264.h 2010-01-04 22:34:18.000000000 -0800 -+++ ffmpeg-mt-thread/libavcodec/h264.h 2010-01-04 22:36:29.000000000 -0800 -@@ -250,7 +250,7 @@ - * Used to parse AVC variant of h264 - */ - int is_avc; ///< this flag is != 0 if codec is avc1 -- int got_avcC; ///< flag used to parse avcC data only once -+ int got_extradata; ///< flag used to parse extradata only once - int nal_length_size; ///< Number of bytes used for nal length (1, 2 or 4) - - int chroma_qp[2]; //QPc -@@ -411,7 +411,9 @@ - according to picture reordering in slice header */ - int ref2frm[MAX_SLICES][2][64]; ///< reference to frame number lists, used in the loop filter, the first 2 are for -2,-1 - Picture *delayed_pic[MAX_DELAYED_PIC_COUNT+2]; //FIXME size? -+ Picture *next_output_pic; - int outputed_poc; -+ int next_outputed_poc; - - /** - * memory management control operations buffer. -diff -Naur ffmpeg-mt-normal/libavcodec/huffyuv.c ffmpeg-mt-thread/libavcodec/huffyuv.c ---- ffmpeg-mt-normal/libavcodec/huffyuv.c 2010-01-04 22:34:18.000000000 -0800 -+++ ffmpeg-mt-thread/libavcodec/huffyuv.c 2010-01-04 22:36:29.000000000 -0800 -@@ -32,6 +32,7 @@ - #include "get_bits.h" - #include "put_bits.h" - #include "dsputil.h" -+#include "thread.h" - - #define VLC_BITS 11 - -@@ -521,6 +522,28 @@ - - return 0; - } -+ -+static av_cold int decode_init_copy(AVCodecContext *avctx) -+{ -+ HYuvContext *s = avctx->priv_data; -+ int i; -+ -+ avctx->coded_frame= &s->picture; -+ alloc_temp(s); -+ -+ for (i = 0; i < 6; i++) -+ s->vlc[i].table = NULL; -+ -+ if(s->version==2){ -+ if(read_huffman_tables(s, ((uint8_t*)avctx->extradata)+4, avctx->extradata_size) < 0) -+ return -1; -+ }else{ -+ if(read_old_huffman_tables(s) < 0) -+ return -1; -+ } -+ -+ return 0; -+} - #endif /* CONFIG_HUFFYUV_DECODER || CONFIG_FFVHUFF_DECODER */ - - #if CONFIG_HUFFYUV_ENCODER || CONFIG_FFVHUFF_ENCODER -@@ -944,10 +967,10 @@ - s->dsp.bswap_buf((uint32_t*)s->bitstream_buffer, (const uint32_t*)buf, buf_size/4); - - if(p->data[0]) -- avctx->release_buffer(avctx, p); -+ ff_release_buffer(avctx, p); - - p->reference= 0; -- if(avctx->get_buffer(avctx, p) < 0){ -+ if(ff_get_buffer(avctx, p) < 0){ - av_log(avctx, AV_LOG_ERROR, "get_buffer() failed\n"); - return -1; - } -@@ -1417,8 +1440,9 @@ - NULL, - decode_end, - decode_frame, -- CODEC_CAP_DR1 | CODEC_CAP_DRAW_HORIZ_BAND, -+ CODEC_CAP_DR1 | CODEC_CAP_DRAW_HORIZ_BAND | CODEC_CAP_FRAME_THREADS, - NULL, -+ .init_copy = ONLY_IF_THREADS_ENABLED(decode_init_copy), - .long_name = NULL_IF_CONFIG_SMALL("Huffyuv / HuffYUV"), - }; - #endif -@@ -1433,8 +1457,9 @@ - NULL, - decode_end, - decode_frame, -- CODEC_CAP_DR1 | CODEC_CAP_DRAW_HORIZ_BAND, -+ CODEC_CAP_DR1 | CODEC_CAP_DRAW_HORIZ_BAND | CODEC_CAP_FRAME_THREADS, - NULL, -+ .init_copy = ONLY_IF_THREADS_ENABLED(decode_init_copy), - .long_name = NULL_IF_CONFIG_SMALL("Huffyuv FFmpeg variant"), - }; - #endif -diff -Naur ffmpeg-mt-normal/libavcodec/mdec.c ffmpeg-mt-thread/libavcodec/mdec.c ---- ffmpeg-mt-normal/libavcodec/mdec.c 2010-01-04 22:34:18.000000000 -0800 -+++ ffmpeg-mt-thread/libavcodec/mdec.c 2010-01-04 22:36:29.000000000 -0800 -@@ -31,6 +31,7 @@ - #include "dsputil.h" - #include "mpegvideo.h" - #include "mpeg12.h" -+#include "thread.h" - - typedef struct MDECContext{ - AVCodecContext *avctx; -@@ -162,10 +163,10 @@ - int i; - - if(p->data[0]) -- avctx->release_buffer(avctx, p); -+ ff_release_buffer(avctx, p); - - p->reference= 0; -- if(avctx->get_buffer(avctx, p) < 0){ -+ if(ff_get_buffer(avctx, p) < 0){ - av_log(avctx, AV_LOG_ERROR, "get_buffer() failed\n"); - return -1; - } -@@ -236,6 +237,18 @@ - return 0; - } - -+static av_cold int decode_init_copy(AVCodecContext *avctx){ -+ MDECContext * const a = avctx->priv_data; -+ AVFrame *p = (AVFrame*)&a->picture; -+ -+ avctx->coded_frame= p; -+ a->avctx= avctx; -+ -+ p->qscale_table= av_mallocz( p->qstride * a->mb_height); -+ -+ return 0; -+} -+ - static av_cold int decode_end(AVCodecContext *avctx){ - MDECContext * const a = avctx->priv_data; - -@@ -255,7 +268,8 @@ - NULL, - decode_end, - decode_frame, -- CODEC_CAP_DR1, -+ CODEC_CAP_DR1 | CODEC_CAP_FRAME_THREADS, - .long_name= NULL_IF_CONFIG_SMALL("Sony PlayStation MDEC (Motion DECoder)"), -+ .init_copy= ONLY_IF_THREADS_ENABLED(decode_init_copy) - }; - -diff -Naur ffmpeg-mt-normal/libavcodec/mimic.c ffmpeg-mt-thread/libavcodec/mimic.c ---- ffmpeg-mt-normal/libavcodec/mimic.c 2010-01-04 22:34:18.000000000 -0800 -+++ ffmpeg-mt-thread/libavcodec/mimic.c 2010-01-04 22:36:29.000000000 -0800 -@@ -27,6 +27,7 @@ - #include "get_bits.h" - #include "bytestream.h" - #include "dsputil.h" -+#include "thread.h" - - #define MIMIC_HEADER_SIZE 20 - -@@ -51,6 +52,10 @@ - ScanTable scantable; - DSPContext dsp; - VLC vlc; -+ -+ /* Kept in the context so multithreading can have a constant to read from */ -+ int next_cur_index; -+ int next_prev_index; - } MimicContext; - - static const uint32_t huffcodes[] = { -@@ -121,6 +126,21 @@ - return 0; - } - -+static int mimic_decode_update_context(AVCodecContext *avctx, AVCodecContext *avctx_from) -+{ -+ MimicContext *dst = avctx->priv_data, *src = avctx_from->priv_data; -+ -+ dst->cur_index = src->next_cur_index; -+ dst->prev_index = src->next_prev_index; -+ -+ memcpy(dst->buf_ptrs, src->buf_ptrs, sizeof(src->buf_ptrs)); -+ memcpy(dst->flipped_ptrs, src->flipped_ptrs, sizeof(src->flipped_ptrs)); -+ -+ memset(&dst->buf_ptrs[dst->cur_index], 0, sizeof(AVFrame)); -+ -+ return 0; -+} -+ - static const int8_t vlcdec_lookup[9][64] = { - { 0, }, - { -1, 1, }, -@@ -205,7 +225,7 @@ - static int decode(MimicContext *ctx, int quality, int num_coeffs, - int is_iframe) - { -- int y, x, plane; -+ int y, x, plane, cur_row = 0; - - for(plane = 0; plane < 3; plane++) { - const int is_chroma = !!plane; -@@ -236,6 +256,7 @@ - int index = (ctx->cur_index+backref)&15; - uint8_t *p = ctx->flipped_ptrs[index].data[0]; - -+ ff_await_frame_progress(&ctx->buf_ptrs[index], cur_row); - if(p) { - p += src - - ctx->flipped_ptrs[ctx->prev_index].data[plane]; -@@ -246,6 +267,7 @@ - } - } - } else { -+ ff_await_frame_progress(&ctx->buf_ptrs[ctx->prev_index], cur_row); - ctx->dsp.put_pixels_tab[1][0](dst, src, stride, 8); - } - src += 8; -@@ -253,6 +275,8 @@ - } - src += (stride - ctx->num_hblocks[plane])<<3; - dst += (stride - ctx->num_hblocks[plane])<<3; -+ -+ ff_report_frame_progress(&ctx->buf_ptrs[ctx->cur_index], cur_row++); - } - } - -@@ -326,14 +350,20 @@ - } - - ctx->buf_ptrs[ctx->cur_index].reference = 1; -- if(avctx->get_buffer(avctx, &ctx->buf_ptrs[ctx->cur_index])) { -+ ctx->buf_ptrs[ctx->cur_index].pict_type = is_pframe ? FF_P_TYPE:FF_I_TYPE; -+ if(ff_get_buffer(avctx, &ctx->buf_ptrs[ctx->cur_index])) { - av_log(avctx, AV_LOG_ERROR, "get_buffer() failed\n"); - return -1; - } - -+ ctx->next_prev_index = ctx->cur_index; -+ ctx->next_cur_index = (ctx->cur_index - 1) & 15; -+ - prepare_avpic(ctx, &ctx->flipped_ptrs[ctx->cur_index], - (AVPicture*) &ctx->buf_ptrs[ctx->cur_index]); - -+ ff_report_frame_setup_done(avctx); -+ - av_fast_malloc(&ctx->swap_buf, &ctx->swap_buf_size, - swap_buf_size + FF_INPUT_BUFFER_PADDING_SIZE); - if(!ctx->swap_buf) -@@ -345,21 +375,23 @@ - init_get_bits(&ctx->gb, ctx->swap_buf, swap_buf_size << 3); - - if(!decode(ctx, quality, num_coeffs, !is_pframe)) { -- avctx->release_buffer(avctx, &ctx->buf_ptrs[ctx->cur_index]); -- return -1; -+ if (USE_FRAME_THREADING(avctx)) -+ ff_report_frame_progress(&ctx->buf_ptrs[ctx->cur_index], INT_MAX); -+ else { -+ ff_release_buffer(avctx, &ctx->buf_ptrs[ctx->cur_index]); -+ return -1; -+ } - } - -- ctx->buf_ptrs[ctx->cur_index].pict_type = is_pframe ? FF_P_TYPE:FF_I_TYPE; - *(AVFrame*)data = ctx->buf_ptrs[ctx->cur_index]; - *data_size = sizeof(AVFrame); - -- ctx->prev_index = ctx->cur_index; -- ctx->cur_index--; -- ctx->cur_index &= 15; -+ ctx->prev_index = ctx->next_prev_index; -+ ctx->cur_index = ctx->next_cur_index; - - /* Only release frames that aren't used for backreferences anymore */ - if(ctx->buf_ptrs[ctx->cur_index].data[0]) -- avctx->release_buffer(avctx, &ctx->buf_ptrs[ctx->cur_index]); -+ ff_release_buffer(avctx, &ctx->buf_ptrs[ctx->cur_index]); - - return buf_size; - } -@@ -370,9 +402,12 @@ - int i; - - av_free(ctx->swap_buf); -+ -+ if(avctx->is_copy) return 0; -+ - for(i = 0; i < 16; i++) - if(ctx->buf_ptrs[i].data[0]) -- avctx->release_buffer(avctx, &ctx->buf_ptrs[i]); -+ ff_release_buffer(avctx, &ctx->buf_ptrs[i]); - free_vlc(&ctx->vlc); - - return 0; -@@ -387,6 +422,7 @@ - NULL, - mimic_decode_end, - mimic_decode_frame, -- CODEC_CAP_DR1, -+ CODEC_CAP_DR1 | CODEC_CAP_FRAME_THREADS, - .long_name = NULL_IF_CONFIG_SMALL("Mimic"), -+ .update_context = ONLY_IF_THREADS_ENABLED(mimic_decode_update_context) - }; -diff -Naur ffmpeg-mt-normal/libavcodec/mpeg12.c ffmpeg-mt-thread/libavcodec/mpeg12.c ---- ffmpeg-mt-normal/libavcodec/mpeg12.c 2010-01-04 22:34:18.000000000 -0800 -+++ ffmpeg-mt-thread/libavcodec/mpeg12.c 2010-01-04 22:36:29.000000000 -0800 -@@ -37,6 +37,7 @@ - #include "bytestream.h" - #include "vdpau_internal.h" - #include "xvmc_internal.h" -+#include "thread.h" - - //#undef NDEBUG - //#include -@@ -1208,6 +1209,27 @@ - return 0; - } - -+static int mpeg_decode_update_context(AVCodecContext *avctx, AVCodecContext *avctx_from) -+{ -+ Mpeg1Context *ctx = avctx->priv_data, *ctx_from = avctx_from->priv_data; -+ MpegEncContext *s = &ctx->mpeg_enc_ctx, *s1 = &ctx_from->mpeg_enc_ctx; -+ int err; -+ -+ if(!ctx_from->mpeg_enc_ctx_allocated || !s1->context_initialized) -+ return 0; -+ -+ err = ff_mpeg_update_context(avctx, avctx_from); -+ if(err) return err; -+ -+ if(!ctx->mpeg_enc_ctx_allocated) -+ memcpy(s + 1, s1 + 1, sizeof(Mpeg1Context) - sizeof(MpegEncContext)); -+ -+ if(!(s->pict_type == FF_B_TYPE || s->low_delay)) -+ s->picture_number++; -+ -+ return 0; -+} -+ - static void quant_matrix_rebuild(uint16_t *matrix, const uint8_t *old_perm, - const uint8_t *new_perm){ - uint16_t temp_matrix[64]; -@@ -1261,6 +1283,10 @@ - - if (s1->mpeg_enc_ctx_allocated) { - ParseContext pc= s->parse_context; -+ if(USE_FRAME_THREADING(avctx)) { -+ av_log_missing_feature(avctx, "Width/height changing with frame threads is", 0); -+ return -1; -+ } - s->parse_context.buffer=0; - MPV_common_end(s); - s->parse_context= pc; -@@ -1624,6 +1650,8 @@ - } - - *s->current_picture_ptr->pan_scan= s1->pan_scan; -+ -+ if (USE_FRAME_THREADING(avctx)) ff_report_frame_setup_done(avctx); - }else{ //second field - int i; - -@@ -1796,6 +1824,7 @@ - const int mb_size= 16>>s->avctx->lowres; - - ff_draw_horiz_band(s, mb_size*(s->mb_y>>field_pic), mb_size); -+ MPV_report_decode_progress(s); - - s->mb_x = 0; - s->mb_y += 1<current_picture_ptr; - ff_print_debug_info(s, pict); - } else { -- s->picture_number++; -+ if (!USE_FRAME_THREADING(avctx)) s->picture_number++; - /* latency of 1 frame for I- and P-frames */ - /* XXX: use another variable than picture_number */ - if (s->last_picture_ptr != NULL) { -@@ -2284,7 +2313,7 @@ - buf_ptr = ff_find_start_code(buf_ptr,buf_end, &start_code); - if (start_code > 0x1ff){ - if(s2->pict_type != FF_B_TYPE || avctx->skip_frame <= AVDISCARD_DEFAULT){ -- if(avctx->thread_count > 1){ -+ if(USE_AVCODEC_EXECUTE(avctx)){ - int i; - - avctx->execute(avctx, slice_decode_thread, &s2->thread_context[0], NULL, s->slice_count, sizeof(void*)); -@@ -2446,7 +2475,7 @@ - break; - } - -- if(avctx->thread_count > 1){ -+ if(USE_AVCODEC_EXECUTE(avctx)){ - int threshold= (s2->mb_height*s->slice_count + avctx->thread_count/2) / avctx->thread_count; - if(threshold <= mb_y){ - MpegEncContext *thread_context= s2->thread_context[s->slice_count]; -@@ -2504,9 +2533,10 @@ - NULL, - mpeg_decode_end, - mpeg_decode_frame, -- CODEC_CAP_DRAW_HORIZ_BAND | CODEC_CAP_DR1 | CODEC_CAP_TRUNCATED | CODEC_CAP_DELAY, -+ CODEC_CAP_DRAW_HORIZ_BAND | CODEC_CAP_DR1 | CODEC_CAP_TRUNCATED | CODEC_CAP_DELAY | CODEC_CAP_FRAME_THREADS, - .flush= flush, - .long_name= NULL_IF_CONFIG_SMALL("MPEG-1 video"), -+ .update_context= ONLY_IF_THREADS_ENABLED(mpeg_decode_update_context) - }; - - AVCodec mpeg2video_decoder = { -@@ -2540,7 +2570,7 @@ - - #if CONFIG_MPEG_XVMC_DECODER - static av_cold int mpeg_mc_decode_init(AVCodecContext *avctx){ -- if( avctx->thread_count > 1) -+ if( USE_AVCODEC_EXECUTE(avctx) ) - return -1; - if( !(avctx->slice_flags & SLICE_FLAG_CODED_ORDER) ) - return -1; -diff -Naur ffmpeg-mt-normal/libavcodec/mpegvideo.c ffmpeg-mt-thread/libavcodec/mpegvideo.c ---- ffmpeg-mt-normal/libavcodec/mpegvideo.c 2010-01-04 22:34:18.000000000 -0800 -+++ ffmpeg-mt-thread/libavcodec/mpegvideo.c 2010-01-04 22:36:29.000000000 -0800 -@@ -35,6 +35,7 @@ - #include "msmpeg4.h" - #include "faandct.h" - #include "xvmc_internal.h" -+#include "thread.h" - #include - - //#undef NDEBUG -@@ -170,7 +171,7 @@ - */ - static void free_frame_buffer(MpegEncContext *s, Picture *pic) - { -- s->avctx->release_buffer(s->avctx, (AVFrame*)pic); -+ ff_release_buffer(s->avctx, (AVFrame*)pic); - av_freep(&pic->hwaccel_picture_private); - } - -@@ -192,7 +193,7 @@ - } - } - -- r = s->avctx->get_buffer(s->avctx, (AVFrame*)pic); -+ r = ff_get_buffer(s->avctx, (AVFrame*)pic); - - if (r<0 || !pic->age || !pic->type || !pic->data[0]) { - av_log(s->avctx, AV_LOG_ERROR, "get_buffer() failed (%d %d %d %p)\n", r, pic->age, pic->type, pic->data[0]); -@@ -406,6 +407,80 @@ - //STOP_TIMER("update_duplicate_context") //about 10k cycles / 0.01 sec for 1000frames on 1ghz with 2 threads - } - -+int ff_mpeg_update_context(AVCodecContext *dst, AVCodecContext *src) -+{ -+ MpegEncContext *s = dst->priv_data, *s1 = src->priv_data; -+ -+ if(!s1->context_initialized) return 0; -+ -+ //FIXME can parameters change on I-frames? in that case dst may need a reinit -+ if(!s->context_initialized){ -+ memcpy(s, s1, sizeof(MpegEncContext)); -+ -+ s->avctx = dst; -+ s->picture_range_start += MAX_PICTURE_COUNT; -+ s->picture_range_end += MAX_PICTURE_COUNT; -+ s->bitstream_buffer = NULL; -+ s->bitstream_buffer_size = s->allocated_bitstream_buffer_size = 0; -+ -+ MPV_common_init(s); -+ } -+ -+ s->avctx->coded_height = s1->avctx->coded_height; -+ s->avctx->coded_width = s1->avctx->coded_width; -+ s->avctx->width = s1->avctx->width; -+ s->avctx->height = s1->avctx->height; -+ -+ s->coded_picture_number = s1->coded_picture_number; -+ s->picture_number = s1->picture_number; -+ s->input_picture_number = s1->input_picture_number; -+ -+ memcpy(s->picture, s1->picture, s1->picture_count * sizeof(Picture)); -+ memcpy(&s->last_picture, &s1->last_picture, (char*)&s1->last_picture_ptr - (char*)&s1->last_picture); -+ -+ s->last_picture_ptr = REBASE_PICTURE(s1->last_picture_ptr, s, s1); -+ s->current_picture_ptr = REBASE_PICTURE(s1->current_picture_ptr, s, s1); -+ s->next_picture_ptr = REBASE_PICTURE(s1->next_picture_ptr, s, s1); -+ -+ memcpy(s->prev_pict_types, s1->prev_pict_types, PREV_PICT_TYPES_BUFFER_SIZE); -+ -+ //Error/bug resilience -+ s->next_p_frame_damaged = s1->next_p_frame_damaged; -+ s->workaround_bugs = s1->workaround_bugs; -+ -+ //MPEG4 timing info -+ memcpy(&s->time_increment_bits, &s1->time_increment_bits, (char*)&s1->shape - (char*)&s1->time_increment_bits); -+ -+ //B-frame info -+ s->max_b_frames = s1->max_b_frames; -+ s->low_delay = s1->low_delay; -+ s->dropable = s1->dropable; -+ -+ //DivX handling (doesn't work) -+ s->divx_packed = s1->divx_packed; -+ -+ if(s1->bitstream_buffer){ -+ s->bitstream_buffer = av_fast_realloc(s->bitstream_buffer, &s->allocated_bitstream_buffer_size, s1->allocated_bitstream_buffer_size+FF_INPUT_BUFFER_PADDING_SIZE); -+ s->bitstream_buffer_size = s1->bitstream_buffer_size; -+ memcpy(s->bitstream_buffer, s1->bitstream_buffer, s1->bitstream_buffer_size); -+ memset(s->bitstream_buffer+s->bitstream_buffer_size, 0, FF_INPUT_BUFFER_PADDING_SIZE); -+ } -+ -+ //MPEG2/interlacing info -+ memcpy(&s->progressive_sequence, &s1->progressive_sequence, (char*)&s1->rtp_mode - (char*)&s1->progressive_sequence); -+ -+ if(!s1->first_field){ -+ s->last_pict_type= s1->pict_type; -+ if (s1->current_picture_ptr) s->last_lambda_for[s1->pict_type] = s1->current_picture_ptr->quality; -+ -+ if(s1->pict_type!=FF_B_TYPE){ -+ s->last_non_b_pict_type= s1->pict_type; -+ } -+ } -+ -+ return 0; -+} -+ - /** - * sets the given MpegEncContext to common defaults (same for encoding and decoding). - * the changed fields will not depend upon the prior state of the MpegEncContext. -@@ -426,6 +501,9 @@ - - s->f_code = 1; - s->b_code = 1; -+ -+ s->picture_range_start = 0; -+ s->picture_range_end = MAX_PICTURE_COUNT; - } - - /** -@@ -454,7 +532,8 @@ - return -1; - } - -- if(s->avctx->thread_count > MAX_THREADS || (s->avctx->thread_count > s->mb_height && s->mb_height)){ -+ if(USE_AVCODEC_EXECUTE(s->avctx) && -+ (s->avctx->thread_count > MAX_THREADS || (s->avctx->thread_count > s->mb_height && s->mb_height))){ - av_log(s->avctx, AV_LOG_ERROR, "too many threads\n"); - return -1; - } -@@ -553,8 +632,9 @@ - FF_ALLOCZ_OR_GOTO(s->avctx, s->dct_offset, 2 * 64 * sizeof(uint16_t), fail) - } - } -- FF_ALLOCZ_OR_GOTO(s->avctx, s->picture, MAX_PICTURE_COUNT * sizeof(Picture), fail) -- for(i = 0; i < MAX_PICTURE_COUNT; i++) { -+ s->picture_count = MAX_PICTURE_COUNT * FFMAX(1, s->avctx->thread_count); -+ FF_ALLOCZ_OR_GOTO(s->avctx, s->picture, s->picture_count * sizeof(Picture), fail) -+ for(i = 0; i < s->picture_count; i++) { - avcodec_get_frame_defaults((AVFrame *)&s->picture[i]); - } - -@@ -620,20 +700,26 @@ - } - - s->context_initialized = 1; -- - s->thread_context[0]= s; -- threads = s->avctx->thread_count; - -- for(i=1; ithread_context[i]= av_malloc(sizeof(MpegEncContext)); -- memcpy(s->thread_context[i], s, sizeof(MpegEncContext)); -- } -+ if (USE_AVCODEC_EXECUTE(s->avctx)) { -+ threads = s->avctx->thread_count; - -- for(i=0; ithread_context[i], s) < 0) -- goto fail; -- s->thread_context[i]->start_mb_y= (s->mb_height*(i ) + s->avctx->thread_count/2) / s->avctx->thread_count; -- s->thread_context[i]->end_mb_y = (s->mb_height*(i+1) + s->avctx->thread_count/2) / s->avctx->thread_count; -+ for(i=1; ithread_context[i]= av_malloc(sizeof(MpegEncContext)); -+ memcpy(s->thread_context[i], s, sizeof(MpegEncContext)); -+ } -+ -+ for(i=0; ithread_context[i], s) < 0) -+ goto fail; -+ s->thread_context[i]->start_mb_y= (s->mb_height*(i ) + s->avctx->thread_count/2) / s->avctx->thread_count; -+ s->thread_context[i]->end_mb_y = (s->mb_height*(i+1) + s->avctx->thread_count/2) / s->avctx->thread_count; -+ } -+ } else { -+ if(init_duplicate_context(s, s) < 0) goto fail; -+ s->start_mb_y = 0; -+ s->end_mb_y = s->mb_height; - } - - return 0; -@@ -647,12 +733,14 @@ - { - int i, j, k; - -- for(i=0; iavctx->thread_count; i++){ -- free_duplicate_context(s->thread_context[i]); -- } -- for(i=1; iavctx->thread_count; i++){ -- av_freep(&s->thread_context[i]); -- } -+ if (USE_AVCODEC_EXECUTE(s->avctx)) { -+ for(i=0; iavctx->thread_count; i++){ -+ free_duplicate_context(s->thread_context[i]); -+ } -+ for(i=1; iavctx->thread_count; i++){ -+ av_freep(&s->thread_context[i]); -+ } -+ } else free_duplicate_context(s); - - av_freep(&s->parse_context.buffer); - s->parse_context.buffer_size=0; -@@ -708,8 +796,8 @@ - av_freep(&s->reordered_input_picture); - av_freep(&s->dct_offset); - -- if(s->picture){ -- for(i=0; ipicture && !s->avctx->is_copy){ -+ for(i=0; ipicture_count; i++){ - free_picture(s, &s->picture[i]); - } - } -@@ -821,14 +909,14 @@ - int i; - - if(shared){ -- for(i=0; ipicture_range_start; ipicture_range_end; i++){ - if(s->picture[i].data[0]==NULL && s->picture[i].type==0) return i; - } - }else{ -- for(i=0; ipicture_range_start; ipicture_range_end; i++){ - if(s->picture[i].data[0]==NULL && s->picture[i].type!=0) return i; //FIXME - } -- for(i=0; ipicture_range_start; ipicture_range_end; i++){ - if(s->picture[i].data[0]==NULL) return i; - } - } -@@ -885,7 +973,7 @@ - /* release forgotten pictures */ - /* if(mpeg124/h263) */ - if(!s->encoding){ -- for(i=0; ipicture_count; i++){ - if(s->picture[i].data[0] && &s->picture[i] != s->next_picture_ptr && s->picture[i].reference){ - av_log(avctx, AV_LOG_ERROR, "releasing zombie picture\n"); - free_frame_buffer(s, &s->picture[i]); -@@ -897,7 +985,7 @@ - - if(!s->encoding){ - /* release non reference frames */ -- for(i=0; ipicture_count; i++){ - if(s->picture[i].data[0] && !s->picture[i].reference /*&& s->picture[i].type!=FF_BUFFER_TYPE_SHARED*/){ - free_frame_buffer(s, &s->picture[i]); - } -@@ -926,6 +1014,7 @@ - s->current_picture_ptr= pic; - s->current_picture_ptr->top_field_first= s->top_field_first; //FIXME use only the vars from current_pic - s->current_picture_ptr->interlaced_frame= !s->progressive_frame && !s->progressive_sequence; -+ s->current_picture_ptr->field_picture= s->picture_structure != PICT_FRAME; - } - - s->current_picture_ptr->pict_type= s->pict_type; -@@ -1013,20 +1102,25 @@ - void MPV_frame_end(MpegEncContext *s) - { - int i; -- /* draw edge for correct motion prediction if outside */ -+ /* redraw edges for the frame if decoding didn't complete */ - //just to make sure that all data is rendered. - if(CONFIG_MPEG_XVMC_DECODER && s->avctx->xvmc_acceleration){ - ff_xvmc_field_end(s); -- }else if(!s->avctx->hwaccel -+ }else if(s->error_count -+ && !s->avctx->hwaccel - && !(s->avctx->codec->capabilities&CODEC_CAP_HWACCEL_VDPAU) - && s->unrestricted_mv - && s->current_picture.reference - && !s->intra_only - && !(s->flags&CODEC_FLAG_EMU_EDGE)) { -- s->dsp.draw_edges(s->current_picture.data[0], s->linesize , s->h_edge_pos , s->v_edge_pos , EDGE_WIDTH ); -- s->dsp.draw_edges(s->current_picture.data[1], s->uvlinesize, s->h_edge_pos>>1, s->v_edge_pos>>1, EDGE_WIDTH/2); -- s->dsp.draw_edges(s->current_picture.data[2], s->uvlinesize, s->h_edge_pos>>1, s->v_edge_pos>>1, EDGE_WIDTH/2); -+ int edges = EDGE_BOTTOM | EDGE_TOP, h = s->v_edge_pos; -+ -+ s->dsp.draw_edges(s->current_picture_ptr->data[0], s->linesize , s->h_edge_pos , h , EDGE_WIDTH , edges); -+ s->dsp.draw_edges(s->current_picture_ptr->data[1], s->uvlinesize, s->h_edge_pos>>1, h>>1, EDGE_WIDTH/2, edges); -+ s->dsp.draw_edges(s->current_picture_ptr->data[2], s->uvlinesize, s->h_edge_pos>>1, h>>1, EDGE_WIDTH/2, edges); -+ - } -+ - emms_c(); - - s->last_pict_type = s->pict_type; -@@ -1047,7 +1141,7 @@ - - if(s->encoding){ - /* release non-reference frames */ -- for(i=0; ipicture_count; i++){ - if(s->picture[i].data[0] && !s->picture[i].reference /*&& s->picture[i].type!=FF_BUFFER_TYPE_SHARED*/){ - free_frame_buffer(s, &s->picture[i]); - } -@@ -1060,6 +1154,9 @@ - memset(&s->current_picture, 0, sizeof(Picture)); - #endif - s->avctx->coded_frame= (AVFrame*)s->current_picture_ptr; -+ -+ if (USE_FRAME_THREADING(s->avctx) && s->codec_id != CODEC_ID_H264 && s->current_picture.reference) -+ ff_report_frame_progress((AVFrame*)s->current_picture_ptr, s->mb_height - 1); - } - - /** -@@ -1721,6 +1818,43 @@ - } - } - -+/** -+ * find the lowest MB row referenced in the MVs -+ */ -+int MPV_lowest_referenced_row(MpegEncContext *s, int dir) -+{ -+ int my_max = INT_MIN, my_min = INT_MAX, qpel_shift = !s->quarter_sample; -+ int my, off, i, mvs; -+ -+ if (s->picture_structure != PICT_FRAME) goto unhandled; -+ -+ switch (s->mv_type) { -+ case MV_TYPE_16X16: -+ mvs = 1; -+ break; -+ case MV_TYPE_16X8: -+ mvs = 2; -+ break; -+ case MV_TYPE_8X8: -+ mvs = 4; -+ break; -+ default: -+ goto unhandled; -+ } -+ -+ for (i = 0; i < mvs; i++) { -+ my = s->mv[dir][i][1]<> 6; -+ -+ return FFMIN(FFMAX(s->mb_y + off, 0), s->mb_height-1); -+unhandled: -+ return s->mb_height-1; -+} -+ - /* put block[] to dest[] */ - static inline void put_dct(MpegEncContext *s, - DCTELEM *block, int i, uint8_t *dest, int line_size, int qscale) -@@ -1880,6 +2014,16 @@ - /* motion handling */ - /* decoding or more than one mb_type (MC was already done otherwise) */ - if(!s->encoding){ -+ -+ if(USE_FRAME_THREADING(s->avctx)) { -+ if (s->mv_dir & MV_DIR_FORWARD) { -+ ff_await_frame_progress((AVFrame*)s->last_picture_ptr, MPV_lowest_referenced_row(s, 0)); -+ } -+ if (s->mv_dir & MV_DIR_BACKWARD) { -+ ff_await_frame_progress((AVFrame*)s->next_picture_ptr, MPV_lowest_referenced_row(s, 1)); -+ } -+ } -+ - if(lowres_flag){ - h264_chroma_mc_func *op_pix = s->dsp.put_h264_chroma_pixels_tab; - -@@ -2044,19 +2188,37 @@ - * @param h is the normal height, this will be reduced automatically if needed for the last row - */ - void ff_draw_horiz_band(MpegEncContext *s, int y, int h){ -+ const int field_pic= s->picture_structure != PICT_FRAME; -+ if(field_pic){ -+ h <<= 1; -+ y <<= 1; -+ } -+ -+ if (!s->avctx->hwaccel -+ && !(s->avctx->codec->capabilities&CODEC_CAP_HWACCEL_VDPAU) -+ && s->unrestricted_mv -+ && s->current_picture.reference -+ && !s->intra_only -+ && !(s->flags&CODEC_FLAG_EMU_EDGE)) { -+ int sides = 0, edge_h; -+ if (y==0) sides |= EDGE_TOP; -+ if (y + h >= s->v_edge_pos) sides |= EDGE_BOTTOM; -+ -+ edge_h= FFMIN(h, s->v_edge_pos - y); -+ -+ s->dsp.draw_edges(s->current_picture_ptr->data[0] + y *s->linesize , s->linesize , s->h_edge_pos , edge_h , EDGE_WIDTH , sides); -+ s->dsp.draw_edges(s->current_picture_ptr->data[1] + (y>>1)*s->uvlinesize, s->uvlinesize, s->h_edge_pos>>1, edge_h>>1, EDGE_WIDTH/2, sides); -+ s->dsp.draw_edges(s->current_picture_ptr->data[2] + (y>>1)*s->uvlinesize, s->uvlinesize, s->h_edge_pos>>1, edge_h>>1, EDGE_WIDTH/2, sides); -+ } -+ -+ h= FFMIN(h, s->avctx->height - y); -+ -+ if(field_pic && s->first_field && !(s->avctx->slice_flags&SLICE_FLAG_ALLOW_FIELD)) return; -+ - if (s->avctx->draw_horiz_band) { - AVFrame *src; -- const int field_pic= s->picture_structure != PICT_FRAME; - int offset[4]; - -- h= FFMIN(h, (s->avctx->height>>field_pic) - y); -- -- if(field_pic && !(s->avctx->slice_flags&SLICE_FLAG_ALLOW_FIELD)){ -- h <<= 1; -- y <<= 1; -- if(s->first_field) return; -- } -- - if(s->pict_type==FF_B_TYPE || s->low_delay || (s->avctx->slice_flags&SLICE_FLAG_CODED_ORDER)) - src= (AVFrame*)s->current_picture_ptr; - else if(s->last_picture_ptr) -@@ -2122,7 +2284,7 @@ - if(s==NULL || s->picture==NULL) - return; - -- for(i=0; ipicture_count; i++){ - if(s->picture[i].data[0] && ( s->picture[i].type == FF_BUFFER_TYPE_INTERNAL - || s->picture[i].type == FF_BUFFER_TYPE_USER)) - free_frame_buffer(s, &s->picture[i]); -@@ -2376,3 +2538,9 @@ - s->y_dc_scale= s->y_dc_scale_table[ qscale ]; - s->c_dc_scale= s->c_dc_scale_table[ s->chroma_qscale ]; - } -+ -+void MPV_report_decode_progress(MpegEncContext *s) -+{ -+ if (s->pict_type != FF_B_TYPE && !s->partitioned_frame) -+ ff_report_frame_progress((AVFrame*)s->current_picture_ptr, s->mb_y); -+} -diff -Naur ffmpeg-mt-normal/libavcodec/mpegvideo_enc.c ffmpeg-mt-thread/libavcodec/mpegvideo_enc.c ---- ffmpeg-mt-normal/libavcodec/mpegvideo_enc.c 2010-01-04 22:34:18.000000000 -0800 -+++ ffmpeg-mt-thread/libavcodec/mpegvideo_enc.c 2010-01-04 22:36:29.000000000 -0800 -@@ -34,6 +34,7 @@ - #include "mjpegenc.h" - #include "msmpeg4.h" - #include "faandct.h" -+#include "thread.h" - #include "aandcttab.h" - #include - -@@ -1219,9 +1220,9 @@ - { - MpegEncContext *s = avctx->priv_data; - AVFrame *pic_arg = data; -- int i, stuffing_count; -+ int i, stuffing_count, context_count = USE_AVCODEC_EXECUTE(avctx) ? avctx->thread_count : 1; - -- for(i=0; ithread_count; i++){ -+ for(i=0; ithread_context[i]->start_mb_y; - int end_y= s->thread_context[i]-> end_mb_y; - int h= s->mb_height; -@@ -1283,7 +1284,7 @@ - s->last_non_b_time= s->time - s->pp_time; - } - // av_log(NULL, AV_LOG_ERROR, "R:%d ", s->next_lambda); -- for(i=0; ithread_count; i++){ -+ for(i=0; ithread_context[i]->pb; - init_put_bits(pb, pb->buf, pb->buf_end - pb->buf); - } -@@ -2749,6 +2750,7 @@ - { - int i; - int bits; -+ int context_count = USE_AVCODEC_EXECUTE(s->avctx) ? s->avctx->thread_count : 1; - - s->picture_number = picture_number; - -@@ -2788,7 +2790,7 @@ - } - - s->mb_intra=0; //for the rate distortion & bit compare functions -- for(i=1; iavctx->thread_count; i++){ -+ for(i=1; ithread_context[i], s); - } - -@@ -2801,11 +2803,11 @@ - s->lambda2= (s->lambda2* (int64_t)s->avctx->me_penalty_compensation + 128)>>8; - if(s->pict_type != FF_B_TYPE && s->avctx->me_threshold==0){ - if((s->avctx->pre_me && s->last_non_b_pict_type==FF_I_TYPE) || s->avctx->pre_me==2){ -- s->avctx->execute(s->avctx, pre_estimate_motion_thread, &s->thread_context[0], NULL, s->avctx->thread_count, sizeof(void*)); -+ s->avctx->execute(s->avctx, pre_estimate_motion_thread, &s->thread_context[0], NULL, context_count, sizeof(void*)); - } - } - -- s->avctx->execute(s->avctx, estimate_motion_thread, &s->thread_context[0], NULL, s->avctx->thread_count, sizeof(void*)); -+ s->avctx->execute(s->avctx, estimate_motion_thread, &s->thread_context[0], NULL, context_count, sizeof(void*)); - }else /* if(s->pict_type == FF_I_TYPE) */{ - /* I-Frame */ - for(i=0; imb_stride*s->mb_height; i++) -@@ -2813,10 +2815,10 @@ - - if(!s->fixed_qscale){ - /* finding spatial complexity for I-frame rate control */ -- s->avctx->execute(s->avctx, mb_var_thread, &s->thread_context[0], NULL, s->avctx->thread_count, sizeof(void*)); -+ s->avctx->execute(s->avctx, mb_var_thread, &s->thread_context[0], NULL, context_count, sizeof(void*)); - } - } -- for(i=1; iavctx->thread_count; i++){ -+ for(i=1; ithread_context[i]); - } - s->current_picture.mc_mb_var_sum= s->current_picture_ptr->mc_mb_var_sum= s->me.mc_mb_var_sum_temp; -@@ -2950,11 +2952,11 @@ - bits= put_bits_count(&s->pb); - s->header_bits= bits - s->last_bits; - -- for(i=1; iavctx->thread_count; i++){ -+ for(i=1; ithread_context[i], s); - } -- s->avctx->execute(s->avctx, encode_thread, &s->thread_context[0], NULL, s->avctx->thread_count, sizeof(void*)); -- for(i=1; iavctx->thread_count; i++){ -+ s->avctx->execute(s->avctx, encode_thread, &s->thread_context[0], NULL, context_count, sizeof(void*)); -+ for(i=1; ithread_context[i]); - } - emms_c(); -diff -Naur ffmpeg-mt-normal/libavcodec/mpegvideo.h ffmpeg-mt-thread/libavcodec/mpegvideo.h ---- ffmpeg-mt-normal/libavcodec/mpegvideo.h 2010-01-04 22:34:18.000000000 -0800 -+++ ffmpeg-mt-thread/libavcodec/mpegvideo.h 2010-01-04 22:36:29.000000000 -0800 -@@ -123,6 +123,7 @@ - int ref_poc[2][2][16]; ///< h264 POCs of the frames used as reference (FIXME need per slice) - int ref_count[2][2]; ///< number of entries in ref_poc (FIXME need per slice) - int mbaff; ///< h264 1 -> MBAFF frame 0-> not MBAFF -+ int field_picture; ///< whether or not the picture was encoded in seperate fields - - int mb_var_sum; ///< sum of MB variance for current frame - int mc_mb_var_sum; ///< motion compensated MB variance for current frame -@@ -247,6 +248,9 @@ - Picture **input_picture; ///< next pictures on display order for encoding - Picture **reordered_input_picture; ///< pointer to the next pictures in codedorder for encoding - -+ int picture_count; ///< number of allocated pictures (MAX_PICTURE_COUNT * avctx->thread_count) -+ int picture_range_start, picture_range_end; ///< the part of picture that this context can allocate in -+ - int start_mb_y; ///< start mb_y of this thread (so current thread should process start_mb_y <= row < end_mb_y) - int end_mb_y; ///< end mb_y of this thread (so current thread should process start_mb_y <= row < end_mb_y) - struct MpegEncContext *thread_context[MAX_THREADS]; -@@ -676,6 +680,7 @@ - void (*denoise_dct)(struct MpegEncContext *s, DCTELEM *block); - } MpegEncContext; - -+#define REBASE_PICTURE(pic, new_ctx, old_ctx) (pic ? &new_ctx->picture[pic - old_ctx->picture] : NULL) - - void MPV_decode_defaults(MpegEncContext *s); - int MPV_common_init(MpegEncContext *s); -@@ -700,6 +705,9 @@ - int ff_find_unused_picture(MpegEncContext *s, int shared); - void ff_denoise_dct(MpegEncContext *s, DCTELEM *block); - void ff_update_duplicate_context(MpegEncContext *dst, MpegEncContext *src); -+int MPV_lowest_referenced_row(MpegEncContext *s, int dir); -+void MPV_report_decode_progress(MpegEncContext *s); -+int ff_mpeg_update_context(AVCodecContext *dst, AVCodecContext *src); - const uint8_t *ff_find_start_code(const uint8_t *p, const uint8_t *end, uint32_t *state); - - void ff_er_frame_start(MpegEncContext *s); -diff -Naur ffmpeg-mt-normal/libavcodec/options.c ffmpeg-mt-thread/libavcodec/options.c ---- ffmpeg-mt-normal/libavcodec/options.c 2010-01-04 22:34:18.000000000 -0800 -+++ ffmpeg-mt-thread/libavcodec/options.c 2010-01-04 22:36:29.000000000 -0800 -@@ -246,6 +246,7 @@ - {"vis_qp", "visualize quantization parameter (QP), lower QP are tinted greener", 0, FF_OPT_TYPE_CONST, FF_DEBUG_VIS_QP, INT_MIN, INT_MAX, V|D, "debug"}, - {"vis_mb_type", "visualize block types", 0, FF_OPT_TYPE_CONST, FF_DEBUG_VIS_MB_TYPE, INT_MIN, INT_MAX, V|D, "debug"}, - {"buffers", "picture buffer allocations", 0, FF_OPT_TYPE_CONST, FF_DEBUG_BUFFERS, INT_MIN, INT_MAX, V|D, "debug"}, -+{"thread_ops", "threading operations", 0, FF_OPT_TYPE_CONST, FF_DEBUG_THREADS, INT_MIN, INT_MAX, V|D, "debug"}, - {"vismv", "visualize motion vectors (MVs)", OFFSET(debug_mv), FF_OPT_TYPE_INT, DEFAULT, 0, INT_MAX, V|D, "debug_mv"}, - {"pf", "forward predicted MVs of P-frames", 0, FF_OPT_TYPE_CONST, FF_DEBUG_VIS_MV_P_FOR, INT_MIN, INT_MAX, V|D, "debug_mv"}, - {"bf", "forward predicted MVs of B-frames", 0, FF_OPT_TYPE_CONST, FF_DEBUG_VIS_MV_B_FOR, INT_MIN, INT_MAX, V|D, "debug_mv"}, -@@ -403,6 +404,9 @@ - {"colorspace", NULL, OFFSET(colorspace), FF_OPT_TYPE_INT, AVCOL_SPC_UNSPECIFIED, 1, AVCOL_SPC_NB-1, V|E|D}, - {"color_range", NULL, OFFSET(color_range), FF_OPT_TYPE_INT, AVCOL_RANGE_UNSPECIFIED, 0, AVCOL_RANGE_NB-1, V|E|D}, - {"chroma_sample_location", NULL, OFFSET(chroma_sample_location), FF_OPT_TYPE_INT, AVCHROMA_LOC_UNSPECIFIED, 0, AVCHROMA_LOC_NB-1, V|E|D}, -+{"thread_type", "select multithreading type", OFFSET(thread_type), FF_OPT_TYPE_INT, FF_THREAD_DEFAULT, 0, INT_MAX, V|E|D, "thread_type"}, -+{"slice", NULL, 0, FF_OPT_TYPE_CONST, FF_THREAD_SLICE, INT_MIN, INT_MAX, V|E|D, "thread_type"}, -+{"frame", NULL, 0, FF_OPT_TYPE_CONST, FF_THREAD_FRAME, INT_MIN, INT_MAX, V|E|D, "thread_type"}, - {NULL}, - }; - -diff -Naur ffmpeg-mt-normal/libavcodec/os2thread.c ffmpeg-mt-thread/libavcodec/os2thread.c ---- ffmpeg-mt-normal/libavcodec/os2thread.c 2010-01-04 22:34:18.000000000 -0800 -+++ ffmpeg-mt-thread/libavcodec/os2thread.c 2010-01-04 22:36:29.000000000 -0800 -@@ -114,7 +114,13 @@ - ThreadContext *c; - uint32_t threadid; - -+ if(!(s->thread_type & FF_THREAD_SLICE)){ -+ av_log(s, AV_LOG_WARNING, "The requested thread algorithm is not supported with this thread library.\n"); -+ return 0; -+ } -+ - s->thread_count= thread_count; -+ s->active_thread_type= FF_THREAD_SLICE; - - assert(!s->thread_opaque); - c= av_mallocz(sizeof(ThreadContext)*thread_count); -diff -Naur ffmpeg-mt-normal/libavcodec/pthread.c ffmpeg-mt-thread/libavcodec/pthread.c ---- ffmpeg-mt-normal/libavcodec/pthread.c 2010-01-04 22:34:19.000000000 -0800 -+++ ffmpeg-mt-thread/libavcodec/pthread.c 2010-01-04 22:36:29.000000000 -0800 -@@ -1,5 +1,6 @@ - /* - * Copyright (c) 2004 Roman Shaposhnik -+ * Copyright (c) 2008 Alexander Strange (astrange@ithinksw.com) - * - * Many thanks to Steven M. Schultz for providing clever ideas and - * to Michael Niedermayer for writing initial -@@ -24,6 +25,9 @@ - #include - - #include "avcodec.h" -+#include "thread.h" -+ -+#define MAX_DELAYED_RELEASED_BUFFERS 32 - - typedef int (action_func)(AVCodecContext *c, void *arg); - typedef int (action_func2)(AVCodecContext *c, void *arg, int jobnr, int threadnr); -@@ -45,6 +49,61 @@ - int done; - } ThreadContext; - -+typedef struct PerThreadContext { -+ pthread_t thread; -+ pthread_cond_t input_cond; ///< Used to wait for a new frame from the main thread. -+ pthread_cond_t progress_cond; ///< Used by child threads to wait for decoding/encoding progress. -+ pthread_cond_t output_cond; ///< Used by the main thread to wait for frames to finish. -+ -+ pthread_mutex_t mutex; ///< Mutex used to protect the contents of the PerThreadContext. -+ pthread_mutex_t progress_mutex; ///< Mutex used to protect frame progress values and progress_cond. -+ -+ AVCodecContext *avctx; ///< Context used to decode frames passed to this thread. -+ -+ uint8_t *buf; ///< Input frame (for decoding) or output (for encoding). -+ int buf_size; -+ int allocated_buf_size; -+ -+ AVFrame picture; ///< Output frame (for decoding) or input (for encoding). -+ int got_picture; ///< The output of got_picture_ptr from the last avcodec_decode_video() call (for decoding). -+ int result; ///< The result of the last codec decode/encode() call. -+ -+ struct FrameThreadContext *parent; -+ -+ enum { -+ STATE_INPUT_READY, ///< Set when the thread is sleeping. -+ STATE_SETTING_UP, ///< Set before the codec has called ff_report_frame_setup_done(). -+ STATE_SETUP_FINISHED /**< -+ * Set after the codec has called ff_report_frame_setup_done(). -+ * At this point it is safe to start the next thread. -+ */ -+ } state; -+ -+ /** -+ * Array of frames passed to ff_release_buffer(), -+ * to be released later. -+ */ -+ AVFrame released_buffers[MAX_DELAYED_RELEASED_BUFFERS]; -+ int num_released_buffers; -+} PerThreadContext; -+ -+typedef struct FrameThreadContext { -+ PerThreadContext *threads; ///< The contexts for frame decoding threads. -+ PerThreadContext *prev_thread; ///< The last thread submit_frame() was called on. -+ -+ int next_decoding; ///< The next context to submit frames to. -+ int next_finished; ///< The next context to return output from. -+ -+ int delaying; /** -+ * Set for the first N frames, where N is the number of threads. -+ * While it is set, ff_en/decode_frame_threaded won't return any results. -+ */ -+ -+ pthread_mutex_t buffer_mutex; ///< Mutex used to protect get/release_buffer(). -+ -+ int die; ///< Set to cause threads to exit. -+} FrameThreadContext; -+ - static void* attribute_align_arg worker(void *v) - { - AVCodecContext *avctx = v; -@@ -84,7 +143,7 @@ - pthread_mutex_unlock(&c->current_job_lock); - } - --void avcodec_thread_free(AVCodecContext *avctx) -+static void thread_free(AVCodecContext *avctx) - { - ThreadContext *c = avctx->thread_opaque; - int i; -@@ -109,6 +168,9 @@ - ThreadContext *c= avctx->thread_opaque; - int dummy_ret; - -+ if (!USE_AVCODEC_EXECUTE(avctx) || avctx->thread_count <= 1) -+ return avcodec_default_execute(avctx, func, arg, ret, job_count, job_size); -+ - if (job_count <= 0) - return 0; - -@@ -140,10 +202,11 @@ - return avcodec_thread_execute(avctx, NULL, arg, ret, job_count, 0); - } - --int avcodec_thread_init(AVCodecContext *avctx, int thread_count) -+static int thread_init(AVCodecContext *avctx) - { - int i; - ThreadContext *c; -+ int thread_count = avctx->thread_count; - - c = av_mallocz(sizeof(ThreadContext)); - if (!c) -@@ -156,7 +219,6 @@ - } - - avctx->thread_opaque = c; -- avctx->thread_count = thread_count; - c->current_job = 0; - c->job_count = 0; - c->job_size = 0; -@@ -180,3 +242,514 @@ - avctx->execute2 = avcodec_thread_execute2; - return 0; - } -+ -+/** -+ * Read and decode frames from the main thread until fctx->die is set. -+ * ff_report_frame_setup_done() is called before decoding if the codec -+ * doesn't define update_context(), and afterwards if the codec errors -+ * before calling it. -+ */ -+static attribute_align_arg void *frame_worker_thread(void *arg) -+{ -+ PerThreadContext * p = arg; -+ AVCodecContext *avctx = p->avctx; -+ FrameThreadContext * fctx = p->parent; -+ AVCodec *codec = avctx->codec; -+ AVPacket avpkt; -+ -+ while (1) { -+ if (p->state == STATE_INPUT_READY && !fctx->die) { -+ pthread_mutex_lock(&p->mutex); -+ while (p->state == STATE_INPUT_READY && !fctx->die) -+ pthread_cond_wait(&p->input_cond, &p->mutex); -+ pthread_mutex_unlock(&p->mutex); -+ } -+ -+ if (fctx->die) break; -+ -+ if (!codec->update_context) ff_report_frame_setup_done(avctx); -+ -+ pthread_mutex_lock(&p->mutex); -+ av_init_packet(&avpkt); -+ avpkt.data = p->buf; -+ avpkt.size = p->buf_size; -+ p->result = codec->decode(avctx, &p->picture, &p->got_picture, &avpkt); -+ -+ if (p->state == STATE_SETTING_UP) ff_report_frame_setup_done(avctx); -+ -+ p->buf_size = 0; -+ p->state = STATE_INPUT_READY; -+ -+ pthread_mutex_lock(&p->progress_mutex); -+ pthread_cond_signal(&p->output_cond); -+ pthread_mutex_unlock(&p->progress_mutex); -+ pthread_mutex_unlock(&p->mutex); -+ }; -+ -+ return NULL; -+} -+ -+/** -+ * Update a thread's context from the last thread. This is used for returning -+ * frames and for starting new decoding jobs after the previous one finishes -+ * predecoding. -+ * -+ * @param dst The destination context. -+ * @param src The source context. -+ * @param for_user Whether or not dst is the user-visible context. update_context won't be called and some pointers will be copied. -+ */ -+static int update_context_from_copy(AVCodecContext *dst, AVCodecContext *src, int for_user) -+{ -+ int err = 0; -+#define COPY(f) dst->f = src->f; -+#define COPY_FIELDS(s, e) memcpy(&dst->s, &src->s, (char*)&dst->e - (char*)&dst->s); -+ -+ //coded_width/height are not copied here, so that codecs' update_context can see when they change -+ //many encoding parameters could be theoretically changed during encode, but aren't copied ATM -+ -+ COPY(sub_id); -+ COPY(width); -+ COPY(height); -+ COPY(pix_fmt); -+ COPY(real_pict_num); //necessary? -+ COPY(delay); -+ COPY(max_b_frames); -+ -+ COPY_FIELDS(mv_bits, opaque); -+ -+ COPY(has_b_frames); -+ COPY(bits_per_coded_sample); -+ COPY(sample_aspect_ratio); -+ COPY(idct_algo); -+ if (for_user) COPY(coded_frame); -+ memcpy(dst->error, src->error, sizeof(src->error)); -+ COPY(last_predictor_count); //necessary? -+ COPY(dtg_active_format); -+ COPY(color_table_id); -+ COPY(profile); -+ COPY(level); -+ COPY(bits_per_raw_sample); -+ COPY(ticks_per_frame); -+ COPY(color_primaries); -+ COPY(color_trc); -+ COPY(colorspace); -+ COPY(color_range); -+ -+ if (!for_user) { -+ if (dst->codec->update_context) -+ err = dst->codec->update_context(dst, src); -+ } -+ -+ return err; -+} -+ -+///Update the next decoding thread with values set by the user -+static void update_context_from_user(AVCodecContext *dst, AVCodecContext *src) -+{ -+ COPY(hurry_up); -+ COPY_FIELDS(skip_loop_filter, bidir_refine); -+ COPY(frame_number); -+ COPY(reordered_opaque); -+} -+ -+/// Release all frames passed to ff_release_buffer() -+static void handle_delayed_releases(PerThreadContext *p) -+{ -+ FrameThreadContext *fctx = p->parent; -+ -+ while (p->num_released_buffers > 0) { -+ AVFrame *f = &p->released_buffers[--p->num_released_buffers]; -+ -+ av_freep(&f->thread_opaque); -+ -+ pthread_mutex_lock(&fctx->buffer_mutex); -+ f->owner->release_buffer(f->owner, f); -+ pthread_mutex_unlock(&fctx->buffer_mutex); -+ } -+} -+ -+/// Submit a frame to the next decoding thread -+static int submit_frame(PerThreadContext * p, AVPacket *avpkt) -+{ -+ FrameThreadContext *fctx = p->parent; -+ PerThreadContext *prev_thread = fctx->prev_thread; -+ AVCodec *codec = p->avctx->codec; -+ int err = 0; -+ -+ if (!avpkt->size && !(codec->capabilities & CODEC_CAP_DELAY)) return 0; -+ -+ pthread_mutex_lock(&p->mutex); -+ -+ handle_delayed_releases(p); -+ -+ if (prev_thread) { -+ if (prev_thread->state == STATE_SETTING_UP) { -+ pthread_mutex_lock(&prev_thread->progress_mutex); -+ while (prev_thread->state == STATE_SETTING_UP) -+ pthread_cond_wait(&prev_thread->progress_cond, &prev_thread->progress_mutex); -+ pthread_mutex_unlock(&prev_thread->progress_mutex); -+ } -+ -+ err = update_context_from_copy(p->avctx, prev_thread->avctx, 0); -+ if (err) return err; -+ } -+ -+ //FIXME: try to reuse the avpkt data instead of copying it -+ p->buf = av_fast_realloc(p->buf, &p->allocated_buf_size, avpkt->size + FF_INPUT_BUFFER_PADDING_SIZE); -+ memcpy(p->buf, avpkt->data, avpkt->size); -+ memset(p->buf + avpkt->size, 0, FF_INPUT_BUFFER_PADDING_SIZE); -+ p->buf_size = avpkt->size; -+ -+ p->state = STATE_SETTING_UP; -+ pthread_cond_signal(&p->input_cond); -+ pthread_mutex_unlock(&p->mutex); -+ -+ fctx->prev_thread = p; -+ -+ return err; -+} -+ -+int ff_decode_frame_threaded(AVCodecContext *avctx, -+ void *data, int *data_size, -+ AVPacket *avpkt) -+{ -+ FrameThreadContext *fctx = avctx->thread_opaque; -+ PerThreadContext * p; -+ int thread_count = avctx->thread_count, err = 0; -+ int returning_thread = fctx->next_finished; -+ -+ p = &fctx->threads[fctx->next_decoding]; -+ update_context_from_user(p->avctx, avctx); -+ err = submit_frame(p, avpkt); -+ if (err) return err; -+ -+ fctx->next_decoding++; -+ -+ if (fctx->delaying) { -+ if (fctx->next_decoding >= (thread_count-1)) fctx->delaying = 0; -+ -+ *data_size=0; -+ return 0; -+ } -+ -+ //If it's draining frames at EOF, ignore null frames from the codec. -+ //Only return one when we've run out of codec frames to return. -+ do { -+ p = &fctx->threads[returning_thread++]; -+ -+ if (p->state != STATE_INPUT_READY) { -+ pthread_mutex_lock(&p->progress_mutex); -+ while (p->state != STATE_INPUT_READY) -+ pthread_cond_wait(&p->output_cond, &p->progress_mutex); -+ pthread_mutex_unlock(&p->progress_mutex); -+ } -+ -+ *(AVFrame*)data = p->picture; -+ *data_size = p->got_picture; -+ -+ avcodec_get_frame_defaults(&p->picture); -+ p->got_picture = 0; -+ -+ if (returning_thread >= thread_count) returning_thread = 0; -+ } while (!avpkt->size && !*data_size && returning_thread != fctx->next_finished); -+ -+ update_context_from_copy(avctx, p->avctx, 1); -+ -+ if (fctx->next_decoding >= thread_count) fctx->next_decoding = 0; -+ fctx->next_finished = returning_thread; -+ -+ return p->result; -+} -+ -+void ff_report_field_progress(AVFrame *f, int n, int field) -+{ -+ PerThreadContext *p = f->owner->thread_opaque; -+ int *progress = f->thread_opaque; -+ -+ if (progress[field] >= n) return; -+ -+ if (f->owner->debug&FF_DEBUG_THREADS) -+ av_log(f->owner, AV_LOG_DEBUG, "%p finished %d field %d\n", progress, n, field); -+ -+ pthread_mutex_lock(&p->progress_mutex); -+ progress[field] = n; -+ pthread_cond_broadcast(&p->progress_cond); -+ pthread_mutex_unlock(&p->progress_mutex); -+} -+ -+void ff_await_field_progress(AVFrame *f, int n, int field) -+{ -+ PerThreadContext *p = f->owner->thread_opaque; -+ int *progress = f->thread_opaque; -+ -+ if (progress[field] >= n) return; -+ -+ if (f->owner->debug&FF_DEBUG_THREADS) -+ av_log(f->owner, AV_LOG_DEBUG, "thread awaiting %d field %d from %p\n", n, field, progress); -+ -+ pthread_mutex_lock(&p->progress_mutex); -+ while (progress[field] < n) -+ pthread_cond_wait(&p->progress_cond, &p->progress_mutex); -+ pthread_mutex_unlock(&p->progress_mutex); -+} -+ -+void ff_report_frame_progress(AVFrame *f, int n) -+{ -+ ff_report_field_progress(f, n, 0); -+} -+ -+void ff_await_frame_progress(AVFrame *f, int n) -+{ -+ ff_await_field_progress(f, n, 0); -+} -+ -+void ff_report_frame_setup_done(AVCodecContext *avctx) { -+ PerThreadContext *p = avctx->thread_opaque; -+ -+ if (!USE_FRAME_THREADING(avctx)) return; -+ -+ pthread_mutex_lock(&p->progress_mutex); -+ p->state = STATE_SETUP_FINISHED; -+ pthread_cond_broadcast(&p->progress_cond); -+ pthread_mutex_unlock(&p->progress_mutex); -+} -+ -+/// Wait for all threads to finish decoding -+static void park_frame_worker_threads(FrameThreadContext *fctx, int thread_count) -+{ -+ int i; -+ -+ for (i = 0; i < thread_count; i++) { -+ PerThreadContext *p = &fctx->threads[i]; -+ -+ if (p->state != STATE_INPUT_READY) { -+ pthread_mutex_lock(&p->progress_mutex); -+ while (p->state != STATE_INPUT_READY) -+ pthread_cond_wait(&p->output_cond, &p->progress_mutex); -+ pthread_mutex_unlock(&p->progress_mutex); -+ } -+ } -+} -+ -+static void frame_thread_free(AVCodecContext *avctx, int thread_count) -+{ -+ FrameThreadContext *fctx = avctx->thread_opaque; -+ AVCodec *codec = avctx->codec; -+ int i; -+ -+ park_frame_worker_threads(fctx, thread_count); -+ -+ if (fctx->prev_thread && fctx->prev_thread != fctx->threads) -+ update_context_from_copy(fctx->threads->avctx, fctx->prev_thread->avctx, 0); -+ -+ fctx->die = 1; -+ -+ for (i = 0; i < thread_count; i++) { -+ PerThreadContext *p = &fctx->threads[i]; -+ -+ pthread_mutex_lock(&p->mutex); -+ pthread_cond_signal(&p->input_cond); -+ pthread_mutex_unlock(&p->mutex); -+ -+ pthread_join(p->thread, NULL); -+ -+ if (codec->close) -+ codec->close(p->avctx); -+ -+ handle_delayed_releases(p); -+ } -+ -+ for (i = 0; i < thread_count; i++) { -+ PerThreadContext *p = &fctx->threads[i]; -+ -+ avcodec_default_free_buffers(p->avctx); -+ -+ pthread_mutex_destroy(&p->mutex); -+ pthread_mutex_destroy(&p->progress_mutex); -+ pthread_cond_destroy(&p->input_cond); -+ pthread_cond_destroy(&p->progress_cond); -+ pthread_cond_destroy(&p->output_cond); -+ av_freep(&p->buf); -+ -+ if (i) -+ av_freep(&p->avctx->priv_data); -+ -+ av_freep(&p->avctx); -+ } -+ -+ av_freep(&fctx->threads); -+ pthread_mutex_destroy(&fctx->buffer_mutex); -+ av_freep(&avctx->thread_opaque); -+} -+ -+static int frame_thread_init(AVCodecContext *avctx) -+{ -+ FrameThreadContext *fctx; -+ AVCodecContext *src = avctx; -+ AVCodec *codec = avctx->codec; -+ int i, thread_count = avctx->thread_count, err = 0; -+ -+ avctx->thread_opaque = fctx = av_mallocz(sizeof(FrameThreadContext)); -+ fctx->delaying = 1; -+ pthread_mutex_init(&fctx->buffer_mutex, NULL); -+ -+ fctx->threads = av_mallocz(sizeof(PerThreadContext) * thread_count); -+ -+ for (i = 0; i < thread_count; i++) { -+ AVCodecContext *copy = av_malloc(sizeof(AVCodecContext)); -+ PerThreadContext *p = &fctx->threads[i]; -+ -+ pthread_mutex_init(&p->mutex, NULL); -+ pthread_mutex_init(&p->progress_mutex, NULL); -+ pthread_cond_init(&p->input_cond, NULL); -+ pthread_cond_init(&p->progress_cond, NULL); -+ pthread_cond_init(&p->output_cond, NULL); -+ -+ p->parent = fctx; -+ p->avctx = copy; -+ -+ *copy = *src; -+ copy->thread_opaque = p; -+ -+ if (!i) { -+ src = copy; -+ -+ if (codec->init) -+ err = codec->init(copy); -+ } else { -+ copy->is_copy = 1; -+ copy->priv_data = av_malloc(codec->priv_data_size); -+ memcpy(copy->priv_data, src->priv_data, codec->priv_data_size); -+ -+ if (codec->init_copy) -+ err = codec->init_copy(copy); -+ } -+ -+ if (err) goto error; -+ -+ pthread_create(&p->thread, NULL, frame_worker_thread, p); -+ } -+ -+ update_context_from_copy(avctx, src, 1); -+ -+ return 0; -+ -+error: -+ frame_thread_free(avctx, i); -+ -+ return err; -+} -+ -+void ff_frame_thread_flush(AVCodecContext *avctx) -+{ -+ FrameThreadContext *fctx = avctx->thread_opaque; -+ -+ if (!avctx->thread_opaque) return; -+ -+ park_frame_worker_threads(fctx, avctx->thread_count); -+ -+ if (fctx->prev_thread && fctx->prev_thread != fctx->threads) -+ update_context_from_copy(fctx->threads->avctx, fctx->prev_thread->avctx, 0); -+ -+ fctx->next_decoding = fctx->next_finished = 0; -+ fctx->delaying = 1; -+ fctx->prev_thread = NULL; -+} -+ -+int ff_get_buffer(AVCodecContext *avctx, AVFrame *f) -+{ -+ int ret, *progress; -+ PerThreadContext *p = avctx->thread_opaque; -+ -+ f->owner = avctx; -+ f->thread_opaque = progress = av_malloc(sizeof(int)*2); -+ -+ if (!USE_FRAME_THREADING(avctx)) { -+ progress[0] = -+ progress[1] = INT_MAX; -+ return avctx->get_buffer(avctx, f); -+ } -+ -+ progress[0] = -+ progress[1] = -1; -+ -+ pthread_mutex_lock(&p->parent->buffer_mutex); -+ ret = avctx->get_buffer(avctx, f); -+ pthread_mutex_unlock(&p->parent->buffer_mutex); -+ -+ /* -+ * The buffer list isn't shared between threads, -+ * so age doesn't mean what codecs expect it to mean. -+ * Disable it for now. -+ */ -+ f->age = INT_MAX; -+ -+ return ret; -+} -+ -+void ff_release_buffer(AVCodecContext *avctx, AVFrame *f) -+{ -+ PerThreadContext *p = avctx->thread_opaque; -+ -+ if (!USE_FRAME_THREADING(avctx)) { -+ av_freep(&f->thread_opaque); -+ avctx->release_buffer(avctx, f); -+ return; -+ } -+ -+ if (p->num_released_buffers >= MAX_DELAYED_RELEASED_BUFFERS) { -+ av_log(p->avctx, AV_LOG_ERROR, "too many delayed release_buffer calls!\n"); -+ return; -+ } -+ -+ if(avctx->debug & FF_DEBUG_BUFFERS) -+ av_log(avctx, AV_LOG_DEBUG, "delayed_release_buffer called on pic %p, %d buffers used\n", -+ f, f->owner->internal_buffer_count); -+ -+ p->released_buffers[p->num_released_buffers++] = *f; -+ memset(f->data, 0, sizeof(f->data)); -+} -+ -+/// Set the threading algorithm used, or none if an algorithm was set but no thread count. -+static void validate_thread_parameters(AVCodecContext *avctx) -+{ -+ int frame_threading_supported = (avctx->codec->capabilities & CODEC_CAP_FRAME_THREADS) -+ && !(avctx->flags & CODEC_FLAG_TRUNCATED) -+ && !(avctx->flags & CODEC_FLAG_LOW_DELAY) -+ && !(avctx->flags2 & CODEC_FLAG2_CHUNKS); -+ if (avctx->thread_count <= 1) -+ avctx->active_thread_type = 0; -+ else if (frame_threading_supported && (avctx->thread_type & FF_THREAD_FRAME)) -+ avctx->active_thread_type = FF_THREAD_FRAME; -+ else -+ avctx->active_thread_type = FF_THREAD_SLICE; -+} -+ -+int avcodec_thread_init(AVCodecContext *avctx, int thread_count) -+{ -+ if (avctx->thread_opaque) { -+ av_log(avctx, AV_LOG_ERROR, "avcodec_thread_init called after avcodec_open, this does nothing in ffmpeg-mt\n"); -+ return -1; -+ } -+ -+ avctx->thread_count = thread_count; -+ -+ if (avctx->codec) { -+ validate_thread_parameters(avctx); -+ -+ if (USE_AVCODEC_EXECUTE(avctx)) -+ return thread_init(avctx); -+ else if (USE_FRAME_THREADING(avctx)) -+ return frame_thread_init(avctx); -+ } -+ -+ return 0; -+} -+ -+void avcodec_thread_free(AVCodecContext *avctx) -+{ -+ if (USE_FRAME_THREADING(avctx)) -+ frame_thread_free(avctx, avctx->thread_count); -+ else -+ thread_free(avctx); -+} -diff -Naur ffmpeg-mt-normal/libavcodec/snow.c ffmpeg-mt-thread/libavcodec/snow.c ---- ffmpeg-mt-normal/libavcodec/snow.c 2010-01-04 22:34:18.000000000 -0800 -+++ ffmpeg-mt-thread/libavcodec/snow.c 2010-01-04 22:36:29.000000000 -0800 -@@ -2648,9 +2648,9 @@ - int h= s->avctx->height; - - if(s->current_picture.data[0]){ -- s->dsp.draw_edges(s->current_picture.data[0], s->current_picture.linesize[0], w , h , EDGE_WIDTH ); -- s->dsp.draw_edges(s->current_picture.data[1], s->current_picture.linesize[1], w>>1, h>>1, EDGE_WIDTH/2); -- s->dsp.draw_edges(s->current_picture.data[2], s->current_picture.linesize[2], w>>1, h>>1, EDGE_WIDTH/2); -+ s->dsp.draw_edges(s->current_picture.data[0], s->current_picture.linesize[0], w , h , EDGE_WIDTH , EDGE_TOP|EDGE_BOTTOM); -+ s->dsp.draw_edges(s->current_picture.data[1], s->current_picture.linesize[1], w>>1, h>>1, EDGE_WIDTH/2, EDGE_TOP|EDGE_BOTTOM); -+ s->dsp.draw_edges(s->current_picture.data[2], s->current_picture.linesize[2], w>>1, h>>1, EDGE_WIDTH/2, EDGE_TOP|EDGE_BOTTOM); - } - - release_buffer(s->avctx); -diff -Naur ffmpeg-mt-normal/libavcodec/thread.h ffmpeg-mt-thread/libavcodec/thread.h ---- ffmpeg-mt-normal/libavcodec/thread.h 1969-12-31 16:00:00.000000000 -0800 -+++ ffmpeg-mt-thread/libavcodec/thread.h 2010-01-04 22:36:29.000000000 -0800 -@@ -0,0 +1,139 @@ -+/* -+ * Multithreading support -+ * Copyright (c) 2008 Alexander Strange -+ * -+ * This file is part of FFmpeg. -+ * -+ * FFmpeg is free software; you can redistribute it and/or -+ * modify it under the terms of the GNU Lesser General Public -+ * License as published by the Free Software Foundation; either -+ * version 2.1 of the License, or (at your option) any later version. -+ * -+ * FFmpeg is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ * Lesser General Public License for more details. -+ * -+ * You should have received a copy of the GNU Lesser General Public -+ * License along with FFmpeg; if not, write to the Free Software -+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA -+ */ -+ -+/** -+ * @file thread.h -+ * Multithreading support header. -+ * @author Alexander Strange -+ */ -+ -+#ifndef AVCODEC_THREAD_H -+#define AVCODEC_THREAD_H -+ -+#include "config.h" -+#include "avcodec.h" -+ -+/** -+ * Wait for all decoding threads to finish and then reset the internal state. -+ */ -+void ff_frame_thread_flush(AVCodecContext *avctx); -+ -+/** -+ * Submit a new frame for multithreaded decoding. Parameters -+ * are the same as avcodec_decode_video(). The result will be -+ * what the codec output (X-1) frames ago, where X is the number -+ * of threads. -+ * NULL AVFrames returned from the codec will be dropped if -+ * the client is flushing frames at EOF, and the next available -+ * frame will be returned. -+ */ -+int ff_decode_frame_threaded(AVCodecContext *avctx, -+ void *data, int *data_size, -+ AVPacket *avpkt); -+ -+#if HAVE_PTHREADS -+ -+/** -+ * If the codec defines update_context, call this after doing -+ * all setup work for the next thread. update_context will be -+ * called sometime afterwards, after which no variable read by -+ * it may be changed by the codec. -+ */ -+void ff_report_frame_setup_done(AVCodecContext *avctx); -+ -+/** -+ * Call this function after decoding some part of a frame. -+ * Subsequent calls with lower values for \p progress will be ignored. -+ * -+ * @param f The frame being decoded -+ * @param progress The highest-numbered part finished so far -+ */ -+void ff_report_frame_progress(AVFrame *f, int progress); -+ -+/** -+ * Call this function before accessing some part of a reference frame. -+ * On return, all parts up to the requested number will be available. -+ */ -+void ff_await_frame_progress(AVFrame *f, int progress); -+ -+/** -+ * Equivalent of ff_report_frame_progress() for pictures whose fields -+ * are stored in seperate frames. -+ * -+ * @param f The frame containing the current field -+ * @param progress The highest-numbered part finished so far -+ * @param field The current field. 0 for top field/frame, 1 for bottom. -+ */ -+void ff_report_field_progress(AVFrame *f, int progress, int field); -+ -+/** -+ * Equivalent of ff_await_frame_progress() for pictures whose fields -+ * are stored in seperate frames. -+ */ -+void ff_await_field_progress(AVFrame *f, int progress, int field); -+ -+/** -+ * Allocate a frame with avctx->get_buffer() and set -+ * values needed for multithreading. Codecs must call -+ * this instead of using get_buffer() directly if -+ * frame threading is enabled. -+ */ -+int ff_get_buffer(AVCodecContext *avctx, AVFrame *f); -+ -+/** -+ * Release a frame at a later time, after all earlier -+ * decoding threads have completed. On return, \p f->data -+ * will be cleared. Codec must call this instead of using -+ * release_buffer() directly if frame threading is enabled. -+ */ -+void ff_release_buffer(AVCodecContext *avctx, AVFrame *f); -+ -+///True if frame threading is active. -+#define USE_FRAME_THREADING(avctx) (avctx->active_thread_type == FF_THREAD_FRAME) -+///True if calling AVCodecContext execute() will run in parallel. -+#define USE_AVCODEC_EXECUTE(avctx) (avctx->active_thread_type == FF_THREAD_SLICE) -+ -+#else -+ -+//Stub out these functions for systems without pthreads -+static inline void ff_report_frame_setup_done(AVCodecContext *avctx) {} -+static inline void ff_report_frame_progress(AVFrame *f, int progress) {} -+static inline void ff_report_field_progress(AVFrame *f, int progress, int field) {} -+static inline void ff_await_frame_progress(AVFrame *f, int progress) {} -+static inline void ff_await_field_progress(AVFrame *f, int progress, int field) {} -+ -+static inline int ff_get_buffer(AVCodecContext *avctx, AVFrame *f) -+{ -+ f->owner = avctx; -+ return avctx->get_buffer(avctx, f); -+} -+ -+static inline void ff_release_buffer(AVCodecContext *avctx, AVFrame *f) -+{ -+ f->owner->release_buffer(f->owner, f); -+} -+ -+#define USE_FRAME_THREADING(avctx) 0 -+#define USE_AVCODEC_EXECUTE(avctx) (HAVE_THREADS && avctx->active_thread_type) -+ -+#endif -+ -+#endif /* AVCODEC_THREAD_H */ -diff -Naur ffmpeg-mt-normal/libavcodec/utils.c ffmpeg-mt-thread/libavcodec/utils.c ---- ffmpeg-mt-normal/libavcodec/utils.c 2010-01-04 22:34:18.000000000 -0800 -+++ ffmpeg-mt-thread/libavcodec/utils.c 2010-01-04 22:36:29.000000000 -0800 -@@ -35,6 +35,7 @@ - #include "dsputil.h" - #include "opt.h" - #include "imgconvert.h" -+#include "thread.h" - #include "audioconvert.h" - #include "internal.h" - #include -@@ -225,6 +226,11 @@ - (*picture_number)++; - - if(buf->base[0] && (buf->width != w || buf->height != h || buf->pix_fmt != s->pix_fmt)){ -+ if(USE_FRAME_THREADING(s)) { -+ av_log_missing_feature(s, "Width/height changing with frame threads is", 0); -+ return -1; -+ } -+ - for(i=0; i<4; i++){ - av_freep(&buf->base[i]); - buf->data[i]= NULL; -@@ -333,6 +339,7 @@ - assert(pic->type==FF_BUFFER_TYPE_INTERNAL); - assert(s->internal_buffer_count); - -+ if(s->internal_buffer){ - buf = NULL; /* avoids warning */ - for(i=0; iinternal_buffer_count; i++){ //just 3-5 checks so is not worth to optimize - buf= &((InternalBuffer*)s->internal_buffer)[i]; -@@ -344,6 +351,7 @@ - last = &((InternalBuffer*)s->internal_buffer)[s->internal_buffer_count]; - - FFSWAP(InternalBuffer, *buf, *last); -+ } - - for(i=0; i<4; i++){ - pic->data[i]=NULL; -@@ -485,7 +493,17 @@ - goto free_and_end; - } - avctx->frame_number = 0; -- if(avctx->codec->init){ -+ -+ if (HAVE_THREADS && avctx->thread_count>1 && !avctx->thread_opaque) { -+ ret = avcodec_thread_init(avctx, avctx->thread_count); -+ if (ret < 0) { -+ av_freep(&avctx->priv_data); -+ avctx->codec= NULL; -+ goto end; -+ } -+ } -+ -+ if(avctx->codec->init && !USE_FRAME_THREADING(avctx)){ - ret = avctx->codec->init(avctx); - if (ret < 0) { - goto free_and_end; -@@ -576,12 +594,15 @@ - AVPacket *avpkt) - { - int ret; -+ int threaded = USE_FRAME_THREADING(avctx); - - *got_picture_ptr= 0; - if((avctx->coded_width||avctx->coded_height) && avcodec_check_dimensions(avctx,avctx->coded_width,avctx->coded_height)) - return -1; -- if((avctx->codec->capabilities & CODEC_CAP_DELAY) || avpkt->size){ -- ret = avctx->codec->decode(avctx, picture, got_picture_ptr, -+ if((avctx->codec->capabilities & CODEC_CAP_DELAY) || avpkt->size || threaded){ -+ if (threaded) ret = ff_decode_frame_threaded(avctx, picture, -+ got_picture_ptr, avpkt); -+ else ret = avctx->codec->decode(avctx, picture, got_picture_ptr, - avpkt); - - emms_c(); //needed to avoid an emms_c() call before every return; -@@ -679,11 +700,12 @@ - - if (HAVE_THREADS && avctx->thread_opaque) - avcodec_thread_free(avctx); -- if (avctx->codec && avctx->codec->close) -+ if (avctx->codec && avctx->codec->close && !USE_FRAME_THREADING(avctx)) - avctx->codec->close(avctx); - avcodec_default_free_buffers(avctx); - av_freep(&avctx->priv_data); - avctx->codec = NULL; -+ avctx->active_thread_type = 0; - entangled_thread_counter--; - - /* Release any user-supplied mutex. */ -@@ -919,6 +941,8 @@ - - void avcodec_flush_buffers(AVCodecContext *avctx) - { -+ if(USE_FRAME_THREADING(avctx)) -+ ff_frame_thread_flush(avctx); - if(avctx->codec->flush) - avctx->codec->flush(avctx); - } -diff -Naur ffmpeg-mt-normal/libavcodec/vp3.c ffmpeg-mt-thread/libavcodec/vp3.c ---- ffmpeg-mt-normal/libavcodec/vp3.c 2010-01-04 22:34:18.000000000 -0800 -+++ ffmpeg-mt-thread/libavcodec/vp3.c 2010-01-04 22:36:29.000000000 -0800 -@@ -39,6 +39,7 @@ - - #include "vp3data.h" - #include "xiph.h" -+#include "thread.h" - - #define FRAGMENT_PIXELS 8 - -@@ -56,6 +57,8 @@ - /* address of first pixel taking into account which plane the fragment - * lives on as well as the plane stride */ - int first_pixel; -+ /* the y component of first_pixel */ -+ int first_row; - /* this is the macroblock that the fragment belongs to */ - uint16_t macroblock; - uint8_t coding_method; -@@ -1389,6 +1392,33 @@ - } - } - -+/** -+ * Wait for the reference frame of a fragment. -+ * Units used are pixel rows with chroma after luma rows. -+ */ -+static void await_reference_row(Vp3DecodeContext *s, int plane, Vp3Fragment *fragment) -+{ -+ AVFrame *ref_frame; -+ int border = fragment->motion_y&1; -+ int scale = 1 + !!plane; -+ int max_row = s->height * 2; -+ int ref_row; -+ -+ if (!USE_FRAME_THREADING(s->avctx)) -+ return; -+ -+ if (fragment->coding_method == MODE_USING_GOLDEN || -+ fragment->coding_method == MODE_GOLDEN_MV) -+ ref_frame = &s->golden_frame; -+ else -+ ref_frame = &s->last_frame; -+ -+ ref_row = fragment->first_row + (fragment->motion_y >> scale); -+ ref_row = FFMAX(FFABS(ref_row), ref_row + 8 + border); -+ -+ ff_await_frame_progress(ref_frame, FFMIN(ref_row, max_row)); -+} -+ - /* - * Perform the final rendering for a particular slice of data. - * The slice number ranges from 0..(macroblock_height - 1). -@@ -1435,6 +1465,9 @@ - return; - } - -+ if (s->all_fragments[i].coding_method != MODE_INTRA) -+ await_reference_row(s, plane, &s->all_fragments[i]); -+ - /* transform if this block was coded */ - if ((s->all_fragments[i].coding_method != MODE_COPY) && - !((s->avctx->flags & CODEC_FLAG_GRAY) && plane)) { -@@ -1600,6 +1633,7 @@ - int plane; - int x, y; - int *bounding_values= s->bounding_values_array+127; -+ int rows = 0; - - #if 0 - int bounding_values_array[256]; -@@ -1676,7 +1710,13 @@ - - fragment++; - } -+ -+ ff_report_frame_progress(&s->current_frame, rows); -+ rows += FRAGMENT_PIXELS; - } -+ -+ //needs to be called twice to catch the last row in a plane -+ ff_report_frame_progress(&s->current_frame, rows); - } - } - -@@ -1692,40 +1732,77 @@ - - int i, x, y; - const int y_inc = s->flipped_image ? 1 : -1; -+ int rows = 0; - - /* figure out the first pixel addresses for each of the fragments */ - /* Y plane */ - i = 0; - for (y = Y_INITIAL(0); Y_FINISHED(0); y += y_inc) { - for (x = 0; x < s->fragment_width; x++) { -- s->all_fragments[i++].first_pixel = -+ s->all_fragments[i].first_pixel = - s->golden_frame.linesize[0] * y * FRAGMENT_PIXELS - - s->golden_frame.linesize[0] + - x * FRAGMENT_PIXELS; -+ s->all_fragments[i++].first_row = rows * FRAGMENT_PIXELS; - } -+ rows++; - } - - /* U plane */ - i = s->fragment_start[1]; - for (y = Y_INITIAL(1); Y_FINISHED(1); y += y_inc) { - for (x = 0; x < s->fragment_width / 2; x++) { -- s->all_fragments[i++].first_pixel = -+ s->all_fragments[i].first_pixel = - s->golden_frame.linesize[1] * y * FRAGMENT_PIXELS - - s->golden_frame.linesize[1] + - x * FRAGMENT_PIXELS; -+ s->all_fragments[i++].first_row = rows * FRAGMENT_PIXELS; - } -+ rows++; - } - - /* V plane */ - i = s->fragment_start[2]; - for (y = Y_INITIAL(1); Y_FINISHED(1); y += y_inc) { - for (x = 0; x < s->fragment_width / 2; x++) { -- s->all_fragments[i++].first_pixel = -+ s->all_fragments[i].first_pixel = - s->golden_frame.linesize[2] * y * FRAGMENT_PIXELS - - s->golden_frame.linesize[2] + - x * FRAGMENT_PIXELS; -+ s->all_fragments[i++].first_row = rows * FRAGMENT_PIXELS; - } -+ rows++; -+ } -+} -+ -+/// Allocate tables for frame data in Vp3DecodeContext -+static av_cold int allocate_tables(AVCodecContext *avctx) -+{ -+ Vp3DecodeContext *s = avctx->priv_data; -+ -+ s->superblock_coding = av_malloc(s->superblock_count); -+ s->all_fragments = av_malloc(s->fragment_count * sizeof(Vp3Fragment)); -+ s->coeff_counts = av_malloc(s->fragment_count * sizeof(*s->coeff_counts)); -+ s->coeffs = av_malloc(s->fragment_count * sizeof(Coeff) * 65); -+ s->coded_fragment_list = av_malloc(s->fragment_count * sizeof(int)); -+ s->fast_fragment_list = av_malloc(s->fragment_count * sizeof(int)); -+ -+ /* work out the block mapping tables */ -+ s->superblock_fragments = av_malloc(s->superblock_count * 16 * sizeof(int)); -+ s->superblock_macroblocks = av_malloc(s->superblock_count * 4 * sizeof(int)); -+ s->macroblock_fragments = av_malloc(s->macroblock_count * 6 * sizeof(int)); -+ s->macroblock_coding = av_malloc(s->macroblock_count + 1); -+ -+ if (!s->superblock_coding || !s->all_fragments || !s->coeff_counts || -+ !s->coeffs || !s->coded_fragment_list || !s->fast_fragment_list || -+ !s->superblock_fragments || !s->superblock_macroblocks || -+ !s->macroblock_fragments || !s->macroblock_coding) { -+ vp3_decode_end(avctx); -+ return -1; - } -+ init_block_mapping(s); -+ -+ return 0; - } - - /* -@@ -1775,7 +1852,6 @@ - s->superblock_count = y_superblock_count + (c_superblock_count * 2); - s->u_superblock_start = y_superblock_count; - s->v_superblock_start = s->u_superblock_start + c_superblock_count; -- s->superblock_coding = av_malloc(s->superblock_count); - - s->macroblock_width = (s->width + 15) / 16; - s->macroblock_height = (s->height + 15) / 16; -@@ -1789,17 +1865,7 @@ - s->fragment_start[1] = s->fragment_width * s->fragment_height; - s->fragment_start[2] = s->fragment_width * s->fragment_height * 5 / 4; - -- s->all_fragments = av_malloc(s->fragment_count * sizeof(Vp3Fragment)); -- s->coeff_counts = av_malloc(s->fragment_count * sizeof(*s->coeff_counts)); -- s->coeffs = av_malloc(s->fragment_count * sizeof(Coeff) * 65); -- s->coded_fragment_list = av_malloc(s->fragment_count * sizeof(int)); -- s->fast_fragment_list = av_malloc(s->fragment_count * sizeof(int)); - s->pixel_addresses_initialized = 0; -- if (!s->superblock_coding || !s->all_fragments || !s->coeff_counts || -- !s->coeffs || !s->coded_fragment_list || !s->fast_fragment_list) { -- vp3_decode_end(avctx); -- return -1; -- } - - if (!s->theora_tables) - { -@@ -1900,31 +1966,80 @@ - &motion_vector_vlc_table[0][1], 2, 1, - &motion_vector_vlc_table[0][0], 2, 1, 0); - -- /* work out the block mapping tables */ -- s->superblock_fragments = av_malloc(s->superblock_count * 16 * sizeof(int)); -- s->superblock_macroblocks = av_malloc(s->superblock_count * 4 * sizeof(int)); -- s->macroblock_fragments = av_malloc(s->macroblock_count * 6 * sizeof(int)); -- s->macroblock_coding = av_malloc(s->macroblock_count + 1); -- if (!s->superblock_fragments || !s->superblock_macroblocks || -- !s->macroblock_fragments || !s->macroblock_coding) { -- vp3_decode_end(avctx); -- return -1; -- } -- init_block_mapping(s); -- - for (i = 0; i < 3; i++) { - s->current_frame.data[i] = NULL; - s->last_frame.data[i] = NULL; - s->golden_frame.data[i] = NULL; - } - -- return 0; -+ return allocate_tables(avctx); - - vlc_fail: - av_log(avctx, AV_LOG_FATAL, "Invalid huffman table\n"); - return -1; - } - -+/// Release and shuffle frames after decode finishes -+static void update_frames(AVCodecContext *avctx) -+{ -+ Vp3DecodeContext *s = avctx->priv_data; -+ -+ /* release the last frame, if it is allocated and if it is not the -+ * golden frame */ -+ if ((s->last_frame.data[0]) && -+ (s->last_frame.data[0] != s->golden_frame.data[0])) -+ ff_release_buffer(avctx, &s->last_frame); -+ -+ /* shuffle frames (last = current) */ -+ s->last_frame= s->current_frame; -+ s->current_frame.data[0]= NULL; /* ensure that we catch any access to this released frame */ -+} -+ -+#define copy_fields(to, from, start_field, end_field) memcpy(&to->start_field, &from->start_field, (char*)&to->end_field - (char*)&to->start_field) -+static int vp3_update_context(AVCodecContext *dst, AVCodecContext *src) -+{ -+ Vp3DecodeContext *s = dst->priv_data, *s1 = src->priv_data; -+ int qps_changed = 0, i, err; -+ -+ if (!s1->pixel_addresses_initialized -+ ||s->width != s1->width -+ ||s->height!= s1->height) -+ return -1; -+ -+ // init tables the first time -+ if (!s->pixel_addresses_initialized) { -+ s->avctx = dst; -+ err = allocate_tables(dst); -+ if (err) -+ return err; -+ memcpy(s->all_fragments, s1->all_fragments, s->fragment_count * sizeof(Vp3Fragment)); -+ s->pixel_addresses_initialized = s1->pixel_addresses_initialized; -+ } -+ -+ // copy previous frame data -+ copy_fields(s, s1, golden_frame, keyframe); -+ -+ // copy qscale data if necessary -+ for (i = 0; i < 3; i++) { -+ if (s->qps[i] != s1->qps[1]) { -+ qps_changed = 1; -+ memcpy(&s->qmat[i], &s1->qmat[i], sizeof(s->qmat[i])); -+ } -+ } -+ -+ if (s->qps[0] != s1->qps[0]) { -+ memcpy(&s->qscale_table, &s1->qscale_table, sizeof(s->qscale_table)); -+ memcpy(&s->bounding_values_array, &s1->bounding_values_array, sizeof(s->bounding_values_array)); -+ } -+ -+ if (qps_changed) -+ copy_fields(s, s1, qps, superblock_count); -+ -+ update_frames(dst); -+ -+ return 0; -+} -+ - /* - * This is the ffmpeg/libavcodec API frame decode function. - */ -@@ -1936,7 +2051,6 @@ - int buf_size = avpkt->size; - Vp3DecodeContext *s = avctx->priv_data; - GetBitContext gb; -- static int counter = 0; - int i; - - init_get_bits(&gb, buf, buf_size * 8); -@@ -1962,8 +2076,7 @@ - - if (s->avctx->debug & FF_DEBUG_PICT_INFO) - av_log(s->avctx, AV_LOG_INFO, " VP3 %sframe #%d: Q index = %d\n", -- s->keyframe?"key":"", counter, s->qps[0]); -- counter++; -+ s->keyframe?"key":"", avctx->frame_number+1, s->qps[0]); - - if (s->qps[0] != s->last_qps[0]) - init_loop_filter(s); -@@ -1985,7 +2098,7 @@ - if (s->version) - { - s->version = get_bits(&gb, 5); -- if (counter == 1) -+ if (avctx->frame_number == 0) - av_log(s->avctx, AV_LOG_DEBUG, "VP version: %d\n", s->version); - } - } -@@ -1998,17 +2111,17 @@ - - if (s->last_frame.data[0] == s->golden_frame.data[0]) { - if (s->golden_frame.data[0]) -- avctx->release_buffer(avctx, &s->golden_frame); -+ ff_release_buffer(avctx, &s->golden_frame); - s->last_frame= s->golden_frame; /* ensure that we catch any access to this released frame */ - } else { - if (s->golden_frame.data[0]) -- avctx->release_buffer(avctx, &s->golden_frame); -+ ff_release_buffer(avctx, &s->golden_frame); - if (s->last_frame.data[0]) -- avctx->release_buffer(avctx, &s->last_frame); -+ ff_release_buffer(avctx, &s->last_frame); - } - - s->golden_frame.reference = 3; -- if(avctx->get_buffer(avctx, &s->golden_frame) < 0) { -+ if(ff_get_buffer(avctx, &s->golden_frame) < 0) { - av_log(s->avctx, AV_LOG_ERROR, "vp3: get_buffer() failed\n"); - return -1; - } -@@ -2029,7 +2142,7 @@ - av_log(s->avctx, AV_LOG_ERROR, "vp3: first frame not a keyframe\n"); - return -1; - } -- if(avctx->get_buffer(avctx, &s->current_frame) < 0) { -+ if(ff_get_buffer(avctx, &s->current_frame) < 0) { - av_log(s->avctx, AV_LOG_ERROR, "vp3: get_buffer() failed\n"); - return -1; - } -@@ -2038,27 +2151,29 @@ - s->current_frame.qscale_table= s->qscale_table; //FIXME allocate individual tables per AVFrame - s->current_frame.qstride= 0; - -+ ff_report_frame_setup_done(avctx); -+ - init_frame(s, &gb); - - if (unpack_superblocks(s, &gb)){ - av_log(s->avctx, AV_LOG_ERROR, "error in unpack_superblocks\n"); -- return -1; -+ goto error; - } - if (unpack_modes(s, &gb)){ - av_log(s->avctx, AV_LOG_ERROR, "error in unpack_modes\n"); -- return -1; -+ goto error; - } - if (unpack_vectors(s, &gb)){ - av_log(s->avctx, AV_LOG_ERROR, "error in unpack_vectors\n"); -- return -1; -+ goto error; - } - if (unpack_block_qpis(s, &gb)){ - av_log(s->avctx, AV_LOG_ERROR, "error in unpack_block_qpis\n"); -- return -1; -+ goto error; - } - if (unpack_dct_coeffs(s, &gb)){ - av_log(s->avctx, AV_LOG_ERROR, "error in unpack_dct_coeffs\n"); -- return -1; -+ goto error; - } - - for (i = 0; i < s->macroblock_height; i++) -@@ -2069,17 +2184,13 @@ - *data_size=sizeof(AVFrame); - *(AVFrame*)data= s->current_frame; - -- /* release the last frame, if it is allocated and if it is not the -- * golden frame */ -- if ((s->last_frame.data[0]) && -- (s->last_frame.data[0] != s->golden_frame.data[0])) -- avctx->release_buffer(avctx, &s->last_frame); -- -- /* shuffle frames (last = current) */ -- s->last_frame= s->current_frame; -- s->current_frame.data[0]= NULL; /* ensure that we catch any access to this released frame */ -+ if (!USE_FRAME_THREADING(avctx)) -+ update_frames(avctx); - - return buf_size; -+error: -+ ff_report_frame_progress(&s->current_frame, INT_MAX); -+ return -1; - } - - /* -@@ -2101,6 +2212,8 @@ - av_free(s->macroblock_fragments); - av_free(s->macroblock_coding); - -+ if (avctx->is_copy) return 0; -+ - for (i = 0; i < 16; i++) { - free_vlc(&s->dc_vlc[i]); - free_vlc(&s->ac_vlc_1[i]); -@@ -2116,9 +2229,9 @@ - - /* release all frames */ - if (s->golden_frame.data[0] && s->golden_frame.data[0] != s->last_frame.data[0]) -- avctx->release_buffer(avctx, &s->golden_frame); -+ ff_release_buffer(avctx, &s->golden_frame); - if (s->last_frame.data[0]) -- avctx->release_buffer(avctx, &s->last_frame); -+ ff_release_buffer(avctx, &s->last_frame); - /* no need to release the current_frame since it will always be pointing - * to the same frame as either the golden or last frame */ - -@@ -2418,9 +2531,10 @@ - NULL, - vp3_decode_end, - vp3_decode_frame, -- CODEC_CAP_DR1, -+ CODEC_CAP_DR1 | CODEC_CAP_FRAME_THREADS, - NULL, - .long_name = NULL_IF_CONFIG_SMALL("Theora"), -+ .update_context = ONLY_IF_THREADS_ENABLED(vp3_update_context) - }; - #endif - -@@ -2433,7 +2547,8 @@ - NULL, - vp3_decode_end, - vp3_decode_frame, -- CODEC_CAP_DR1, -+ CODEC_CAP_DR1 | CODEC_CAP_FRAME_THREADS, - NULL, - .long_name = NULL_IF_CONFIG_SMALL("On2 VP3"), -+ .update_context = ONLY_IF_THREADS_ENABLED(vp3_update_context), - }; -diff -Naur ffmpeg-mt-normal/libavcodec/w32thread.c ffmpeg-mt-thread/libavcodec/w32thread.c ---- ffmpeg-mt-normal/libavcodec/w32thread.c 2010-01-04 22:34:18.000000000 -0800 -+++ ffmpeg-mt-thread/libavcodec/w32thread.c 2010-01-04 22:36:29.000000000 -0800 -@@ -129,7 +129,13 @@ - ThreadContext *c; - uint32_t threadid; - -+ if(!(s->thread_type & FF_THREAD_SLICE)){ -+ av_log(s, AV_LOG_WARNING, "The requested thread algorithm is not supported with this thread library.\n"); -+ return 0; -+ } -+ - s->thread_count= thread_count; -+ s->active_thread_type= FF_THREAD_SLICE; - - assert(!s->thread_opaque); - c= av_mallocz(sizeof(ThreadContext)*thread_count); -diff -Naur ffmpeg-mt-normal/libavcodec/x86/dsputil_mmx.c ffmpeg-mt-thread/libavcodec/x86/dsputil_mmx.c ---- ffmpeg-mt-normal/libavcodec/x86/dsputil_mmx.c 2010-01-04 22:34:14.000000000 -0800 -+++ ffmpeg-mt-thread/libavcodec/x86/dsputil_mmx.c 2010-01-04 22:36:29.000000000 -0800 -@@ -806,7 +806,7 @@ - - /* draw the edges of width 'w' of an image of size width, height - this mmx version can only handle w==8 || w==16 */ --static void draw_edges_mmx(uint8_t *buf, int wrap, int width, int height, int w) -+static void draw_edges_mmx(uint8_t *buf, int wrap, int width, int height, int w, int sides) - { - uint8_t *ptr, *last_line; - int i; -@@ -861,34 +861,39 @@ - - for(i=0;iav_log_level) - return; - #undef fprintf diff --git a/packages/multimedia/ffmpeg/patches/ffmpeg-vaapi_20100105.diff b/packages/multimedia/ffmpeg/patches/ffmpeg-vaapi_20100105.diff deleted file mode 100644 index a8b86bcd49..0000000000 --- a/packages/multimedia/ffmpeg/patches/ffmpeg-vaapi_20100105.diff +++ /dev/null @@ -1,12 +0,0 @@ -diff -Naur ffmpeg-21029.30224-old/libavcodec/Makefile ffmpeg-21029.30224-new/libavcodec/Makefile ---- ffmpeg-21029.30224-old/libavcodec/Makefile 2010-01-04 22:46:31.000000000 -0800 -+++ ffmpeg-21029.30224-new/libavcodec/Makefile 2010-01-05 15:22:26.000000000 -0800 -@@ -3,7 +3,7 @@ - NAME = avcodec - FFLIBS = avutil - --HEADERS = avcodec.h opt.h vdpau.h xvmc.h -+HEADERS = avcodec.h opt.h vaapi.h vdpau.h xvmc.h - - OBJS = allcodecs.o \ - audioconvert.o \ diff --git a/packages/multimedia/ffmpeg/url b/packages/multimedia/ffmpeg/url deleted file mode 100644 index eefa5c8607..0000000000 --- a/packages/multimedia/ffmpeg/url +++ /dev/null @@ -1 +0,0 @@ -http://sources.openelec.tv/svn/ffmpeg-21030.tar.bz2 From 61a46ccc572db42db6cdffd4ce526711c98f9065 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Tue, 6 Apr 2010 17:39:06 +0200 Subject: [PATCH 044/320] projects/*/options: - remove option for building external/internal ffmpeg --- projects/ION/options | 5 ----- projects/generic/options | 5 ----- projects/intel/options | 5 ----- 3 files changed, 15 deletions(-) diff --git a/projects/ION/options b/projects/ION/options index 76555fab68..f9b58a3791 100644 --- a/projects/ION/options +++ b/projects/ION/options @@ -82,11 +82,6 @@ # e.g. GRAPHIC_DRIVERS="i915 i965 radeon nvidia" GRAPHIC_DRIVERS="nvidia" -# Use internal or external ffmpeg. Internal means included ffmpeg in XBMC, -# external means seperate ffmpeg library. External ffmpeg is needed for -# multithreading support and future vaapi support (internal / external) - FFMPEG="internal" - # Use VDPAU video acceleration (needs nVidia driver and a supported card) VDPAU="yes" diff --git a/projects/generic/options b/projects/generic/options index 2f065d0f10..57e1be0474 100644 --- a/projects/generic/options +++ b/projects/generic/options @@ -82,11 +82,6 @@ # e.g. GRAPHIC_DRIVERS="i915 i965 r300 r600 radeon nvidia" GRAPHIC_DRIVERS="i915 i965 r200 r300 r600 radeon nvidia" -# Use internal or external ffmpeg. Internal means included ffmpeg in XBMC, -# external means seperate ffmpeg library. External ffmpeg is needed for -# multithreading support and future vaapi support (internal / external) - FFMPEG="internal" - # Use VDPAU video acceleration (needs nVidia driver and a supported card) VDPAU="yes" diff --git a/projects/intel/options b/projects/intel/options index 1b9d193486..b235bc9bd9 100644 --- a/projects/intel/options +++ b/projects/intel/options @@ -82,11 +82,6 @@ # e.g. GRAPHIC_DRIVERS="i915 i965 radeon nvidia" GRAPHIC_DRIVERS="i965" -# Use internal or external ffmpeg. Internal means included ffmpeg in XBMC, -# external means seperate ffmpeg library. External ffmpeg is needed for -# multithreading support and future vaapi support (internal / external) - FFMPEG="internal" - # Use VDPAU video acceleration (needs nVidia driver and a supported card) VDPAU="no" From 1caaaaf1ef7f3ec659f9e93dfa44400b5e90c709 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Tue, 6 Apr 2010 17:39:24 +0200 Subject: [PATCH 045/320] xbmc: - update to xbmc-29058 --- packages/mediacenter/xbmc/url | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/mediacenter/xbmc/url b/packages/mediacenter/xbmc/url index ead0c9c4b4..66e1196b79 100644 --- a/packages/mediacenter/xbmc/url +++ b/packages/mediacenter/xbmc/url @@ -1 +1 @@ -http://sources.openelec.tv/svn/xbmc-29030.tar.bz2 +http://sources.openelec.tv/svn/xbmc-29058.tar.bz2 From 12b4d0720dd4320a522b6356f5af7fa9e8c0539a Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Tue, 6 Apr 2010 17:39:44 +0200 Subject: [PATCH 046/320] xbmc-theme-Confluence: - update to xbmc-theme-Confluence-29058 --- packages/mediacenter/xbmc-theme-Confluence/url | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/mediacenter/xbmc-theme-Confluence/url b/packages/mediacenter/xbmc-theme-Confluence/url index 77aac3c580..44c2a7d066 100644 --- a/packages/mediacenter/xbmc-theme-Confluence/url +++ b/packages/mediacenter/xbmc-theme-Confluence/url @@ -1 +1 @@ -http://sources.openelec.tv/svn/xbmc-theme-Confluence-29030.tar.bz2 +http://sources.openelec.tv/svn/xbmc-theme-Confluence-29058.tar.bz2 From b25d7602a304bac52c06ce10bfa8b44992b06de0 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Wed, 7 Apr 2010 18:53:44 +0200 Subject: [PATCH 047/320] lirc: - install lircd.conf to /etc/lirc --- packages/sysutils/lirc/install | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/sysutils/lirc/install b/packages/sysutils/lirc/install index b59ba5f497..dacd01b7bb 100755 --- a/packages/sysutils/lirc/install +++ b/packages/sysutils/lirc/install @@ -11,8 +11,8 @@ mkdir -p $INSTALL/usr/sbin mkdir -p $INSTALL/usr/bin cp $PKG_BUILD/tools/irpty $INSTALL/usr/bin -mkdir -p $INSTALL/etc - cp $PKG_DIR/config/lircd_$REMOTE.conf $INSTALL/etc/lircd.conf +mkdir -p $INSTALL/etc/lirc + cp $PKG_DIR/config/lircd_$REMOTE.conf $INSTALL/etc/lirc/lircd.conf if [ "$DEVTOOLS" = yes ]; then mkdir -p $INSTALL/usr/bin From df98524a0f6e7870fa40969ab1113c03fb77d036 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Wed, 7 Apr 2010 22:24:55 +0200 Subject: [PATCH 048/320] linux: - update lirc patch to latest git --- ....33-01-add_lirc_drivers-20100407-0.1.diff} | 254 ++++++++++++------ 1 file changed, 178 insertions(+), 76 deletions(-) rename packages/linux/patches/{linux-2.6.33-01-add_lirc_drivers-20100403-0.2.diff => linux-2.6.33-01-add_lirc_drivers-20100407-0.1.diff} (98%) diff --git a/packages/linux/patches/linux-2.6.33-01-add_lirc_drivers-20100403-0.2.diff b/packages/linux/patches/linux-2.6.33-01-add_lirc_drivers-20100407-0.1.diff similarity index 98% rename from packages/linux/patches/linux-2.6.33-01-add_lirc_drivers-20100403-0.2.diff rename to packages/linux/patches/linux-2.6.33-01-add_lirc_drivers-20100407-0.1.diff index e87bcfac16..4504de19e0 100644 --- a/packages/linux/patches/linux-2.6.33-01-add_lirc_drivers-20100403-0.2.diff +++ b/packages/linux/patches/linux-2.6.33-01-add_lirc_drivers-20100407-0.1.diff @@ -1,6 +1,6 @@ diff -Naur linux-2.6.33.2/drivers/input/Kconfig linux-2.6.33.2.patch/drivers/input/Kconfig --- linux-2.6.33.2/drivers/input/Kconfig 2010-04-02 01:02:33.000000000 +0200 -+++ linux-2.6.33.2.patch/drivers/input/Kconfig 2010-04-05 14:03:57.390481468 +0200 ++++ linux-2.6.33.2.patch/drivers/input/Kconfig 2010-04-07 22:05:13.550124631 +0200 @@ -183,6 +183,8 @@ source "drivers/input/touchscreen/Kconfig" @@ -12,7 +12,7 @@ diff -Naur linux-2.6.33.2/drivers/input/Kconfig linux-2.6.33.2.patch/drivers/inp endif diff -Naur linux-2.6.33.2/drivers/input/lirc/Kconfig linux-2.6.33.2.patch/drivers/input/lirc/Kconfig --- linux-2.6.33.2/drivers/input/lirc/Kconfig 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.33.2.patch/drivers/input/lirc/Kconfig 2010-04-05 14:03:57.391483335 +0200 ++++ linux-2.6.33.2.patch/drivers/input/lirc/Kconfig 2010-04-07 22:05:13.551124752 +0200 @@ -0,0 +1,116 @@ +# +# LIRC driver(s) configuration @@ -132,7 +132,7 @@ diff -Naur linux-2.6.33.2/drivers/input/lirc/Kconfig linux-2.6.33.2.patch/driver +endif diff -Naur linux-2.6.33.2/drivers/input/lirc/lirc_bt829.c linux-2.6.33.2.patch/drivers/input/lirc/lirc_bt829.c --- linux-2.6.33.2/drivers/input/lirc/lirc_bt829.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.33.2.patch/drivers/input/lirc/lirc_bt829.c 2010-04-05 14:03:57.393483507 +0200 ++++ linux-2.6.33.2.patch/drivers/input/lirc/lirc_bt829.c 2010-04-06 23:47:20.000000000 +0200 @@ -0,0 +1,383 @@ +/* + * Remote control driver for the TV-card based on bt829 @@ -519,8 +519,8 @@ diff -Naur linux-2.6.33.2/drivers/input/lirc/lirc_bt829.c linux-2.6.33.2.patch/d +MODULE_PARM_DESC(debug, "Debug enabled or not"); diff -Naur linux-2.6.33.2/drivers/input/lirc/lirc_dev.c linux-2.6.33.2.patch/drivers/input/lirc/lirc_dev.c --- linux-2.6.33.2/drivers/input/lirc/lirc_dev.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.33.2.patch/drivers/input/lirc/lirc_dev.c 2010-04-05 14:03:57.396482822 +0200 -@@ -0,0 +1,749 @@ ++++ linux-2.6.33.2.patch/drivers/input/lirc/lirc_dev.c 2010-04-07 21:56:14.000000000 +0200 +@@ -0,0 +1,850 @@ +/* + * LIRC base driver + * @@ -558,6 +558,10 @@ diff -Naur linux-2.6.33.2/drivers/input/lirc/lirc_dev.c linux-2.6.33.2.patch/dri +#include +#include +#include ++#include ++#ifdef CONFIG_COMPAT ++#include ++#endif + +#include +#include "lirc_dev.h" @@ -684,6 +688,9 @@ diff -Naur linux-2.6.33.2/drivers/input/lirc/lirc_dev.c linux-2.6.33.2.patch/dri + .write = lirc_dev_fop_write, + .poll = lirc_dev_fop_poll, + .ioctl = lirc_dev_fop_ioctl, ++#ifdef CONFIG_COMPAT ++ .compat_ioctl = lirc_dev_fop_compat_ioctl, ++#endif + .open = lirc_dev_fop_open, + .release = lirc_dev_fop_close, +}; @@ -1107,6 +1114,100 @@ diff -Naur linux-2.6.33.2/drivers/input/lirc/lirc_dev.c linux-2.6.33.2.patch/dri +} +EXPORT_SYMBOL(lirc_dev_fop_ioctl); + ++#ifdef CONFIG_COMPAT ++#define LIRC_GET_FEATURES_COMPAT32 _IOR('i', 0x00000000, __u32) ++ ++#define LIRC_GET_SEND_MODE_COMPAT32 _IOR('i', 0x00000001, __u32) ++#define LIRC_GET_REC_MODE_COMPAT32 _IOR('i', 0x00000002, __u32) ++ ++#define LIRC_GET_LENGTH_COMPAT32 _IOR('i', 0x0000000f, __u32) ++ ++#define LIRC_SET_SEND_MODE_COMPAT32 _IOW('i', 0x00000011, __u32) ++#define LIRC_SET_REC_MODE_COMPAT32 _IOW('i', 0x00000012, __u32) ++ ++long lirc_dev_fop_compat_ioctl(struct file *file, ++ unsigned int cmd32, ++ unsigned long arg) ++{ ++ mm_segment_t old_fs; ++ int ret; ++ unsigned long val; ++ unsigned int cmd; ++ ++ switch (cmd32) { ++ case LIRC_GET_FEATURES_COMPAT32: ++ case LIRC_GET_SEND_MODE_COMPAT32: ++ case LIRC_GET_REC_MODE_COMPAT32: ++ case LIRC_GET_LENGTH_COMPAT32: ++ case LIRC_SET_SEND_MODE_COMPAT32: ++ case LIRC_SET_REC_MODE_COMPAT32: ++ /* ++ * These commands expect (unsigned long *) arg ++ * but the 32-bit app supplied (__u32 *). ++ * Conversion is required. ++ */ ++ if (get_user(val, (__u32 *)compat_ptr(arg))) ++ return -EFAULT; ++ lock_kernel(); ++ /* ++ * tell lirc_dev_fop_ioctl that it's safe to use the pointer ++ * to val which is in kernel address space and not in ++ * user address space. ++ */ ++ old_fs = get_fs(); ++ set_fs(KERNEL_DS); ++ ++ cmd = _IOC(_IOC_DIR(cmd32), _IOC_TYPE(cmd32), _IOC_NR(cmd32), ++ (_IOC_TYPECHECK(unsigned long))); ++ ret = lirc_dev_fop_ioctl(file->f_path.dentry->d_inode, file, ++ cmd, (unsigned long)(&val)); ++ ++ set_fs(old_fs); ++ unlock_kernel(); ++ switch (cmd) { ++ case LIRC_GET_FEATURES: ++ case LIRC_GET_SEND_MODE: ++ case LIRC_GET_REC_MODE: ++ case LIRC_GET_LENGTH: ++ if (!ret && put_user(val, (__u32 *)compat_ptr(arg))) ++ return -EFAULT; ++ break; ++ } ++ return ret; ++ ++ case LIRC_GET_SEND_CARRIER: ++ case LIRC_GET_REC_CARRIER: ++ case LIRC_GET_SEND_DUTY_CYCLE: ++ case LIRC_GET_REC_DUTY_CYCLE: ++ case LIRC_GET_REC_RESOLUTION: ++ case LIRC_SET_SEND_CARRIER: ++ case LIRC_SET_REC_CARRIER: ++ case LIRC_SET_SEND_DUTY_CYCLE: ++ case LIRC_SET_REC_DUTY_CYCLE: ++ case LIRC_SET_TRANSMITTER_MASK: ++ case LIRC_SET_REC_DUTY_CYCLE_RANGE: ++ case LIRC_SET_REC_CARRIER_RANGE: ++ /* ++ * These commands expect (unsigned int *)arg ++ * so no problems here. Just handle the locking. ++ */ ++ lock_kernel(); ++ cmd = cmd32; ++ ret = lirc_dev_fop_ioctl(file->f_path.dentry->d_inode, ++ file, cmd, arg); ++ unlock_kernel(); ++ return ret; ++ default: ++ /* unknown */ ++ printk(KERN_ERR "lirc_dev: %s(%s:%d): Unknown cmd %08x\n", ++ __func__, current->comm, current->pid, cmd32); ++ return -ENOIOCTLCMD; ++ } ++} ++EXPORT_SYMBOL(lirc_dev_fop_compat_ioctl); ++#endif ++ ++ +ssize_t lirc_dev_fop_read(struct file *file, + char *buffer, + size_t length, @@ -1272,7 +1373,7 @@ diff -Naur linux-2.6.33.2/drivers/input/lirc/lirc_dev.c linux-2.6.33.2.patch/dri +MODULE_PARM_DESC(debug, "Enable debugging messages"); diff -Naur linux-2.6.33.2/drivers/input/lirc/lirc_dev.h linux-2.6.33.2.patch/drivers/input/lirc/lirc_dev.h --- linux-2.6.33.2/drivers/input/lirc/lirc_dev.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.33.2.patch/drivers/input/lirc/lirc_dev.h 2010-04-05 14:03:57.398483343 +0200 ++++ linux-2.6.33.2.patch/drivers/input/lirc/lirc_dev.h 2010-04-06 23:47:21.000000000 +0200 @@ -0,0 +1,228 @@ +/* + * LIRC base driver @@ -1504,7 +1605,7 @@ diff -Naur linux-2.6.33.2/drivers/input/lirc/lirc_dev.h linux-2.6.33.2.patch/dri +#endif diff -Naur linux-2.6.33.2/drivers/input/lirc/lirc_ene0100.c linux-2.6.33.2.patch/drivers/input/lirc/lirc_ene0100.c --- linux-2.6.33.2/drivers/input/lirc/lirc_ene0100.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.33.2.patch/drivers/input/lirc/lirc_ene0100.c 2010-04-05 14:03:57.404483928 +0200 ++++ linux-2.6.33.2.patch/drivers/input/lirc/lirc_ene0100.c 2010-04-06 23:47:21.000000000 +0200 @@ -0,0 +1,646 @@ +/* + * driver for ENE KB3926 B/C/D CIR (also known as ENE0100) @@ -2154,7 +2255,7 @@ diff -Naur linux-2.6.33.2/drivers/input/lirc/lirc_ene0100.c linux-2.6.33.2.patch +module_exit(ene_exit); diff -Naur linux-2.6.33.2/drivers/input/lirc/lirc_ene0100.h linux-2.6.33.2.patch/drivers/input/lirc/lirc_ene0100.h --- linux-2.6.33.2/drivers/input/lirc/lirc_ene0100.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.33.2.patch/drivers/input/lirc/lirc_ene0100.h 2010-04-05 14:03:57.405483211 +0200 ++++ linux-2.6.33.2.patch/drivers/input/lirc/lirc_ene0100.h 2010-04-06 23:47:21.000000000 +0200 @@ -0,0 +1,169 @@ +/* + * driver for ENE KB3926 B/C/D CIR (also known as ENE0100) @@ -2327,7 +2428,7 @@ diff -Naur linux-2.6.33.2/drivers/input/lirc/lirc_ene0100.h linux-2.6.33.2.patch +}; diff -Naur linux-2.6.33.2/drivers/input/lirc/lirc_i2c.c linux-2.6.33.2.patch/drivers/input/lirc/lirc_i2c.c --- linux-2.6.33.2/drivers/input/lirc/lirc_i2c.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.33.2.patch/drivers/input/lirc/lirc_i2c.c 2010-04-05 14:03:57.407483033 +0200 ++++ linux-2.6.33.2.patch/drivers/input/lirc/lirc_i2c.c 2010-04-06 23:47:21.000000000 +0200 @@ -0,0 +1,536 @@ +/* + * lirc_i2c.c @@ -2867,7 +2968,7 @@ diff -Naur linux-2.6.33.2/drivers/input/lirc/lirc_i2c.c linux-2.6.33.2.patch/dri +module_exit(lirc_i2c_exit); diff -Naur linux-2.6.33.2/drivers/input/lirc/lirc_igorplugusb.c linux-2.6.33.2.patch/drivers/input/lirc/lirc_igorplugusb.c --- linux-2.6.33.2/drivers/input/lirc/lirc_igorplugusb.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.33.2.patch/drivers/input/lirc/lirc_igorplugusb.c 2010-04-05 14:03:57.410483676 +0200 ++++ linux-2.6.33.2.patch/drivers/input/lirc/lirc_igorplugusb.c 2010-04-06 23:47:21.000000000 +0200 @@ -0,0 +1,555 @@ +/* + * lirc_igorplugusb - USB remote support for LIRC @@ -3426,7 +3527,7 @@ diff -Naur linux-2.6.33.2/drivers/input/lirc/lirc_igorplugusb.c linux-2.6.33.2.p + diff -Naur linux-2.6.33.2/drivers/input/lirc/lirc_imon.c linux-2.6.33.2.patch/drivers/input/lirc/lirc_imon.c --- linux-2.6.33.2/drivers/input/lirc/lirc_imon.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.33.2.patch/drivers/input/lirc/lirc_imon.c 2010-04-05 14:03:57.418483525 +0200 ++++ linux-2.6.33.2.patch/drivers/input/lirc/lirc_imon.c 2010-04-06 23:47:21.000000000 +0200 @@ -0,0 +1,1053 @@ +/* + * lirc_imon.c: LIRC/VFD/LCD driver for SoundGraph iMON IR/VFD/LCD @@ -4483,8 +4584,8 @@ diff -Naur linux-2.6.33.2/drivers/input/lirc/lirc_imon.c linux-2.6.33.2.patch/dr +module_exit(imon_exit); diff -Naur linux-2.6.33.2/drivers/input/lirc/lirc_it87.c linux-2.6.33.2.patch/drivers/input/lirc/lirc_it87.c --- linux-2.6.33.2/drivers/input/lirc/lirc_it87.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.33.2.patch/drivers/input/lirc/lirc_it87.c 2010-04-05 14:03:57.420481602 +0200 -@@ -0,0 +1,1019 @@ ++++ linux-2.6.33.2.patch/drivers/input/lirc/lirc_it87.c 2010-04-07 21:56:14.000000000 +0200 +@@ -0,0 +1,1021 @@ +/* + * LIRC driver for ITE IT8712/IT8705 CIR port + * @@ -5411,18 +5512,16 @@ diff -Naur linux-2.6.33.2/drivers/input/lirc/lirc_it87.c linux-2.6.33.2.patch/dr + return 0; +} + -+ -+static int __init lirc_it87_init(void) ++static int it87_probe(struct pnp_dev *pnp_dev, ++ const struct pnp_device_id *dev_id) +{ + int retval; + -+ retval = pnp_register_driver(&it87_pnp_driver); -+ if (retval < 0) -+ return retval; ++ driver.dev = &pnp_dev->dev; + + retval = init_chrdev(); + if (retval < 0) -+ goto init_chrdev_failed; ++ return retval; + + retval = init_lirc_it87(); + if (retval) @@ -5433,11 +5532,14 @@ diff -Naur linux-2.6.33.2/drivers/input/lirc/lirc_it87.c linux-2.6.33.2.patch/dr +init_lirc_it87_failed: + drop_chrdev(); + -+init_chrdev_failed: -+ pnp_unregister_driver(&it87_pnp_driver); + return retval; +} + ++static int __init lirc_it87_init(void) ++{ ++ return pnp_register_driver(&it87_pnp_driver); ++} ++ + +static void __exit lirc_it87_exit(void) +{ @@ -5460,6 +5562,7 @@ diff -Naur linux-2.6.33.2/drivers/input/lirc/lirc_it87.c linux-2.6.33.2.patch/dr +static struct pnp_driver it87_pnp_driver = { + .name = LIRC_DRIVER_NAME, + .id_table = pnp_dev_table, ++ .probe = it87_probe, +}; + +module_init(lirc_it87_init); @@ -5506,7 +5609,7 @@ diff -Naur linux-2.6.33.2/drivers/input/lirc/lirc_it87.c linux-2.6.33.2.patch/dr +#endif diff -Naur linux-2.6.33.2/drivers/input/lirc/lirc_it87.h linux-2.6.33.2.patch/drivers/input/lirc/lirc_it87.h --- linux-2.6.33.2/drivers/input/lirc/lirc_it87.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.33.2.patch/drivers/input/lirc/lirc_it87.h 2010-04-05 14:03:57.420481602 +0200 ++++ linux-2.6.33.2.patch/drivers/input/lirc/lirc_it87.h 2010-04-06 23:47:21.000000000 +0200 @@ -0,0 +1,116 @@ +/* lirc_it87.h */ +/* SECTION: Definitions */ @@ -5626,7 +5729,7 @@ diff -Naur linux-2.6.33.2/drivers/input/lirc/lirc_it87.h linux-2.6.33.2.patch/dr +/********************************* ITE IT87xx ************************/ diff -Naur linux-2.6.33.2/drivers/input/lirc/lirc_ite8709.c linux-2.6.33.2.patch/drivers/input/lirc/lirc_ite8709.c --- linux-2.6.33.2/drivers/input/lirc/lirc_ite8709.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.33.2.patch/drivers/input/lirc/lirc_ite8709.c 2010-04-05 14:03:57.421489055 +0200 ++++ linux-2.6.33.2.patch/drivers/input/lirc/lirc_ite8709.c 2010-04-06 23:47:21.000000000 +0200 @@ -0,0 +1,540 @@ +/* + * LIRC driver for ITE8709 CIR port @@ -6170,7 +6273,7 @@ diff -Naur linux-2.6.33.2/drivers/input/lirc/lirc_ite8709.c linux-2.6.33.2.patch +MODULE_PARM_DESC(debug, "Enable debugging messages"); diff -Naur linux-2.6.33.2/drivers/input/lirc/lirc_mceusb.c linux-2.6.33.2.patch/drivers/input/lirc/lirc_mceusb.c --- linux-2.6.33.2/drivers/input/lirc/lirc_mceusb.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.33.2.patch/drivers/input/lirc/lirc_mceusb.c 2010-04-05 14:03:57.423481614 +0200 ++++ linux-2.6.33.2.patch/drivers/input/lirc/lirc_mceusb.c 2010-04-06 23:47:21.000000000 +0200 @@ -0,0 +1,1385 @@ +/* + * LIRC driver for Windows Media Center Edition USB Infrared Transceivers @@ -7559,7 +7662,7 @@ diff -Naur linux-2.6.33.2/drivers/input/lirc/lirc_mceusb.c linux-2.6.33.2.patch/ +MODULE_PARM_DESC(debug, "Debug enabled or not"); diff -Naur linux-2.6.33.2/drivers/input/lirc/lirc_parallel.c linux-2.6.33.2.patch/drivers/input/lirc/lirc_parallel.c --- linux-2.6.33.2/drivers/input/lirc/lirc_parallel.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.33.2.patch/drivers/input/lirc/lirc_parallel.c 2010-04-05 14:03:57.425481507 +0200 ++++ linux-2.6.33.2.patch/drivers/input/lirc/lirc_parallel.c 2010-04-06 23:47:21.000000000 +0200 @@ -0,0 +1,709 @@ +/* + * lirc_parallel.c @@ -8272,7 +8375,7 @@ diff -Naur linux-2.6.33.2/drivers/input/lirc/lirc_parallel.c linux-2.6.33.2.patc +MODULE_PARM_DESC(debug, "Check for printer (default: 0)"); diff -Naur linux-2.6.33.2/drivers/input/lirc/lirc_parallel.h linux-2.6.33.2.patch/drivers/input/lirc/lirc_parallel.h --- linux-2.6.33.2/drivers/input/lirc/lirc_parallel.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.33.2.patch/drivers/input/lirc/lirc_parallel.h 2010-04-05 14:03:57.425481507 +0200 ++++ linux-2.6.33.2.patch/drivers/input/lirc/lirc_parallel.h 2010-04-06 23:47:21.000000000 +0200 @@ -0,0 +1,26 @@ +/* lirc_parallel.h */ + @@ -8302,7 +8405,7 @@ diff -Naur linux-2.6.33.2/drivers/input/lirc/lirc_parallel.h linux-2.6.33.2.patc +#endif diff -Naur linux-2.6.33.2/drivers/input/lirc/lirc_sasem.c linux-2.6.33.2.patch/drivers/input/lirc/lirc_sasem.c --- linux-2.6.33.2/drivers/input/lirc/lirc_sasem.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.33.2.patch/drivers/input/lirc/lirc_sasem.c 2010-04-05 14:03:57.427481190 +0200 ++++ linux-2.6.33.2.patch/drivers/input/lirc/lirc_sasem.c 2010-04-06 23:47:21.000000000 +0200 @@ -0,0 +1,931 @@ +/* + * lirc_sasem.c - USB remote support for LIRC @@ -9237,7 +9340,7 @@ diff -Naur linux-2.6.33.2/drivers/input/lirc/lirc_sasem.c linux-2.6.33.2.patch/d +module_exit(sasem_exit); diff -Naur linux-2.6.33.2/drivers/input/lirc/lirc_serial.c linux-2.6.33.2.patch/drivers/input/lirc/lirc_serial.c --- linux-2.6.33.2/drivers/input/lirc/lirc_serial.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.33.2.patch/drivers/input/lirc/lirc_serial.c 2010-04-05 14:03:57.430480715 +0200 ++++ linux-2.6.33.2.patch/drivers/input/lirc/lirc_serial.c 2010-04-06 23:47:21.000000000 +0200 @@ -0,0 +1,1317 @@ +/* + * lirc_serial.c @@ -10558,7 +10661,7 @@ diff -Naur linux-2.6.33.2/drivers/input/lirc/lirc_serial.c linux-2.6.33.2.patch/ +MODULE_PARM_DESC(debug, "Enable debugging messages"); diff -Naur linux-2.6.33.2/drivers/input/lirc/lirc_sir.c linux-2.6.33.2.patch/drivers/input/lirc/lirc_sir.c --- linux-2.6.33.2/drivers/input/lirc/lirc_sir.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.33.2.patch/drivers/input/lirc/lirc_sir.c 2010-04-05 14:03:57.432481306 +0200 ++++ linux-2.6.33.2.patch/drivers/input/lirc/lirc_sir.c 2010-04-06 23:47:21.000000000 +0200 @@ -0,0 +1,1283 @@ +/* + * LIRC SIR driver, (C) 2000 Milan Pikula @@ -11845,7 +11948,7 @@ diff -Naur linux-2.6.33.2/drivers/input/lirc/lirc_sir.c linux-2.6.33.2.patch/dri +MODULE_PARM_DESC(debug, "Enable debugging messages"); diff -Naur linux-2.6.33.2/drivers/input/lirc/lirc_streamzap.c linux-2.6.33.2.patch/drivers/input/lirc/lirc_streamzap.c --- linux-2.6.33.2/drivers/input/lirc/lirc_streamzap.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.33.2.patch/drivers/input/lirc/lirc_streamzap.c 2010-04-05 14:03:57.433481356 +0200 ++++ linux-2.6.33.2.patch/drivers/input/lirc/lirc_streamzap.c 2010-04-06 23:47:21.000000000 +0200 @@ -0,0 +1,821 @@ +/* + * Streamzap Remote Control driver @@ -12670,7 +12773,7 @@ diff -Naur linux-2.6.33.2/drivers/input/lirc/lirc_streamzap.c linux-2.6.33.2.pat +MODULE_PARM_DESC(debug, "Enable debugging messages"); diff -Naur linux-2.6.33.2/drivers/input/lirc/lirc_ttusbir.c linux-2.6.33.2.patch/drivers/input/lirc/lirc_ttusbir.c --- linux-2.6.33.2/drivers/input/lirc/lirc_ttusbir.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.33.2.patch/drivers/input/lirc/lirc_ttusbir.c 2010-04-05 14:03:57.434481058 +0200 ++++ linux-2.6.33.2.patch/drivers/input/lirc/lirc_ttusbir.c 2010-04-06 23:47:21.000000000 +0200 @@ -0,0 +1,397 @@ +/* + * lirc_ttusbir.c @@ -13071,7 +13174,7 @@ diff -Naur linux-2.6.33.2/drivers/input/lirc/lirc_ttusbir.c linux-2.6.33.2.patch +module_exit(ttusbir_exit_module); diff -Naur linux-2.6.33.2/drivers/input/lirc/lirc_zilog.c linux-2.6.33.2.patch/drivers/input/lirc/lirc_zilog.c --- linux-2.6.33.2/drivers/input/lirc/lirc_zilog.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.33.2.patch/drivers/input/lirc/lirc_zilog.c 2010-04-05 14:03:57.436481440 +0200 ++++ linux-2.6.33.2.patch/drivers/input/lirc/lirc_zilog.c 2010-04-06 23:47:21.000000000 +0200 @@ -0,0 +1,1388 @@ +/* + * i2c IR lirc driver for devices with zilog IR processors @@ -14463,7 +14566,7 @@ diff -Naur linux-2.6.33.2/drivers/input/lirc/lirc_zilog.c linux-2.6.33.2.patch/d +MODULE_PARM_DESC(disable_tx, "Disable the IR transmitter device"); diff -Naur linux-2.6.33.2/drivers/input/lirc/Makefile linux-2.6.33.2.patch/drivers/input/lirc/Makefile --- linux-2.6.33.2/drivers/input/lirc/Makefile 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.33.2.patch/drivers/input/lirc/Makefile 2010-04-05 14:03:57.437480792 +0200 ++++ linux-2.6.33.2.patch/drivers/input/lirc/Makefile 2010-04-07 22:05:13.630122819 +0200 @@ -0,0 +1,21 @@ +# Makefile for the lirc drivers. +# @@ -14488,7 +14591,7 @@ diff -Naur linux-2.6.33.2/drivers/input/lirc/Makefile linux-2.6.33.2.patch/drive +obj-$(CONFIG_LIRC_ZILOG) += lirc_zilog.o diff -Naur linux-2.6.33.2/drivers/input/Makefile linux-2.6.33.2.patch/drivers/input/Makefile --- linux-2.6.33.2/drivers/input/Makefile 2010-04-02 01:02:33.000000000 +0200 -+++ linux-2.6.33.2.patch/drivers/input/Makefile 2010-04-05 14:03:57.437480792 +0200 ++++ linux-2.6.33.2.patch/drivers/input/Makefile 2010-04-07 22:05:13.630122819 +0200 @@ -26,3 +26,5 @@ obj-$(CONFIG_INPUT_APMPOWER) += apm-power.o @@ -14497,7 +14600,7 @@ diff -Naur linux-2.6.33.2/drivers/input/Makefile linux-2.6.33.2.patch/drivers/in +obj-$(CONFIG_INPUT_LIRC) += lirc/ diff -Naur linux-2.6.33.2/drivers/input/misc/imon.c linux-2.6.33.2.patch/drivers/input/misc/imon.c --- linux-2.6.33.2/drivers/input/misc/imon.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.33.2.patch/drivers/input/misc/imon.c 2010-04-05 14:03:57.440481155 +0200 ++++ linux-2.6.33.2.patch/drivers/input/misc/imon.c 2010-04-07 22:05:13.633152235 +0200 @@ -0,0 +1,2537 @@ +/* + * imon.c: input and display driver for SoundGraph iMON IR/VFD/LCD @@ -17038,7 +17141,7 @@ diff -Naur linux-2.6.33.2/drivers/input/misc/imon.c linux-2.6.33.2.patch/drivers +module_exit(imon_exit); diff -Naur linux-2.6.33.2/drivers/input/misc/Kconfig linux-2.6.33.2.patch/drivers/input/misc/Kconfig --- linux-2.6.33.2/drivers/input/misc/Kconfig 2010-04-02 01:02:33.000000000 +0200 -+++ linux-2.6.33.2.patch/drivers/input/misc/Kconfig 2010-04-05 14:03:57.441489307 +0200 ++++ linux-2.6.33.2.patch/drivers/input/misc/Kconfig 2010-04-07 22:05:13.635247879 +0200 @@ -319,4 +319,16 @@ To compile this driver as a module, choose M here: the module will be called pcap_keys. @@ -17058,7 +17161,7 @@ diff -Naur linux-2.6.33.2/drivers/input/misc/Kconfig linux-2.6.33.2.patch/driver endif diff -Naur linux-2.6.33.2/drivers/input/misc/Makefile linux-2.6.33.2.patch/drivers/input/misc/Makefile --- linux-2.6.33.2/drivers/input/misc/Makefile 2010-04-02 01:02:33.000000000 +0200 -+++ linux-2.6.33.2.patch/drivers/input/misc/Makefile 2010-04-05 14:03:57.442514711 +0200 ++++ linux-2.6.33.2.patch/drivers/input/misc/Makefile 2010-04-07 22:05:13.635247879 +0200 @@ -13,6 +13,7 @@ obj-$(CONFIG_INPUT_COBALT_BTNS) += cobalt_btns.o obj-$(CONFIG_INPUT_DM355EVM) += dm355evm_keys.o @@ -17069,21 +17172,18 @@ diff -Naur linux-2.6.33.2/drivers/input/misc/Makefile linux-2.6.33.2.patch/drive obj-$(CONFIG_INPUT_M68K_BEEP) += m68kspkr.o diff -Naur linux-2.6.33.2/include/linux/lirc.h linux-2.6.33.2.patch/include/linux/lirc.h --- linux-2.6.33.2/include/linux/lirc.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.33.2.patch/include/linux/lirc.h 2010-01-30 15:55:16.000000000 +0100 -@@ -0,0 +1,160 @@ -+/* $Id: lirc.h,v 5.24 2010/01/30 14:55:16 lirc Exp $ */ ++++ linux-2.6.33.2.patch/include/linux/lirc.h 2010-04-07 21:56:14.000000000 +0200 +@@ -0,0 +1,159 @@ ++/* ++ * lirc.h - linux infrared remote control header file ++ * last modified 2007/09/27 ++ */ + +#ifndef _LINUX_LIRC_H +#define _LINUX_LIRC_H + -+#if defined(__linux__) ++#include +#include -+#elif defined(_NetBSD_) -+#include -+#elif defined(_CYGWIN_) -+#define __USE_LINUX_IOCTL_DEFS -+#include -+#endif + +/* */ +#define PULSE_BIT 0x01000000 @@ -17111,8 +17211,6 @@ diff -Naur linux-2.6.33.2/include/linux/lirc.h linux-2.6.33.2.patch/include/linu +#define LIRC_IS_FREQUENCY(val) (LIRC_MODE2(val) == LIRC_MODE2_FREQUENCY) +#define LIRC_IS_TIMEOUT(val) (LIRC_MODE2(val) == LIRC_MODE2_TIMEOUT) + -+typedef int lirc_t; -+ +/*** lirc compatible hardware features ***/ + +#define LIRC_MODE2SEND(x) (x) @@ -17123,17 +17221,13 @@ diff -Naur linux-2.6.33.2/include/linux/lirc.h linux-2.6.33.2.patch/include/linu +#define LIRC_MODE_RAW 0x00000001 +#define LIRC_MODE_PULSE 0x00000002 +#define LIRC_MODE_MODE2 0x00000004 -+/* obsolete: #define LIRC_MODE_CODE 0x00000008 */ +#define LIRC_MODE_LIRCCODE 0x00000010 -+/* obsolete: #define LIRC_MODE_STRING 0x00000020 */ + + +#define LIRC_CAN_SEND_RAW LIRC_MODE2SEND(LIRC_MODE_RAW) +#define LIRC_CAN_SEND_PULSE LIRC_MODE2SEND(LIRC_MODE_PULSE) +#define LIRC_CAN_SEND_MODE2 LIRC_MODE2SEND(LIRC_MODE_MODE2) -+/* obsolete: #define LIRC_CAN_SEND_CODE LIRC_MODE2SEND(LIRC_MODE_CODE) */ +#define LIRC_CAN_SEND_LIRCCODE LIRC_MODE2SEND(LIRC_MODE_LIRCCODE) -+/* obsolete: #define LIRC_CAN_SEND_STRING LIRC_MODE2SEND(LIRC_MODE_STRING) */ + +#define LIRC_CAN_SEND_MASK 0x0000003f + @@ -17144,9 +17238,7 @@ diff -Naur linux-2.6.33.2/include/linux/lirc.h linux-2.6.33.2.patch/include/linu +#define LIRC_CAN_REC_RAW LIRC_MODE2REC(LIRC_MODE_RAW) +#define LIRC_CAN_REC_PULSE LIRC_MODE2REC(LIRC_MODE_PULSE) +#define LIRC_CAN_REC_MODE2 LIRC_MODE2REC(LIRC_MODE_MODE2) -+/* obsolete: #define LIRC_CAN_REC_CODE LIRC_MODE2REC(LIRC_MODE_CODE) */ +#define LIRC_CAN_REC_LIRCCODE LIRC_MODE2REC(LIRC_MODE_LIRCCODE) -+/* obsolete: #define LIRC_CAN_REC_STRING LIRC_MODE2REC(LIRC_MODE_STRING) */ + +#define LIRC_CAN_REC_MASK LIRC_MODE2REC(LIRC_CAN_SEND_MASK) + @@ -17178,13 +17270,13 @@ diff -Naur linux-2.6.33.2/include/linux/lirc.h linux-2.6.33.2.patch/include/linu +#define LIRC_GET_REC_DUTY_CYCLE _IOR('i', 0x00000006, unsigned int) +#define LIRC_GET_REC_RESOLUTION _IOR('i', 0x00000007, unsigned int) + -+#define LIRC_GET_MIN_TIMEOUT _IOR('i', 0x00000008, lirc_t) -+#define LIRC_GET_MAX_TIMEOUT _IOR('i', 0x00000009, lirc_t) ++#define LIRC_GET_MIN_TIMEOUT _IOR('i', 0x00000008, uint32_t) ++#define LIRC_GET_MAX_TIMEOUT _IOR('i', 0x00000009, uint32_t) + -+#define LIRC_GET_MIN_FILTER_PULSE _IOR('i', 0x0000000a, lirc_t) -+#define LIRC_GET_MAX_FILTER_PULSE _IOR('i', 0x0000000b, lirc_t) -+#define LIRC_GET_MIN_FILTER_SPACE _IOR('i', 0x0000000c, lirc_t) -+#define LIRC_GET_MAX_FILTER_SPACE _IOR('i', 0x0000000d, lirc_t) ++#define LIRC_GET_MIN_FILTER_PULSE _IOR('i', 0x0000000a, uint32_t) ++#define LIRC_GET_MAX_FILTER_PULSE _IOR('i', 0x0000000b, uint32_t) ++#define LIRC_GET_MIN_FILTER_SPACE _IOR('i', 0x0000000c, uint32_t) ++#define LIRC_GET_MAX_FILTER_SPACE _IOR('i', 0x0000000d, uint32_t) + +/* code length in bits, currently only for LIRC_MODE_LIRCCODE */ +#define LIRC_GET_LENGTH _IOR('i', 0x0000000f, unsigned long) @@ -17198,20 +17290,28 @@ diff -Naur linux-2.6.33.2/include/linux/lirc.h linux-2.6.33.2.patch/include/linu +#define LIRC_SET_REC_DUTY_CYCLE _IOW('i', 0x00000016, unsigned int) +#define LIRC_SET_TRANSMITTER_MASK _IOW('i', 0x00000017, unsigned int) + -+/* when a timeout != 0 is set the driver will send a -+ LIRC_MODE2_TIMEOUT data packet, otherwise LIRC_MODE2_TIMEOUT is -+ never sent, timeout is disabled by default */ -+#define LIRC_SET_REC_TIMEOUT _IOW('i', 0x00000018, lirc_t) ++/* ++ * when a timeout != 0 is set the driver will send a ++ * LIRC_MODE2_TIMEOUT data packet, otherwise LIRC_MODE2_TIMEOUT is ++ * never sent, timeout is disabled by default ++ */ ++#define LIRC_SET_REC_TIMEOUT _IOW('i', 0x00000018, uint32_t) + -+/* pulses shorter than this are filtered out by hardware (software -+ emulation in lirc_dev?) */ -+#define LIRC_SET_REC_FILTER_PULSE _IOW('i', 0x00000019, lirc_t) -+/* spaces shorter than this are filtered out by hardware (software -+ emulation in lirc_dev?) */ -+#define LIRC_SET_REC_FILTER_SPACE _IOW('i', 0x0000001a, lirc_t) -+/* if filter cannot be set independantly for pulse/space, this should -+ be used */ -+#define LIRC_SET_REC_FILTER _IOW('i', 0x0000001b, lirc_t) ++/* ++ * pulses shorter than this are filtered out by hardware (software ++ * emulation in lirc_dev?) ++ */ ++#define LIRC_SET_REC_FILTER_PULSE _IOW('i', 0x00000019, uint32_t) ++/* ++ * spaces shorter than this are filtered out by hardware (software ++ * emulation in lirc_dev?) ++ */ ++#define LIRC_SET_REC_FILTER_SPACE _IOW('i', 0x0000001a, uint32_t) ++/* ++ * if filter cannot be set independantly for pulse/space, this should ++ * be used ++ */ ++#define LIRC_SET_REC_FILTER _IOW('i', 0x0000001b, uint32_t) + +/* + * to set a range use @@ -17225,8 +17325,10 @@ diff -Naur linux-2.6.33.2/include/linux/lirc.h linux-2.6.33.2.patch/include/linu + +#define LIRC_NOTIFY_DECODE _IO('i', 0x00000020) + -+/* from the next key press on the driver will send -+ LIRC_MODE2_FREQUENCY packets */ ++/* ++ * from the next key press on the driver will send ++ * LIRC_MODE2_FREQUENCY packets ++ */ +#define LIRC_MEASURE_CARRIER_ENABLE _IO('i', 0x00000021) +#define LIRC_MEASURE_CARRIER_DISABLE _IO('i', 0x00000022) + From af0a3e8701b6bab2a9c980e434b0cd60e56e3280 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Fri, 9 Apr 2010 00:57:35 +0200 Subject: [PATCH 049/320] busybox: - update to busybox-1.16.1 --- .../busybox/patches/busybox-1.16.0-ash.diff | 35 - .../patches/busybox-1.16.0-compat.diff | 317 ----- .../patches/busybox-1.16.0-defconfig.diff | 438 ------- .../patches/busybox-1.16.0-linux_swap.diff | 16 - .../busybox-1.16.0-md5_sha_compat.diff | 16 - .../patches/busybox-1.16.0-syslogd.diff | 12 - .../busybox/patches/busybox-1.16.0-tftp.diff | 12 - .../busybox/patches/busybox-1.16.0-usage.diff | 1141 ----------------- .../busybox/patches/busybox-1.16.0-wget.diff | 20 - packages/sysutils/busybox/url | 2 +- 10 files changed, 1 insertion(+), 2008 deletions(-) delete mode 100644 packages/sysutils/busybox/patches/busybox-1.16.0-ash.diff delete mode 100644 packages/sysutils/busybox/patches/busybox-1.16.0-compat.diff delete mode 100644 packages/sysutils/busybox/patches/busybox-1.16.0-defconfig.diff delete mode 100644 packages/sysutils/busybox/patches/busybox-1.16.0-linux_swap.diff delete mode 100644 packages/sysutils/busybox/patches/busybox-1.16.0-md5_sha_compat.diff delete mode 100644 packages/sysutils/busybox/patches/busybox-1.16.0-syslogd.diff delete mode 100644 packages/sysutils/busybox/patches/busybox-1.16.0-tftp.diff delete mode 100644 packages/sysutils/busybox/patches/busybox-1.16.0-usage.diff delete mode 100644 packages/sysutils/busybox/patches/busybox-1.16.0-wget.diff diff --git a/packages/sysutils/busybox/patches/busybox-1.16.0-ash.diff b/packages/sysutils/busybox/patches/busybox-1.16.0-ash.diff deleted file mode 100644 index 490cf83dff..0000000000 --- a/packages/sysutils/busybox/patches/busybox-1.16.0-ash.diff +++ /dev/null @@ -1,35 +0,0 @@ -diff -urpN busybox-1.16.0/shell/ash.c busybox-1.16.0-ash/shell/ash.c ---- busybox-1.16.0/shell/ash.c 2010-01-25 01:59:38.000000000 +0100 -+++ busybox-1.16.0-ash/shell/ash.c 2010-02-21 01:52:22.000000000 +0100 -@@ -4539,7 +4539,7 @@ forkchild(struct job *jp, union node *n, - if (mode == FORK_NOJOB /* is it `xxx` ? */ - && n && n->type == NCMD /* is it single cmd? */ - /* && n->ncmd.args->type == NARG - always true? */ -- && strcmp(n->ncmd.args->narg.text, "trap") == 0 -+ && n->ncmd.args && strcmp(n->ncmd.args->narg.text, "trap") == 0 - && n->ncmd.args->narg.next == NULL /* "trap" with no arguments */ - /* && n->ncmd.args->narg.backquote == NULL - do we need to check this? */ - ) { -@@ -4627,7 +4627,7 @@ forkchild(struct job *jp, union node *n, - } - #if JOBS - if (n && n->type == NCMD -- && strcmp(n->ncmd.args->narg.text, "jobs") == 0 -+ && n->ncmd.args && strcmp(n->ncmd.args->narg.text, "jobs") == 0 - ) { - TRACE(("Job hack\n")); - /* "jobs": we do not want to clear job list for it, -diff -urpN busybox-1.16.0/shell/ash_test/ash-misc/nulltick1.right busybox-1.16.0-ash/shell/ash_test/ash-misc/nulltick1.right ---- busybox-1.16.0/shell/ash_test/ash-misc/nulltick1.right 1970-01-01 01:00:00.000000000 +0100 -+++ busybox-1.16.0-ash/shell/ash_test/ash-misc/nulltick1.right 2010-02-21 01:52:22.000000000 +0100 -@@ -0,0 +1,3 @@ -+Test 1 -+Test 2 -+Done -diff -urpN busybox-1.16.0/shell/ash_test/ash-misc/nulltick1.tests busybox-1.16.0-ash/shell/ash_test/ash-misc/nulltick1.tests ---- busybox-1.16.0/shell/ash_test/ash-misc/nulltick1.tests 1970-01-01 01:00:00.000000000 +0100 -+++ busybox-1.16.0-ash/shell/ash_test/ash-misc/nulltick1.tests 2010-02-21 01:52:22.000000000 +0100 -@@ -0,0 +1,3 @@ -+echo Test ` ` 1 -+echo Test `> 1; - if (l > i) { - const int t = list[c[l]].y; -@@ -265,11 +267,13 @@ static void stone(const int *a, int n, c - int clistlen = 100; - int k = 0; - struct cand *clist = xzalloc(clistlen * sizeof(clist[0])); -+ struct cand cand; -+ struct cand *q; - int *klist = xzalloc((n + 2) * sizeof(klist[0])); - /*clist[0] = (struct cand){0}; - xzalloc did it */ - /*klist[0] = 0; */ - -- for (struct cand cand = {1}; cand.x <= n; cand.x++) { -+ for (cand.x = 1; cand.x <= n; cand.x++) { - int j = a[cand.x], oldl = 0; - unsigned numtries = 0; - if (j == 0) -@@ -303,7 +307,7 @@ static void stone(const int *a, int n, c - } while ((cand.y = b[++j]) > 0 && numtries < bound); - } - /* Unravel */ -- for (struct cand *q = clist + klist[k]; q->y; q = clist + q->pred) -+ for (q = clist + klist[k]; q->y; q = clist + q->pred) - J[q->x + pref] = q->y + pref; - free(klist); - free(clist); -@@ -348,10 +352,11 @@ static void equiv(struct line *a, int n, - - static void unsort(const struct line *f, int l, int *b) - { -+ int i; - int *a = xmalloc((l + 1) * sizeof(a[0])); -- for (int i = 1; i <= l; i++) -+ for (i = 1; i <= l; i++) - a[f[i].serial] = f[i].value; -- for (int i = 1; i <= l; i++) -+ for (i = 1; i <= l; i++) - b[i] = a[i]; - free(a); - } -@@ -370,12 +375,13 @@ static int line_compar(const void *a, co - - static void fetch(FILE_and_pos_t *ft, const off_t *ix, int a, int b, int ch) - { -- for (int i = a; i <= b; i++) { -+ int i, j, col; -+ for (i = a; i <= b; i++) { - seek_ft(ft, ix[i - 1]); - putchar(ch); - if (option_mask32 & FLAG(T)) - putchar('\t'); -- for (int j = 0, col = 0; j < ix[i] - ix[i - 1]; j++) { -+ for (j = 0, col = 0; j < ix[i] - ix[i - 1]; j++) { - int c = fgetc(ft->ft_fp); - if (c == EOF) { - printf("\n\\ No newline at end of file\n"); -@@ -410,19 +416,20 @@ static NOINLINE int *create_J(FILE_and_p - { - int *J, slen[2], *class, *member; - struct line *nfile[2], *sfile[2]; -- int pref = 0, suff = 0; -+ int pref = 0, suff = 0, i, j, delta; - - /* Lines of both files are hashed, and in the process - * their offsets are stored in the array ix[fileno] - * where fileno == 0 points to the old file, and - * fileno == 1 points to the new one. - */ -- for (int i = 0; i < 2; i++) { -+ for (i = 0; i < 2; i++) { - unsigned hash; - token_t tok; - size_t sz = 100; - nfile[i] = xmalloc((sz + 3) * sizeof(nfile[i][0])); - /* ft gets here without the correct position, cant use seek_ft */ -+ ft[i].ft_pos = 0; - fseeko(ft[i].ft_fp, 0, SEEK_SET); - - nlen[i] = 0; -@@ -460,11 +467,11 @@ start: - nlen[i]--; - /* Now we copy the line offsets into ix */ - ix[i] = xmalloc((nlen[i] + 2) * sizeof(ix[i][0])); -- for (int j = 0; j < nlen[i] + 1; j++) -+ for (j = 0; j < nlen[i] + 1; j++) - ix[i][j] = nfile[i][j].offset; - } - -- /* lenght of prefix and suffix is calculated */ -+ /* length of prefix and suffix is calculated */ - for (; pref < nlen[0] && pref < nlen[1] && - nfile[0][pref + 1].value == nfile[1][pref + 1].value; - pref++); -@@ -475,10 +482,10 @@ start: - * the result being sorted and stored in sfile[fileno], - * and their sizes are stored in slen[fileno] - */ -- for (int j = 0; j < 2; j++) { -+ for (j = 0; j < 2; j++) { - sfile[j] = nfile[j] + pref; - slen[j] = nlen[j] - pref - suff; -- for (int i = 0; i <= slen[j]; i++) -+ for (i = 0; i <= slen[j]; i++) - sfile[j][i].serial = i; - qsort(sfile[j] + 1, slen[j], sizeof(*sfile[j]), line_compar); - } -@@ -494,7 +501,7 @@ start: - free(nfile[1]); - - class = xmalloc((slen[0] + 1) * sizeof(class[0])); -- for (int i = 1; i <= slen[0]; i++) /* Unsorting */ -+ for (i = 1; i <= slen[0]; i++) /* Unsorting */ - class[sfile[0][i].serial] = sfile[0][i].value; - free(nfile[0]); - #else -@@ -512,7 +519,7 @@ start: - * are initialized with 0 (no matches), so that function stone can - * then assign them their right values - */ -- for (int i = 0, delta = nlen[1] - nlen[0]; i <= nlen[0]; i++) -+ for (i = 0, delta = nlen[1] - nlen[0]; i <= nlen[0]; i++) - J[i] = i <= pref ? i : - i > (nlen[0] - suff) ? (i + delta) : 0; - /* Here the magic is performed */ -@@ -526,14 +533,14 @@ start: - * which, due to limitations intrinsic to any hashing algorithm, - * are different but ended up confounded as the same - */ -- for (int i = 1; i <= nlen[0]; i++) { -+ for (i = 1; i <= nlen[0]; i++) { - if (!J[i]) - continue; - - seek_ft(&ft[0], ix[0][i - 1]); - seek_ft(&ft[1], ix[1][J[i] - 1]); - -- for (int j = J[i]; i <= nlen[0] && J[i] == j; i++, j++) { -+ for (j = J[i]; i <= nlen[0] && J[i] == j; i++, j++) { - token_t tok0 = 0, tok1 = 0; - do { - tok0 = read_token(&ft[0], tok0); -@@ -555,13 +562,18 @@ static bool diff(FILE* fp[2], char *file - { - int nlen[2]; - off_t *ix[2]; -- FILE_and_pos_t ft[2] = { { fp[0] }, { fp[1] } }; -- int *J = create_J(ft, nlen, ix); -- -- bool anychange = false; -+ FILE_and_pos_t ft[2]; - typedef struct { int a, b; } vec_t[2]; - vec_t *vec = NULL; -- int i = 1, idx = -1; -+ int i = 1, j, k, idx = -1; -+ bool anychange = false; -+ int *J; -+ -+ ft[0].ft_fp = fp[0]; -+ ft[1].ft_fp = fp[1]; -+ /* note that ft[i].ft_pos is unintitalized, create_J() -+ * must not assume otherwise */ -+ J = create_J(ft, nlen, ix); - - do { - bool nonempty = false; -@@ -596,8 +608,8 @@ static bool diff(FILE* fp[2], char *file - break; - } - -- for (int j = 0; j < 2; j++) -- for (int k = v[j].a; k < v[j].b; k++) -+ for (j = 0; j < 2; j++) -+ for (k = v[j].a; k < v[j].b; k++) - nonempty |= (ix[j][k+1] - ix[j][k] != 1); - - vec = xrealloc_vector(vec, 6, ++idx); -@@ -612,6 +624,7 @@ static bool diff(FILE* fp[2], char *file - if (idx < 0 || ((option_mask32 & FLAG(B)) && !nonempty)) - goto cont; - if (!(option_mask32 & FLAG(q))) { -+ int lowa; - vec_t span, *cvp = vec; - - if (!anychange) { -@@ -621,7 +634,7 @@ static bool diff(FILE* fp[2], char *file - } - - printf("@@"); -- for (int j = 0; j < 2; j++) { -+ for (j = 0; j < 2; j++) { - int a = span[j].a = MAX(1, (*cvp)[j].a - opt_U_context); - int b = span[j].b = MIN(nlen[j], vec[idx][j].b + opt_U_context); - -@@ -635,12 +648,12 @@ static bool diff(FILE* fp[2], char *file - * Output changes in "unified" diff format--the old and new lines - * are printed together. - */ -- for (int lowa = span[0].a; ; lowa = (*cvp++)[0].b + 1) { -+ for (lowa = span[0].a; ; lowa = (*cvp++)[0].b + 1) { - bool end = cvp > &vec[idx]; - fetch(&ft[0], ix[0], lowa, end ? span[0].b : (*cvp)[0].a - 1, ' '); - if (end) - break; -- for (int j = 0; j < 2; j++) -+ for (j = 0; j < 2; j++) - fetch(&ft[j], ix[j], (*cvp)[j].a, (*cvp)[j].b, j ? '+' : '-'); - } - } -@@ -660,9 +673,9 @@ static int diffreg(char *file[2]) - { - FILE *fp[2] = { stdin, stdin }; - bool binary = false, differ = false; -- int status = STATUS_SAME; -+ int status = STATUS_SAME, i; - -- for (int i = 0; i < 2; i++) { -+ for (i = 0; i < 2; i++) { - int fd = open_or_warn_stdin(file[i]); - if (fd == -1) - goto out; -@@ -688,7 +701,7 @@ static int diffreg(char *file[2]) - const size_t sz = COMMON_BUFSIZE / 2; - char *const buf0 = bb_common_bufsiz1; - char *const buf1 = buf0 + sz; -- int i, j; -+ int j, k; - i = fread(buf0, 1, sz, fp[0]); - j = fread(buf1, 1, sz, fp[1]); - if (i != j) { -@@ -697,7 +710,7 @@ static int diffreg(char *file[2]) - } - if (i == 0) - break; -- for (int k = 0; k < i; k++) { -+ for (k = 0; k < i; k++) { - if (!buf0[k] || !buf1[k]) - binary = true; - if (buf0[k] != buf1[k]) -@@ -771,9 +784,10 @@ static int FAST_FUNC skip_dir(const char - static void diffdir(char *p[2], const char *s_start) - { - struct dlist list[2]; -+ int i; - - memset(&list, 0, sizeof(list)); -- for (int i = 0; i < 2; i++) { -+ for (i = 0; i < 2; i++) { - /*list[i].s = list[i].e = 0; - memset did it */ - /*list[i].dl = NULL; */ - -@@ -815,7 +829,7 @@ static void diffdir(char *p[2], const ch - else { - char *fullpath[2], *path[2]; /* if -N */ - -- for (int i = 0; i < 2; i++) { -+ for (i = 0; i < 2; i++) { - if (pos == 0 || i == k) { - path[i] = fullpath[i] = concat_path_file(p[i], dp[i]); - stat(fullpath[i], &stb[i]); -@@ -883,7 +897,7 @@ static const char diff_longopts[] ALIGN1 - int diff_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE; - int diff_main(int argc UNUSED_PARAM, char **argv) - { -- int gotstdin = 0; -+ int gotstdin = 0, i; - char *file[2], *s_start = NULL; - llist_t *L_arg = NULL; - -@@ -900,7 +914,7 @@ int diff_main(int argc UNUSED_PARAM, cha - while (L_arg) - label[!!label[0]] = llist_pop(&L_arg); - xfunc_error_retval = 2; -- for (int i = 0; i < 2; i++) { -+ for (i = 0; i < 2; i++) { - file[i] = argv[i]; - /* Compat: "diff file name_which_doesnt_exist" exits with 2 */ - if (LONE_DASH(file[i])) { -diff -urpN busybox-1.16.0/miscutils/fbsplash.c busybox-1.16.0-compat/miscutils/fbsplash.c ---- busybox-1.16.0/miscutils/fbsplash.c 2010-01-25 01:59:38.000000000 +0100 -+++ busybox-1.16.0-compat/miscutils/fbsplash.c 2010-02-21 01:54:07.000000000 +0100 -@@ -301,7 +301,7 @@ static void fb_drawimage(void) - */ - static void init(const char *cfg_filename) - { -- static const char const param_names[] ALIGN1 = -+ static const char param_names[] ALIGN1 = - "BAR_WIDTH\0" "BAR_HEIGHT\0" - "BAR_LEFT\0" "BAR_TOP\0" - "BAR_R\0" "BAR_G\0" "BAR_B\0" diff --git a/packages/sysutils/busybox/patches/busybox-1.16.0-defconfig.diff b/packages/sysutils/busybox/patches/busybox-1.16.0-defconfig.diff deleted file mode 100644 index c053526ede..0000000000 --- a/packages/sysutils/busybox/patches/busybox-1.16.0-defconfig.diff +++ /dev/null @@ -1,438 +0,0 @@ -diff -urpN busybox-1.16.0/scripts/defconfig busybox-1.16.0-defconfig/scripts/defconfig ---- busybox-1.16.0/scripts/defconfig 2010-01-25 01:59:38.000000000 +0100 -+++ busybox-1.16.0-defconfig/scripts/defconfig 2010-02-21 01:53:15.000000000 +0100 -@@ -1,7 +1,7 @@ - # - # Automatically generated make config: don't edit --# Busybox version: 1.15.0.svn --# Fri Aug 21 00:14:11 2009 -+# Busybox version: 1.16.0 -+# Wed Jan 27 20:00:00 2010 - # - CONFIG_HAVE_DOT_CONFIG=y - -@@ -14,6 +14,8 @@ CONFIG_HAVE_DOT_CONFIG=y - # - # CONFIG_DESKTOP is not set - # CONFIG_EXTRA_COMPAT is not set -+CONFIG_INCLUDE_SUSv2=y -+# CONFIG_USE_PORTABLE_CODE is not set - CONFIG_FEATURE_BUFFERS_USE_MALLOC=y - # CONFIG_FEATURE_BUFFERS_GO_ON_STACK is not set - # CONFIG_FEATURE_BUFFERS_GO_IN_BSS is not set -@@ -22,7 +24,7 @@ CONFIG_FEATURE_VERBOSE_USAGE=y - CONFIG_FEATURE_COMPRESS_USAGE=y - CONFIG_FEATURE_INSTALLER=y - CONFIG_LOCALE_SUPPORT=y --# CONFIG_FEATURE_ASSUME_UNICODE is not set -+CONFIG_FEATURE_ASSUME_UNICODE=y - # CONFIG_FEATURE_CHECK_UNICODE_IN_ENV is not set - CONFIG_LONG_OPTS=y - CONFIG_FEATURE_DEVPTS=y -@@ -59,7 +61,6 @@ CONFIG_EXTRA_CFLAGS="" - CONFIG_NO_DEBUG_LIB=y - # CONFIG_DMALLOC is not set - # CONFIG_EFENCE is not set --CONFIG_INCLUDE_SUSv2=y - - # - # Installation Options -@@ -120,10 +121,11 @@ CONFIG_FEATURE_CPIO_P=y - # CONFIG_FEATURE_DPKG_DEB_EXTRACT_ONLY is not set - CONFIG_GUNZIP=y - CONFIG_GZIP=y -+CONFIG_FEATURE_GZIP_LONG_OPTIONS=y - CONFIG_LZOP=y - # CONFIG_LZOP_COMPR_HIGH is not set --# CONFIG_RPM2CPIO is not set --# CONFIG_RPM is not set -+CONFIG_RPM2CPIO=y -+CONFIG_RPM=y - CONFIG_TAR=y - CONFIG_FEATURE_TAR_CREATE=y - CONFIG_FEATURE_TAR_AUTODETECT=y -@@ -133,6 +135,7 @@ CONFIG_FEATURE_TAR_OLDSUN_COMPATIBILITY= - CONFIG_FEATURE_TAR_GNU_EXTENSIONS=y - CONFIG_FEATURE_TAR_LONG_OPTIONS=y - CONFIG_FEATURE_TAR_UNAME_GNAME=y -+CONFIG_FEATURE_TAR_NOPRESERVE_TIME=y - CONFIG_UNCOMPRESS=y - CONFIG_UNLZMA=y - CONFIG_FEATURE_LZMA_FAST=y -@@ -148,15 +151,19 @@ CONFIG_CATV=y - CONFIG_CHGRP=y - CONFIG_CHMOD=y - CONFIG_CHOWN=y -+CONFIG_FEATURE_CHOWN_LONG_OPTIONS=y - CONFIG_CHROOT=y - CONFIG_CKSUM=y - CONFIG_COMM=y - CONFIG_CP=y -+CONFIG_FEATURE_CP_LONG_OPTIONS=y - CONFIG_CUT=y - CONFIG_DATE=y - CONFIG_FEATURE_DATE_ISOFMT=y -+CONFIG_FEATURE_DATE_COMPAT=y - CONFIG_DD=y - CONFIG_FEATURE_DD_SIGNAL_HANDLING=y -+CONFIG_FEATURE_DD_THIRD_STATUS_LINE=y - CONFIG_FEATURE_DD_IBS_OBS=y - CONFIG_DF=y - CONFIG_FEATURE_DF_FANCY=y -@@ -271,7 +278,7 @@ CONFIG_FEATURE_AUTOWIDTH=y - CONFIG_FEATURE_HUMAN_READABLE=y - - # --# Common options for md5sum, sha1sum -+# Common options for md5sum, sha1sum, sha256sum, sha512sum - # - CONFIG_FEATURE_MD5_SHA1_SUM_CHECK=y - -@@ -318,9 +325,8 @@ CONFIG_AWK=y - CONFIG_FEATURE_AWK_LIBM=y - CONFIG_CMP=y - CONFIG_DIFF=y --CONFIG_FEATURE_DIFF_BINARY=y -+CONFIG_FEATURE_DIFF_LONG_OPTIONS=y - CONFIG_FEATURE_DIFF_DIR=y --CONFIG_FEATURE_DIFF_MINIMAL=y - CONFIG_ED=y - CONFIG_PATCH=y - CONFIG_SED=y -@@ -364,6 +370,7 @@ CONFIG_FEATURE_FIND_DELETE=y - CONFIG_FEATURE_FIND_PATH=y - CONFIG_FEATURE_FIND_REGEX=y - # CONFIG_FEATURE_FIND_CONTEXT is not set -+CONFIG_FEATURE_FIND_LINKS=y - CONFIG_GREP=y - CONFIG_FEATURE_GREP_EGREP_ALIAS=y - CONFIG_FEATURE_GREP_FGREP_ALIAS=y -@@ -453,6 +460,7 @@ CONFIG_FEATURE_MODPROBE_SMALL_CHECK_ALRE - # Options common to multiple modutils - # - # CONFIG_FEATURE_2_4_MODULES is not set -+# CONFIG_FEATURE_INSMOD_TRY_MMAP is not set - # CONFIG_FEATURE_INSMOD_VERSION_CHECKING is not set - # CONFIG_FEATURE_INSMOD_KSYMOOPS_SYMBOLS is not set - # CONFIG_FEATURE_INSMOD_LOADINKMEM is not set -@@ -467,8 +475,8 @@ CONFIG_DEFAULT_DEPMOD_FILE="modules.dep" - # - # Linux System Utilities - # --# CONFIG_ACPID is not set --# CONFIG_FEATURE_ACPID_COMPAT is not set -+CONFIG_ACPID=y -+CONFIG_FEATURE_ACPID_COMPAT=y - CONFIG_BLKID=y - CONFIG_DMESG=y - CONFIG_FEATURE_DMESG_PRETTY=y -@@ -488,12 +496,14 @@ CONFIG_FEATURE_FDISK_ADVANCED=y - CONFIG_FINDFS=y - CONFIG_FREERAMDISK=y - CONFIG_FSCK_MINIX=y -+CONFIG_MKFS_EXT2=y - CONFIG_MKFS_MINIX=y - - # - # Minix filesystem support - # - CONFIG_FEATURE_MINIX2=y -+# CONFIG_MKFS_REISER is not set - CONFIG_MKFS_VFAT=y - CONFIG_GETOPT=y - CONFIG_FEATURE_GETOPT_LONG=y -@@ -506,6 +516,8 @@ CONFIG_FEATURE_HWCLOCK_ADJTIME_FHS=y - CONFIG_IPCRM=y - CONFIG_IPCS=y - CONFIG_LOSETUP=y -+CONFIG_LSPCI=y -+CONFIG_LSUSB=y - CONFIG_MDEV=y - CONFIG_FEATURE_MDEV_CONF=y - CONFIG_FEATURE_MDEV_RENAME=y -@@ -518,6 +530,7 @@ CONFIG_MORE=y - CONFIG_FEATURE_USE_TERMIOS=y - CONFIG_VOLUMEID=y - CONFIG_FEATURE_VOLUMEID_EXT=y -+CONFIG_FEATURE_VOLUMEID_BTRFS=y - CONFIG_FEATURE_VOLUMEID_REISERFS=y - CONFIG_FEATURE_VOLUMEID_FAT=y - CONFIG_FEATURE_VOLUMEID_HFS=y -@@ -595,11 +608,12 @@ CONFIG_DEVMEM=y - CONFIG_EJECT=y - CONFIG_FEATURE_EJECT_SCSI=y - CONFIG_FBSPLASH=y --# CONFIG_FLASH_LOCK is not set --# CONFIG_FLASH_UNLOCK is not set --# CONFIG_FLASH_ERASEALL is not set -+CONFIG_FLASHCP=y -+CONFIG_FLASH_LOCK=y -+CONFIG_FLASH_UNLOCK=y -+CONFIG_FLASH_ERASEALL=y - CONFIG_IONICE=y --# CONFIG_INOTIFYD is not set -+CONFIG_INOTIFYD=y - CONFIG_LAST=y - # CONFIG_FEATURE_LAST_SMALL is not set - CONFIG_FEATURE_LAST_FANCY=y -@@ -632,8 +646,8 @@ CONFIG_RUNLEVEL=y - CONFIG_RX=y - CONFIG_SETSID=y - CONFIG_STRINGS=y --# CONFIG_TASKSET is not set --# CONFIG_FEATURE_TASKSET_FANCY is not set -+CONFIG_TASKSET=y -+CONFIG_FEATURE_TASKSET_FANCY=y - CONFIG_TIME=y - CONFIG_TIMEOUT=y - CONFIG_TTYSIZE=y -@@ -658,6 +672,7 @@ CONFIG_ETHER_WAKE=y - CONFIG_FAKEIDENTD=y - CONFIG_FTPD=y - CONFIG_FEATURE_FTP_WRITE=y -+CONFIG_FEATURE_FTPD_ACCEPT_BROKEN_LIST=y - CONFIG_FTPGET=y - CONFIG_FTPPUT=y - CONFIG_FEATURE_FTPGETPUT_LONG_OPTIONS=y -@@ -723,6 +738,8 @@ CONFIG_NETSTAT=y - CONFIG_FEATURE_NETSTAT_WIDE=y - CONFIG_FEATURE_NETSTAT_PRG=y - CONFIG_NSLOOKUP=y -+CONFIG_NTPD=y -+CONFIG_FEATURE_NTPD_SERVER=y - CONFIG_PING=y - CONFIG_PING6=y - CONFIG_FEATURE_FANCY_PING=y -@@ -734,13 +751,16 @@ CONFIG_FEATURE_TELNET_TTYPE=y - CONFIG_FEATURE_TELNET_AUTOLOGIN=y - CONFIG_TELNETD=y - CONFIG_FEATURE_TELNETD_STANDALONE=y -+CONFIG_FEATURE_TELNETD_INETD_WAIT=y - CONFIG_TFTP=y - CONFIG_TFTPD=y - CONFIG_FEATURE_TFTP_GET=y - CONFIG_FEATURE_TFTP_PUT=y - CONFIG_FEATURE_TFTP_BLOCKSIZE=y -+CONFIG_FEATURE_TFTP_PROGRESS_BAR=y - # CONFIG_TFTP_DEBUG is not set - CONFIG_TRACEROUTE=y -+CONFIG_TRACEROUTE6=y - CONFIG_FEATURE_TRACEROUTE_VERBOSE=y - # CONFIG_FEATURE_TRACEROUTE_SOURCE_ROUTE is not set - # CONFIG_FEATURE_TRACEROUTE_USE_ICMP is not set -@@ -814,6 +834,7 @@ CONFIG_FEATURE_TOP_SMP_CPU=y - CONFIG_FEATURE_TOP_DECIMALS=y - CONFIG_FEATURE_TOP_SMP_PROCESS=y - CONFIG_FEATURE_TOPMEM=y -+CONFIG_FEATURE_SHOW_THREADS=y - CONFIG_UPTIME=y - CONFIG_WATCH=y - -@@ -878,6 +899,7 @@ CONFIG_HUSH_CASE=y - CONFIG_HUSH_FUNCTIONS=y - CONFIG_HUSH_LOCAL=y - CONFIG_HUSH_EXPORT_N=y -+CONFIG_HUSH_RANDOM_SUPPORT=y - # CONFIG_LASH is not set - CONFIG_MSH=y - CONFIG_SH_MATH_SUPPORT=y -diff -urpN busybox-1.16.0/TODO_config_nommu busybox-1.16.0-defconfig/TODO_config_nommu ---- busybox-1.16.0/TODO_config_nommu 2010-01-25 01:59:38.000000000 +0100 -+++ busybox-1.16.0-defconfig/TODO_config_nommu 2010-02-21 01:53:15.000000000 +0100 -@@ -1,7 +1,7 @@ - # - # Automatically generated make config: don't edit --# Busybox version: 1.15.0.svn --# Fri Aug 21 00:13:18 2009 -+# Busybox version: 1.16.0 -+# Wed Jan 27 21:01:26 2010 - # - CONFIG_HAVE_DOT_CONFIG=y - -@@ -14,6 +14,8 @@ CONFIG_HAVE_DOT_CONFIG=y - # - CONFIG_DESKTOP=y - CONFIG_EXTRA_COMPAT=y -+CONFIG_INCLUDE_SUSv2=y -+# CONFIG_USE_PORTABLE_CODE is not set - CONFIG_FEATURE_BUFFERS_USE_MALLOC=y - # CONFIG_FEATURE_BUFFERS_GO_ON_STACK is not set - # CONFIG_FEATURE_BUFFERS_GO_IN_BSS is not set -@@ -59,7 +61,6 @@ CONFIG_EXTRA_CFLAGS="" - CONFIG_NO_DEBUG_LIB=y - # CONFIG_DMALLOC is not set - # CONFIG_EFENCE is not set --CONFIG_INCLUDE_SUSv2=y - - # - # Installation Options -@@ -120,6 +121,7 @@ CONFIG_DPKG_DEB=y - CONFIG_FEATURE_DPKG_DEB_EXTRACT_ONLY=y - CONFIG_GUNZIP=y - CONFIG_GZIP=y -+CONFIG_FEATURE_GZIP_LONG_OPTIONS=y - CONFIG_LZOP=y - CONFIG_LZOP_COMPR_HIGH=y - CONFIG_RPM2CPIO=y -@@ -133,6 +135,7 @@ CONFIG_FEATURE_TAR_OLDSUN_COMPATIBILITY= - CONFIG_FEATURE_TAR_GNU_EXTENSIONS=y - CONFIG_FEATURE_TAR_LONG_OPTIONS=y - CONFIG_FEATURE_TAR_UNAME_GNAME=y -+CONFIG_FEATURE_TAR_NOPRESERVE_TIME=y - CONFIG_UNCOMPRESS=y - CONFIG_UNLZMA=y - CONFIG_FEATURE_LZMA_FAST=y -@@ -148,15 +151,19 @@ CONFIG_CATV=y - CONFIG_CHGRP=y - CONFIG_CHMOD=y - CONFIG_CHOWN=y -+CONFIG_FEATURE_CHOWN_LONG_OPTIONS=y - CONFIG_CHROOT=y - CONFIG_CKSUM=y - CONFIG_COMM=y - CONFIG_CP=y -+CONFIG_FEATURE_CP_LONG_OPTIONS=y - CONFIG_CUT=y - CONFIG_DATE=y - CONFIG_FEATURE_DATE_ISOFMT=y -+CONFIG_FEATURE_DATE_COMPAT=y - CONFIG_DD=y - CONFIG_FEATURE_DD_SIGNAL_HANDLING=y -+CONFIG_FEATURE_DD_THIRD_STATUS_LINE=y - CONFIG_FEATURE_DD_IBS_OBS=y - CONFIG_DF=y - CONFIG_FEATURE_DF_FANCY=y -@@ -271,7 +278,7 @@ CONFIG_FEATURE_AUTOWIDTH=y - CONFIG_FEATURE_HUMAN_READABLE=y - - # --# Common options for md5sum, sha1sum -+# Common options for md5sum, sha1sum, sha256sum, sha512sum - # - CONFIG_FEATURE_MD5_SHA1_SUM_CHECK=y - -@@ -318,9 +325,8 @@ CONFIG_AWK=y - CONFIG_FEATURE_AWK_LIBM=y - CONFIG_CMP=y - CONFIG_DIFF=y --CONFIG_FEATURE_DIFF_BINARY=y -+CONFIG_FEATURE_DIFF_LONG_OPTIONS=y - CONFIG_FEATURE_DIFF_DIR=y --CONFIG_FEATURE_DIFF_MINIMAL=y - CONFIG_ED=y - CONFIG_PATCH=y - CONFIG_SED=y -@@ -364,6 +370,7 @@ CONFIG_FEATURE_FIND_DELETE=y - CONFIG_FEATURE_FIND_PATH=y - CONFIG_FEATURE_FIND_REGEX=y - CONFIG_FEATURE_FIND_CONTEXT=y -+CONFIG_FEATURE_FIND_LINKS=y - CONFIG_GREP=y - CONFIG_FEATURE_GREP_EGREP_ALIAS=y - CONFIG_FEATURE_GREP_FGREP_ALIAS=y -@@ -453,6 +460,7 @@ CONFIG_FEATURE_MODPROBE_SMALL_CHECK_ALRE - # Options common to multiple modutils - # - # CONFIG_FEATURE_2_4_MODULES is not set -+CONFIG_FEATURE_INSMOD_TRY_MMAP=y - # CONFIG_FEATURE_INSMOD_VERSION_CHECKING is not set - # CONFIG_FEATURE_INSMOD_KSYMOOPS_SYMBOLS is not set - # CONFIG_FEATURE_INSMOD_LOADINKMEM is not set -@@ -488,12 +496,14 @@ CONFIG_FEATURE_FDISK_ADVANCED=y - CONFIG_FINDFS=y - CONFIG_FREERAMDISK=y - CONFIG_FSCK_MINIX=y -+CONFIG_MKFS_EXT2=y - CONFIG_MKFS_MINIX=y - - # - # Minix filesystem support - # - CONFIG_FEATURE_MINIX2=y -+CONFIG_MKFS_REISER=y - CONFIG_MKFS_VFAT=y - CONFIG_GETOPT=y - CONFIG_FEATURE_GETOPT_LONG=y -@@ -506,6 +516,8 @@ CONFIG_FEATURE_HWCLOCK_ADJTIME_FHS=y - CONFIG_IPCRM=y - CONFIG_IPCS=y - CONFIG_LOSETUP=y -+CONFIG_LSPCI=y -+CONFIG_LSUSB=y - CONFIG_MDEV=y - CONFIG_FEATURE_MDEV_CONF=y - CONFIG_FEATURE_MDEV_RENAME=y -@@ -518,6 +530,7 @@ CONFIG_MORE=y - CONFIG_FEATURE_USE_TERMIOS=y - CONFIG_VOLUMEID=y - CONFIG_FEATURE_VOLUMEID_EXT=y -+CONFIG_FEATURE_VOLUMEID_BTRFS=y - CONFIG_FEATURE_VOLUMEID_REISERFS=y - CONFIG_FEATURE_VOLUMEID_FAT=y - CONFIG_FEATURE_VOLUMEID_HFS=y -@@ -595,6 +608,7 @@ CONFIG_DEVMEM=y - CONFIG_EJECT=y - CONFIG_FEATURE_EJECT_SCSI=y - CONFIG_FBSPLASH=y -+CONFIG_FLASHCP=y - # CONFIG_FLASH_LOCK is not set - # CONFIG_FLASH_UNLOCK is not set - # CONFIG_FLASH_ERASEALL is not set -@@ -638,6 +652,7 @@ CONFIG_TIME=y - CONFIG_TIMEOUT=y - CONFIG_TTYSIZE=y - CONFIG_VOLNAME=y -+CONFIG_WALL=y - CONFIG_WATCHDOG=y - - # -@@ -657,6 +672,7 @@ CONFIG_ETHER_WAKE=y - CONFIG_FAKEIDENTD=y - CONFIG_FTPD=y - CONFIG_FEATURE_FTP_WRITE=y -+CONFIG_FEATURE_FTPD_ACCEPT_BROKEN_LIST=y - CONFIG_FTPGET=y - CONFIG_FTPPUT=y - CONFIG_FEATURE_FTPGETPUT_LONG_OPTIONS=y -@@ -722,6 +738,8 @@ CONFIG_NETSTAT=y - CONFIG_FEATURE_NETSTAT_WIDE=y - CONFIG_FEATURE_NETSTAT_PRG=y - CONFIG_NSLOOKUP=y -+CONFIG_NTPD=y -+CONFIG_FEATURE_NTPD_SERVER=y - CONFIG_PING=y - CONFIG_PING6=y - CONFIG_FEATURE_FANCY_PING=y -@@ -733,13 +751,16 @@ CONFIG_FEATURE_TELNET_TTYPE=y - CONFIG_FEATURE_TELNET_AUTOLOGIN=y - CONFIG_TELNETD=y - CONFIG_FEATURE_TELNETD_STANDALONE=y -+CONFIG_FEATURE_TELNETD_INETD_WAIT=y - CONFIG_TFTP=y - CONFIG_TFTPD=y - CONFIG_FEATURE_TFTP_GET=y - CONFIG_FEATURE_TFTP_PUT=y - CONFIG_FEATURE_TFTP_BLOCKSIZE=y -+CONFIG_FEATURE_TFTP_PROGRESS_BAR=y - CONFIG_TFTP_DEBUG=y - CONFIG_TRACEROUTE=y -+CONFIG_TRACEROUTE6=y - CONFIG_FEATURE_TRACEROUTE_VERBOSE=y - CONFIG_FEATURE_TRACEROUTE_SOURCE_ROUTE=y - CONFIG_FEATURE_TRACEROUTE_USE_ICMP=y -@@ -813,6 +834,7 @@ CONFIG_FEATURE_TOP_SMP_CPU=y - CONFIG_FEATURE_TOP_DECIMALS=y - CONFIG_FEATURE_TOP_SMP_PROCESS=y - CONFIG_FEATURE_TOPMEM=y -+CONFIG_FEATURE_SHOW_THREADS=y - CONFIG_UPTIME=y - CONFIG_WATCH=y - -@@ -881,6 +903,7 @@ CONFIG_HUSH_CASE=y - CONFIG_HUSH_FUNCTIONS=y - CONFIG_HUSH_LOCAL=y - CONFIG_HUSH_EXPORT_N=y -+CONFIG_HUSH_RANDOM_SUPPORT=y - CONFIG_LASH=y - CONFIG_MSH=y - CONFIG_SH_MATH_SUPPORT=y diff --git a/packages/sysutils/busybox/patches/busybox-1.16.0-linux_swap.diff b/packages/sysutils/busybox/patches/busybox-1.16.0-linux_swap.diff deleted file mode 100644 index 78d60a8de7..0000000000 --- a/packages/sysutils/busybox/patches/busybox-1.16.0-linux_swap.diff +++ /dev/null @@ -1,16 +0,0 @@ -diff -urpN busybox-1.16.0/util-linux/volume_id/linux_swap.c busybox-1.16.0-linux_swap/util-linux/volume_id/linux_swap.c ---- busybox-1.16.0/util-linux/volume_id/linux_swap.c 2010-01-25 01:59:39.000000000 +0100 -+++ busybox-1.16.0-linux_swap/util-linux/volume_id/linux_swap.c 2010-02-21 01:53:21.000000000 +0100 -@@ -52,7 +52,11 @@ int FAST_FUNC volume_id_probe_linux_swap - goto found; - } - -- if (memcmp(buf, "SWAPSPACE2", 10) == 0) { -+ if (memcmp(buf, "SWAPSPACE2", 10) == 0 -+ || memcmp(buf, "S1SUSPEND", 9) == 0 -+ || memcmp(buf, "S2SUSPEND", 9) == 0 -+ || memcmp(buf, "ULSUSPEND", 9) == 0 -+ ) { - sw = volume_id_get_buffer(id, off, sizeof(struct swap_header_v1_2)); - if (sw == NULL) - return -1; diff --git a/packages/sysutils/busybox/patches/busybox-1.16.0-md5_sha_compat.diff b/packages/sysutils/busybox/patches/busybox-1.16.0-md5_sha_compat.diff deleted file mode 100644 index e982c0efba..0000000000 --- a/packages/sysutils/busybox/patches/busybox-1.16.0-md5_sha_compat.diff +++ /dev/null @@ -1,16 +0,0 @@ -diff -urpN busybox-1.16.0/coreutils/md5_sha1_sum.c busybox-1.16.0-md5_sha_compat/coreutils/md5_sha1_sum.c ---- busybox-1.16.0/coreutils/md5_sha1_sum.c 2010-01-25 01:59:38.000000000 +0100 -+++ busybox-1.16.0-md5_sha_compat/coreutils/md5_sha1_sum.c 2010-02-21 01:53:28.000000000 +0100 -@@ -101,8 +101,10 @@ int md5_sha1_sum_main(int argc UNUSED_PA - unsigned flags; - /*hash_algo_t hash_algo = applet_name[3];*/ - -- if (ENABLE_FEATURE_MD5_SHA1_SUM_CHECK) -- flags = getopt32(argv, "scw"); -+ if (ENABLE_FEATURE_MD5_SHA1_SUM_CHECK) { -+ /* -b "binary", -t "text" are ignored (shaNNNsum compat) */ -+ flags = getopt32(argv, "scwbt"); -+ } - else optind = 1; - argv += optind; - //argc -= optind; diff --git a/packages/sysutils/busybox/patches/busybox-1.16.0-syslogd.diff b/packages/sysutils/busybox/patches/busybox-1.16.0-syslogd.diff deleted file mode 100644 index dcca134fd5..0000000000 --- a/packages/sysutils/busybox/patches/busybox-1.16.0-syslogd.diff +++ /dev/null @@ -1,12 +0,0 @@ -diff -urpN busybox-1.16.0/sysklogd/syslogd.c busybox-1.16.0-syslogd/sysklogd/syslogd.c ---- busybox-1.16.0/sysklogd/syslogd.c 2010-01-25 01:59:38.000000000 +0100 -+++ busybox-1.16.0-syslogd/sysklogd/syslogd.c 2010-02-21 01:53:33.000000000 +0100 -@@ -698,7 +698,7 @@ int syslogd_main(int argc UNUSED_PARAM, - if (!(opts & OPT_nofork)) { - bb_daemonize_or_rexec(DAEMON_CHDIR_ROOT, argv); - } -- umask(0); -+ //umask(0); - why?? - write_pidfile("/var/run/syslogd.pid"); - do_syslogd(); - /* return EXIT_SUCCESS; */ diff --git a/packages/sysutils/busybox/patches/busybox-1.16.0-tftp.diff b/packages/sysutils/busybox/patches/busybox-1.16.0-tftp.diff deleted file mode 100644 index b6fb6c7b3e..0000000000 --- a/packages/sysutils/busybox/patches/busybox-1.16.0-tftp.diff +++ /dev/null @@ -1,12 +0,0 @@ -diff -urpN busybox-1.16.0/networking/tftp.c busybox-1.16.0-tftp/networking/tftp.c ---- busybox-1.16.0/networking/tftp.c 2010-01-25 01:59:38.000000000 +0100 -+++ busybox-1.16.0-tftp/networking/tftp.c 2010-02-21 01:53:41.000000000 +0100 -@@ -308,7 +308,7 @@ static int tftp_protocol( - - if (!ENABLE_TFTP || our_lsa) { /* tftpd */ - /* Open file (must be after changing user) */ -- local_fd = open(local_file, open_mode); -+ local_fd = open(local_file, open_mode, 0666); - if (local_fd < 0) { - error_pkt_reason = ERR_NOFILE; - strcpy((char*)error_pkt_str, "can't open file"); diff --git a/packages/sysutils/busybox/patches/busybox-1.16.0-usage.diff b/packages/sysutils/busybox/patches/busybox-1.16.0-usage.diff deleted file mode 100644 index a2e884bb3c..0000000000 --- a/packages/sysutils/busybox/patches/busybox-1.16.0-usage.diff +++ /dev/null @@ -1,1141 +0,0 @@ -diff -urpN busybox-1.16.0/include/usage.h busybox-1.16.0-usage/include/usage.h ---- busybox-1.16.0/include/usage.h 2010-01-25 01:59:38.000000000 +0100 -+++ busybox-1.16.0-usage/include/usage.h 2010-02-21 01:53:47.000000000 +0100 -@@ -16,7 +16,7 @@ - #define NOUSAGE_STR "\b" - - #define acpid_trivial_usage \ -- "[-d] [-c CONFDIR] [-l LOGFILE] [-e PROC_EVENT_FILE] [EVDEV_EVENT_FILE...]" -+ "[-d] [-c CONFDIR] [-l LOGFILE] [-e PROC_EVENT_FILE] [EVDEV_EVENT_FILE]..." - #define acpid_full_usage "\n\n" \ - "Listen to ACPI events and spawn specific helpers on event arrival\n" \ - "\nOptions:" \ -@@ -33,7 +33,7 @@ - "# acpid -d /dev/input/event*\n" - - #define addgroup_trivial_usage \ -- "[-g GID] " IF_FEATURE_ADDUSER_TO_GROUP("[user_name] ") "group_name" -+ "[-g GID] " IF_FEATURE_ADDUSER_TO_GROUP("[USER] ") "GROUP" - #define addgroup_full_usage "\n\n" \ - "Add a group " IF_FEATURE_ADDUSER_TO_GROUP("or add a user to a group") "\n" \ - "\nOptions:" \ -@@ -41,7 +41,7 @@ - "\n -S Create a system group" \ - - #define adduser_trivial_usage \ -- "[OPTIONS] user_name" -+ "[OPTIONS] USER" - #define adduser_full_usage "\n\n" \ - "Add a user\n" \ - "\nOptions:" \ -@@ -55,16 +55,16 @@ - "\n -u UID User id" \ - - #define adjtimex_trivial_usage \ -- "[-q] [-o offset] [-f frequency] [-p timeconstant] [-t tick]" -+ "[-q] [-o OFF] [-f FREQ] [-p TCONST] [-t TICK]" - #define adjtimex_full_usage "\n\n" \ -- "Read and optionally set system timebase parameters. See adjtimex(2).\n" \ -+ "Read and optionally set system timebase parameters. See adjtimex(2)\n" \ - "\nOptions:" \ -- "\n -q Quiet" \ -- "\n -o offset Time offset, microseconds" \ -- "\n -f frequency Frequency adjust, integer kernel units (65536 is 1ppm)" \ -- "\n (positive values make clock run faster)" \ -- "\n -t tick Microseconds per tick, usually 10000" \ -- "\n -p timeconstant" \ -+ "\n -q Quiet" \ -+ "\n -o OFF Time offset, microseconds" \ -+ "\n -f FREQ Frequency adjust, integer kernel units (65536 is 1ppm)" \ -+ "\n (positive values make clock run faster)" \ -+ "\n -t TICK Microseconds per tick, usually 10000" \ -+ "\n -p TCONST" \ - - #define ar_trivial_usage \ - "[-o] [-v] [-p] [-t] [-x] ARCHIVE FILES" -@@ -78,11 +78,11 @@ - "\n -v Verbose" \ - - #define arp_trivial_usage \ -- "\n[-vn] [-H type] [-i if] -a [hostname]" \ -- "\n[-v] [-i if] -d hostname [pub]" \ -- "\n[-v] [-H type] [-i if] -s hostname hw_addr [temp]" \ -- "\n[-v] [-H type] [-i if] -s hostname hw_addr [netmask nm] pub" \ -- "\n[-v] [-H type] [-i if] -Ds hostname ifa [netmask nm] pub" -+ "\n[-vn] [-H HWTYPE] [-i IF] -a [HOSTNAME]" \ -+ "\n[-v] [-i IF] -d HOSTNAME [pub]" \ -+ "\n[-v] [-H HWTYPE] [-i IF] -s HOSTNAME HWADDR [temp]" \ -+ "\n[-v] [-H HWTYPE] [-i IF] -s HOSTNAME HWADDR [netmask MASK] pub" \ -+ "\n[-v] [-H HWTYPE] [-i IF] -Ds HOSTNAME IFACE [netmask MASK] pub" - #define arp_full_usage "\n\n" \ - "Manipulate ARP cache\n" \ - "\nOptions:" \ -@@ -97,7 +97,7 @@ - "\n -H HWTYPE Hardware address type" \ - - #define arping_trivial_usage \ -- "[-fqbDUA] [-c count] [-w timeout] [-I dev] [-s sender] target" -+ "[-fqbDUA] [-c CNT] [-w TIMEOUT] [-I IFACE] [-s SRC_IP] DST_IP" - #define arping_full_usage "\n\n" \ - "Send ARP requests/replies\n" \ - "\nOptions:" \ -@@ -108,10 +108,10 @@ - "\n -U Unsolicited ARP mode, update your neighbors" \ - "\n -A ARP answer mode, update your neighbors" \ - "\n -c N Stop after sending N ARP requests" \ -- "\n -w timeout Time to wait for ARP reply, in seconds" \ -- "\n -I dev Interface to use (default eth0)" \ -- "\n -s sender Sender IP address" \ -- "\n target Target IP address" \ -+ "\n -w TIMEOUT Time to wait for ARP reply, seconds" \ -+ "\n -I IFACE Interface to use (default eth0)" \ -+ "\n -s SRC_IP Sender IP address" \ -+ "\n DST_IP Target IP address" \ - - #define sh_trivial_usage NOUSAGE_STR - #define sh_full_usage "" -@@ -191,19 +191,19 @@ - ) \ - - #define bunzip2_trivial_usage \ -- "[OPTIONS] [FILE]" -+ "[OPTIONS] [FILE]..." - #define bunzip2_full_usage "\n\n" \ -- "Uncompress FILE (or standard input)\n" \ -+ "Uncompress FILEs (or stdin)\n" \ - "\nOptions:" \ -- "\n -c Write to standard output" \ -+ "\n -c Write to stdout" \ - "\n -f Force" \ - - #define bzip2_trivial_usage \ - "[OPTIONS] [FILE]..." - #define bzip2_full_usage "\n\n" \ -- "Compress FILEs (or standard input) with bzip2 algorithm.\n" \ -+ "Compress FILEs (or stdin) with bzip2 algorithm\n" \ - "\nOptions:" \ -- "\n -c Write to standard output" \ -+ "\n -c Write to stdout" \ - "\n -d Decompress" \ - "\n -f Force" \ - "\n -1..-9 Compression level" \ -@@ -214,7 +214,7 @@ - #define lzop_trivial_usage \ - "[-cfvd123456789CF] [FILE]..." - #define lzop_full_usage "\n\n" \ -- " -c Write to standard output" \ -+ " -c Write to stdout" \ - "\n -f Force" \ - "\n -v Verbose" \ - "\n -d Decompress" \ -@@ -231,7 +231,7 @@ - #define unlzop_trivial_usage \ - "[-cfvCF] [FILE]..." - #define unlzop_full_usage "\n\n" \ -- " -c Write to standard output" \ -+ " -c Write to stdout" \ - "\n -f Force" \ - "\n -v Verbose" \ - "\n -F Don't store or verify checksum" \ -@@ -242,11 +242,11 @@ - "Uncompress to stdout" - - #define unlzma_trivial_usage \ -- "[OPTIONS] [FILE]" -+ "[OPTIONS] [FILE]..." - #define unlzma_full_usage "\n\n" \ -- "Uncompress FILE (or standard input)\n" \ -+ "Uncompress FILE (or stdin)\n" \ - "\nOptions:" \ -- "\n -c Write to standard output" \ -+ "\n -c Write to stdout" \ - "\n -f Force" \ - - #define lzmacat_trivial_usage \ -@@ -255,7 +255,7 @@ - "Uncompress to stdout" - - #define cal_trivial_usage \ -- "[-jy] [[month] year]" -+ "[-jy] [[MONTH] YEAR]" - #define cal_full_usage "\n\n" \ - "Display a calendar\n" \ - "\nOptions:" \ -@@ -436,21 +436,21 @@ - "\n -c BYTES Limit core file size" \ - "\n -v Verbose" \ - "\n -P Create new process group" \ -- "\n -0 Close standard input" \ -- "\n -1 Close standard output" \ -- "\n -2 Close standard error" \ -+ "\n -0 Close stdin" \ -+ "\n -1 Close stdout" \ -+ "\n -2 Close stderr" \ - - #define setuidgid_trivial_usage \ -- "account prog args" -+ "USER PROG ARGS" - #define setuidgid_full_usage "\n\n" \ -- "Set uid and gid to account's uid and gid, removing all supplementary\n" \ -+ "Set uid and gid to USER's uid and gid, removing all supplementary\n" \ - "groups and run PROG" - #define envuidgid_trivial_usage \ -- "account prog args" -+ "USER PROG ARGS" - #define envuidgid_full_usage "\n\n" \ -- "Set $UID to account's uid and $GID to account's gid and run PROG" -+ "Set $UID to USER's uid and $GID to USER's gid and run PROG" - #define envdir_trivial_usage \ -- "dir prog args" -+ "DIR PROG ARGS" - #define envdir_full_usage "\n\n" \ - "Set various environment variables as specified by files\n" \ - "in the directory dir and run PROG" -@@ -477,7 +477,7 @@ - "\n a SIGXCPU after N seconds" \ - - #define chroot_trivial_usage \ -- "NEWROOT [PROG [ARGS]]" -+ "NEWROOT [PROG ARGS]" - #define chroot_full_usage "\n\n" \ - "Run PROG with root directory set to NEWROOT" - #define chroot_example_usage \ -@@ -527,7 +527,7 @@ - "Print the config file which built busybox" - - #define chrt_trivial_usage \ -- "[OPTIONS] [PRIO] [PID | PROG [ARGS]]" -+ "[OPTIONS] [PRIO] [PID | PROG ARGS]" - #define chrt_full_usage "\n\n" \ - "Manipulate real-time attributes of a process\n" \ - "\nOptions:" \ -@@ -567,7 +567,7 @@ - "Extract or list files from a cpio archive" \ - IF_FEATURE_CPIO_O(", or" \ - "\ncreate an archive" IF_FEATURE_CPIO_P(" (-o) or copy files (-p)") \ -- " using file list on standard input" \ -+ " using file list on stdin" \ - ) \ - "\n" \ - "\nMain operation mode:" \ -@@ -658,7 +658,7 @@ - #define cut_trivial_usage \ - "[OPTIONS] [FILE]..." - #define cut_full_usage "\n\n" \ -- "Print selected fields from each input FILE to standard output\n" \ -+ "Print selected fields from each input FILE to stdout\n" \ - "\nOptions:" \ - "\n -b LIST Output only bytes from LIST" \ - "\n -c LIST Output only characters from LIST" \ -@@ -721,7 +721,7 @@ - "p - print top of the stack (without altering the stack),\n" \ - "f - print entire stack, o - pop the value and set output radix\n" \ - "(value must be 10 or 16).\n" \ -- "Examples: 'dc 2 2 add' -> 4, 'dc 8 8 * 2 2 + /' -> 16.\n" \ -+ "Examples: 'dc 2 2 add' -> 4, 'dc 8 8 * 2 2 + /' -> 16\n" \ - - #define dc_example_usage \ - "$ dc 2 2 + p\n" \ -@@ -815,7 +815,7 @@ - "[-Pk" \ - IF_FEATURE_HUMAN_READABLE("mh") \ - IF_FEATURE_DF_FANCY("ai] [-B SIZE") \ -- "] [FILESYSTEM...]" -+ "] [FILESYSTEM]..." - #define df_full_usage "\n\n" \ - "Print filesystem usage statistics\n" \ - "\nOptions:" \ -@@ -847,7 +847,7 @@ - "/dev/sda3 17381728 17107080 274648 98% /\n" - - #define dhcprelay_trivial_usage \ -- "CLIENT_IFACE[,CLIENT_IFACE2...] SERVER_IFACE [SERVER_IP]" -+ "CLIENT_IFACE[,CLIENT_IFACE2]... SERVER_IFACE [SERVER_IP]" - #define dhcprelay_full_usage "\n\n" \ - "Relay DHCP requests between clients and server" \ - -@@ -893,15 +893,20 @@ - "\n -s SIZE Buffer size" \ - - #define dnsd_trivial_usage \ -- "[-c config] [-t seconds] [-p port] [-i iface-ip] [-d]" -+ "[-dvs] [-c CONFFILE] [-t TTL_SEC] [-p PORT] [-i ADDR]" - #define dnsd_full_usage "\n\n" \ - "Small static DNS server daemon\n" \ - "\nOptions:" \ -- "\n -c Config filename" \ -- "\n -t TTL in seconds" \ -- "\n -p Listening port" \ -- "\n -i Listening ip (default all)" \ -+ "\n -c FILE Config file" \ -+ "\n -t SEC TTL" \ -+ "\n -p PORT Listen on PORT" \ -+ "\n -i ADDR Listen on ADDR" \ - "\n -d Daemonize" \ -+ "\n -v Verbose" \ -+ "\n -s Send successful replies only. Use this if you want" \ -+ "\n to use /etc/resolv.conf with two nameserver lines:" \ -+ "\n nameserver DNSD_SERVER" \ -+ "\n nameserver NORNAL_DNS_SERVER" \ - - #define dos2unix_trivial_usage \ - "[OPTIONS] [FILE]" -@@ -922,7 +927,7 @@ - "\n -d unix2dos" \ - - #define dpkg_trivial_usage \ -- "[-ilCPru] [-F option] package_name" -+ "[-ilCPru] [-F OPT] PACKAGE" - #define dpkg_full_usage "\n\n" \ - "Install, remove and manage Debian packages\n" \ - "\nOptions:" \ -@@ -988,7 +993,7 @@ - #define dumpkmap_trivial_usage \ - "> keymap" - #define dumpkmap_full_usage "\n\n" \ -- "Print a binary keyboard translation table to standard output" -+ "Print a binary keyboard translation table to stdout" - #define dumpkmap_example_usage \ - "$ dumpkmap > keymap\n" - -@@ -1031,7 +1036,7 @@ - */ - - #define echo_trivial_usage \ -- IF_FEATURE_FANCY_ECHO("[-neE] ") "[ARG...]" -+ IF_FEATURE_FANCY_ECHO("[-neE] ") "[ARG]..." - #define echo_full_usage "\n\n" \ - "Print the specified ARGs to stdout" \ - IF_FEATURE_FANCY_ECHO( "\n" \ -@@ -1053,7 +1058,7 @@ - #define eject_trivial_usage \ - "[-t] [-T] [DEVICE]" - #define eject_full_usage "\n\n" \ -- "Eject specified DEVICE (or default /dev/cdrom)\n" \ -+ "Eject DEVICE or default /dev/cdrom\n" \ - "\nOptions:" \ - IF_FEATURE_EJECT_SCSI( \ - "\n -s SCSI device" \ -@@ -1065,7 +1070,7 @@ - #define ed_full_usage "" - - #define env_trivial_usage \ -- "[-iu] [-] [name=value]... [PROG [ARGS]]" -+ "[-iu] [-] [name=value]... [PROG ARGS]" - #define env_full_usage "\n\n" \ - "Print the current environment or run PROG after setting up\n" \ - "the specified environment\n" \ -@@ -1087,7 +1092,7 @@ - #define expand_trivial_usage \ - "[-i] [-t N] [FILE|-]" - #define expand_full_usage "\n\n" \ -- "Convert tabs to spaces, writing to standard output\n" \ -+ "Convert tabs to spaces, writing to stdout\n" \ - "\nOptions:" \ - IF_FEATURE_EXPAND_LONG_OPTIONS( \ - "\n -i,--initial Don't convert tabs after non blanks" \ -@@ -1101,7 +1106,7 @@ - #define expr_trivial_usage \ - "EXPRESSION" - #define expr_full_usage "\n\n" \ -- "Print the value of EXPRESSION to standard output\n" \ -+ "Print the value of EXPRESSION to stdout\n" \ - "\n" \ - "EXPRESSION may be:\n" \ - " ARG1 | ARG2 ARG1 if it is neither null nor 0, otherwise ARG2\n" \ -@@ -1216,7 +1221,7 @@ - "$ findfs LABEL=MyDevice" - - #define find_trivial_usage \ -- "[PATH...] [EXPRESSION]" -+ "[PATH]... [EXPRESSION]" - #define find_full_usage "\n\n" \ - "Search for files. The default PATH is the current directory,\n" \ - "default EXPRESSION is '-print'\n" \ -@@ -1256,7 +1261,7 @@ - IF_FEATURE_FIND_DEPTH( \ - "\n -depth Process directory name after traversing it") \ - IF_FEATURE_FIND_SIZE( \ -- "\n -size N[bck] File size is N (c:bytes,k:kbytes,b:512 bytes(def.))." \ -+ "\n -size N[bck] File size is N (c:bytes,k:kbytes,b:512 bytes(def.))" \ - "\n +/-N: file size is bigger/smaller than N") \ - IF_FEATURE_FIND_LINKS( \ - "\n -links N Number of links is greater than (+N), less than (-N)," \ -@@ -1308,10 +1313,9 @@ - "\n -v Verbose" \ - - #define fold_trivial_usage \ -- "[-bs] [-w WIDTH] [FILE]" -+ "[-bs] [-w WIDTH] [FILE]..." - #define fold_full_usage "\n\n" \ -- "Wrap input lines in each FILE (standard input by default), writing to\n" \ -- "standard output\n" \ -+ "Wrap input lines in each FILE (or stdin), writing to stdout\n" \ - "\nOptions:" \ - "\n -b Count bytes rather than columns" \ - "\n -s Break at spaces" \ -@@ -1336,7 +1340,7 @@ - "$ freeramdisk /dev/ram2\n" - - #define fsck_trivial_usage \ -- "[-ANPRTV] [-C fd] [-t fstype] [fs-options] [filesys...]" -+ "[-ANPRTV] [-C FD] [-t FSTYPE] [FS_OPTS] [BLOCKDEV]..." - #define fsck_full_usage "\n\n" \ - "Check and repair filesystems\n" \ - "\nOptions:" \ -@@ -1347,10 +1351,10 @@ - "\n -T Don't show title on startup" \ - "\n -V Verbose" \ - "\n -C n Write status information to specified filedescriptor" \ -- "\n -t type List of filesystem types to check" \ -+ "\n -t TYPE List of filesystem types to check" \ - - #define fsck_minix_trivial_usage \ -- "[-larvsmf] /dev/name" -+ "[-larvsmf] BLOCKDEV" - #define fsck_minix_full_usage "\n\n" \ - "Check MINIX filesystem\n" \ - "\nOptions:" \ -@@ -1463,7 +1467,7 @@ - "#!/bin/sh\n" \ - "GETOPT=`getopt -o ab:c:: --long a-long,b-long:,c-long:: \\\n" \ - " -n 'example.busybox' -- \"$@\"`\n" \ -- "if [ $? != 0 ]; then exit 1; fi\n" \ -+ "if [ $? != 0 ]; then exit 1; fi\n" \ - "eval set -- \"$GETOPT\"\n" \ - "while true; do\n" \ - " case $1 in\n" \ -@@ -1502,42 +1506,47 @@ - "\n -H HOST Log HOST into the utmp file as the hostname" \ - - #define grep_trivial_usage \ -- "[-HhrilLnqvso" \ -+ "[-HhnlLoqvsri" \ - IF_DESKTOP("w") \ -- "eF" \ -+ "F" \ - IF_FEATURE_GREP_EGREP_ALIAS("E") \ -- IF_FEATURE_GREP_CONTEXT("ABC") \ - IF_EXTRA_COMPAT("z") \ -- "] PATTERN [FILE]..." -+ "] [-m N] " \ -+ IF_FEATURE_GREP_CONTEXT("[-A/B/C N] ") \ -+ "PATTERN/-e PATTERN.../-f FILE [FILE]..." - #define grep_full_usage "\n\n" \ -- "Search for PATTERN in each FILE or standard input\n" \ -+ "Search for PATTERN in FILEs (or stdin)\n" \ - "\nOptions:" \ -- "\n -H Prefix output lines with filename where match was found" \ -- "\n -h Suppress the prefixing filename on output" \ -- "\n -r Recurse" \ -- "\n -i Ignore case distinctions" \ -- "\n -l List names of files that match" \ -- "\n -L List names of files that don't match" \ -- "\n -n Print line number with output lines" \ -+ "\n -H Add 'filename:' prefix" \ -+ "\n -h Do not add 'filename:' prefix" \ -+ "\n -n Add 'line_no:' prefix" \ -+ "\n -l Show only names of files that match" \ -+ "\n -L Show only names of files that don't match" \ -+ "\n -c Show only count of matching lines" \ -+ "\n -o Show only the matching part of line" \ - "\n -q Quiet. Return 0 if PATTERN is found, 1 otherwise" \ - "\n -v Select non-matching lines" \ -- "\n -s Suppress file open/read error messages" \ -- "\n -c Only print count of matching lines" \ -- "\n -o Show only the part of a line that matches PATTERN" \ -- "\n -m N Match up to N times per file" \ -+ "\n -s Suppress open and read errors" \ -+ "\n -r Recurse" \ -+ "\n -i Ignore case" \ - IF_DESKTOP( \ -- "\n -w Match whole words only") \ -- "\n -F PATTERN is a set of newline-separated strings" \ -+ "\n -w Match whole words only" \ -+ ) \ -+ "\n -F PATTERN is a literal (not regexp)" \ - IF_FEATURE_GREP_EGREP_ALIAS( \ -- "\n -E PATTERN is an extended regular expression") \ -- "\n -e PTRN Pattern to match" \ -- "\n -f FILE Read pattern from file" \ -+ "\n -E PATTERN is an extended regexp" \ -+ ) \ -+ IF_EXTRA_COMPAT( \ -+ "\n -z Input is NUL terminated" \ -+ ) \ -+ "\n -m N Match up to N times per file" \ - IF_FEATURE_GREP_CONTEXT( \ - "\n -A N Print N lines of trailing context" \ - "\n -B N Print N lines of leading context" \ -- "\n -C N Print N lines of output context") \ -- IF_EXTRA_COMPAT( \ -- "\n -z Input is NUL terminated") \ -+ "\n -C N Same as '-A N -B N'" \ -+ ) \ -+ "\n -e PTRN Pattern to match" \ -+ "\n -f FILE Read pattern from file" \ - - #define grep_example_usage \ - "$ grep root /etc/passwd\n" \ -@@ -1554,9 +1563,9 @@ - #define gunzip_trivial_usage \ - "[OPTIONS] [FILE]..." - #define gunzip_full_usage "\n\n" \ -- "Uncompress FILEs (or standard input)\n" \ -+ "Uncompress FILEs (or stdin)\n" \ - "\nOptions:" \ -- "\n -c Write to standard output" \ -+ "\n -c Write to stdout" \ - "\n -f Force" \ - "\n -t Test file integrity" \ - -@@ -1570,9 +1579,9 @@ - #define gzip_trivial_usage \ - "[OPTIONS] [FILE]..." - #define gzip_full_usage "\n\n" \ -- "Compress FILEs (or standard input)\n" \ -+ "Compress FILEs (or stdin)\n" \ - "\nOptions:" \ -- "\n -c Write to standard output" \ -+ "\n -c Write to stdout" \ - "\n -d Decompress" \ - "\n -f Force" \ - -@@ -1649,7 +1658,7 @@ - #define head_trivial_usage \ - "[OPTIONS] [FILE]..." - #define head_full_usage "\n\n" \ -- "Print first 10 lines of each FILE (or standard input) to standard output.\n" \ -+ "Print first 10 lines of each FILE (or stdin) to stdout.\n" \ - "With more than one FILE, precede each with a header giving the file name.\n" \ - "\nOptions:" \ - "\n -n N Print first N lines instead of first 10" \ -@@ -1664,9 +1673,9 @@ - "daemon:x:1:1:daemon:/usr/sbin:/bin/sh\n" - - #define hexdump_trivial_usage \ -- "[-bcCdefnosvx" IF_FEATURE_HEXDUMP_REVERSE("R") "] FILE..." -+ "[-bcCdefnosvx" IF_FEATURE_HEXDUMP_REVERSE("R") "] [FILE]..." - #define hexdump_full_usage "\n\n" \ -- "Display FILEs or standard input in a user specified format\n" \ -+ "Display FILEs (or stdin) in a user specified format\n" \ - "\nOptions:" \ - "\n -b One-byte octal display" \ - "\n -c One-byte character display" \ -@@ -1795,7 +1804,7 @@ - " [up|down] ..." - - #define ifenslave_trivial_usage \ -- "[-cdf] master-iface " -+ "[-cdf] MASTER_IFACE SLAVE_IFACE..." - #define ifenslave_full_usage "\n\n" \ - "Configure network interfaces for parallel routing\n" \ - "\nOptions:" \ -@@ -1847,7 +1856,7 @@ - "\n -k Kill running daemon" \ - - #define ifup_trivial_usage \ -- "[-ain"IF_FEATURE_IFUPDOWN_MAPPING("m")"vf] ifaces..." -+ "[-ain"IF_FEATURE_IFUPDOWN_MAPPING("m")"vf] IFACE..." - #define ifup_full_usage "\n\n" \ - "Options:" \ - "\n -a De/configure all interfaces automatically" \ -@@ -2018,11 +2027,11 @@ - " ::shutdown:/sbin/swapoff -a\n" - - #define inotifyd_trivial_usage \ -- "PROG FILE1[:MASK] ..." -+ "PROG FILE1[:MASK]..." - #define inotifyd_full_usage "\n\n" \ - "Run PROG on filesystem changes." \ - "\nWhen a filesystem event matching MASK occurs on FILEn," \ -- "\nPROG [] is run." \ -+ "\nPROG ACTUAL_EVENTS FILEn [SUBFILE] is run." \ - "\nEvents:" \ - "\n a File is accessed" \ - "\n c File is modified" \ -@@ -2042,7 +2051,7 @@ - "\n d Subfile is deleted" \ - "\n" \ - "\ninotifyd waits for PROG to exit." \ -- "\nWhen x event happens for all FILEs, inotifyd exits" \ -+ "\nWhen x event happens for all FILEs, inotifyd exits." \ - - /* 2.6 style insmod has no options and required filename - * (not module name - .ko can't be omitted) */ -@@ -2068,7 +2077,7 @@ - - /* -v, -b, -c are ignored */ - #define install_trivial_usage \ -- "[-cdDsp] [-o USER] [-g GRP] [-m MODE] [source] dest|directory" -+ "[-cdDsp] [-o USER] [-g GRP] [-m MODE] [SOURCE]... DEST" - #define install_full_usage "\n\n" \ - "Copy files and set attributes\n" \ - "\nOptions:" \ -@@ -2247,7 +2256,7 @@ - "$ kill 252\n" - - #define killall_trivial_usage \ -- "[-l] [-q] [-SIG] process-name..." -+ "[-l] [-q] [-SIG] PROCESS_NAME..." - #define killall_full_usage "\n\n" \ - "Send a signal (default: TERM) to given processes\n" \ - "\nOptions:" \ -@@ -2287,8 +2296,7 @@ - #define less_trivial_usage \ - "[-EMNmh~I?] [FILE]..." - #define less_full_usage "\n\n" \ -- "View a file or list of files. The position within files can be\n" \ -- "changed, and files can be manipulated in various ways.\n" \ -+ "View FILE (or stdin) one screenful at a time\n" \ - "\nOptions:" \ - "\n -E Quit once the end of a file is reached" \ - "\n -M,-m Display status line with line numbers" \ -@@ -2306,7 +2314,7 @@ - #define linuxrc_full_usage "" - - #define setarch_trivial_usage \ -- "personality program [args...]" -+ "personality PROG ARGS" - #define setarch_full_usage "\n\n" \ - "Personality may be:\n" \ - " linux32 Set 32bit uname emulation\n" \ -@@ -2334,7 +2342,7 @@ - #define loadfont_trivial_usage \ - "< font" - #define loadfont_full_usage "\n\n" \ -- "Load a console font from standard input" \ -+ "Load a console font from stdin" \ - /* "\n -C TTY Affect TTY instead of /dev/tty" */ \ - - #define loadfont_example_usage \ -@@ -2343,7 +2351,7 @@ - #define loadkmap_trivial_usage \ - "< keymap" - #define loadkmap_full_usage "\n\n" \ -- "Load a binary keyboard translation table from standard input\n" \ -+ "Load a binary keyboard translation table from stdin\n" \ - /* "\n -C TTY Affect TTY instead of /dev/tty" */ \ - - #define loadkmap_example_usage \ -@@ -2352,7 +2360,7 @@ - #define logger_trivial_usage \ - "[OPTIONS] [MESSAGE]" - #define logger_full_usage "\n\n" \ -- "Write MESSAGE to the system log. If MESSAGE is omitted, log stdin.\n" \ -+ "Write MESSAGE (or stdin) to syslog\n" \ - "\nOptions:" \ - "\n -s Log to stderr as well as the system log" \ - "\n -t TAG Log using the specified tag (defaults to user name)" \ -@@ -2415,7 +2423,7 @@ - "\n tcpsvd -E 0 515 softlimit -m 999999 lpd /var/spool ./print" \ - - #define lpq_trivial_usage \ -- "[-P queue[@host[:port]]] [-U USERNAME] [-d JOBID...] [-fs]" -+ "[-P queue[@host[:port]]] [-U USERNAME] [-d JOBID]... [-fs]" - #define lpq_full_usage "\n\n" \ - "Options:" \ - "\n -P lp service to connect to (else uses $PRINTER)" \ -@@ -2764,8 +2772,8 @@ - "[-L LABEL] " \ - /* "[-M last-mounted-directory] [-S] [-T filesystem-type] " */ \ - "BLOCKDEV [KBYTES]" --#define mkfs_ext2_full_usage "\n" \ -- "\n -b BLK_SIZE Block size, bytes" \ -+#define mkfs_ext2_full_usage "\n\n" \ -+ " -b BLK_SIZE Block size, bytes" \ - /* "\n -c Check device for bad blocks" */ \ - /* "\n -E opts Set extended options" */ \ - /* "\n -f size Fragment size in bytes" */ \ -@@ -2790,14 +2798,14 @@ - /* "\n -v Verbose" */ \ - - #define mkfs_minix_trivial_usage \ -- "[-c | -l filename] [-nXX] [-iXX] BLOCKDEV [KBYTES]" -+ "[-c | -l FILE] [-nXX] [-iXX] BLOCKDEV [KBYTES]" - #define mkfs_minix_full_usage "\n\n" \ - "Make a MINIX filesystem\n" \ - "\nOptions:" \ - "\n -c Check device for bad blocks" \ - "\n -n [14|30] Maximum length of filenames" \ - "\n -i INODES Number of inodes for the filesystem" \ -- "\n -l FILENAME Read bad blocks list from FILENAME" \ -+ "\n -l FILE Read bad blocks list from FILE" \ - "\n -v Make version 2 filesystem" \ - - #define mkfs_reiser_trivial_usage \ -@@ -2844,7 +2852,7 @@ - "$ mknod -m 644 /tmp/pipe p\n" - - #define mkswap_trivial_usage \ -- "[OPTIONS] BLOCKDEV" /* [SIZE_IN_KB] */ -+ "[OPTIONS] BLOCKDEV [KBYTES]" - #define mkswap_full_usage "\n\n" \ - "Prepare BLOCKDEV to be used as swap partition\n" \ - "\nOptions:" \ -@@ -2871,10 +2879,10 @@ - "-rw------- 1 andersen andersen 0 Apr 25 17:10 /tmp/temp.mWiLjM\n" - - #define modprobe_trivial_usage \ -- IF_MODPROBE_SMALL("[-qfwrsv] MODULE [symbol=value...]") \ -+ IF_MODPROBE_SMALL("[-qfwrsv] MODULE [symbol=value]...") \ - IF_NOT_MODPROBE_SMALL("[-" \ - IF_FEATURE_2_4_MODULES("k")"nqrsv" \ -- IF_FEATURE_MODPROBE_BLACKLIST("b")"] MODULE [symbol=value...]") -+ IF_FEATURE_MODPROBE_BLACKLIST("b")"] MODULE [symbol=value]...") - #define modprobe_full_usage "\n\n" \ - "Options:" \ - IF_MODPROBE_SMALL( \ -@@ -2962,7 +2970,7 @@ - #define more_trivial_usage \ - "[FILE]..." - #define more_full_usage "\n\n" \ -- "View FILE or standard input one screenful at a time" -+ "View FILE (or stdin) one screenful at a time" - - #define more_example_usage \ - "$ dmesg | more\n" -@@ -3180,7 +3188,7 @@ - ) - - #define nice_trivial_usage \ -- "[-n ADJUST] [PROG [ARGS]]" -+ "[-n ADJUST] [PROG ARGS]" - #define nice_full_usage "\n\n" \ - "Run PROG with modified scheduling priority\n" \ - "\nOptions:" \ -@@ -3212,7 +3220,7 @@ - "nmeter '%250d%t %20c int %i bio %b mem %m forks%p'" - - #define nohup_trivial_usage \ -- "PROG [ARGS]" -+ "PROG ARGS" - #define nohup_full_usage "\n\n" \ - "Run PROG immune to hangups, with output to a non-tty" - #define nohup_example_usage \ -@@ -3251,10 +3259,10 @@ - "[-aBbcDdeFfHhIiLlOovXx] " IF_DESKTOP("[-t TYPE] ") "[FILE]" - #define od_full_usage "\n\n" \ - "Write an unambiguous representation, octal bytes by default, of FILE\n" \ -- "(or standard input) to standard output." -+ "(or stdin) to stdout" - - #define openvt_trivial_usage \ -- "[-c N] [-sw] [PROG [ARGS]]" -+ "[-c N] [-sw] [PROG ARGS]" - #define openvt_full_usage "\n\n" \ - "Start PROG on a new virtual terminal\n" \ - "\nOptions:" \ -@@ -3334,11 +3342,11 @@ - - #if (ENABLE_FEATURE_PIDOF_SINGLE || ENABLE_FEATURE_PIDOF_OMIT) - #define pidof_trivial_usage \ -- "[OPTIONS] [NAME...]" -+ "[OPTIONS] [NAME]..." - #define USAGE_PIDOF "\n\nOptions:" - #else - #define pidof_trivial_usage \ -- "[NAME...]" -+ "[NAME]..." - #define USAGE_PIDOF /* none */ - #endif - #define pidof_full_usage "\n\n" \ -@@ -3473,13 +3481,13 @@ - "\n -f Force power off (don't go through init)" \ - - #define printenv_trivial_usage \ -- "[VARIABLE...]" -+ "[VARIABLE]..." - #define printenv_full_usage "\n\n" \ -- "Print all or part of environment.\n" \ -- "If no environment VARIABLE specified, print them all." -+ "Print environment VARIABLEs.\n" \ -+ "If no VARIABLE specified, print all." - - #define printf_trivial_usage \ -- "FORMAT [ARGUMENT...]" -+ "FORMAT [ARGUMENT]..." - #define printf_full_usage "\n\n" \ - "Format and print ARGUMENT(s) according to FORMAT,\n" \ - "where FORMAT controls the output exactly as in C printf" -@@ -3610,9 +3618,9 @@ - "\n -n Disable byte order auto-detection" \ - - #define realpath_trivial_usage \ -- "pathname..." -+ "FILE..." - #define realpath_full_usage "\n\n" \ -- "Return the absolute pathnames of given argument" -+ "Return the absolute pathnames of given FILE" - - #define reboot_trivial_usage \ - "[-d DELAY] [-n] [-f]" -@@ -3628,11 +3636,11 @@ - #define reformime_full_usage "\n\n" \ - "Parse MIME-encoded message\n" \ - "\nOptions:" \ -- "\n -x prefix Extract content of MIME sections to files" \ -- "\n -X prog [args] Filter content of MIME sections through prog." \ -+ "\n -x PREFIX Extract content of MIME sections to files" \ -+ "\n -X PROG ARGS Filter content of MIME sections through PROG" \ - "\n Must be the last option" \ - "\n" \ -- "\nOther options are silently ignored." \ -+ "\nOther options are silently ignored" \ - - #define renice_trivial_usage \ - "{{-n INCREMENT} | PRIORITY} [[-p | -g | -u] ID...]" -@@ -3725,7 +3733,7 @@ - "\n -A inet" IF_FEATURE_IPV6("{6}") " Select address family" \ - - #define rpm_trivial_usage \ -- "-i -q[ildc]p package.rpm" -+ "-i -q[ildc]p PACKAGE.rpm" - #define rpm_full_usage "\n\n" \ - "Manipulate RPM packages\n" \ - "\nOptions:" \ -@@ -3766,8 +3774,8 @@ - ) - - #define runcon_trivial_usage \ -- "[-c] [-u USER] [-r ROLE] [-t TYPE] [-l RANGE] PROG [ARGS]\n" \ -- " runcon CONTEXT PROG [ARGS]" -+ "[-c] [-u USER] [-r ROLE] [-t TYPE] [-l RANGE] PROG ARGS\n" \ -+ " runcon CONTEXT PROG ARGS" - #define runcon_full_usage "\n\n" \ - "Run PROG in a different security context\n" \ - "\n CONTEXT Complete security context\n" \ -@@ -3813,23 +3821,23 @@ - "+ shutdown -h +4m" - - #define runlevel_trivial_usage \ -- "[utmp]" -+ "[FILE]" - #define runlevel_full_usage "\n\n" \ - "Find the current and previous system runlevel\n" \ - "\n" \ -- "If no utmp file exists or if no runlevel record can be found,\n" \ -+ "If no utmp FILE exists or if no runlevel record can be found,\n" \ - "print \"unknown\"" - #define runlevel_example_usage \ - "$ runlevel /var/run/utmp\n" \ - "N 2" - - #define runsv_trivial_usage \ -- "dir" -+ "DIR" - #define runsv_full_usage "\n\n" \ - "Start and monitor a service and optionally an appendant log service" - - #define runsvdir_trivial_usage \ -- "[-P] [-s SCRIPT] dir" -+ "[-P] [-s SCRIPT] DIR" - #define runsvdir_full_usage "\n\n" \ - "Start a runsv process for each subdirectory. If it exits, restart it.\n" \ - "\n -P Put each runsv in a new session" \ -@@ -3908,7 +3916,7 @@ - "[-w] [-s SEP] [FIRST [INC]] LAST" - #define seq_full_usage "\n\n" \ - "Print numbers from FIRST to LAST, in steps of INC.\n" \ -- "FIRST, INC default to 1\n" \ -+ "FIRST, INC default to 1.\n" \ - "\nOptions:" \ - "\n -w Pad to last with leading zeros" \ - "\n -s SEP String separator" \ -@@ -3949,7 +3957,7 @@ - "\n -e DIR Exclude DIR" \ - "\n -F Force reset of context to match file_context for customizable files" \ - "\n -o FILE Save list of files with incorrect context" \ -- "\n -s Take a list of files from standard input (instead of command line)" \ -+ "\n -s Take a list of files from stdin (instead of command line)" \ - "\n -v Show changes in file labels, if type or role are changing" \ - "\n -vv Show changes in file labels, if type, role, or user are changing" \ - "\n -W Display warnings about entries that had no matching files" \ -@@ -3971,7 +3979,7 @@ - "Set entries into the kernel's scancode-to-keycode map,\n" \ - "allowing unusual keyboards to generate usable keycodes.\n\n" \ - "SCANCODE may be either xx or e0xx (hexadecimal),\n" \ -- "and KEYCODE is given in decimal" \ -+ "and KEYCODE is given in decimal." \ - - #define setkeycodes_example_usage \ - "$ setkeycodes e030 127\n" -@@ -3988,7 +3996,7 @@ - "Change boolean setting" - - #define setsid_trivial_usage \ -- "PROG [ARG...]" -+ "PROG ARGS" - #define setsid_full_usage "\n\n" \ - "Run PROG in a new session. PROG will have no controlling terminal\n" \ - "and will not be affected by keyboard signals (Ctrl-C etc).\n" \ -@@ -4103,7 +4111,7 @@ - "$ cat TODO | split -a 2 -l 2 TODO_\n" - - #define start_stop_daemon_trivial_usage \ -- "[OPTIONS] [-S|-K] ... [-- arguments...]" -+ "[OPTIONS] [-S|-K] ... [-- ARGS...]" - #define start_stop_daemon_full_usage "\n\n" \ - "Search for matching processes, and then\n" \ - "-K: stop all matching processes.\n" \ -@@ -4256,7 +4264,7 @@ - "\n -s SH Shell to use instead of default shell" \ - - #define sulogin_trivial_usage \ -- "[OPTIONS] [TTY]" -+ "[-t N] [TTY]" - #define sulogin_full_usage "\n\n" \ - "Single user login\n" \ - "\nOptions:" \ -@@ -4271,7 +4279,7 @@ - "\n -s Use System V sum algorithm (512byte blocks)" \ - - #define sv_trivial_usage \ -- "[-v] [-w SEC] command service..." -+ "[-v] [-w SEC] CMD SERVICE_DIR..." - #define sv_full_usage "\n\n" \ - "Control services monitored by runsv supervisor.\n" \ - "Commands (only first character is enough):\n" \ -@@ -4289,7 +4297,7 @@ - #define svlogd_trivial_usage \ - "[-ttv] [-r c] [-R abc] [-l len] [-b buflen] dir..." - #define svlogd_full_usage "\n\n" \ -- "Continuously read log data from standard input, optionally\n" \ -+ "Continuously read log data from stdin, optionally\n" \ - "filter log messages, and write the data to one or more automatically\n" \ - "rotated logs" \ - -@@ -4326,7 +4334,7 @@ - - #define fsync_trivial_usage \ - "[OPTIONS] FILE..." --#define fsync_full_usage \ -+#define fsync_full_usage "\n\n" \ - "Write files' buffered blocks to disk\n" \ - "\nOptions:" \ - "\n -d Avoid syncing metadata" -@@ -4354,11 +4362,11 @@ - "[OPTIONS]" - #define syslogd_full_usage "\n\n" \ - "System logging utility.\n" \ -- "Note that this version of syslogd ignores /etc/syslog.conf.\n" \ -+ "This version of syslogd ignores /etc/syslog.conf\n" \ - "\nOptions:" \ - "\n -n Run in foreground" \ - "\n -O FILE Log to given file (default:/var/log/messages)" \ -- "\n -l n Set local log level" \ -+ "\n -l N Set local log level" \ - "\n -S Smaller logging output" \ - IF_FEATURE_ROTATE_LOGFILE( \ - "\n -s SIZE Max size (KB) before rotate (default:200KB, 0=off)" \ -@@ -4385,7 +4393,7 @@ - #define tail_trivial_usage \ - "[OPTIONS] [FILE]..." - #define tail_full_usage "\n\n" \ -- "Print last 10 lines of each FILE (or standard input) to standard output.\n" \ -+ "Print last 10 lines of each FILE (or stdin) to stdout.\n" \ - "With more than one FILE, precede each with a header giving the file name.\n" \ - "\nOptions:" \ - IF_FEATURE_FANCY_TAIL( \ -@@ -4454,7 +4462,7 @@ - "$ tar -cf /tmp/tarball.tar /usr/local\n" - - #define taskset_trivial_usage \ -- "[-p] [MASK] [PID | PROG [ARGS]]" -+ "[-p] [MASK] [PID | PROG ARGS]" - #define taskset_full_usage "\n\n" \ - "Set or get CPU affinity\n" \ - "\nOptions:" \ -@@ -4474,7 +4482,7 @@ - #define tee_trivial_usage \ - "[OPTIONS] [FILE]..." - #define tee_full_usage "\n\n" \ -- "Copy standard input to each FILE, and also to standard output\n" \ -+ "Copy stdin to each FILE, and also to stdout\n" \ - "\nOptions:" \ - "\n -a Append to the given FILEs, don't overwrite" \ - "\n -i Ignore interrupt signals (SIGINT)" \ -@@ -4514,9 +4522,9 @@ - "\n -p PORT Port to listen on" \ - "\n -b ADDR[:PORT] Address to bind to" \ - "\n -F Run in foreground" \ -- "\n -i Run as inetd service" \ -+ "\n -i Inetd mode" \ - IF_FEATURE_TELNETD_INETD_WAIT( \ -- "\n -w SEC Run as inetd service in wait mode, linger time SEC" \ -+ "\n -w SEC Inetd 'wait' mode, linger time SEC" \ - "\n -S Log to syslog (implied by -i or without -F and -w)" \ - ) \ - ) -@@ -4568,11 +4576,11 @@ - /* with not-implemented options: */ - /* "[-hpEvv] [-c N] [-C N[:MSG]] [-b N] [-u USER] [-l NAME] [-i DIR|-x CDB] [-t SEC] IP PORT PROG" */ - #define tcpsvd_full_usage "\n\n" \ -- "Create TCP socket, bind to IP:PORT and listen\n" \ -+ "Create TCP socket, bind to IP:PORT and listen\n" \ - "for incoming connection. Run PROG for each connection.\n" \ - "\n IP IP to listen on. '0' = all" \ - "\n PORT Port to listen on" \ -- "\n PROG [ARGS] Program to run" \ -+ "\n PROG ARGS Program to run" \ - "\n -l NAME Local hostname (else looks up local hostname in DNS)" \ - "\n -u USER[:GRP] Change to user/group after bind" \ - "\n -c N Handle up to N connections simultaneously" \ -@@ -4592,7 +4600,7 @@ - "redirecting all further packets with same peer ip:port to it.\n" \ - "\n IP IP to listen on. '0' = all" \ - "\n PORT Port to listen on" \ -- "\n PROG [ARGS] Program to run" \ -+ "\n PROG ARGS Program to run" \ - "\n -l NAME Local hostname (else looks up local hostname in DNS)" \ - "\n -u USER[:GRP] Change to user/group after bind" \ - "\n -c N Handle up to N connections simultaneously" \ -@@ -4633,14 +4641,14 @@ - "\n -u Access files as USER" \ - - #define time_trivial_usage \ -- "[OPTIONS] PROG [ARGS]" -+ "[OPTIONS] PROG ARGS" - #define time_full_usage "\n\n" \ -- "Run PROG. When it finishes, its resource usage is displayed.\n" \ -+ "Run PROG, display resource usage when it exits\n" \ - "\nOptions:" \ - "\n -v Verbose" \ - - #define timeout_trivial_usage \ -- "[-t SECS] [-s SIG] PROG [ARGS]" -+ "[-t SECS] [-s SIG] PROG ARGS" - #define timeout_full_usage "\n\n" \ - "Runs PROG. Sends SIG to it if it is not gone in SECS seconds.\n" \ - "Defaults: SECS: 10, SIG: TERM." \ -@@ -4650,7 +4658,8 @@ - #define top_full_usage "\n\n" \ - "Provide a view of process activity in real time.\n" \ - "Read the status of all processes from /proc each SECONDS\n" \ -- "and show the status for however many processes will fit on the screen." \ -+ "and display a screenful of them." \ -+//TODO: add options and keyboard commands - - #define touch_trivial_usage \ - "[-c] [-d DATE] FILE [FILE]..." -@@ -4670,8 +4679,7 @@ - #define tr_trivial_usage \ - "[-cds] STRING1 [STRING2]" - #define tr_full_usage "\n\n" \ -- "Translate, squeeze, and/or delete characters from\n" \ -- "standard input, writing to standard output\n" \ -+ "Translate, squeeze, or delete characters from stdin, writing to stdout\n" \ - "\nOptions:" \ - "\n -c Take complement of STRING1" \ - "\n -d Delete input characters coded STRING1" \ -@@ -4693,7 +4701,7 @@ - ) \ - "\n -F Set the don't fragment bit" \ - "\n -I Use ICMP ECHO instead of UDP datagrams" \ -- "\n -l Display the ttl value of the returned packet" \ -+ "\n -l Display the TTL value of the returned packet" \ - "\n -d Set SO_DEBUG options to socket" \ - "\n -n Print numeric addresses" \ - "\n -r Bypass routing tables, send directly to HOST" \ -@@ -4701,7 +4709,7 @@ - "\n -m Max time-to-live (max number of hops)" \ - "\n -p Base UDP port number used in probes" \ - "\n (default 33434)" \ -- "\n -q Number of probes per 'ttl' (default 3)" \ -+ "\n -q Number of probes per TTL (default 3)" \ - "\n -s IP address to use as the source address" \ - "\n -t Type-of-service in probe packets (default 0)" \ - "\n -w Time in seconds to wait for a response (default 3)" \ -@@ -4721,7 +4729,7 @@ - "\n -m Max time-to-live (max number of hops)" \ - "\n -p Base UDP port number used in probes" \ - "\n (default is 33434)" \ -- "\n -q Number of probes per 'ttl' (default 3)" \ -+ "\n -q Number of probes per TTL (default 3)" \ - "\n -s IP address to use as the source address" \ - "\n -t Type-of-service in probe packets (default 0)" \ - "\n -w Time in seconds to wait for a response (default 3)" \ -@@ -4738,7 +4746,7 @@ - #define tty_trivial_usage \ - "" - #define tty_full_usage "\n\n" \ -- "Print file name of standard input's terminal" \ -+ "Print file name of stdin's terminal" \ - IF_INCLUDE_SUSv2( "\n" \ - "\nOptions:" \ - "\n -s Print nothing, only return exit status" \ -@@ -4750,7 +4758,7 @@ - #define ttysize_trivial_usage \ - "[w] [h]" - #define ttysize_full_usage "\n\n" \ -- "Print dimension(s) of standard input's terminal, on error return 80x25" -+ "Print dimension(s) of stdin's terminal, on error return 80x25" - - #define tunctl_trivial_usage \ - "[-f device] ([-t name] | -d name)" IF_FEATURE_TUNCTL_UG(" [-u owner] [-g group] [-b]") -@@ -4894,7 +4902,7 @@ - "Linux debian 2.4.23 #2 Tue Dec 23 17:09:10 MST 2003 i686 GNU/Linux\n" - - #define uncompress_trivial_usage \ -- "[-c] [-f] [FILE...]" -+ "[-c] [-f] [FILE]..." - #define uncompress_full_usage "\n\n" \ - "Uncompress .Z file[s]\n" \ - "\nOptions:" \ -@@ -4904,7 +4912,7 @@ - #define unexpand_trivial_usage \ - "[-f][-a][-t N] [FILE|-]" - #define unexpand_full_usage "\n\n" \ -- "Convert spaces to tabs, writing to standard output\n" \ -+ "Convert spaces to tabs, writing to stdout\n" \ - "\nOptions:" \ - IF_FEATURE_UNEXPAND_LONG_OPTIONS( \ - "\n -a,--all Convert all blanks" \ -@@ -5029,13 +5037,13 @@ - #define wall_trivial_usage \ - "[FILE]" - #define wall_full_usage "\n\n" \ -- "Write content of FILE or standard-input to all logged-in users" -+ "Write content of FILE or stdin to all logged-in users" - #define wall_sample_usage \ - "echo foo | wall\n" \ - "wall ./mymessage" - - #define watch_trivial_usage \ -- "[-n seconds] [-t] PROG [ARGS]" -+ "[-n SEC] [-t] PROG ARGS" - #define watch_full_usage "\n\n" \ - "Run PROG periodically\n" \ - "\nOptions:" \ -@@ -5062,8 +5070,8 @@ - #define wc_trivial_usage \ - "[OPTIONS] [FILE]..." - #define wc_full_usage "\n\n" \ -- "Print line, word, and byte counts for each FILE, and a total line if\n" \ -- "more than one FILE is specified. With no FILE, read standard input.\n" \ -+ "Print line, word, and byte counts for each FILE (or stdin),\n" \ -+ "and a total line if more than one FILE is specified\n" \ - "\nOptions:" \ - "\n -c Print the byte counts" \ - "\n -l Print the newline counts" \ -@@ -5078,7 +5086,7 @@ - IF_FEATURE_WGET_LONG_OPTIONS( \ - "[-c|--continue] [-s|--spider] [-q|--quiet] [-O|--output-document file]\n" \ - " [--header 'header: value'] [-Y|--proxy on/off] [-P DIR]\n" \ -- " [-U|--user-agent agent] url" \ -+ " [--no-check-certificate] [-U|--user-agent agent] url" \ - ) \ - IF_NOT_FEATURE_WGET_LONG_OPTIONS( \ - "[-csq] [-O file] [-Y on/off] [-P DIR] [-U agent] url" \ -@@ -5115,9 +5123,9 @@ - "Print the user name associated with the current effective user id" - - #define xargs_trivial_usage \ -- "[OPTIONS] [PROG [ARGS]]" -+ "[OPTIONS] [PROG ARGS]" - #define xargs_full_usage "\n\n" \ -- "Run PROG on every item given by standard input\n" \ -+ "Run PROG on every item given by stdin\n" \ - "\nOptions:" \ - IF_FEATURE_XARGS_SUPPORT_CONFIRMATION( \ - "\n -p Ask user whether to run each command") \ diff --git a/packages/sysutils/busybox/patches/busybox-1.16.0-wget.diff b/packages/sysutils/busybox/patches/busybox-1.16.0-wget.diff deleted file mode 100644 index 4750a005c1..0000000000 --- a/packages/sysutils/busybox/patches/busybox-1.16.0-wget.diff +++ /dev/null @@ -1,20 +0,0 @@ -diff -urpN busybox-1.16.0/networking/wget.c busybox-1.16.0-wget/networking/wget.c ---- busybox-1.16.0/networking/wget.c 2010-01-25 01:59:38.000000000 +0100 -+++ busybox-1.16.0-wget/networking/wget.c 2010-02-21 01:53:53.000000000 +0100 -@@ -546,6 +546,8 @@ int wget_main(int argc UNUSED_PARAM, cha - "passive-ftp\0" No_argument "\xff" - "header\0" Required_argument "\xfe" - "post-data\0" Required_argument "\xfd" -+ /* Ignored (we don't do ssl) */ -+ "no-check-certificate\0" No_argument "\xfc" - ; - #endif - -@@ -590,6 +592,7 @@ int wget_main(int argc UNUSED_PARAM, cha - if (use_proxy) { - proxy = getenv(target.is_ftp ? "ftp_proxy" : "http_proxy"); - if (proxy && proxy[0]) { -+ server.user = NULL; - parse_url(proxy, &server); - } else { - use_proxy = 0; diff --git a/packages/sysutils/busybox/url b/packages/sysutils/busybox/url index 8c1f69f8fd..a65a94a734 100644 --- a/packages/sysutils/busybox/url +++ b/packages/sysutils/busybox/url @@ -1 +1 @@ -http://busybox.net/downloads/busybox-1.16.0.tar.bz2 \ No newline at end of file +http://busybox.net/downloads/busybox-1.16.1.tar.bz2 \ No newline at end of file From 5aaaad349feb5041ae39bfab9b4bb8931f36abda Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Fri, 9 Apr 2010 00:58:51 +0200 Subject: [PATCH 050/320] busybox: - adding tr command --- packages/sysutils/busybox/config/busybox.conf | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/sysutils/busybox/config/busybox.conf b/packages/sysutils/busybox/config/busybox.conf index 61f94c6c20..fbc148eb71 100644 --- a/packages/sysutils/busybox/config/busybox.conf +++ b/packages/sysutils/busybox/config/busybox.conf @@ -244,9 +244,9 @@ CONFIG_FEATURE_TEE_USE_BLOCK_IO=y CONFIG_TEST=y # CONFIG_FEATURE_TEST_64 is not set CONFIG_TOUCH=y -# CONFIG_TR is not set -# CONFIG_FEATURE_TR_CLASSES is not set -# CONFIG_FEATURE_TR_EQUIV is not set +CONFIG_TR=y +CONFIG_FEATURE_TR_CLASSES=y +CONFIG_FEATURE_TR_EQUIV=y # CONFIG_TRUE is not set # CONFIG_TTY is not set CONFIG_UNAME=y From b71ca9b81fca879cd5b922c6b038ee4961693553 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Fri, 9 Apr 2010 00:59:14 +0200 Subject: [PATCH 051/320] busybox-initramfs: - adding blkid command --- .../sysutils/busybox-initramfs/config/busybox-initramfs.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/sysutils/busybox-initramfs/config/busybox-initramfs.conf b/packages/sysutils/busybox-initramfs/config/busybox-initramfs.conf index 3315152c3d..97cb999e7f 100644 --- a/packages/sysutils/busybox-initramfs/config/busybox-initramfs.conf +++ b/packages/sysutils/busybox-initramfs/config/busybox-initramfs.conf @@ -465,7 +465,7 @@ CONFIG_DEFAULT_DEPMOD_FILE="" # # CONFIG_ACPID is not set # CONFIG_FEATURE_ACPID_COMPAT is not set -# CONFIG_BLKID is not set +CONFIG_BLKID=y # CONFIG_DMESG is not set # CONFIG_FEATURE_DMESG_PRETTY is not set # CONFIG_FBSET is not set From 016744d5f201abb8e56d897c6945633573063c7c Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Fri, 9 Apr 2010 00:59:36 +0200 Subject: [PATCH 052/320] lirc: - update to lirc-20100408 --- packages/sysutils/lirc/url | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/sysutils/lirc/url b/packages/sysutils/lirc/url index 0ada555835..c91a2a893c 100644 --- a/packages/sysutils/lirc/url +++ b/packages/sysutils/lirc/url @@ -1 +1 @@ -http://sources.openelec.tv/svn/lirc-20100402.tar.bz2 +http://sources.openelec.tv/svn/lirc-20100408.tar.bz2 From 3c1545aa393d5aea32476612c058d6ed72de667b Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Fri, 9 Apr 2010 01:00:41 +0200 Subject: [PATCH 053/320] lirc: - fixing build issue with older libtool installed (prevent rerunning of autotools) --- packages/sysutils/lirc/build | 5 ----- 1 file changed, 5 deletions(-) diff --git a/packages/sysutils/lirc/build b/packages/sysutils/lirc/build index 058ece2228..e95c8a4f44 100755 --- a/packages/sysutils/lirc/build +++ b/packages/sysutils/lirc/build @@ -16,11 +16,6 @@ export ac_cv_lib_util_forkpty=no export MAKEFLAGS=-j1 cd $PKG_BUILD - -sed -i -e 's/asoundlib.h/ALSA_DISABLED/g' configure* -sed -i -e 's/portaudio.h/PORTAUDIO_DISABLED/g' configure* -sed -i -e 's/vga.h/SVGALIB_DISABLED/g' configure* - ./configure --host=$TARGET_NAME \ --build=$HOST_NAME \ --prefix=/usr \ From d611af12d5c137e39827bc0d963b015410967201 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Fri, 9 Apr 2010 01:02:07 +0200 Subject: [PATCH 054/320] alsa: - cosmetics --- packages/audio/alsa/install | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/packages/audio/alsa/install b/packages/audio/alsa/install index d6ead8cee1..225d85a800 100755 --- a/packages/audio/alsa/install +++ b/packages/audio/alsa/install @@ -8,5 +8,6 @@ $SCRIPTS/install alsa-lib $SCRIPTS/install alsa-utils mkdir -p $INSTALL/etc/modprobe.d - cp $PKG_DIR/config/alsa-base.conf $INSTALL/etc/modprobe.d - cp $PKG_DIR/config/audio $INSTALL/etc + cp -P $PKG_DIR/config/alsa-base.conf $INSTALL/etc/modprobe.d + cp -P $PKG_DIR/config/audio $INSTALL/etc + From 33071e682307a5bf5f0045468a5600875f8748ab Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Sat, 10 Apr 2010 05:03:20 +0200 Subject: [PATCH 055/320] libcdio: - dont build and install libiconv --- packages/audio/libcdio/build | 1 - packages/audio/libcdio/install | 2 -- 2 files changed, 3 deletions(-) diff --git a/packages/audio/libcdio/build b/packages/audio/libcdio/build index 4fb56d65b8..02bc2a7d6b 100755 --- a/packages/audio/libcdio/build +++ b/packages/audio/libcdio/build @@ -3,7 +3,6 @@ . config/options $SCRIPTS/build toolchain -$SCRIPTS/build libiconv cd $PKG_BUILD ./configure --host=$TARGET_NAME \ diff --git a/packages/audio/libcdio/install b/packages/audio/libcdio/install index 845eeba9f5..47eda43f0c 100755 --- a/packages/audio/libcdio/install +++ b/packages/audio/libcdio/install @@ -2,7 +2,5 @@ . config/options -$SCRIPTS/install libiconv - mkdir -p $INSTALL/usr/lib cp -P $PKG_BUILD/lib/*/.libs/*.so*[.0-9] $INSTALL/usr/lib From 81aba126862e0c4332ac2e7f82cb670f4df22490 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Sat, 10 Apr 2010 05:04:11 +0200 Subject: [PATCH 056/320] libiconv: - remove package libiconv (replaced by eglibc iconv implementation) --- packages/converters/libiconv/build | 20 -------------------- packages/converters/libiconv/install | 8 -------- packages/converters/libiconv/url | 1 - 3 files changed, 29 deletions(-) delete mode 100755 packages/converters/libiconv/build delete mode 100755 packages/converters/libiconv/install delete mode 100644 packages/converters/libiconv/url diff --git a/packages/converters/libiconv/build b/packages/converters/libiconv/build deleted file mode 100755 index c5c528dab6..0000000000 --- a/packages/converters/libiconv/build +++ /dev/null @@ -1,20 +0,0 @@ -#!/bin/sh - -. config/options - -$SCRIPTS/build toolchain -$SCRIPTS/build gettext - -cd $PKG_BUILD -./configure --host=$TARGET_NAME \ - --build=$HOST_NAME \ - --prefix=/usr \ - --sysconfdir=/etc \ - --disable-static \ - --enable-shared \ - --disable-nls \ - --enable-extra-encodings - -make - -$MAKEINSTALL diff --git a/packages/converters/libiconv/install b/packages/converters/libiconv/install deleted file mode 100755 index 2b7130df6f..0000000000 --- a/packages/converters/libiconv/install +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/sh - -. config/options - -$SCRIPTS/install gettext - -mkdir -p $INSTALL/usr/lib -cp -PR $PKG_BUILD/lib/.libs/*.so* $INSTALL/usr/lib diff --git a/packages/converters/libiconv/url b/packages/converters/libiconv/url deleted file mode 100644 index 33b5b0d816..0000000000 --- a/packages/converters/libiconv/url +++ /dev/null @@ -1 +0,0 @@ -http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.13.1.tar.gz \ No newline at end of file From 8e7c11158574466e412853e786c1be15d6d48573 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Sat, 10 Apr 2010 05:04:51 +0200 Subject: [PATCH 057/320] gettext: - remove gettext (replaced by eglibc libintl) --- packages/devel/gettext/build | 21 -------------- packages/devel/gettext/install | 7 ----- .../devel/gettext/patches/10_gnulib-fix.diff | 29 ------------------- packages/devel/gettext/url | 1 - 4 files changed, 58 deletions(-) delete mode 100755 packages/devel/gettext/build delete mode 100755 packages/devel/gettext/install delete mode 100644 packages/devel/gettext/patches/10_gnulib-fix.diff delete mode 100644 packages/devel/gettext/url diff --git a/packages/devel/gettext/build b/packages/devel/gettext/build deleted file mode 100755 index b9bd49f511..0000000000 --- a/packages/devel/gettext/build +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/sh - -. config/options - -$SCRIPTS/build toolchain - -cd $PKG_BUILD/gettext-runtime -./configure --host=$TARGET_NAME \ - --build=$HOST_NAME \ - --prefix=/usr \ - --with-included-gettext \ - --disable-static \ - --enable-shared \ - --disable-dependency-tracking \ - --disable-java \ - --disable-native-java \ - --disable-libasprintf - -make - -$MAKEINSTALL diff --git a/packages/devel/gettext/install b/packages/devel/gettext/install deleted file mode 100755 index 2761bef890..0000000000 --- a/packages/devel/gettext/install +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/sh - -. config/options - -mkdir -p $INSTALL/usr/lib - cp -PR $PKG_BUILD/gettext-runtime/intl/.libs/libintl.so* $INSTALL/usr/lib - cp -PR $PKG_BUILD/gettext-runtime/intl/charset.alias $INSTALL/usr/lib diff --git a/packages/devel/gettext/patches/10_gnulib-fix.diff b/packages/devel/gettext/patches/10_gnulib-fix.diff deleted file mode 100644 index 8ee9c15558..0000000000 --- a/packages/devel/gettext/patches/10_gnulib-fix.diff +++ /dev/null @@ -1,29 +0,0 @@ -diff -Naur gettext-0.17/gettext-runtime/gnulib-lib/mbchar.h gettext-0.17a/gettext-runtime/gnulib-lib/mbchar.h ---- gettext-0.17/gettext-runtime/gnulib-lib/mbchar.h 2007-10-07 22:28:16.000000000 +0200 -+++ gettext-0.17a/gettext-runtime/gnulib-lib/mbchar.h 2009-05-17 10:09:49.000000000 +0200 -@@ -147,6 +147,8 @@ - #include - #include - -+typedef unsigned int wint_t; -+ - /* Tru64 with Desktop Toolkit C has a bug: must be included before - . - BSD/OS 4.1 has a bug: and must be included before -diff -Naur gettext-0.17/gettext-runtime/gnulib-lib/wchar.in.h gettext-0.17a/gettext-runtime/gnulib-lib/wchar.in.h ---- gettext-0.17/gettext-runtime/gnulib-lib/wchar.in.h 2007-10-04 00:23:31.000000000 +0200 -+++ gettext-0.17a/gettext-runtime/gnulib-lib/wchar.in.h 2009-05-17 10:15:26.000000000 +0200 -@@ -41,7 +41,7 @@ - /* The include_next requires a split double-inclusion guard. */ - #if @HAVE_WCHAR_H@ - # @INCLUDE_NEXT@ @NEXT_WCHAR_H@ --#endif -+#else - - #ifndef _GL_WCHAR_H - #define _GL_WCHAR_H -@@ -80,3 +80,4 @@ - - #endif /* _GL_WCHAR_H */ - #endif /* _GL_WCHAR_H */ -+#endif diff --git a/packages/devel/gettext/url b/packages/devel/gettext/url deleted file mode 100644 index 3477c1a658..0000000000 --- a/packages/devel/gettext/url +++ /dev/null @@ -1 +0,0 @@ -http://ftp.gnu.org/pub/gnu/gettext/gettext-0.17.tar.gz From e6a8c2a9b48f85a794602b8a0b89363bbec44770 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Sat, 10 Apr 2010 05:05:16 +0200 Subject: [PATCH 058/320] dbus-glib: - dont build and install gettext --- packages/devel/dbus-glib/build | 1 - packages/devel/dbus-glib/install | 3 +-- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/packages/devel/dbus-glib/build b/packages/devel/dbus-glib/build index 956d84ae6d..cb2056ab21 100755 --- a/packages/devel/dbus-glib/build +++ b/packages/devel/dbus-glib/build @@ -3,7 +3,6 @@ . config/options $SCRIPTS/build toolchain -$SCRIPTS/build gettext $SCRIPTS/build dbus $SCRIPTS/build glib $SCRIPTS/build expat diff --git a/packages/devel/dbus-glib/install b/packages/devel/dbus-glib/install index 1529928e44..fb8c31a5f3 100755 --- a/packages/devel/dbus-glib/install +++ b/packages/devel/dbus-glib/install @@ -5,7 +5,6 @@ $SCRIPTS/install dbus $SCRIPTS/install glib $SCRIPTS/install expat -$SCRIPTS/install gettext mkdir -p $INSTALL/usr/lib -cp -PR $PKG_BUILD/.build-target/dbus/.libs/*.so* $INSTALL/usr/lib + cp -P $PKG_BUILD/.build-target/dbus/.libs/*.so* $INSTALL/usr/lib From f2ee6d451692fd8ad9f9f1dc385aedf813e2fc99 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Sat, 10 Apr 2010 05:05:34 +0200 Subject: [PATCH 059/320] glib: - dont build and install libiconv --- packages/devel/glib/build | 5 +++-- packages/devel/glib/install | 4 ++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/packages/devel/glib/build b/packages/devel/glib/build index 39c29204ee..241160eea4 100755 --- a/packages/devel/glib/build +++ b/packages/devel/glib/build @@ -3,7 +3,7 @@ . config/options $SCRIPTS/build toolchain -$SCRIPTS/build libiconv +#$SCRIPTS/build libiconv $SCRIPTS/build zlib $SCRIPTS/build glib-host @@ -31,11 +31,12 @@ glib_cv_stack_grows='no' \ --enable-regex \ --with-gnu-ld \ --with-threads=posix \ - --with-libiconv=gnu \ --disable-man \ --disable-rebuilds \ --disable-gtk-doc \ +# --with-libiconv=gnu \ + make $MAKEINSTALL diff --git a/packages/devel/glib/install b/packages/devel/glib/install index 73f0bfff82..bd21ae602e 100755 --- a/packages/devel/glib/install +++ b/packages/devel/glib/install @@ -3,8 +3,8 @@ . config/options $SCRIPTS/install zlib -$SCRIPTS/install libiconv +#$SCRIPTS/install libiconv mkdir -p $INSTALL/usr/lib cp -P `find $PKG_BUILD/.build-target/g{lib,module,object,thread,io} -name *.so*` $INSTALL/usr/lib - rm -rf $INSTALL/usr/lib/libg{lib,module,object,thread,io}*.so*T \ No newline at end of file + rm -rf $INSTALL/usr/lib/libg{lib,module,object,thread,io}*.so*T From 5faedc2a37ab52e2074eb4e629bbcf95d18344ef Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Sat, 10 Apr 2010 05:06:09 +0200 Subject: [PATCH 060/320] avahi: - dont build and install gettext --- packages/network/avahi/build | 4 ---- packages/network/avahi/install | 1 - 2 files changed, 5 deletions(-) diff --git a/packages/network/avahi/build b/packages/network/avahi/build index 37529b5986..d252814c5a 100755 --- a/packages/network/avahi/build +++ b/packages/network/avahi/build @@ -4,14 +4,10 @@ $SCRIPTS/build toolchain $SCRIPTS/build expat -$SCRIPTS/build gettext $SCRIPTS/build libdaemon $SCRIPTS/build dbus cd $PKG_BUILD - -export LDFLAGS="$LDFLAGS -lintl" - py_cv_mod_gtk_=yes \ py_cv_mod_dbus_=yes \ ./configure --host=$TARGET_NAME \ diff --git a/packages/network/avahi/install b/packages/network/avahi/install index e81f1dd6e0..9b7d3c62c3 100755 --- a/packages/network/avahi/install +++ b/packages/network/avahi/install @@ -4,7 +4,6 @@ $SCRIPTS/install expat $SCRIPTS/install libdaemon -$SCRIPTS/install gettext $SCRIPTS/install dbus PKG_DIR=`find $PACKAGES -type d -name $1` From 2e02541f3aea1866fc86617e4243c11e9a679c4d Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Sat, 10 Apr 2010 05:06:30 +0200 Subject: [PATCH 061/320] connman: - dont build and install gettext --- packages/network/connman/build | 1 - packages/network/connman/install | 1 - 2 files changed, 2 deletions(-) diff --git a/packages/network/connman/build b/packages/network/connman/build index d98b891fb8..1a60aae188 100755 --- a/packages/network/connman/build +++ b/packages/network/connman/build @@ -7,7 +7,6 @@ $SCRIPTS/build dbus $SCRIPTS/build udev $SCRIPTS/build busybox #$SCRIPTS/build bluez -$SCRIPTS/build gettext cd $PKG_BUILD diff --git a/packages/network/connman/install b/packages/network/connman/install index 341e00b080..14a0a573eb 100755 --- a/packages/network/connman/install +++ b/packages/network/connman/install @@ -6,7 +6,6 @@ $SCRIPTS/install dbus $SCRIPTS/install udev #$SCRIPTS/install bluez $SCRIPTS/install wpa_supplicant -$SCRIPTS/install gettext PKG_DIR=`find $PACKAGES -type d -name $1` From d335f29ac79a29ae839642af98a4fb4c55b2bdde Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Sat, 10 Apr 2010 05:06:45 +0200 Subject: [PATCH 062/320] samba: - dont build and install libiconv --- packages/network/samba/build | 2 -- packages/network/samba/install | 1 - 2 files changed, 3 deletions(-) diff --git a/packages/network/samba/build b/packages/network/samba/build index 107e51ea77..e8f84a0249 100755 --- a/packages/network/samba/build +++ b/packages/network/samba/build @@ -3,7 +3,6 @@ . config/options $SCRIPTS/build toolchain -$SCRIPTS/build libiconv $SCRIPTS/build avahi export samba_cv_CC_NEGATIVE_ENUM_VALUES=no @@ -34,7 +33,6 @@ cd $PKG_BUILD/source3 --without-quotas \ --without-sys-quotas \ --with-syslog \ - --with-libiconv=$SYSROOT_PREFIX/usr \ make bin/libsmbclient.so \ bin/smbd diff --git a/packages/network/samba/install b/packages/network/samba/install index 832675f90e..69c96c2cf4 100755 --- a/packages/network/samba/install +++ b/packages/network/samba/install @@ -2,7 +2,6 @@ . config/options -$SCRIPTS/install libiconv $SCRIPTS/install avahi PKG_DIR=`find $PACKAGES -type d -name $1` From f496042149570f4b068dda34af0c125bffaa9d3e Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Sat, 10 Apr 2010 05:07:04 +0200 Subject: [PATCH 063/320] Linux-PAM: - dont build and install gettext --- packages/security/Linux-PAM/build | 2 -- packages/security/Linux-PAM/install | 1 - 2 files changed, 3 deletions(-) diff --git a/packages/security/Linux-PAM/build b/packages/security/Linux-PAM/build index 7ab7f3df43..661bdbdba9 100755 --- a/packages/security/Linux-PAM/build +++ b/packages/security/Linux-PAM/build @@ -4,10 +4,8 @@ $SCRIPTS/build toolchain $SCRIPTS/build flex -$SCRIPTS/build gettext cd $PKG_BUILD -LDFLAGS="$LDFLAGS -lintl" \ ./configure --host=$TARGET_NAME \ --build=$HOST_NAME \ --prefix=/usr \ diff --git a/packages/security/Linux-PAM/install b/packages/security/Linux-PAM/install index 2ce7d104d7..d170a06435 100755 --- a/packages/security/Linux-PAM/install +++ b/packages/security/Linux-PAM/install @@ -2,7 +2,6 @@ . config/options -$SCRIPTS/install gettext PKG_DIR=`find $PACKAGES -type d -name $1` From edbf7daecdcb1ecb1817851f5179ce6d64d4cae3 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Sat, 10 Apr 2010 05:07:29 +0200 Subject: [PATCH 064/320] hal: - dont build and install gettext --- packages/sysutils/hal/build | 1 - packages/sysutils/hal/install | 1 - 2 files changed, 2 deletions(-) diff --git a/packages/sysutils/hal/build b/packages/sysutils/hal/build index 1d64ee2b6c..47317d4832 100755 --- a/packages/sysutils/hal/build +++ b/packages/sysutils/hal/build @@ -3,7 +3,6 @@ . config/options $SCRIPTS/build toolchain -$SCRIPTS/build gettext $SCRIPTS/build pciutils $SCRIPTS/build udev $SCRIPTS/build expat diff --git a/packages/sysutils/hal/install b/packages/sysutils/hal/install index bc6049dee5..ad17e14996 100755 --- a/packages/sysutils/hal/install +++ b/packages/sysutils/hal/install @@ -7,7 +7,6 @@ $SCRIPTS/install glib $SCRIPTS/install udev $SCRIPTS/install dbus $SCRIPTS/install dbus-glib -$SCRIPTS/install gettext $SCRIPTS/install util-linux-ng add_user haldaemon x 68 68 "HAL daemon" "/" "/bin/sh" From 942aff40dc8bbbfc5ab034f73a6fb22cd7426fca Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Sat, 10 Apr 2010 05:07:59 +0200 Subject: [PATCH 065/320] udisks: - update to udisks-1.0.1 --- packages/sysutils/udisks/url | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/sysutils/udisks/url b/packages/sysutils/udisks/url index d216af1117..91ff561e1a 100644 --- a/packages/sysutils/udisks/url +++ b/packages/sysutils/udisks/url @@ -1 +1 @@ -http://hal.freedesktop.org/releases/udisks-1.0.0.tar.gz \ No newline at end of file +http://hal.freedesktop.org/releases/udisks-1.0.1.tar.gz From 6935d8ee0a471feb0e026550bc21d006b7637d9c Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Sat, 10 Apr 2010 05:08:22 +0200 Subject: [PATCH 066/320] libxml2: - dont build and install libiconv --- packages/textproc/libxml2/build | 1 - packages/textproc/libxml2/install | 2 -- 2 files changed, 3 deletions(-) diff --git a/packages/textproc/libxml2/build b/packages/textproc/libxml2/build index 5d26780905..d0dae65d24 100755 --- a/packages/textproc/libxml2/build +++ b/packages/textproc/libxml2/build @@ -3,7 +3,6 @@ . config/options $SCRIPTS/build toolchain -$SCRIPTS/build libiconv cd $PKG_BUILD ./configure --host=$TARGET_NAME \ diff --git a/packages/textproc/libxml2/install b/packages/textproc/libxml2/install index d942db1c04..e8fabc9194 100755 --- a/packages/textproc/libxml2/install +++ b/packages/textproc/libxml2/install @@ -2,7 +2,5 @@ . config/options -$SCRIPTS/install libiconv - mkdir -p $INSTALL/usr/lib cp -PR $PKG_BUILD/.libs/libxml2*.so* $INSTALL/usr/lib From e5e081e011650d1aa18273102cb0cebb67357781 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Sat, 10 Apr 2010 05:08:57 +0200 Subject: [PATCH 067/320] eglibc: - update to eglibc-2.11-10215 --- packages/toolchain/devel/eglibc/url | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/toolchain/devel/eglibc/url b/packages/toolchain/devel/eglibc/url index 74be89e0b1..7ed3ee8bf5 100644 --- a/packages/toolchain/devel/eglibc/url +++ b/packages/toolchain/devel/eglibc/url @@ -1 +1 @@ -http://sources.openelec.tv/svn/eglibc-2.11-9989.tar.bz2 +http://sources.openelec.tv/svn/eglibc-2.11-10215.tar.bz2 From 6187466085b534abe03199b1a0ea127b97ab4201 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Sat, 10 Apr 2010 05:10:25 +0200 Subject: [PATCH 068/320] eglibc: - enable CHARSET option (iconv replacement) - cosmetics - install iconvdata and locale-bin --- packages/toolchain/devel/eglibc/build | 8 ++++---- packages/toolchain/devel/eglibc/install | 8 ++++++++ 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/packages/toolchain/devel/eglibc/build b/packages/toolchain/devel/eglibc/build index 1b1315f75d..52c3477f78 100755 --- a/packages/toolchain/devel/eglibc/build +++ b/packages/toolchain/devel/eglibc/build @@ -38,16 +38,16 @@ libc_cv_gnu89_inline=yes libc_cv_ssp=no EOF -# needed by glib: OPTION_EGLIBC_LOCALE_CODE = y -# needed by PAM: OPTION_EGLIBC_GETLOGIN = y -# needed by PAM: OPTION_EGLIBC_UTMP = y +# needed by glib: OPTION_EGLIBC_LOCALE_CODE = y +# needed by PAM: OPTION_EGLIBC_GETLOGIN = y +# needed by PAM: OPTION_EGLIBC_UTMP = y +# libiconv replacement: OPTION_EGLIBC_CHARSETS = y cat >options-groups.conf < Date: Sat, 10 Apr 2010 14:32:58 +0200 Subject: [PATCH 069/320] bootchart: - update to bootchart-1.3 --- packages/debug/bootchart/url | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/debug/bootchart/url b/packages/debug/bootchart/url index 1e4795cfa5..9f486407a1 100644 --- a/packages/debug/bootchart/url +++ b/packages/debug/bootchart/url @@ -1 +1 @@ -http://sources.openelec.tv/svn/bootchart-1.2.tar.gz +http://sources.openelec.tv/svn/bootchart-1.3.tar.gz From 035c976d12d1a5ff584d1fed3a9b2bad16f49352 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Sat, 10 Apr 2010 14:33:18 +0200 Subject: [PATCH 070/320] dbus-glib: - update to dbus-glib-0.86 --- packages/devel/dbus-glib/url | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/devel/dbus-glib/url b/packages/devel/dbus-glib/url index cb77011388..9d9d13698c 100644 --- a/packages/devel/dbus-glib/url +++ b/packages/devel/dbus-glib/url @@ -1 +1 @@ -http://dbus.freedesktop.org/releases/dbus-glib/dbus-glib-0.82.tar.gz +http://dbus.freedesktop.org/releases/dbus-glib/dbus-glib-0.86.tar.gz From 2ddbc02a7c67dc26f072642eb1640e185a0a1159 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Sat, 10 Apr 2010 14:34:05 +0200 Subject: [PATCH 071/320] xbmc: - temporary dont install udisks and ConsoleKit --- packages/mediacenter/xbmc/install | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/mediacenter/xbmc/install b/packages/mediacenter/xbmc/install index 532da929e0..a010f9ea7f 100755 --- a/packages/mediacenter/xbmc/install +++ b/packages/mediacenter/xbmc/install @@ -16,8 +16,8 @@ $SCRIPTS/install libssh $SCRIPTS/install dbus $SCRIPTS/install hal -$SCRIPTS/install udisks -$SCRIPTS/install ConsoleKit +#$SCRIPTS/install udisks +#$SCRIPTS/install ConsoleKit $SCRIPTS/install libXt $SCRIPTS/install libXtst From 7b2867484b025e0c74e353c219c28813384ec6db Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Sat, 10 Apr 2010 14:34:36 +0200 Subject: [PATCH 072/320] wpa_supplicant: - update to wpa_supplicant-0.7.1 - cosmetics --- packages/network/wpa_supplicant/install | 3 +-- packages/network/wpa_supplicant/url | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/packages/network/wpa_supplicant/install b/packages/network/wpa_supplicant/install index 41505dba3a..5ea76c12f3 100755 --- a/packages/network/wpa_supplicant/install +++ b/packages/network/wpa_supplicant/install @@ -3,5 +3,4 @@ . config/options mkdir -p $INSTALL/usr/bin - -cp $PKG_BUILD/wpa_supplicant/wpa_supplicant $INSTALL/usr/bin + cp -P $PKG_BUILD/wpa_supplicant/wpa_supplicant $INSTALL/usr/bin diff --git a/packages/network/wpa_supplicant/url b/packages/network/wpa_supplicant/url index f2c581a140..6c7c4a6ca3 100644 --- a/packages/network/wpa_supplicant/url +++ b/packages/network/wpa_supplicant/url @@ -1 +1 @@ -http://hostap.epitest.fi/releases/wpa_supplicant-0.6.9.tar.gz +http://hostap.epitest.fi/releases/wpa_supplicant-0.7.1.tar.gz From ef799188d86b86111e2bdec2dfb5b0136c6c453e Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Sat, 10 Apr 2010 14:35:12 +0200 Subject: [PATCH 073/320] uxlaunch: - update to uxlaunch-0.50 --- .../uxlaunch-add_xconfig_option-0.1.diff | 20 +++++++++---------- packages/x11/other/uxlaunch/url | 2 +- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/packages/x11/other/uxlaunch/patches/uxlaunch-add_xconfig_option-0.1.diff b/packages/x11/other/uxlaunch/patches/uxlaunch-add_xconfig_option-0.1.diff index 66a8425e46..95cabd1f74 100644 --- a/packages/x11/other/uxlaunch/patches/uxlaunch-add_xconfig_option-0.1.diff +++ b/packages/x11/other/uxlaunch/patches/uxlaunch-add_xconfig_option-0.1.diff @@ -1,10 +1,10 @@ -diff -Naur uxlaunch-0.46/options.c uxlaunch-0.46.patch/options.c ---- uxlaunch-0.46/options.c 2010-03-04 19:51:44.000000000 +0100 -+++ uxlaunch-0.46.patch/options.c 2010-03-21 14:07:15.273504664 +0100 +diff -Naur uxlaunch-0.50/options.c uxlaunch-0.50.patch/options.c +--- uxlaunch-0.50/options.c 2010-04-07 20:32:53.000000000 +0200 ++++ uxlaunch-0.50.patch/options.c 2010-04-10 14:20:36.408482887 +0200 @@ -27,6 +27,7 @@ int tty = 2; char session[256] = "/usr/bin/mutter --sm-disable"; - char username[256] = "moblin"; + char username[256] = "meego"; +char xconfig[256] = "/etc/X11/xorg.conf"; int verbose = 0; @@ -61,9 +61,9 @@ diff -Naur uxlaunch-0.46/options.c uxlaunch-0.46.patch/options.c pass = getpwnam(username); if (!pass) -diff -Naur uxlaunch-0.46/uxlaunch.h uxlaunch-0.46.patch/uxlaunch.h ---- uxlaunch-0.46/uxlaunch.h 2010-03-04 19:51:44.000000000 +0100 -+++ uxlaunch-0.46.patch/uxlaunch.h 2010-03-21 14:09:01.116504932 +0100 +diff -Naur uxlaunch-0.50/uxlaunch.h uxlaunch-0.50.patch/uxlaunch.h +--- uxlaunch-0.50/uxlaunch.h 2010-04-07 20:32:53.000000000 +0200 ++++ uxlaunch-0.50.patch/uxlaunch.h 2010-04-10 14:18:29.327483352 +0200 @@ -19,6 +19,7 @@ extern int tty; extern char session[]; @@ -72,9 +72,9 @@ diff -Naur uxlaunch-0.46/uxlaunch.h uxlaunch-0.46.patch/uxlaunch.h extern int session_pid; extern int xpid; -diff -Naur uxlaunch-0.46/xserver.c uxlaunch-0.46.patch/xserver.c ---- uxlaunch-0.46/xserver.c 2010-03-04 19:51:44.000000000 +0100 -+++ uxlaunch-0.46.patch/xserver.c 2010-03-21 14:07:43.871631141 +0100 +diff -Naur uxlaunch-0.50/xserver.c uxlaunch-0.50.patch/xserver.c +--- uxlaunch-0.50/xserver.c 2010-04-07 20:32:53.000000000 +0200 ++++ uxlaunch-0.50.patch/xserver.c 2010-04-10 14:18:29.334358167 +0200 @@ -231,13 +231,13 @@ execl(xserver, xserver, displayname, "-nolisten", "tcp", "-dpi", "120", "-noreset", diff --git a/packages/x11/other/uxlaunch/url b/packages/x11/other/uxlaunch/url index 6876470c93..b4d84fd19d 100644 --- a/packages/x11/other/uxlaunch/url +++ b/packages/x11/other/uxlaunch/url @@ -1 +1 @@ -http://git.moblin.org/cgit.cgi/uxlaunch/snapshot/uxlaunch-0.46.tar.bz2 \ No newline at end of file +http://sources.openelec.tv/svn/uxlaunch-0.50.tar.gz \ No newline at end of file From 650340a7748b2b389a94e466afd18f84e90516c5 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Mon, 12 Apr 2010 01:02:04 +0200 Subject: [PATCH 074/320] xbmc: - install udisks and ConsoleKit --- packages/mediacenter/xbmc/install | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/mediacenter/xbmc/install b/packages/mediacenter/xbmc/install index a010f9ea7f..532da929e0 100755 --- a/packages/mediacenter/xbmc/install +++ b/packages/mediacenter/xbmc/install @@ -16,8 +16,8 @@ $SCRIPTS/install libssh $SCRIPTS/install dbus $SCRIPTS/install hal -#$SCRIPTS/install udisks -#$SCRIPTS/install ConsoleKit +$SCRIPTS/install udisks +$SCRIPTS/install ConsoleKit $SCRIPTS/install libXt $SCRIPTS/install libXtst From f147bc2114f1ffc31b973e344d17e063b420a90e Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Mon, 12 Apr 2010 01:02:38 +0200 Subject: [PATCH 075/320] udev: - install rule for probing filesystem metadata --- packages/sysutils/udev/config/60-filesystem-info.rules | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 packages/sysutils/udev/config/60-filesystem-info.rules diff --git a/packages/sysutils/udev/config/60-filesystem-info.rules b/packages/sysutils/udev/config/60-filesystem-info.rules new file mode 100644 index 0000000000..2fbe75fb42 --- /dev/null +++ b/packages/sysutils/udev/config/60-filesystem-info.rules @@ -0,0 +1,3 @@ +# probe filesystem metadata of disks +KERNEL!="sr*", IMPORT{program}="/sbin/blkid -o udev -p $tempnode" + From 33adb9312dfc1518eff52103e3d1c85ed6670c62 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Mon, 12 Apr 2010 01:03:17 +0200 Subject: [PATCH 076/320] util-linux-ng: - install blkid programm to /sbin - install sfdisk --- packages/sysutils/util-linux-ng/install | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/sysutils/util-linux-ng/install b/packages/sysutils/util-linux-ng/install index 0a982185b7..5c6656c51c 100755 --- a/packages/sysutils/util-linux-ng/install +++ b/packages/sysutils/util-linux-ng/install @@ -6,12 +6,12 @@ mkdir -p $INSTALL/bin cp $PKG_BUILD/mount/.libs/mount $INSTALL/bin cp $PKG_BUILD/mount/.libs/umount $INSTALL/bin +mkdir -p $INSTALL/sbin + cp $PKG_BUILD/fdisk/sfdisk $INSTALL/sbin + cp $PKG_BUILD/misc-utils/.libs/blkid $INSTALL/sbin + mkdir -p $INSTALL/usr/lib cp -PR $PKG_BUILD/shlibs/blkid/src/.libs/libblkid.so* $INSTALL/usr/lib rm -rf $INSTALL/usr/lib/libblkid.so*T cp -PR $PKG_BUILD/shlibs/uuid/src/.libs/libuuid.so* $INSTALL/usr/lib rm -rf $INSTALL/usr/lib/libuuid.so*T - -mkdir -p $INSTALL/usr/bin -# cp $PKG_BUILD/fdisk/sfdisk $INSTALL/usr/bin - cp $PKG_BUILD/misc-utils/.libs/blkid $INSTALL/usr/bin From 70fc13f79fefc73380428814b49696b8c0526510 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Mon, 12 Apr 2010 01:04:08 +0200 Subject: [PATCH 077/320] udisks - adding quick and dirty automounter init script for fixed drives --- .../sysutils/udisks/init.d/14_mount-disks | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100755 packages/sysutils/udisks/init.d/14_mount-disks diff --git a/packages/sysutils/udisks/init.d/14_mount-disks b/packages/sysutils/udisks/init.d/14_mount-disks new file mode 100755 index 0000000000..509a971541 --- /dev/null +++ b/packages/sysutils/udisks/init.d/14_mount-disks @@ -0,0 +1,25 @@ +# +# automount internal disks +# +# runlevels: openelec, textmode + +progress "automount internal disks" + + drive_dump () { + udisks --dump | tr -d ' ' | grep 'device-file:' | cut -d ':' -f2 + } + + show_info () { + udisks --show-info $2 | grep "$1:" | tr -d ' ' | cut -d ":" -f2 + } + + for DEVICE in `drive_dump`; do + REMOVABLE="`show_info "removable" $DEVICE`" + MOUNTED="`show_info "is mounted" $DEVICE`" + USAGE="`show_info "usage" $DEVICE`" + + if [ "$REMOVABLE" = "0" -a "$MOUNTED" = "0" -a "$USAGE" = "filesystem" ]; then + udisks --mount "$DEVICE" >/dev/null + fi + + done \ No newline at end of file From b35c7f45345b5a18ec7cbb3ca374774844101cc5 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Mon, 12 Apr 2010 13:13:14 +0200 Subject: [PATCH 078/320] busybox: - adding script for showing versions information --- packages/image/install | 1 - packages/sysutils/busybox/install | 1 + packages/sysutils/busybox/scripts/lsb-release | 4 ++++ 3 files changed, 5 insertions(+), 1 deletion(-) create mode 100755 packages/sysutils/busybox/scripts/lsb-release diff --git a/packages/image/install b/packages/image/install index 0c227b4f13..b309cac1ae 100755 --- a/packages/image/install +++ b/packages/image/install @@ -60,7 +60,6 @@ case "$2" in echo $TARGET_ARCH > $INSTALL/etc/arch echo "$OPENELEC_VERSION" > $INSTALL/etc/version echo "OpenELEC.tv - Date of build: $BUILD_DATE Build: $BZR_BUILD" > $INSTALL/etc/openelec-release - echo "OpenELEC.tv - Date of build: $BUILD_DATE Build: $BZR_BUILD" > $INSTALL/etc/lsb-release # Network support [ "$NETWORK" = yes ] && $SCRIPTS/install network diff --git a/packages/sysutils/busybox/install b/packages/sysutils/busybox/install index aa527b7ccd..e1cbedebc0 100755 --- a/packages/sysutils/busybox/install +++ b/packages/sysutils/busybox/install @@ -21,6 +21,7 @@ USER_PWD="`$ROOT/$TOOLCHAIN/bin/cryptpw $USER_PASSWORD`" mkdir -p $INSTALL/bin ln -sf /bin/sh $INSTALL/bin/bash + cp $PKG_DIR/scripts/lsb-release $INSTALL/bin/ mkdir -p $INSTALL/sbin cp $PKG_DIR/scripts/init $INSTALL/sbin/ diff --git a/packages/sysutils/busybox/scripts/lsb-release b/packages/sysutils/busybox/scripts/lsb-release new file mode 100755 index 0000000000..26d69d8a4f --- /dev/null +++ b/packages/sysutils/busybox/scripts/lsb-release @@ -0,0 +1,4 @@ +#!/bin/sh + +# show release information + echo `cat /etc/openelec-release` \ No newline at end of file From 570e126f5bcb773168cfd987043e31ebaf68caeb Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Mon, 12 Apr 2010 13:14:20 +0200 Subject: [PATCH 079/320] xbmc: - adding pythin scripts for using event server - install xbmc-send script - cosmetics --- packages/mediacenter/xbmc/install | 29 +++++++++++++++++------------ 1 file changed, 17 insertions(+), 12 deletions(-) diff --git a/packages/mediacenter/xbmc/install b/packages/mediacenter/xbmc/install index 532da929e0..a750782972 100755 --- a/packages/mediacenter/xbmc/install +++ b/packages/mediacenter/xbmc/install @@ -64,23 +64,25 @@ $SCRIPTS/install mysql $SCRIPTS/install samba PKG_DIR=`find $PACKAGES -type d -name $1` +PYTHON_LIBDIR="`ls -d $INSTALL/usr/lib/python*`" mkdir -p $INSTALL/usr/bin - cp -PR $PKG_DIR/scripts/xbmc-session $INSTALL/usr/bin + cp -P $PKG_DIR/scripts/xbmc-session $INSTALL/usr/bin + cp -P $PKG_BUILD/tools/EventClients/Clients/XBMC\ Send/xbmc-send.py $INSTALL/usr/bin/xbmc-send mkdir -p $INSTALL/usr/share/xbmc - cp -PR $PKG_BUILD/xbmc.bin $INSTALL/usr/share/xbmc - cp -PR $PKG_BUILD/xbmc-xrandr $INSTALL/usr/share/xbmc + cp -P $PKG_BUILD/xbmc.bin $INSTALL/usr/share/xbmc + cp -P $PKG_BUILD/xbmc-xrandr $INSTALL/usr/share/xbmc mkdir -p $INSTALL/usr/share/xbmc/language cp -PR $PKG_BUILD/language/* $INSTALL/usr/share/xbmc/language mkdir -p $INSTALL/usr/share/xbmc/media/Fonts - cp -PR $PKG_BUILD/media/Fonts/*.ttf $INSTALL/usr/share/xbmc/media/Fonts + cp -P $PKG_BUILD/media/Fonts/*.ttf $INSTALL/usr/share/xbmc/media/Fonts mkdir -p $INSTALL/usr/share/xbmc/media - cp -PR $PKG_BUILD/media/weather.zip $INSTALL/usr/share/xbmc/media/ - cp -PR $PKG_BUILD/media/icon.png $INSTALL/usr/share/xbmc/media/ + cp -P $PKG_BUILD/media/weather.zip $INSTALL/usr/share/xbmc/media/ + cp -P $PKG_BUILD/media/icon.png $INSTALL/usr/share/xbmc/media/ mkdir -p $INSTALL/usr/share/xbmc/skin @@ -88,22 +90,22 @@ mkdir -p $INSTALL/usr/share/xbmc/sounds cp -PR $PKG_BUILD/sounds/* $INSTALL/usr/share/xbmc/sounds mkdir -p $INSTALL/usr/share/xbmc/system - cp -PR $PKG_BUILD/system/*linux.so $INSTALL/usr/share/xbmc/system - cp -PR $PKG_BUILD/system/*.xml $INSTALL/usr/share/xbmc/system - cp -PR $PKG_BUILD/system/*.conf $INSTALL/usr/share/xbmc/system + cp -P $PKG_BUILD/system/*linux.so $INSTALL/usr/share/xbmc/system + cp -P $PKG_BUILD/system/*.xml $INSTALL/usr/share/xbmc/system + cp -P $PKG_BUILD/system/*.conf $INSTALL/usr/share/xbmc/system mkdir -p $INSTALL/usr/share/xbmc/system/keymaps cp -PR $PKG_BUILD/system/keymaps/* $INSTALL/usr/share/xbmc/system/keymaps mkdir -p $INSTALL/usr/share/xbmc/system/players/dvdplayer - cp -PR $PKG_BUILD/system/players/dvdplayer/*.so $INSTALL/usr/share/xbmc/system/players/dvdplayer + cp -P $PKG_BUILD/system/players/dvdplayer/*.so $INSTALL/usr/share/xbmc/system/players/dvdplayer cp -PR $PKG_BUILD/system/players/dvdplayer/etc $INSTALL/usr/share/xbmc/system/players/dvdplayer mkdir -p $INSTALL/usr/share/xbmc/system/players/paplayer - cp -PR $PKG_BUILD/system/players/paplayer/*.so $INSTALL/usr/share/xbmc/system/players/paplayer + cp -P $PKG_BUILD/system/players/paplayer/*.so $INSTALL/usr/share/xbmc/system/players/paplayer mkdir -p $INSTALL/usr/share/xbmc/system/python - cp -PR $PKG_BUILD/system/python/*.so $INSTALL/usr/share/xbmc/system/python + cp -P $PKG_BUILD/system/python/*.so $INSTALL/usr/share/xbmc/system/python mkdir -p $INSTALL/usr/share/xbmc/system/scrapers cp -PR $PKG_BUILD/system/scrapers/* $INSTALL/usr/share/xbmc/system/scrapers @@ -111,6 +113,9 @@ mkdir -p $INSTALL/usr/share/xbmc/system/scrapers mkdir -p $INSTALL/usr/share/xbmc/system/shaders cp -PR $PKG_BUILD/system/shaders/* $INSTALL/usr/share/xbmc/system/shaders +mkdir -p $PYTHON_LIBDIR/site-packages + cp -PR $PKG_BUILD/tools/EventClients/lib/python/* $PYTHON_LIBDIR/site-packages + mkdir -p $INSTALL/usr/share/xbmc/userdata cp -PR $PKG_BUILD/userdata/* $INSTALL/usr/share/xbmc/userdata From 4553e9d41ff4a734ac8759b0cab05f2013b3a80d Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Mon, 12 Apr 2010 14:06:42 +0200 Subject: [PATCH 080/320] xorg-server: - update to xorg-server-1.7.6.901 --- packages/x11/xserver/xorg-server/url | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/x11/xserver/xorg-server/url b/packages/x11/xserver/xorg-server/url index e5feeb612f..9345a0cb5a 100644 --- a/packages/x11/xserver/xorg-server/url +++ b/packages/x11/xserver/xorg-server/url @@ -1 +1 @@ -http://xorg.freedesktop.org/archive/individual/xserver/xorg-server-1.7.6.tar.gz +http://xorg.freedesktop.org/archive/individual/xserver/xorg-server-1.7.6.901.tar.bz2 \ No newline at end of file From 2fa98f5d49bae2fdc922b828cd70d112c718b491 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Mon, 12 Apr 2010 15:16:59 +0200 Subject: [PATCH 081/320] xbmc: - update to xbmc-29203 --- packages/mediacenter/xbmc/url | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/mediacenter/xbmc/url b/packages/mediacenter/xbmc/url index 0ea58f2f13..1b2ad8d941 100644 --- a/packages/mediacenter/xbmc/url +++ b/packages/mediacenter/xbmc/url @@ -1 +1 @@ -http://sources.openelec.tv/svn/xbmc-29090.tar.bz2 +http://sources.openelec.tv/svn/xbmc-29203.tar.bz2 From 824655c78b3c507bd532c5df1c9a127210e63577 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Mon, 12 Apr 2010 15:17:17 +0200 Subject: [PATCH 082/320] xbmc-theme-Confluence: - update to --- packages/mediacenter/xbmc-theme-Confluence/url | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/mediacenter/xbmc-theme-Confluence/url b/packages/mediacenter/xbmc-theme-Confluence/url index 34f4893524..7df3aced22 100644 --- a/packages/mediacenter/xbmc-theme-Confluence/url +++ b/packages/mediacenter/xbmc-theme-Confluence/url @@ -1 +1 @@ -http://sources.openelec.tv/svn/xbmc-theme-Confluence-29090.tar.bz2 +http://sources.openelec.tv/svn/xbmc-theme-Confluence-29203.tar.bz2 From d991984d08b3f94c002cf7ec443b6ebae35e6918 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Mon, 12 Apr 2010 21:57:29 +0200 Subject: [PATCH 083/320] xbmc: - remove unneeded LDFLAGS --- packages/mediacenter/xbmc/build | 2 -- 1 file changed, 2 deletions(-) diff --git a/packages/mediacenter/xbmc/build b/packages/mediacenter/xbmc/build index 620b4232f9..bfd3f89e7e 100755 --- a/packages/mediacenter/xbmc/build +++ b/packages/mediacenter/xbmc/build @@ -80,8 +80,6 @@ else XBMC_CRYSTALHD="--disable-crystalhd" fi -LDFLAGS="$LDFLAGS -lpython2.6" - cd $PKG_BUILD cd xbmc/cores/dvdplayer/Codecs/libdvd/libdvdcss From 0923303978e0323fe5e9326a979acb55c068ce04 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Mon, 12 Apr 2010 21:58:53 +0200 Subject: [PATCH 084/320] busybox: - adding crond applet - adding fgrep alias support - adding some run-parts options --- packages/sysutils/busybox/config/busybox.conf | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/packages/sysutils/busybox/config/busybox.conf b/packages/sysutils/busybox/config/busybox.conf index fbc148eb71..a64a5a7f81 100644 --- a/packages/sysutils/busybox/config/busybox.conf +++ b/packages/sysutils/busybox/config/busybox.conf @@ -1,7 +1,7 @@ # # Automatically generated make config: don't edit -# Busybox version: 1.16.0 -# Thu Feb 25 18:57:31 2010 +# Busybox version: 1.16.1 +# Mon Apr 12 16:04:50 2010 # CONFIG_HAVE_DOT_CONFIG=y @@ -307,8 +307,8 @@ CONFIG_DEFAULT_SETFONT_DIR="" # CONFIG_MKTEMP is not set # CONFIG_PIPE_PROGRESS is not set CONFIG_RUN_PARTS=y -# CONFIG_FEATURE_RUN_PARTS_LONG_OPTIONS is not set -# CONFIG_FEATURE_RUN_PARTS_FANCY is not set +CONFIG_FEATURE_RUN_PARTS_LONG_OPTIONS=y +CONFIG_FEATURE_RUN_PARTS_FANCY=y # CONFIG_START_STOP_DAEMON is not set # CONFIG_FEATURE_START_STOP_DAEMON_FANCY is not set # CONFIG_FEATURE_START_STOP_DAEMON_LONG_OPTIONS is not set @@ -369,7 +369,7 @@ CONFIG_FEATURE_FIND_PATH=y CONFIG_FEATURE_FIND_LINKS=y CONFIG_GREP=y CONFIG_FEATURE_GREP_EGREP_ALIAS=y -# CONFIG_FEATURE_GREP_FGREP_ALIAS is not set +CONFIG_FEATURE_GREP_FGREP_ALIAS=y CONFIG_FEATURE_GREP_CONTEXT=y CONFIG_XARGS=y CONFIG_FEATURE_XARGS_SUPPORT_CONFIRMATION=y @@ -581,7 +581,7 @@ CONFIG_FEATURE_BEEP_LENGTH_MS=0 # CONFIG_FEATURE_CHAT_CLR_ABORT is not set # CONFIG_CHRT is not set CONFIG_CROND=y -# CONFIG_FEATURE_CROND_D is not set +CONFIG_FEATURE_CROND_D=y # CONFIG_FEATURE_CROND_CALL_SENDMAIL is not set CONFIG_FEATURE_CROND_DIR="/var/spool/cron" # CONFIG_CRONTAB is not set From 8963a13f9fafc61c29dd0545d71d1c934ca01680 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Mon, 12 Apr 2010 21:59:22 +0200 Subject: [PATCH 085/320] busybox: - adding init script for cron daemon --- packages/sysutils/busybox/init.d/11_crond | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100755 packages/sysutils/busybox/init.d/11_crond diff --git a/packages/sysutils/busybox/init.d/11_crond b/packages/sysutils/busybox/init.d/11_crond new file mode 100755 index 0000000000..e5d03e397c --- /dev/null +++ b/packages/sysutils/busybox/init.d/11_crond @@ -0,0 +1,10 @@ +# +# start cron daemon +# +# runlevels: openelec, textmode + +( + progress "Starting cron daemon" + + crond -bS -c /etc/crontabs +)& From a8e1b1de1117ebae3733d639a5fad3412116cc11 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Mon, 12 Apr 2010 22:00:01 +0200 Subject: [PATCH 086/320] image: - adding /etc/distribution and /etc/arch --- packages/image/install | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/image/install b/packages/image/install index b309cac1ae..2233f49e9f 100755 --- a/packages/image/install +++ b/packages/image/install @@ -57,7 +57,8 @@ case "$2" in $SCRIPTS/install plymouth-lite $SCRIPTS/install util-linux-ng - echo $TARGET_ARCH > $INSTALL/etc/arch + echo "OpenELEC" > $INSTALL/etc/distribution + echo "$PROJECT.$TARGET_ARCH" > $INSTALL/etc/arch echo "$OPENELEC_VERSION" > $INSTALL/etc/version echo "OpenELEC.tv - Date of build: $BUILD_DATE Build: $BZR_BUILD" > $INSTALL/etc/openelec-release From fb9f5248ae031dbded6aed99e8a9ea5e89a5b5bd Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Mon, 12 Apr 2010 22:56:47 +0200 Subject: [PATCH 087/320] alsa: - cosmetics --- packages/audio/alsa/config/alsa-base.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/audio/alsa/config/alsa-base.conf b/packages/audio/alsa/config/alsa-base.conf index 0796dc3bab..f447811068 100644 --- a/packages/audio/alsa/config/alsa-base.conf +++ b/packages/audio/alsa/config/alsa-base.conf @@ -20,4 +20,4 @@ options snd-hda-intel model=auto # fix some Audio Problems with HDMI on ION based Hardware # see: http://xbmc.org/forum/showthread.php?t=69479 -alias snd-card-0 snd-hda-codec-nvhdmi \ No newline at end of file +alias snd-card-0 snd-hda-codec-nvhdmi From ed2940b1d467e32d06dfcf22fa8829f6ee058a17 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Tue, 13 Apr 2010 00:46:06 +0200 Subject: [PATCH 088/320] new package: - adding package autoupdate --- .../sysutils/autoupdate/config/update.conf | 15 +++ packages/sysutils/autoupdate/install | 19 ++++ .../autoupdate/scripts/autoupdate.devel | 84 +++++++++++++++++ .../autoupdate/scripts/autoupdate.release | 92 +++++++++++++++++++ 4 files changed, 210 insertions(+) create mode 100644 packages/sysutils/autoupdate/config/update.conf create mode 100755 packages/sysutils/autoupdate/install create mode 100755 packages/sysutils/autoupdate/scripts/autoupdate.devel create mode 100755 packages/sysutils/autoupdate/scripts/autoupdate.release diff --git a/packages/sysutils/autoupdate/config/update.conf b/packages/sysutils/autoupdate/config/update.conf new file mode 100644 index 0000000000..e6b47b08a3 --- /dev/null +++ b/packages/sysutils/autoupdate/config/update.conf @@ -0,0 +1,15 @@ +# Setup autoupdate ( no / manually / auto ) +# +# no: no popup-information about new updates, no automatically download, +# no autoupdate. +# +# manually: shows popupinformation about updates, you must manually download the +# and extract the update package. Copy the files "SYSTEM" and "KERNEL" +# locally or per SSH/SCP to /storage/.update or via SMB to the +# "Update" share. Then reboot the system to install the update. +# +# auto: shows popupinformation about updates, the autoupdater downloads the +# update package and shows an information that the system must +# manually rebooted to install the update. + +AUTOUPDATE=manually \ No newline at end of file diff --git a/packages/sysutils/autoupdate/install b/packages/sysutils/autoupdate/install new file mode 100755 index 0000000000..90c175b83f --- /dev/null +++ b/packages/sysutils/autoupdate/install @@ -0,0 +1,19 @@ +#!/bin/sh + +. config/options + +PKG_DIR=`find $PACKAGES -type d -name $1` + +mkdir -p $INSTALL/usr/bin + if [ "$DEVTOOLS" = "yes" ]; then + cp -P $PKG_DIR/scripts/autoupdate.devel $INSTALL/usr/bin/autoupdate + else + cp -P $PKG_DIR/scripts/autoupdate.release $INSTALL/usr/bin/autoupdate + fi + +mkdir -p $INSTALL/usr/config + cp -P $PKG_DIR/config/update.conf $INSTALL/usr/config + +mkdir -p $INSTALL/etc/crontabs + echo -e "*/5 * * * *\t/usr/bin/autoupdate" >> $INSTALL/etc/crontabs/root + diff --git a/packages/sysutils/autoupdate/scripts/autoupdate.devel b/packages/sysutils/autoupdate/scripts/autoupdate.devel new file mode 100755 index 0000000000..24033132eb --- /dev/null +++ b/packages/sysutils/autoupdate/scripts/autoupdate.devel @@ -0,0 +1,84 @@ +#!/bin/sh + +. /storage/.config/update.conf + +if [ ! -f /var/lock/update.lock ]; then + + if [ "$AUTOUPDATE" = "manually" -o "$AUTOUPDATE" = "auto" ]; then + # locking autoupdate + touch /var/lock/update.lock + + # sleep a bit, maybe we have a lot of work ;-) + sleep 30 + + send_message () { + xbmc-send --host=127.0.0.1 -a "Notification(Automatic update service:,$1)" + } + + UPDATEURL="http://snapshots.openelec.tv" + + # getting this version + THIS_DISTRIBUTION="`cat /etc/distribution`" + THIS_ARCH="`cat /etc/arch`" + THIS_VERSION="`cat /etc/version`" + + # get infofile with the latest released version + rm -rf /tmp/latest + wget $UPDATEURL/latest -P /tmp + + NEW_IMAGE="`cat /tmp/latest |grep "$THIS_DISTRIBUTION-$THIS_ARCH"`" + NEW_VERSION="`echo "$NEW_IMAGE" | cut -d "-" -f5 | tr -d "r"`" + + rm -rf /tmp/latest + + # compare installed version with latest released version + THIS_VERSION="`echo "$THIS_VERSION" | cut -d "-" -f3 | tr -d "r"`" + + if [ "$THIS_VERSION" -lt "$NEW_VERSION" ]; then + + if [ "$AUTOUPDATE" = "manually" ]; then + + # show a message if a new version is avaible + send_message "New update avaible: r$NEW_VERSION - please update manually" + + # remove locking + rm -rf /var/lock/update.lock + + elif [ "$AUTOUPDATE" = "auto" ]; then + + # show a message if a new version is avaible + send_message "New update avaible: r$NEW_VERSION - downloading the new version" + + # downloading the new version + wget -c $UPDATEURL/$NEW_IMAGE.tar.bz2 -P /tmp + + # extract the image + rm -rf /tmp/$NEW_IMAGE + tar -xjvf /tmp/$NEW_IMAGE.tar.bz2 -C /tmp + + # move KERNEL and SYSTEM to an temporary file + mkdir -p /storage/.update + + [ -f /tmp/$NEW_IMAGE/target/KERNEL ] && \ + mv /tmp/$NEW_IMAGE/target/KERNEL /storage/.update/KERNEL.tmp + + [ -f /tmp/$NEW_IMAGE/target/SYSTEM ] && \ + mv /tmp/$NEW_IMAGE/target/SYSTEM /storage/.update/SYSTEM.tmp + sync + + # move KERNEL and SYSTEM to the right place + mv /storage/.update/KERNEL.tmp /storage/.update/KERNEL + mv /storage/.update/SYSTEM.tmp /storage/.update/SYSTEM + + # cleanup tmp files + rm -rf /tmp/$NEW_IMAGE + rm -rf /tmp/$NEW_IMAGE.tar.bz2 + rm -rf /storage/.update/*.tmp + + # we are ready (hopefully) + send_message "Update r$NEW_VERSION - downloaded and extracted - please reboot to install" + + fi + fi + fi +fi diff --git a/packages/sysutils/autoupdate/scripts/autoupdate.release b/packages/sysutils/autoupdate/scripts/autoupdate.release new file mode 100755 index 0000000000..2bf4c4b5d2 --- /dev/null +++ b/packages/sysutils/autoupdate/scripts/autoupdate.release @@ -0,0 +1,92 @@ +#!/bin/sh + +. /storage/.config/update.conf + +if [ ! -f /var/lock/update.lock ]; then + + if [ "$AUTOUPDATE" = "manually" -o "$AUTOUPDATE" = "auto" ]; then + # locking autoupdate + touch /var/lock/update.lock + + # sleep a bit, maybe we have a lot of work ;-) + sleep 30 + + send_message () { + xbmc-send --host=127.0.0.1 -a "Notification(Automatic update service:,$1)" + } + + UPDATEURL="http://releases.openelec.tv" + + # getting this version + THIS_DISTRIBUTION="`cat /etc/distribution`" + THIS_ARCH="`cat /etc/arch`" + THIS_VERSION="`cat /etc/version`" + THIS_MAJOR="`echo "$THIS_VERSION" | cut -d "." -f1`" + THIS_MINOR="`echo "$THIS_VERSION" | cut -d "." -f2`" + THIS_PATCH="`echo "$THIS_VERSION" | cut -d "." -f3`" + + # get infofile with the latest released version + rm -rf /tmp/latest + wget $UPDATEURL/latest -P /tmp + + NEW_IMAGE="`cat /tmp/latest |grep "$THIS_DISTRIBUTION-$THIS_ARCH"`" + NEW_VERSION="`echo "$NEW_IMAGE" | cut -d "-" -f3`" + + rm -rf /tmp/latest + + # compare installed version with latest released version + NEW_MAJOR="`echo "$NEW_VERSION" | cut -d "." -f1`" + NEW_MINOR="`echo "$NEW_VERSION" | cut -d "." -f2`" + NEW_PATCH="`echo "$NEW_VERSION" | cut -d "." -f3`" + + if [ "$THIS_MAJOR" -lt "$NEW_MAJOR" -o \ + "$THIS_MINOR" -lt "$NEW_MINOR" -o \ + "$THIS_PATCH" -lt "$NEW_PATCH" ]; then + + if [ "$AUTOUPDATE" = "manually" ]; then + + # show a message if a new version is avaible + send_message "New update avaible: $NEW_VERSION - please update manually" + + # remove locking + rm -rf /var/lock/update.lock + + elif [ "$AUTOUPDATE" = "auto" ]; then + + # show a message if a new version is avaible + send_message "New update avaible: $NEW_VERSION - downloading the new version" + + # downloading the new version + wget -c $UPDATEURL/$NEW_IMAGE.tar.bz2 -P /tmp + + # extract the image + rm -rf /tmp/$NEW_IMAGE + tar -xjvf /tmp/$NEW_IMAGE.tar.bz2 -C /tmp + + # move KERNEL and SYSTEM to an temporary file + mkdir -p /storage/.update + + [ -f /tmp/$NEW_IMAGE/target/KERNEL ] && \ + mv /tmp/$NEW_IMAGE/target/KERNEL /storage/.update/KERNEL.tmp + + [ -f /tmp/$NEW_IMAGE/target/SYSTEM ] && \ + mv /tmp/$NEW_IMAGE/target/SYSTEM /storage/.update/SYSTEM.tmp + sync + + # move KERNEL and SYSTEM to the right place + mv /storage/.update/KERNEL.tmp /storage/.update/KERNEL + mv /storage/.update/SYSTEM.tmp /storage/.update/SYSTEM + + touch /var/ + # cleanup tmp files + rm -rf /tmp/$NEW_IMAGE + rm -rf /tmp/$NEW_IMAGE.tar.bz2 + rm -rf /storage/.update/*.tmp + + # we are ready (hopefully) + send_message "Update $NEW_VERSION - downloaded and extracted - please reboot to install" + + fi + fi + fi +fi From 5d950832c1dec193c9ee1ea937066e6a6374cc2a Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Tue, 13 Apr 2010 00:46:32 +0200 Subject: [PATCH 089/320] xbmc: - install autoupdate by default --- packages/mediacenter/xbmc/install | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packages/mediacenter/xbmc/install b/packages/mediacenter/xbmc/install index a750782972..4c249431f4 100755 --- a/packages/mediacenter/xbmc/install +++ b/packages/mediacenter/xbmc/install @@ -129,3 +129,5 @@ mkdir -p $INSTALL/usr/share/xbmc/addons # other programs needed to run $SCRIPTS/install alsa $SCRIPTS/install lirc + + $SCRIPTS/install autoupdate From f2a3854a5687da166a0f99e8962a6ccb83c46280 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Tue, 13 Apr 2010 00:47:00 +0200 Subject: [PATCH 090/320] xbmc: - starting autoupdate on start --- packages/mediacenter/xbmc/scripts/xbmc-session | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packages/mediacenter/xbmc/scripts/xbmc-session b/packages/mediacenter/xbmc/scripts/xbmc-session index 34e995c05e..4e66d0f6e7 100755 --- a/packages/mediacenter/xbmc/scripts/xbmc-session +++ b/packages/mediacenter/xbmc/scripts/xbmc-session @@ -11,6 +11,8 @@ else XBMC_BIN="/usr/share/xbmc/xbmc.bin" fi +[ -f /usr/bin/autoupdate ] && /usr/bin/autoupdate & + while true; do if [ "$START_WM" = "yes" ]; then From ea3750ddb5b1b7b8ff512a371beb2d3d077711a9 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Tue, 13 Apr 2010 00:48:46 +0200 Subject: [PATCH 091/320] autoupdate: - looking every 6 hours for an update --- packages/sysutils/autoupdate/install | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/sysutils/autoupdate/install b/packages/sysutils/autoupdate/install index 90c175b83f..685ed7088f 100755 --- a/packages/sysutils/autoupdate/install +++ b/packages/sysutils/autoupdate/install @@ -15,5 +15,5 @@ mkdir -p $INSTALL/usr/config cp -P $PKG_DIR/config/update.conf $INSTALL/usr/config mkdir -p $INSTALL/etc/crontabs - echo -e "*/5 * * * *\t/usr/bin/autoupdate" >> $INSTALL/etc/crontabs/root + echo -e "* */6 * * *\t/usr/bin/autoupdate" >> $INSTALL/etc/crontabs/root From 16a0518504f088f4e9a2a23b244f2e68f3e96b0b Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Tue, 13 Apr 2010 14:54:23 +0200 Subject: [PATCH 092/320] autoupdate: - check for update.conf file --- packages/sysutils/autoupdate/scripts/autoupdate.devel | 3 ++- packages/sysutils/autoupdate/scripts/autoupdate.release | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/packages/sysutils/autoupdate/scripts/autoupdate.devel b/packages/sysutils/autoupdate/scripts/autoupdate.devel index 24033132eb..e7038d45c5 100755 --- a/packages/sysutils/autoupdate/scripts/autoupdate.devel +++ b/packages/sysutils/autoupdate/scripts/autoupdate.devel @@ -1,6 +1,7 @@ #!/bin/sh -. /storage/.config/update.conf +[ -f /storage/.config/update.conf ] && \ + . /storage/.config/update.conf if [ ! -f /var/lock/update.lock ]; then diff --git a/packages/sysutils/autoupdate/scripts/autoupdate.release b/packages/sysutils/autoupdate/scripts/autoupdate.release index 2bf4c4b5d2..a1df2b4f3f 100755 --- a/packages/sysutils/autoupdate/scripts/autoupdate.release +++ b/packages/sysutils/autoupdate/scripts/autoupdate.release @@ -1,6 +1,7 @@ #!/bin/sh -. /storage/.config/update.conf +[ -f /storage/.config/update.conf ] && \ + . /storage/.config/update.conf if [ ! -f /var/lock/update.lock ]; then From 9f5df7a4d6c2baa1815201400faa99afd70e48cd Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Tue, 13 Apr 2010 14:55:12 +0200 Subject: [PATCH 093/320] busybox: - dont overwrite exist configfiles --- packages/sysutils/busybox/init.d/07_userconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/sysutils/busybox/init.d/07_userconfig b/packages/sysutils/busybox/init.d/07_userconfig index 8d9a10d6cd..e7b0d50a58 100755 --- a/packages/sysutils/busybox/init.d/07_userconfig +++ b/packages/sysutils/busybox/init.d/07_userconfig @@ -5,4 +5,4 @@ progress "copy userconfig and samples" $IONICE mkdir -p /storage/.config - $IONICE cp -PR /usr/config/* /storage/.config + $IONICE cp -Rn /usr/config/* /storage/.config From 2a8a1bf5aba2ecbb39ebafb896297e4b8fbaa490 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Tue, 13 Apr 2010 16:09:41 +0200 Subject: [PATCH 094/320] autoupdate: - extend the time for showing the popup to 20sec. - cosmetics --- packages/sysutils/autoupdate/scripts/autoupdate.devel | 4 ++-- packages/sysutils/autoupdate/scripts/autoupdate.release | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/sysutils/autoupdate/scripts/autoupdate.devel b/packages/sysutils/autoupdate/scripts/autoupdate.devel index e7038d45c5..a44b5c6e8a 100755 --- a/packages/sysutils/autoupdate/scripts/autoupdate.devel +++ b/packages/sysutils/autoupdate/scripts/autoupdate.devel @@ -13,7 +13,7 @@ if [ ! -f /var/lock/update.lock ]; then sleep 30 send_message () { - xbmc-send --host=127.0.0.1 -a "Notification(Automatic update service:,$1)" + xbmc-send --host=127.0.0.1 -a "Notification(Automatic update service:,$1,20000)" } UPDATEURL="http://snapshots.openelec.tv" @@ -48,7 +48,7 @@ if [ ! -f /var/lock/update.lock ]; then elif [ "$AUTOUPDATE" = "auto" ]; then # show a message if a new version is avaible - send_message "New update avaible: r$NEW_VERSION - downloading the new version" + send_message "New update avaible: r$NEW_VERSION - downloading and extract the new version..." # downloading the new version wget -c $UPDATEURL/$NEW_IMAGE.tar.bz2 -P /tmp diff --git a/packages/sysutils/autoupdate/scripts/autoupdate.release b/packages/sysutils/autoupdate/scripts/autoupdate.release index a1df2b4f3f..58c11b9714 100755 --- a/packages/sysutils/autoupdate/scripts/autoupdate.release +++ b/packages/sysutils/autoupdate/scripts/autoupdate.release @@ -13,7 +13,7 @@ if [ ! -f /var/lock/update.lock ]; then sleep 30 send_message () { - xbmc-send --host=127.0.0.1 -a "Notification(Automatic update service:,$1)" + xbmc-send --host=127.0.0.1 -a "Notification(Automatic Update Service:,$1,20000)" } UPDATEURL="http://releases.openelec.tv" @@ -55,7 +55,7 @@ if [ ! -f /var/lock/update.lock ]; then elif [ "$AUTOUPDATE" = "auto" ]; then # show a message if a new version is avaible - send_message "New update avaible: $NEW_VERSION - downloading the new version" + send_message "New update avaible: $NEW_VERSION - downloading and extract the new version..." # downloading the new version wget -c $UPDATEURL/$NEW_IMAGE.tar.bz2 -P /tmp From 38302a9597498d3efc7612cc21c5b354212acc70 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Tue, 13 Apr 2010 16:10:16 +0200 Subject: [PATCH 095/320] busybox: - rework of userconfig script --- packages/sysutils/busybox/init.d/07_userconfig | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/packages/sysutils/busybox/init.d/07_userconfig b/packages/sysutils/busybox/init.d/07_userconfig index e7b0d50a58..4240a9a042 100755 --- a/packages/sysutils/busybox/init.d/07_userconfig +++ b/packages/sysutils/busybox/init.d/07_userconfig @@ -4,5 +4,18 @@ # runlevels: openelec, textmode progress "copy userconfig and samples" + +if [ -d /usr/config ]; then + cd /usr/config $IONICE mkdir -p /storage/.config - $IONICE cp -Rn /usr/config/* /storage/.config + + for dir in `find . -type d`; do + mkdir -p /storage/.config/$dir + done + + for file in `find . -type f`; do + if [ ! -f /storage/.config/$file ]; then + cp $file /storage/.config/$file + fi + done +fi From c536f09e998711d8454a2419485c8f9631bda676 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Wed, 14 Apr 2010 17:11:51 +0200 Subject: [PATCH 096/320] ratpoison: - remove package ratpoison --- packages/x11/other/ratpoison/build | 24 ------------- packages/x11/other/ratpoison/install | 15 -------- .../patches/ratpoison-1.4.5-getline.diff | 12 ------- .../ratpoison-1.4.5-staticgravity.diff | 35 ------------------- .../other/ratpoison/profile.d/ratpoison.conf | 10 ------ packages/x11/other/ratpoison/url | 1 - 6 files changed, 97 deletions(-) delete mode 100755 packages/x11/other/ratpoison/build delete mode 100755 packages/x11/other/ratpoison/install delete mode 100644 packages/x11/other/ratpoison/patches/ratpoison-1.4.5-getline.diff delete mode 100644 packages/x11/other/ratpoison/patches/ratpoison-1.4.5-staticgravity.diff delete mode 100644 packages/x11/other/ratpoison/profile.d/ratpoison.conf delete mode 100644 packages/x11/other/ratpoison/url diff --git a/packages/x11/other/ratpoison/build b/packages/x11/other/ratpoison/build deleted file mode 100755 index b8a45785af..0000000000 --- a/packages/x11/other/ratpoison/build +++ /dev/null @@ -1,24 +0,0 @@ -#!/bin/sh - -. config/options - -$SCRIPTS/build toolchain -$SCRIPTS/build libX11 -$SCRIPTS/build libXft - -cd $PKG_BUILD -autoreconf -./configure --host=$TARGET_NAME \ - --build=$HOST_NAME \ - --prefix=/usr \ - --sysconfdir=/etc \ - --disable-static \ - --enable-shared \ - --disable-debug \ - --disable-history \ - --with-xterm=rxvt \ - --with-xft \ - --with-x - -make - diff --git a/packages/x11/other/ratpoison/install b/packages/x11/other/ratpoison/install deleted file mode 100755 index f74fd215eb..0000000000 --- a/packages/x11/other/ratpoison/install +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/sh - -. config/options - -$SCRIPTS/install libX11 -$SCRIPTS/install libXft -$SCRIPTS/install liberation-fonts - -PKG_DIR=`find $PACKAGES -type d -name $1` - -mkdir -p $INSTALL/usr/bin - cp -PR $PKG_BUILD/src/$1 $INSTALL/usr/bin - -# other usefull packages -$SCRIPTS/install xwd \ No newline at end of file diff --git a/packages/x11/other/ratpoison/patches/ratpoison-1.4.5-getline.diff b/packages/x11/other/ratpoison/patches/ratpoison-1.4.5-getline.diff deleted file mode 100644 index 95fcab638d..0000000000 --- a/packages/x11/other/ratpoison/patches/ratpoison-1.4.5-getline.diff +++ /dev/null @@ -1,12 +0,0 @@ -diff -Naur ratpoison-1.4.5-old/configure.in ratpoison-1.4.5-new/configure.in ---- ratpoison-1.4.5-old/configure.in 2009-07-12 14:01:04.000000000 -0700 -+++ ratpoison-1.4.5-new/configure.in 2009-07-14 19:56:24.000000000 -0700 -@@ -146,7 +146,7 @@ - dnl Checks for typedefs, structures, and compiler characteristics. - - dnl Checks for library functions. --AC_CHECK_FUNCS(getopt getopt_long setsid setpgid setpgrp putenv vsnprintf usleep) -+AC_CHECK_FUNCS(getline getopt getopt_long setsid setpgid setpgrp putenv vsnprintf usleep) - - AC_TYPE_SIGNAL - diff --git a/packages/x11/other/ratpoison/patches/ratpoison-1.4.5-staticgravity.diff b/packages/x11/other/ratpoison/patches/ratpoison-1.4.5-staticgravity.diff deleted file mode 100644 index 642fe0e262..0000000000 --- a/packages/x11/other/ratpoison/patches/ratpoison-1.4.5-staticgravity.diff +++ /dev/null @@ -1,35 +0,0 @@ -diff -Naur ratpoison-1.4.5-old/src/actions.c ratpoison-1.4.5-new/src/actions.c ---- ratpoison-1.4.5-old/src/actions.c 2009-07-14 19:56:16.000000000 -0700 -+++ ratpoison-1.4.5-new/src/actions.c 2009-07-14 19:56:56.000000000 -0700 -@@ -1882,6 +1882,8 @@ - { - int ret = -1; - -+ if (!strcasecmp (data, "static") || !strcasecmp (data, "static") || !strcmp (data, "10")) -+ ret = StaticGravity; - if (!strcasecmp (data, "northwest") || !strcasecmp (data, "nw") || !strcmp (data, "7")) - ret = NorthWestGravity; - if (!strcasecmp (data, "north") || !strcasecmp (data, "n") || !strcmp (data, "8")) -diff -Naur ratpoison-1.4.5-old/src/manage.c ratpoison-1.4.5-new/src/manage.c ---- ratpoison-1.4.5-old/src/manage.c 2009-07-14 19:56:16.000000000 -0700 -+++ ratpoison-1.4.5-new/src/manage.c 2009-07-14 19:56:56.000000000 -0700 -@@ -541,6 +541,9 @@ - case SouthEastGravity: - win->x = frame->x + frame->width - win->width - win->border; - break; -+ case StaticGravity: -+ win->x = frame->x + win->x; -+ break; - } - - /* Y coord. */ -@@ -561,6 +564,9 @@ - case SouthWestGravity: - win->y = frame->y + frame->height - win->height - win->border; - break; -+ case StaticGravity: -+ win->y = frame->y + win->y; -+ break; - } - } - diff --git a/packages/x11/other/ratpoison/profile.d/ratpoison.conf b/packages/x11/other/ratpoison/profile.d/ratpoison.conf deleted file mode 100644 index 51ecaa05a9..0000000000 --- a/packages/x11/other/ratpoison/profile.d/ratpoison.conf +++ /dev/null @@ -1,10 +0,0 @@ -################################################################################ -# Windowmanager environment variables. -# -# This file contains non-OpenELEC evironment variables as well as OpenELEC -# evironment variables that are not user defined. -################################################################################ - -WINDOWMANAGER="ratpoison" - -export WINDOWMANAGER \ No newline at end of file diff --git a/packages/x11/other/ratpoison/url b/packages/x11/other/ratpoison/url deleted file mode 100644 index 4b787fa3ef..0000000000 --- a/packages/x11/other/ratpoison/url +++ /dev/null @@ -1 +0,0 @@ -http://download.savannah.nongnu.org/releases/ratpoison/ratpoison-1.4.5.tar.gz \ No newline at end of file From 75390c5d65fe4be31f443d8efe5a5bb6686236d3 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Wed, 14 Apr 2010 17:12:43 +0200 Subject: [PATCH 097/320] xorg-server: - remove empty line --- packages/x11/xserver/xorg-server/install | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/x11/xserver/xorg-server/install b/packages/x11/xserver/xorg-server/install index 34b0deaa32..9b1c80a07b 100755 --- a/packages/x11/xserver/xorg-server/install +++ b/packages/x11/xserver/xorg-server/install @@ -82,4 +82,3 @@ mkdir -p $INSTALL/usr/share/hal/fdi/policy/10osvendor/ #Tools $SCRIPTS/install pciutils $SCRIPTS/install uxlaunch - From 1827aeb86a91202532d77c80d175f60da96217c6 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Wed, 14 Apr 2010 17:13:15 +0200 Subject: [PATCH 098/320] xbmc: - dont start windowmanager --- packages/mediacenter/xbmc/scripts/xbmc-session | 4 ---- 1 file changed, 4 deletions(-) diff --git a/packages/mediacenter/xbmc/scripts/xbmc-session b/packages/mediacenter/xbmc/scripts/xbmc-session index 4e66d0f6e7..88005e00d1 100755 --- a/packages/mediacenter/xbmc/scripts/xbmc-session +++ b/packages/mediacenter/xbmc/scripts/xbmc-session @@ -15,10 +15,6 @@ fi while true; do - if [ "$START_WM" = "yes" ]; then - $WINDOWMANAGER & - fi - $IONICE $XBMC_BIN $XBMC_ARGS $@ > /dev/null 2>&1 RET=$? echo "Exited with code $RET" From 93e3617c054c4c2f3056e74d6d7d959725f06c72 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Wed, 14 Apr 2010 17:14:22 +0200 Subject: [PATCH 099/320] new package: - add package libnl --- packages/network/libnl/build | 17 +++++++++++++++++ packages/network/libnl/install | 6 ++++++ .../patches/libnl-fix_missing_include-0.1.diff | 11 +++++++++++ packages/network/libnl/url | 1 + 4 files changed, 35 insertions(+) create mode 100755 packages/network/libnl/build create mode 100755 packages/network/libnl/install create mode 100644 packages/network/libnl/patches/libnl-fix_missing_include-0.1.diff create mode 100644 packages/network/libnl/url diff --git a/packages/network/libnl/build b/packages/network/libnl/build new file mode 100755 index 0000000000..f4aac6e467 --- /dev/null +++ b/packages/network/libnl/build @@ -0,0 +1,17 @@ +#!/bin/sh + +. config/options + +$SCRIPTS/build toolchain + +cd $PKG_BUILD +./configure --host=$TARGET_NAME \ + --build=$HOST_NAME \ + --prefix=/usr \ + --sysconfdir=/etc \ + --disable-static \ + --enable-shared \ + +make + +$MAKEINSTALL diff --git a/packages/network/libnl/install b/packages/network/libnl/install new file mode 100755 index 0000000000..673be67cf6 --- /dev/null +++ b/packages/network/libnl/install @@ -0,0 +1,6 @@ +#!/bin/sh + +. config/options + +mkdir -p $INSTALL/usr/lib + cp -PR $PKG_BUILD/lib/*.so* $INSTALL/usr/lib/ diff --git a/packages/network/libnl/patches/libnl-fix_missing_include-0.1.diff b/packages/network/libnl/patches/libnl-fix_missing_include-0.1.diff new file mode 100644 index 0000000000..18272414ad --- /dev/null +++ b/packages/network/libnl/patches/libnl-fix_missing_include-0.1.diff @@ -0,0 +1,11 @@ +diff -Naur libnl-1.1/include/netlink-local.h libnl-1.1.patch/include/netlink-local.h +--- libnl-1.1/include/netlink-local.h 2008-01-14 16:48:45.000000000 +0100 ++++ libnl-1.1.patch/include/netlink-local.h 2010-04-13 20:34:38.502955161 +0200 +@@ -15,6 +15,7 @@ + #include + #include + #include ++#include + #include + #include + #include diff --git a/packages/network/libnl/url b/packages/network/libnl/url new file mode 100644 index 0000000000..c0e4300eab --- /dev/null +++ b/packages/network/libnl/url @@ -0,0 +1 @@ +https://launchpad.net/ubuntu/hardy/+source/libnl/1.1-1/+files/libnl_1.1.orig.tar.gz \ No newline at end of file From 5dd48df5b7c460d80020d31915649d1227861bdb Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Wed, 14 Apr 2010 17:15:21 +0200 Subject: [PATCH 100/320] connman: - build and install libnl, dbus-python, tools and testscripts --- packages/network/connman/build | 7 ++++--- packages/network/connman/install | 19 ++++++++++++++++++- 2 files changed, 22 insertions(+), 4 deletions(-) diff --git a/packages/network/connman/build b/packages/network/connman/build index 1a60aae188..3f1fdb457f 100755 --- a/packages/network/connman/build +++ b/packages/network/connman/build @@ -3,6 +3,7 @@ . config/options $SCRIPTS/build toolchain +$SCRIPTS/build libnl $SCRIPTS/build dbus $SCRIPTS/build udev $SCRIPTS/build busybox @@ -33,17 +34,17 @@ cd $PKG_BUILD --disable-iospm \ --disable-polkit \ --enable-client \ - --disable-tools \ + --enable-tools \ --disable-fake \ --enable-udev \ - --disable-datafiles \ + --enable-datafiles \ --disable-silent-rules \ --with-udhcpc=/sbin/udhcpc \ --disable-gtk-doc \ --disable-openconnect \ --disable-google \ --enable-meego \ - --disable-test \ + --enable-test \ --disable-capng \ make diff --git a/packages/network/connman/install b/packages/network/connman/install index 14a0a573eb..c23a9918b4 100755 --- a/packages/network/connman/install +++ b/packages/network/connman/install @@ -2,8 +2,10 @@ . config/options +$SCRIPTS/install libnl $SCRIPTS/install dbus $SCRIPTS/install udev +$SCRIPTS/install dbus-python #$SCRIPTS/install bluez $SCRIPTS/install wpa_supplicant @@ -15,11 +17,26 @@ add_group system 430 mkdir -p $INSTALL/usr/sbin cp -P $PKG_BUILD/src/connmand $INSTALL/usr/sbin +mkdir -p $INSTALL/usr/bin + cp -P $PKG_BUILD/client/cm $INSTALL/usr/bin + +mkdir -p $INSTALL/usr/bin/connman + cp -P $PKG_BUILD/tools/addr-test $INSTALL/usr/bin/connman + cp -P $PKG_BUILD/tools/dbus-test $INSTALL/usr/bin/connman + cp -P $PKG_BUILD/tools/polkit-test $INSTALL/usr/bin/connman + cp -P $PKG_BUILD/tools/portal-test $INSTALL/usr/bin/connman + cp -P $PKG_BUILD/tools/supplicant-test $INSTALL/usr/bin/connman + cp -P $PKG_BUILD/tools/tap-test $INSTALL/usr/bin/connman + cp -P $PKG_BUILD/tools/wifi-scan $INSTALL/usr/bin/connman + mkdir -p $INSTALL/usr/lib/connman/plugins cp -P $PKG_BUILD/plugins/.libs/*.so $INSTALL/usr/lib/connman/plugins mkdir -p $INSTALL/usr/lib/connman/scripts cp -P $PKG_BUILD/scripts/udhcpc-script $INSTALL/usr/lib/connman/scripts +mkdir -p $INSTALL/usr/lib/connman/test + cp -P $PKG_BUILD/test/* $INSTALL/usr/lib/connman/test + mkdir -p $INSTALL/etc/dbus-1/system.d - cp -P $PKG_BUILD/src/connman-dbus.conf $INSTALL/etc/dbus-1/system.d + cp -P $PKG_BUILD/src/connman.conf $INSTALL/etc/dbus-1/system.d From 618a8426a7cdb85c39b0775333470fcca568c70b Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Wed, 14 Apr 2010 17:16:33 +0200 Subject: [PATCH 101/320] new package: - add package wicd for test (initial commit) --- packages/network/wicd/build | 20 ++++++++++++++++++++ packages/network/wicd/install | 7 +++++++ packages/network/wicd/url | 1 + 3 files changed, 28 insertions(+) create mode 100755 packages/network/wicd/build create mode 100755 packages/network/wicd/install create mode 100644 packages/network/wicd/url diff --git a/packages/network/wicd/build b/packages/network/wicd/build new file mode 100755 index 0000000000..9a6977e625 --- /dev/null +++ b/packages/network/wicd/build @@ -0,0 +1,20 @@ +#!/bin/sh + +. config/options + +$SCRIPTS/build toolchain +$SCRIPTS/build Python + +. config/options.python + +cd $PKG_BUILD + +$PYTHON setup.py configure +$PYTHON setup.py build + +$PYTHON setup.py install -O1 --skip-build --prefix /usr --root .install + +find .install -name "*.py" -exec rm -rf "{}" ";" +find .install -name "*.pyo" -exec rm -rf "{}" ";" + +rm -rf .install/usr/bin diff --git a/packages/network/wicd/install b/packages/network/wicd/install new file mode 100755 index 0000000000..2c60f5dd1d --- /dev/null +++ b/packages/network/wicd/install @@ -0,0 +1,7 @@ +#!/bin/sh + +. config/options + +$SCRIPTS/install Python + +cp -PR $PKG_BUILD/.install/* $INSTALL diff --git a/packages/network/wicd/url b/packages/network/wicd/url new file mode 100644 index 0000000000..60f7a88d45 --- /dev/null +++ b/packages/network/wicd/url @@ -0,0 +1 @@ +http://downloads.sourceforge.net/project/wicd/wicd-stable/wicd-1.7.0/wicd-1.7.0.tar.bz2 \ No newline at end of file From 5fc71bac38cfa83a07b491591fb6fd7817f4a19d Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Wed, 14 Apr 2010 17:18:38 +0200 Subject: [PATCH 102/320] xbmc-theme-Confluence: - cosmetics --- packages/mediacenter/xbmc-theme-Confluence/install | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/mediacenter/xbmc-theme-Confluence/install b/packages/mediacenter/xbmc-theme-Confluence/install index 04a3be3884..ff3f06ff8c 100755 --- a/packages/mediacenter/xbmc-theme-Confluence/install +++ b/packages/mediacenter/xbmc-theme-Confluence/install @@ -3,4 +3,4 @@ . config/options mkdir -p $INSTALL/usr/share/xbmc/skin/Confluence - cp -PR $PKG_BUILD/* $INSTALL/usr/share/xbmc/skin/Confluence + cp -R $PKG_BUILD/* $INSTALL/usr/share/xbmc/skin/Confluence From 3b4dfbee745899b44d5329fe16ffa9fc65a62a4f Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Wed, 14 Apr 2010 17:19:18 +0200 Subject: [PATCH 103/320] linux: - add an patch from fedora --- .../patches/linux-2.6.33-hda_beep-0.1.diff | 84 +++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100644 packages/linux/patches/linux-2.6.33-hda_beep-0.1.diff diff --git a/packages/linux/patches/linux-2.6.33-hda_beep-0.1.diff b/packages/linux/patches/linux-2.6.33-hda_beep-0.1.diff new file mode 100644 index 0000000000..8ea1a48a01 --- /dev/null +++ b/packages/linux/patches/linux-2.6.33-hda_beep-0.1.diff @@ -0,0 +1,84 @@ +diff -Naur linux-2.6.33.2/sound/pci/hda/hda_beep.c linux-2.6.33.2.patch/sound/pci/hda/hda_beep.c +--- linux-2.6.33.2/sound/pci/hda/hda_beep.c 2010-04-02 01:02:33.000000000 +0200 ++++ linux-2.6.33.2.patch/sound/pci/hda/hda_beep.c 2010-04-09 03:19:43.846329981 +0200 +@@ -1,3 +1,5 @@ ++#define __NO_VERSION__ ++#include "adriver.h" + /* + * Digital Beep Input Interface for HD-audio codec + * +@@ -92,7 +94,11 @@ + static int snd_hda_beep_event(struct input_dev *dev, unsigned int type, + unsigned int code, int hz) + { ++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 22) ++ struct hda_beep *beep = dev->private; ++#else + struct hda_beep *beep = input_get_drvdata(dev); ++#endif + + switch (code) { + case SND_BELL: +@@ -116,8 +122,13 @@ + static void snd_hda_do_detach(struct hda_beep *beep) + { + input_unregister_device(beep->dev); ++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 15) ++ kfree(beep->dev); ++#endif + beep->dev = NULL; ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 22) + cancel_work_sync(&beep->beep_work); ++#endif + /* turn off beep for sure */ + snd_hda_codec_write(beep->codec, beep->nid, 0, + AC_VERB_SET_BEEP_CONTROL, 0); +@@ -129,7 +140,11 @@ + struct hda_codec *codec = beep->codec; + int err; + ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 15) + input_dev = input_allocate_device(); ++#else ++ input_dev = kzalloc(sizeof(*input_dev), GFP_KERNEL); ++#endif + if (!input_dev) { + printk(KERN_INFO "hda_beep: unable to allocate input device\n"); + return -ENOMEM; +@@ -147,15 +162,26 @@ + input_dev->evbit[0] = BIT_MASK(EV_SND); + input_dev->sndbit[0] = BIT_MASK(SND_BELL) | BIT_MASK(SND_TONE); + input_dev->event = snd_hda_beep_event; ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 22) + input_dev->dev.parent = &codec->bus->pci->dev; + input_set_drvdata(input_dev, beep); ++#else ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 15) ++ input_dev->cdev.dev = &codec->bus->pci->dev; ++#endif ++ input_dev->private = beep; ++#endif /* 2.6.22 */ + ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 15) + err = input_register_device(input_dev); + if (err < 0) { + input_free_device(input_dev); + printk(KERN_INFO "hda_beep: unable to register input device\n"); + return err; + } ++#else ++ input_register_device(input_dev); ++#endif + beep->dev = input_dev; + return 0; + } +@@ -255,7 +281,9 @@ + { + struct hda_beep *beep = codec->beep; + if (beep) { ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 22) + cancel_work_sync(&beep->register_work); ++#endif + cancel_delayed_work(&beep->unregister_work); + if (beep->dev) + snd_hda_do_detach(beep); From 59700eb979c570f6289b91be38259a5097a7bc50 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Wed, 14 Apr 2010 17:39:14 +0200 Subject: [PATCH 104/320] udev: - dont set an timeout for settle --- packages/sysutils/udev/init.d/03_udev-trigger | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/sysutils/udev/init.d/03_udev-trigger b/packages/sysutils/udev/init.d/03_udev-trigger index 0c0c7d6bea..366fb4a315 100755 --- a/packages/sysutils/udev/init.d/03_udev-trigger +++ b/packages/sysutils/udev/init.d/03_udev-trigger @@ -7,5 +7,5 @@ progress "request udev events from the kernel" ( $NICE_20 udevadm trigger - $NICE_20 udevadm settle --timeout=5 + $NICE_20 udevadm settle )& From 929afb369c90831727d2e0a9f80bc17b78fe1822 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Wed, 14 Apr 2010 21:14:27 +0200 Subject: [PATCH 105/320] dbus-python: - build and install dbus-glib as dependencies --- packages/python/system/dbus-python/build | 1 + packages/python/system/dbus-python/install | 1 + 2 files changed, 2 insertions(+) diff --git a/packages/python/system/dbus-python/build b/packages/python/system/dbus-python/build index c322615c39..695c4f4be1 100755 --- a/packages/python/system/dbus-python/build +++ b/packages/python/system/dbus-python/build @@ -5,6 +5,7 @@ $SCRIPTS/build toolchain $SCRIPTS/build Python $SCRIPTS/build dbus +$SCRIPTS/build dbus-glib . config/options.python diff --git a/packages/python/system/dbus-python/install b/packages/python/system/dbus-python/install index ed9544c846..efa2a14d1a 100755 --- a/packages/python/system/dbus-python/install +++ b/packages/python/system/dbus-python/install @@ -4,6 +4,7 @@ $SCRIPTS/install Python $SCRIPTS/install dbus +$SCRIPTS/install dbus-glib PYTHON_LIB_DIR=`ls -d $INSTALL/usr/lib/python*` From ed641da24daab91b1ae27fac444abb69104993bc Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Thu, 15 Apr 2010 01:46:20 +0200 Subject: [PATCH 106/320] uxlaunch: - adding support for user-created xorg.conf in /storage/.config (overrides the system xorg.conf) --- packages/x11/other/uxlaunch/init.d/60_uxlaunch | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/packages/x11/other/uxlaunch/init.d/60_uxlaunch b/packages/x11/other/uxlaunch/init.d/60_uxlaunch index 9ca440f3d3..316fb8e125 100644 --- a/packages/x11/other/uxlaunch/init.d/60_uxlaunch +++ b/packages/x11/other/uxlaunch/init.d/60_uxlaunch @@ -6,8 +6,9 @@ progress "starting uxlaunch" UX_USER="root" UX_TTY="1" - XORG_CONF="/etc/X11/xorg.conf" + XORG_DEFAULT_CONF="/etc/X11/xorg.conf" XORG_NVIDIA_CONF="/etc/X11/xorg-nvidia.conf" + XORG_USER_CONF="/storage/.config/xorg.conf" if [ "$START_MRXVT" = "yes" -a -f /usr/bin/mrxvt-session ]; then UX_SESSION="/usr/bin/mrxvt-session" @@ -28,13 +29,16 @@ progress "creating directories needed for Xorg" if lspci -n | grep 0300 | grep -q 10de; then $IONICE ln -sf /usr/lib/libGL_nvidia.so.1 /var/lib/libGL.so $IONICE ln -sf /usr/lib/xorg/modules/extensions/libglx_nvidia.so /var/lib/libglx.so - UX_ARG="$UX_ARG -c $XORG_NVIDIA_CONF" + XORG_CONF="$XORG_NVIDIA_CONF" else $IONICE ln -sf /usr/lib/libGL_mesa.so.1 /var/lib/libGL.so $IONICE ln -sf /usr/lib/xorg/modules/extensions/libglx_mesa.so /var/lib/libglx.so - UX_ARG="$UX_ARG -c $XORG_CONF" + XORG_CONF="$XORG_DEFAULT_CONF" fi + [ -f $XORG_USER_CONF ] && XORG_CONF="$XORG_USER_CONF" + UX_ARG="$UX_ARG -c $XORG_CONF" + progress "starting xsession" uxlaunch $UX_ARG > /dev/null 2>&1 \ No newline at end of file From d7576e674ddb8a5bd513ae1350c04e4513f1727c Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Fri, 16 Apr 2010 23:50:38 +0200 Subject: [PATCH 107/320] alsa-lib: - update to alsa-lib-1.0.23 --- packages/audio/alsa-lib/url | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/audio/alsa-lib/url b/packages/audio/alsa-lib/url index 3b7894602c..413aeddb14 100644 --- a/packages/audio/alsa-lib/url +++ b/packages/audio/alsa-lib/url @@ -1 +1 @@ -ftp://ftp.alsa-project.org/pub/lib/alsa-lib-1.0.22.tar.bz2 +ftp://ftp.alsa-project.org/pub/lib/alsa-lib-1.0.23.tar.bz2 From 721718fa2315a0542b7d191187c82c8f1a1d37bb Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Fri, 16 Apr 2010 23:51:05 +0200 Subject: [PATCH 108/320] alsa-utils: - update to alsa-utils-1.0.23 --- packages/audio/alsa-utils/url | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/audio/alsa-utils/url b/packages/audio/alsa-utils/url index 10adebe80c..e4ca726338 100644 --- a/packages/audio/alsa-utils/url +++ b/packages/audio/alsa-utils/url @@ -1 +1 @@ -ftp://ftp.alsa-project.org/pub/utils/alsa-utils-1.0.22.tar.bz2 +ftp://ftp.alsa-project.org/pub/utils/alsa-utils-1.0.23.tar.bz2 From 3072c4dfa38058a59d3507299c7de29c4981dae7 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Fri, 16 Apr 2010 23:51:27 +0200 Subject: [PATCH 109/320] libmodplug: - update to libmodplug-0.8.8 --- packages/audio/libmodplug/url | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/audio/libmodplug/url b/packages/audio/libmodplug/url index b9c22de7b9..b4eb7d163d 100644 --- a/packages/audio/libmodplug/url +++ b/packages/audio/libmodplug/url @@ -1 +1 @@ -http://ignum.dl.sourceforge.net/project/modplug-xmms/libmodplug/0.8.7/libmodplug-0.8.7.tar.gz \ No newline at end of file +http://ignum.dl.sourceforge.net/project/modplug-xmms/libmodplug/0.8.8/libmodplug-0.8.8.tar.gz \ No newline at end of file From 71c2fc5b32970eb50d58972763cee860ad3ea9a5 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Fri, 16 Apr 2010 23:51:47 +0200 Subject: [PATCH 110/320] libogg: - update to libogg-1.2.0 --- packages/audio/libogg/url | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/audio/libogg/url b/packages/audio/libogg/url index 60bea1878d..b625a96597 100644 --- a/packages/audio/libogg/url +++ b/packages/audio/libogg/url @@ -1 +1 @@ -http://downloads.xiph.org/releases/ogg/libogg-1.1.4.tar.gz +http://downloads.xiph.org/releases/ogg/libogg-1.2.0.tar.gz From 97a2552ac9127e63333828311dafb446d860988c Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Fri, 16 Apr 2010 23:52:03 +0200 Subject: [PATCH 111/320] libvorbis: - update to libvorbis-1.3.1 --- packages/audio/libvorbis/url | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/audio/libvorbis/url b/packages/audio/libvorbis/url index 8442ab892e..2318cd28d9 100644 --- a/packages/audio/libvorbis/url +++ b/packages/audio/libvorbis/url @@ -1 +1 @@ -http://downloads.xiph.org/releases/vorbis/libvorbis-1.2.3.tar.bz2 +http://downloads.xiph.org/releases/vorbis/libvorbis-1.3.1.tar.bz2 From 79bfc9771cba907d07d4a1e5cbcb66a029935df5 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Fri, 16 Apr 2010 23:52:21 +0200 Subject: [PATCH 112/320] sqlite: - update to sqlite-amalgamation-3.6.23.1 --- packages/databases/sqlite/url | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/databases/sqlite/url b/packages/databases/sqlite/url index 9788217b8d..f9c15a15e8 100644 --- a/packages/databases/sqlite/url +++ b/packages/databases/sqlite/url @@ -1 +1 @@ -http://www.hwaci.com/sw/sqlite/sqlite-amalgamation-3.6.22.tar.gz +http://www.hwaci.com/sw/sqlite/sqlite-amalgamation-3.6.23.1.tar.gz From 8510ecd7359dc8c4c068e2e4141a0ff2bb81f865 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Fri, 16 Apr 2010 23:52:47 +0200 Subject: [PATCH 113/320] boost: - update to boost_1_42_0 --- packages/devel/boost/patches/patch.txt | 1 - .../boost/patches/pthread-prefer-posix.diff | 20 ------------------- packages/devel/boost/url | 2 +- 3 files changed, 1 insertion(+), 22 deletions(-) delete mode 100644 packages/devel/boost/patches/patch.txt delete mode 100644 packages/devel/boost/patches/pthread-prefer-posix.diff diff --git a/packages/devel/boost/patches/patch.txt b/packages/devel/boost/patches/patch.txt deleted file mode 100644 index 012bfc7d4b..0000000000 --- a/packages/devel/boost/patches/patch.txt +++ /dev/null @@ -1 +0,0 @@ -https://svn.boost.org/trac/boost/ticket/2053 diff --git a/packages/devel/boost/patches/pthread-prefer-posix.diff b/packages/devel/boost/patches/pthread-prefer-posix.diff deleted file mode 100644 index 901adb4ba3..0000000000 --- a/packages/devel/boost/patches/pthread-prefer-posix.diff +++ /dev/null @@ -1,20 +0,0 @@ ---- a/libs/thread/src/pthread/thread.cpp -+++ b/libs/thread/src/pthread/thread.cpp -@@ -388,8 +388,6 @@ namespace boost - { - #if defined(PTW32_VERSION) || defined(__hpux) - return pthread_num_processors_np(); --#elif defined(__linux__) -- return get_nprocs(); - #elif defined(__APPLE__) || defined(__FreeBSD__) - int count; - size_t size=sizeof(count); -@@ -397,6 +395,8 @@ namespace boost - #elif defined(BOOST_HAS_UNISTD_H) && defined(_SC_NPROCESSORS_ONLN) - int const count=sysconf(_SC_NPROCESSORS_ONLN); - return (count>0)?count:0; -+#elif defined(__linux__) -+ return get_nprocs(); - #else - return 0; - #endif diff --git a/packages/devel/boost/url b/packages/devel/boost/url index 3f41ed1d2c..651a556fa7 100644 --- a/packages/devel/boost/url +++ b/packages/devel/boost/url @@ -1 +1 @@ -http://switch.dl.sourceforge.net/sourceforge/boost/boost_1_40_0.tar.bz2 \ No newline at end of file +http://downloads.sourceforge.net/project/boost/boost/1.42.0/boost_1_42_0.tar.bz2 \ No newline at end of file From bc483c2c04c8af97d02e4c8c78eacbf8956b1093 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Fri, 16 Apr 2010 23:53:08 +0200 Subject: [PATCH 114/320] glib: - update to glib-2.24.0 --- packages/devel/glib/patches/glib-i386-atomic.diff | 15 --------------- packages/devel/glib/url | 2 +- 2 files changed, 1 insertion(+), 16 deletions(-) delete mode 100644 packages/devel/glib/patches/glib-i386-atomic.diff diff --git a/packages/devel/glib/patches/glib-i386-atomic.diff b/packages/devel/glib/patches/glib-i386-atomic.diff deleted file mode 100644 index 01495c0070..0000000000 --- a/packages/devel/glib/patches/glib-i386-atomic.diff +++ /dev/null @@ -1,15 +0,0 @@ -diff -up glib-2.16.6/configure.atomic glib-2.16.6/configure ---- glib-2.16.6/configure.atomic 2008-10-27 18:24:20.000000000 -0400 -+++ glib-2.16.6/configure 2008-10-27 18:24:31.000000000 -0400 -@@ -42742,11 +42742,6 @@ $as_echo_n "checking whether to use asse - - if test x"$GCC" = xyes; then - case $host_cpu in -- i386) -- { $as_echo "$as_me:$LINENO: result: none" >&5 --$as_echo "none" >&6; } -- glib_memory_barrier_needed=no -- ;; - i?86) - { $as_echo "$as_me:$LINENO: result: i486" >&5 - $as_echo "i486" >&6; } diff --git a/packages/devel/glib/url b/packages/devel/glib/url index 1313421652..09f2a9f386 100644 --- a/packages/devel/glib/url +++ b/packages/devel/glib/url @@ -1 +1 @@ -http://ftp.gnome.org/pub/GNOME/sources/glib/2.23/glib-2.23.1.tar.bz2 +http://ftp.gnome.org/pub/GNOME/sources/glib/2.24/glib-2.24.0.tar.bz2 From 1394964684a14df09b83e7922dc83fcedefd63b9 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Fri, 16 Apr 2010 23:53:26 +0200 Subject: [PATCH 115/320] pcre: - update to pcre-8.02 --- packages/devel/pcre/url | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/devel/pcre/url b/packages/devel/pcre/url index 81c0b3ad0f..9783af7d77 100644 --- a/packages/devel/pcre/url +++ b/packages/devel/pcre/url @@ -1 +1 @@ -ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-7.9.tar.bz2 \ No newline at end of file +http://downloads.sourceforge.net/project/pcre/pcre/8.02/pcre-8.02.tar.bz2 From 1c0271ce4e277148530e8d13b01fc1072e3aed6f Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Fri, 16 Apr 2010 23:53:47 +0200 Subject: [PATCH 116/320] iwlwifi-6000-ucode: - update to iwlwifi-6000-ucode-9.193.4.1 --- packages/firmware/iwlwifi-6000-ucode/url | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/firmware/iwlwifi-6000-ucode/url b/packages/firmware/iwlwifi-6000-ucode/url index f5ae87a182..793540c966 100644 --- a/packages/firmware/iwlwifi-6000-ucode/url +++ b/packages/firmware/iwlwifi-6000-ucode/url @@ -1 +1 @@ -http://www.intellinuxwireless.org/iwlwifi/downloads/iwlwifi-6000-ucode-9.176.4.1.tgz \ No newline at end of file +http://www.intellinuxwireless.org/iwlwifi/downloads/iwlwifi-6000-ucode-9.193.4.1.tgz \ No newline at end of file From aea6f6b2446b93d051d6d9c92fb4fe543e24b9d4 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Fri, 16 Apr 2010 23:54:04 +0200 Subject: [PATCH 117/320] glew: - update to glew-1.5.3 --- packages/graphics/glew/url | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/graphics/glew/url b/packages/graphics/glew/url index 7ae0ffda72..9419d27204 100644 --- a/packages/graphics/glew/url +++ b/packages/graphics/glew/url @@ -1 +1 @@ -http://downloads.sourceforge.net/project/glew/glew/1.5.2/glew-1.5.2.tgz \ No newline at end of file +http://downloads.sourceforge.net/project/glew/glew/1.5.3/glew-1.5.3.tgz \ No newline at end of file From 1cad8671190b4ad5cc82437d05df69f17d953fe0 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Fri, 16 Apr 2010 23:54:21 +0200 Subject: [PATCH 118/320] jpeg: - update to jpegsrc.v8a --- packages/graphics/jpeg/url | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/graphics/jpeg/url b/packages/graphics/jpeg/url index 8f2432bd08..888f9f2a7a 100644 --- a/packages/graphics/jpeg/url +++ b/packages/graphics/jpeg/url @@ -1 +1 @@ -http://www.ijg.org/files/jpegsrc.v7.tar.gz \ No newline at end of file +http://www.ijg.org/files/jpegsrc.v8a.tar.gz \ No newline at end of file From e5d6015e436701a7698416923fc714e2ce5a6677 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Fri, 16 Apr 2010 23:54:37 +0200 Subject: [PATCH 119/320] libpng: - update to libpng-1.4.1 --- ...1.4.0-apng.diff => libpng-1.4.1-apng.diff} | 222 +++++++++--------- packages/graphics/libpng/url | 2 +- 2 files changed, 110 insertions(+), 114 deletions(-) rename packages/graphics/libpng/patches/{libpng-1.4.0-apng.diff => libpng-1.4.1-apng.diff} (92%) diff --git a/packages/graphics/libpng/patches/libpng-1.4.0-apng.diff b/packages/graphics/libpng/patches/libpng-1.4.1-apng.diff similarity index 92% rename from packages/graphics/libpng/patches/libpng-1.4.0-apng.diff rename to packages/graphics/libpng/patches/libpng-1.4.1-apng.diff index 75f65dd14d..3ef2eedbbb 100644 --- a/packages/graphics/libpng/patches/libpng-1.4.0-apng.diff +++ b/packages/graphics/libpng/patches/libpng-1.4.1-apng.diff @@ -1,7 +1,7 @@ -diff -Naur libpng-1.4.0/pngconf.h libpng-1.4.0.patch/pngconf.h ---- libpng-1.4.0/pngconf.h 2010-01-03 06:05:36.000000000 +0100 -+++ libpng-1.4.0.patch/pngconf.h 2010-02-07 22:41:01.976857238 +0100 -@@ -845,6 +845,10 @@ +diff -Naur libpng-1.4.1/pngconf.h libpng-1.4.1.patch/pngconf.h +--- libpng-1.4.1/pngconf.h 2010-02-25 12:38:29.000000000 +0100 ++++ libpng-1.4.1.patch/pngconf.h 2010-04-16 21:09:43.641352386 +0200 +@@ -869,6 +869,10 @@ # define PNG_READ_tRNS_SUPPORTED # define PNG_tRNS_SUPPORTED #endif @@ -12,7 +12,7 @@ diff -Naur libpng-1.4.0/pngconf.h libpng-1.4.0.patch/pngconf.h #ifndef PNG_NO_READ_zTXt # define PNG_READ_zTXt_SUPPORTED # define PNG_zTXt_SUPPORTED -@@ -1002,6 +1006,14 @@ +@@ -1028,6 +1032,14 @@ # define PNG_TEXT_SUPPORTED # endif #endif @@ -27,9 +27,9 @@ diff -Naur libpng-1.4.0/pngconf.h libpng-1.4.0.patch/pngconf.h #ifdef PNG_WRITE_tIME_SUPPORTED # ifndef PNG_NO_CONVERT_tIME -diff -Naur libpng-1.4.0/pngget.c libpng-1.4.0.patch/pngget.c ---- libpng-1.4.0/pngget.c 2010-01-03 06:05:36.000000000 +0100 -+++ libpng-1.4.0.patch/pngget.c 2010-02-07 22:41:01.955858172 +0100 +diff -Naur libpng-1.4.1/pngget.c libpng-1.4.1.patch/pngget.c +--- libpng-1.4.1/pngget.c 2010-02-25 12:38:29.000000000 +0100 ++++ libpng-1.4.1.patch/pngget.c 2010-04-16 21:09:34.942347204 +0200 @@ -842,6 +842,167 @@ } #endif @@ -198,10 +198,10 @@ diff -Naur libpng-1.4.0/pngget.c libpng-1.4.0.patch/pngget.c #ifdef PNG_UNKNOWN_CHUNKS_SUPPORTED png_uint_32 PNGAPI png_get_unknown_chunks(png_structp png_ptr, png_infop info_ptr, -diff -Naur libpng-1.4.0/png.h libpng-1.4.0.patch/png.h ---- libpng-1.4.0/png.h 2010-01-03 06:05:35.000000000 +0100 -+++ libpng-1.4.0.patch/png.h 2010-02-07 22:41:01.969858760 +0100 -@@ -861,6 +861,19 @@ +diff -Naur libpng-1.4.1/png.h libpng-1.4.1.patch/png.h +--- libpng-1.4.1/png.h 2010-02-25 12:38:29.000000000 +0100 ++++ libpng-1.4.1.patch/png.h 2010-04-16 21:09:36.985444853 +0200 +@@ -888,6 +888,19 @@ png_fixed_point int_y_blue PNG_DEPSTRUCT; #endif @@ -221,7 +221,7 @@ diff -Naur libpng-1.4.0/png.h libpng-1.4.0.patch/png.h } png_info; typedef png_info FAR * png_infop; -@@ -958,6 +971,10 @@ +@@ -985,6 +998,10 @@ #define PNG_INFO_sPLT 0x2000 /* ESR, 1.0.6 */ #define PNG_INFO_sCAL 0x4000 /* ESR, 1.0.6 */ #define PNG_INFO_IDAT 0x8000L /* ESR, 1.0.6 */ @@ -232,7 +232,7 @@ diff -Naur libpng-1.4.0/png.h libpng-1.4.0.patch/png.h /* This is used for the transformation routines, as some of them * change these values for the row. It also should enable using -@@ -998,6 +1015,10 @@ +@@ -1026,6 +1043,10 @@ typedef void (PNGAPI *png_progressive_end_ptr) PNGARG((png_structp, png_infop)); typedef void (PNGAPI *png_progressive_row_ptr) PNGARG((png_structp, png_bytep, png_uint_32, int)); @@ -243,7 +243,7 @@ diff -Naur libpng-1.4.0/png.h libpng-1.4.0.patch/png.h #endif #if defined(PNG_READ_USER_TRANSFORM_SUPPORTED) || \ -@@ -1320,6 +1341,39 @@ +@@ -1445,6 +1466,36 @@ png_uint_32 user_chunk_cache_max PNG_DEPSTRUCT; #endif @@ -267,9 +267,6 @@ diff -Naur libpng-1.4.0/png.h libpng-1.4.0.patch/png.h + png_uint_32 num_frames_written; +#endif + -+/* For png_struct.apng_flags: */ -+#define PNG_FIRST_FRAME_HIDDEN 0x0001 -+ +/* dispose_op flags from inside fcTL */ +#define PNG_DISPOSE_OP_NONE 0x00 +#define PNG_DISPOSE_OP_BACKGROUND 0x01 @@ -283,7 +280,7 @@ diff -Naur libpng-1.4.0/png.h libpng-1.4.0.patch/png.h /* New member added in libpng-1.0.25 and 1.2.17 */ #ifdef PNG_UNKNOWN_CHUNKS_SUPPORTED /* Storage for unknown chunk that the library doesn't recognize. */ -@@ -1648,6 +1702,18 @@ +@@ -1773,6 +1824,18 @@ extern PNG_EXPORT(void,png_write_image) PNGARG((png_structp png_ptr, png_bytepp image)); @@ -302,7 +299,7 @@ diff -Naur libpng-1.4.0/png.h libpng-1.4.0.patch/png.h /* Write the end of the PNG file. */ extern PNG_EXPORT(void,png_write_end) PNGARG((png_structp png_ptr, png_infop info_ptr)); -@@ -1891,6 +1957,11 @@ +@@ -2017,6 +2080,11 @@ png_voidp progressive_ptr, png_progressive_info_ptr info_fn, png_progressive_row_ptr row_fn, png_progressive_end_ptr end_fn)); @@ -314,7 +311,7 @@ diff -Naur libpng-1.4.0/png.h libpng-1.4.0.patch/png.h /* Returns the user pointer associated with the push read functions */ extern PNG_EXPORT(png_voidp,png_get_progressive_ptr) -@@ -2317,6 +2388,59 @@ +@@ -2443,6 +2511,53 @@ #endif #endif /* PNG_sCAL_SUPPORTED || PNG_WRITE_sCAL_SUPPORTED */ @@ -338,12 +335,6 @@ diff -Naur libpng-1.4.0/png.h libpng-1.4.0.patch/png.h + png_uint_32 height, png_uint_32 x_offset, png_uint_32 y_offset, + png_uint_16 delay_num, png_uint_16 delay_den, png_byte dispose_op, + png_byte blend_op)); -+extern PNG_EXPORT(void,png_ensure_fcTL_is_valid) -+ PNGARG((png_structp png_ptr, -+ png_uint_32 width, png_uint_32 height, -+ png_uint_32 x_offset, png_uint_32 y_offset, -+ png_uint_16 delay_num, png_uint_16 delay_den, -+ png_byte dispose_op, png_byte blend_op)); +extern PNG_EXPORT(png_uint_32,png_get_next_frame_width) + PNGARG((png_structp png_ptr, png_infop info_ptr)); +extern PNG_EXPORT(png_uint_32,png_get_next_frame_height) @@ -374,9 +365,9 @@ diff -Naur libpng-1.4.0/png.h libpng-1.4.0.patch/png.h #ifdef PNG_HANDLE_AS_UNKNOWN_SUPPORTED /* Provide a list of chunks and how they are to be handled, if the built-in handling or default unknown chunk handling is not desired. Any chunks not -diff -Naur libpng-1.4.0/pngpread.c libpng-1.4.0.patch/pngpread.c ---- libpng-1.4.0/pngpread.c 2010-01-03 06:05:36.000000000 +0100 -+++ libpng-1.4.0.patch/pngpread.c 2010-02-07 22:41:01.978856784 +0100 +diff -Naur libpng-1.4.1/pngpread.c libpng-1.4.1.patch/pngpread.c +--- libpng-1.4.1/pngpread.c 2010-02-25 12:38:29.000000000 +0100 ++++ libpng-1.4.1.patch/pngpread.c 2010-04-16 21:09:45.794352317 +0200 @@ -205,6 +205,11 @@ #ifdef PNG_READ_zTXt_SUPPORTED PNG_zTXt; @@ -503,7 +494,7 @@ diff -Naur libpng-1.4.0/pngpread.c libpng-1.4.0.patch/pngpread.c png_ptr->idat_size = png_ptr->push_length; png_ptr->mode |= PNG_HAVE_IDAT; png_ptr->process_mode = PNG_READ_IDAT_MODE; -@@ -555,6 +660,38 @@ +@@ -557,6 +662,38 @@ } #endif @@ -542,7 +533,7 @@ diff -Naur libpng-1.4.0/pngpread.c libpng-1.4.0.patch/pngpread.c else { if (png_ptr->push_length + 4 > png_ptr->buffer_size) -@@ -729,11 +866,15 @@ +@@ -736,11 +873,15 @@ png_push_read_IDAT(png_structp png_ptr) { PNG_IDAT; @@ -559,7 +550,7 @@ diff -Naur libpng-1.4.0/pngpread.c libpng-1.4.0.patch/pngpread.c { png_push_save_buffer(png_ptr); return; -@@ -745,15 +886,62 @@ +@@ -752,15 +893,62 @@ png_crc_read(png_ptr, png_ptr->chunk_name, 4); png_ptr->mode |= PNG_HAVE_CHUNK_HEADER; @@ -623,7 +614,7 @@ diff -Naur libpng-1.4.0/pngpread.c libpng-1.4.0.patch/pngpread.c } if (png_ptr->idat_size && png_ptr->save_buffer_size) { -@@ -1710,6 +1898,17 @@ +@@ -1716,6 +1904,17 @@ png_set_read_fn(png_ptr, progressive_ptr, png_push_fill_buffer); } @@ -641,9 +632,9 @@ diff -Naur libpng-1.4.0/pngpread.c libpng-1.4.0.patch/pngpread.c png_voidp PNGAPI png_get_progressive_ptr(png_structp png_ptr) { -diff -Naur libpng-1.4.0/pngpriv.h libpng-1.4.0.patch/pngpriv.h ---- libpng-1.4.0/pngpriv.h 2010-01-03 06:05:36.000000000 +0100 -+++ libpng-1.4.0.patch/pngpriv.h 2010-02-07 22:41:01.971859004 +0100 +diff -Naur libpng-1.4.1/pngpriv.h libpng-1.4.1.patch/pngpriv.h +--- libpng-1.4.1/pngpriv.h 2010-02-25 12:38:29.000000000 +0100 ++++ libpng-1.4.1.patch/pngpriv.h 2010-04-16 21:09:39.167350934 +0200 @@ -98,6 +98,10 @@ #define PNG_BACKGROUND_IS_GRAY 0x800 #define PNG_HAVE_PNG_SIGNATURE 0x1000 @@ -655,7 +646,7 @@ diff -Naur libpng-1.4.0/pngpriv.h libpng-1.4.0.patch/pngpriv.h /* Flags for the transformations the PNG library does on the image data */ #define PNG_BGR 0x0001 -@@ -231,6 +235,11 @@ +@@ -231,6 +235,14 @@ #define PNG_tIME PNG_CONST png_byte png_tIME[5] = {116, 73, 77, 69, '\0'} #define PNG_tRNS PNG_CONST png_byte png_tRNS[5] = {116, 82, 78, 83, '\0'} #define PNG_zTXt PNG_CONST png_byte png_zTXt[5] = {122, 84, 88, 116, '\0'} @@ -663,11 +654,14 @@ diff -Naur libpng-1.4.0/pngpriv.h libpng-1.4.0.patch/pngpriv.h +#define PNG_acTL PNG_CONST png_byte png_acTL[5] = { 97, 99, 84, 76, '\0'} +#define PNG_fcTL PNG_CONST png_byte png_fcTL[5] = {102, 99, 84, 76, '\0'} +#define PNG_fdAT PNG_CONST png_byte png_fdAT[5] = {102, 100, 65, 84, '\0'} ++ ++/* For png_struct.apng_flags: */ ++#define PNG_FIRST_FRAME_HIDDEN 0x0001 +#endif /* Inhibit C++ name-mangling for libpng functions but not for system calls. */ -@@ -468,6 +477,17 @@ +@@ -468,6 +480,17 @@ #endif #endif @@ -685,7 +679,7 @@ diff -Naur libpng-1.4.0/pngpriv.h libpng-1.4.0.patch/pngpriv.h /* Called when finished processing a row of data */ PNG_EXTERN void png_write_finish_row PNGARG((png_structp png_ptr)); -@@ -520,6 +540,20 @@ +@@ -520,6 +543,20 @@ PNG_EXTERN void png_read_transform_info PNGARG((png_structp png_ptr, png_infop info_ptr)); @@ -706,7 +700,7 @@ diff -Naur libpng-1.4.0/pngpriv.h libpng-1.4.0.patch/pngpriv.h /* These are the functions that do the transformations */ #ifdef PNG_READ_FILLER_SUPPORTED PNG_EXTERN void png_do_read_filler PNGARG((png_row_infop row_info, -@@ -735,6 +769,18 @@ +@@ -736,6 +773,25 @@ png_uint_32 length)); #endif @@ -721,14 +715,21 @@ diff -Naur libpng-1.4.0/pngpriv.h libpng-1.4.0.patch/pngpriv.h +PNG_EXTERN void png_ensure_sequence_number PNGARG((png_structp png_ptr, + png_uint_32 length)); +#endif ++#ifdef PNG_APNG_SUPPORTED ++PNG_EXTERN void png_ensure_fcTL_is_valid PNGARG((png_structp png_ptr, ++ png_uint_32 width, png_uint_32 height, ++ png_uint_32 x_offset, png_uint_32 y_offset, ++ png_uint_16 delay_num, png_uint_16 delay_den, ++ png_byte dispose_op, png_byte blend_op)); ++#endif + PNG_EXTERN void png_handle_unknown PNGARG((png_structp png_ptr, png_infop info_ptr, png_uint_32 length)); -diff -Naur libpng-1.4.0/pngread.c libpng-1.4.0.patch/pngread.c ---- libpng-1.4.0/pngread.c 2010-01-03 06:05:36.000000000 +0100 -+++ libpng-1.4.0.patch/pngread.c 2010-02-07 22:41:01.522983852 +0100 -@@ -292,6 +292,11 @@ +diff -Naur libpng-1.4.1/pngread.c libpng-1.4.1.patch/pngread.c +--- libpng-1.4.1/pngread.c 2010-02-25 12:38:29.000000000 +0100 ++++ libpng-1.4.1.patch/pngread.c 2010-04-16 21:09:26.430319940 +0200 +@@ -300,6 +300,11 @@ #ifdef PNG_READ_zTXt_SUPPORTED PNG_zTXt; #endif @@ -740,7 +741,7 @@ diff -Naur libpng-1.4.0/pngread.c libpng-1.4.0.patch/pngread.c png_uint_32 length = png_read_chunk_header(png_ptr); PNG_CONST png_bytep chunk_name = png_ptr->chunk_name; -@@ -335,6 +340,9 @@ +@@ -343,6 +348,9 @@ !(png_ptr->mode & PNG_HAVE_PLTE)) png_error(png_ptr, "Missing PLTE before IDAT"); @@ -750,7 +751,7 @@ diff -Naur libpng-1.4.0/pngread.c libpng-1.4.0.patch/pngread.c png_ptr->idat_size = length; png_ptr->mode |= PNG_HAVE_IDAT; break; -@@ -407,12 +415,95 @@ +@@ -415,12 +423,95 @@ else if (!png_memcmp(chunk_name, png_iTXt, 4)) png_handle_iTXt(png_ptr, info_ptr, length); #endif @@ -846,7 +847,7 @@ diff -Naur libpng-1.4.0/pngread.c libpng-1.4.0.patch/pngread.c /* Optional call to update the users info_ptr structure */ void PNGAPI png_read_update_info(png_structp png_ptr, png_infop info_ptr) -@@ -453,6 +544,10 @@ +@@ -461,6 +552,10 @@ png_read_row(png_structp png_ptr, png_bytep row, png_bytep dsp_row) { PNG_IDAT; @@ -857,7 +858,7 @@ diff -Naur libpng-1.4.0/pngread.c libpng-1.4.0.patch/pngread.c PNG_CONST int png_pass_dsp_mask[7] = {0xff, 0x0f, 0xff, 0x33, 0xff, 0x55, 0xff}; PNG_CONST int png_pass_mask[7] = {0x80, 0x08, 0x88, 0x22, 0xaa, 0x55, 0xff}; -@@ -585,13 +680,39 @@ +@@ -596,13 +691,39 @@ { if (!(png_ptr->zstream.avail_in)) { @@ -899,7 +900,7 @@ diff -Naur libpng-1.4.0/pngread.c libpng-1.4.0.patch/pngread.c } png_ptr->zstream.avail_in = (uInt)png_ptr->zbuf_size; png_ptr->zstream.next_in = png_ptr->zbuf; -@@ -609,6 +730,9 @@ +@@ -620,6 +741,9 @@ png_benign_error(png_ptr, "Extra compressed data"); png_ptr->mode |= PNG_AFTER_IDAT; png_ptr->flags |= PNG_FLAG_ZLIB_FINISHED; @@ -909,7 +910,7 @@ diff -Naur libpng-1.4.0/pngread.c libpng-1.4.0.patch/pngread.c break; } if (ret != Z_OK) -@@ -864,6 +988,11 @@ +@@ -875,6 +999,11 @@ #ifdef PNG_READ_zTXt_SUPPORTED PNG_zTXt; #endif @@ -921,7 +922,7 @@ diff -Naur libpng-1.4.0/pngread.c libpng-1.4.0.patch/pngread.c png_uint_32 length = png_read_chunk_header(png_ptr); PNG_CONST png_bytep chunk_name = png_ptr->chunk_name; -@@ -963,6 +1092,14 @@ +@@ -974,6 +1103,14 @@ else if (!png_memcmp(chunk_name, png_iTXt, 4)) png_handle_iTXt(png_ptr, info_ptr, length); #endif @@ -936,10 +937,10 @@ diff -Naur libpng-1.4.0/pngread.c libpng-1.4.0.patch/pngread.c else png_handle_unknown(png_ptr, info_ptr, length); } while (!(png_ptr->mode & PNG_HAVE_IEND)); -diff -Naur libpng-1.4.0/pngrtran.c libpng-1.4.0.patch/pngrtran.c ---- libpng-1.4.0/pngrtran.c 2010-01-03 06:05:36.000000000 +0100 -+++ libpng-1.4.0.patch/pngrtran.c 2010-02-07 22:41:01.997856654 +0100 -@@ -1320,7 +1320,7 @@ +diff -Naur libpng-1.4.1/pngrtran.c libpng-1.4.1.patch/pngrtran.c +--- libpng-1.4.1/pngrtran.c 2010-02-25 12:38:29.000000000 +0100 ++++ libpng-1.4.1.patch/pngrtran.c 2010-04-16 21:09:53.311444698 +0200 +@@ -1325,7 +1325,7 @@ * pixels. This check added to libpng-1.2.19 */ #if (PNG_WARN_UNINITIALIZED_ROW==1) @@ -948,10 +949,10 @@ diff -Naur libpng-1.4.0/pngrtran.c libpng-1.4.0.patch/pngrtran.c #else png_warning(png_ptr, "Uninitialized row"); #endif -diff -Naur libpng-1.4.0/pngrutil.c libpng-1.4.0.patch/pngrutil.c ---- libpng-1.4.0/pngrutil.c 2010-01-03 06:05:36.000000000 +0100 -+++ libpng-1.4.0.patch/pngrutil.c 2010-02-07 22:41:01.986856711 +0100 -@@ -423,6 +423,11 @@ +diff -Naur libpng-1.4.1/pngrutil.c libpng-1.4.1.patch/pngrutil.c +--- libpng-1.4.1/pngrutil.c 2010-02-25 12:38:29.000000000 +0100 ++++ libpng-1.4.1.patch/pngrutil.c 2010-04-16 21:09:49.604444890 +0200 +@@ -434,6 +434,11 @@ filter_type = buf[11]; interlace_type = buf[12]; @@ -963,7 +964,7 @@ diff -Naur libpng-1.4.0/pngrutil.c libpng-1.4.0.patch/pngrutil.c /* Set internal variables */ png_ptr->width = width; png_ptr->height = height; -@@ -2294,6 +2299,168 @@ +@@ -2318,6 +2323,172 @@ } #endif @@ -1025,9 +1026,11 @@ diff -Naur libpng-1.4.0/pngrutil.c libpng-1.4.0.patch/pngrutil.c + png_uint_16 delay_den; + png_byte dispose_op; + png_byte blend_op; -+ ++ + png_debug(1, "in png_handle_fcTL"); -+ ++ ++ png_ensure_sequence_number(png_ptr, length); ++ + if (!(png_ptr->mode & PNG_HAVE_IHDR)) + { + png_error(png_ptr, "Missing IHDR before fcTL"); @@ -1038,27 +1041,25 @@ diff -Naur libpng-1.4.0/pngrutil.c libpng-1.4.0.patch/pngrutil.c + * but correct. PNG_HAVE_IDAT is unset before the frame head is read + * i can't think of a better message */ + png_warning(png_ptr, "Invalid fcTL after IDAT skipped"); -+ png_crc_finish(png_ptr, length); ++ png_crc_finish(png_ptr, length-4); + return; + } + else if (png_ptr->mode & PNG_HAVE_fcTL) + { + png_warning(png_ptr, "Duplicate fcTL within one frame skipped"); -+ png_crc_finish(png_ptr, length); ++ png_crc_finish(png_ptr, length-4); + return; + } + else if (length != 26) + { + png_warning(png_ptr, "fcTL with invalid length skipped"); -+ png_crc_finish(png_ptr, length); ++ png_crc_finish(png_ptr, length-4); + return; + } -+ -+ png_ensure_sequence_number(png_ptr, length); -+ ++ + png_crc_read(png_ptr, data, 22); + png_crc_finish(png_ptr, 0); -+ ++ + width = png_get_uint_31(png_ptr, data); + height = png_get_uint_31(png_ptr, data + 4); + x_offset = png_get_uint_31(png_ptr, data + 8); @@ -1067,21 +1068,25 @@ diff -Naur libpng-1.4.0/pngrutil.c libpng-1.4.0.patch/pngrutil.c + delay_den = png_get_uint_16(data + 18); + dispose_op = data[20]; + blend_op = data[21]; -+ ++ + if (png_ptr->num_frames_read == 0 && (x_offset != 0 || y_offset != 0)) + png_error(png_ptr, "fcTL for the first frame must have zero offset"); -+ if (png_ptr->num_frames_read == 0 && -+ (width != info_ptr->width || height != info_ptr->height)) -+ png_error(png_ptr, "size in first frame's fcTL must match " -+ "the size in IHDR"); -+ -+ /* the set function will do more error checking */ -+ png_set_next_frame_fcTL(png_ptr, info_ptr, width, height, -+ x_offset, y_offset, delay_num, delay_den, -+ dispose_op, blend_op); -+ -+ png_read_reinit(png_ptr, info_ptr); -+ ++ ++ if (info_ptr != NULL) ++ { ++ if (png_ptr->num_frames_read == 0 && ++ (width != info_ptr->width || height != info_ptr->height)) ++ png_error(png_ptr, "size in first frame's fcTL must match " ++ "the size in IHDR"); ++ ++ /* the set function will do more error checking */ ++ png_set_next_frame_fcTL(png_ptr, info_ptr, width, height, ++ x_offset, y_offset, delay_num, delay_den, ++ dispose_op, blend_op); ++ ++ png_read_reinit(png_ptr, info_ptr); ++ } ++ + png_ptr->mode |= PNG_HAVE_fcTL; +} + @@ -1132,7 +1137,7 @@ diff -Naur libpng-1.4.0/pngrutil.c libpng-1.4.0.patch/pngrutil.c /* This function is called when we haven't found a handler for a chunk. If there isn't a problem with the chunk itself (ie bad chunk name, CRC, or a critical chunk), the chunk is silently ignored -@@ -3333,4 +3500,82 @@ +@@ -3353,4 +3524,73 @@ png_ptr->flags |= PNG_FLAG_ROW_INIT; } @@ -1176,7 +1181,6 @@ diff -Naur libpng-1.4.0/pngrutil.c libpng-1.4.0.patch/pngrutil.c + + /* offset to next interlace block in the y direction */ + const int FARDATA png_pass_yinc[] = {8, 8, 8, 4, 4, 2, 2}; -+ png_uint_32 row_bytes; + + if (png_ptr->interlaced) + { @@ -1190,34 +1194,26 @@ diff -Naur libpng-1.4.0/pngrutil.c libpng-1.4.0.patch/pngrutil.c + png_pass_inc[png_ptr->pass] - 1 - + png_pass_start[png_ptr->pass]) / + png_pass_inc[png_ptr->pass]; -+ -+ row_bytes = PNG_ROWBYTES(png_ptr->pixel_depth,png_ptr->iwidth) + 1; -+ -+ png_ptr->irowbytes = (png_size_t)row_bytes; -+ if((png_uint_32)png_ptr->irowbytes != row_bytes) -+ png_error(png_ptr, "png_progressive_read_reset(): Rowbytes " -+ "overflow"); + } + else + { + png_ptr->num_rows = png_ptr->height; + png_ptr->iwidth = png_ptr->width; -+ png_ptr->irowbytes = png_ptr->rowbytes + 1; + } -+ + png_ptr->flags &= ~PNG_FLAG_ZLIB_FINISHED; + if (inflateReset(&(png_ptr->zstream)) != Z_OK) + png_error(png_ptr, "inflateReset failed"); + png_ptr->zstream.avail_in = 0; + png_ptr->zstream.next_in = 0; + png_ptr->zstream.next_out = png_ptr->row_buf; -+ png_ptr->zstream.avail_out = (uInt)png_ptr->irowbytes; ++ png_ptr->zstream.avail_out = (uInt)PNG_ROWBYTES(png_ptr->pixel_depth, ++ png_ptr->iwidth) + 1; +} +#endif /* PNG_READ_APNG_SUPPORTED */ #endif /* PNG_READ_SUPPORTED */ -diff -Naur libpng-1.4.0/pngset.c libpng-1.4.0.patch/pngset.c ---- libpng-1.4.0/pngset.c 2010-01-03 06:05:36.000000000 +0100 -+++ libpng-1.4.0.patch/pngset.c 2010-02-07 22:41:01.979856906 +0100 +diff -Naur libpng-1.4.1/pngset.c libpng-1.4.1.patch/pngset.c +--- libpng-1.4.1/pngset.c 2010-02-25 12:38:29.000000000 +0100 ++++ libpng-1.4.1.patch/pngset.c 2010-04-16 21:09:47.875332919 +0200 @@ -260,6 +260,11 @@ info_ptr->rowbytes = 0; else @@ -1373,10 +1369,10 @@ diff -Naur libpng-1.4.0/pngset.c libpng-1.4.0.patch/pngset.c #ifdef PNG_UNKNOWN_CHUNKS_SUPPORTED void PNGAPI png_set_unknown_chunks(png_structp png_ptr, -diff -Naur libpng-1.4.0/pngwrite.c libpng-1.4.0.patch/pngwrite.c ---- libpng-1.4.0/pngwrite.c 2010-01-03 06:05:36.000000000 +0100 -+++ libpng-1.4.0.patch/pngwrite.c 2010-02-07 22:41:01.974858880 +0100 -@@ -56,6 +56,10 @@ +diff -Naur libpng-1.4.1/pngwrite.c libpng-1.4.1.patch/pngwrite.c +--- libpng-1.4.1/pngwrite.c 2010-02-25 12:38:30.000000000 +0100 ++++ libpng-1.4.1.patch/pngwrite.c 2010-04-16 21:09:40.967447171 +0200 +@@ -57,6 +57,10 @@ /* The rest of these check to see if the valid field has the appropriate * flag set, and if it does, writes the chunk. */ @@ -1387,7 +1383,7 @@ diff -Naur libpng-1.4.0/pngwrite.c libpng-1.4.0.patch/pngwrite.c #ifdef PNG_WRITE_gAMA_SUPPORTED if (info_ptr->valid & PNG_INFO_gAMA) { -@@ -318,6 +322,10 @@ +@@ -319,6 +323,10 @@ return; if (!(png_ptr->mode & PNG_HAVE_IDAT)) png_error(png_ptr, "No IDATs written into file"); @@ -1398,7 +1394,7 @@ diff -Naur libpng-1.4.0/pngwrite.c libpng-1.4.0.patch/pngwrite.c /* See if user wants us to write information chunks */ if (info_ptr != NULL) -@@ -1451,4 +1459,39 @@ +@@ -1454,4 +1462,39 @@ params = params; } #endif @@ -1438,10 +1434,10 @@ diff -Naur libpng-1.4.0/pngwrite.c libpng-1.4.0.patch/pngwrite.c +#endif /* PNG_WRITE_APNG_SUPPORTED */ + #endif /* PNG_WRITE_SUPPORTED */ -diff -Naur libpng-1.4.0/pngwutil.c libpng-1.4.0.patch/pngwutil.c ---- libpng-1.4.0/pngwutil.c 2010-01-03 06:05:36.000000000 +0100 -+++ libpng-1.4.0.patch/pngwutil.c 2010-02-07 22:41:01.994856708 +0100 -@@ -538,6 +538,11 @@ +diff -Naur libpng-1.4.1/pngwutil.c libpng-1.4.1.patch/pngwutil.c +--- libpng-1.4.1/pngwutil.c 2010-02-25 12:38:30.000000000 +0100 ++++ libpng-1.4.1.patch/pngwutil.c 2010-04-16 21:09:51.260444582 +0200 +@@ -539,6 +539,11 @@ /* Write the chunk */ png_write_chunk(png_ptr, (png_bytep)png_IHDR, buf, (png_size_t)13); @@ -1453,7 +1449,7 @@ diff -Naur libpng-1.4.0/pngwutil.c libpng-1.4.0.patch/pngwutil.c /* Initialize zlib with PNG info */ png_ptr->zstream.zalloc = png_zalloc; png_ptr->zstream.zfree = png_zfree; -@@ -658,6 +663,9 @@ +@@ -661,6 +666,9 @@ png_write_IDAT(png_structp png_ptr, png_bytep data, png_size_t length) { PNG_IDAT; @@ -1463,7 +1459,7 @@ diff -Naur libpng-1.4.0/pngwutil.c libpng-1.4.0.patch/pngwutil.c png_debug(1, "in png_write_IDAT"); -@@ -702,7 +710,28 @@ +@@ -705,7 +713,28 @@ "Invalid zlib compression method or flags in IDAT"); } @@ -1492,7 +1488,7 @@ diff -Naur libpng-1.4.0/pngwutil.c libpng-1.4.0.patch/pngwutil.c png_ptr->mode |= PNG_HAVE_IDAT; } -@@ -1709,6 +1738,66 @@ +@@ -1712,6 +1741,66 @@ } #endif @@ -1559,7 +1555,7 @@ diff -Naur libpng-1.4.0/pngwutil.c libpng-1.4.0.patch/pngwutil.c /* Initializes the row writing capability of libpng */ void /* PRIVATE */ png_write_start_row(png_structp png_ptr) -@@ -2110,8 +2199,8 @@ +@@ -2113,8 +2202,8 @@ #ifndef PNG_WRITE_WEIGHTED_FILTER_SUPPORTED if (png_ptr->row_number == 0 && filter_to_do == PNG_ALL_FILTERS) { @@ -1570,7 +1566,7 @@ diff -Naur libpng-1.4.0/pngwutil.c libpng-1.4.0.patch/pngwutil.c } #endif -@@ -2780,4 +2869,39 @@ +@@ -2783,4 +2872,39 @@ } #endif } diff --git a/packages/graphics/libpng/url b/packages/graphics/libpng/url index 29617c0846..ea08a4d2ee 100644 --- a/packages/graphics/libpng/url +++ b/packages/graphics/libpng/url @@ -1 +1 @@ -http://downloads.sourceforge.net/libpng/libpng-1.4.0.tar.bz2 +http://downloads.sourceforge.net/libpng/libpng-1.4.1.tar.bz2 From c4737cad56f073c506a774346752ce3fcf77a494 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Fri, 16 Apr 2010 23:55:01 +0200 Subject: [PATCH 120/320] tiff: - update to tiff-4.0.0beta5 --- packages/graphics/tiff/url | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/graphics/tiff/url b/packages/graphics/tiff/url index a8d4aaff7e..818f739513 100644 --- a/packages/graphics/tiff/url +++ b/packages/graphics/tiff/url @@ -1 +1 @@ -ftp://ftp.remotesensing.org/pub/libtiff/tiff-4.0.0beta4.tar.gz \ No newline at end of file +ftp://ftp.remotesensing.org/pub/libtiff/tiff-4.0.0beta5.tar.gz \ No newline at end of file From 129439e488fb55dd295a28e1651bfda659611c1d Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Fri, 16 Apr 2010 23:55:31 +0200 Subject: [PATCH 121/320] SDL_image: - update to SDL_image-1.2.10 --- packages/multimedia/SDL_image/url | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/multimedia/SDL_image/url b/packages/multimedia/SDL_image/url index 69272eeca2..14a2fec1ae 100644 --- a/packages/multimedia/SDL_image/url +++ b/packages/multimedia/SDL_image/url @@ -1 +1 @@ -http://www.libsdl.org/projects/SDL_image/release/SDL_image-1.2.8.tar.gz +http://www.libsdl.org/projects/SDL_image/release/SDL_image-1.2.10.tar.gz From 40b63cf4cfacbf81d4e03941d1ee8a23d3318127 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Fri, 16 Apr 2010 23:56:18 +0200 Subject: [PATCH 122/320] SDL_mixer: - update to SDL_mixer-1.2.11 --- packages/multimedia/SDL_mixer/url | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/multimedia/SDL_mixer/url b/packages/multimedia/SDL_mixer/url index e745030b45..c2ad3df738 100644 --- a/packages/multimedia/SDL_mixer/url +++ b/packages/multimedia/SDL_mixer/url @@ -1 +1 @@ -http://www.libsdl.org/projects/SDL_mixer/release/SDL_mixer-1.2.9.tar.gz +http://www.libsdl.org/projects/SDL_mixer/release/SDL_mixer-1.2.11.tar.gz From 515ded07a73f3660efa7264f0534cf86e67411b7 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Fri, 16 Apr 2010 23:56:33 +0200 Subject: [PATCH 123/320] connman: - update to connman-0.52 --- packages/network/connman/build | 1 + packages/network/connman/url | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/network/connman/build b/packages/network/connman/build index 3f1fdb457f..f75df228f3 100755 --- a/packages/network/connman/build +++ b/packages/network/connman/build @@ -23,6 +23,7 @@ cd $PKG_BUILD --enable-ethernet \ --enable-wifi \ --disable-bluetooth \ + --disable-hh2serial-gps \ --disable-ofono \ --enable-udhcp \ --disable-dhclient \ diff --git a/packages/network/connman/url b/packages/network/connman/url index 74fc694b42..4123c1a0bc 100644 --- a/packages/network/connman/url +++ b/packages/network/connman/url @@ -1 +1 @@ -http://www.kernel.org/pub/linux/network/connman/connman-0.51.tar.bz2 +http://www.kernel.org/pub/linux/network/connman/connman-0.52.tar.bz2 From abfaa94a674e5233347d1046d66196c792ee2c57 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Fri, 16 Apr 2010 23:56:59 +0200 Subject: [PATCH 124/320] enca: - update to enca-1.13 --- .../enca/patches/10-enca-crosscompile.diff | 32388 ++++++++++------ packages/other/enca/url | 2 +- 2 files changed, 19811 insertions(+), 12579 deletions(-) diff --git a/packages/other/enca/patches/10-enca-crosscompile.diff b/packages/other/enca/patches/10-enca-crosscompile.diff index c4cc51ebbf..38cbfe5b1a 100644 --- a/packages/other/enca/patches/10-enca-crosscompile.diff +++ b/packages/other/enca/patches/10-enca-crosscompile.diff @@ -1,147 +1,2511 @@ -diff -Naur enca-1.12/configure enca-1.12.patch/configure ---- enca-1.12/configure 2009-10-29 13:05:11.000000000 +0100 -+++ enca-1.12.patch/configure 2009-12-19 01:17:46.859341473 +0100 -@@ -1,22 +1,20 @@ - #! /bin/sh - # Guess values for system-dependent variables and create Makefiles. --# Generated by GNU Autoconf 2.64 for Enca 1.12. -+# Generated by GNU Autoconf 2.63 for Enca 1.12. - # - # Report bugs to >. - # - # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, --# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software --# Foundation, Inc. --# -+# 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. ## --## -------------------- ## -+## --------------------- ## -+## M4sh Initialization. ## -+## --------------------- ## - - # Be more Bourne compatible - DUALCASE=1; export DUALCASE # for MKS sh --if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : -+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 -@@ -24,15 +22,23 @@ - alias -g '${1+"$@"}'='"$@"' - setopt NO_GLOB_SUBST - else -- case `(set -o) 2>/dev/null` in #( -- *posix*) : -- set -o posix ;; #( -- *) : -- ;; -+ case `(set -o) 2>/dev/null` in -+ *posix*) set -o posix ;; - esac +diff -Naur enca-1.13/config.h enca-1.13.patch/config.h +--- enca-1.13/config.h 1970-01-01 01:00:00.000000000 +0100 ++++ enca-1.13.patch/config.h 2010-04-16 18:41:17.785442603 +0200 +@@ -0,0 +1,285 @@ ++/* config.h. Generated from config.h.in by configure. */ ++/* config.h.in. Generated from configure.ac by autoheader. */ + - fi - - ++/* Define to path to the cstocs recoder. */ ++/* #undef CSTOCS_PROG */ ++ ++/* Define to default converter list. */ ++#define DEFAULT_CONVERTER_LIST "built-in,iconv" ++ ++/* Define to default external converter program. */ ++#define DEFAULT_EXTERNAL_CONVERTER "piconv" ++ ++/* Define to enable external converter programs. */ ++#define ENABLE_EXTERNAL 1 ++ ++/* Define to 1 if you have the `canonicalize_file_name' function. */ ++#define HAVE_CANONICALIZE_FILE_NAME 1 ++ ++/* Define to 1 if you have the declaration of `LC_MESSAGES', and to 0 if you ++ don't. */ ++#define HAVE_DECL_LC_MESSAGES 1 ++ ++/* Define to 1 if you have the header file. */ ++#define HAVE_DLFCN_H 1 ++ ++/* Define to 1 if you have the header file. */ ++#define HAVE_ERRNO_H 1 ++ ++/* Define to 1 if you have the header file. */ ++#define HAVE_FCNTL_H 1 ++ ++/* Define to 1 if you have the `fork' function. */ ++#define HAVE_FORK 1 ++ ++/* Define to 1 if you have the `ftruncate' function. */ ++#define HAVE_FTRUNCATE 1 ++ ++/* Define to 1 if you have the header file. */ ++#define HAVE_GETOPT_H 1 ++ ++/* Define to 1 if you have the `getopt_long' function. */ ++#define HAVE_GETOPT_LONG 1 ++ ++/* Define to 1 if you have the `gettimeofday' function. */ ++#define HAVE_GETTIMEOFDAY 1 ++ ++/* Define if you have the UNIX98 iconv functions. */ ++#define HAVE_GOOD_ICONV 1 ++ ++/* Define if you have the iconv() function and it works. */ ++#define HAVE_ICONV 1 ++ ++/* Define to 1 if you have the header file. */ ++#define HAVE_INTTYPES_H 1 ++ ++/* Define to 1 if you have the `isatty' function. */ ++#define HAVE_ISATTY 1 ++ ++/* Define to 1 if you have the header file. */ ++#define HAVE_LANGINFO_H 1 ++ ++/* Define if you have the recode library (-lrecode). */ ++/* #undef HAVE_LIBRECODE */ ++ ++/* Define to 1 if you have the header file. */ ++#define HAVE_LIMITS_H 1 ++ ++/* Define if you have locale.alias file. */ ++#define HAVE_LOCALE_ALIAS 1 ++ ++/* Define to 1 if you have the header file. */ ++#define HAVE_LOCALE_H 1 ++ ++/* Define to 1 if you have the header file. */ ++#define HAVE_MEMORY_H 1 ++ ++/* Define to 1 if you have the `nl_langinfo' function. */ ++#define HAVE_NL_LANGINFO 1 ++ ++/* Define if you have program_invocation_short_name variable. */ ++#define HAVE_PROGRAM_INVOCATION_SHORT_NAME 1 ++ ++/* Define to 1 if you have the `random' function. */ ++#define HAVE_RANDOM 1 ++ ++/* Define to 1 if you have the `realpath' function. */ ++#define HAVE_REALPATH 1 ++ ++/* Define to 1 if you have the `setlocale' function. */ ++#define HAVE_SETLOCALE 1 ++ ++/* Define to 1 if stdbool.h conforms to C99. */ ++#define HAVE_STDBOOL_H 1 ++ ++/* Define to 1 if you have the header file. */ ++#define HAVE_STDINT_H 1 ++ ++/* Define to 1 if you have the header file. */ ++#define HAVE_STDLIB_H 1 ++ ++/* Define to 1 if you have the `stpcpy' function. */ ++#define HAVE_STPCPY 1 ++ ++/* Define to 1 if you have the header file. */ ++#define HAVE_STRINGS_H 1 ++ ++/* Define to 1 if you have the header file. */ ++#define HAVE_STRING_H 1 ++ ++/* Define to 1 if you have the `strstr' function. */ ++#define HAVE_STRSTR 1 ++ ++/* Define to 1 if you have the header file. */ ++#define HAVE_SYS_STAT_H 1 ++ ++/* Define to 1 if you have the header file. */ ++#define HAVE_SYS_TIME_H 1 ++ ++/* Define to 1 if you have the header file. */ ++#define HAVE_SYS_TYPES_H 1 ++ ++/* Define to 1 if you have the header file. */ ++#define HAVE_SYS_WAIT_H 1 ++ ++/* Define to 1 if you have the header file. */ ++#define HAVE_TIME_H 1 ++ ++/* Define to 1 if you have the `ttyname' function. */ ++#define HAVE_TTYNAME 1 ++ ++/* Define to 1 if you have the header file. */ ++#define HAVE_UNISTD_H 1 ++ ++/* Define to 1 if you have the `vfork' function. */ ++#define HAVE_VFORK 1 ++ ++/* Define to 1 if you have the header file. */ ++/* #undef HAVE_VFORK_H */ ++ ++/* Define to 1 if you have the `wordexp' function. */ ++#define HAVE_WORDEXP 1 ++ ++/* Define to 1 if you have the header file. */ ++#define HAVE_WORDEXP_H 1 ++ ++/* Define to 1 if `fork' works. */ ++#define HAVE_WORKING_FORK 1 ++ ++/* Define to 1 if `vfork' works. */ ++#define HAVE_WORKING_VFORK 1 ++ ++/* Define to 1 if the system has the type `_Bool'. */ ++#define HAVE__BOOL 1 ++ ++/* Define to 1 if you have the file `/dev/arandom'. */ ++/* #undef HAVE__DEV_ARANDOM */ ++ ++/* Define to 1 if you have the file `/dev/random'. */ ++#define HAVE__DEV_RANDOM 1 ++ ++/* Define to 1 if you have the file `/dev/srandom'. */ ++/* #undef HAVE__DEV_SRANDOM */ ++ ++/* Define to 1 if you have the file `/dev/urandom'. */ ++#define HAVE__DEV_URANDOM 1 ++ ++/* Define as const if the declaration of iconv() needs const. */ ++#define ICONV_CONST ++ ++/* Define if iconv is transitive. */ ++#define ICONV_IS_TRANSITIVE 1 ++ ++/* Define to the path to locale.alias file. */ ++#define LOCALE_ALIAS_PATH "/usr/share/locale/locale.alias" ++ ++/* Define to the sub-directory in which libtool stores uninstalled libraries. ++ */ ++#define LT_OBJDIR ".libs/" ++ ++/* Define to path to the map recoder. */ ++/* #undef MAP_PROG */ ++ ++/* Define to 1 if your C compiler doesn't accept -c and -o together. */ ++/* #undef NO_MINUS_C_MINUS_O */ ++ ++/* Name of package */ ++#define PACKAGE "enca" ++ ++/* Define to the address where bug reports for this package should be sent. */ ++#define PACKAGE_BUGREPORT "https://bugs.cihar.com/" ++ ++/* Define to the full name of this package. */ ++#define PACKAGE_NAME "Enca" ++ ++/* Define to the full name and version of this package. */ ++#define PACKAGE_STRING "Enca 1.13" ++ ++/* Define to the one symbol short name of this package. */ ++#define PACKAGE_TARNAME "enca" ++ ++/* Define to the home page for this package. */ ++#define PACKAGE_URL "" ++ ++/* Define to the version of this package. */ ++#define PACKAGE_VERSION "1.13" ++ ++/* Define to path to the piconv recoder. */ ++#define PICONV_PROG "/usr/bin/piconv" ++ ++/* Define to path to the recode recoder. */ ++/* #undef RECODE_PROG */ ++ ++/* Define to 1 if the `S_IS*' macros in do not work properly. */ ++/* #undef STAT_MACROS_BROKEN */ ++ ++/* Define to 1 if you have the ANSI C header files. */ ++#define STDC_HEADERS 1 ++ ++/* Define to 1 if you can safely include both and . */ ++#define TIME_WITH_SYS_TIME 1 ++ ++/* Define to path to the umap recoder. */ ++/* #undef UMAP_PROG */ ++ ++/* Enable extensions on AIX 3, Interix. */ ++#ifndef _ALL_SOURCE ++# define _ALL_SOURCE 1 ++#endif ++/* Enable GNU extensions on systems that have them. */ ++#ifndef _GNU_SOURCE ++# define _GNU_SOURCE 1 ++#endif ++/* Enable threading extensions on Solaris. */ ++#ifndef _POSIX_PTHREAD_SEMANTICS ++# define _POSIX_PTHREAD_SEMANTICS 1 ++#endif ++/* Enable extensions on HP NonStop. */ ++#ifndef _TANDEM_SOURCE ++# define _TANDEM_SOURCE 1 ++#endif ++/* Enable general extensions on Solaris. */ ++#ifndef __EXTENSIONS__ ++# define __EXTENSIONS__ 1 ++#endif + + -+# 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 ++/* Version number of package */ ++#define VERSION "1.13" + - as_nl=' - ' - export as_nl -@@ -40,13 +46,7 @@ - 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 --# Prefer a ksh shell builtin over an external printf program on Solaris, --# but without wasting forks for bash or zsh. --if test -z "$BASH_VERSION$ZSH_VERSION" \ -- && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then -- as_echo='print -r --' -- as_echo_n='print -rn --' --elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then -+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 -@@ -57,7 +57,7 @@ - as_echo_body='eval expr "X$1" : "X\\(.*\\)"' - as_echo_n_body='eval - arg=$1; -- case $arg in #( -+ case $arg in - *"$as_nl"*) - expr "X$arg" : "X\\(.*\\)$as_nl"; - arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; -@@ -80,6 +80,13 @@ - } - fi - -+# Support unset when possible. -+if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then -+ as_unset=unset ++/* Define to 1 if on MINIX. */ ++/* #undef _MINIX */ ++ ++/* Define to 2 if the system does not provide POSIX.1 features except with ++ this defined. */ ++/* #undef _POSIX_1_SOURCE */ ++ ++/* Define to 1 if you need to in order for `stat' and other things to work. */ ++/* #undef _POSIX_SOURCE */ ++ ++/* Define to empty if `const' does not conform to ANSI C. */ ++/* #undef const */ ++ ++/* Define to `int' if doesn't define. */ ++/* #undef gid_t */ ++ ++/* Define to `int' if does not define. */ ++/* #undef mode_t */ ++ ++/* Define to `long int' if does not define. */ ++/* #undef off_t */ ++ ++/* Define to `int' if does not define. */ ++/* #undef pid_t */ ++ ++/* Define to `unsigned int' if does not define. */ ++/* #undef size_t */ ++ ++/* Define to `int' if does not define. */ ++/* #undef ssize_t */ ++ ++/* Define to `int' if doesn't define. */ ++/* #undef uid_t */ ++ ++/* Define as `fork' if `vfork' does not work. */ ++/* #undef vfork */ +diff -Naur enca-1.13/config.log enca-1.13.patch/config.log +--- enca-1.13/config.log 1970-01-01 01:00:00.000000000 +0100 ++++ enca-1.13.patch/config.log 2010-04-16 18:41:18.142466704 +0200 +@@ -0,0 +1,1996 @@ ++This file contains any messages produced by compilers while ++running configure, to aid debugging if configure makes a mistake. ++ ++It was created by Enca configure 1.13, which was ++generated by GNU Autoconf 2.65. Invocation command line was ++ ++ $ ./configure ++ ++## --------- ## ++## Platform. ## ++## --------- ## ++ ++hostname = x200t.openelec.tv ++uname -m = i686 ++uname -r = 2.6.32.11-99.fc12.i686 ++uname -s = Linux ++uname -v = #1 SMP Mon Apr 5 16:32:08 EDT 2010 ++ ++/usr/bin/uname -p = unknown ++/bin/uname -X = unknown ++ ++/bin/arch = i686 ++/usr/bin/arch -k = unknown ++/usr/convex/getsysinfo = unknown ++/usr/bin/hostinfo = unknown ++/bin/machine = unknown ++/usr/bin/oslevel = unknown ++/bin/universe = unknown ++ ++PATH: /usr/kerberos/sbin ++PATH: /usr/kerberos/bin ++PATH: /usr/local/bin ++PATH: /usr/bin ++PATH: /bin ++PATH: /usr/local/sbin ++PATH: /usr/sbin ++PATH: /sbin ++PATH: /home/stephan/bin ++ ++ ++## ----------- ## ++## Core tests. ## ++## ----------- ## ++ ++configure:2481: checking for a BSD-compatible install ++configure:2549: result: /usr/bin/install -c ++configure:2560: checking whether build environment is sane ++configure:2610: result: yes ++configure:2751: checking for a thread-safe mkdir -p ++configure:2790: result: /bin/mkdir -p ++configure:2803: checking for gawk ++configure:2819: found /usr/bin/gawk ++configure:2830: result: gawk ++configure:2841: checking whether make sets $(MAKE) ++configure:2863: result: yes ++configure:2947: checking whether to enable maintainer-specific portions of Makefiles ++configure:2956: result: no ++configure:2976: checking for gawk ++configure:3003: result: gawk ++configure:3062: checking for gcc ++configure:3078: found /usr/bin/gcc ++configure:3089: result: gcc ++configure:3318: checking for C compiler version ++configure:3327: gcc --version >&5 ++gcc (GCC) 4.4.3 20100127 (Red Hat 4.4.3-4) ++Copyright (C) 2010 Free Software Foundation, Inc. ++This is free software; see the source for copying conditions. There is NO ++warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. ++ ++configure:3338: $? = 0 ++configure:3327: gcc -v >&5 ++Using built-in specs. ++Target: i686-redhat-linux ++Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-languages=c,c++,objc,obj-c++,java,fortran,ada --enable-java-awt=gtk --disable-dssi --enable-plugin --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-1.5.0.0/jre --enable-libgcj-multifile --enable-java-maintainer-mode --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --disable-libjava-multilib --with-ppl --with-cloog --with-tune=generic --with-arch=i686 --build=i686-redhat-linux ++Thread model: posix ++gcc version 4.4.3 20100127 (Red Hat 4.4.3-4) (GCC) ++configure:3338: $? = 0 ++configure:3327: gcc -V >&5 ++gcc: '-V' option must have argument ++configure:3338: $? = 1 ++configure:3327: gcc -qversion >&5 ++gcc: unrecognized option '-qversion' ++gcc: no input files ++configure:3338: $? = 1 ++configure:3358: checking whether the C compiler works ++configure:3380: gcc conftest.c >&5 ++configure:3384: $? = 0 ++configure:3433: result: yes ++configure:3436: checking for C compiler default output file name ++configure:3438: result: a.out ++configure:3444: checking for suffix of executables ++configure:3451: gcc -o conftest conftest.c >&5 ++configure:3455: $? = 0 ++configure:3477: result: ++configure:3499: checking whether we are cross compiling ++configure:3507: gcc -o conftest conftest.c >&5 ++configure:3511: $? = 0 ++configure:3518: ./conftest ++configure:3522: $? = 0 ++configure:3537: result: no ++configure:3542: checking for suffix of object files ++configure:3564: gcc -c conftest.c >&5 ++configure:3568: $? = 0 ++configure:3589: result: o ++configure:3593: checking whether we are using the GNU C compiler ++configure:3612: gcc -c conftest.c >&5 ++configure:3612: $? = 0 ++configure:3621: result: yes ++configure:3630: checking whether gcc accepts -g ++configure:3650: gcc -c -g conftest.c >&5 ++configure:3650: $? = 0 ++configure:3691: result: yes ++configure:3708: checking for gcc option to accept ISO C89 ++configure:3772: gcc -c -g -O2 conftest.c >&5 ++configure:3772: $? = 0 ++configure:3785: result: none needed ++configure:3816: checking for style of include used by make ++configure:3844: result: GNU ++configure:3869: checking dependency style of gcc ++configure:3979: result: gcc3 ++configure:4000: checking how to run the C preprocessor ++configure:4031: gcc -E conftest.c ++configure:4031: $? = 0 ++configure:4045: gcc -E conftest.c ++conftest.c:11:28: error: ac_nonexistent.h: No such file or directory ++configure:4045: $? = 1 ++configure: failed program was: ++| /* confdefs.h */ ++| #define PACKAGE_NAME "Enca" ++| #define PACKAGE_TARNAME "enca" ++| #define PACKAGE_VERSION "1.13" ++| #define PACKAGE_STRING "Enca 1.13" ++| #define PACKAGE_BUGREPORT "https://bugs.cihar.com/" ++| #define PACKAGE_URL "" ++| #define PACKAGE "enca" ++| #define VERSION "1.13" ++| /* end confdefs.h. */ ++| #include ++configure:4070: result: gcc -E ++configure:4090: gcc -E conftest.c ++configure:4090: $? = 0 ++configure:4104: gcc -E conftest.c ++conftest.c:11:28: error: ac_nonexistent.h: No such file or directory ++configure:4104: $? = 1 ++configure: failed program was: ++| /* confdefs.h */ ++| #define PACKAGE_NAME "Enca" ++| #define PACKAGE_TARNAME "enca" ++| #define PACKAGE_VERSION "1.13" ++| #define PACKAGE_STRING "Enca 1.13" ++| #define PACKAGE_BUGREPORT "https://bugs.cihar.com/" ++| #define PACKAGE_URL "" ++| #define PACKAGE "enca" ++| #define VERSION "1.13" ++| /* end confdefs.h. */ ++| #include ++configure:4133: checking for grep that handles long lines and -e ++configure:4191: result: /bin/grep ++configure:4196: checking for egrep ++configure:4258: result: /bin/grep -E ++configure:4263: checking for ANSI C header files ++configure:4283: gcc -c -g -O2 conftest.c >&5 ++configure:4283: $? = 0 ++configure:4356: gcc -o conftest -g -O2 conftest.c >&5 ++configure:4356: $? = 0 ++configure:4356: ./conftest ++configure:4356: $? = 0 ++configure:4367: result: yes ++configure:4380: checking for sys/types.h ++configure:4380: gcc -c -g -O2 conftest.c >&5 ++configure:4380: $? = 0 ++configure:4380: result: yes ++configure:4380: checking for sys/stat.h ++configure:4380: gcc -c -g -O2 conftest.c >&5 ++configure:4380: $? = 0 ++configure:4380: result: yes ++configure:4380: checking for stdlib.h ++configure:4380: gcc -c -g -O2 conftest.c >&5 ++configure:4380: $? = 0 ++configure:4380: result: yes ++configure:4380: checking for string.h ++configure:4380: gcc -c -g -O2 conftest.c >&5 ++configure:4380: $? = 0 ++configure:4380: result: yes ++configure:4380: checking for memory.h ++configure:4380: gcc -c -g -O2 conftest.c >&5 ++configure:4380: $? = 0 ++configure:4380: result: yes ++configure:4380: checking for strings.h ++configure:4380: gcc -c -g -O2 conftest.c >&5 ++configure:4380: $? = 0 ++configure:4380: result: yes ++configure:4380: checking for inttypes.h ++configure:4380: gcc -c -g -O2 conftest.c >&5 ++configure:4380: $? = 0 ++configure:4380: result: yes ++configure:4380: checking for stdint.h ++configure:4380: gcc -c -g -O2 conftest.c >&5 ++configure:4380: $? = 0 ++configure:4380: result: yes ++configure:4380: checking for unistd.h ++configure:4380: gcc -c -g -O2 conftest.c >&5 ++configure:4380: $? = 0 ++configure:4380: result: yes ++configure:4394: checking minix/config.h usability ++configure:4394: gcc -c -g -O2 conftest.c >&5 ++conftest.c:54:26: error: minix/config.h: No such file or directory ++configure:4394: $? = 1 ++configure: failed program was: ++| /* confdefs.h */ ++| #define PACKAGE_NAME "Enca" ++| #define PACKAGE_TARNAME "enca" ++| #define PACKAGE_VERSION "1.13" ++| #define PACKAGE_STRING "Enca 1.13" ++| #define PACKAGE_BUGREPORT "https://bugs.cihar.com/" ++| #define PACKAGE_URL "" ++| #define PACKAGE "enca" ++| #define VERSION "1.13" ++| #define STDC_HEADERS 1 ++| #define HAVE_SYS_TYPES_H 1 ++| #define HAVE_SYS_STAT_H 1 ++| #define HAVE_STDLIB_H 1 ++| #define HAVE_STRING_H 1 ++| #define HAVE_MEMORY_H 1 ++| #define HAVE_STRINGS_H 1 ++| #define HAVE_INTTYPES_H 1 ++| #define HAVE_STDINT_H 1 ++| #define HAVE_UNISTD_H 1 ++| /* end confdefs.h. */ ++| #include ++| #ifdef HAVE_SYS_TYPES_H ++| # include ++| #endif ++| #ifdef HAVE_SYS_STAT_H ++| # include ++| #endif ++| #ifdef STDC_HEADERS ++| # include ++| # include ++| #else ++| # ifdef HAVE_STDLIB_H ++| # include ++| # endif ++| #endif ++| #ifdef HAVE_STRING_H ++| # if !defined STDC_HEADERS && defined HAVE_MEMORY_H ++| # include ++| # endif ++| # include ++| #endif ++| #ifdef HAVE_STRINGS_H ++| # include ++| #endif ++| #ifdef HAVE_INTTYPES_H ++| # include ++| #endif ++| #ifdef HAVE_STDINT_H ++| # include ++| #endif ++| #ifdef HAVE_UNISTD_H ++| # include ++| #endif ++| #include ++configure:4394: result: no ++configure:4394: checking minix/config.h presence ++configure:4394: gcc -E conftest.c ++conftest.c:21:26: error: minix/config.h: No such file or directory ++configure:4394: $? = 1 ++configure: failed program was: ++| /* confdefs.h */ ++| #define PACKAGE_NAME "Enca" ++| #define PACKAGE_TARNAME "enca" ++| #define PACKAGE_VERSION "1.13" ++| #define PACKAGE_STRING "Enca 1.13" ++| #define PACKAGE_BUGREPORT "https://bugs.cihar.com/" ++| #define PACKAGE_URL "" ++| #define PACKAGE "enca" ++| #define VERSION "1.13" ++| #define STDC_HEADERS 1 ++| #define HAVE_SYS_TYPES_H 1 ++| #define HAVE_SYS_STAT_H 1 ++| #define HAVE_STDLIB_H 1 ++| #define HAVE_STRING_H 1 ++| #define HAVE_MEMORY_H 1 ++| #define HAVE_STRINGS_H 1 ++| #define HAVE_INTTYPES_H 1 ++| #define HAVE_STDINT_H 1 ++| #define HAVE_UNISTD_H 1 ++| /* end confdefs.h. */ ++| #include ++configure:4394: result: no ++configure:4394: checking for minix/config.h ++configure:4394: result: no ++configure:4415: checking whether it is safe to define __EXTENSIONS__ ++configure:4433: gcc -c -g -O2 conftest.c >&5 ++configure:4433: $? = 0 ++configure:4440: result: yes ++configure:4456: checking for library containing strerror ++configure:4487: gcc -o conftest -g -O2 conftest.c >&5 ++configure:4487: $? = 0 ++configure:4504: result: none required ++configure:4541: checking build system type ++configure:4555: result: i686-pc-linux-gnu ++configure:4575: checking host system type ++configure:4588: result: i686-pc-linux-gnu ++configure:4608: checking for a sed that does not truncate output ++configure:4672: result: /bin/sed ++configure:4690: checking for fgrep ++configure:4752: result: /bin/grep -F ++configure:4787: checking for ld used by gcc ++configure:4854: result: /usr/bin/ld ++configure:4861: checking if the linker (/usr/bin/ld) is GNU ld ++configure:4876: result: yes ++configure:4888: checking for BSD- or MS-compatible name lister (nm) ++configure:4937: result: /usr/bin/nm -B ++configure:5055: checking the name lister (/usr/bin/nm -B) interface ++configure:5062: gcc -c -g -O2 conftest.c >&5 ++configure:5065: /usr/bin/nm -B "conftest.o" ++configure:5068: output ++00000000 B some_variable ++configure:5075: result: BSD nm ++configure:5078: checking whether ln -s works ++configure:5082: result: yes ++configure:5090: checking the maximum length of command line arguments ++configure:5210: result: 1966080 ++configure:5227: checking whether the shell understands some XSI constructs ++configure:5237: result: yes ++configure:5241: checking whether the shell understands "+=" ++configure:5247: result: yes ++configure:5282: checking for /usr/bin/ld option to reload object files ++configure:5289: result: -r ++configure:5358: checking for objdump ++configure:5374: found /usr/bin/objdump ++configure:5385: result: objdump ++configure:5417: checking how to recognize dependent libraries ++configure:5613: result: pass_all ++configure:5673: checking for ar ++configure:5689: found /usr/bin/ar ++configure:5700: result: ar ++configure:5778: checking for strip ++configure:5794: found /usr/bin/strip ++configure:5805: result: strip ++configure:5877: checking for ranlib ++configure:5893: found /usr/bin/ranlib ++configure:5904: result: ranlib ++configure:5994: checking command to parse /usr/bin/nm -B output from gcc object ++configure:6112: gcc -c -g -O2 conftest.c >&5 ++configure:6115: $? = 0 ++configure:6119: /usr/bin/nm -B conftest.o \| sed -n -e 's/^.*[ ]\([ABCDGIRSTW][ABCDGIRSTW]*\)[ ][ ]*\([_A-Za-z][_A-Za-z0-9]*\)$/\1 \2 \2/p' \> conftest.nm ++configure:6122: $? = 0 ++configure:6176: gcc -o conftest -g -O2 conftest.c conftstm.o >&5 ++configure:6179: $? = 0 ++configure:6217: result: ok ++configure:7022: checking for dlfcn.h ++configure:7022: gcc -c -g -O2 conftest.c >&5 ++configure:7022: $? = 0 ++configure:7022: result: yes ++configure:7206: checking for objdir ++configure:7221: result: .libs ++configure:7517: checking if gcc supports -fno-rtti -fno-exceptions ++configure:7535: gcc -c -g -O2 -fno-rtti -fno-exceptions conftest.c >&5 ++cc1: warning: command line option "-fno-rtti" is valid for C++/ObjC++ but not for C ++configure:7539: $? = 0 ++configure:7552: result: no ++configure:7572: checking for gcc option to produce PIC ++configure:7844: result: -fPIC -DPIC ++configure:7856: checking if gcc PIC flag -fPIC -DPIC works ++configure:7874: gcc -c -g -O2 -fPIC -DPIC -DPIC conftest.c >&5 ++configure:7878: $? = 0 ++configure:7891: result: yes ++configure:7915: checking if gcc static flag -static works ++configure:7943: result: yes ++configure:7958: checking if gcc supports -c -o file.o ++configure:7979: gcc -c -g -O2 -o out/conftest2.o conftest.c >&5 ++configure:7983: $? = 0 ++configure:8005: result: yes ++configure:8013: checking if gcc supports -c -o file.o ++configure:8060: result: yes ++configure:8093: checking whether the gcc linker (/usr/bin/ld) supports shared libraries ++configure:9079: result: yes ++configure:9116: checking whether -lc should be explicitly linked in ++configure:9121: gcc -c -g -O2 conftest.c >&5 ++configure:9124: $? = 0 ++configure:9139: gcc -shared conftest.o -v -Wl,-soname -Wl,conftest -o conftest 2\>\&1 \| /bin/grep -lc \>/dev/null 2\>\&1 ++configure:9142: $? = 0 ++configure:9154: result: no ++configure:9318: checking dynamic linker characteristics ++configure:9751: gcc -o conftest -g -O2 -Wl,-rpath -Wl,/foo conftest.c >&5 ++configure:9751: $? = 0 ++configure:9972: result: GNU/Linux ld.so ++configure:10074: checking how to hardcode library paths into programs ++configure:10099: result: immediate ++configure:10619: checking whether stripping libraries is possible ++configure:10624: result: yes ++configure:10659: checking if libtool supports shared libraries ++configure:10661: result: yes ++configure:10664: checking whether to build shared libraries ++configure:10685: result: yes ++configure:10688: checking whether to build static libraries ++configure:10692: result: yes ++configure:10775: checking for gcc ++configure:10802: result: gcc ++configure:11031: checking for C compiler version ++configure:11040: gcc --version >&5 ++gcc (GCC) 4.4.3 20100127 (Red Hat 4.4.3-4) ++Copyright (C) 2010 Free Software Foundation, Inc. ++This is free software; see the source for copying conditions. There is NO ++warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. ++ ++configure:11051: $? = 0 ++configure:11040: gcc -v >&5 ++Using built-in specs. ++Target: i686-redhat-linux ++Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-languages=c,c++,objc,obj-c++,java,fortran,ada --enable-java-awt=gtk --disable-dssi --enable-plugin --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-1.5.0.0/jre --enable-libgcj-multifile --enable-java-maintainer-mode --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --disable-libjava-multilib --with-ppl --with-cloog --with-tune=generic --with-arch=i686 --build=i686-redhat-linux ++Thread model: posix ++gcc version 4.4.3 20100127 (Red Hat 4.4.3-4) (GCC) ++configure:11051: $? = 0 ++configure:11040: gcc -V >&5 ++gcc: '-V' option must have argument ++configure:11051: $? = 1 ++configure:11040: gcc -qversion >&5 ++gcc: unrecognized option '-qversion' ++gcc: no input files ++configure:11051: $? = 1 ++configure:11055: checking whether we are using the GNU C compiler ++configure:11083: result: yes ++configure:11092: checking whether gcc accepts -g ++configure:11153: result: yes ++configure:11170: checking for gcc option to accept ISO C89 ++configure:11247: result: none needed ++configure:11269: checking dependency style of gcc ++configure:11379: result: gcc3 ++configure:11398: checking whether gcc and cc understand -c and -o together ++configure:11429: gcc -c conftest.c -o conftest2.o >&5 ++configure:11433: $? = 0 ++configure:11439: gcc -c conftest.c -o conftest2.o >&5 ++configure:11443: $? = 0 ++configure:11454: cc -c conftest.c >&5 ++configure:11458: $? = 0 ++configure:11466: cc -c conftest.c -o conftest2.o >&5 ++configure:11470: $? = 0 ++configure:11476: cc -c conftest.c -o conftest2.o >&5 ++configure:11480: $? = 0 ++configure:11498: result: yes ++configure:11524: checking whether ln -s works ++configure:11528: result: yes ++configure:11537: checking for mktemp ++configure:11555: found /bin/mktemp ++configure:11567: result: /bin/mktemp ++configure:11582: checking for cstocs ++configure:11615: result: no ++configure:11622: checking for recode ++configure:11655: result: no ++configure:11662: checking for umap ++configure:11695: result: no ++configure:11702: checking for piconv ++configure:11720: found /usr/bin/piconv ++configure:11732: result: /usr/bin/piconv ++configure:11742: checking for map ++configure:11775: result: no ++configure:11854: checking for gtkdoc-mkdb ++configure:11870: found /usr/bin/gtkdoc-mkdb ++configure:11882: result: true ++configure:11894: checking gtk-doc version (1.11) >= 1.0 ++configure:11900: result: yes ++configure:11935: checking for /dev/random ++configure:11948: result: yes ++configure:11957: checking for /dev/urandom ++configure:11970: result: yes ++configure:11979: checking for /dev/srandom ++configure:11992: result: no ++configure:12001: checking for /dev/arandom ++configure:12014: result: no ++configure:12119: checking for sqrt in -lm ++configure:12144: gcc -o conftest -Wall -W -pedantic -g -O2 conftest.c -lm >&5 ++conftest.c:38: warning: conflicting types for built-in function 'sqrt' ++configure:12144: $? = 0 ++configure:12153: result: yes ++configure:12164: checking for ANSI C header files ++configure:12268: result: yes ++configure:12276: checking for sys/wait.h that is POSIX.1 compatible ++configure:12302: gcc -c -Wall -W -pedantic -g -O2 conftest.c >&5 ++configure:12302: $? = 0 ++configure:12309: result: yes ++configure:12317: checking whether time.h and sys/time.h may both be included ++configure:12337: gcc -c -Wall -W -pedantic -g -O2 conftest.c >&5 ++configure:12337: $? = 0 ++configure:12344: result: yes ++configure:12352: checking whether stat file-mode macros are broken ++configure:12379: gcc -c -Wall -W -pedantic -g -O2 conftest.c >&5 ++configure:12379: $? = 0 ++configure:12386: result: no ++configure:12394: checking for stdbool.h that conforms to C99 ++configure:12479: gcc -c -Wall -W -pedantic -g -O2 conftest.c >&5 ++conftest.c:61: warning: the address of 's' will always evaluate as 'true' ++conftest.c: In function 'main': ++conftest.c:105: warning: the address of 'a' will always evaluate as 'true' ++conftest.c:105: warning: the address of 'b' will always evaluate as 'true' ++conftest.c:105: warning: the address of 'c' will always evaluate as 'true' ++conftest.c:105: warning: the address of 'd' will always evaluate as 'true' ++conftest.c:105: warning: the address of 'f' will always evaluate as 'true' ++conftest.c:105: warning: the address of 'g' will always evaluate as 'true' ++conftest.c:105: warning: the address of 'h' will always evaluate as 'true' ++conftest.c:105: warning: the address of 'i' will always evaluate as 'true' ++conftest.c:106: warning: the address of 'n' will always evaluate as 'true' ++conftest.c:106: warning: the address of 'o' will always evaluate as 'true' ++conftest.c:106: warning: the address of 'p' will always evaluate as 'true' ++configure:12479: $? = 0 ++configure:12486: result: yes ++configure:12488: checking for _Bool ++configure:12488: gcc -c -Wall -W -pedantic -g -O2 conftest.c >&5 ++configure:12488: $? = 0 ++configure:12488: gcc -c -Wall -W -pedantic -g -O2 conftest.c >&5 ++conftest.c: In function 'main': ++conftest.c:70: error: expected expression before ')' token ++configure:12488: $? = 1 ++configure: failed program was: ++| /* confdefs.h */ ++| #define PACKAGE_NAME "Enca" ++| #define PACKAGE_TARNAME "enca" ++| #define PACKAGE_VERSION "1.13" ++| #define PACKAGE_STRING "Enca 1.13" ++| #define PACKAGE_BUGREPORT "https://bugs.cihar.com/" ++| #define PACKAGE_URL "" ++| #define PACKAGE "enca" ++| #define VERSION "1.13" ++| #define STDC_HEADERS 1 ++| #define HAVE_SYS_TYPES_H 1 ++| #define HAVE_SYS_STAT_H 1 ++| #define HAVE_STDLIB_H 1 ++| #define HAVE_STRING_H 1 ++| #define HAVE_MEMORY_H 1 ++| #define HAVE_STRINGS_H 1 ++| #define HAVE_INTTYPES_H 1 ++| #define HAVE_STDINT_H 1 ++| #define HAVE_UNISTD_H 1 ++| #define __EXTENSIONS__ 1 ++| #define _ALL_SOURCE 1 ++| #define _GNU_SOURCE 1 ++| #define _POSIX_PTHREAD_SEMANTICS 1 ++| #define _TANDEM_SOURCE 1 ++| #define HAVE_DLFCN_H 1 ++| #define LT_OBJDIR ".libs/" ++| #define PICONV_PROG "/usr/bin/piconv" ++| #define HAVE__DEV_RANDOM 1 ++| #define HAVE__DEV_URANDOM 1 ++| #define STDC_HEADERS 1 ++| #define HAVE_SYS_WAIT_H 1 ++| #define TIME_WITH_SYS_TIME 1 ++| /* end confdefs.h. */ ++| #include ++| #ifdef HAVE_SYS_TYPES_H ++| # include ++| #endif ++| #ifdef HAVE_SYS_STAT_H ++| # include ++| #endif ++| #ifdef STDC_HEADERS ++| # include ++| # include ++| #else ++| # ifdef HAVE_STDLIB_H ++| # include ++| # endif ++| #endif ++| #ifdef HAVE_STRING_H ++| # if !defined STDC_HEADERS && defined HAVE_MEMORY_H ++| # include ++| # endif ++| # include ++| #endif ++| #ifdef HAVE_STRINGS_H ++| # include ++| #endif ++| #ifdef HAVE_INTTYPES_H ++| # include ++| #endif ++| #ifdef HAVE_STDINT_H ++| # include ++| #endif ++| #ifdef HAVE_UNISTD_H ++| # include ++| #endif ++| int ++| main () ++| { ++| if (sizeof ((_Bool))) ++| return 0; ++| ; ++| return 0; ++| } ++configure:12488: result: yes ++configure:12523: checking errno.h usability ++configure:12523: gcc -c -Wall -W -pedantic -g -O2 conftest.c >&5 ++configure:12523: $? = 0 ++configure:12523: result: yes ++configure:12523: checking errno.h presence ++configure:12523: gcc -E conftest.c ++configure:12523: $? = 0 ++configure:12523: result: yes ++configure:12523: checking for errno.h ++configure:12523: result: yes ++configure:12523: checking fcntl.h usability ++configure:12523: gcc -c -Wall -W -pedantic -g -O2 conftest.c >&5 ++configure:12523: $? = 0 ++configure:12523: result: yes ++configure:12523: checking fcntl.h presence ++configure:12523: gcc -E conftest.c ++configure:12523: $? = 0 ++configure:12523: result: yes ++configure:12523: checking for fcntl.h ++configure:12523: result: yes ++configure:12523: checking getopt.h usability ++configure:12523: gcc -c -Wall -W -pedantic -g -O2 conftest.c >&5 ++configure:12523: $? = 0 ++configure:12523: result: yes ++configure:12523: checking getopt.h presence ++configure:12523: gcc -E conftest.c ++configure:12523: $? = 0 ++configure:12523: result: yes ++configure:12523: checking for getopt.h ++configure:12523: result: yes ++configure:12523: checking langinfo.h usability ++configure:12523: gcc -c -Wall -W -pedantic -g -O2 conftest.c >&5 ++configure:12523: $? = 0 ++configure:12523: result: yes ++configure:12523: checking langinfo.h presence ++configure:12523: gcc -E conftest.c ++configure:12523: $? = 0 ++configure:12523: result: yes ++configure:12523: checking for langinfo.h ++configure:12523: result: yes ++configure:12523: checking limits.h usability ++configure:12523: gcc -c -Wall -W -pedantic -g -O2 conftest.c >&5 ++configure:12523: $? = 0 ++configure:12523: result: yes ++configure:12523: checking limits.h presence ++configure:12523: gcc -E conftest.c ++configure:12523: $? = 0 ++configure:12523: result: yes ++configure:12523: checking for limits.h ++configure:12523: result: yes ++configure:12523: checking locale.h usability ++configure:12523: gcc -c -Wall -W -pedantic -g -O2 conftest.c >&5 ++configure:12523: $? = 0 ++configure:12523: result: yes ++configure:12523: checking locale.h presence ++configure:12523: gcc -E conftest.c ++configure:12523: $? = 0 ++configure:12523: result: yes ++configure:12523: checking for locale.h ++configure:12523: result: yes ++configure:12523: checking for memory.h ++configure:12523: result: yes ++configure:12523: checking for string.h ++configure:12523: result: yes ++configure:12523: checking for strings.h ++configure:12523: result: yes ++configure:12523: checking for sys/stat.h ++configure:12523: result: yes ++configure:12523: checking for sys/types.h ++configure:12523: result: yes ++configure:12523: checking for sys/wait.h ++configure:12523: result: yes ++configure:12523: checking sys/time.h usability ++configure:12523: gcc -c -Wall -W -pedantic -g -O2 conftest.c >&5 ++configure:12523: $? = 0 ++configure:12523: result: yes ++configure:12523: checking sys/time.h presence ++configure:12523: gcc -E conftest.c ++configure:12523: $? = 0 ++configure:12523: result: yes ++configure:12523: checking for sys/time.h ++configure:12523: result: yes ++configure:12523: checking time.h usability ++configure:12523: gcc -c -Wall -W -pedantic -g -O2 conftest.c >&5 ++configure:12523: $? = 0 ++configure:12523: result: yes ++configure:12523: checking time.h presence ++configure:12523: gcc -E conftest.c ++configure:12523: $? = 0 ++configure:12523: result: yes ++configure:12523: checking for time.h ++configure:12523: result: yes ++configure:12523: checking for unistd.h ++configure:12523: result: yes ++configure:12523: checking wordexp.h usability ++configure:12523: gcc -c -Wall -W -pedantic -g -O2 conftest.c >&5 ++configure:12523: $? = 0 ++configure:12523: result: yes ++configure:12523: checking wordexp.h presence ++configure:12523: gcc -E conftest.c ++configure:12523: $? = 0 ++configure:12523: result: yes ++configure:12523: checking for wordexp.h ++configure:12523: result: yes ++configure:12535: checking for an ANSI C-conforming const ++configure:12600: gcc -c -Wall -W -pedantic -g -O2 conftest.c >&5 ++conftest.c: In function 'main': ++conftest.c:81: warning: 't' is used uninitialized in this function ++conftest.c:97: warning: 'b' is used uninitialized in this function ++conftest.c:60: warning: 'cs[0]' is used uninitialized in this function ++configure:12600: $? = 0 ++configure:12607: result: yes ++configure:12615: checking for size_t ++configure:12615: gcc -c -Wall -W -pedantic -g -O2 conftest.c >&5 ++configure:12615: $? = 0 ++configure:12615: gcc -c -Wall -W -pedantic -g -O2 conftest.c >&5 ++conftest.c: In function 'main': ++conftest.c:88: error: expected expression before ')' token ++configure:12615: $? = 1 ++configure: failed program was: ++| /* confdefs.h */ ++| #define PACKAGE_NAME "Enca" ++| #define PACKAGE_TARNAME "enca" ++| #define PACKAGE_VERSION "1.13" ++| #define PACKAGE_STRING "Enca 1.13" ++| #define PACKAGE_BUGREPORT "https://bugs.cihar.com/" ++| #define PACKAGE_URL "" ++| #define PACKAGE "enca" ++| #define VERSION "1.13" ++| #define STDC_HEADERS 1 ++| #define HAVE_SYS_TYPES_H 1 ++| #define HAVE_SYS_STAT_H 1 ++| #define HAVE_STDLIB_H 1 ++| #define HAVE_STRING_H 1 ++| #define HAVE_MEMORY_H 1 ++| #define HAVE_STRINGS_H 1 ++| #define HAVE_INTTYPES_H 1 ++| #define HAVE_STDINT_H 1 ++| #define HAVE_UNISTD_H 1 ++| #define __EXTENSIONS__ 1 ++| #define _ALL_SOURCE 1 ++| #define _GNU_SOURCE 1 ++| #define _POSIX_PTHREAD_SEMANTICS 1 ++| #define _TANDEM_SOURCE 1 ++| #define HAVE_DLFCN_H 1 ++| #define LT_OBJDIR ".libs/" ++| #define PICONV_PROG "/usr/bin/piconv" ++| #define HAVE__DEV_RANDOM 1 ++| #define HAVE__DEV_URANDOM 1 ++| #define STDC_HEADERS 1 ++| #define HAVE_SYS_WAIT_H 1 ++| #define TIME_WITH_SYS_TIME 1 ++| #define HAVE__BOOL 1 ++| #define HAVE_STDBOOL_H 1 ++| #define HAVE_ERRNO_H 1 ++| #define HAVE_FCNTL_H 1 ++| #define HAVE_GETOPT_H 1 ++| #define HAVE_LANGINFO_H 1 ++| #define HAVE_LIMITS_H 1 ++| #define HAVE_LOCALE_H 1 ++| #define HAVE_MEMORY_H 1 ++| #define HAVE_STRING_H 1 ++| #define HAVE_STRINGS_H 1 ++| #define HAVE_SYS_STAT_H 1 ++| #define HAVE_SYS_TYPES_H 1 ++| #define HAVE_SYS_WAIT_H 1 ++| #define HAVE_SYS_TIME_H 1 ++| #define HAVE_TIME_H 1 ++| #define HAVE_UNISTD_H 1 ++| #define HAVE_WORDEXP_H 1 ++| /* end confdefs.h. */ ++| #include ++| #ifdef HAVE_SYS_TYPES_H ++| # include ++| #endif ++| #ifdef HAVE_SYS_STAT_H ++| # include ++| #endif ++| #ifdef STDC_HEADERS ++| # include ++| # include ++| #else ++| # ifdef HAVE_STDLIB_H ++| # include ++| # endif ++| #endif ++| #ifdef HAVE_STRING_H ++| # if !defined STDC_HEADERS && defined HAVE_MEMORY_H ++| # include ++| # endif ++| # include ++| #endif ++| #ifdef HAVE_STRINGS_H ++| # include ++| #endif ++| #ifdef HAVE_INTTYPES_H ++| # include ++| #endif ++| #ifdef HAVE_STDINT_H ++| # include ++| #endif ++| #ifdef HAVE_UNISTD_H ++| # include ++| #endif ++| int ++| main () ++| { ++| if (sizeof ((size_t))) ++| return 0; ++| ; ++| return 0; ++| } ++configure:12615: result: yes ++configure:12626: checking for mode_t ++configure:12626: gcc -c -Wall -W -pedantic -g -O2 conftest.c >&5 ++configure:12626: $? = 0 ++configure:12626: gcc -c -Wall -W -pedantic -g -O2 conftest.c >&5 ++conftest.c: In function 'main': ++conftest.c:88: error: expected expression before ')' token ++configure:12626: $? = 1 ++configure: failed program was: ++| /* confdefs.h */ ++| #define PACKAGE_NAME "Enca" ++| #define PACKAGE_TARNAME "enca" ++| #define PACKAGE_VERSION "1.13" ++| #define PACKAGE_STRING "Enca 1.13" ++| #define PACKAGE_BUGREPORT "https://bugs.cihar.com/" ++| #define PACKAGE_URL "" ++| #define PACKAGE "enca" ++| #define VERSION "1.13" ++| #define STDC_HEADERS 1 ++| #define HAVE_SYS_TYPES_H 1 ++| #define HAVE_SYS_STAT_H 1 ++| #define HAVE_STDLIB_H 1 ++| #define HAVE_STRING_H 1 ++| #define HAVE_MEMORY_H 1 ++| #define HAVE_STRINGS_H 1 ++| #define HAVE_INTTYPES_H 1 ++| #define HAVE_STDINT_H 1 ++| #define HAVE_UNISTD_H 1 ++| #define __EXTENSIONS__ 1 ++| #define _ALL_SOURCE 1 ++| #define _GNU_SOURCE 1 ++| #define _POSIX_PTHREAD_SEMANTICS 1 ++| #define _TANDEM_SOURCE 1 ++| #define HAVE_DLFCN_H 1 ++| #define LT_OBJDIR ".libs/" ++| #define PICONV_PROG "/usr/bin/piconv" ++| #define HAVE__DEV_RANDOM 1 ++| #define HAVE__DEV_URANDOM 1 ++| #define STDC_HEADERS 1 ++| #define HAVE_SYS_WAIT_H 1 ++| #define TIME_WITH_SYS_TIME 1 ++| #define HAVE__BOOL 1 ++| #define HAVE_STDBOOL_H 1 ++| #define HAVE_ERRNO_H 1 ++| #define HAVE_FCNTL_H 1 ++| #define HAVE_GETOPT_H 1 ++| #define HAVE_LANGINFO_H 1 ++| #define HAVE_LIMITS_H 1 ++| #define HAVE_LOCALE_H 1 ++| #define HAVE_MEMORY_H 1 ++| #define HAVE_STRING_H 1 ++| #define HAVE_STRINGS_H 1 ++| #define HAVE_SYS_STAT_H 1 ++| #define HAVE_SYS_TYPES_H 1 ++| #define HAVE_SYS_WAIT_H 1 ++| #define HAVE_SYS_TIME_H 1 ++| #define HAVE_TIME_H 1 ++| #define HAVE_UNISTD_H 1 ++| #define HAVE_WORDEXP_H 1 ++| /* end confdefs.h. */ ++| #include ++| #ifdef HAVE_SYS_TYPES_H ++| # include ++| #endif ++| #ifdef HAVE_SYS_STAT_H ++| # include ++| #endif ++| #ifdef STDC_HEADERS ++| # include ++| # include ++| #else ++| # ifdef HAVE_STDLIB_H ++| # include ++| # endif ++| #endif ++| #ifdef HAVE_STRING_H ++| # if !defined STDC_HEADERS && defined HAVE_MEMORY_H ++| # include ++| # endif ++| # include ++| #endif ++| #ifdef HAVE_STRINGS_H ++| # include ++| #endif ++| #ifdef HAVE_INTTYPES_H ++| # include ++| #endif ++| #ifdef HAVE_STDINT_H ++| # include ++| #endif ++| #ifdef HAVE_UNISTD_H ++| # include ++| #endif ++| int ++| main () ++| { ++| if (sizeof ((mode_t))) ++| return 0; ++| ; ++| return 0; ++| } ++configure:12626: result: yes ++configure:12637: checking for off_t ++configure:12637: gcc -c -Wall -W -pedantic -g -O2 conftest.c >&5 ++configure:12637: $? = 0 ++configure:12637: gcc -c -Wall -W -pedantic -g -O2 conftest.c >&5 ++conftest.c: In function 'main': ++conftest.c:88: error: expected expression before ')' token ++configure:12637: $? = 1 ++configure: failed program was: ++| /* confdefs.h */ ++| #define PACKAGE_NAME "Enca" ++| #define PACKAGE_TARNAME "enca" ++| #define PACKAGE_VERSION "1.13" ++| #define PACKAGE_STRING "Enca 1.13" ++| #define PACKAGE_BUGREPORT "https://bugs.cihar.com/" ++| #define PACKAGE_URL "" ++| #define PACKAGE "enca" ++| #define VERSION "1.13" ++| #define STDC_HEADERS 1 ++| #define HAVE_SYS_TYPES_H 1 ++| #define HAVE_SYS_STAT_H 1 ++| #define HAVE_STDLIB_H 1 ++| #define HAVE_STRING_H 1 ++| #define HAVE_MEMORY_H 1 ++| #define HAVE_STRINGS_H 1 ++| #define HAVE_INTTYPES_H 1 ++| #define HAVE_STDINT_H 1 ++| #define HAVE_UNISTD_H 1 ++| #define __EXTENSIONS__ 1 ++| #define _ALL_SOURCE 1 ++| #define _GNU_SOURCE 1 ++| #define _POSIX_PTHREAD_SEMANTICS 1 ++| #define _TANDEM_SOURCE 1 ++| #define HAVE_DLFCN_H 1 ++| #define LT_OBJDIR ".libs/" ++| #define PICONV_PROG "/usr/bin/piconv" ++| #define HAVE__DEV_RANDOM 1 ++| #define HAVE__DEV_URANDOM 1 ++| #define STDC_HEADERS 1 ++| #define HAVE_SYS_WAIT_H 1 ++| #define TIME_WITH_SYS_TIME 1 ++| #define HAVE__BOOL 1 ++| #define HAVE_STDBOOL_H 1 ++| #define HAVE_ERRNO_H 1 ++| #define HAVE_FCNTL_H 1 ++| #define HAVE_GETOPT_H 1 ++| #define HAVE_LANGINFO_H 1 ++| #define HAVE_LIMITS_H 1 ++| #define HAVE_LOCALE_H 1 ++| #define HAVE_MEMORY_H 1 ++| #define HAVE_STRING_H 1 ++| #define HAVE_STRINGS_H 1 ++| #define HAVE_SYS_STAT_H 1 ++| #define HAVE_SYS_TYPES_H 1 ++| #define HAVE_SYS_WAIT_H 1 ++| #define HAVE_SYS_TIME_H 1 ++| #define HAVE_TIME_H 1 ++| #define HAVE_UNISTD_H 1 ++| #define HAVE_WORDEXP_H 1 ++| /* end confdefs.h. */ ++| #include ++| #ifdef HAVE_SYS_TYPES_H ++| # include ++| #endif ++| #ifdef HAVE_SYS_STAT_H ++| # include ++| #endif ++| #ifdef STDC_HEADERS ++| # include ++| # include ++| #else ++| # ifdef HAVE_STDLIB_H ++| # include ++| # endif ++| #endif ++| #ifdef HAVE_STRING_H ++| # if !defined STDC_HEADERS && defined HAVE_MEMORY_H ++| # include ++| # endif ++| # include ++| #endif ++| #ifdef HAVE_STRINGS_H ++| # include ++| #endif ++| #ifdef HAVE_INTTYPES_H ++| # include ++| #endif ++| #ifdef HAVE_STDINT_H ++| # include ++| #endif ++| #ifdef HAVE_UNISTD_H ++| # include ++| #endif ++| int ++| main () ++| { ++| if (sizeof ((off_t))) ++| return 0; ++| ; ++| return 0; ++| } ++configure:12637: result: yes ++configure:12648: checking for pid_t ++configure:12648: gcc -c -Wall -W -pedantic -g -O2 conftest.c >&5 ++configure:12648: $? = 0 ++configure:12648: gcc -c -Wall -W -pedantic -g -O2 conftest.c >&5 ++conftest.c: In function 'main': ++conftest.c:88: error: expected expression before ')' token ++configure:12648: $? = 1 ++configure: failed program was: ++| /* confdefs.h */ ++| #define PACKAGE_NAME "Enca" ++| #define PACKAGE_TARNAME "enca" ++| #define PACKAGE_VERSION "1.13" ++| #define PACKAGE_STRING "Enca 1.13" ++| #define PACKAGE_BUGREPORT "https://bugs.cihar.com/" ++| #define PACKAGE_URL "" ++| #define PACKAGE "enca" ++| #define VERSION "1.13" ++| #define STDC_HEADERS 1 ++| #define HAVE_SYS_TYPES_H 1 ++| #define HAVE_SYS_STAT_H 1 ++| #define HAVE_STDLIB_H 1 ++| #define HAVE_STRING_H 1 ++| #define HAVE_MEMORY_H 1 ++| #define HAVE_STRINGS_H 1 ++| #define HAVE_INTTYPES_H 1 ++| #define HAVE_STDINT_H 1 ++| #define HAVE_UNISTD_H 1 ++| #define __EXTENSIONS__ 1 ++| #define _ALL_SOURCE 1 ++| #define _GNU_SOURCE 1 ++| #define _POSIX_PTHREAD_SEMANTICS 1 ++| #define _TANDEM_SOURCE 1 ++| #define HAVE_DLFCN_H 1 ++| #define LT_OBJDIR ".libs/" ++| #define PICONV_PROG "/usr/bin/piconv" ++| #define HAVE__DEV_RANDOM 1 ++| #define HAVE__DEV_URANDOM 1 ++| #define STDC_HEADERS 1 ++| #define HAVE_SYS_WAIT_H 1 ++| #define TIME_WITH_SYS_TIME 1 ++| #define HAVE__BOOL 1 ++| #define HAVE_STDBOOL_H 1 ++| #define HAVE_ERRNO_H 1 ++| #define HAVE_FCNTL_H 1 ++| #define HAVE_GETOPT_H 1 ++| #define HAVE_LANGINFO_H 1 ++| #define HAVE_LIMITS_H 1 ++| #define HAVE_LOCALE_H 1 ++| #define HAVE_MEMORY_H 1 ++| #define HAVE_STRING_H 1 ++| #define HAVE_STRINGS_H 1 ++| #define HAVE_SYS_STAT_H 1 ++| #define HAVE_SYS_TYPES_H 1 ++| #define HAVE_SYS_WAIT_H 1 ++| #define HAVE_SYS_TIME_H 1 ++| #define HAVE_TIME_H 1 ++| #define HAVE_UNISTD_H 1 ++| #define HAVE_WORDEXP_H 1 ++| /* end confdefs.h. */ ++| #include ++| #ifdef HAVE_SYS_TYPES_H ++| # include ++| #endif ++| #ifdef HAVE_SYS_STAT_H ++| # include ++| #endif ++| #ifdef STDC_HEADERS ++| # include ++| # include ++| #else ++| # ifdef HAVE_STDLIB_H ++| # include ++| # endif ++| #endif ++| #ifdef HAVE_STRING_H ++| # if !defined STDC_HEADERS && defined HAVE_MEMORY_H ++| # include ++| # endif ++| # include ++| #endif ++| #ifdef HAVE_STRINGS_H ++| # include ++| #endif ++| #ifdef HAVE_INTTYPES_H ++| # include ++| #endif ++| #ifdef HAVE_STDINT_H ++| # include ++| #endif ++| #ifdef HAVE_UNISTD_H ++| # include ++| #endif ++| int ++| main () ++| { ++| if (sizeof ((pid_t))) ++| return 0; ++| ; ++| return 0; ++| } ++configure:12648: result: yes ++configure:12659: checking for uid_t in sys/types.h ++configure:12678: result: yes ++configure:12689: checking for ssize_t ++configure:12689: gcc -c -Wall -W -pedantic -g -O2 conftest.c >&5 ++configure:12689: $? = 0 ++configure:12689: gcc -c -Wall -W -pedantic -g -O2 conftest.c >&5 ++conftest.c: In function 'main': ++conftest.c:88: error: expected expression before ')' token ++configure:12689: $? = 1 ++configure: failed program was: ++| /* confdefs.h */ ++| #define PACKAGE_NAME "Enca" ++| #define PACKAGE_TARNAME "enca" ++| #define PACKAGE_VERSION "1.13" ++| #define PACKAGE_STRING "Enca 1.13" ++| #define PACKAGE_BUGREPORT "https://bugs.cihar.com/" ++| #define PACKAGE_URL "" ++| #define PACKAGE "enca" ++| #define VERSION "1.13" ++| #define STDC_HEADERS 1 ++| #define HAVE_SYS_TYPES_H 1 ++| #define HAVE_SYS_STAT_H 1 ++| #define HAVE_STDLIB_H 1 ++| #define HAVE_STRING_H 1 ++| #define HAVE_MEMORY_H 1 ++| #define HAVE_STRINGS_H 1 ++| #define HAVE_INTTYPES_H 1 ++| #define HAVE_STDINT_H 1 ++| #define HAVE_UNISTD_H 1 ++| #define __EXTENSIONS__ 1 ++| #define _ALL_SOURCE 1 ++| #define _GNU_SOURCE 1 ++| #define _POSIX_PTHREAD_SEMANTICS 1 ++| #define _TANDEM_SOURCE 1 ++| #define HAVE_DLFCN_H 1 ++| #define LT_OBJDIR ".libs/" ++| #define PICONV_PROG "/usr/bin/piconv" ++| #define HAVE__DEV_RANDOM 1 ++| #define HAVE__DEV_URANDOM 1 ++| #define STDC_HEADERS 1 ++| #define HAVE_SYS_WAIT_H 1 ++| #define TIME_WITH_SYS_TIME 1 ++| #define HAVE__BOOL 1 ++| #define HAVE_STDBOOL_H 1 ++| #define HAVE_ERRNO_H 1 ++| #define HAVE_FCNTL_H 1 ++| #define HAVE_GETOPT_H 1 ++| #define HAVE_LANGINFO_H 1 ++| #define HAVE_LIMITS_H 1 ++| #define HAVE_LOCALE_H 1 ++| #define HAVE_MEMORY_H 1 ++| #define HAVE_STRING_H 1 ++| #define HAVE_STRINGS_H 1 ++| #define HAVE_SYS_STAT_H 1 ++| #define HAVE_SYS_TYPES_H 1 ++| #define HAVE_SYS_WAIT_H 1 ++| #define HAVE_SYS_TIME_H 1 ++| #define HAVE_TIME_H 1 ++| #define HAVE_UNISTD_H 1 ++| #define HAVE_WORDEXP_H 1 ++| /* end confdefs.h. */ ++| #include ++| #ifdef HAVE_SYS_TYPES_H ++| # include ++| #endif ++| #ifdef HAVE_SYS_STAT_H ++| # include ++| #endif ++| #ifdef STDC_HEADERS ++| # include ++| # include ++| #else ++| # ifdef HAVE_STDLIB_H ++| # include ++| # endif ++| #endif ++| #ifdef HAVE_STRING_H ++| # if !defined STDC_HEADERS && defined HAVE_MEMORY_H ++| # include ++| # endif ++| # include ++| #endif ++| #ifdef HAVE_STRINGS_H ++| # include ++| #endif ++| #ifdef HAVE_INTTYPES_H ++| # include ++| #endif ++| #ifdef HAVE_STDINT_H ++| # include ++| #endif ++| #ifdef HAVE_UNISTD_H ++| # include ++| #endif ++| int ++| main () ++| { ++| if (sizeof ((ssize_t))) ++| return 0; ++| ; ++| return 0; ++| } ++configure:12689: result: yes ++configure:12701: checking whether LC_MESSAGES is declared ++configure:12701: gcc -c -Wall -W -pedantic -g -O2 conftest.c >&5 ++configure:12701: $? = 0 ++configure:12701: result: yes ++configure:12715: checking for program_invocation_short_name ++configure:12731: gcc -o conftest -Wall -W -pedantic -g -O2 conftest.c -lm >&5 ++configure:12731: $? = 0 ++configure:12739: result: yes ++configure:12749: checking vfork.h usability ++configure:12749: gcc -c -Wall -W -pedantic -g -O2 conftest.c >&5 ++conftest.c:87:19: error: vfork.h: No such file or directory ++configure:12749: $? = 1 ++configure: failed program was: ++| /* confdefs.h */ ++| #define PACKAGE_NAME "Enca" ++| #define PACKAGE_TARNAME "enca" ++| #define PACKAGE_VERSION "1.13" ++| #define PACKAGE_STRING "Enca 1.13" ++| #define PACKAGE_BUGREPORT "https://bugs.cihar.com/" ++| #define PACKAGE_URL "" ++| #define PACKAGE "enca" ++| #define VERSION "1.13" ++| #define STDC_HEADERS 1 ++| #define HAVE_SYS_TYPES_H 1 ++| #define HAVE_SYS_STAT_H 1 ++| #define HAVE_STDLIB_H 1 ++| #define HAVE_STRING_H 1 ++| #define HAVE_MEMORY_H 1 ++| #define HAVE_STRINGS_H 1 ++| #define HAVE_INTTYPES_H 1 ++| #define HAVE_STDINT_H 1 ++| #define HAVE_UNISTD_H 1 ++| #define __EXTENSIONS__ 1 ++| #define _ALL_SOURCE 1 ++| #define _GNU_SOURCE 1 ++| #define _POSIX_PTHREAD_SEMANTICS 1 ++| #define _TANDEM_SOURCE 1 ++| #define HAVE_DLFCN_H 1 ++| #define LT_OBJDIR ".libs/" ++| #define PICONV_PROG "/usr/bin/piconv" ++| #define HAVE__DEV_RANDOM 1 ++| #define HAVE__DEV_URANDOM 1 ++| #define STDC_HEADERS 1 ++| #define HAVE_SYS_WAIT_H 1 ++| #define TIME_WITH_SYS_TIME 1 ++| #define HAVE__BOOL 1 ++| #define HAVE_STDBOOL_H 1 ++| #define HAVE_ERRNO_H 1 ++| #define HAVE_FCNTL_H 1 ++| #define HAVE_GETOPT_H 1 ++| #define HAVE_LANGINFO_H 1 ++| #define HAVE_LIMITS_H 1 ++| #define HAVE_LOCALE_H 1 ++| #define HAVE_MEMORY_H 1 ++| #define HAVE_STRING_H 1 ++| #define HAVE_STRINGS_H 1 ++| #define HAVE_SYS_STAT_H 1 ++| #define HAVE_SYS_TYPES_H 1 ++| #define HAVE_SYS_WAIT_H 1 ++| #define HAVE_SYS_TIME_H 1 ++| #define HAVE_TIME_H 1 ++| #define HAVE_UNISTD_H 1 ++| #define HAVE_WORDEXP_H 1 ++| #define HAVE_DECL_LC_MESSAGES 1 ++| #define HAVE_PROGRAM_INVOCATION_SHORT_NAME 1 ++| /* end confdefs.h. */ ++| #include ++| #ifdef HAVE_SYS_TYPES_H ++| # include ++| #endif ++| #ifdef HAVE_SYS_STAT_H ++| # include ++| #endif ++| #ifdef STDC_HEADERS ++| # include ++| # include ++| #else ++| # ifdef HAVE_STDLIB_H ++| # include ++| # endif ++| #endif ++| #ifdef HAVE_STRING_H ++| # if !defined STDC_HEADERS && defined HAVE_MEMORY_H ++| # include ++| # endif ++| # include ++| #endif ++| #ifdef HAVE_STRINGS_H ++| # include ++| #endif ++| #ifdef HAVE_INTTYPES_H ++| # include ++| #endif ++| #ifdef HAVE_STDINT_H ++| # include ++| #endif ++| #ifdef HAVE_UNISTD_H ++| # include ++| #endif ++| #include ++configure:12749: result: no ++configure:12749: checking vfork.h presence ++configure:12749: gcc -E conftest.c ++conftest.c:54:19: error: vfork.h: No such file or directory ++configure:12749: $? = 1 ++configure: failed program was: ++| /* confdefs.h */ ++| #define PACKAGE_NAME "Enca" ++| #define PACKAGE_TARNAME "enca" ++| #define PACKAGE_VERSION "1.13" ++| #define PACKAGE_STRING "Enca 1.13" ++| #define PACKAGE_BUGREPORT "https://bugs.cihar.com/" ++| #define PACKAGE_URL "" ++| #define PACKAGE "enca" ++| #define VERSION "1.13" ++| #define STDC_HEADERS 1 ++| #define HAVE_SYS_TYPES_H 1 ++| #define HAVE_SYS_STAT_H 1 ++| #define HAVE_STDLIB_H 1 ++| #define HAVE_STRING_H 1 ++| #define HAVE_MEMORY_H 1 ++| #define HAVE_STRINGS_H 1 ++| #define HAVE_INTTYPES_H 1 ++| #define HAVE_STDINT_H 1 ++| #define HAVE_UNISTD_H 1 ++| #define __EXTENSIONS__ 1 ++| #define _ALL_SOURCE 1 ++| #define _GNU_SOURCE 1 ++| #define _POSIX_PTHREAD_SEMANTICS 1 ++| #define _TANDEM_SOURCE 1 ++| #define HAVE_DLFCN_H 1 ++| #define LT_OBJDIR ".libs/" ++| #define PICONV_PROG "/usr/bin/piconv" ++| #define HAVE__DEV_RANDOM 1 ++| #define HAVE__DEV_URANDOM 1 ++| #define STDC_HEADERS 1 ++| #define HAVE_SYS_WAIT_H 1 ++| #define TIME_WITH_SYS_TIME 1 ++| #define HAVE__BOOL 1 ++| #define HAVE_STDBOOL_H 1 ++| #define HAVE_ERRNO_H 1 ++| #define HAVE_FCNTL_H 1 ++| #define HAVE_GETOPT_H 1 ++| #define HAVE_LANGINFO_H 1 ++| #define HAVE_LIMITS_H 1 ++| #define HAVE_LOCALE_H 1 ++| #define HAVE_MEMORY_H 1 ++| #define HAVE_STRING_H 1 ++| #define HAVE_STRINGS_H 1 ++| #define HAVE_SYS_STAT_H 1 ++| #define HAVE_SYS_TYPES_H 1 ++| #define HAVE_SYS_WAIT_H 1 ++| #define HAVE_SYS_TIME_H 1 ++| #define HAVE_TIME_H 1 ++| #define HAVE_UNISTD_H 1 ++| #define HAVE_WORDEXP_H 1 ++| #define HAVE_DECL_LC_MESSAGES 1 ++| #define HAVE_PROGRAM_INVOCATION_SHORT_NAME 1 ++| /* end confdefs.h. */ ++| #include ++configure:12749: result: no ++configure:12749: checking for vfork.h ++configure:12749: result: no ++configure:12762: checking for fork ++configure:12762: gcc -o conftest -Wall -W -pedantic -g -O2 conftest.c -lm >&5 ++conftest.c:77: warning: conflicting types for built-in function 'fork' ++configure:12762: $? = 0 ++configure:12762: result: yes ++configure:12762: checking for vfork ++configure:12762: gcc -o conftest -Wall -W -pedantic -g -O2 conftest.c -lm >&5 ++configure:12762: $? = 0 ++configure:12762: result: yes ++configure:12773: checking for working fork ++configure:12795: gcc -o conftest -Wall -W -pedantic -g -O2 conftest.c -lm >&5 ++configure:12795: $? = 0 ++configure:12795: ./conftest ++configure:12795: $? = 0 ++configure:12805: result: yes ++configure:12826: checking for working vfork ++configure:12936: result: yes ++configure:12976: checking for canonicalize_file_name ++configure:12976: gcc -o conftest -Wall -W -pedantic -g -O2 conftest.c -lm >&5 ++configure:12976: $? = 0 ++configure:12976: result: yes ++configure:12976: checking for ftruncate ++configure:12976: gcc -o conftest -Wall -W -pedantic -g -O2 conftest.c -lm >&5 ++configure:12976: $? = 0 ++configure:12976: result: yes ++configure:12976: checking for gettimeofday ++configure:12976: gcc -o conftest -Wall -W -pedantic -g -O2 conftest.c -lm >&5 ++configure:12976: $? = 0 ++configure:12976: result: yes ++configure:12976: checking for isatty ++configure:12976: gcc -o conftest -Wall -W -pedantic -g -O2 conftest.c -lm >&5 ++configure:12976: $? = 0 ++configure:12976: result: yes ++configure:12976: checking for nl_langinfo ++configure:12976: gcc -o conftest -Wall -W -pedantic -g -O2 conftest.c -lm >&5 ++configure:12976: $? = 0 ++configure:12976: result: yes ++configure:12976: checking for random ++configure:12976: gcc -o conftest -Wall -W -pedantic -g -O2 conftest.c -lm >&5 ++configure:12976: $? = 0 ++configure:12976: result: yes ++configure:12976: checking for realpath ++configure:12976: gcc -o conftest -Wall -W -pedantic -g -O2 conftest.c -lm >&5 ++configure:12976: $? = 0 ++configure:12976: result: yes ++configure:12976: checking for strstr ++configure:12976: gcc -o conftest -Wall -W -pedantic -g -O2 conftest.c -lm >&5 ++conftest.c:88: warning: conflicting types for built-in function 'strstr' ++configure:12976: $? = 0 ++configure:12976: result: yes ++configure:12976: checking for stpcpy ++configure:12976: gcc -o conftest -Wall -W -pedantic -g -O2 conftest.c -lm >&5 ++conftest.c:89: warning: conflicting types for built-in function 'stpcpy' ++configure:12976: $? = 0 ++configure:12976: result: yes ++configure:12976: checking for setlocale ++configure:12976: gcc -o conftest -Wall -W -pedantic -g -O2 conftest.c -lm >&5 ++configure:12976: $? = 0 ++configure:12976: result: yes ++configure:12976: checking for ttyname ++configure:12976: gcc -o conftest -Wall -W -pedantic -g -O2 conftest.c -lm >&5 ++configure:12976: $? = 0 ++configure:12976: result: yes ++configure:12976: checking for wordexp ++configure:12976: gcc -o conftest -Wall -W -pedantic -g -O2 conftest.c -lm >&5 ++configure:12976: $? = 0 ++configure:12976: result: yes ++configure:12988: checking for getopt_long ++configure:12988: gcc -o conftest -Wall -W -pedantic -g -O2 conftest.c -lm >&5 ++configure:12988: $? = 0 ++configure:12988: result: yes ++configure:13046: checking for ld used by GCC ++configure:13110: result: /usr/bin/ld ++configure:13117: checking if the linker (/usr/bin/ld) is GNU ld ++configure:13130: result: yes ++configure:13137: checking for shared library run path origin ++configure:13150: result: done ++configure:13659: checking for iconv ++configure:13681: gcc -o conftest -Wall -W -pedantic -g -O2 conftest.c -lm >&5 ++configure:13681: $? = 0 ++configure:13713: result: yes ++configure:13716: checking for working iconv ++configure:13792: gcc -o conftest -Wall -W -pedantic -g -O2 conftest.c -lm >&5 ++configure:13792: $? = 0 ++configure:13792: ./conftest ++configure:13792: $? = 0 ++configure:13804: result: yes ++configure:13832: checking for iconv declaration ++configure:13861: gcc -c -Wall -W -pedantic -g -O2 conftest.c >&5 ++configure:13861: $? = 0 ++configure:13872: result: install-shextern size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft); ++configure:13886: checking whether iconv implementation is usable ++iconvcap: checking for ISO8859-1 -> Unicode... found ISO-8859-1 -> UCS2 ++iconvcap: checking for ASCII -> Unicode... found ASCII -> UCS2 ++iconvcap: checking for BALTIC -> Unicode... found BALTIC -> UCS2 ++iconvcap: checking for CP1125 -> Unicode... found CP1125 -> UCS2 ++iconvcap: checking for CP1250 -> Unicode... found CP1250 -> UCS2 ++iconvcap: checking for CP1251 -> Unicode... found CP1251 -> UCS2 ++iconvcap: checking for CP1257 -> Unicode... found CP1257 -> UCS2 ++iconvcap: checking for ECMA113 -> Unicode... found ECMA-cyrillic -> UCS2 ++iconvcap: checking for IBM852 -> Unicode... found IBM852 -> UCS2 ++iconvcap: checking for IBM855 -> Unicode... found IBM855 -> UCS2 ++iconvcap: checking for IBM775 -> Unicode... found IBM775 -> UCS2 ++iconvcap: checking for IBM866 -> Unicode... found IBM866 -> UCS2 ++iconvcap: checking for ISO88592 -> Unicode... found ISO-8859-2 -> UCS2 ++iconvcap: checking for ISO88594 -> Unicode... found ISO-8859-4 -> UCS2 ++iconvcap: checking for ISO88595 -> Unicode... found ISO-8859-5 -> UCS2 ++iconvcap: checking for ISO885913 -> Unicode... found ISO-8859-13 -> UCS2 ++iconvcap: checking for ISO885916 -> Unicode... found ISO-8859-16 -> UCS2 ++iconvcap: checking for KEYBCS2 -> Unicode... failed. ++iconvcap: checking for KOI8CS2 -> Unicode... failed. ++iconvcap: checking for KOI8R -> Unicode... found KOI8-R -> UCS2 ++iconvcap: checking for KOI8U -> Unicode... found KOI8-U -> UCS2 ++iconvcap: checking for KOI8UNI -> Unicode... failed. ++iconvcap: checking for MACCE -> Unicode... failed. ++iconvcap: checking for MACCYR -> Unicode... found MACCYRILLIC -> UCS2 ++iconvcap: checking for LATEX -> Unicode... failed. ++iconvcap: checking for UCS2 -> Unicode... found UCS-2 -> UCS2 ++iconvcap: checking for UCS4 -> Unicode... found UCS-4 -> UCS2 ++iconvcap: checking for UTF7 -> Unicode... found UTF-7 -> UCS2 ++iconvcap: checking for UTF8 -> Unicode... found UTF-8 -> UCS2 ++iconvcap: checking for CORK -> Unicode... failed. ++iconvcap: checking for GBK -> Unicode... found GBK -> UCS2 ++iconvcap: checking for BIG5 -> Unicode... found BIG5 -> UCS2 ++iconvcap: checking for HZ -> Unicode... failed. ++configure:13897: result: yes ++configure:13903: checking whether iconv is transitive ++iconvcap: transitivity OK ++configure:13914: result: yes ++configure:13959: checking for recode_new_outer in librecode ++configure:13975: gcc -o conftest -Wall -W -pedantic -g -O2 conftest.c -lm -lrecode >&5 ++conftest.c: In function 'main': ++conftest.c:79: warning: implicit declaration of function 'recode_new_outer' ++/usr/bin/ld: cannot find -lrecode ++collect2: ld returned 1 exit status ++configure:13975: $? = 1 ++configure: failed program was: ++| /* confdefs.h */ ++| #define PACKAGE_NAME "Enca" ++| #define PACKAGE_TARNAME "enca" ++| #define PACKAGE_VERSION "1.13" ++| #define PACKAGE_STRING "Enca 1.13" ++| #define PACKAGE_BUGREPORT "https://bugs.cihar.com/" ++| #define PACKAGE_URL "" ++| #define PACKAGE "enca" ++| #define VERSION "1.13" ++| #define STDC_HEADERS 1 ++| #define HAVE_SYS_TYPES_H 1 ++| #define HAVE_SYS_STAT_H 1 ++| #define HAVE_STDLIB_H 1 ++| #define HAVE_STRING_H 1 ++| #define HAVE_MEMORY_H 1 ++| #define HAVE_STRINGS_H 1 ++| #define HAVE_INTTYPES_H 1 ++| #define HAVE_STDINT_H 1 ++| #define HAVE_UNISTD_H 1 ++| #define __EXTENSIONS__ 1 ++| #define _ALL_SOURCE 1 ++| #define _GNU_SOURCE 1 ++| #define _POSIX_PTHREAD_SEMANTICS 1 ++| #define _TANDEM_SOURCE 1 ++| #define HAVE_DLFCN_H 1 ++| #define LT_OBJDIR ".libs/" ++| #define PICONV_PROG "/usr/bin/piconv" ++| #define HAVE__DEV_RANDOM 1 ++| #define HAVE__DEV_URANDOM 1 ++| #define STDC_HEADERS 1 ++| #define HAVE_SYS_WAIT_H 1 ++| #define TIME_WITH_SYS_TIME 1 ++| #define HAVE__BOOL 1 ++| #define HAVE_STDBOOL_H 1 ++| #define HAVE_ERRNO_H 1 ++| #define HAVE_FCNTL_H 1 ++| #define HAVE_GETOPT_H 1 ++| #define HAVE_LANGINFO_H 1 ++| #define HAVE_LIMITS_H 1 ++| #define HAVE_LOCALE_H 1 ++| #define HAVE_MEMORY_H 1 ++| #define HAVE_STRING_H 1 ++| #define HAVE_STRINGS_H 1 ++| #define HAVE_SYS_STAT_H 1 ++| #define HAVE_SYS_TYPES_H 1 ++| #define HAVE_SYS_WAIT_H 1 ++| #define HAVE_SYS_TIME_H 1 ++| #define HAVE_TIME_H 1 ++| #define HAVE_UNISTD_H 1 ++| #define HAVE_WORDEXP_H 1 ++| #define HAVE_DECL_LC_MESSAGES 1 ++| #define HAVE_PROGRAM_INVOCATION_SHORT_NAME 1 ++| #define HAVE_FORK 1 ++| #define HAVE_VFORK 1 ++| #define HAVE_WORKING_VFORK 1 ++| #define HAVE_WORKING_FORK 1 ++| #define HAVE_CANONICALIZE_FILE_NAME 1 ++| #define HAVE_FTRUNCATE 1 ++| #define HAVE_GETTIMEOFDAY 1 ++| #define HAVE_ISATTY 1 ++| #define HAVE_NL_LANGINFO 1 ++| #define HAVE_RANDOM 1 ++| #define HAVE_REALPATH 1 ++| #define HAVE_STRSTR 1 ++| #define HAVE_STPCPY 1 ++| #define HAVE_SETLOCALE 1 ++| #define HAVE_TTYNAME 1 ++| #define HAVE_WORDEXP 1 ++| #define HAVE_GETOPT_LONG 1 ++| #define HAVE_ICONV 1 ++| #define ICONV_CONST ++| #define HAVE_GOOD_ICONV 1 ++| #define ICONV_IS_TRANSITIVE 1 ++| /* end confdefs.h. */ ++| char* program_name = ""; ++| int ++| main () ++| { ++| recode_new_outer(0); ++| ; ++| return 0; ++| } ++configure:13983: result: no ++configure:14065: checking for locale.alias ++configure:14081: result: /usr/share/locale/locale.alias ++configure:14238: creating ./config.status ++ ++## ---------------------- ## ++## Running config.status. ## ++## ---------------------- ## ++ ++This file was extended by Enca config.status 1.13, which was ++generated by GNU Autoconf 2.65. Invocation command line was ++ ++ CONFIG_FILES = ++ CONFIG_HEADERS = ++ CONFIG_LINKS = ++ CONFIG_COMMANDS = ++ $ ./config.status ++ ++on x200t.openelec.tv ++ ++config.status:1154: creating Makefile ++config.status:1154: creating enca.spec ++config.status:1154: creating enca.pc ++config.status:1154: creating devel-docs/Makefile ++config.status:1154: creating data/Makefile ++config.status:1154: creating lib/Makefile ++config.status:1154: creating script/Makefile ++config.status:1154: creating script/b-cstocs ++config.status:1154: creating script/b-map ++config.status:1154: creating script/b-piconv ++config.status:1154: creating script/b-umap ++config.status:1154: creating src/Makefile ++config.status:1154: creating src/HELP ++config.status:1154: creating test/Makefile ++config.status:1154: creating tools/Makefile ++config.status:1154: creating config.h ++config.status:1374: executing depfiles commands ++config.status:1374: executing libtool commands ++ ++## ---------------- ## ++## Cache variables. ## ++## ---------------- ## ++ ++ac_cv_build=i686-pc-linux-gnu ++ac_cv_c_compiler_gnu=yes ++ac_cv_c_const=yes ++ac_cv_env_CC_set= ++ac_cv_env_CC_value= ++ac_cv_env_CFLAGS_set= ++ac_cv_env_CFLAGS_value= ++ac_cv_env_CPPFLAGS_set= ++ac_cv_env_CPPFLAGS_value= ++ac_cv_env_CPP_set= ++ac_cv_env_CPP_value= ++ac_cv_env_LDFLAGS_set= ++ac_cv_env_LDFLAGS_value= ++ac_cv_env_LIBS_set= ++ac_cv_env_LIBS_value= ++ac_cv_env_build_alias_set= ++ac_cv_env_build_alias_value= ++ac_cv_env_host_alias_set= ++ac_cv_env_host_alias_value= ++ac_cv_env_target_alias_set= ++ac_cv_env_target_alias_value= ++ac_cv_file__dev_arandom=no ++ac_cv_file__dev_random=yes ++ac_cv_file__dev_srandom=no ++ac_cv_file__dev_urandom=yes ++ac_cv_func_canonicalize_file_name=yes ++ac_cv_func_fork=yes ++ac_cv_func_fork_works=yes ++ac_cv_func_ftruncate=yes ++ac_cv_func_getopt_long=yes ++ac_cv_func_gettimeofday=yes ++ac_cv_func_isatty=yes ++ac_cv_func_nl_langinfo=yes ++ac_cv_func_random=yes ++ac_cv_func_realpath=yes ++ac_cv_func_setlocale=yes ++ac_cv_func_stpcpy=yes ++ac_cv_func_strstr=yes ++ac_cv_func_ttyname=yes ++ac_cv_func_vfork=yes ++ac_cv_func_vfork_works=yes ++ac_cv_func_wordexp=yes ++ac_cv_have_decl_LC_MESSAGES=yes ++ac_cv_header_dlfcn_h=yes ++ac_cv_header_errno_h=yes ++ac_cv_header_fcntl_h=yes ++ac_cv_header_getopt_h=yes ++ac_cv_header_inttypes_h=yes ++ac_cv_header_langinfo_h=yes ++ac_cv_header_limits_h=yes ++ac_cv_header_locale_h=yes ++ac_cv_header_memory_h=yes ++ac_cv_header_minix_config_h=no ++ac_cv_header_stat_broken=no ++ac_cv_header_stdbool_h=yes ++ac_cv_header_stdc=yes ++ac_cv_header_stdint_h=yes ++ac_cv_header_stdlib_h=yes ++ac_cv_header_string_h=yes ++ac_cv_header_strings_h=yes ++ac_cv_header_sys_stat_h=yes ++ac_cv_header_sys_time_h=yes ++ac_cv_header_sys_types_h=yes ++ac_cv_header_sys_wait_h=yes ++ac_cv_header_time=yes ++ac_cv_header_time_h=yes ++ac_cv_header_unistd_h=yes ++ac_cv_header_vfork_h=no ++ac_cv_header_wordexp_h=yes ++ac_cv_host=i686-pc-linux-gnu ++ac_cv_lib_m_sqrt=yes ++ac_cv_objext=o ++ac_cv_path_EGREP='/bin/grep -E' ++ac_cv_path_FGREP='/bin/grep -F' ++ac_cv_path_GREP=/bin/grep ++ac_cv_path_MKTEMP_PROG=/bin/mktemp ++ac_cv_path_PICONV_PROG=/usr/bin/piconv ++ac_cv_path_SED=/bin/sed ++ac_cv_path_install='/usr/bin/install -c' ++ac_cv_path_mkdir=/bin/mkdir ++ac_cv_prog_AWK=gawk ++ac_cv_prog_CPP='gcc -E' ++ac_cv_prog_GTKDOC=true ++ac_cv_prog_ac_ct_AR=ar ++ac_cv_prog_ac_ct_CC=gcc ++ac_cv_prog_ac_ct_OBJDUMP=objdump ++ac_cv_prog_ac_ct_RANLIB=ranlib ++ac_cv_prog_ac_ct_STRIP=strip ++ac_cv_prog_cc_c89= ++ac_cv_prog_cc_g=yes ++ac_cv_prog_cc_gcc_c_o=yes ++ac_cv_prog_make_make_set=yes ++ac_cv_safe_to_define___extensions__=yes ++ac_cv_search_strerror='none required' ++ac_cv_type__Bool=yes ++ac_cv_type_mode_t=yes ++ac_cv_type_off_t=yes ++ac_cv_type_pid_t=yes ++ac_cv_type_size_t=yes ++ac_cv_type_ssize_t=yes ++ac_cv_type_uid_t=yes ++acl_cv_hardcode_direct=no ++acl_cv_hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' ++acl_cv_hardcode_libdir_separator= ++acl_cv_hardcode_minus_L=no ++acl_cv_libext=a ++acl_cv_path_LD=/usr/bin/ld ++acl_cv_prog_gnu_ld=yes ++acl_cv_rpath=done ++acl_cv_shlibext=so ++acl_cv_wl=-Wl, ++am_cv_CC_dependencies_compiler_type=gcc3 ++am_cv_func_iconv=yes ++am_cv_func_iconv_works=yes ++am_cv_lib_iconv=no ++am_cv_prog_cc_stdc= ++am_cv_proto_iconv='extern size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);' ++am_cv_proto_iconv_arg1= ++lt_cv_deplibs_check_method=pass_all ++lt_cv_file_magic_cmd='$MAGIC_CMD' ++lt_cv_file_magic_test_file= ++lt_cv_ld_reload_flag=-r ++lt_cv_nm_interface='BSD nm' ++lt_cv_objdir=.libs ++lt_cv_path_LD=/usr/bin/ld ++lt_cv_path_NM='/usr/bin/nm -B' ++lt_cv_prog_compiler_c_o=yes ++lt_cv_prog_compiler_pic_works=yes ++lt_cv_prog_compiler_rtti_exceptions=no ++lt_cv_prog_compiler_static_works=yes ++lt_cv_prog_gnu_ld=yes ++lt_cv_sys_global_symbol_pipe='sed -n -e '\''s/^.*[ ]\([ABCDGIRSTW][ABCDGIRSTW]*\)[ ][ ]*\([_A-Za-z][_A-Za-z0-9]*\)$/\1 \2 \2/p'\''' ++lt_cv_sys_global_symbol_to_c_name_address='sed -n -e '\''s/^: \([^ ]*\) $/ {\"\1\", (void *) 0},/p'\'' -e '\''s/^[ABCDGIRSTW]* \([^ ]*\) \([^ ]*\)$/ {"\2", (void *) \&\2},/p'\''' ++lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='sed -n -e '\''s/^: \([^ ]*\) $/ {\"\1\", (void *) 0},/p'\'' -e '\''s/^[ABCDGIRSTW]* \([^ ]*\) \(lib[^ ]*\)$/ {"\2", (void *) \&\2},/p'\'' -e '\''s/^[ABCDGIRSTW]* \([^ ]*\) \([^ ]*\)$/ {"lib\2", (void *) \&\2},/p'\''' ++lt_cv_sys_global_symbol_to_cdecl='sed -n -e '\''s/^T .* \(.*\)$/extern int \1();/p'\'' -e '\''s/^[ABCDGIRSTW]* .* \(.*\)$/extern char \1;/p'\''' ++lt_cv_sys_max_cmd_len=1966080 ++yeti_cv_file_locale_alias=/usr/share/locale/locale.alias ++yeti_cv_lib_c_iconv_transitive=yes ++yeti_cv_lib_c_program_invocation_short_name=yes ++yeti_cv_lib_recode_new_outer=no ++ ++## ----------------- ## ++## Output variables. ## ++## ----------------- ## ++ ++ACLOCAL='${SHELL} /home/stephan/projects/openelec/sources/enca/enca-1.13.patch/missing --run aclocal-1.11 -I m4' ++AMDEPBACKSLASH='\' ++AMDEP_FALSE='#' ++AMDEP_TRUE='' ++AMTAR='${SHELL} /home/stephan/projects/openelec/sources/enca/enca-1.13.patch/missing --run tar' ++AR='ar' ++AUTOCONF='${SHELL} /home/stephan/projects/openelec/sources/enca/enca-1.13.patch/missing --run autoconf' ++AUTOHEADER='${SHELL} /home/stephan/projects/openelec/sources/enca/enca-1.13.patch/missing --run autoheader' ++AUTOMAKE='${SHELL} /home/stephan/projects/openelec/sources/enca/enca-1.13.patch/missing --run automake-1.11' ++AWK='gawk' ++CC='gcc' ++CCDEPMODE='depmode=gcc3' ++CFLAGS='-Wall -W -pedantic -g -O2' ++CONVERTER_LIBS=' ' ++CPP='gcc -E' ++CPPFLAGS='' ++CSTOCS_PROG='' ++CYGPATH_W='echo' ++DEFAULT_CONVERTER_LIST='built-in,iconv' ++DEFAULT_EXTERNAL_CONVERTER='piconv' ++DEFS='-DHAVE_CONFIG_H' ++DEPDIR='.deps' ++DSYMUTIL='' ++DUMPBIN='' ++ECHO_C='' ++ECHO_N='-n' ++ECHO_T='' ++EGREP='/bin/grep -E' ++ENABLE_GTK_DOC_FALSE='#' ++ENABLE_GTK_DOC_TRUE='' ++EXEEXT='' ++FGREP='/bin/grep -F' ++GREP='/bin/grep' ++GTKDOC='true' ++HTML_DIR='${datarootdir}/gtk-doc/html' ++INSTALL_DATA='${INSTALL} -m 644' ++INSTALL_PROGRAM='${INSTALL}' ++INSTALL_SCRIPT='${INSTALL}' ++INSTALL_STRIP_PROGRAM='$(install_sh) -c -s' ++LD='/usr/bin/ld' ++LDFLAGS='' ++LIBICONV='' ++LIBM='-lm' ++LIBOBJS='' ++LIBS=' -lm' ++LIBTOOL='$(SHELL) $(top_builddir)/libtool' ++LIPO='' ++LN_S='ln -s' ++LTLIBICONV='' ++LTLIBOBJS='' ++MAINT='#' ++MAINTAINER_MODE_FALSE='' ++MAINTAINER_MODE_TRUE='#' ++MAKEINFO='${SHELL} /home/stephan/projects/openelec/sources/enca/enca-1.13.patch/missing --run makeinfo' ++MAP_PROG='' ++MKDIR_P='/bin/mkdir -p' ++MKTEMP_PROG='/bin/mktemp' ++NM='/usr/bin/nm -B' ++NMEDIT='' ++OBJDUMP='objdump' ++OBJEXT='o' ++OTOOL64='' ++OTOOL='' ++PACKAGE='enca' ++PACKAGE_BUGREPORT='https://bugs.cihar.com/' ++PACKAGE_NAME='Enca' ++PACKAGE_STRING='Enca 1.13' ++PACKAGE_TARNAME='enca' ++PACKAGE_URL='' ++PACKAGE_VERSION='1.13' ++PATH_SEPARATOR=':' ++PICONV_PROG='/usr/bin/piconv' ++RANLIB='ranlib' ++RECODE_PROG='' ++RELEASE='1' ++SED='/bin/sed' ++SET_MAKE='' ++SHELL='/bin/sh' ++SHELL_RANDOM_FILENAME='`/bin/mktemp /tmp/enca-$$-XXXXXXXX`' ++STRIP='strip' ++UMAP_PROG='' ++VERSION='1.13' ++ac_ct_CC='gcc' ++ac_ct_DUMPBIN='' ++am__EXEEXT_FALSE='' ++am__EXEEXT_TRUE='#' ++am__fastdepCC_FALSE='#' ++am__fastdepCC_TRUE='' ++am__include='include' ++am__isrc='' ++am__leading_dot='.' ++am__quote='' ++am__tar='${AMTAR} chof - "$$tardir"' ++am__untar='${AMTAR} xf -' ++bindir='${exec_prefix}/bin' ++build='i686-pc-linux-gnu' ++build_alias='' ++build_cpu='i686' ++build_os='linux-gnu' ++build_vendor='pc' ++datadir='${datarootdir}' ++datarootdir='${prefix}/share' ++docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' ++dvidir='${docdir}' ++exec_prefix='${prefix}' ++host='i686-pc-linux-gnu' ++host_alias='' ++host_cpu='i686' ++host_os='linux-gnu' ++host_vendor='pc' ++htmldir='${docdir}' ++includedir='${prefix}/include' ++infodir='${datarootdir}/info' ++install_sh='${SHELL} /home/stephan/projects/openelec/sources/enca/enca-1.13.patch/install-sh' ++libdir='${exec_prefix}/lib' ++libexecdir='${exec_prefix}/libexec' ++localedir='${datarootdir}/locale' ++localstatedir='${prefix}/var' ++lt_ECHO='echo' ++mandir='${datarootdir}/man' ++mkdir_p='/bin/mkdir -p' ++oldincludedir='/usr/include' ++pdfdir='${docdir}' ++prefix='/usr/local' ++program_transform_name='s,x,x,' ++psdir='${docdir}' ++sbindir='${exec_prefix}/sbin' ++sharedstatedir='${prefix}/com' ++sysconfdir='${prefix}/etc' ++target_alias='' ++ ++## ----------- ## ++## confdefs.h. ## ++## ----------- ## ++ ++/* confdefs.h */ ++#define PACKAGE_NAME "Enca" ++#define PACKAGE_TARNAME "enca" ++#define PACKAGE_VERSION "1.13" ++#define PACKAGE_STRING "Enca 1.13" ++#define PACKAGE_BUGREPORT "https://bugs.cihar.com/" ++#define PACKAGE_URL "" ++#define PACKAGE "enca" ++#define VERSION "1.13" ++#define STDC_HEADERS 1 ++#define HAVE_SYS_TYPES_H 1 ++#define HAVE_SYS_STAT_H 1 ++#define HAVE_STDLIB_H 1 ++#define HAVE_STRING_H 1 ++#define HAVE_MEMORY_H 1 ++#define HAVE_STRINGS_H 1 ++#define HAVE_INTTYPES_H 1 ++#define HAVE_STDINT_H 1 ++#define HAVE_UNISTD_H 1 ++#define __EXTENSIONS__ 1 ++#define _ALL_SOURCE 1 ++#define _GNU_SOURCE 1 ++#define _POSIX_PTHREAD_SEMANTICS 1 ++#define _TANDEM_SOURCE 1 ++#define HAVE_DLFCN_H 1 ++#define LT_OBJDIR ".libs/" ++#define PICONV_PROG "/usr/bin/piconv" ++#define HAVE__DEV_RANDOM 1 ++#define HAVE__DEV_URANDOM 1 ++#define STDC_HEADERS 1 ++#define HAVE_SYS_WAIT_H 1 ++#define TIME_WITH_SYS_TIME 1 ++#define HAVE__BOOL 1 ++#define HAVE_STDBOOL_H 1 ++#define HAVE_ERRNO_H 1 ++#define HAVE_FCNTL_H 1 ++#define HAVE_GETOPT_H 1 ++#define HAVE_LANGINFO_H 1 ++#define HAVE_LIMITS_H 1 ++#define HAVE_LOCALE_H 1 ++#define HAVE_MEMORY_H 1 ++#define HAVE_STRING_H 1 ++#define HAVE_STRINGS_H 1 ++#define HAVE_SYS_STAT_H 1 ++#define HAVE_SYS_TYPES_H 1 ++#define HAVE_SYS_WAIT_H 1 ++#define HAVE_SYS_TIME_H 1 ++#define HAVE_TIME_H 1 ++#define HAVE_UNISTD_H 1 ++#define HAVE_WORDEXP_H 1 ++#define HAVE_DECL_LC_MESSAGES 1 ++#define HAVE_PROGRAM_INVOCATION_SHORT_NAME 1 ++#define HAVE_FORK 1 ++#define HAVE_VFORK 1 ++#define HAVE_WORKING_VFORK 1 ++#define HAVE_WORKING_FORK 1 ++#define HAVE_CANONICALIZE_FILE_NAME 1 ++#define HAVE_FTRUNCATE 1 ++#define HAVE_GETTIMEOFDAY 1 ++#define HAVE_ISATTY 1 ++#define HAVE_NL_LANGINFO 1 ++#define HAVE_RANDOM 1 ++#define HAVE_REALPATH 1 ++#define HAVE_STRSTR 1 ++#define HAVE_STPCPY 1 ++#define HAVE_SETLOCALE 1 ++#define HAVE_TTYNAME 1 ++#define HAVE_WORDEXP 1 ++#define HAVE_GETOPT_LONG 1 ++#define HAVE_ICONV 1 ++#define ICONV_CONST ++#define HAVE_GOOD_ICONV 1 ++#define ICONV_IS_TRANSITIVE 1 ++#define DEFAULT_CONVERTER_LIST "built-in,iconv" ++#define ENABLE_EXTERNAL 1 ++#define DEFAULT_EXTERNAL_CONVERTER "piconv" ++#define HAVE_LOCALE_ALIAS 1 ++#define LOCALE_ALIAS_PATH "/usr/share/locale/locale.alias" ++ ++configure: exit 0 +diff -Naur enca-1.13/config.status enca-1.13.patch/config.status +--- enca-1.13/config.status 1970-01-01 01:00:00.000000000 +0100 ++++ enca-1.13.patch/config.status 2010-04-16 18:41:17.312317308 +0200 +@@ -0,0 +1,2116 @@ ++#! /bin/sh ++# Generated by configure. ++# Run this file to recreate the current configuration. ++# Compiler output produced by configure, useful for debugging ++# configure, is in config.log if it exists. ++ ++debug=false ++ac_cs_recheck=false ++ac_cs_silent=false ++ ++SHELL=${CONFIG_SHELL-/bin/sh} ++export SHELL ++## -------------------- ## ++## M4sh Initialization. ## ++## -------------------- ## ++ ++# 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=: ++ # 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 -+ as_unset=false ++ case `(set -o) 2>/dev/null` in #( ++ *posix*) : ++ set -o posix ;; #( ++ *) : ++ ;; ++esac +fi + - - # IFS - # We need space, tab and new line, in precisely that order. Quoting is -@@ -89,15 +96,15 @@ - IFS=" "" $as_nl" - - # Find who we are. Look in the path if we contain no directory separator. --case $0 in #(( -+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 -+ test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break ++ ++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 ++# Prefer a ksh shell builtin over an external printf program on Solaris, ++# but without wasting forks for bash or zsh. ++if test -z "$BASH_VERSION$ZSH_VERSION" \ ++ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then ++ as_echo='print -r --' ++ as_echo_n='print -rn --' ++elif (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 ++ ++ ++# 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 ++fi ++ ++# Unset variables that we do not need and which cause bugs (e.g. in ++# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" ++# suppresses any "Segmentation fault" message there. '((' could ++# trigger a bug in pdksh 5.2.14. ++for as_var in BASH_ENV ENV MAIL MAILPATH ++do eval test x\${$as_var+set} = xset \ ++ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : +done - IFS=$as_save_IFS - - ;; -@@ -109,16 +116,12 @@ - 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); exit 1; } - fi - --# Unset variables that we do not need and which cause bugs (e.g. in --# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" --# suppresses any "Segmentation fault" message there. '((' could --# trigger a bug in pdksh 5.2.14. --for as_var in BASH_ENV ENV MAIL MAILPATH --do eval test x\${$as_var+set} = xset \ -- && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : -+# Work around bugs in pre-3.0 UWIN ksh. -+for as_var in ENV MAIL MAILPATH -+do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var - done - PS1='$ ' - PS2='> ' -@@ -130,300 +133,330 @@ - LANGUAGE=C - export LANGUAGE - -+# Required to use basename. ++PS1='$ ' ++PS2='> ' ++PS4='+ ' ++ ++# NLS nuisances. ++LC_ALL=C ++export LC_ALL ++LANGUAGE=C ++export LANGUAGE ++ ++# CDPATH. ++(unset CDPATH) >/dev/null 2>&1 && unset CDPATH ++ ++ ++# as_fn_error ERROR [LINENO LOG_FD] ++# --------------------------------- ++# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are ++# provided, also output the error to LOG_FD, referencing LINENO. Then exit the ++# script with status $?, using 1 if that was 0. ++as_fn_error () ++{ ++ as_status=$?; test $as_status -eq 0 && as_status=1 ++ if test "$3"; then ++ as_lineno=${as_lineno-"$2"} as_lineno_stack=as_lineno_stack=$as_lineno_stack ++ $as_echo "$as_me:${as_lineno-$LINENO}: error: $1" >&$3 ++ fi ++ $as_echo "$as_me: error: $1" >&2 ++ as_fn_exit $as_status ++} # as_fn_error ++ ++ ++# as_fn_set_status STATUS ++# ----------------------- ++# Set $? to STATUS, without forking. ++as_fn_set_status () ++{ ++ return $1 ++} # as_fn_set_status ++ ++# as_fn_exit STATUS ++# ----------------- ++# Exit the shell with STATUS, even in a "trap 0" or "set -e" context. ++as_fn_exit () ++{ ++ set +e ++ as_fn_set_status $1 ++ exit $1 ++} # as_fn_exit ++ ++# as_fn_unset VAR ++# --------------- ++# Portably unset VAR. ++as_fn_unset () ++{ ++ { eval $1=; unset $1;} ++} ++as_unset=as_fn_unset ++# as_fn_append VAR VALUE ++# ---------------------- ++# Append the text in VALUE to the end of the definition contained in VAR. Take ++# advantage of any shell optimizations that allow amortized linear growth over ++# repeated appends, instead of the typical quadratic growth present in naive ++# implementations. ++if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : ++ eval 'as_fn_append () ++ { ++ eval $1+=\$2 ++ }' ++else ++ as_fn_append () ++ { ++ eval $1=\$$1\$2 ++ } ++fi # as_fn_append ++ ++# as_fn_arith ARG... ++# ------------------ ++# Perform arithmetic evaluation on the ARGs, and store the result in the ++# global $as_val. Take advantage of shells that can avoid forks. The arguments ++# must be portable across $(()) and expr. ++if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : ++ eval 'as_fn_arith () ++ { ++ as_val=$(( $* )) ++ }' ++else ++ as_fn_arith () ++ { ++ as_val=`expr "$@" || test $? -eq 1` ++ } ++fi # as_fn_arith ++ ++ +if expr a : '\(a\)' >/dev/null 2>&1 && + test "X`expr 00001 : '.*\(...\)'`" = X001; then + as_expr=expr @@ -155,8 +2519,12 @@ diff -Naur enca-1.12/configure enca-1.12.patch/configure + as_basename=false +fi + ++if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then ++ as_dirname=dirname ++else ++ as_dirname=false ++fi + -+# Name of the executable. +as_me=`$as_basename -- "$0" || +$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ + X"$0" : 'X\(//\)$' \| \ @@ -176,11641 +2544,6 @@ diff -Naur enca-1.12/configure enca-1.12.patch/configure + } + s/.*/./; q'` + - # CDPATH. --(unset CDPATH) >/dev/null 2>&1 && unset CDPATH -+$as_unset CDPATH -+ - - if test "x$CONFIG_SHELL" = x; then -- as_bourne_compatible="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 -+ if (eval ":") 2>/dev/null; then -+ as_have_required=yes - else -- case \`(set -o) 2>/dev/null\` in #( -- *posix*) : -- set -o posix ;; #( -- *) : -- ;; --esac -+ as_have_required=no - fi --" -- as_required="as_fn_return () { (exit \$1); } --as_fn_success () { as_fn_return 0; } --as_fn_failure () { as_fn_return 1; } --as_fn_ret_success () { return 0; } --as_fn_ret_failure () { return 1; } -+ -+ 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 -+} - - exitcode=0 --as_fn_success || { exitcode=1; echo as_fn_success failed.; } --as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } --as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } --as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } --if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : -- --else -- exitcode=1; echo positional parameters were not saved. --fi --test x\$exitcode = x0 || exit 1" -- as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO -- as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO -- eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && -- test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1 --test \$(( 1 + 1 )) = 2 || exit 1" -- if (eval "$as_required") 2>/dev/null; then : -- as_have_required=yes -+if as_func_success; then -+ : - else -- as_have_required=no -+ exitcode=1 -+ echo as_func_success failed. -+fi -+ -+if as_func_failure; then -+ exitcode=1 -+ echo as_func_failure succeeded. - fi -- if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : - -+if as_func_ret_success; then -+ : - else -- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR --as_found=false -+ 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=. -- as_found=: -- case $as_dir in #( -+ case $as_dir in - /*) - for as_base in sh bash ksh sh5; do -- # Try only shells that exist, to save several forks. -- as_shell=$as_dir/$as_base -- if { test -f "$as_shell" || test -f "$as_shell.exe"; } && -- { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then : -- CONFIG_SHELL=$as_shell as_have_required=yes -- if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then : -- break 2 --fi --fi -+ as_candidate_shells="$as_candidate_shells $as_dir/$as_base" - done;; - esac -- as_found=false - done --$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } && -- { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then : -- CONFIG_SHELL=$SHELL as_have_required=yes --fi; } - IFS=$as_save_IFS - - -- if test "x$CONFIG_SHELL" != x; then : -- # We cannot yet assume a decent shell, so we have to provide a -- # neutralization value for shells without unset; and this also -- # works around shells that cannot unset nonexistent variables. -- BASH_ENV=/dev/null -- ENV=/dev/null -- (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV -- export CONFIG_SHELL -- exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"} --fi -+ 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 - -- if test x$as_have_required = xno; then : -- $as_echo "$0: This script requires a shell more modern than all" -- $as_echo "$0: the shells that I found on your system." -- if test x${ZSH_VERSION+set} = xset ; then -- $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" -- $as_echo "$0: be upgraded to zsh 4.3.4 or later." -- else -- $as_echo "$0: Please tell bug-autoconf@gnu.org and Michal Cihar --$0: about your system, including any --$0: error possibly output before this message. Then install --$0: a modern shell, or manually run the script under such a --$0: shell if you do have one." -- fi -- exit 1 --fi - 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 --SHELL=${CONFIG_SHELL-/bin/sh} --export SHELL --# Unset more variables known to interfere with behavior of common tools. --CLICOLOR_FORCE= GREP_OPTIONS= --unset CLICOLOR_FORCE GREP_OPTIONS - --## --------------------- ## --## M4sh Shell Functions. ## --## --------------------- ## --# as_fn_unset VAR --# --------------- --# Portably unset VAR. --as_fn_unset () --{ -- { eval $1=; unset $1;} --} --as_unset=as_fn_unset -- --# as_fn_set_status STATUS --# ----------------------- --# Set $? to STATUS, without forking. --as_fn_set_status () --{ -- return $1 --} # as_fn_set_status -- --# as_fn_exit STATUS --# ----------------- --# Exit the shell with STATUS, even in a "trap 0" or "set -e" context. --as_fn_exit () --{ -- set +e -- as_fn_set_status $1 -- exit $1 --} # as_fn_exit -- --# as_fn_mkdir_p --# ------------- --# Create "$as_dir" as a directory, including parents if necessary. --as_fn_mkdir_p () --{ - -- case $as_dir in #( -- -*) as_dir=./$as_dir;; -- esac -- test -d "$as_dir" || eval $as_mkdir_p || { -- as_dirs= -- 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 || --$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 -z "$as_dirs" || eval "mkdir $as_dirs" -- } || test -d "$as_dir" || as_fn_error "cannot create directory $as_dir" -+: -+(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 - --} # as_fn_mkdir_p --# as_fn_append VAR VALUE --# ---------------------- --# Append the text in VALUE to the end of the definition contained in VAR. Take --# advantage of any shell optimizations that allow amortized linear growth over --# repeated appends, instead of the typical quadratic growth present in naive --# implementations. --if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : -- eval 'as_fn_append () -- { -- eval $1+=\$2 -- }' -+if as_func_failure; then -+ exitcode=1 -+ echo as_func_failure succeeded. -+fi -+ -+if as_func_ret_success; then -+ : - else -- as_fn_append () -- { -- eval $1=\$$1\$2 -- } --fi # as_fn_append -+ exitcode=1 -+ echo as_func_ret_success failed. -+fi - --# as_fn_arith ARG... --# ------------------ --# Perform arithmetic evaluation on the ARGs, and store the result in the --# global $as_val. Take advantage of shells that can avoid forks. The arguments --# must be portable across $(()) and expr. --if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : -- eval 'as_fn_arith () -- { -- as_val=$(( $* )) -- }' -+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 -- as_fn_arith () -- { -- as_val=`expr "$@" || test $? -eq 1` -- } --fi # as_fn_arith -+ exitcode=1 -+ echo positional parameters were not saved. -+fi - -+test $exitcode = 0) || { (exit 1); exit 1; } - --# as_fn_error ERROR [LINENO LOG_FD] --# --------------------------------- --# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are --# provided, also output the error to LOG_FD, referencing LINENO. Then exit the --# script with status $?, using 1 if that was 0. --as_fn_error () --{ -- as_status=$?; test $as_status -eq 0 && as_status=1 -- if test "$3"; then -- as_lineno=${as_lineno-"$2"} as_lineno_stack=as_lineno_stack=$as_lineno_stack -- $as_echo "$as_me:${as_lineno-$LINENO}: error: $1" >&$3 -- fi -- $as_echo "$as_me: error: $1" >&2 -- as_fn_exit $as_status --} # as_fn_error -+( -+ 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; } - --if expr a : '\(a\)' >/dev/null 2>&1 && -- test "X`expr 00001 : '.*\(...\)'`" = X001; then -- as_expr=expr -+_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 -- as_expr=false -+ exitcode=1 -+ echo as_func_success failed. - fi - --if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then -- as_basename=basename -+if as_func_failure; then -+ exitcode=1 -+ echo as_func_failure succeeded. -+fi -+ -+if as_func_ret_success; then -+ : - else -- as_basename=false -+ exitcode=1 -+ echo as_func_ret_success failed. - fi - --if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then -- as_dirname=dirname -+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 -- as_dirname=false -+ exitcode=1 -+ echo positional parameters were not saved. - fi - --as_me=`$as_basename -- "$0" || --$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ -- X"$0" : 'X\(//\)$' \| \ -- X"$0" : 'X\(/\)' \| . 2>/dev/null || --$as_echo X/"$0" | -- sed '/^.*\/\([^/][^/]*\)\/*$/{ -- s//\1/ -- q -- } -- /^X\/\(\/\/\)$/{ -- s//\1/ -- q -- } -- /^X\/\(\/\).*/{ -- s//\1/ -- q -- } -- s/.*/./; q'` -+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. -+} - --# 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_lineno_1=$LINENO as_lineno_1a=$LINENO -- as_lineno_2=$LINENO as_lineno_2a=$LINENO -- eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && -- test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { -- # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) -+ 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 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 -+ # scripts with optimization help from Paolo Bonzini. Blame Lee -+ # E. McMahon (1931-1989) for sed's syntax. :-) - sed -n ' - p - /[$]LINENO/= -@@ -440,7 +473,8 @@ - s/-\n.*// - ' >$as_me.lineno && - chmod +x "$as_me.lineno" || -- { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } -+ { $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 -@@ -450,18 +484,29 @@ - exit - } - --ECHO_C= ECHO_N= ECHO_T= --case `echo -n x` in #((((( ---n*) -- case `echo 'xy\c'` in -- *c*) ECHO_T=' ';; # ECHO_T is single tab character. -- xy) ECHO_C='\c';; -- *) echo `echo ksh88 bug on AIX 6.1` > /dev/null -- ECHO_T=' ';; -+ -+if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then -+ as_dirname=dirname -+else -+ as_dirname=false -+fi -+ -+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 - if test -d conf$$.dir; then -@@ -491,7 +536,7 @@ - rmdir conf$$.dir 2>/dev/null - - if mkdir -p . 2>/dev/null; then -- as_mkdir_p='mkdir -p "$as_dir"' -+ as_mkdir_p=: - else - test -d ./-p && rmdir ./-p - as_mkdir_p=false -@@ -510,10 +555,10 @@ - if test -d "$1"; then - test -d "$1/."; - else -- case $1 in #( -+ case $1 in - -*)set "./$1";; - esac; -- case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #(( -+ case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in - ???[sx]*):;;*)false;;esac;fi - '\'' sh - ' -@@ -528,6 +573,7 @@ - - - -+ - # Check that we are running under the correct shell. - SHELL=${CONFIG_SHELL-/bin/sh} - -@@ -694,6 +740,7 @@ - subdirs= - MFLAGS= - MAKEFLAGS= -+SHELL=${CONFIG_SHELL-/bin/sh} - - # Identity of this package. - PACKAGE_NAME='Enca' -@@ -701,7 +748,6 @@ - PACKAGE_VERSION='1.12' - PACKAGE_STRING='Enca 1.12' - PACKAGE_BUGREPORT='Michal Cihar ' --PACKAGE_URL='' - - ac_unique_file="src/enca.c" - # Factoring default headers for most tests. -@@ -862,7 +908,6 @@ - program_transform_name - prefix - exec_prefix --PACKAGE_URL - PACKAGE_BUGREPORT - PACKAGE_STRING - PACKAGE_VERSION -@@ -1005,7 +1050,8 @@ - ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && -- as_fn_error "invalid feature name: $ac_useropt" -+ { $as_echo "$as_me: error: invalid feature name: $ac_useropt" >&2 -+ { (exit 1); exit 1; }; } - ac_useropt_orig=$ac_useropt - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` - case $ac_user_opts in -@@ -1031,7 +1077,8 @@ - ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && -- as_fn_error "invalid feature name: $ac_useropt" -+ { $as_echo "$as_me: error: invalid feature name: $ac_useropt" >&2 -+ { (exit 1); exit 1; }; } - ac_useropt_orig=$ac_useropt - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` - case $ac_user_opts in -@@ -1235,7 +1282,8 @@ - ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && -- as_fn_error "invalid package name: $ac_useropt" -+ { $as_echo "$as_me: error: invalid package name: $ac_useropt" >&2 -+ { (exit 1); exit 1; }; } - ac_useropt_orig=$ac_useropt - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` - case $ac_user_opts in -@@ -1251,7 +1299,8 @@ - ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && -- as_fn_error "invalid package name: $ac_useropt" -+ { $as_echo "$as_me: error: invalid package name: $ac_useropt" >&2 -+ { (exit 1); exit 1; }; } - ac_useropt_orig=$ac_useropt - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` - case $ac_user_opts in -@@ -1281,17 +1330,17 @@ - | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) - x_libraries=$ac_optarg ;; - -- -*) as_fn_error "unrecognized option: \`$ac_option' --Try \`$0 --help' for more information." -+ -*) { $as_echo "$as_me: error: unrecognized option: $ac_option -+Try \`$0 --help' for more information." >&2 -+ { (exit 1); exit 1; }; } - ;; - - *=*) - ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` - # Reject names that are not valid shell variable names. -- case $ac_envvar in #( -- '' | [0-9]* | *[!_$as_cr_alnum]* ) -- as_fn_error "invalid variable name: \`$ac_envvar'" ;; -- esac -+ expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null && -+ { $as_echo "$as_me: error: invalid variable name: $ac_envvar" >&2 -+ { (exit 1); exit 1; }; } - eval $ac_envvar=\$ac_optarg - export $ac_envvar ;; - -@@ -1308,13 +1357,15 @@ - - if test -n "$ac_prev"; then - ac_option=--`echo $ac_prev | sed 's/_/-/g'` -- as_fn_error "missing argument to $ac_option" -+ { $as_echo "$as_me: error: missing argument to $ac_option" >&2 -+ { (exit 1); exit 1; }; } - fi - - if test -n "$ac_unrecognized_opts"; then - case $enable_option_checking in - no) ;; -- fatal) as_fn_error "unrecognized options: $ac_unrecognized_opts" ;; -+ 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 - fi -@@ -1337,7 +1388,8 @@ - [\\/$]* | ?:[\\/]* ) continue;; - NONE | '' ) case $ac_var in *prefix ) continue;; esac;; - esac -- as_fn_error "expected an absolute directory name for --$ac_var: $ac_val" -+ { $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' -@@ -1367,9 +1419,11 @@ - ac_pwd=`pwd` && test -n "$ac_pwd" && - ac_ls_di=`ls -di .` && - ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || -- as_fn_error "working directory cannot be determined" -+ { $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_fn_error "pwd does not report name of working directory" -+ { $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. -@@ -1408,11 +1462,13 @@ - fi - if test ! -r "$srcdir/$ac_unique_file"; then - test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." -- as_fn_error "cannot find sources ($ac_unique_file) in $srcdir" -+ { $as_echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2 -+ { (exit 1); exit 1; }; } - fi - ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" - ac_abs_confdir=`( -- cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error "$ac_msg" -+ cd "$srcdir" && test -r "./$ac_unique_file" || { $as_echo "$as_me: error: $ac_msg" >&2 -+ { (exit 1); exit 1; }; } - pwd)` - # When building in place, set srcdir=. - if test "$ac_abs_confdir" = "$ac_pwd"; then -@@ -1618,471 +1674,21 @@ - if $ac_init_version; then - cat <<\_ACEOF - Enca configure 1.12 --generated by GNU Autoconf 2.64 -+generated by GNU Autoconf 2.63 - --Copyright (C) 2009 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 - fi -- --## ------------------------ ## --## Autoconf initialization. ## --## ------------------------ ## -- --# ac_fn_c_try_compile LINENO --# -------------------------- --# Try to compile conftest.$ac_ext, and return whether this succeeded. --ac_fn_c_try_compile () --{ -- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack -- 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:${as_lineno-$LINENO}: $ac_try_echo\"" --$as_echo "$ac_try_echo"; } >&5 -- (eval "$ac_compile") 2>conftest.err -- ac_status=$? -- if test -s conftest.err; then -- grep -v '^ *+' conftest.err >conftest.er1 -- cat conftest.er1 >&5 -- mv -f conftest.er1 conftest.err -- fi -- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 -- test $ac_status = 0; } && { -- test -z "$ac_c_werror_flag" || -- test ! -s conftest.err -- } && test -s conftest.$ac_objext; then : -- ac_retval=0 --else -- $as_echo "$as_me: failed program was:" >&5 --sed 's/^/| /' conftest.$ac_ext >&5 -- -- ac_retval=1 --fi -- eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} -- return $ac_retval -- --} # ac_fn_c_try_compile -- --# ac_fn_c_try_cpp LINENO --# ---------------------- --# Try to preprocess conftest.$ac_ext, and return whether this succeeded. --ac_fn_c_try_cpp () --{ -- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack -- 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:${as_lineno-$LINENO}: $ac_try_echo\"" --$as_echo "$ac_try_echo"; } >&5 -- (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err -- ac_status=$? -- if test -s conftest.err; then -- grep -v '^ *+' conftest.err >conftest.er1 -- cat conftest.er1 >&5 -- mv -f conftest.er1 conftest.err -- fi -- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 -- test $ac_status = 0; } >/dev/null && { -- test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || -- test ! -s conftest.err -- }; then : -- ac_retval=0 --else -- $as_echo "$as_me: failed program was:" >&5 --sed 's/^/| /' conftest.$ac_ext >&5 -- -- ac_retval=1 --fi -- eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} -- return $ac_retval -- --} # ac_fn_c_try_cpp -- --# ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES --# ------------------------------------------------------- --# Tests whether HEADER exists, giving a warning if it cannot be compiled using --# the include files in INCLUDES and setting the cache variable VAR --# accordingly. --ac_fn_c_check_header_mongrel () --{ -- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack -- if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : -- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 --$as_echo_n "checking for $2... " >&6; } --if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : -- $as_echo_n "(cached) " >&6 --fi --eval ac_res=\$$3 -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 --$as_echo "$ac_res" >&6; } --else -- # Is the header compilable? --{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5 --$as_echo_n "checking $2 usability... " >&6; } --cat confdefs.h - <<_ACEOF >conftest.$ac_ext --/* end confdefs.h. */ --$4 --#include <$2> --_ACEOF --if ac_fn_c_try_compile "$LINENO"; then : -- ac_header_compiler=yes --else -- ac_header_compiler=no --fi --rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext --{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5 --$as_echo "$ac_header_compiler" >&6; } -- --# Is the header present? --{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5 --$as_echo_n "checking $2 presence... " >&6; } --cat confdefs.h - <<_ACEOF >conftest.$ac_ext --/* end confdefs.h. */ --#include <$2> --_ACEOF --if ac_fn_c_try_cpp "$LINENO"; then : -- ac_header_preproc=yes --else -- ac_header_preproc=no --fi --rm -f conftest.err conftest.$ac_ext --{ $as_echo "$as_me:${as_lineno-$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: ) -- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5 --$as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;} -- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 --$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} -- ;; -- no:yes:* ) -- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5 --$as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;} -- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5 --$as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;} -- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5 --$as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;} -- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5 --$as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;} -- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 --$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} --( cat <<\_ASBOX --## ---------------------------------------------- ## --## Report this to Michal Cihar ## --## ---------------------------------------------- ## --_ASBOX -- ) | sed "s/^/$as_me: WARNING: /" >&2 -- ;; --esac -- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 --$as_echo_n "checking for $2... " >&6; } --if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : -- $as_echo_n "(cached) " >&6 --else -- eval "$3=\$ac_header_compiler" --fi --eval ac_res=\$$3 -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 --$as_echo "$ac_res" >&6; } --fi -- eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} -- --} # ac_fn_c_check_header_mongrel -- --# ac_fn_c_try_run LINENO --# ---------------------- --# Try to link conftest.$ac_ext, and return whether this succeeded. Assumes --# that executables *can* be run. --ac_fn_c_try_run () --{ -- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack -- 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:${as_lineno-$LINENO}: $ac_try_echo\"" --$as_echo "$ac_try_echo"; } >&5 -- (eval "$ac_link") 2>&5 -- ac_status=$? -- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 -- test $ac_status = 0; } && { ac_try='./conftest$ac_exeext' -- { { case "(($ac_try" in -- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; -- *) ac_try_echo=$ac_try;; --esac --eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" --$as_echo "$ac_try_echo"; } >&5 -- (eval "$ac_try") 2>&5 -- ac_status=$? -- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 -- test $ac_status = 0; }; }; then : -- ac_retval=0 --else -- $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 -- -- ac_retval=$ac_status --fi -- rm -rf conftest.dSYM conftest_ipa8_conftest.oo -- eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} -- return $ac_retval -- --} # ac_fn_c_try_run -- --# ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES --# ------------------------------------------------------- --# Tests whether HEADER exists and can be compiled using the include files in --# INCLUDES, setting the cache variable VAR accordingly. --ac_fn_c_check_header_compile () --{ -- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack -- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 --$as_echo_n "checking for $2... " >&6; } --if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : -- $as_echo_n "(cached) " >&6 --else -- cat confdefs.h - <<_ACEOF >conftest.$ac_ext --/* end confdefs.h. */ --$4 --#include <$2> --_ACEOF --if ac_fn_c_try_compile "$LINENO"; then : -- eval "$3=yes" --else -- eval "$3=no" --fi --rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext --fi --eval ac_res=\$$3 -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 --$as_echo "$ac_res" >&6; } -- eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} -- --} # ac_fn_c_check_header_compile -- --# ac_fn_c_try_link LINENO --# ----------------------- --# Try to link conftest.$ac_ext, and return whether this succeeded. --ac_fn_c_try_link () --{ -- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack -- rm -f conftest.$ac_objext conftest$ac_exeext -- 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:${as_lineno-$LINENO}: $ac_try_echo\"" --$as_echo "$ac_try_echo"; } >&5 -- (eval "$ac_link") 2>conftest.err -- ac_status=$? -- if test -s conftest.err; then -- grep -v '^ *+' conftest.err >conftest.er1 -- cat conftest.er1 >&5 -- mv -f conftest.er1 conftest.err -- fi -- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 -- test $ac_status = 0; } && { -- 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_retval=0 --else -- $as_echo "$as_me: failed program was:" >&5 --sed 's/^/| /' conftest.$ac_ext >&5 -- -- ac_retval=1 --fi -- # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information -- # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would -- # interfere with the next link command; also delete a directory that is -- # left behind by Apple's compiler. We do this before executing the actions. -- rm -rf conftest.dSYM conftest_ipa8_conftest.oo -- eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} -- return $ac_retval -- --} # ac_fn_c_try_link -- --# ac_fn_c_check_func LINENO FUNC VAR --# ---------------------------------- --# Tests whether FUNC exists, setting the cache variable VAR accordingly --ac_fn_c_check_func () --{ -- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack -- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 --$as_echo_n "checking for $2... " >&6; } --if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : -- $as_echo_n "(cached) " >&6 --else -- cat confdefs.h - <<_ACEOF >conftest.$ac_ext --/* end confdefs.h. */ --/* Define $2 to an innocuous variant, in case declares $2. -- For example, HP-UX 11i declares gettimeofday. */ --#define $2 innocuous_$2 -- --/* System header to define __stub macros and hopefully few prototypes, -- which can conflict with char $2 (); below. -- Prefer to if __STDC__ is defined, since -- exists even on freestanding compilers. */ -- --#ifdef __STDC__ --# include --#else --# include --#endif -- --#undef $2 -- --/* 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 --char $2 (); --/* 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_$2 || defined __stub___$2 --choke me --#endif -- --int --main () --{ --return $2 (); -- ; -- return 0; --} --_ACEOF --if ac_fn_c_try_link "$LINENO"; then : -- eval "$3=yes" --else -- eval "$3=no" --fi --rm -f core conftest.err conftest.$ac_objext \ -- conftest$ac_exeext conftest.$ac_ext --fi --eval ac_res=\$$3 -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 --$as_echo "$ac_res" >&6; } -- eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} -- --} # ac_fn_c_check_func -- --# ac_fn_c_check_type LINENO TYPE VAR INCLUDES --# ------------------------------------------- --# Tests whether TYPE exists after having included INCLUDES, setting cache --# variable VAR accordingly. --ac_fn_c_check_type () --{ -- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack -- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 --$as_echo_n "checking for $2... " >&6; } --if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : -- $as_echo_n "(cached) " >&6 --else -- eval "$3=no" -- cat confdefs.h - <<_ACEOF >conftest.$ac_ext --/* end confdefs.h. */ --$4 --int --main () --{ --if (sizeof ($2)) -- return 0; -- ; -- return 0; --} --_ACEOF --if ac_fn_c_try_compile "$LINENO"; then : -- cat confdefs.h - <<_ACEOF >conftest.$ac_ext --/* end confdefs.h. */ --$4 --int --main () --{ --if (sizeof (($2))) -- return 0; -- ; -- return 0; --} --_ACEOF --if ac_fn_c_try_compile "$LINENO"; then : -- --else -- eval "$3=yes" --fi --rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext --fi --rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext --fi --eval ac_res=\$$3 -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 --$as_echo "$ac_res" >&6; } -- eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} -- --} # ac_fn_c_check_type -- --# ac_fn_c_check_decl LINENO SYMBOL VAR --# ------------------------------------ --# Tests whether SYMBOL is declared, setting cache variable VAR accordingly. --ac_fn_c_check_decl () --{ -- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack -- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $2 is declared" >&5 --$as_echo_n "checking whether $2 is declared... " >&6; } --if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : -- $as_echo_n "(cached) " >&6 --else -- cat confdefs.h - <<_ACEOF >conftest.$ac_ext --/* end confdefs.h. */ --$4 --int --main () --{ --#ifndef $2 -- (void) $2; --#endif -- -- ; -- return 0; --} --_ACEOF --if ac_fn_c_try_compile "$LINENO"; then : -- eval "$3=yes" --else -- eval "$3=no" --fi --rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext --fi --eval ac_res=\$$3 -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 --$as_echo "$ac_res" >&6; } -- eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} -- --} # ac_fn_c_check_decl - 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 Enca $as_me 1.12, which was --generated by GNU Autoconf 2.64. Invocation command line was -+generated by GNU Autoconf 2.63. Invocation command line was - - $ $0 $@ - -@@ -2118,8 +1724,8 @@ - do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. -- $as_echo "PATH: $as_dir" -- done -+ $as_echo "PATH: $as_dir" -+done - IFS=$as_save_IFS - - } >&5 -@@ -2156,9 +1762,9 @@ - ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; - esac - case $ac_pass in -- 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; -+ 1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;; - 2) -- as_fn_append ac_configure_args1 " '$ac_arg'" -+ ac_configure_args1="$ac_configure_args1 '$ac_arg'" - if test $ac_must_keep_next = true; then - ac_must_keep_next=false # Got value, back to normal. - else -@@ -2174,13 +1780,13 @@ - -* ) ac_must_keep_next=true ;; - esac - fi -- as_fn_append ac_configure_args " '$ac_arg'" -+ ac_configure_args="$ac_configure_args '$ac_arg'" - ;; - esac - done - done --{ ac_configure_args0=; unset ac_configure_args0;} --{ ac_configure_args1=; unset ac_configure_args1;} -+$as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; } -+$as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; } - - # When interrupted or exit'd, cleanup temporary files, and complete - # config.log. We remove comments because anyway the quotes in there -@@ -2205,13 +1811,13 @@ - case $ac_val in #( - *${as_nl}*) - case $ac_var in #( -- *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 -+ *_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= ;; #( -- *) { eval $ac_var=; unset $ac_var;} ;; -+ *) $as_unset $ac_var ;; - esac ;; - esac - done -@@ -2283,39 +1889,37 @@ - exit $exit_status - ' 0 - for ac_signal in 1 2 13 15; do -- trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal -+ 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 -f -r conftest* confdefs.h - --$as_echo "/* confdefs.h */" > confdefs.h -- - # Predefined preprocessor variables. - - cat >>confdefs.h <<_ACEOF - #define PACKAGE_NAME "$PACKAGE_NAME" - _ACEOF - -+ - cat >>confdefs.h <<_ACEOF - #define PACKAGE_TARNAME "$PACKAGE_TARNAME" - _ACEOF - -+ - cat >>confdefs.h <<_ACEOF - #define PACKAGE_VERSION "$PACKAGE_VERSION" - _ACEOF - -+ - cat >>confdefs.h <<_ACEOF - #define PACKAGE_STRING "$PACKAGE_STRING" - _ACEOF - --cat >>confdefs.h <<_ACEOF --#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" --_ACEOF - - cat >>confdefs.h <<_ACEOF --#define PACKAGE_URL "$PACKAGE_URL" -+#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" - _ACEOF - - -@@ -2336,7 +1940,7 @@ - do - test "x$ac_site_file" = xNONE && continue - if test -r "$ac_site_file"; then -- { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 -+ { $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" -@@ -2347,7 +1951,7 @@ - # Some versions of bash will fail to source /dev/null (special - # files actually), so we avoid doing that. - if test -f "$cache_file"; then -- { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 -+ { $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";; -@@ -2355,7 +1959,7 @@ - esac - fi - else -- { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 -+ { $as_echo "$as_me:$LINENO: creating cache $cache_file" >&5 - $as_echo "$as_me: creating cache $cache_file" >&6;} - >$cache_file - fi -@@ -2370,11 +1974,11 @@ - eval ac_new_val=\$ac_env_${ac_var}_value - case $ac_old_set,$ac_new_set in - set,) -- { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 -+ { $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) -- { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 -+ { $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=: ;; - ,);; -@@ -2384,17 +1988,17 @@ - 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:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 -+ { $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:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 -+ { $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:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 -+ { $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:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 -+ { $as_echo "$as_me:$LINENO: current value: \`$ac_new_val'" >&5 - $as_echo "$as_me: current value: \`$ac_new_val'" >&2;} - fi;; - esac -@@ -2406,50 +2010,81 @@ - esac - case " $ac_configure_args " in - *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. -- *) as_fn_append ac_configure_args " '$ac_arg'" ;; -+ *) ac_configure_args="$ac_configure_args '$ac_arg'" ;; - esac - fi - done - if $ac_cache_corrupted; then -- { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -+ { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 - $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -- { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 -+ { $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_fn_error "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 -+ { { $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 --## -------------------- ## --## Main body of script. ## --## -------------------- ## - --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_files="$ac_config_files Makefile enca.spec enca.pc devel-docs/Makefile data/Makefile lib/Makefile script/Makefile script/b-cstocs script/b-map script/b-piconv script/b-umap src/Makefile src/HELP test/Makefile tools/Makefile" - - --ac_config_headers="$ac_config_headers config.h" - --am__api_version='1.11' - --ac_aux_dir= --for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do -- for ac_t in install-sh install.sh shtool; do -- if test -f "$ac_dir/$ac_t"; then -- ac_aux_dir=$ac_dir -- ac_install_sh="$ac_aux_dir/$ac_t -c" -- break 2 -- fi -- done -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+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_files="$ac_config_files Makefile enca.spec enca.pc devel-docs/Makefile data/Makefile lib/Makefile script/Makefile script/b-cstocs script/b-map script/b-piconv script/b-umap src/Makefile src/HELP test/Makefile tools/Makefile" -+ -+ -+ac_config_headers="$ac_config_headers config.h" -+ -+am__api_version='1.11' -+ -+ac_aux_dir= -+for ac_dir in "$srcdir" "$srcdir/.." "$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 -+ ac_aux_dir=$ac_dir -+ ac_install_sh="$ac_aux_dir/install.sh -c" -+ break -+ 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 -- as_fn_error "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5 -+ { { $as_echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" >&5 -+$as_echo "$as_me: error: cannot find install-sh or install.sh in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" >&2;} -+ { (exit 1); exit 1; }; } - fi - - # These three variables are undocumented and unsupported, -@@ -2475,10 +2110,10 @@ - # OS/2's system install, which has a completely different semantic - # ./install, which can be erroneously created by make from ./install.sh. - # Reject install programs that cannot install multiple files. --{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 -+{ $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 : -+if test "${ac_cv_path_install+set}" = set; then - $as_echo_n "(cached) " >&6 - else - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -@@ -2486,11 +2121,11 @@ - do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. -- # Account for people who put trailing slashes in PATH elements. --case $as_dir/ in #(( -- ./ | .// | /[cC]/* | \ -+ # Account for people who put trailing slashes in PATH elements. -+case $as_dir/ in -+ ./ | .// | /cC/* | \ - /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ -- ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \ -+ ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \ - /usr/ucb/* ) ;; - *) - # OSF1 and SCO ODT 3.0 have their own names for install. -@@ -2527,7 +2162,7 @@ - ;; - esac - -- done -+done - IFS=$as_save_IFS - - rm -rf conftest.one conftest.two conftest.dir -@@ -2543,7 +2178,7 @@ - INSTALL=$ac_install_sh - fi - fi --{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 -+{ $as_echo "$as_me:$LINENO: result: $INSTALL" >&5 - $as_echo "$INSTALL" >&6; } - - # Use test -z because SunOS4 sh mishandles braces in ${var-val}. -@@ -2554,7 +2189,7 @@ - - test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' - --{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5 -+{ $as_echo "$as_me:$LINENO: checking whether build environment is sane" >&5 - $as_echo_n "checking whether build environment is sane... " >&6; } - # Just in case - sleep 1 -@@ -2565,11 +2200,15 @@ - ' - case `pwd` in - *[\\\"\#\$\&\'\`$am_lf]*) -- as_fn_error "unsafe absolute working directory name" "$LINENO" 5;; -+ { { $as_echo "$as_me:$LINENO: error: unsafe absolute working directory name" >&5 -+$as_echo "$as_me: error: unsafe absolute working directory name" >&2;} -+ { (exit 1); exit 1; }; };; - esac - case $srcdir in - *[\\\"\#\$\&\'\`$am_lf\ \ ]*) -- as_fn_error "unsafe srcdir value: \`$srcdir'" "$LINENO" 5;; -+ { { $as_echo "$as_me:$LINENO: error: unsafe srcdir value: \`$srcdir'" >&5 -+$as_echo "$as_me: error: unsafe srcdir value: \`$srcdir'" >&2;} -+ { (exit 1); exit 1; }; };; - esac - - # Do `set' in a subshell so we don't clobber the current shell's -@@ -2591,8 +2230,11 @@ - # if, for instance, CONFIG_SHELL is bash and it inherits a - # broken ls alias from the environment. This has actually - # happened. Such a system could not be considered "sane". -- as_fn_error "ls -t appears to fail. Make sure there is not a broken --alias in your environment" "$LINENO" 5 -+ { { $as_echo "$as_me:$LINENO: error: ls -t appears to fail. Make sure there is not a broken -+alias in your environment" >&5 -+$as_echo "$as_me: error: ls -t appears to fail. Make sure there is not a broken -+alias in your environment" >&2;} -+ { (exit 1); exit 1; }; } - fi - - test "$2" = conftest.file -@@ -2601,10 +2243,13 @@ - # Ok. - : - else -- as_fn_error "newly created file is older than distributed files! --Check your system clock" "$LINENO" 5 -+ { { $as_echo "$as_me:$LINENO: error: newly created file is older than distributed files! -+Check your system clock" >&5 -+$as_echo "$as_me: error: newly created file is older than distributed files! -+Check your system clock" >&2;} -+ { (exit 1); exit 1; }; } - fi --{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -+{ $as_echo "$as_me:$LINENO: result: yes" >&5 - $as_echo "yes" >&6; } - test "$program_prefix" != NONE && - program_transform_name="s&^&$program_prefix&;$program_transform_name" -@@ -2632,7 +2277,7 @@ - am_missing_run="$MISSING --run " - else - am_missing_run= -- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`missing' script is too old or missing" >&5 -+ { $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 - -@@ -2653,9 +2298,9 @@ - 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 --{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -+{ $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 : -+if test "${ac_cv_prog_STRIP+set}" = set; then - $as_echo_n "(cached) " >&6 - else - if test -n "$STRIP"; then -@@ -2666,24 +2311,24 @@ - do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. -- for ac_exec_ext in '' $ac_executable_extensions; do -+ 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_STRIP="${ac_tool_prefix}strip" -- $as_echo "$as_me:${as_lineno-$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 -+done - IFS=$as_save_IFS - - fi - fi - STRIP=$ac_cv_prog_STRIP - if test -n "$STRIP"; then -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 -+ { $as_echo "$as_me:$LINENO: result: $STRIP" >&5 - $as_echo "$STRIP" >&6; } - else -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -+ { $as_echo "$as_me:$LINENO: result: no" >&5 - $as_echo "no" >&6; } - fi - -@@ -2693,9 +2338,9 @@ - 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 --{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -+{ $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 : -+if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then - $as_echo_n "(cached) " >&6 - else - if test -n "$ac_ct_STRIP"; then -@@ -2706,24 +2351,24 @@ - do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. -- for ac_exec_ext in '' $ac_executable_extensions; do -+ 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_ac_ct_STRIP="strip" -- $as_echo "$as_me:${as_lineno-$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 -+done - IFS=$as_save_IFS - - fi - fi - ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP - if test -n "$ac_ct_STRIP"; then -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 -+ { $as_echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5 - $as_echo "$ac_ct_STRIP" >&6; } - else -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -+ { $as_echo "$as_me:$LINENO: result: no" >&5 - $as_echo "no" >&6; } - fi - -@@ -2732,7 +2377,7 @@ - else - case $cross_compiling:$ac_tool_warned in - yes:) --{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -+{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 - $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} - ac_tool_warned=yes ;; - esac -@@ -2745,10 +2390,10 @@ - fi - INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" - --{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5 -+{ $as_echo "$as_me:$LINENO: checking for a thread-safe mkdir -p" >&5 - $as_echo_n "checking for a thread-safe mkdir -p... " >&6; } - if test -z "$MKDIR_P"; then -- if test "${ac_cv_path_mkdir+set}" = set; then : -+ if test "${ac_cv_path_mkdir+set}" = set; then - $as_echo_n "(cached) " >&6 - else - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -@@ -2756,7 +2401,7 @@ - do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. -- for ac_prog in mkdir gmkdir; do -+ for ac_prog in mkdir gmkdir; do - for ac_exec_ext in '' $ac_executable_extensions; do - { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; } || continue - case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #( -@@ -2768,7 +2413,7 @@ - esac - done - done -- done -+done - IFS=$as_save_IFS - - fi -@@ -2784,7 +2429,7 @@ - MKDIR_P="$ac_install_sh -d" - fi - fi --{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5 -+{ $as_echo "$as_me:$LINENO: result: $MKDIR_P" >&5 - $as_echo "$MKDIR_P" >&6; } - - mkdir_p="$MKDIR_P" -@@ -2797,9 +2442,9 @@ - do - # Extract the first word of "$ac_prog", so it can be a program name with args. - set dummy $ac_prog; ac_word=$2 --{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -+{ $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 : -+if test "${ac_cv_prog_AWK+set}" = set; then - $as_echo_n "(cached) " >&6 - else - if test -n "$AWK"; then -@@ -2810,24 +2455,24 @@ - do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. -- for ac_exec_ext in '' $ac_executable_extensions; do -+ 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_AWK="$ac_prog" -- $as_echo "$as_me:${as_lineno-$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 -+done - IFS=$as_save_IFS - - fi - fi - AWK=$ac_cv_prog_AWK - if test -n "$AWK"; then -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 -+ { $as_echo "$as_me:$LINENO: result: $AWK" >&5 - $as_echo "$AWK" >&6; } - else -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -+ { $as_echo "$as_me:$LINENO: result: no" >&5 - $as_echo "no" >&6; } - fi - -@@ -2835,11 +2480,11 @@ - test -n "$AWK" && break - done - --{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 -+{ $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 : -+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 -@@ -2857,11 +2502,11 @@ - rm -f conftest.make - fi - if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -+ { $as_echo "$as_me:$LINENO: result: yes" >&5 - $as_echo "yes" >&6; } - SET_MAKE= - else -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -+ { $as_echo "$as_me:$LINENO: result: no" >&5 - $as_echo "no" >&6; } - SET_MAKE="MAKE=${MAKE-make}" - fi -@@ -2881,7 +2526,9 @@ - am__isrc=' -I$(srcdir)' - # test to see if srcdir already configured - if test -f $srcdir/config.status; then -- as_fn_error "source directory already configured; run \"make distclean\" there first" "$LINENO" 5 -+ { { $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 - fi - -@@ -2941,16 +2588,16 @@ - for k in m4 ; do ACLOCAL="$ACLOCAL -I $k" ; done - - --{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable maintainer-specific portions of Makefiles" >&5 -+{ $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 : -+if test "${enable_maintainer_mode+set}" = set; then - enableval=$enable_maintainer_mode; USE_MAINTAINER_MODE=$enableval - else - USE_MAINTAINER_MODE=no - fi - -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_MAINTAINER_MODE" >&5 -+ { $as_echo "$as_me:$LINENO: result: $USE_MAINTAINER_MODE" >&5 - $as_echo "$USE_MAINTAINER_MODE" >&6; } - if test $USE_MAINTAINER_MODE = yes; then - MAINTAINER_MODE_TRUE= -@@ -2970,9 +2617,9 @@ - do - # Extract the first word of "$ac_prog", so it can be a program name with args. - set dummy $ac_prog; ac_word=$2 --{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -+{ $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 : -+if test "${ac_cv_prog_AWK+set}" = set; then - $as_echo_n "(cached) " >&6 - else - if test -n "$AWK"; then -@@ -2983,24 +2630,24 @@ - do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. -- for ac_exec_ext in '' $ac_executable_extensions; do -+ 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_AWK="$ac_prog" -- $as_echo "$as_me:${as_lineno-$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 -+done - IFS=$as_save_IFS - - fi - fi - AWK=$ac_cv_prog_AWK - if test -n "$AWK"; then -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 -+ { $as_echo "$as_me:$LINENO: result: $AWK" >&5 - $as_echo "$AWK" >&6; } - else -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -+ { $as_echo "$as_me:$LINENO: result: no" >&5 - $as_echo "no" >&6; } - fi - -@@ -3016,9 +2663,9 @@ - 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 --{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -+{ $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 : -+if test "${ac_cv_prog_CC+set}" = set; then - $as_echo_n "(cached) " >&6 - else - if test -n "$CC"; then -@@ -3029,24 +2676,24 @@ - do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. -- for ac_exec_ext in '' $ac_executable_extensions; do -+ 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_CC="${ac_tool_prefix}gcc" -- $as_echo "$as_me:${as_lineno-$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 -+done - IFS=$as_save_IFS - - fi - fi - CC=$ac_cv_prog_CC - if test -n "$CC"; then -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -+ { $as_echo "$as_me:$LINENO: result: $CC" >&5 - $as_echo "$CC" >&6; } - else -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -+ { $as_echo "$as_me:$LINENO: result: no" >&5 - $as_echo "no" >&6; } - fi - -@@ -3056,9 +2703,9 @@ - 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 --{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -+{ $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 : -+if test "${ac_cv_prog_ac_ct_CC+set}" = set; then - $as_echo_n "(cached) " >&6 - else - if test -n "$ac_ct_CC"; then -@@ -3069,24 +2716,24 @@ - do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. -- for ac_exec_ext in '' $ac_executable_extensions; do -+ 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_ac_ct_CC="gcc" -- $as_echo "$as_me:${as_lineno-$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 -+done - IFS=$as_save_IFS - - fi - fi - ac_ct_CC=$ac_cv_prog_ac_ct_CC - if test -n "$ac_ct_CC"; then -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 -+ { $as_echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 - $as_echo "$ac_ct_CC" >&6; } - else -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -+ { $as_echo "$as_me:$LINENO: result: no" >&5 - $as_echo "no" >&6; } - fi - -@@ -3095,7 +2742,7 @@ - else - case $cross_compiling:$ac_tool_warned in - yes:) --{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -+{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 - $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} - ac_tool_warned=yes ;; - esac -@@ -3109,9 +2756,9 @@ - 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 --{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -+{ $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 : -+if test "${ac_cv_prog_CC+set}" = set; then - $as_echo_n "(cached) " >&6 - else - if test -n "$CC"; then -@@ -3122,24 +2769,24 @@ - do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. -- for ac_exec_ext in '' $ac_executable_extensions; do -+ 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_CC="${ac_tool_prefix}cc" -- $as_echo "$as_me:${as_lineno-$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 -+done - IFS=$as_save_IFS - - fi - fi - CC=$ac_cv_prog_CC - if test -n "$CC"; then -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -+ { $as_echo "$as_me:$LINENO: result: $CC" >&5 - $as_echo "$CC" >&6; } - else -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -+ { $as_echo "$as_me:$LINENO: result: no" >&5 - $as_echo "no" >&6; } - fi - -@@ -3149,9 +2796,9 @@ - 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 --{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -+{ $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 : -+if test "${ac_cv_prog_CC+set}" = set; then - $as_echo_n "(cached) " >&6 - else - if test -n "$CC"; then -@@ -3163,18 +2810,18 @@ - do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. -- for ac_exec_ext in '' $ac_executable_extensions; do -+ 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 - if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then - ac_prog_rejected=yes - continue - fi - ac_cv_prog_CC="cc" -- $as_echo "$as_me:${as_lineno-$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 -+done - IFS=$as_save_IFS - - if test $ac_prog_rejected = yes; then -@@ -3193,10 +2840,10 @@ - fi - CC=$ac_cv_prog_CC - if test -n "$CC"; then -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -+ { $as_echo "$as_me:$LINENO: result: $CC" >&5 - $as_echo "$CC" >&6; } - else -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -+ { $as_echo "$as_me:$LINENO: result: no" >&5 - $as_echo "no" >&6; } - fi - -@@ -3208,9 +2855,9 @@ - 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 --{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -+{ $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 : -+if test "${ac_cv_prog_CC+set}" = set; then - $as_echo_n "(cached) " >&6 - else - if test -n "$CC"; then -@@ -3221,24 +2868,24 @@ - do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. -- for ac_exec_ext in '' $ac_executable_extensions; do -+ 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_CC="$ac_tool_prefix$ac_prog" -- $as_echo "$as_me:${as_lineno-$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 -+done - IFS=$as_save_IFS - - fi - fi - CC=$ac_cv_prog_CC - if test -n "$CC"; then -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -+ { $as_echo "$as_me:$LINENO: result: $CC" >&5 - $as_echo "$CC" >&6; } - else -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -+ { $as_echo "$as_me:$LINENO: result: no" >&5 - $as_echo "no" >&6; } - fi - -@@ -3252,9 +2899,9 @@ - do - # Extract the first word of "$ac_prog", so it can be a program name with args. - set dummy $ac_prog; ac_word=$2 --{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -+{ $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 : -+if test "${ac_cv_prog_ac_ct_CC+set}" = set; then - $as_echo_n "(cached) " >&6 - else - if test -n "$ac_ct_CC"; then -@@ -3265,24 +2912,24 @@ - do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. -- for ac_exec_ext in '' $ac_executable_extensions; do -+ 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_ac_ct_CC="$ac_prog" -- $as_echo "$as_me:${as_lineno-$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 -+done - IFS=$as_save_IFS - - fi - fi - ac_ct_CC=$ac_cv_prog_ac_ct_CC - if test -n "$ac_ct_CC"; then -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 -+ { $as_echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 - $as_echo "$ac_ct_CC" >&6; } - else -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -+ { $as_echo "$as_me:$LINENO: result: no" >&5 - $as_echo "no" >&6; } - fi - -@@ -3295,7 +2942,7 @@ - else - case $cross_compiling:$ac_tool_warned in - yes:) --{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -+{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 - $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} - ac_tool_warned=yes ;; - esac -@@ -3306,55 +2953,73 @@ - fi - - --test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -+test -z "$CC" && { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 - $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} --as_fn_error "no acceptable C compiler found in \$PATH --See \`config.log' for more details." "$LINENO" 5; } -+{ { $as_echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH -+See \`config.log' for more details." >&5 -+$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. --$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 -+$as_echo "$as_me:$LINENO: checking for C compiler version" >&5 - set X $ac_compile - ac_compiler=$2 --for ac_option in --version -v -V -qversion; do -- { { ac_try="$ac_compiler $ac_option >&5" -+{ (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:${as_lineno-$LINENO}: $ac_try_echo\"" --$as_echo "$ac_try_echo"; } >&5 -- (eval "$ac_compiler $ac_option >&5") 2>conftest.err -+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=$? -- if test -s conftest.err; then -- sed '10a\ --... rest of stderr output deleted ... -- 10q' conftest.err >conftest.er1 -- cat conftest.er1 >&5 -- rm -f conftest.er1 conftest.err -- fi -- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 -- test $ac_status = 0; } --done -+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); } -+{ (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=$? -+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); } -+{ (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=$? -+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); } - --cat confdefs.h - <<_ACEOF >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. */ --#include -+ - int - main () - { --FILE *f = fopen ("conftest.out", "w"); -- return ferror (f) || fclose (f) != 0; - - ; - return 0; - } - _ACEOF - ac_clean_files_save=$ac_clean_files --ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out conftest.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. --{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&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[^ ]*//'` - -@@ -3371,17 +3036,17 @@ - done - rm -f $ac_rmfiles - --if { { ac_try="$ac_link_default" -+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:${as_lineno-$LINENO}: $ac_try_echo\"" --$as_echo "$ac_try_echo"; } >&5 -+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -+$as_echo "$ac_try_echo") >&5 - (eval "$ac_link_default") 2>&5 - ac_status=$? -- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 -- test $ac_status = 0; }; then : -+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); }; then - # 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, -@@ -3398,7 +3063,7 @@ - # certainly right. - break;; - *.* ) -- if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; -+ if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; - then :; else - ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` - fi -@@ -3417,75 +3082,84 @@ - else - ac_file='' - fi --{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 -+ -+{ $as_echo "$as_me:$LINENO: result: $ac_file" >&5 - $as_echo "$ac_file" >&6; } --if test -z "$ac_file"; then : -+if test -z "$ac_file"; then - $as_echo "$as_me: failed program was:" >&5 - sed 's/^/| /' conftest.$ac_ext >&5 - --{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -+{ { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 - $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} --{ as_fn_set_status 77 --as_fn_error "C compiler cannot create executables --See \`config.log' for more details." "$LINENO" 5; }; } -+{ { $as_echo "$as_me:$LINENO: error: C compiler cannot create executables -+See \`config.log' for more details." >&5 -+$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 - - # Check that the compiler produces executables we can run. If not, either - # the compiler is broken, or we cross compile. --{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 -+{ $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' -- { { case "(($ac_try" in -+ { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; - esac --eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" --$as_echo "$ac_try_echo"; } >&5 -+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -+$as_echo "$ac_try_echo") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? -- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 -- test $ac_status = 0; }; }; then -+ $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 -- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -+ { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 - $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} --as_fn_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." "$LINENO" 5; } -+See \`config.log' for more details." >&5 -+$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 --{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -+{ $as_echo "$as_me:$LINENO: result: yes" >&5 - $as_echo "yes" >&6; } - --rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out conftest.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 that the compiler produces executables we can run. If not, either - # the compiler is broken, or we cross compile. --{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&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:${as_lineno-$LINENO}: result: $cross_compiling" >&5 -+{ $as_echo "$as_me:$LINENO: result: $cross_compiling" >&5 - $as_echo "$cross_compiling" >&6; } - --{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 -+{ $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" -+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:${as_lineno-$LINENO}: $ac_try_echo\"" --$as_echo "$ac_try_echo"; } >&5 -+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -+$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>&5 - ac_status=$? -- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 -- test $ac_status = 0; }; then : -+ $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 - # work properly (i.e., refer to `conftest.exe'), while it won't with -@@ -3500,24 +3174,32 @@ - esac - done - else -- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -+ { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 - $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} --as_fn_error "cannot compute suffix of executables: cannot compile and link --See \`config.log' for more details." "$LINENO" 5; } -+{ { $as_echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link -+See \`config.log' for more details." >&5 -+$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 --{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 -+{ $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 --{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 -+{ $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 : -+if test "${ac_cv_objext+set}" = set; then - $as_echo_n "(cached) " >&6 - else -- cat confdefs.h - <<_ACEOF >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. */ - - int -@@ -3529,17 +3211,17 @@ - } - _ACEOF - rm -f conftest.o conftest.obj --if { { ac_try="$ac_compile" -+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:${as_lineno-$LINENO}: $ac_try_echo\"" --$as_echo "$ac_try_echo"; } >&5 -+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -+$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>&5 - ac_status=$? -- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 -- test $ac_status = 0; }; then : -+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); }; then - for ac_file in conftest.o conftest.obj conftest.*; do - test -f "$ac_file" || continue; - case $ac_file in -@@ -3552,23 +3234,31 @@ - $as_echo "$as_me: failed program was:" >&5 - sed 's/^/| /' conftest.$ac_ext >&5 - --{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -+{ { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 - $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} --as_fn_error "cannot compute suffix of object files: cannot compile --See \`config.log' for more details." "$LINENO" 5; } -+{ { $as_echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile -+See \`config.log' for more details." >&5 -+$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 --{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 -+{ $as_echo "$as_me:$LINENO: result: $ac_cv_objext" >&5 - $as_echo "$ac_cv_objext" >&6; } - OBJEXT=$ac_cv_objext - ac_objext=$OBJEXT --{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 -+{ $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 : -+if test "${ac_cv_c_compiler_gnu+set}" = set; then - $as_echo_n "(cached) " >&6 - else -- cat confdefs.h - <<_ACEOF >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. */ - - int -@@ -3582,16 +3272,37 @@ - return 0; - } - _ACEOF --if ac_fn_c_try_compile "$LINENO"; then : -+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_compiler_gnu=yes - else -- ac_compiler_gnu=no -+ $as_echo "$as_me: failed program was:" >&5 -+sed 's/^/| /' conftest.$ac_ext >&5 -+ -+ ac_compiler_gnu=no - fi -+ - rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - ac_cv_c_compiler_gnu=$ac_compiler_gnu - - fi --{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 -+{ $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 -@@ -3600,16 +3311,20 @@ - fi - ac_test_CFLAGS=${CFLAGS+set} - ac_save_CFLAGS=$CFLAGS --{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 -+{ $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 : -+if test "${ac_cv_prog_cc_g+set}" = set; then - $as_echo_n "(cached) " >&6 - else - ac_save_c_werror_flag=$ac_c_werror_flag - ac_c_werror_flag=yes - ac_cv_prog_cc_g=no - CFLAGS="-g" -- cat confdefs.h - <<_ACEOF >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. */ - - int -@@ -3620,11 +3335,35 @@ - return 0; - } - _ACEOF --if ac_fn_c_try_compile "$LINENO"; then : -+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_prog_cc_g=yes - else -- CFLAGS="" -- cat confdefs.h - <<_ACEOF >conftest.$ac_ext -+ $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 -@@ -3635,12 +3374,36 @@ - return 0; - } - _ACEOF --if ac_fn_c_try_compile "$LINENO"; then : -- -+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 -+ : - else -- ac_c_werror_flag=$ac_save_c_werror_flag -+ $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 confdefs.h - <<_ACEOF >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. */ - - int -@@ -3651,17 +3414,42 @@ - return 0; - } - _ACEOF --if ac_fn_c_try_compile "$LINENO"; then : -+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_prog_cc_g=yes -+else -+ $as_echo "$as_me: failed program was:" >&5 -+sed 's/^/| /' conftest.$ac_ext >&5 -+ -+ - fi -+ - rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi -+ - 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:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 -+{ $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 -@@ -3678,14 +3466,18 @@ - CFLAGS= - fi - fi --{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 -+{ $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 : -+if test "${ac_cv_prog_cc_c89+set}" = set; then - $as_echo_n "(cached) " >&6 - else - ac_cv_prog_cc_c89=no - ac_save_CC=$CC --cat confdefs.h - <<_ACEOF >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. */ - #include - #include -@@ -3742,9 +3534,32 @@ - -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" - do - CC="$ac_save_CC $ac_arg" -- if ac_fn_c_try_compile "$LINENO"; then : -+ 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_prog_cc_c89=$ac_arg -+else -+ $as_echo "$as_me: failed program was:" >&5 -+sed 's/^/| /' conftest.$ac_ext >&5 -+ -+ - fi -+ - rm -f core conftest.err conftest.$ac_objext - test "x$ac_cv_prog_cc_c89" != "xno" && break - done -@@ -3755,19 +3570,17 @@ - # AC_CACHE_VAL - case "x$ac_cv_prog_cc_c89" in - x) -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 -+ { $as_echo "$as_me:$LINENO: result: none needed" >&5 - $as_echo "none needed" >&6; } ;; - xno) -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 -+ { $as_echo "$as_me:$LINENO: result: unsupported" >&5 - $as_echo "unsupported" >&6; } ;; - *) - CC="$CC $ac_cv_prog_cc_c89" -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 -+ { $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c89" >&5 - $as_echo "$ac_cv_prog_cc_c89" >&6; } ;; - esac --if test "x$ac_cv_prog_cc_c89" != xno; then : - --fi - - ac_ext=c - ac_cpp='$CPP $CPPFLAGS' -@@ -3786,7 +3599,7 @@ - .PHONY: am__doit - END - # If we don't find an include directive, just comment out the code. --{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for style of include used by $am_make" >&5 -+{ $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= -@@ -3814,12 +3627,12 @@ - fi - - --{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5 -+{ $as_echo "$as_me:$LINENO: result: $_am_result" >&5 - $as_echo "$_am_result" >&6; } - rm -f confinc confmf - - # Check whether --enable-dependency-tracking was given. --if test "${enable_dependency_tracking+set}" = set; then : -+if test "${enable_dependency_tracking+set}" = set; then - enableval=$enable_dependency_tracking; - fi - -@@ -3839,9 +3652,9 @@ - - depcc="$CC" am_compiler_list= - --{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 -+{ $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 : -+if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then - $as_echo_n "(cached) " >&6 - else - if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then -@@ -3949,7 +3762,7 @@ - fi - - fi --{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5 -+{ $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 - -@@ -3970,14 +3783,14 @@ - 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 --{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 -+{ $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 : -+ if test "${ac_cv_prog_CPP+set}" = set; then - $as_echo_n "(cached) " >&6 - else - # Double quotes because CPP needs to be expanded -@@ -3992,7 +3805,11 @@ - # exists even on freestanding compilers. - # On the NeXT, cc -E runs the code through the compiler's parser, - # not just through cpp. "Syntax error" is here to catch this case. -- cat confdefs.h - <<_ACEOF >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. */ - #ifdef __STDC__ - # include -@@ -4001,34 +3818,78 @@ - #endif - Syntax error - _ACEOF --if ac_fn_c_try_cpp "$LINENO"; then : -- -+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 -+ $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 -+ $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 nonexistent headers - # can be detected and how. -- cat confdefs.h - <<_ACEOF >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. */ - #include - _ACEOF --if ac_fn_c_try_cpp "$LINENO"; then : -+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 -+ $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 -+ $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 - # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. - rm -f conftest.err conftest.$ac_ext --if $ac_preproc_ok; then : -+if $ac_preproc_ok; then - break - fi - -@@ -4040,7 +3901,7 @@ - else - ac_cv_prog_CPP=$CPP - fi --{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 -+{ $as_echo "$as_me:$LINENO: result: $CPP" >&5 - $as_echo "$CPP" >&6; } - ac_preproc_ok=false - for ac_c_preproc_warn_flag in '' yes -@@ -4051,7 +3912,11 @@ - # exists even on freestanding compilers. - # On the NeXT, cc -E runs the code through the compiler's parser, - # not just through cpp. "Syntax error" is here to catch this case. -- cat confdefs.h - <<_ACEOF >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. */ - #ifdef __STDC__ - # include -@@ -4060,40 +3925,87 @@ - #endif - Syntax error - _ACEOF --if ac_fn_c_try_cpp "$LINENO"; then : -- -+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 -+ $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 -+ $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 nonexistent headers - # can be detected and how. -- cat confdefs.h - <<_ACEOF >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. */ - #include - _ACEOF --if ac_fn_c_try_cpp "$LINENO"; then : -+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 -+ $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 -+ $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 - # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. - rm -f conftest.err conftest.$ac_ext --if $ac_preproc_ok; then : -- -+if $ac_preproc_ok; then -+ : - else -- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -+ { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 - $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} --as_fn_error "C preprocessor \"$CPP\" fails sanity check --See \`config.log' for more details." "$LINENO" 5; } -+{ { $as_echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check -+See \`config.log' for more details." >&5 -+$as_echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check -+See \`config.log' for more details." >&2;} -+ { (exit 1); exit 1; }; }; } - fi - - ac_ext=c -@@ -4103,9 +4015,9 @@ - ac_compiler_gnu=$ac_cv_c_compiler_gnu - - --{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 -+{ $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 : -+if test "${ac_cv_path_GREP+set}" = set; then - $as_echo_n "(cached) " >&6 - else - if test -z "$GREP"; then -@@ -4116,7 +4028,7 @@ - do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. -- for ac_prog in grep ggrep; do -+ 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 -@@ -4136,7 +4048,7 @@ - $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 -- as_fn_arith $ac_count + 1 && ac_count=$as_val -+ 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" -@@ -4151,24 +4063,26 @@ - $ac_path_GREP_found && break 3 - done - done -- done -+done - IFS=$as_save_IFS - if test -z "$ac_cv_path_GREP"; then -- as_fn_error "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 -+ { { $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 - - fi --{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 -+{ $as_echo "$as_me:$LINENO: result: $ac_cv_path_GREP" >&5 - $as_echo "$ac_cv_path_GREP" >&6; } - GREP="$ac_cv_path_GREP" - - --{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 -+{ $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 : -+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 -@@ -4182,7 +4096,7 @@ - do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. -- for ac_prog in egrep; do -+ 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 -@@ -4202,7 +4116,7 @@ - $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 -- as_fn_arith $ac_count + 1 && ac_count=$as_val -+ 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" -@@ -4217,10 +4131,12 @@ - $ac_path_EGREP_found && break 3 - done - done -- done -+done - IFS=$as_save_IFS - if test -z "$ac_cv_path_EGREP"; then -- as_fn_error "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 -+ { { $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 -@@ -4228,17 +4144,21 @@ - - fi - fi --{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 -+{ $as_echo "$as_me:$LINENO: result: $ac_cv_path_EGREP" >&5 - $as_echo "$ac_cv_path_EGREP" >&6; } - EGREP="$ac_cv_path_EGREP" - - --{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 -+{ $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 : -+if test "${ac_cv_header_stdc+set}" = set; then - $as_echo_n "(cached) " >&6 - else -- cat confdefs.h - <<_ACEOF >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. */ - #include - #include -@@ -4253,23 +4173,48 @@ - return 0; - } - _ACEOF --if ac_fn_c_try_compile "$LINENO"; then : -+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_header_stdc=yes - else -- ac_cv_header_stdc=no -+ $as_echo "$as_me: failed program was:" >&5 -+sed 's/^/| /' conftest.$ac_ext >&5 -+ -+ ac_cv_header_stdc=no - fi -+ - 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. -- cat confdefs.h - <<_ACEOF >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. */ - #include - - _ACEOF - if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | -- $EGREP "memchr" >/dev/null 2>&1; then : -- -+ $EGREP "memchr" >/dev/null 2>&1; then -+ : - else - ac_cv_header_stdc=no - fi -@@ -4279,14 +4224,18 @@ - - if test $ac_cv_header_stdc = yes; then - # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. -- cat confdefs.h - <<_ACEOF >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. */ - #include - - _ACEOF - if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | -- $EGREP "free" >/dev/null 2>&1; then : -- -+ $EGREP "free" >/dev/null 2>&1; then -+ : - else - ac_cv_header_stdc=no - fi -@@ -4296,10 +4245,14 @@ - - if test $ac_cv_header_stdc = yes; then - # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. -- if test "$cross_compiling" = yes; then : -+ if test "$cross_compiling" = yes; then - : - else -- cat confdefs.h - <<_ACEOF >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. */ - #include - #include -@@ -4326,34 +4279,118 @@ - return 0; - } - _ACEOF --if ac_fn_c_try_run "$LINENO"; then : -- --else -- ac_cv_header_stdc=no --fi --rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ -- conftest.$ac_objext conftest.beam conftest.$ac_ext -+rm -f conftest$ac_exeext -+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=$? -+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); } && { ac_try='./conftest$ac_exeext' -+ { (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=$? -+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); }; }; then -+ : -+else -+ $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 -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 --{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 -+{ $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 - --$as_echo "#define STDC_HEADERS 1" >>confdefs.h -+cat >>confdefs.h <<\_ACEOF -+#define STDC_HEADERS 1 -+_ACEOF - - fi - - # On IRIX 5.3, sys/types and inttypes.h are conflicting. -+ -+ -+ -+ -+ -+ -+ -+ -+ - for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ - inttypes.h stdint.h unistd.h --do : -- as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` --ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default --" --eval as_val=\$$as_ac_Header -- if test "x$as_val" = x""yes; then : -+do -+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. */ -+_ACEOF -+cat confdefs.h >>conftest.$ac_ext -+cat >>conftest.$ac_ext <<_ACEOF -+/* end confdefs.h. */ -+$ac_includes_default -+ -+#include <$ac_header> -+_ACEOF -+rm -f conftest.$ac_objext -+if { (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 -+ eval "$as_ac_Header=yes" -+else -+ $as_echo "$as_me: failed program was:" >&5 -+sed 's/^/| /' conftest.$ac_ext >&5 -+ -+ eval "$as_ac_Header=no" -+fi -+ -+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -+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; } -+as_val=`eval 'as_val=${'$as_ac_Header'} -+ $as_echo "$as_val"'` -+ if test "x$as_val" = x""yes; then - cat >>confdefs.h <<_ACEOF - #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 - _ACEOF -@@ -4364,8 +4401,139 @@ - - - -- ac_fn_c_check_header_mongrel "$LINENO" "minix/config.h" "ac_cv_header_minix_config_h" "$ac_includes_default" --if test "x$ac_cv_header_minix_config_h" = x""yes; then : -+ if test "${ac_cv_header_minix_config_h+set}" = set; then -+ { $as_echo "$as_me:$LINENO: checking for minix/config.h" >&5 -+$as_echo_n "checking for minix/config.h... " >&6; } -+if test "${ac_cv_header_minix_config_h+set}" = set; then -+ $as_echo_n "(cached) " >&6 -+fi -+{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_minix_config_h" >&5 -+$as_echo "$ac_cv_header_minix_config_h" >&6; } -+else -+ # Is the header compilable? -+{ $as_echo "$as_me:$LINENO: checking minix/config.h usability" >&5 -+$as_echo_n "checking minix/config.h usability... " >&6; } -+cat >conftest.$ac_ext <<_ACEOF -+/* confdefs.h. */ -+_ACEOF -+cat confdefs.h >>conftest.$ac_ext -+cat >>conftest.$ac_ext <<_ACEOF -+/* end confdefs.h. */ -+$ac_includes_default -+#include -+_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_header_compiler=yes -+else -+ $as_echo "$as_me: failed program was:" >&5 -+sed 's/^/| /' conftest.$ac_ext >&5 -+ -+ ac_header_compiler=no -+fi -+ -+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? -+{ $as_echo "$as_me:$LINENO: checking minix/config.h presence" >&5 -+$as_echo_n "checking minix/config.h presence... " >&6; } -+cat >conftest.$ac_ext <<_ACEOF -+/* confdefs.h. */ -+_ACEOF -+cat confdefs.h >>conftest.$ac_ext -+cat >>conftest.$ac_ext <<_ACEOF -+/* end confdefs.h. */ -+#include -+_ACEOF -+if { (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 -+ $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 -+ $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 -+{ $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: ) -+ { $as_echo "$as_me:$LINENO: WARNING: minix/config.h: accepted by the compiler, rejected by the preprocessor!" >&5 -+$as_echo "$as_me: WARNING: minix/config.h: accepted by the compiler, rejected by the preprocessor!" >&2;} -+ { $as_echo "$as_me:$LINENO: WARNING: minix/config.h: proceeding with the compiler's result" >&5 -+$as_echo "$as_me: WARNING: minix/config.h: proceeding with the compiler's result" >&2;} -+ ac_header_preproc=yes -+ ;; -+ no:yes:* ) -+ { $as_echo "$as_me:$LINENO: WARNING: minix/config.h: present but cannot be compiled" >&5 -+$as_echo "$as_me: WARNING: minix/config.h: present but cannot be compiled" >&2;} -+ { $as_echo "$as_me:$LINENO: WARNING: minix/config.h: check for missing prerequisite headers?" >&5 -+$as_echo "$as_me: WARNING: minix/config.h: check for missing prerequisite headers?" >&2;} -+ { $as_echo "$as_me:$LINENO: WARNING: minix/config.h: see the Autoconf documentation" >&5 -+$as_echo "$as_me: WARNING: minix/config.h: see the Autoconf documentation" >&2;} -+ { $as_echo "$as_me:$LINENO: WARNING: minix/config.h: section \"Present But Cannot Be Compiled\"" >&5 -+$as_echo "$as_me: WARNING: minix/config.h: section \"Present But Cannot Be Compiled\"" >&2;} -+ { $as_echo "$as_me:$LINENO: WARNING: minix/config.h: proceeding with the preprocessor's result" >&5 -+$as_echo "$as_me: WARNING: minix/config.h: proceeding with the preprocessor's result" >&2;} -+ { $as_echo "$as_me:$LINENO: WARNING: minix/config.h: in the future, the compiler will take precedence" >&5 -+$as_echo "$as_me: WARNING: minix/config.h: in the future, the compiler will take precedence" >&2;} -+ ( cat <<\_ASBOX -+## ---------------------------------------------- ## -+## Report this to Michal Cihar ## -+## ---------------------------------------------- ## -+_ASBOX -+ ) | sed "s/^/$as_me: WARNING: /" >&2 -+ ;; -+esac -+{ $as_echo "$as_me:$LINENO: checking for minix/config.h" >&5 -+$as_echo_n "checking for minix/config.h... " >&6; } -+if test "${ac_cv_header_minix_config_h+set}" = set; then -+ $as_echo_n "(cached) " >&6 -+else -+ ac_cv_header_minix_config_h=$ac_header_preproc -+fi -+{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_minix_config_h" >&5 -+$as_echo "$ac_cv_header_minix_config_h" >&6; } -+ -+fi -+if test "x$ac_cv_header_minix_config_h" = x""yes; then - MINIX=yes - else - MINIX= -@@ -4374,23 +4542,34 @@ - - if test "$MINIX" = yes; then - --$as_echo "#define _POSIX_SOURCE 1" >>confdefs.h -+cat >>confdefs.h <<\_ACEOF -+#define _POSIX_SOURCE 1 -+_ACEOF - - --$as_echo "#define _POSIX_1_SOURCE 2" >>confdefs.h -+cat >>confdefs.h <<\_ACEOF -+#define _POSIX_1_SOURCE 2 -+_ACEOF - - --$as_echo "#define _MINIX 1" >>confdefs.h -+cat >>confdefs.h <<\_ACEOF -+#define _MINIX 1 -+_ACEOF - - fi - - -- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether it is safe to define __EXTENSIONS__" >&5 -+ -+ { $as_echo "$as_me:$LINENO: checking whether it is safe to define __EXTENSIONS__" >&5 - $as_echo_n "checking whether it is safe to define __EXTENSIONS__... " >&6; } --if test "${ac_cv_safe_to_define___extensions__+set}" = set; then : -+if test "${ac_cv_safe_to_define___extensions__+set}" = set; then - $as_echo_n "(cached) " >&6 - else -- cat confdefs.h - <<_ACEOF >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. */ - - # define __EXTENSIONS__ 1 -@@ -4403,36 +4582,303 @@ - return 0; - } - _ACEOF --if ac_fn_c_try_compile "$LINENO"; then : -+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_safe_to_define___extensions__=yes - else -- ac_cv_safe_to_define___extensions__=no -+ $as_echo "$as_me: failed program was:" >&5 -+sed 's/^/| /' conftest.$ac_ext >&5 -+ -+ ac_cv_safe_to_define___extensions__=no - fi -+ - rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi --{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_safe_to_define___extensions__" >&5 -+{ $as_echo "$as_me:$LINENO: result: $ac_cv_safe_to_define___extensions__" >&5 - $as_echo "$ac_cv_safe_to_define___extensions__" >&6; } - test $ac_cv_safe_to_define___extensions__ = yes && -- $as_echo "#define __EXTENSIONS__ 1" >>confdefs.h -+ cat >>confdefs.h <<\_ACEOF -+#define __EXTENSIONS__ 1 -+_ACEOF -+ -+ cat >>confdefs.h <<\_ACEOF -+#define _ALL_SOURCE 1 -+_ACEOF -+ -+ cat >>confdefs.h <<\_ACEOF -+#define _GNU_SOURCE 1 -+_ACEOF -+ -+ cat >>confdefs.h <<\_ACEOF -+#define _POSIX_PTHREAD_SEMANTICS 1 -+_ACEOF -+ -+ cat >>confdefs.h <<\_ACEOF -+#define _TANDEM_SOURCE 1 -+_ACEOF -+ -+ -+ -+ if test "${ac_cv_header_minix_config_h+set}" = set; then -+ { $as_echo "$as_me:$LINENO: checking for minix/config.h" >&5 -+$as_echo_n "checking for minix/config.h... " >&6; } -+if test "${ac_cv_header_minix_config_h+set}" = set; then -+ $as_echo_n "(cached) " >&6 -+fi -+{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_minix_config_h" >&5 -+$as_echo "$ac_cv_header_minix_config_h" >&6; } -+else -+ # Is the header compilable? -+{ $as_echo "$as_me:$LINENO: checking minix/config.h usability" >&5 -+$as_echo_n "checking minix/config.h usability... " >&6; } -+cat >conftest.$ac_ext <<_ACEOF -+/* confdefs.h. */ -+_ACEOF -+cat confdefs.h >>conftest.$ac_ext -+cat >>conftest.$ac_ext <<_ACEOF -+/* end confdefs.h. */ -+$ac_includes_default -+#include -+_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_header_compiler=yes -+else -+ $as_echo "$as_me: failed program was:" >&5 -+sed 's/^/| /' conftest.$ac_ext >&5 -+ -+ ac_header_compiler=no -+fi -+ -+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? -+{ $as_echo "$as_me:$LINENO: checking minix/config.h presence" >&5 -+$as_echo_n "checking minix/config.h presence... " >&6; } -+cat >conftest.$ac_ext <<_ACEOF -+/* confdefs.h. */ -+_ACEOF -+cat confdefs.h >>conftest.$ac_ext -+cat >>conftest.$ac_ext <<_ACEOF -+/* end confdefs.h. */ -+#include -+_ACEOF -+if { (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 -+ $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 -+ $as_echo "$as_me: failed program was:" >&5 -+sed 's/^/| /' conftest.$ac_ext >&5 - -- $as_echo "#define _ALL_SOURCE 1" >>confdefs.h -+ ac_header_preproc=no -+fi - -- $as_echo "#define _GNU_SOURCE 1" >>confdefs.h -+rm -f conftest.err conftest.$ac_ext -+{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -+$as_echo "$ac_header_preproc" >&6; } - -- $as_echo "#define _POSIX_PTHREAD_SEMANTICS 1" >>confdefs.h -+# So? What about this header? -+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in -+ yes:no: ) -+ { $as_echo "$as_me:$LINENO: WARNING: minix/config.h: accepted by the compiler, rejected by the preprocessor!" >&5 -+$as_echo "$as_me: WARNING: minix/config.h: accepted by the compiler, rejected by the preprocessor!" >&2;} -+ { $as_echo "$as_me:$LINENO: WARNING: minix/config.h: proceeding with the compiler's result" >&5 -+$as_echo "$as_me: WARNING: minix/config.h: proceeding with the compiler's result" >&2;} -+ ac_header_preproc=yes -+ ;; -+ no:yes:* ) -+ { $as_echo "$as_me:$LINENO: WARNING: minix/config.h: present but cannot be compiled" >&5 -+$as_echo "$as_me: WARNING: minix/config.h: present but cannot be compiled" >&2;} -+ { $as_echo "$as_me:$LINENO: WARNING: minix/config.h: check for missing prerequisite headers?" >&5 -+$as_echo "$as_me: WARNING: minix/config.h: check for missing prerequisite headers?" >&2;} -+ { $as_echo "$as_me:$LINENO: WARNING: minix/config.h: see the Autoconf documentation" >&5 -+$as_echo "$as_me: WARNING: minix/config.h: see the Autoconf documentation" >&2;} -+ { $as_echo "$as_me:$LINENO: WARNING: minix/config.h: section \"Present But Cannot Be Compiled\"" >&5 -+$as_echo "$as_me: WARNING: minix/config.h: section \"Present But Cannot Be Compiled\"" >&2;} -+ { $as_echo "$as_me:$LINENO: WARNING: minix/config.h: proceeding with the preprocessor's result" >&5 -+$as_echo "$as_me: WARNING: minix/config.h: proceeding with the preprocessor's result" >&2;} -+ { $as_echo "$as_me:$LINENO: WARNING: minix/config.h: in the future, the compiler will take precedence" >&5 -+$as_echo "$as_me: WARNING: minix/config.h: in the future, the compiler will take precedence" >&2;} -+ ( cat <<\_ASBOX -+## ---------------------------------------------- ## -+## Report this to Michal Cihar ## -+## ---------------------------------------------- ## -+_ASBOX -+ ) | sed "s/^/$as_me: WARNING: /" >&2 -+ ;; -+esac -+{ $as_echo "$as_me:$LINENO: checking for minix/config.h" >&5 -+$as_echo_n "checking for minix/config.h... " >&6; } -+if test "${ac_cv_header_minix_config_h+set}" = set; then -+ $as_echo_n "(cached) " >&6 -+else -+ ac_cv_header_minix_config_h=$ac_header_preproc -+fi -+{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_minix_config_h" >&5 -+$as_echo "$ac_cv_header_minix_config_h" >&6; } -+ -+fi -+if test "x$ac_cv_header_minix_config_h" = x""yes; then -+ MINIX=yes -+else -+ MINIX= -+fi - -- $as_echo "#define _TANDEM_SOURCE 1" >>confdefs.h - -+ if test "$MINIX" = yes; then - -+cat >>confdefs.h <<\_ACEOF -+#define _POSIX_SOURCE 1 -+_ACEOF - - --{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing strerror" >&5 -+cat >>confdefs.h <<\_ACEOF -+#define _POSIX_1_SOURCE 2 -+_ACEOF -+ -+ -+cat >>confdefs.h <<\_ACEOF -+#define _MINIX 1 -+_ACEOF -+ -+ fi -+ -+ -+ -+ { $as_echo "$as_me:$LINENO: checking whether it is safe to define __EXTENSIONS__" >&5 -+$as_echo_n "checking whether it is safe to define __EXTENSIONS__... " >&6; } -+if test "${ac_cv_safe_to_define___extensions__+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. */ -+ -+# define __EXTENSIONS__ 1 -+ $ac_includes_default -+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=$? -+ 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_safe_to_define___extensions__=yes -+else -+ $as_echo "$as_me: failed program was:" >&5 -+sed 's/^/| /' conftest.$ac_ext >&5 -+ -+ ac_cv_safe_to_define___extensions__=no -+fi -+ -+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -+fi -+{ $as_echo "$as_me:$LINENO: result: $ac_cv_safe_to_define___extensions__" >&5 -+$as_echo "$ac_cv_safe_to_define___extensions__" >&6; } -+ test $ac_cv_safe_to_define___extensions__ = yes && -+ cat >>confdefs.h <<\_ACEOF -+#define __EXTENSIONS__ 1 -+_ACEOF -+ -+ cat >>confdefs.h <<\_ACEOF -+#define _ALL_SOURCE 1 -+_ACEOF -+ -+ cat >>confdefs.h <<\_ACEOF -+#define _GNU_SOURCE 1 -+_ACEOF -+ -+ cat >>confdefs.h <<\_ACEOF -+#define _POSIX_PTHREAD_SEMANTICS 1 -+_ACEOF -+ -+ cat >>confdefs.h <<\_ACEOF -+#define _TANDEM_SOURCE 1 -+_ACEOF -+ -+ -+{ $as_echo "$as_me:$LINENO: checking for library containing strerror" >&5 - $as_echo_n "checking for library containing strerror... " >&6; } --if test "${ac_cv_search_strerror+set}" = set; then : -+if test "${ac_cv_search_strerror+set}" = set; then - $as_echo_n "(cached) " >&6 - else - ac_func_search_save_LIBS=$LIBS --cat confdefs.h - <<_ACEOF >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. */ - - /* Override any GCC internal prototype to avoid an error. -@@ -4457,34 +4903,61 @@ - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi -- if ac_fn_c_try_link "$LINENO"; then : -+ rm -f conftest.$ac_objext conftest$ac_exeext -+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 -+ $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_search_strerror=$ac_res -+else -+ $as_echo "$as_me: failed program was:" >&5 -+sed 's/^/| /' conftest.$ac_ext >&5 -+ -+ - fi --rm -f core conftest.err conftest.$ac_objext \ -- conftest$ac_exeext -- if test "${ac_cv_search_strerror+set}" = set; then : -+ -+rm -rf conftest.dSYM -+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ -+ conftest$ac_exeext -+ if test "${ac_cv_search_strerror+set}" = set; then - break - fi - done --if test "${ac_cv_search_strerror+set}" = set; then : -- -+if test "${ac_cv_search_strerror+set}" = set; then -+ : - else - ac_cv_search_strerror=no - fi - rm conftest.$ac_ext - LIBS=$ac_func_search_save_LIBS - fi --{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_strerror" >&5 -+{ $as_echo "$as_me:$LINENO: result: $ac_cv_search_strerror" >&5 - $as_echo "$ac_cv_search_strerror" >&6; } - ac_res=$ac_cv_search_strerror --if test "$ac_res" != no; then : -+if test "$ac_res" != no; then - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - - fi - - case `pwd` in - *\ * | *\ *) -- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5 -+ { $as_echo "$as_me:$LINENO: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5 - $as_echo "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;; - esac - -@@ -4509,27 +4982,35 @@ - - # Make sure we can run config.sub. - $SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || -- as_fn_error "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5 -+ { { $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; }; } - --{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 -+{ $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 : -+if test "${ac_cv_build+set}" = set; then - $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_fn_error "cannot guess build type; you must specify one" "$LINENO" 5 -+ { { $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=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || -- as_fn_error "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5 -+ { { $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 --{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 -+{ $as_echo "$as_me:$LINENO: result: $ac_cv_build" >&5 - $as_echo "$ac_cv_build" >&6; } - case $ac_cv_build in - *-*-*) ;; --*) as_fn_error "invalid value of canonical build" "$LINENO" 5;; -+*) { { $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 - ac_save_IFS=$IFS; IFS='-' -@@ -4545,24 +5026,28 @@ - case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac - - --{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5 -+{ $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 : -+if test "${ac_cv_host+set}" = set; then - $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_fn_error "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5 -+ { { $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 --{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5 -+{ $as_echo "$as_me:$LINENO: result: $ac_cv_host" >&5 - $as_echo "$ac_cv_host" >&6; } - case $ac_cv_host in - *-*-*) ;; --*) as_fn_error "invalid value of canonical host" "$LINENO" 5;; -+*) { { $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 - ac_save_IFS=$IFS; IFS='-' -@@ -4578,9 +5063,9 @@ - case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac - - --{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5 -+{ $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 : -+if test "${ac_cv_path_SED+set}" = set; then - $as_echo_n "(cached) " >&6 - else - ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ -@@ -4588,7 +5073,7 @@ - ac_script="$ac_script$as_nl$ac_script" - done - echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed -- { ac_script=; unset ac_script;} -+ $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 -@@ -4597,7 +5082,7 @@ - do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. -- for ac_prog in sed gsed; do -+ 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 -@@ -4617,7 +5102,7 @@ - $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 -- as_fn_arith $ac_count + 1 && ac_count=$as_val -+ 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" -@@ -4632,17 +5117,19 @@ - $ac_path_SED_found && break 3 - done - done -- done -+done - IFS=$as_save_IFS - if test -z "$ac_cv_path_SED"; then -- as_fn_error "no acceptable sed could be found in \$PATH" "$LINENO" 5 -+ { { $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:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5 -+{ $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 -@@ -4660,9 +5147,9 @@ - - - --{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5 -+{ $as_echo "$as_me:$LINENO: checking for fgrep" >&5 - $as_echo_n "checking for fgrep... " >&6; } --if test "${ac_cv_path_FGREP+set}" = set; then : -+if test "${ac_cv_path_FGREP+set}" = set; then - $as_echo_n "(cached) " >&6 - else - if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1 -@@ -4676,7 +5163,7 @@ - do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. -- for ac_prog in fgrep; do -+ for ac_prog in fgrep; do - for ac_exec_ext in '' $ac_executable_extensions; do - ac_path_FGREP="$as_dir/$ac_prog$ac_exec_ext" - { test -f "$ac_path_FGREP" && $as_test_x "$ac_path_FGREP"; } || continue -@@ -4696,7 +5183,7 @@ - $as_echo 'FGREP' >> "conftest.nl" - "$ac_path_FGREP" FGREP < "conftest.nl" >"conftest.out" 2>/dev/null || break - diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break -- as_fn_arith $ac_count + 1 && ac_count=$as_val -+ ac_count=`expr $ac_count + 1` - if test $ac_count -gt ${ac_path_FGREP_max-0}; then - # Best one so far, save it but keep looking for a better one - ac_cv_path_FGREP="$ac_path_FGREP" -@@ -4711,10 +5198,12 @@ - $ac_path_FGREP_found && break 3 - done - done -- done -+done - IFS=$as_save_IFS - if test -z "$ac_cv_path_FGREP"; then -- as_fn_error "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 -+ { { $as_echo "$as_me:$LINENO: error: no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5 -+$as_echo "$as_me: error: no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;} -+ { (exit 1); exit 1; }; } - fi - else - ac_cv_path_FGREP=$FGREP -@@ -4722,7 +5211,7 @@ - - fi - fi --{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_FGREP" >&5 -+{ $as_echo "$as_me:$LINENO: result: $ac_cv_path_FGREP" >&5 - $as_echo "$ac_cv_path_FGREP" >&6; } - FGREP="$ac_cv_path_FGREP" - -@@ -4748,7 +5237,7 @@ - - - # Check whether --with-gnu-ld was given. --if test "${with_gnu_ld+set}" = set; then : -+if test "${with_gnu_ld+set}" = set; then - withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes - else - with_gnu_ld=no -@@ -4757,7 +5246,7 @@ - ac_prog=ld - if test "$GCC" = yes; then - # Check if gcc -print-prog-name=ld gives a path. -- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5 -+ { $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*) -@@ -4787,13 +5276,13 @@ - ;; - esac - elif test "$with_gnu_ld" = yes; then -- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5 -+ { $as_echo "$as_me:$LINENO: checking for GNU ld" >&5 - $as_echo_n "checking for GNU ld... " >&6; } - else -- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 -+ { $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 : -+if test "${lt_cv_path_LD+set}" = set; then - $as_echo_n "(cached) " >&6 - else - if test -z "$LD"; then -@@ -4824,16 +5313,18 @@ - - LD="$lt_cv_path_LD" - if test -n "$LD"; then -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LD" >&5 -+ { $as_echo "$as_me:$LINENO: result: $LD" >&5 - $as_echo "$LD" >&6; } - else -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -+ { $as_echo "$as_me:$LINENO: result: no" >&5 - $as_echo "no" >&6; } - fi --test -z "$LD" && as_fn_error "no acceptable ld found in \$PATH" "$LINENO" 5 --{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 -+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; }; } -+{ $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 : -+if test "${lt_cv_prog_gnu_ld+set}" = set; then - $as_echo_n "(cached) " >&6 - else - # I'd rather use --version here, but apparently some GNU lds only accept -v. -@@ -4846,7 +5337,7 @@ - ;; - esac - fi --{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_gnu_ld" >&5 -+{ $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 - -@@ -4858,9 +5349,9 @@ - - - --{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5 -+{ $as_echo "$as_me:$LINENO: checking for BSD- or MS-compatible name lister (nm)" >&5 - $as_echo_n "checking for BSD- or MS-compatible name lister (nm)... " >&6; } --if test "${lt_cv_path_NM+set}" = set; then : -+if test "${lt_cv_path_NM+set}" = set; then - $as_echo_n "(cached) " >&6 - else - if test -n "$NM"; then -@@ -4907,7 +5398,7 @@ - : ${lt_cv_path_NM=no} - fi - fi --{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5 -+{ $as_echo "$as_me:$LINENO: result: $lt_cv_path_NM" >&5 - $as_echo "$lt_cv_path_NM" >&6; } - if test "$lt_cv_path_NM" != "no"; then - NM="$lt_cv_path_NM" -@@ -4918,9 +5409,9 @@ - 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 --{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 - $as_echo_n "checking for $ac_word... " >&6; } --if test "${ac_cv_prog_DUMPBIN+set}" = set; then : -+if test "${ac_cv_prog_DUMPBIN+set}" = set; then - $as_echo_n "(cached) " >&6 - else - if test -n "$DUMPBIN"; then -@@ -4931,24 +5422,24 @@ - do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. -- for ac_exec_ext in '' $ac_executable_extensions; do -+ 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_DUMPBIN="$ac_tool_prefix$ac_prog" -- $as_echo "$as_me:${as_lineno-$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 -+done - IFS=$as_save_IFS - - fi - fi - DUMPBIN=$ac_cv_prog_DUMPBIN - if test -n "$DUMPBIN"; then -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DUMPBIN" >&5 -+ { $as_echo "$as_me:$LINENO: result: $DUMPBIN" >&5 - $as_echo "$DUMPBIN" >&6; } - else -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -+ { $as_echo "$as_me:$LINENO: result: no" >&5 - $as_echo "no" >&6; } - fi - -@@ -4962,9 +5453,9 @@ - do - # Extract the first word of "$ac_prog", so it can be a program name with args. - set dummy $ac_prog; ac_word=$2 --{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -+{ $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_DUMPBIN+set}" = set; then : -+if test "${ac_cv_prog_ac_ct_DUMPBIN+set}" = set; then - $as_echo_n "(cached) " >&6 - else - if test -n "$ac_ct_DUMPBIN"; then -@@ -4975,24 +5466,24 @@ - do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. -- for ac_exec_ext in '' $ac_executable_extensions; do -+ 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_ac_ct_DUMPBIN="$ac_prog" -- $as_echo "$as_me:${as_lineno-$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 -+done - IFS=$as_save_IFS - - fi - fi - ac_ct_DUMPBIN=$ac_cv_prog_ac_ct_DUMPBIN - if test -n "$ac_ct_DUMPBIN"; then -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DUMPBIN" >&5 -+ { $as_echo "$as_me:$LINENO: result: $ac_ct_DUMPBIN" >&5 - $as_echo "$ac_ct_DUMPBIN" >&6; } - else -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -+ { $as_echo "$as_me:$LINENO: result: no" >&5 - $as_echo "no" >&6; } - fi - -@@ -5005,7 +5496,7 @@ - else - case $cross_compiling:$ac_tool_warned in - yes:) --{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -+{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 - $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} - ac_tool_warned=yes ;; - esac -@@ -5025,44 +5516,44 @@ - - - --{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5 -+{ $as_echo "$as_me:$LINENO: checking the name lister ($NM) interface" >&5 - $as_echo_n "checking the name lister ($NM) interface... " >&6; } --if test "${lt_cv_nm_interface+set}" = set; then : -+if test "${lt_cv_nm_interface+set}" = set; then - $as_echo_n "(cached) " >&6 - else - lt_cv_nm_interface="BSD nm" - echo "int some_variable = 0;" > conftest.$ac_ext -- (eval echo "\"\$as_me:5035: $ac_compile\"" >&5) -+ (eval echo "\"\$as_me:5526: $ac_compile\"" >&5) - (eval "$ac_compile" 2>conftest.err) - cat conftest.err >&5 -- (eval echo "\"\$as_me:5038: $NM \\\"conftest.$ac_objext\\\"\"" >&5) -+ (eval echo "\"\$as_me:5529: $NM \\\"conftest.$ac_objext\\\"\"" >&5) - (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) - cat conftest.err >&5 -- (eval echo "\"\$as_me:5041: output\"" >&5) -+ (eval echo "\"\$as_me:5532: output\"" >&5) - cat conftest.out >&5 - if $GREP 'External.*some_variable' conftest.out > /dev/null; then - lt_cv_nm_interface="MS dumpbin" - fi - rm -f conftest* - fi --{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_nm_interface" >&5 -+{ $as_echo "$as_me:$LINENO: result: $lt_cv_nm_interface" >&5 - $as_echo "$lt_cv_nm_interface" >&6; } - --{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5 -+{ $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 -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -+ { $as_echo "$as_me:$LINENO: result: yes" >&5 - $as_echo "yes" >&6; } - else -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5 -+ { $as_echo "$as_me:$LINENO: result: no, using $LN_S" >&5 - $as_echo "no, using $LN_S" >&6; } - fi - - # find the maximum length of command line arguments --{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5 -+{ $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 : -+if test "${lt_cv_sys_max_cmd_len+set}" = set; then - $as_echo_n "(cached) " >&6 - else - i=0 -@@ -5180,10 +5671,10 @@ - fi - - if test -n $lt_cv_sys_max_cmd_len ; then -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_max_cmd_len" >&5 -+ { $as_echo "$as_me:$LINENO: result: $lt_cv_sys_max_cmd_len" >&5 - $as_echo "$lt_cv_sys_max_cmd_len" >&6; } - else -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5 -+ { $as_echo "$as_me:$LINENO: result: none" >&5 - $as_echo "none" >&6; } - fi - max_cmd_len=$lt_cv_sys_max_cmd_len -@@ -5197,7 +5688,7 @@ - : ${MV="mv -f"} - : ${RM="rm -f"} - --{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands some XSI constructs" >&5 -+{ $as_echo "$as_me:$LINENO: checking whether the shell understands some XSI constructs" >&5 - $as_echo_n "checking whether the shell understands some XSI constructs... " >&6; } - # Try some XSI features - xsi_shell=no -@@ -5207,17 +5698,17 @@ - && eval 'test $(( 1 + 1 )) -eq 2 \ - && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ - && xsi_shell=yes --{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xsi_shell" >&5 -+{ $as_echo "$as_me:$LINENO: result: $xsi_shell" >&5 - $as_echo "$xsi_shell" >&6; } - - --{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands \"+=\"" >&5 -+{ $as_echo "$as_me:$LINENO: checking whether the shell understands \"+=\"" >&5 - $as_echo_n "checking whether the shell understands \"+=\"... " >&6; } - lt_shell_append=no - ( foo=bar; set foo baz; eval "$1+=\$2" && test "$foo" = barbaz ) \ - >/dev/null 2>&1 \ - && lt_shell_append=yes --{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_shell_append" >&5 -+{ $as_echo "$as_me:$LINENO: result: $lt_shell_append" >&5 - $as_echo "$lt_shell_append" >&6; } - - -@@ -5252,14 +5743,14 @@ - - - --{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5 -+{ $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 : -+if test "${lt_cv_ld_reload_flag+set}" = set; then - $as_echo_n "(cached) " >&6 - else - lt_cv_ld_reload_flag='-r' - fi --{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_reload_flag" >&5 -+{ $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 -@@ -5288,9 +5779,9 @@ - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args. - set dummy ${ac_tool_prefix}objdump; ac_word=$2 --{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 - $as_echo_n "checking for $ac_word... " >&6; } --if test "${ac_cv_prog_OBJDUMP+set}" = set; then : -+if test "${ac_cv_prog_OBJDUMP+set}" = set; then - $as_echo_n "(cached) " >&6 - else - if test -n "$OBJDUMP"; then -@@ -5301,24 +5792,24 @@ - do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. -- for ac_exec_ext in '' $ac_executable_extensions; do -+ 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_OBJDUMP="${ac_tool_prefix}objdump" -- $as_echo "$as_me:${as_lineno-$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 -+done - IFS=$as_save_IFS - - fi - fi - OBJDUMP=$ac_cv_prog_OBJDUMP - if test -n "$OBJDUMP"; then -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5 -+ { $as_echo "$as_me:$LINENO: result: $OBJDUMP" >&5 - $as_echo "$OBJDUMP" >&6; } - else -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -+ { $as_echo "$as_me:$LINENO: result: no" >&5 - $as_echo "no" >&6; } - fi - -@@ -5328,9 +5819,9 @@ - ac_ct_OBJDUMP=$OBJDUMP - # Extract the first word of "objdump", so it can be a program name with args. - set dummy objdump; ac_word=$2 --{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -+{ $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_OBJDUMP+set}" = set; then : -+if test "${ac_cv_prog_ac_ct_OBJDUMP+set}" = set; then - $as_echo_n "(cached) " >&6 - else - if test -n "$ac_ct_OBJDUMP"; then -@@ -5341,24 +5832,24 @@ - do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. -- for ac_exec_ext in '' $ac_executable_extensions; do -+ 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_ac_ct_OBJDUMP="objdump" -- $as_echo "$as_me:${as_lineno-$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 -+done - IFS=$as_save_IFS - - fi - fi - ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP - if test -n "$ac_ct_OBJDUMP"; then -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5 -+ { $as_echo "$as_me:$LINENO: result: $ac_ct_OBJDUMP" >&5 - $as_echo "$ac_ct_OBJDUMP" >&6; } - else -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -+ { $as_echo "$as_me:$LINENO: result: no" >&5 - $as_echo "no" >&6; } - fi - -@@ -5367,7 +5858,7 @@ - else - case $cross_compiling:$ac_tool_warned in - yes:) --{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -+{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 - $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} - ac_tool_warned=yes ;; - esac -@@ -5387,9 +5878,9 @@ - - - --{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5 -+{ $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 : -+if test "${lt_cv_deplibs_check_method+set}" = set; then - $as_echo_n "(cached) " >&6 - else - lt_cv_file_magic_cmd='$MAGIC_CMD' -@@ -5583,7 +6074,7 @@ - esac - - fi --{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5 -+{ $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 -@@ -5603,9 +6094,9 @@ - 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 --{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -+{ $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 : -+if test "${ac_cv_prog_AR+set}" = set; then - $as_echo_n "(cached) " >&6 - else - if test -n "$AR"; then -@@ -5616,24 +6107,24 @@ - do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. -- for ac_exec_ext in '' $ac_executable_extensions; do -+ 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_AR="${ac_tool_prefix}ar" -- $as_echo "$as_me:${as_lineno-$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 -+done - IFS=$as_save_IFS - - fi - fi - AR=$ac_cv_prog_AR - if test -n "$AR"; then -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 -+ { $as_echo "$as_me:$LINENO: result: $AR" >&5 - $as_echo "$AR" >&6; } - else -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -+ { $as_echo "$as_me:$LINENO: result: no" >&5 - $as_echo "no" >&6; } - fi - -@@ -5643,9 +6134,9 @@ - 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 --{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -+{ $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 : -+if test "${ac_cv_prog_ac_ct_AR+set}" = set; then - $as_echo_n "(cached) " >&6 - else - if test -n "$ac_ct_AR"; then -@@ -5656,24 +6147,24 @@ - do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. -- for ac_exec_ext in '' $ac_executable_extensions; do -+ 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_ac_ct_AR="ar" -- $as_echo "$as_me:${as_lineno-$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 -+done - IFS=$as_save_IFS - - fi - fi - ac_ct_AR=$ac_cv_prog_ac_ct_AR - if test -n "$ac_ct_AR"; then -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 -+ { $as_echo "$as_me:$LINENO: result: $ac_ct_AR" >&5 - $as_echo "$ac_ct_AR" >&6; } - else -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -+ { $as_echo "$as_me:$LINENO: result: no" >&5 - $as_echo "no" >&6; } - fi - -@@ -5682,7 +6173,7 @@ - else - case $cross_compiling:$ac_tool_warned in - yes:) --{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -+{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 - $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} - ac_tool_warned=yes ;; - esac -@@ -5708,9 +6199,9 @@ - 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 --{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -+{ $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 : -+if test "${ac_cv_prog_STRIP+set}" = set; then - $as_echo_n "(cached) " >&6 - else - if test -n "$STRIP"; then -@@ -5721,24 +6212,24 @@ - do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. -- for ac_exec_ext in '' $ac_executable_extensions; do -+ 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_STRIP="${ac_tool_prefix}strip" -- $as_echo "$as_me:${as_lineno-$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 -+done - IFS=$as_save_IFS - - fi - fi - STRIP=$ac_cv_prog_STRIP - if test -n "$STRIP"; then -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 -+ { $as_echo "$as_me:$LINENO: result: $STRIP" >&5 - $as_echo "$STRIP" >&6; } - else -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -+ { $as_echo "$as_me:$LINENO: result: no" >&5 - $as_echo "no" >&6; } - fi - -@@ -5748,9 +6239,9 @@ - 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 --{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -+{ $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 : -+if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then - $as_echo_n "(cached) " >&6 - else - if test -n "$ac_ct_STRIP"; then -@@ -5761,24 +6252,24 @@ - do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. -- for ac_exec_ext in '' $ac_executable_extensions; do -+ 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_ac_ct_STRIP="strip" -- $as_echo "$as_me:${as_lineno-$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 -+done - IFS=$as_save_IFS - - fi - fi - ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP - if test -n "$ac_ct_STRIP"; then -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 -+ { $as_echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5 - $as_echo "$ac_ct_STRIP" >&6; } - else -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -+ { $as_echo "$as_me:$LINENO: result: no" >&5 - $as_echo "no" >&6; } - fi - -@@ -5787,7 +6278,7 @@ - else - case $cross_compiling:$ac_tool_warned in - yes:) --{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -+{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 - $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} - ac_tool_warned=yes ;; - esac -@@ -5807,9 +6298,9 @@ - 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 --{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -+{ $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 : -+if test "${ac_cv_prog_RANLIB+set}" = set; then - $as_echo_n "(cached) " >&6 - else - if test -n "$RANLIB"; then -@@ -5820,24 +6311,24 @@ - do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. -- for ac_exec_ext in '' $ac_executable_extensions; do -+ 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_RANLIB="${ac_tool_prefix}ranlib" -- $as_echo "$as_me:${as_lineno-$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 -+done - IFS=$as_save_IFS - - fi - fi - RANLIB=$ac_cv_prog_RANLIB - if test -n "$RANLIB"; then -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5 -+ { $as_echo "$as_me:$LINENO: result: $RANLIB" >&5 - $as_echo "$RANLIB" >&6; } - else -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -+ { $as_echo "$as_me:$LINENO: result: no" >&5 - $as_echo "no" >&6; } - fi - -@@ -5847,9 +6338,9 @@ - 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 --{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -+{ $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 : -+if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then - $as_echo_n "(cached) " >&6 - else - if test -n "$ac_ct_RANLIB"; then -@@ -5860,24 +6351,24 @@ - do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. -- for ac_exec_ext in '' $ac_executable_extensions; do -+ 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_ac_ct_RANLIB="ranlib" -- $as_echo "$as_me:${as_lineno-$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 -+done - IFS=$as_save_IFS - - fi - fi - ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB - if test -n "$ac_ct_RANLIB"; then -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5 -+ { $as_echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5 - $as_echo "$ac_ct_RANLIB" >&6; } - else -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -+ { $as_echo "$as_me:$LINENO: result: no" >&5 - $as_echo "no" >&6; } - fi - -@@ -5886,7 +6377,7 @@ - else - case $cross_compiling:$ac_tool_warned in - yes:) --{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -+{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 - $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} - ac_tool_warned=yes ;; - esac -@@ -5964,9 +6455,9 @@ - - - # Check for command to grab the raw symbol name followed by C symbol from nm. --{ $as_echo "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5 -+{ $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 : -+if test "${lt_cv_sys_global_symbol_pipe+set}" = set; then - $as_echo_n "(cached) " >&6 - else - -@@ -6082,18 +6573,18 @@ - int main(){nm_test_var='a';nm_test_func();return(0);} - _LT_EOF - -- if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 -+ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? -- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 -- test $ac_status = 0; }; then -+ $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\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist\""; } >&5 -+ 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=$? -- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 -- test $ac_status = 0; } && test -s "$nlist"; then -+ $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 - mv -f "$nlist"T "$nlist" -@@ -6146,11 +6637,11 @@ - lt_save_CFLAGS="$CFLAGS" - LIBS="conftstm.$ac_objext" - CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag" -- if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 -+ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? -- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 -- test $ac_status = 0; } && test -s conftest${ac_exeext}; then -+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); } && test -s conftest${ac_exeext}; then - pipe_works=yes - fi - LIBS="$lt_save_LIBS" -@@ -6184,10 +6675,10 @@ - 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 -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: failed" >&5 -+ { $as_echo "$as_me:$LINENO: result: failed" >&5 - $as_echo "failed" >&6; } - else -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5 -+ { $as_echo "$as_me:$LINENO: result: ok" >&5 - $as_echo "ok" >&6; } - fi - -@@ -6213,7 +6704,7 @@ - - - # Check whether --enable-libtool-lock was given. --if test "${enable_libtool_lock+set}" = set; then : -+if test "${enable_libtool_lock+set}" = set; then - enableval=$enable_libtool_lock; - fi - -@@ -6225,11 +6716,11 @@ - ia64-*-hpux*) - # Find out which ABI we are using. - echo 'int i;' > conftest.$ac_ext -- if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 -+ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? -- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 -- test $ac_status = 0; }; then -+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); }; then - case `/usr/bin/file conftest.$ac_objext` in - *ELF-32*) - HPUX_IA64_MODE="32" -@@ -6243,12 +6734,12 @@ - ;; - *-*-irix6*) - # Find out which ABI we are using. -- echo '#line 6246 "configure"' > conftest.$ac_ext -- if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 -+ echo '#line 6737 "configure"' > conftest.$ac_ext -+ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? -- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 -- test $ac_status = 0; }; then -+ $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 - *32-bit*) -@@ -6282,11 +6773,11 @@ - s390*-*linux*|s390*-*tpf*|sparc*-*linux*) - # Find out which ABI we are using. - echo 'int i;' > conftest.$ac_ext -- if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 -+ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? -- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 -- test $ac_status = 0; }; then -+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); }; then - case `/usr/bin/file conftest.o` in - *32-bit*) - case $host in -@@ -6335,9 +6826,9 @@ - # On SCO OpenServer 5, we need -belf to get full-featured binaries. - SAVE_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS -belf" -- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5 -+ { $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 : -+if test "${lt_cv_cc_needs_belf+set}" = set; then - $as_echo_n "(cached) " >&6 - else - ac_ext=c -@@ -6346,7 +6837,11 @@ - ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' - ac_compiler_gnu=$ac_cv_c_compiler_gnu - -- cat confdefs.h - <<_ACEOF >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. */ - - int -@@ -6357,13 +6852,38 @@ - return 0; - } - _ACEOF --if ac_fn_c_try_link "$LINENO"; then : -+rm -f conftest.$ac_objext conftest$ac_exeext -+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 -+ $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 -- lt_cv_cc_needs_belf=no -+ $as_echo "$as_me: failed program was:" >&5 -+sed 's/^/| /' conftest.$ac_ext >&5 -+ -+ lt_cv_cc_needs_belf=no - fi --rm -f core conftest.err conftest.$ac_objext \ -- conftest$ac_exeext conftest.$ac_ext -+ -+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' - ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -@@ -6371,7 +6891,7 @@ - ac_compiler_gnu=$ac_cv_c_compiler_gnu - - fi --{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5 -+{ $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 -@@ -6381,11 +6901,11 @@ - sparc*-*solaris*) - # Find out which ABI we are using. - echo 'int i;' > conftest.$ac_ext -- if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 -+ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? -- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 -- test $ac_status = 0; }; then -+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); }; then - case `/usr/bin/file conftest.o` in - *64-bit*) - case $lt_cv_prog_gnu_ld in -@@ -6411,9 +6931,9 @@ - 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 --{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -+{ $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 : -+if test "${ac_cv_prog_DSYMUTIL+set}" = set; then - $as_echo_n "(cached) " >&6 - else - if test -n "$DSYMUTIL"; then -@@ -6424,24 +6944,24 @@ - do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. -- for ac_exec_ext in '' $ac_executable_extensions; do -+ 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_DSYMUTIL="${ac_tool_prefix}dsymutil" -- $as_echo "$as_me:${as_lineno-$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 -+done - IFS=$as_save_IFS - - fi - fi - DSYMUTIL=$ac_cv_prog_DSYMUTIL - if test -n "$DSYMUTIL"; then -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5 -+ { $as_echo "$as_me:$LINENO: result: $DSYMUTIL" >&5 - $as_echo "$DSYMUTIL" >&6; } - else -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -+ { $as_echo "$as_me:$LINENO: result: no" >&5 - $as_echo "no" >&6; } - fi - -@@ -6451,9 +6971,9 @@ - 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 --{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -+{ $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 : -+if test "${ac_cv_prog_ac_ct_DSYMUTIL+set}" = set; then - $as_echo_n "(cached) " >&6 - else - if test -n "$ac_ct_DSYMUTIL"; then -@@ -6464,24 +6984,24 @@ - do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. -- for ac_exec_ext in '' $ac_executable_extensions; do -+ 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_ac_ct_DSYMUTIL="dsymutil" -- $as_echo "$as_me:${as_lineno-$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 -+done - IFS=$as_save_IFS - - fi - fi - ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL - if test -n "$ac_ct_DSYMUTIL"; then -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DSYMUTIL" >&5 -+ { $as_echo "$as_me:$LINENO: result: $ac_ct_DSYMUTIL" >&5 - $as_echo "$ac_ct_DSYMUTIL" >&6; } - else -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -+ { $as_echo "$as_me:$LINENO: result: no" >&5 - $as_echo "no" >&6; } - fi - -@@ -6490,7 +7010,7 @@ - else - case $cross_compiling:$ac_tool_warned in - yes:) --{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -+{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 - $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} - ac_tool_warned=yes ;; - esac -@@ -6503,9 +7023,9 @@ - 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 --{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -+{ $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 : -+if test "${ac_cv_prog_NMEDIT+set}" = set; then - $as_echo_n "(cached) " >&6 - else - if test -n "$NMEDIT"; then -@@ -6516,24 +7036,24 @@ - do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. -- for ac_exec_ext in '' $ac_executable_extensions; do -+ 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_NMEDIT="${ac_tool_prefix}nmedit" -- $as_echo "$as_me:${as_lineno-$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 -+done - IFS=$as_save_IFS - - fi - fi - NMEDIT=$ac_cv_prog_NMEDIT - if test -n "$NMEDIT"; then -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NMEDIT" >&5 -+ { $as_echo "$as_me:$LINENO: result: $NMEDIT" >&5 - $as_echo "$NMEDIT" >&6; } - else -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -+ { $as_echo "$as_me:$LINENO: result: no" >&5 - $as_echo "no" >&6; } - fi - -@@ -6543,9 +7063,9 @@ - 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 --{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -+{ $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 : -+if test "${ac_cv_prog_ac_ct_NMEDIT+set}" = set; then - $as_echo_n "(cached) " >&6 - else - if test -n "$ac_ct_NMEDIT"; then -@@ -6556,24 +7076,24 @@ - do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. -- for ac_exec_ext in '' $ac_executable_extensions; do -+ 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_ac_ct_NMEDIT="nmedit" -- $as_echo "$as_me:${as_lineno-$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 -+done - IFS=$as_save_IFS - - fi - fi - ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT - if test -n "$ac_ct_NMEDIT"; then -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_NMEDIT" >&5 -+ { $as_echo "$as_me:$LINENO: result: $ac_ct_NMEDIT" >&5 - $as_echo "$ac_ct_NMEDIT" >&6; } - else -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -+ { $as_echo "$as_me:$LINENO: result: no" >&5 - $as_echo "no" >&6; } - fi - -@@ -6582,7 +7102,7 @@ - else - case $cross_compiling:$ac_tool_warned in - yes:) --{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -+{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 - $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} - ac_tool_warned=yes ;; - esac -@@ -6595,9 +7115,9 @@ - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}lipo", so it can be a program name with args. - set dummy ${ac_tool_prefix}lipo; ac_word=$2 --{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 - $as_echo_n "checking for $ac_word... " >&6; } --if test "${ac_cv_prog_LIPO+set}" = set; then : -+if test "${ac_cv_prog_LIPO+set}" = set; then - $as_echo_n "(cached) " >&6 - else - if test -n "$LIPO"; then -@@ -6608,24 +7128,24 @@ - do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. -- for ac_exec_ext in '' $ac_executable_extensions; do -+ 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_LIPO="${ac_tool_prefix}lipo" -- $as_echo "$as_me:${as_lineno-$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 -+done - IFS=$as_save_IFS - - fi - fi - LIPO=$ac_cv_prog_LIPO - if test -n "$LIPO"; then -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIPO" >&5 -+ { $as_echo "$as_me:$LINENO: result: $LIPO" >&5 - $as_echo "$LIPO" >&6; } - else -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -+ { $as_echo "$as_me:$LINENO: result: no" >&5 - $as_echo "no" >&6; } - fi - -@@ -6635,9 +7155,9 @@ - ac_ct_LIPO=$LIPO - # Extract the first word of "lipo", so it can be a program name with args. - set dummy lipo; ac_word=$2 --{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -+{ $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_LIPO+set}" = set; then : -+if test "${ac_cv_prog_ac_ct_LIPO+set}" = set; then - $as_echo_n "(cached) " >&6 - else - if test -n "$ac_ct_LIPO"; then -@@ -6648,24 +7168,24 @@ - do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. -- for ac_exec_ext in '' $ac_executable_extensions; do -+ 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_ac_ct_LIPO="lipo" -- $as_echo "$as_me:${as_lineno-$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 -+done - IFS=$as_save_IFS - - fi - fi - ac_ct_LIPO=$ac_cv_prog_ac_ct_LIPO - if test -n "$ac_ct_LIPO"; then -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LIPO" >&5 -+ { $as_echo "$as_me:$LINENO: result: $ac_ct_LIPO" >&5 - $as_echo "$ac_ct_LIPO" >&6; } - else -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -+ { $as_echo "$as_me:$LINENO: result: no" >&5 - $as_echo "no" >&6; } - fi - -@@ -6674,7 +7194,7 @@ - else - case $cross_compiling:$ac_tool_warned in - yes:) --{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -+{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 - $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} - ac_tool_warned=yes ;; - esac -@@ -6687,9 +7207,9 @@ - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}otool", so it can be a program name with args. - set dummy ${ac_tool_prefix}otool; ac_word=$2 --{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 - $as_echo_n "checking for $ac_word... " >&6; } --if test "${ac_cv_prog_OTOOL+set}" = set; then : -+if test "${ac_cv_prog_OTOOL+set}" = set; then - $as_echo_n "(cached) " >&6 - else - if test -n "$OTOOL"; then -@@ -6700,24 +7220,24 @@ - do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. -- for ac_exec_ext in '' $ac_executable_extensions; do -+ 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_OTOOL="${ac_tool_prefix}otool" -- $as_echo "$as_me:${as_lineno-$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 -+done - IFS=$as_save_IFS - - fi - fi - OTOOL=$ac_cv_prog_OTOOL - if test -n "$OTOOL"; then -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL" >&5 -+ { $as_echo "$as_me:$LINENO: result: $OTOOL" >&5 - $as_echo "$OTOOL" >&6; } - else -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -+ { $as_echo "$as_me:$LINENO: result: no" >&5 - $as_echo "no" >&6; } - fi - -@@ -6727,9 +7247,9 @@ - ac_ct_OTOOL=$OTOOL - # Extract the first word of "otool", so it can be a program name with args. - set dummy otool; ac_word=$2 --{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -+{ $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_OTOOL+set}" = set; then : -+if test "${ac_cv_prog_ac_ct_OTOOL+set}" = set; then - $as_echo_n "(cached) " >&6 - else - if test -n "$ac_ct_OTOOL"; then -@@ -6740,24 +7260,24 @@ - do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. -- for ac_exec_ext in '' $ac_executable_extensions; do -+ 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_ac_ct_OTOOL="otool" -- $as_echo "$as_me:${as_lineno-$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 -+done - IFS=$as_save_IFS - - fi - fi - ac_ct_OTOOL=$ac_cv_prog_ac_ct_OTOOL - if test -n "$ac_ct_OTOOL"; then -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL" >&5 -+ { $as_echo "$as_me:$LINENO: result: $ac_ct_OTOOL" >&5 - $as_echo "$ac_ct_OTOOL" >&6; } - else -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -+ { $as_echo "$as_me:$LINENO: result: no" >&5 - $as_echo "no" >&6; } - fi - -@@ -6766,7 +7286,7 @@ - else - case $cross_compiling:$ac_tool_warned in - yes:) --{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -+{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 - $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} - ac_tool_warned=yes ;; - esac -@@ -6779,9 +7299,9 @@ - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}otool64", so it can be a program name with args. - set dummy ${ac_tool_prefix}otool64; ac_word=$2 --{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 - $as_echo_n "checking for $ac_word... " >&6; } --if test "${ac_cv_prog_OTOOL64+set}" = set; then : -+if test "${ac_cv_prog_OTOOL64+set}" = set; then - $as_echo_n "(cached) " >&6 - else - if test -n "$OTOOL64"; then -@@ -6792,24 +7312,24 @@ - do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. -- for ac_exec_ext in '' $ac_executable_extensions; do -+ 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_OTOOL64="${ac_tool_prefix}otool64" -- $as_echo "$as_me:${as_lineno-$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 -+done - IFS=$as_save_IFS - - fi - fi - OTOOL64=$ac_cv_prog_OTOOL64 - if test -n "$OTOOL64"; then -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL64" >&5 -+ { $as_echo "$as_me:$LINENO: result: $OTOOL64" >&5 - $as_echo "$OTOOL64" >&6; } - else -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -+ { $as_echo "$as_me:$LINENO: result: no" >&5 - $as_echo "no" >&6; } - fi - -@@ -6819,9 +7339,9 @@ - ac_ct_OTOOL64=$OTOOL64 - # Extract the first word of "otool64", so it can be a program name with args. - set dummy otool64; ac_word=$2 --{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -+{ $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_OTOOL64+set}" = set; then : -+if test "${ac_cv_prog_ac_ct_OTOOL64+set}" = set; then - $as_echo_n "(cached) " >&6 - else - if test -n "$ac_ct_OTOOL64"; then -@@ -6832,24 +7352,24 @@ - do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. -- for ac_exec_ext in '' $ac_executable_extensions; do -+ 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_ac_ct_OTOOL64="otool64" -- $as_echo "$as_me:${as_lineno-$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 -+done - IFS=$as_save_IFS - - fi - fi - ac_ct_OTOOL64=$ac_cv_prog_ac_ct_OTOOL64 - if test -n "$ac_ct_OTOOL64"; then -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL64" >&5 -+ { $as_echo "$as_me:$LINENO: result: $ac_ct_OTOOL64" >&5 - $as_echo "$ac_ct_OTOOL64" >&6; } - else -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -+ { $as_echo "$as_me:$LINENO: result: no" >&5 - $as_echo "no" >&6; } - fi - -@@ -6858,7 +7378,7 @@ - else - case $cross_compiling:$ac_tool_warned in - yes:) --{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -+{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 - $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} - ac_tool_warned=yes ;; - esac -@@ -6894,9 +7414,9 @@ - - - -- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5 -+ { $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 : -+if test "${lt_cv_apple_cc_single_mod+set}" = set; then - $as_echo_n "(cached) " >&6 - else - lt_cv_apple_cc_single_mod=no -@@ -6921,18 +7441,22 @@ - rm -f conftest.* - fi - fi --{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5 -+{ $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:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5 -+ { $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 : -+if test "${lt_cv_ld_exported_symbols_list+set}" = set; then - $as_echo_n "(cached) " >&6 - else - lt_cv_ld_exported_symbols_list=no - save_LDFLAGS=$LDFLAGS - echo "_main" > conftest.sym - LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" -- cat confdefs.h - <<_ACEOF >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. */ - - int -@@ -6943,17 +7467,42 @@ - return 0; - } - _ACEOF --if ac_fn_c_try_link "$LINENO"; then : -+rm -f conftest.$ac_objext conftest$ac_exeext -+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 -+ $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 -- lt_cv_ld_exported_symbols_list=no -+ $as_echo "$as_me: failed program was:" >&5 -+sed 's/^/| /' conftest.$ac_ext >&5 -+ -+ lt_cv_ld_exported_symbols_list=no - fi --rm -f core conftest.err conftest.$ac_objext \ -- conftest$ac_exeext conftest.$ac_ext -+ -+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 --{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5 -+{ $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.[012]) -@@ -6990,13 +7539,62 @@ - ;; - esac - -+ - for ac_header in dlfcn.h --do : -- ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default --" --if test "x$ac_cv_header_dlfcn_h" = x""yes; then : -+do -+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. */ -+_ACEOF -+cat confdefs.h >>conftest.$ac_ext -+cat >>conftest.$ac_ext <<_ACEOF -+/* end confdefs.h. */ -+$ac_includes_default -+ -+#include <$ac_header> -+_ACEOF -+rm -f conftest.$ac_objext -+if { (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 -+ eval "$as_ac_Header=yes" -+else -+ $as_echo "$as_me: failed program was:" >&5 -+sed 's/^/| /' conftest.$ac_ext >&5 -+ -+ eval "$as_ac_Header=no" -+fi -+ -+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -+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; } -+as_val=`eval 'as_val=${'$as_ac_Header'} -+ $as_echo "$as_val"'` -+ if test "x$as_val" = x""yes; then - cat >>confdefs.h <<_ACEOF --#define HAVE_DLFCN_H 1 -+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 - _ACEOF - - fi -@@ -7016,7 +7614,7 @@ - - - # Check whether --enable-shared was given. --if test "${enable_shared+set}" = set; then : -+if test "${enable_shared+set}" = set; then - enableval=$enable_shared; p=${PACKAGE-default} - case $enableval in - yes) enable_shared=yes ;; -@@ -7047,7 +7645,7 @@ - - - # Check whether --enable-static was given. --if test "${enable_static+set}" = set; then : -+if test "${enable_static+set}" = set; then - enableval=$enable_static; p=${PACKAGE-default} - case $enableval in - yes) enable_static=yes ;; -@@ -7079,7 +7677,7 @@ - - - # Check whether --with-pic was given. --if test "${with_pic+set}" = set; then : -+if test "${with_pic+set}" = set; then - withval=$with_pic; pic_mode="$withval" - else - pic_mode=default -@@ -7095,7 +7693,7 @@ - - - # Check whether --enable-fast-install was given. --if test "${enable_fast_install+set}" = set; then : -+if test "${enable_fast_install+set}" = set; then - enableval=$enable_fast_install; p=${PACKAGE-default} - case $enableval in - yes) enable_fast_install=yes ;; -@@ -7176,9 +7774,9 @@ - setopt NO_GLOB_SUBST - fi - --{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5 -+{ $as_echo "$as_me:$LINENO: checking for objdir" >&5 - $as_echo_n "checking for objdir... " >&6; } --if test "${lt_cv_objdir+set}" = set; then : -+if test "${lt_cv_objdir+set}" = set; then - $as_echo_n "(cached) " >&6 - else - rm -f .libs 2>/dev/null -@@ -7191,7 +7789,7 @@ - fi - rmdir .libs 2>/dev/null - fi --{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_objdir" >&5 -+{ $as_echo "$as_me:$LINENO: result: $lt_cv_objdir" >&5 - $as_echo "$lt_cv_objdir" >&6; } - objdir=$lt_cv_objdir - -@@ -7284,9 +7882,9 @@ - case $deplibs_check_method in - file_magic*) - if test "$file_magic_cmd" = '$MAGIC_CMD'; then -- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5 -+ { $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 : -+if test "${lt_cv_path_MAGIC_CMD+set}" = set; then - $as_echo_n "(cached) " >&6 - else - case $MAGIC_CMD in -@@ -7337,10 +7935,10 @@ - - MAGIC_CMD="$lt_cv_path_MAGIC_CMD" - if test -n "$MAGIC_CMD"; then -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 -+ { $as_echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5 - $as_echo "$MAGIC_CMD" >&6; } - else -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -+ { $as_echo "$as_me:$LINENO: result: no" >&5 - $as_echo "no" >&6; } - fi - -@@ -7350,9 +7948,9 @@ - - if test -z "$lt_cv_path_MAGIC_CMD"; then - if test -n "$ac_tool_prefix"; then -- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for file" >&5 -+ { $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 : -+if test "${lt_cv_path_MAGIC_CMD+set}" = set; then - $as_echo_n "(cached) " >&6 - else - case $MAGIC_CMD in -@@ -7403,10 +8001,10 @@ - - MAGIC_CMD="$lt_cv_path_MAGIC_CMD" - if test -n "$MAGIC_CMD"; then -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 -+ { $as_echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5 - $as_echo "$MAGIC_CMD" >&6; } - else -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -+ { $as_echo "$as_me:$LINENO: result: no" >&5 - $as_echo "no" >&6; } - fi - -@@ -7487,9 +8085,9 @@ - if test "$GCC" = yes; then - lt_prog_compiler_no_builtin_flag=' -fno-builtin' - -- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 -+ { $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 : -+if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then - $as_echo_n "(cached) " >&6 - else - lt_cv_prog_compiler_rtti_exceptions=no -@@ -7505,11 +8103,11 @@ - -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:7508: $lt_compile\"" >&5) -+ (eval echo "\"\$as_me:8106: $lt_compile\"" >&5) - (eval "$lt_compile" 2>conftest.err) - ac_status=$? - cat conftest.err >&5 -- echo "$as_me:7512: \$? = $ac_status" >&5 -+ echo "$as_me:8110: \$? = $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. -@@ -7522,7 +8120,7 @@ - $RM conftest* - - fi --{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 -+{ $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 -@@ -7542,7 +8140,7 @@ - lt_prog_compiler_pic= - lt_prog_compiler_static= - --{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 -+{ $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 -@@ -7814,7 +8412,7 @@ - lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC" - ;; - esac --{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_prog_compiler_pic" >&5 -+{ $as_echo "$as_me:$LINENO: result: $lt_prog_compiler_pic" >&5 - $as_echo "$lt_prog_compiler_pic" >&6; } - - -@@ -7826,9 +8424,9 @@ - # Check to make sure the PIC flag actually works. - # - if test -n "$lt_prog_compiler_pic"; then -- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5 -+ { $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 : -+if test "${lt_cv_prog_compiler_pic_works+set}" = set; then - $as_echo_n "(cached) " >&6 - else - lt_cv_prog_compiler_pic_works=no -@@ -7844,11 +8442,11 @@ - -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:7847: $lt_compile\"" >&5) -+ (eval echo "\"\$as_me:8445: $lt_compile\"" >&5) - (eval "$lt_compile" 2>conftest.err) - ac_status=$? - cat conftest.err >&5 -- echo "$as_me:7851: \$? = $ac_status" >&5 -+ echo "$as_me:8449: \$? = $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. -@@ -7861,7 +8459,7 @@ - $RM conftest* - - fi --{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5 -+{ $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 -@@ -7885,9 +8483,9 @@ - # Check to make sure the static flag actually works. - # - wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\" --{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5 -+{ $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 : -+if test "${lt_cv_prog_compiler_static_works+set}" = set; then - $as_echo_n "(cached) " >&6 - else - lt_cv_prog_compiler_static_works=no -@@ -7913,7 +8511,7 @@ - LDFLAGS="$save_LDFLAGS" - - fi --{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5 -+{ $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 -@@ -7928,9 +8526,9 @@ - - - -- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 -+ { $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 : -+if test "${lt_cv_prog_compiler_c_o+set}" = set; then - $as_echo_n "(cached) " >&6 - else - lt_cv_prog_compiler_c_o=no -@@ -7949,11 +8547,11 @@ - -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:7952: $lt_compile\"" >&5) -+ (eval echo "\"\$as_me:8550: $lt_compile\"" >&5) - (eval "$lt_compile" 2>out/conftest.err) - ac_status=$? - cat out/conftest.err >&5 -- echo "$as_me:7956: \$? = $ac_status" >&5 -+ echo "$as_me:8554: \$? = $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 -@@ -7975,7 +8573,7 @@ - $RM conftest* - - fi --{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 -+{ $as_echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o" >&5 - $as_echo "$lt_cv_prog_compiler_c_o" >&6; } - - -@@ -7983,9 +8581,9 @@ - - - -- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 -+ { $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 : -+if test "${lt_cv_prog_compiler_c_o+set}" = set; then - $as_echo_n "(cached) " >&6 - else - lt_cv_prog_compiler_c_o=no -@@ -8004,11 +8602,11 @@ - -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:8007: $lt_compile\"" >&5) -+ (eval echo "\"\$as_me:8605: $lt_compile\"" >&5) - (eval "$lt_compile" 2>out/conftest.err) - ac_status=$? - cat out/conftest.err >&5 -- echo "$as_me:8011: \$? = $ac_status" >&5 -+ echo "$as_me:8609: \$? = $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 -@@ -8030,7 +8628,7 @@ - $RM conftest* - - fi --{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 -+{ $as_echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o" >&5 - $as_echo "$lt_cv_prog_compiler_c_o" >&6; } - - -@@ -8039,7 +8637,7 @@ - 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 -- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5 -+ { $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* -@@ -8047,10 +8645,10 @@ - touch conftest.a - ln conftest.a conftest.b 2>&5 || hard_links=no - ln conftest.a conftest.b 2>/dev/null && hard_links=no -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5 -+ { $as_echo "$as_me:$LINENO: result: $hard_links" >&5 - $as_echo "$hard_links" >&6; } - if test "$hard_links" = no; then -- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 -+ { $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 -@@ -8063,7 +8661,7 @@ - - - -- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5 -+ { $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= -@@ -8509,7 +9107,11 @@ - allow_undefined_flag='-berok' - # Determine the default libpath from the value encoded in an - # empty executable. -- cat confdefs.h - <<_ACEOF >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. */ - - int -@@ -8520,7 +9122,27 @@ - return 0; - } - _ACEOF --if ac_fn_c_try_link "$LINENO"; then : -+rm -f conftest.$ac_objext conftest$ac_exeext -+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 -+ $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/,/^$/ { -@@ -8534,9 +9156,16 @@ - 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 -+ $as_echo "$as_me: failed program was:" >&5 -+sed 's/^/| /' conftest.$ac_ext >&5 -+ -+ - fi --rm -f core conftest.err conftest.$ac_objext \ -- conftest$ac_exeext conftest.$ac_ext -+ -+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 - - hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" -@@ -8549,7 +9178,11 @@ - else - # Determine the default libpath from the value encoded in an - # empty executable. -- cat confdefs.h - <<_ACEOF >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. */ - - int -@@ -8560,7 +9193,27 @@ - return 0; - } - _ACEOF --if ac_fn_c_try_link "$LINENO"; then : -+rm -f conftest.$ac_objext conftest$ac_exeext -+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 -+ $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/,/^$/ { -@@ -8574,9 +9227,16 @@ - 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 -+ $as_echo "$as_me: failed program was:" >&5 -+sed 's/^/| /' conftest.$ac_ext >&5 -+ -+ - fi --rm -f core conftest.err conftest.$ac_objext \ -- conftest$ac_exeext conftest.$ac_ext -+ -+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 - - hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" -@@ -8788,16 +9448,42 @@ - # implicitly export all symbols. - save_LDFLAGS="$LDFLAGS" - LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" -- cat confdefs.h - <<_ACEOF >conftest.$ac_ext --/* end confdefs.h. */ -+ cat >conftest.$ac_ext <<_ACEOF - int foo(void) {} - _ACEOF --if ac_fn_c_try_link "$LINENO"; then : -+rm -f conftest.$ac_objext conftest$ac_exeext -+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 -+ $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 - archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' - -+else -+ $as_echo "$as_me: failed program was:" >&5 -+sed 's/^/| /' conftest.$ac_ext >&5 -+ -+ - fi --rm -f core conftest.err conftest.$ac_objext \ -- conftest$ac_exeext conftest.$ac_ext -+ -+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" - else - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' -@@ -9053,7 +9739,7 @@ - fi - fi - --{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs" >&5 -+{ $as_echo "$as_me:$LINENO: result: $ld_shlibs" >&5 - $as_echo "$ld_shlibs" >&6; } - test "$ld_shlibs" = no && can_build_shared=no - -@@ -9090,16 +9776,16 @@ - # 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. -- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5 -+ { $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\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 -+ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? -- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 -- test $ac_status = 0; } 2>conftest.err; then -+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); } 2>conftest.err; then - soname=conftest - lib=conftest - libobjs=conftest.$ac_objext -@@ -9113,11 +9799,11 @@ - libname=conftest - lt_save_allow_undefined_flag=$allow_undefined_flag - allow_undefined_flag= -- if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5 -+ 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=$? -- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 -- test $ac_status = 0; } -+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); } - then - archive_cmds_need_lc=no - else -@@ -9128,7 +9814,7 @@ - cat conftest.err 1>&5 - fi - $RM conftest* -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $archive_cmds_need_lc" >&5 -+ { $as_echo "$as_me:$LINENO: result: $archive_cmds_need_lc" >&5 - $as_echo "$archive_cmds_need_lc" >&6; } - ;; - esac -@@ -9292,7 +9978,7 @@ - - - -- { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5 -+ { $as_echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5 - $as_echo_n "checking dynamic linker characteristics... " >&6; } - - if test "$GCC" = yes; then -@@ -9714,7 +10400,11 @@ - save_libdir=$libdir - eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \ - LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\"" -- cat confdefs.h - <<_ACEOF >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. */ - - int -@@ -9725,13 +10415,41 @@ - return 0; - } - _ACEOF --if ac_fn_c_try_link "$LINENO"; then : -- if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then : -+rm -f conftest.$ac_objext conftest$ac_exeext -+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 -+ $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 -+ if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then - shlibpath_overrides_runpath=yes - fi -+ -+else -+ $as_echo "$as_me: failed program was:" >&5 -+sed 's/^/| /' conftest.$ac_ext >&5 -+ -+ - fi --rm -f core conftest.err conftest.$ac_objext \ -- conftest$ac_exeext conftest.$ac_ext -+ -+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 - libdir=$save_libdir - -@@ -9955,7 +10673,7 @@ - dynamic_linker=no - ;; - esac --{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5 -+{ $as_echo "$as_me:$LINENO: result: $dynamic_linker" >&5 - $as_echo "$dynamic_linker" >&6; } - test "$dynamic_linker" = no && can_build_shared=no - -@@ -10057,7 +10775,7 @@ - - - -- { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5 -+ { $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" || -@@ -10082,7 +10800,7 @@ - # directories. - hardcode_action=unsupported - fi --{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action" >&5 -+{ $as_echo "$as_me:$LINENO: result: $hardcode_action" >&5 - $as_echo "$hardcode_action" >&6; } - - if test "$hardcode_action" = relink || -@@ -10127,14 +10845,18 @@ - - darwin*) - # if libdl is installed we need to link against it -- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 -+ { $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 : -+if test "${ac_cv_lib_dl_dlopen+set}" = set; then - $as_echo_n "(cached) " >&6 - else - ac_check_lib_save_LIBS=$LIBS - LIBS="-ldl $LIBS" --cat confdefs.h - <<_ACEOF >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. */ - - /* Override any GCC internal prototype to avoid an error. -@@ -10152,18 +10874,43 @@ - return 0; - } - _ACEOF --if ac_fn_c_try_link "$LINENO"; then : -+rm -f conftest.$ac_objext conftest$ac_exeext -+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 -+ $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 -- ac_cv_lib_dl_dlopen=no -+ $as_echo "$as_me: failed program was:" >&5 -+sed 's/^/| /' conftest.$ac_ext >&5 -+ -+ ac_cv_lib_dl_dlopen=no - fi --rm -f core conftest.err conftest.$ac_objext \ -- conftest$ac_exeext conftest.$ac_ext -+ -+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 --{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 -+{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5 - $as_echo "$ac_cv_lib_dl_dlopen" >&6; } --if test "x$ac_cv_lib_dl_dlopen" = x""yes; then : -+if test "x$ac_cv_lib_dl_dlopen" = x""yes; then - lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" - else - -@@ -10176,18 +10923,106 @@ - ;; - - *) -- ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load" --if test "x$ac_cv_func_shl_load" = x""yes; then : -+ { $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 -+ $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. */ -+/* Define shl_load to an innocuous variant, in case declares shl_load. -+ For example, HP-UX 11i declares gettimeofday. */ -+#define shl_load innocuous_shl_load -+ -+/* System header to define __stub macros and hopefully few prototypes, -+ which can conflict with char shl_load (); below. -+ Prefer to if __STDC__ is defined, since -+ exists even on freestanding compilers. */ -+ -+#ifdef __STDC__ -+# include -+#else -+# include -+#endif -+ -+#undef shl_load -+ -+/* Override any 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 -+char shl_load (); -+/* The GNU C library defines this for functions which it implements -+ to always fail with ENOSYS. Some functions are actually named -+ something starting with __ and the normal name is an alias. */ -+#if defined __stub_shl_load || defined __stub___shl_load -+choke me -+#endif -+ -+int -+main () -+{ -+return shl_load (); -+ ; -+ return 0; -+} -+_ACEOF -+rm -f conftest.$ac_objext conftest$ac_exeext -+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 -+ $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 -+ $as_echo "$as_me: failed program was:" >&5 -+sed 's/^/| /' conftest.$ac_ext >&5 -+ -+ ac_cv_func_shl_load=no -+fi -+ -+rm -rf conftest.dSYM -+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ -+ conftest$ac_exeext conftest.$ac_ext -+fi -+{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_shl_load" >&5 -+$as_echo "$ac_cv_func_shl_load" >&6; } -+if test "x$ac_cv_func_shl_load" = x""yes; then - lt_cv_dlopen="shl_load" - else -- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5 -+ { $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 : -+if test "${ac_cv_lib_dld_shl_load+set}" = set; then - $as_echo_n "(cached) " >&6 - else - ac_check_lib_save_LIBS=$LIBS - LIBS="-ldld $LIBS" --cat confdefs.h - <<_ACEOF >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. */ - - /* Override any GCC internal prototype to avoid an error. -@@ -10205,32 +11040,145 @@ - return 0; - } - _ACEOF --if ac_fn_c_try_link "$LINENO"; then : -+rm -f conftest.$ac_objext conftest$ac_exeext -+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 -+ $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 -- ac_cv_lib_dld_shl_load=no -+ $as_echo "$as_me: failed program was:" >&5 -+sed 's/^/| /' conftest.$ac_ext >&5 -+ -+ ac_cv_lib_dld_shl_load=no - fi --rm -f core conftest.err conftest.$ac_objext \ -- conftest$ac_exeext conftest.$ac_ext -+ -+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 --{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5 -+{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_dld_shl_load" >&5 - $as_echo "$ac_cv_lib_dld_shl_load" >&6; } --if test "x$ac_cv_lib_dld_shl_load" = x""yes; then : -+if test "x$ac_cv_lib_dld_shl_load" = x""yes; then - lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld" - else -- ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen" --if test "x$ac_cv_func_dlopen" = x""yes; then : -+ { $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 -+ $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. */ -+/* Define dlopen to an innocuous variant, in case declares dlopen. -+ For example, HP-UX 11i declares gettimeofday. */ -+#define dlopen innocuous_dlopen -+ -+/* System header to define __stub macros and hopefully few prototypes, -+ which can conflict with char dlopen (); below. -+ Prefer to if __STDC__ is defined, since -+ exists even on freestanding compilers. */ -+ -+#ifdef __STDC__ -+# include -+#else -+# include -+#endif -+ -+#undef dlopen -+ -+/* Override any 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 -+char dlopen (); -+/* The GNU C library defines this for functions which it implements -+ to always fail with ENOSYS. Some functions are actually named -+ something starting with __ and the normal name is an alias. */ -+#if defined __stub_dlopen || defined __stub___dlopen -+choke me -+#endif -+ -+int -+main () -+{ -+return dlopen (); -+ ; -+ return 0; -+} -+_ACEOF -+rm -f conftest.$ac_objext conftest$ac_exeext -+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 -+ $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 -+ $as_echo "$as_me: failed program was:" >&5 -+sed 's/^/| /' conftest.$ac_ext >&5 -+ -+ ac_cv_func_dlopen=no -+fi -+ -+rm -rf conftest.dSYM -+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ -+ conftest$ac_exeext conftest.$ac_ext -+fi -+{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_dlopen" >&5 -+$as_echo "$ac_cv_func_dlopen" >&6; } -+if test "x$ac_cv_func_dlopen" = x""yes; then - lt_cv_dlopen="dlopen" - else -- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 -+ { $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 : -+if test "${ac_cv_lib_dl_dlopen+set}" = set; then - $as_echo_n "(cached) " >&6 - else - ac_check_lib_save_LIBS=$LIBS - LIBS="-ldl $LIBS" --cat confdefs.h - <<_ACEOF >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. */ - - /* Override any GCC internal prototype to avoid an error. -@@ -10248,28 +11196,57 @@ - return 0; - } - _ACEOF --if ac_fn_c_try_link "$LINENO"; then : -+rm -f conftest.$ac_objext conftest$ac_exeext -+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 -+ $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 -- ac_cv_lib_dl_dlopen=no -+ $as_echo "$as_me: failed program was:" >&5 -+sed 's/^/| /' conftest.$ac_ext >&5 -+ -+ ac_cv_lib_dl_dlopen=no - fi --rm -f core conftest.err conftest.$ac_objext \ -- conftest$ac_exeext conftest.$ac_ext -+ -+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 --{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 -+{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5 - $as_echo "$ac_cv_lib_dl_dlopen" >&6; } --if test "x$ac_cv_lib_dl_dlopen" = x""yes; then : -+if test "x$ac_cv_lib_dl_dlopen" = x""yes; then - lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" - else -- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5 -+ { $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 : -+if test "${ac_cv_lib_svld_dlopen+set}" = set; then - $as_echo_n "(cached) " >&6 - else - ac_check_lib_save_LIBS=$LIBS - LIBS="-lsvld $LIBS" --cat confdefs.h - <<_ACEOF >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. */ - - /* Override any GCC internal prototype to avoid an error. -@@ -10287,28 +11264,57 @@ - return 0; - } - _ACEOF --if ac_fn_c_try_link "$LINENO"; then : -+rm -f conftest.$ac_objext conftest$ac_exeext -+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 -+ $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 -- ac_cv_lib_svld_dlopen=no -+ $as_echo "$as_me: failed program was:" >&5 -+sed 's/^/| /' conftest.$ac_ext >&5 -+ -+ ac_cv_lib_svld_dlopen=no - fi --rm -f core conftest.err conftest.$ac_objext \ -- conftest$ac_exeext conftest.$ac_ext -+ -+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 --{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5 -+{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_svld_dlopen" >&5 - $as_echo "$ac_cv_lib_svld_dlopen" >&6; } --if test "x$ac_cv_lib_svld_dlopen" = x""yes; then : -+if test "x$ac_cv_lib_svld_dlopen" = x""yes; then - lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld" - else -- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5 -+ { $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 : -+if test "${ac_cv_lib_dld_dld_link+set}" = set; then - $as_echo_n "(cached) " >&6 - else - ac_check_lib_save_LIBS=$LIBS - LIBS="-ldld $LIBS" --cat confdefs.h - <<_ACEOF >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. */ - - /* Override any GCC internal prototype to avoid an error. -@@ -10326,18 +11332,43 @@ - return 0; - } - _ACEOF --if ac_fn_c_try_link "$LINENO"; then : -+rm -f conftest.$ac_objext conftest$ac_exeext -+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 -+ $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 -- ac_cv_lib_dld_dld_link=no -+ $as_echo "$as_me: failed program was:" >&5 -+sed 's/^/| /' conftest.$ac_ext >&5 -+ -+ ac_cv_lib_dld_dld_link=no - fi --rm -f core conftest.err conftest.$ac_objext \ -- conftest$ac_exeext conftest.$ac_ext -+ -+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 --{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5 -+{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_dld_dld_link" >&5 - $as_echo "$ac_cv_lib_dld_dld_link" >&6; } --if test "x$ac_cv_lib_dld_dld_link" = x""yes; then : -+if test "x$ac_cv_lib_dld_dld_link" = x""yes; then - lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld" - fi - -@@ -10376,9 +11407,9 @@ - save_LIBS="$LIBS" - LIBS="$lt_cv_dlopen_libs $LIBS" - -- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5 -+ { $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 : -+if test "${lt_cv_dlopen_self+set}" = set; then - $as_echo_n "(cached) " >&6 - else - if test "$cross_compiling" = yes; then : -@@ -10387,7 +11418,7 @@ - lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 - lt_status=$lt_dlunknown - cat > conftest.$ac_ext <<_LT_EOF --#line 10390 "configure" -+#line 11421 "configure" - #include "confdefs.h" - - #if HAVE_DLFCN_H -@@ -10446,11 +11477,11 @@ - return status; - } - _LT_EOF -- if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 -+ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? -- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 -- test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then -+ $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=$? - case x$lt_status in -@@ -10467,14 +11498,14 @@ - - - fi --{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5 -+{ $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\" -- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5 -+ { $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 : -+if test "${lt_cv_dlopen_self_static+set}" = set; then - $as_echo_n "(cached) " >&6 - else - if test "$cross_compiling" = yes; then : -@@ -10483,7 +11514,7 @@ - lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 - lt_status=$lt_dlunknown - cat > conftest.$ac_ext <<_LT_EOF --#line 10486 "configure" -+#line 11517 "configure" - #include "confdefs.h" - - #if HAVE_DLFCN_H -@@ -10542,11 +11573,11 @@ - return status; - } - _LT_EOF -- if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 -+ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? -- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 -- test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then -+ $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=$? - case x$lt_status in -@@ -10563,7 +11594,7 @@ - - - fi --{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self_static" >&5 -+{ $as_echo "$as_me:$LINENO: result: $lt_cv_dlopen_self_static" >&5 - $as_echo "$lt_cv_dlopen_self_static" >&6; } - fi - -@@ -10602,12 +11633,12 @@ - - striplib= - old_striplib= --{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5 -+{ $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" -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -+ { $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 -@@ -10616,15 +11647,15 @@ - if test -n "$STRIP" ; then - striplib="$STRIP -x" - old_striplib="$STRIP -S" -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -+ { $as_echo "$as_me:$LINENO: result: yes" >&5 - $as_echo "yes" >&6; } - else -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -+ { $as_echo "$as_me:$LINENO: result: no" >&5 - $as_echo "no" >&6; } - fi - ;; - *) -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -+ { $as_echo "$as_me:$LINENO: result: no" >&5 - $as_echo "no" >&6; } - ;; - esac -@@ -10642,12 +11673,12 @@ - - - # Report which library types will actually be built -- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5 -+ { $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:${as_lineno-$LINENO}: result: $can_build_shared" >&5 -+ { $as_echo "$as_me:$LINENO: result: $can_build_shared" >&5 - $as_echo "$can_build_shared" >&6; } - -- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5 -+ { $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 - -@@ -10668,14 +11699,14 @@ - fi - ;; - esac -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5 -+ { $as_echo "$as_me:$LINENO: result: $enable_shared" >&5 - $as_echo "$enable_shared" >&6; } - -- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5 -+ { $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 -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5 -+ { $as_echo "$as_me:$LINENO: result: $enable_static" >&5 - $as_echo "$enable_static" >&6; } - - -@@ -10718,9 +11749,9 @@ - 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 --{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -+{ $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 : -+if test "${ac_cv_prog_CC+set}" = set; then - $as_echo_n "(cached) " >&6 - else - if test -n "$CC"; then -@@ -10731,24 +11762,24 @@ - do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. -- for ac_exec_ext in '' $ac_executable_extensions; do -+ 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_CC="${ac_tool_prefix}gcc" -- $as_echo "$as_me:${as_lineno-$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 -+done - IFS=$as_save_IFS - - fi - fi - CC=$ac_cv_prog_CC - if test -n "$CC"; then -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -+ { $as_echo "$as_me:$LINENO: result: $CC" >&5 - $as_echo "$CC" >&6; } - else -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -+ { $as_echo "$as_me:$LINENO: result: no" >&5 - $as_echo "no" >&6; } - fi - -@@ -10758,9 +11789,9 @@ - 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 --{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -+{ $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 : -+if test "${ac_cv_prog_ac_ct_CC+set}" = set; then - $as_echo_n "(cached) " >&6 - else - if test -n "$ac_ct_CC"; then -@@ -10771,24 +11802,24 @@ - do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. -- for ac_exec_ext in '' $ac_executable_extensions; do -+ 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_ac_ct_CC="gcc" -- $as_echo "$as_me:${as_lineno-$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 -+done - IFS=$as_save_IFS - - fi - fi - ac_ct_CC=$ac_cv_prog_ac_ct_CC - if test -n "$ac_ct_CC"; then -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 -+ { $as_echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 - $as_echo "$ac_ct_CC" >&6; } - else -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -+ { $as_echo "$as_me:$LINENO: result: no" >&5 - $as_echo "no" >&6; } - fi - -@@ -10797,7 +11828,7 @@ - else - case $cross_compiling:$ac_tool_warned in - yes:) --{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -+{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 - $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} - ac_tool_warned=yes ;; - esac -@@ -10811,9 +11842,9 @@ - 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 --{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -+{ $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 : -+if test "${ac_cv_prog_CC+set}" = set; then - $as_echo_n "(cached) " >&6 - else - if test -n "$CC"; then -@@ -10824,24 +11855,24 @@ - do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. -- for ac_exec_ext in '' $ac_executable_extensions; do -+ 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_CC="${ac_tool_prefix}cc" -- $as_echo "$as_me:${as_lineno-$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 -+done - IFS=$as_save_IFS - - fi - fi - CC=$ac_cv_prog_CC - if test -n "$CC"; then -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -+ { $as_echo "$as_me:$LINENO: result: $CC" >&5 - $as_echo "$CC" >&6; } - else -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -+ { $as_echo "$as_me:$LINENO: result: no" >&5 - $as_echo "no" >&6; } - fi - -@@ -10851,9 +11882,9 @@ - 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 --{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -+{ $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 : -+if test "${ac_cv_prog_CC+set}" = set; then - $as_echo_n "(cached) " >&6 - else - if test -n "$CC"; then -@@ -10865,18 +11896,18 @@ - do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. -- for ac_exec_ext in '' $ac_executable_extensions; do -+ 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 - if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then - ac_prog_rejected=yes - continue - fi - ac_cv_prog_CC="cc" -- $as_echo "$as_me:${as_lineno-$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 -+done - IFS=$as_save_IFS - - if test $ac_prog_rejected = yes; then -@@ -10895,10 +11926,10 @@ - fi - CC=$ac_cv_prog_CC - if test -n "$CC"; then -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -+ { $as_echo "$as_me:$LINENO: result: $CC" >&5 - $as_echo "$CC" >&6; } - else -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -+ { $as_echo "$as_me:$LINENO: result: no" >&5 - $as_echo "no" >&6; } - fi - -@@ -10910,9 +11941,9 @@ - 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 --{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -+{ $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 : -+if test "${ac_cv_prog_CC+set}" = set; then - $as_echo_n "(cached) " >&6 - else - if test -n "$CC"; then -@@ -10923,24 +11954,24 @@ - do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. -- for ac_exec_ext in '' $ac_executable_extensions; do -+ 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_CC="$ac_tool_prefix$ac_prog" -- $as_echo "$as_me:${as_lineno-$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 -+done - IFS=$as_save_IFS - - fi - fi - CC=$ac_cv_prog_CC - if test -n "$CC"; then -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -+ { $as_echo "$as_me:$LINENO: result: $CC" >&5 - $as_echo "$CC" >&6; } - else -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -+ { $as_echo "$as_me:$LINENO: result: no" >&5 - $as_echo "no" >&6; } - fi - -@@ -10954,9 +11985,9 @@ - do - # Extract the first word of "$ac_prog", so it can be a program name with args. - set dummy $ac_prog; ac_word=$2 --{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -+{ $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 : -+if test "${ac_cv_prog_ac_ct_CC+set}" = set; then - $as_echo_n "(cached) " >&6 - else - if test -n "$ac_ct_CC"; then -@@ -10967,24 +11998,24 @@ - do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. -- for ac_exec_ext in '' $ac_executable_extensions; do -+ 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_ac_ct_CC="$ac_prog" -- $as_echo "$as_me:${as_lineno-$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 -+done - IFS=$as_save_IFS - - fi - fi - ac_ct_CC=$ac_cv_prog_ac_ct_CC - if test -n "$ac_ct_CC"; then -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 -+ { $as_echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 - $as_echo "$ac_ct_CC" >&6; } - else -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -+ { $as_echo "$as_me:$LINENO: result: no" >&5 - $as_echo "no" >&6; } - fi - -@@ -10997,7 +12028,7 @@ - else - case $cross_compiling:$ac_tool_warned in - yes:) --{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -+{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 - $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} - ac_tool_warned=yes ;; - esac -@@ -11008,42 +12039,62 @@ - fi - - --test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -+test -z "$CC" && { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 - $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} --as_fn_error "no acceptable C compiler found in \$PATH --See \`config.log' for more details." "$LINENO" 5; } -+{ { $as_echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH -+See \`config.log' for more details." >&5 -+$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. --$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 -+$as_echo "$as_me:$LINENO: checking for C compiler version" >&5 - set X $ac_compile - ac_compiler=$2 --for ac_option in --version -v -V -qversion; do -- { { ac_try="$ac_compiler $ac_option >&5" -+{ (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:${as_lineno-$LINENO}: $ac_try_echo\"" --$as_echo "$ac_try_echo"; } >&5 -- (eval "$ac_compiler $ac_option >&5") 2>conftest.err -+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=$? -- if test -s conftest.err; then -- sed '10a\ --... rest of stderr output deleted ... -- 10q' conftest.err >conftest.er1 -- cat conftest.er1 >&5 -- rm -f conftest.er1 conftest.err -- fi -- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 -- test $ac_status = 0; } --done -+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); } -+{ (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=$? -+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); } -+{ (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=$? -+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); } - --{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 -+{ $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 : -+if test "${ac_cv_c_compiler_gnu+set}" = set; then - $as_echo_n "(cached) " >&6 - else -- cat confdefs.h - <<_ACEOF >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. */ - - int -@@ -11057,16 +12108,37 @@ - return 0; - } - _ACEOF --if ac_fn_c_try_compile "$LINENO"; then : -+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_compiler_gnu=yes - else -- ac_compiler_gnu=no -+ $as_echo "$as_me: failed program was:" >&5 -+sed 's/^/| /' conftest.$ac_ext >&5 -+ -+ ac_compiler_gnu=no - fi -+ - rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - ac_cv_c_compiler_gnu=$ac_compiler_gnu - - fi --{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 -+{ $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 -@@ -11075,16 +12147,20 @@ - fi - ac_test_CFLAGS=${CFLAGS+set} - ac_save_CFLAGS=$CFLAGS --{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 -+{ $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 : -+if test "${ac_cv_prog_cc_g+set}" = set; then - $as_echo_n "(cached) " >&6 - else - ac_save_c_werror_flag=$ac_c_werror_flag - ac_c_werror_flag=yes - ac_cv_prog_cc_g=no - CFLAGS="-g" -- cat confdefs.h - <<_ACEOF >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. */ - - int -@@ -11095,11 +12171,35 @@ - return 0; - } - _ACEOF --if ac_fn_c_try_compile "$LINENO"; then : -+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_prog_cc_g=yes - else -- CFLAGS="" -- cat confdefs.h - <<_ACEOF >conftest.$ac_ext -+ $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 -@@ -11110,12 +12210,36 @@ - return 0; - } - _ACEOF --if ac_fn_c_try_compile "$LINENO"; then : -- -+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 -+ : - else -- ac_c_werror_flag=$ac_save_c_werror_flag -+ $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 confdefs.h - <<_ACEOF >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. */ - - int -@@ -11126,17 +12250,42 @@ - return 0; - } - _ACEOF --if ac_fn_c_try_compile "$LINENO"; then : -+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_prog_cc_g=yes -+else -+ $as_echo "$as_me: failed program was:" >&5 -+sed 's/^/| /' conftest.$ac_ext >&5 -+ -+ - fi -+ - rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi -+ - 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:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 -+{ $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 -@@ -11153,14 +12302,18 @@ - CFLAGS= - fi - fi --{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 -+{ $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 : -+if test "${ac_cv_prog_cc_c89+set}" = set; then - $as_echo_n "(cached) " >&6 - else - ac_cv_prog_cc_c89=no - ac_save_CC=$CC --cat confdefs.h - <<_ACEOF >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. */ - #include - #include -@@ -11217,9 +12370,32 @@ - -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" - do - CC="$ac_save_CC $ac_arg" -- if ac_fn_c_try_compile "$LINENO"; then : -+ 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_prog_cc_c89=$ac_arg -+else -+ $as_echo "$as_me: failed program was:" >&5 -+sed 's/^/| /' conftest.$ac_ext >&5 -+ -+ - fi -+ - rm -f core conftest.err conftest.$ac_objext - test "x$ac_cv_prog_cc_c89" != "xno" && break - done -@@ -11230,19 +12406,17 @@ - # AC_CACHE_VAL - case "x$ac_cv_prog_cc_c89" in - x) -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 -+ { $as_echo "$as_me:$LINENO: result: none needed" >&5 - $as_echo "none needed" >&6; } ;; - xno) -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 -+ { $as_echo "$as_me:$LINENO: result: unsupported" >&5 - $as_echo "unsupported" >&6; } ;; - *) - CC="$CC $ac_cv_prog_cc_c89" -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 -+ { $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c89" >&5 - $as_echo "$ac_cv_prog_cc_c89" >&6; } ;; - esac --if test "x$ac_cv_prog_cc_c89" != xno; then : - --fi - - ac_ext=c - ac_cpp='$CPP $CPPFLAGS' -@@ -11252,9 +12426,9 @@ - - depcc="$CC" am_compiler_list= - --{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 -+{ $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 : -+if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then - $as_echo_n "(cached) " >&6 - else - if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then -@@ -11362,7 +12536,7 @@ - fi - - fi --{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5 -+{ $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 - -@@ -11381,18 +12555,22 @@ - am_cv_prog_cc_stdc=$ac_cv_prog_cc_stdc - - if test "x$CC" != xcc; then -- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC and cc understand -c and -o together" >&5 -+ { $as_echo "$as_me:$LINENO: checking whether $CC and cc understand -c and -o together" >&5 - $as_echo_n "checking whether $CC and cc understand -c and -o together... " >&6; } - else -- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether cc understands -c and -o together" >&5 -+ { $as_echo "$as_me:$LINENO: checking whether cc understands -c and -o together" >&5 - $as_echo_n "checking whether cc understands -c and -o together... " >&6; } - fi - set dummy $CC; ac_cc=`$as_echo "$2" | - sed 's/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/'` --if { as_var=ac_cv_prog_cc_${ac_cc}_c_o; eval "test \"\${$as_var+set}\" = set"; }; then : -+if { as_var=ac_cv_prog_cc_${ac_cc}_c_o; eval "test \"\${$as_var+set}\" = set"; }; then - $as_echo_n "(cached) " >&6 - else -- cat confdefs.h - <<_ACEOF >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. */ - - int -@@ -11408,63 +12586,63 @@ - # existing .o file with -o, though they will create one. - ac_try='$CC -c conftest.$ac_ext -o conftest2.$ac_objext >&5' - rm -f conftest2.* --if { { case "(($ac_try" in -+if { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; - esac --eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" --$as_echo "$ac_try_echo"; } >&5 -+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -+$as_echo "$ac_try_echo") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? -- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 -- test $ac_status = 0; } && -- test -f conftest2.$ac_objext && { { case "(($ac_try" in -+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); } && -+ test -f conftest2.$ac_objext && { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; - esac --eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" --$as_echo "$ac_try_echo"; } >&5 -+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -+$as_echo "$ac_try_echo") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? -- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 -- test $ac_status = 0; }; -+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); }; - then - eval ac_cv_prog_cc_${ac_cc}_c_o=yes - if test "x$CC" != xcc; then - # Test first that cc exists at all. - if { ac_try='cc -c conftest.$ac_ext >&5' -- { { case "(($ac_try" in -+ { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; - esac --eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" --$as_echo "$ac_try_echo"; } >&5 -+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -+$as_echo "$ac_try_echo") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? -- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 -- test $ac_status = 0; }; }; then -+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); }; }; then - ac_try='cc -c conftest.$ac_ext -o conftest2.$ac_objext >&5' - rm -f conftest2.* -- if { { case "(($ac_try" in -+ if { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; - esac --eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" --$as_echo "$ac_try_echo"; } >&5 -+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -+$as_echo "$ac_try_echo") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? -- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 -- test $ac_status = 0; } && -- test -f conftest2.$ac_objext && { { case "(($ac_try" in -+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); } && -+ test -f conftest2.$ac_objext && { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; - esac --eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" --$as_echo "$ac_try_echo"; } >&5 -+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -+$as_echo "$ac_try_echo") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? -- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 -- test $ac_status = 0; }; -+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); }; - then - # cc works too. - : -@@ -11481,13 +12659,15 @@ - - fi - if eval test \$ac_cv_prog_cc_${ac_cc}_c_o = yes; then -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -+ { $as_echo "$as_me:$LINENO: result: yes" >&5 - $as_echo "yes" >&6; } - else -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -+ { $as_echo "$as_me:$LINENO: result: no" >&5 - $as_echo "no" >&6; } - --$as_echo "#define NO_MINUS_C_MINUS_O 1" >>confdefs.h -+cat >>confdefs.h <<\_ACEOF -+#define NO_MINUS_C_MINUS_O 1 -+_ACEOF - - fi - -@@ -11506,23 +12686,115 @@ - fi - - -+# Find a good install program. We prefer a C program (faster), -+# so one script is as good as another. But avoid the broken or -+# incompatible versions: -+# SysV /etc/install, /usr/sbin/install -+# SunOS /usr/etc/install -+# IRIX /sbin/install -+# AIX /bin/install -+# AmigaOS /C/install, which installs bootblocks on floppy discs -+# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag -+# AFS /usr/afsws/bin/install, which mishandles nonexistent args -+# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" -+# OS/2's system install, which has a completely different semantic -+# ./install, which can be erroneously created by make from ./install.sh. -+# 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 -+ $as_echo_n "(cached) " >&6 -+else -+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -+for as_dir in $PATH -+do -+ IFS=$as_save_IFS -+ test -z "$as_dir" && as_dir=. -+ # Account for people who put trailing slashes in PATH elements. -+case $as_dir/ in -+ ./ | .// | /cC/* | \ -+ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ -+ ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \ -+ /usr/ucb/* ) ;; -+ *) -+ # OSF1 and SCO ODT 3.0 have their own names for install. -+ # Don't use installbsd from OSF since it installs stuff as root -+ # by default. -+ for ac_prog in ginstall scoinst install; do -+ for ac_exec_ext in '' $ac_executable_extensions; do -+ 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. -+ : -+ elif test $ac_prog = install && -+ grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then -+ # program-specific install script used by HP pwplus--don't use. -+ : -+ else -+ 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. 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 value is a relative name. -+ INSTALL=$ac_install_sh -+ fi -+fi -+{ $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. -+test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' -+ -+test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' -+ -+test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' - --{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5 -+{ $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 -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -+ { $as_echo "$as_me:$LINENO: result: yes" >&5 - $as_echo "yes" >&6; } - else -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5 -+ { $as_echo "$as_me:$LINENO: result: no, using $LN_S" >&5 - $as_echo "no, using $LN_S" >&6; } - fi - - # Extract the first word of "mktemp", so it can be a program name with args. - set dummy mktemp; ac_word=$2 --{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 - $as_echo_n "checking for $ac_word... " >&6; } --if test "${ac_cv_path_MKTEMP_PROG+set}" = set; then : -+if test "${ac_cv_path_MKTEMP_PROG+set}" = set; then - $as_echo_n "(cached) " >&6 - else - case $MKTEMP_PROG in -@@ -11535,14 +12807,14 @@ - do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. -- for ac_exec_ext in '' $ac_executable_extensions; do -+ 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_path_MKTEMP_PROG="$as_dir/$ac_word$ac_exec_ext" -- $as_echo "$as_me:${as_lineno-$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 -+done - IFS=$as_save_IFS - - ;; -@@ -11550,10 +12822,10 @@ - fi - MKTEMP_PROG=$ac_cv_path_MKTEMP_PROG - if test -n "$MKTEMP_PROG"; then -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKTEMP_PROG" >&5 -+ { $as_echo "$as_me:$LINENO: result: $MKTEMP_PROG" >&5 - $as_echo "$MKTEMP_PROG" >&6; } - else -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -+ { $as_echo "$as_me:$LINENO: result: no" >&5 - $as_echo "no" >&6; } - fi - -@@ -11565,9 +12837,9 @@ - - # Extract the first word of "cstocs", so it can be a program name with args. - set dummy cstocs; ac_word=$2 --{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 - $as_echo_n "checking for $ac_word... " >&6; } --if test "${ac_cv_path_CSTOCS_PROG+set}" = set; then : -+if test "${ac_cv_path_CSTOCS_PROG+set}" = set; then - $as_echo_n "(cached) " >&6 - else - case $CSTOCS_PROG in -@@ -11580,14 +12852,14 @@ - do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. -- for ac_exec_ext in '' $ac_executable_extensions; do -+ 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_path_CSTOCS_PROG="$as_dir/$ac_word$ac_exec_ext" -- $as_echo "$as_me:${as_lineno-$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 -+done - IFS=$as_save_IFS - - ;; -@@ -11595,19 +12867,19 @@ - fi - CSTOCS_PROG=$ac_cv_path_CSTOCS_PROG - if test -n "$CSTOCS_PROG"; then -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CSTOCS_PROG" >&5 -+ { $as_echo "$as_me:$LINENO: result: $CSTOCS_PROG" >&5 - $as_echo "$CSTOCS_PROG" >&6; } - else -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -+ { $as_echo "$as_me:$LINENO: result: no" >&5 - $as_echo "no" >&6; } - fi - - - # Extract the first word of "recode", so it can be a program name with args. - set dummy recode; ac_word=$2 --{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 - $as_echo_n "checking for $ac_word... " >&6; } --if test "${ac_cv_path_RECODE_PROG+set}" = set; then : -+if test "${ac_cv_path_RECODE_PROG+set}" = set; then - $as_echo_n "(cached) " >&6 - else - case $RECODE_PROG in -@@ -11620,14 +12892,14 @@ - do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. -- for ac_exec_ext in '' $ac_executable_extensions; do -+ 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_path_RECODE_PROG="$as_dir/$ac_word$ac_exec_ext" -- $as_echo "$as_me:${as_lineno-$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 -+done - IFS=$as_save_IFS - - ;; -@@ -11635,19 +12907,19 @@ - fi - RECODE_PROG=$ac_cv_path_RECODE_PROG - if test -n "$RECODE_PROG"; then -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RECODE_PROG" >&5 -+ { $as_echo "$as_me:$LINENO: result: $RECODE_PROG" >&5 - $as_echo "$RECODE_PROG" >&6; } - else -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -+ { $as_echo "$as_me:$LINENO: result: no" >&5 - $as_echo "no" >&6; } - fi - - - # Extract the first word of "umap", so it can be a program name with args. - set dummy umap; ac_word=$2 --{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 - $as_echo_n "checking for $ac_word... " >&6; } --if test "${ac_cv_path_UMAP_PROG+set}" = set; then : -+if test "${ac_cv_path_UMAP_PROG+set}" = set; then - $as_echo_n "(cached) " >&6 - else - case $UMAP_PROG in -@@ -11660,14 +12932,14 @@ - do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. -- for ac_exec_ext in '' $ac_executable_extensions; do -+ 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_path_UMAP_PROG="$as_dir/$ac_word$ac_exec_ext" -- $as_echo "$as_me:${as_lineno-$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 -+done - IFS=$as_save_IFS - - ;; -@@ -11675,19 +12947,19 @@ - fi - UMAP_PROG=$ac_cv_path_UMAP_PROG - if test -n "$UMAP_PROG"; then -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $UMAP_PROG" >&5 -+ { $as_echo "$as_me:$LINENO: result: $UMAP_PROG" >&5 - $as_echo "$UMAP_PROG" >&6; } - else -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -+ { $as_echo "$as_me:$LINENO: result: no" >&5 - $as_echo "no" >&6; } - fi - - - # Extract the first word of "piconv", so it can be a program name with args. - set dummy piconv; ac_word=$2 --{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 - $as_echo_n "checking for $ac_word... " >&6; } --if test "${ac_cv_path_PICONV_PROG+set}" = set; then : -+if test "${ac_cv_path_PICONV_PROG+set}" = set; then - $as_echo_n "(cached) " >&6 - else - case $PICONV_PROG in -@@ -11700,14 +12972,14 @@ - do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. -- for ac_exec_ext in '' $ac_executable_extensions; do -+ 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_path_PICONV_PROG="$as_dir/$ac_word$ac_exec_ext" -- $as_echo "$as_me:${as_lineno-$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 -+done - IFS=$as_save_IFS - - ;; -@@ -11715,19 +12987,19 @@ - fi - PICONV_PROG=$ac_cv_path_PICONV_PROG - if test -n "$PICONV_PROG"; then -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PICONV_PROG" >&5 -+ { $as_echo "$as_me:$LINENO: result: $PICONV_PROG" >&5 - $as_echo "$PICONV_PROG" >&6; } - else -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -+ { $as_echo "$as_me:$LINENO: result: no" >&5 - $as_echo "no" >&6; } - fi - - - # Extract the first word of "map", so it can be a program name with args. - set dummy map; ac_word=$2 --{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 - $as_echo_n "checking for $ac_word... " >&6; } --if test "${ac_cv_path_MAP_PROG+set}" = set; then : -+if test "${ac_cv_path_MAP_PROG+set}" = set; then - $as_echo_n "(cached) " >&6 - else - case $MAP_PROG in -@@ -11740,14 +13012,14 @@ - do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. -- for ac_exec_ext in '' $ac_executable_extensions; do -+ 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_path_MAP_PROG="$as_dir/$ac_word$ac_exec_ext" -- $as_echo "$as_me:${as_lineno-$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 -+done - IFS=$as_save_IFS - - ;; -@@ -11755,21 +13027,23 @@ - fi - MAP_PROG=$ac_cv_path_MAP_PROG - if test -n "$MAP_PROG"; then -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAP_PROG" >&5 -+ { $as_echo "$as_me:$LINENO: result: $MAP_PROG" >&5 - $as_echo "$MAP_PROG" >&6; } - else -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -+ { $as_echo "$as_me:$LINENO: result: no" >&5 - $as_echo "no" >&6; } - fi - - - - # Check whether --enable-external was given. --if test "${enable_external+set}" = set; then : -+if test "${enable_external+set}" = set; then - enableval=$enable_external; case "${enableval}" in - yes) WANT_EXTERNAL=yes ;; - no) WANT_EXTERNAL=no ;; -- *) as_fn_error "bad value ${enableval} for --enable-external" "$LINENO" 5 ;; -+ *) { { $as_echo "$as_me:$LINENO: error: bad value ${enableval} for --enable-external" >&5 -+$as_echo "$as_me: error: bad value ${enableval} for --enable-external" >&2;} -+ { (exit 1); exit 1; }; } ;; - esac - else - WANT_EXTERNAL=yes -@@ -11822,7 +13096,7 @@ - - - # Check whether --with-html-dir was given. --if test "${with_html_dir+set}" = set; then : -+if test "${with_html_dir+set}" = set; then - withval=$with_html_dir; - fi - -@@ -11837,9 +13111,9 @@ - - # Extract the first word of "gtkdoc-mkdb", so it can be a program name with args. - set dummy gtkdoc-mkdb; ac_word=$2 --{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 - $as_echo_n "checking for $ac_word... " >&6; } --if test "${ac_cv_prog_GTKDOC+set}" = set; then : -+if test "${ac_cv_prog_GTKDOC+set}" = set; then - $as_echo_n "(cached) " >&6 - else - if test -n "$GTKDOC"; then -@@ -11850,14 +13124,14 @@ - do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. -- for ac_exec_ext in '' $ac_executable_extensions; do -+ 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_GTKDOC="true" -- $as_echo "$as_me:${as_lineno-$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 -+done - IFS=$as_save_IFS - - test -z "$ac_cv_prog_GTKDOC" && ac_cv_prog_GTKDOC="false" -@@ -11865,10 +13139,10 @@ - fi - GTKDOC=$ac_cv_prog_GTKDOC - if test -n "$GTKDOC"; then -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GTKDOC" >&5 -+ { $as_echo "$as_me:$LINENO: result: $GTKDOC" >&5 - $as_echo "$GTKDOC" >&6; } - else -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -+ { $as_echo "$as_me:$LINENO: result: no" >&5 - $as_echo "no" >&6; } - fi - -@@ -11877,23 +13151,23 @@ - gtk_doc_min_version=1.0 - if $GTKDOC ; then - gtk_doc_version=`gtkdoc-mkdb --version` -- { $as_echo "$as_me:${as_lineno-$LINENO}: checking gtk-doc version ($gtk_doc_version) >= $gtk_doc_min_version" >&5 -+ { $as_echo "$as_me:$LINENO: checking gtk-doc version ($gtk_doc_version) >= $gtk_doc_min_version" >&5 - $as_echo_n "checking gtk-doc version ($gtk_doc_version) >= $gtk_doc_min_version... " >&6; } - if perl <= "$gtk_doc_min_version") ? 0 : 1); - EOF -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -+ { $as_echo "$as_me:$LINENO: result: yes" >&5 - $as_echo "yes" >&6; } - else -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -+ { $as_echo "$as_me:$LINENO: result: no" >&5 - $as_echo "no" >&6; } - GTKDOC=false - fi - fi - - # Check whether --enable-gtk-doc was given. --if test "${enable_gtk_doc+set}" = set; then : -+if test "${enable_gtk_doc+set}" = set; then - enableval=$enable_gtk_doc; enable_gtk_doc="$enableval" - else - enable_gtk_doc=auto -@@ -11918,105 +13192,109 @@ - - - --{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for /dev/random" >&5 -+{ $as_echo "$as_me:$LINENO: checking for /dev/random" >&5 - $as_echo_n "checking for /dev/random... " >&6; } --if test "${ac_cv_file__dev_random+set}" = set; then : -+if test "${ac_cv_file__dev_random+set}" = set; then - $as_echo_n "(cached) " >&6 - else - test "$cross_compiling" = yes && -- as_fn_error "cannot check for file existence when cross compiling" "$LINENO" 5 -+ { { $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 "/dev/random"; then - ac_cv_file__dev_random=yes - else - ac_cv_file__dev_random=no - fi - fi --{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_file__dev_random" >&5 -+{ $as_echo "$as_me:$LINENO: result: $ac_cv_file__dev_random" >&5 - $as_echo "$ac_cv_file__dev_random" >&6; } --if test "x$ac_cv_file__dev_random" = x""yes; then : -+if test "x$ac_cv_file__dev_random" = x""yes; then - - cat >>confdefs.h <<_ACEOF - #define HAVE__DEV_RANDOM 1 - _ACEOF - -+ - fi --{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for /dev/urandom" >&5 -+{ $as_echo "$as_me:$LINENO: checking for /dev/urandom" >&5 - $as_echo_n "checking for /dev/urandom... " >&6; } --if test "${ac_cv_file__dev_urandom+set}" = set; then : -+if test "${ac_cv_file__dev_urandom+set}" = set; then - $as_echo_n "(cached) " >&6 - else - test "$cross_compiling" = yes && -- as_fn_error "cannot check for file existence when cross compiling" "$LINENO" 5 -+ { { $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 "/dev/urandom"; then - ac_cv_file__dev_urandom=yes - else - ac_cv_file__dev_urandom=no - fi - fi --{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_file__dev_urandom" >&5 -+{ $as_echo "$as_me:$LINENO: result: $ac_cv_file__dev_urandom" >&5 - $as_echo "$ac_cv_file__dev_urandom" >&6; } --if test "x$ac_cv_file__dev_urandom" = x""yes; then : -+if test "x$ac_cv_file__dev_urandom" = x""yes; then - - cat >>confdefs.h <<_ACEOF - #define HAVE__DEV_URANDOM 1 - _ACEOF - -+ - fi --{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for /dev/srandom" >&5 -+{ $as_echo "$as_me:$LINENO: checking for /dev/srandom" >&5 - $as_echo_n "checking for /dev/srandom... " >&6; } --if test "${ac_cv_file__dev_srandom+set}" = set; then : -+if test "${ac_cv_file__dev_srandom+set}" = set; then - $as_echo_n "(cached) " >&6 - else - test "$cross_compiling" = yes && -- as_fn_error "cannot check for file existence when cross compiling" "$LINENO" 5 -+ { { $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 "/dev/srandom"; then - ac_cv_file__dev_srandom=yes - else - ac_cv_file__dev_srandom=no - fi - fi --{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_file__dev_srandom" >&5 -+{ $as_echo "$as_me:$LINENO: result: $ac_cv_file__dev_srandom" >&5 - $as_echo "$ac_cv_file__dev_srandom" >&6; } --if test "x$ac_cv_file__dev_srandom" = x""yes; then : -+if test "x$ac_cv_file__dev_srandom" = x""yes; then - - cat >>confdefs.h <<_ACEOF - #define HAVE__DEV_SRANDOM 1 - _ACEOF - -+ - fi --{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for /dev/arandom" >&5 -+{ $as_echo "$as_me:$LINENO: checking for /dev/arandom" >&5 - $as_echo_n "checking for /dev/arandom... " >&6; } --if test "${ac_cv_file__dev_arandom+set}" = set; then : -+if test "${ac_cv_file__dev_arandom+set}" = set; then - $as_echo_n "(cached) " >&6 - else - test "$cross_compiling" = yes && -- as_fn_error "cannot check for file existence when cross compiling" "$LINENO" 5 -+ { { $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 "/dev/arandom"; then - ac_cv_file__dev_arandom=yes - else - ac_cv_file__dev_arandom=no - fi - fi --{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_file__dev_arandom" >&5 -+{ $as_echo "$as_me:$LINENO: result: $ac_cv_file__dev_arandom" >&5 - $as_echo "$ac_cv_file__dev_arandom" >&6; } --if test "x$ac_cv_file__dev_arandom" = x""yes; then : -+if test "x$ac_cv_file__dev_arandom" = x""yes; then - - cat >>confdefs.h <<_ACEOF - #define HAVE__DEV_ARANDOM 1 - _ACEOF - --fi -- - --if test "$prefix" = "NONE"; then -- LDFLAGS="$LDFLAGS -L$ac_default_prefix/lib" -- CPPFLAGS="$CPPFLAGS -I$ac_default_prefix/include" --else -- LDFLAGS="$LDFLAGS -L$prefix/lib" -- CPPFLAGS="$CPPFLAGS -I$prefix/include" - fi - - -+ - case "$target" in - NONE) yeti_libm_target="$host" ;; - *) yeti_libm_target="$target" ;; -@@ -12028,14 +13306,18 @@ - # These system don't have libm - ;; - *-ncr-sysv4.3*) -- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _mwvalidcheckl in -lmw" >&5 -+ { $as_echo "$as_me:$LINENO: checking for _mwvalidcheckl in -lmw" >&5 - $as_echo_n "checking for _mwvalidcheckl in -lmw... " >&6; } --if test "${ac_cv_lib_mw__mwvalidcheckl+set}" = set; then : -+if test "${ac_cv_lib_mw__mwvalidcheckl+set}" = set; then - $as_echo_n "(cached) " >&6 - else - ac_check_lib_save_LIBS=$LIBS - LIBS="-lmw $LIBS" --cat confdefs.h - <<_ACEOF >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. */ - - /* Override any GCC internal prototype to avoid an error. -@@ -12053,29 +13335,58 @@ - return 0; - } - _ACEOF --if ac_fn_c_try_link "$LINENO"; then : -+rm -f conftest.$ac_objext conftest$ac_exeext -+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 -+ $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_mw__mwvalidcheckl=yes - else -- ac_cv_lib_mw__mwvalidcheckl=no -+ $as_echo "$as_me: failed program was:" >&5 -+sed 's/^/| /' conftest.$ac_ext >&5 -+ -+ ac_cv_lib_mw__mwvalidcheckl=no - fi --rm -f core conftest.err conftest.$ac_objext \ -- conftest$ac_exeext conftest.$ac_ext -+ -+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 --{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_mw__mwvalidcheckl" >&5 -+{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_mw__mwvalidcheckl" >&5 - $as_echo "$ac_cv_lib_mw__mwvalidcheckl" >&6; } --if test "x$ac_cv_lib_mw__mwvalidcheckl" = x""yes; then : -+if test "x$ac_cv_lib_mw__mwvalidcheckl" = x""yes; then - LIBM="-lmw" - fi - -- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sqrt in -lm" >&5 -+ { $as_echo "$as_me:$LINENO: checking for sqrt in -lm" >&5 - $as_echo_n "checking for sqrt in -lm... " >&6; } --if test "${ac_cv_lib_m_sqrt+set}" = set; then : -+if test "${ac_cv_lib_m_sqrt+set}" = set; then - $as_echo_n "(cached) " >&6 - else - ac_check_lib_save_LIBS=$LIBS - LIBS="-lm $LIBS" --cat confdefs.h - <<_ACEOF >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. */ - - /* Override any GCC internal prototype to avoid an error. -@@ -12093,31 +13404,60 @@ - return 0; - } - _ACEOF --if ac_fn_c_try_link "$LINENO"; then : -+rm -f conftest.$ac_objext conftest$ac_exeext -+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 -+ $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_m_sqrt=yes - else -- ac_cv_lib_m_sqrt=no -+ $as_echo "$as_me: failed program was:" >&5 -+sed 's/^/| /' conftest.$ac_ext >&5 -+ -+ ac_cv_lib_m_sqrt=no - fi --rm -f core conftest.err conftest.$ac_objext \ -- conftest$ac_exeext conftest.$ac_ext -+ -+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 --{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_m_sqrt" >&5 -+{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_m_sqrt" >&5 - $as_echo "$ac_cv_lib_m_sqrt" >&6; } --if test "x$ac_cv_lib_m_sqrt" = x""yes; then : -+if test "x$ac_cv_lib_m_sqrt" = x""yes; then - LIBM="$LIBM -lm" - fi - - ;; - *) -- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sqrt in -lm" >&5 -+ { $as_echo "$as_me:$LINENO: checking for sqrt in -lm" >&5 - $as_echo_n "checking for sqrt in -lm... " >&6; } --if test "${ac_cv_lib_m_sqrt+set}" = set; then : -+if test "${ac_cv_lib_m_sqrt+set}" = set; then - $as_echo_n "(cached) " >&6 - else - ac_check_lib_save_LIBS=$LIBS - LIBS="-lm $LIBS" --cat confdefs.h - <<_ACEOF >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. */ - - /* Override any GCC internal prototype to avoid an error. -@@ -12135,18 +13475,43 @@ - return 0; - } - _ACEOF --if ac_fn_c_try_link "$LINENO"; then : -+rm -f conftest.$ac_objext conftest$ac_exeext -+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 -+ $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_m_sqrt=yes - else -- ac_cv_lib_m_sqrt=no -+ $as_echo "$as_me: failed program was:" >&5 -+sed 's/^/| /' conftest.$ac_ext >&5 -+ -+ ac_cv_lib_m_sqrt=no - fi --rm -f core conftest.err conftest.$ac_objext \ -- conftest$ac_exeext conftest.$ac_ext -+ -+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 --{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_m_sqrt" >&5 -+{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_m_sqrt" >&5 - $as_echo "$ac_cv_lib_m_sqrt" >&6; } --if test "x$ac_cv_lib_m_sqrt" = x""yes; then : -+if test "x$ac_cv_lib_m_sqrt" = x""yes; then - LIBM="-lm" - fi - -@@ -12155,12 +13520,16 @@ - - LIBS="$LIBS $LIBM" - --{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 -+{ $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 : -+if test "${ac_cv_header_stdc+set}" = set; then - $as_echo_n "(cached) " >&6 - else -- cat confdefs.h - <<_ACEOF >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. */ - #include - #include -@@ -12175,23 +13544,48 @@ - return 0; - } - _ACEOF --if ac_fn_c_try_compile "$LINENO"; then : -+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_header_stdc=yes - else -- ac_cv_header_stdc=no -+ $as_echo "$as_me: failed program was:" >&5 -+sed 's/^/| /' conftest.$ac_ext >&5 -+ -+ ac_cv_header_stdc=no - fi -+ - 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. -- cat confdefs.h - <<_ACEOF >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. */ - #include - - _ACEOF - if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | -- $EGREP "memchr" >/dev/null 2>&1; then : -- -+ $EGREP "memchr" >/dev/null 2>&1; then -+ : - else - ac_cv_header_stdc=no - fi -@@ -12201,14 +13595,18 @@ - - if test $ac_cv_header_stdc = yes; then - # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. -- cat confdefs.h - <<_ACEOF >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. */ - #include - - _ACEOF - if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | -- $EGREP "free" >/dev/null 2>&1; then : -- -+ $EGREP "free" >/dev/null 2>&1; then -+ : - else - ac_cv_header_stdc=no - fi -@@ -12218,10 +13616,14 @@ - - if test $ac_cv_header_stdc = yes; then - # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. -- if test "$cross_compiling" = yes; then : -+ if test "$cross_compiling" = yes; then - : - else -- cat confdefs.h - <<_ACEOF >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. */ - #include - #include -@@ -12248,31 +13650,64 @@ - return 0; - } - _ACEOF --if ac_fn_c_try_run "$LINENO"; then : -- -+rm -f conftest$ac_exeext -+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=$? -+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); } && { ac_try='./conftest$ac_exeext' -+ { (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=$? -+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); }; }; then -+ : - else -- ac_cv_header_stdc=no -+ $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 core.conftest.* gmon.out bb.out conftest$ac_exeext \ -- conftest.$ac_objext conftest.beam 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 --{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 -+{ $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 - --$as_echo "#define STDC_HEADERS 1" >>confdefs.h -+cat >>confdefs.h <<\_ACEOF -+#define STDC_HEADERS 1 -+_ACEOF - - fi - --{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sys/wait.h that is POSIX.1 compatible" >&5 -+{ $as_echo "$as_me:$LINENO: checking for sys/wait.h that is POSIX.1 compatible" >&5 - $as_echo_n "checking for sys/wait.h that is POSIX.1 compatible... " >&6; } --if test "${ac_cv_header_sys_wait_h+set}" = set; then : -+if test "${ac_cv_header_sys_wait_h+set}" = set; then - $as_echo_n "(cached) " >&6 - else -- cat confdefs.h - <<_ACEOF >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. */ - #include - #include -@@ -12293,27 +13728,54 @@ - return 0; - } - _ACEOF --if ac_fn_c_try_compile "$LINENO"; then : -+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_header_sys_wait_h=yes - else -- ac_cv_header_sys_wait_h=no -+ $as_echo "$as_me: failed program was:" >&5 -+sed 's/^/| /' conftest.$ac_ext >&5 -+ -+ ac_cv_header_sys_wait_h=no - fi -+ - rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi --{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_sys_wait_h" >&5 -+{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_sys_wait_h" >&5 - $as_echo "$ac_cv_header_sys_wait_h" >&6; } - if test $ac_cv_header_sys_wait_h = yes; then - --$as_echo "#define HAVE_SYS_WAIT_H 1" >>confdefs.h -+cat >>confdefs.h <<\_ACEOF -+#define HAVE_SYS_WAIT_H 1 -+_ACEOF - - fi - --{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether time.h and sys/time.h may both be included" >&5 -+{ $as_echo "$as_me:$LINENO: checking whether time.h and sys/time.h may both be included" >&5 - $as_echo_n "checking whether time.h and sys/time.h may both be included... " >&6; } --if test "${ac_cv_header_time+set}" = set; then : -+if test "${ac_cv_header_time+set}" = set; then - $as_echo_n "(cached) " >&6 - else -- cat confdefs.h - <<_ACEOF >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. */ - #include - #include -@@ -12328,27 +13790,54 @@ - return 0; - } - _ACEOF --if ac_fn_c_try_compile "$LINENO"; then : -+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_header_time=yes - else -- ac_cv_header_time=no -+ $as_echo "$as_me: failed program was:" >&5 -+sed 's/^/| /' conftest.$ac_ext >&5 -+ -+ ac_cv_header_time=no - fi -+ - rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi --{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_time" >&5 -+{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_time" >&5 - $as_echo "$ac_cv_header_time" >&6; } - if test $ac_cv_header_time = yes; then - --$as_echo "#define TIME_WITH_SYS_TIME 1" >>confdefs.h -+cat >>confdefs.h <<\_ACEOF -+#define TIME_WITH_SYS_TIME 1 -+_ACEOF - - fi - --{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stat file-mode macros are broken" >&5 -+{ $as_echo "$as_me:$LINENO: checking whether stat file-mode macros are broken" >&5 - $as_echo_n "checking whether stat file-mode macros are broken... " >&6; } --if test "${ac_cv_header_stat_broken+set}" = set; then : -+if test "${ac_cv_header_stat_broken+set}" = set; then - $as_echo_n "(cached) " >&6 - else -- cat confdefs.h - <<_ACEOF >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. */ - #include - #include -@@ -12370,27 +13859,54 @@ - #endif - - _ACEOF --if ac_fn_c_try_compile "$LINENO"; then : -+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_header_stat_broken=no - else -- ac_cv_header_stat_broken=yes -+ $as_echo "$as_me: failed program was:" >&5 -+sed 's/^/| /' conftest.$ac_ext >&5 -+ -+ ac_cv_header_stat_broken=yes - fi -+ - rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi --{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stat_broken" >&5 -+{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_stat_broken" >&5 - $as_echo "$ac_cv_header_stat_broken" >&6; } - if test $ac_cv_header_stat_broken = yes; then - --$as_echo "#define STAT_MACROS_BROKEN 1" >>confdefs.h -+cat >>confdefs.h <<\_ACEOF -+#define STAT_MACROS_BROKEN 1 -+_ACEOF - - fi - --{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdbool.h that conforms to C99" >&5 -+{ $as_echo "$as_me:$LINENO: checking for stdbool.h that conforms to C99" >&5 - $as_echo_n "checking for stdbool.h that conforms to C99... " >&6; } --if test "${ac_cv_header_stdbool_h+set}" = set; then : -+if test "${ac_cv_header_stdbool_h+set}" = set; then - $as_echo_n "(cached) " >&6 - else -- cat confdefs.h - <<_ACEOF >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. */ - - #include -@@ -12470,17 +13986,131 @@ - return 0; - } - _ACEOF --if ac_fn_c_try_compile "$LINENO"; then : -+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_header_stdbool_h=yes - else -- ac_cv_header_stdbool_h=no -+ $as_echo "$as_me: failed program was:" >&5 -+sed 's/^/| /' conftest.$ac_ext >&5 -+ -+ ac_cv_header_stdbool_h=no - fi -+ - rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi --{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdbool_h" >&5 -+{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_stdbool_h" >&5 - $as_echo "$ac_cv_header_stdbool_h" >&6; } --ac_fn_c_check_type "$LINENO" "_Bool" "ac_cv_type__Bool" "$ac_includes_default" --if test "x$ac_cv_type__Bool" = x""yes; then : -+{ $as_echo "$as_me:$LINENO: checking for _Bool" >&5 -+$as_echo_n "checking for _Bool... " >&6; } -+if test "${ac_cv_type__Bool+set}" = set; then -+ $as_echo_n "(cached) " >&6 -+else -+ ac_cv_type__Bool=no -+cat >conftest.$ac_ext <<_ACEOF -+/* confdefs.h. */ -+_ACEOF -+cat confdefs.h >>conftest.$ac_ext -+cat >>conftest.$ac_ext <<_ACEOF -+/* end confdefs.h. */ -+$ac_includes_default -+int -+main () -+{ -+if (sizeof (_Bool)) -+ return 0; -+ ; -+ 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 -+ cat >conftest.$ac_ext <<_ACEOF -+/* confdefs.h. */ -+_ACEOF -+cat confdefs.h >>conftest.$ac_ext -+cat >>conftest.$ac_ext <<_ACEOF -+/* end confdefs.h. */ -+$ac_includes_default -+int -+main () -+{ -+if (sizeof ((_Bool))) -+ return 0; -+ ; -+ 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 -+ : -+else -+ $as_echo "$as_me: failed program was:" >&5 -+sed 's/^/| /' conftest.$ac_ext >&5 -+ -+ ac_cv_type__Bool=yes -+fi -+ -+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -+else -+ $as_echo "$as_me: failed program was:" >&5 -+sed 's/^/| /' conftest.$ac_ext >&5 -+ -+ -+fi -+ -+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -+fi -+{ $as_echo "$as_me:$LINENO: result: $ac_cv_type__Bool" >&5 -+$as_echo "$ac_cv_type__Bool" >&6; } -+if test "x$ac_cv_type__Bool" = x""yes; then - - cat >>confdefs.h <<_ACEOF - #define HAVE__BOOL 1 -@@ -12488,35 +14118,189 @@ - - - fi -- --if test $ac_cv_header_stdbool_h = yes; then -- --$as_echo "#define HAVE_STDBOOL_H 1" >>confdefs.h -+ -+if test $ac_cv_header_stdbool_h = yes; then -+ -+cat >>confdefs.h <<\_ACEOF -+#define HAVE_STDBOOL_H 1 -+_ACEOF -+ -+fi -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+for ac_header in \ -+ errno.h \ -+ fcntl.h \ -+ getopt.h \ -+ langinfo.h \ -+ limits.h \ -+ locale.h \ -+ memory.h \ -+ string.h \ -+ strings.h \ -+ sys/stat.h \ -+ sys/types.h \ -+ sys/wait.h \ -+ sys/time.h \ -+ time.h \ -+ unistd.h \ -+ wordexp.h -+do -+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? -+{ $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 -+cat confdefs.h >>conftest.$ac_ext -+cat >>conftest.$ac_ext <<_ACEOF -+/* end confdefs.h. */ -+$ac_includes_default -+#include <$ac_header> -+_ACEOF -+rm -f conftest.$ac_objext -+if { (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_header_compiler=yes -+else -+ $as_echo "$as_me: failed program was:" >&5 -+sed 's/^/| /' conftest.$ac_ext >&5 -+ -+ ac_header_compiler=no -+fi -+ -+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? -+{ $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 -+cat confdefs.h >>conftest.$ac_ext -+cat >>conftest.$ac_ext <<_ACEOF -+/* end confdefs.h. */ -+#include <$ac_header> -+_ACEOF -+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 -+ $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 -+ $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 -+{ $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: ) -+ { $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:* ) -+ { $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 Michal Cihar ## -+## ---------------------------------------------- ## -+_ASBOX -+ ) | sed "s/^/$as_me: WARNING: /" >&2 -+ ;; -+esac -+{ $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 -+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 -- --for ac_header in \ -- errno.h \ -- fcntl.h \ -- getopt.h \ -- langinfo.h \ -- limits.h \ -- locale.h \ -- memory.h \ -- string.h \ -- strings.h \ -- sys/stat.h \ -- sys/types.h \ -- sys/wait.h \ -- sys/time.h \ -- time.h \ -- unistd.h \ -- wordexp.h --do : -- as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` --ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" --eval as_val=\$$as_ac_Header -- if test "x$as_val" = x""yes; then : -+as_val=`eval 'as_val=${'$as_ac_Header'} -+ $as_echo "$as_val"'` -+ if test "x$as_val" = x""yes; then - cat >>confdefs.h <<_ACEOF - #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 - _ACEOF -@@ -12526,12 +14310,16 @@ - done - - --{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for an ANSI C-conforming const" >&5 -+{ $as_echo "$as_me:$LINENO: checking for an ANSI C-conforming const" >&5 - $as_echo_n "checking for an ANSI C-conforming const... " >&6; } --if test "${ac_cv_c_const+set}" = set; then : -+if test "${ac_cv_c_const+set}" = set; then - $as_echo_n "(cached) " >&6 - else -- cat confdefs.h - <<_ACEOF >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. */ - - int -@@ -12591,24 +14379,140 @@ - return 0; - } - _ACEOF --if ac_fn_c_try_compile "$LINENO"; then : -+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_c_const=yes - else -- ac_cv_c_const=no -+ $as_echo "$as_me: failed program was:" >&5 -+sed 's/^/| /' conftest.$ac_ext >&5 -+ -+ ac_cv_c_const=no - fi -+ - rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi --{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_const" >&5 -+{ $as_echo "$as_me:$LINENO: result: $ac_cv_c_const" >&5 - $as_echo "$ac_cv_c_const" >&6; } - if test $ac_cv_c_const = no; then - --$as_echo "#define const /**/" >>confdefs.h -+cat >>confdefs.h <<\_ACEOF -+#define const /**/ -+_ACEOF -+ -+fi -+ -+{ $as_echo "$as_me:$LINENO: checking for size_t" >&5 -+$as_echo_n "checking for size_t... " >&6; } -+if test "${ac_cv_type_size_t+set}" = set; then -+ $as_echo_n "(cached) " >&6 -+else -+ ac_cv_type_size_t=no -+cat >conftest.$ac_ext <<_ACEOF -+/* confdefs.h. */ -+_ACEOF -+cat confdefs.h >>conftest.$ac_ext -+cat >>conftest.$ac_ext <<_ACEOF -+/* end confdefs.h. */ -+$ac_includes_default -+int -+main () -+{ -+if (sizeof (size_t)) -+ return 0; -+ ; -+ 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 -+ cat >conftest.$ac_ext <<_ACEOF -+/* confdefs.h. */ -+_ACEOF -+cat confdefs.h >>conftest.$ac_ext -+cat >>conftest.$ac_ext <<_ACEOF -+/* end confdefs.h. */ -+$ac_includes_default -+int -+main () -+{ -+if (sizeof ((size_t))) -+ return 0; -+ ; -+ 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 -+ : -+else -+ $as_echo "$as_me: failed program was:" >&5 -+sed 's/^/| /' conftest.$ac_ext >&5 - -+ ac_cv_type_size_t=yes - fi - --ac_fn_c_check_type "$LINENO" "size_t" "ac_cv_type_size_t" "$ac_includes_default" --if test "x$ac_cv_type_size_t" = x""yes; then : -+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -+else -+ $as_echo "$as_me: failed program was:" >&5 -+sed 's/^/| /' conftest.$ac_ext >&5 -+ - -+fi -+ -+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -+fi -+{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_size_t" >&5 -+$as_echo "$ac_cv_type_size_t" >&6; } -+if test "x$ac_cv_type_size_t" = x""yes; then -+ : - else - - cat >>confdefs.h <<_ACEOF -@@ -12617,9 +14521,102 @@ - - fi - --ac_fn_c_check_type "$LINENO" "mode_t" "ac_cv_type_mode_t" "$ac_includes_default" --if test "x$ac_cv_type_mode_t" = x""yes; then : -+{ $as_echo "$as_me:$LINENO: checking for mode_t" >&5 -+$as_echo_n "checking for mode_t... " >&6; } -+if test "${ac_cv_type_mode_t+set}" = set; then -+ $as_echo_n "(cached) " >&6 -+else -+ ac_cv_type_mode_t=no -+cat >conftest.$ac_ext <<_ACEOF -+/* confdefs.h. */ -+_ACEOF -+cat confdefs.h >>conftest.$ac_ext -+cat >>conftest.$ac_ext <<_ACEOF -+/* end confdefs.h. */ -+$ac_includes_default -+int -+main () -+{ -+if (sizeof (mode_t)) -+ return 0; -+ ; -+ 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 -+ cat >conftest.$ac_ext <<_ACEOF -+/* confdefs.h. */ -+_ACEOF -+cat confdefs.h >>conftest.$ac_ext -+cat >>conftest.$ac_ext <<_ACEOF -+/* end confdefs.h. */ -+$ac_includes_default -+int -+main () -+{ -+if (sizeof ((mode_t))) -+ return 0; -+ ; -+ 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 -+ : -+else -+ $as_echo "$as_me: failed program was:" >&5 -+sed 's/^/| /' conftest.$ac_ext >&5 -+ -+ ac_cv_type_mode_t=yes -+fi -+ -+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -+else -+ $as_echo "$as_me: failed program was:" >&5 -+sed 's/^/| /' conftest.$ac_ext >&5 -+ -+ -+fi - -+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -+fi -+{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_mode_t" >&5 -+$as_echo "$ac_cv_type_mode_t" >&6; } -+if test "x$ac_cv_type_mode_t" = x""yes; then -+ : - else - - cat >>confdefs.h <<_ACEOF -@@ -12628,20 +14625,206 @@ - - fi - --ac_fn_c_check_type "$LINENO" "off_t" "ac_cv_type_off_t" "$ac_includes_default" --if test "x$ac_cv_type_off_t" = x""yes; then : -- -+{ $as_echo "$as_me:$LINENO: checking for off_t" >&5 -+$as_echo_n "checking for off_t... " >&6; } -+if test "${ac_cv_type_off_t+set}" = set; then -+ $as_echo_n "(cached) " >&6 -+else -+ ac_cv_type_off_t=no -+cat >conftest.$ac_ext <<_ACEOF -+/* confdefs.h. */ -+_ACEOF -+cat confdefs.h >>conftest.$ac_ext -+cat >>conftest.$ac_ext <<_ACEOF -+/* end confdefs.h. */ -+$ac_includes_default -+int -+main () -+{ -+if (sizeof (off_t)) -+ return 0; -+ ; -+ 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 -+ cat >conftest.$ac_ext <<_ACEOF -+/* confdefs.h. */ -+_ACEOF -+cat confdefs.h >>conftest.$ac_ext -+cat >>conftest.$ac_ext <<_ACEOF -+/* end confdefs.h. */ -+$ac_includes_default -+int -+main () -+{ -+if (sizeof ((off_t))) -+ return 0; -+ ; -+ 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 -+ : -+else -+ $as_echo "$as_me: failed program was:" >&5 -+sed 's/^/| /' conftest.$ac_ext >&5 -+ -+ ac_cv_type_off_t=yes -+fi -+ -+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -+else -+ $as_echo "$as_me: failed program was:" >&5 -+sed 's/^/| /' conftest.$ac_ext >&5 -+ -+ -+fi -+ -+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -+fi -+{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_off_t" >&5 -+$as_echo "$ac_cv_type_off_t" >&6; } -+if test "x$ac_cv_type_off_t" = x""yes; then -+ : -+else -+ -+cat >>confdefs.h <<_ACEOF -+#define off_t long int -+_ACEOF -+ -+fi -+ -+{ $as_echo "$as_me:$LINENO: checking for pid_t" >&5 -+$as_echo_n "checking for pid_t... " >&6; } -+if test "${ac_cv_type_pid_t+set}" = set; then -+ $as_echo_n "(cached) " >&6 -+else -+ ac_cv_type_pid_t=no -+cat >conftest.$ac_ext <<_ACEOF -+/* confdefs.h. */ -+_ACEOF -+cat confdefs.h >>conftest.$ac_ext -+cat >>conftest.$ac_ext <<_ACEOF -+/* end confdefs.h. */ -+$ac_includes_default -+int -+main () -+{ -+if (sizeof (pid_t)) -+ return 0; -+ ; -+ 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 -+ cat >conftest.$ac_ext <<_ACEOF -+/* confdefs.h. */ -+_ACEOF -+cat confdefs.h >>conftest.$ac_ext -+cat >>conftest.$ac_ext <<_ACEOF -+/* end confdefs.h. */ -+$ac_includes_default -+int -+main () -+{ -+if (sizeof ((pid_t))) -+ return 0; -+ ; -+ 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 -+ : -+else -+ $as_echo "$as_me: failed program was:" >&5 -+sed 's/^/| /' conftest.$ac_ext >&5 -+ -+ ac_cv_type_pid_t=yes -+fi -+ -+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - else -+ $as_echo "$as_me: failed program was:" >&5 -+sed 's/^/| /' conftest.$ac_ext >&5 - --cat >>confdefs.h <<_ACEOF --#define off_t long int --_ACEOF - - fi - --ac_fn_c_check_type "$LINENO" "pid_t" "ac_cv_type_pid_t" "$ac_includes_default" --if test "x$ac_cv_type_pid_t" = x""yes; then : -- -+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -+fi -+{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_pid_t" >&5 -+$as_echo "$ac_cv_type_pid_t" >&6; } -+if test "x$ac_cv_type_pid_t" = x""yes; then -+ : - else - - cat >>confdefs.h <<_ACEOF -@@ -12650,18 +14833,22 @@ - - fi - --{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for uid_t in sys/types.h" >&5 -+{ $as_echo "$as_me:$LINENO: checking for uid_t in sys/types.h" >&5 - $as_echo_n "checking for uid_t in sys/types.h... " >&6; } --if test "${ac_cv_type_uid_t+set}" = set; then : -+if test "${ac_cv_type_uid_t+set}" = set; then - $as_echo_n "(cached) " >&6 - else -- cat confdefs.h - <<_ACEOF >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. */ - #include - - _ACEOF - if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | -- $EGREP "uid_t" >/dev/null 2>&1; then : -+ $EGREP "uid_t" >/dev/null 2>&1; then - ac_cv_type_uid_t=yes - else - ac_cv_type_uid_t=no -@@ -12669,20 +14856,117 @@ - rm -f conftest* - - fi --{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_uid_t" >&5 -+{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_uid_t" >&5 - $as_echo "$ac_cv_type_uid_t" >&6; } - if test $ac_cv_type_uid_t = no; then - --$as_echo "#define uid_t int" >>confdefs.h -+cat >>confdefs.h <<\_ACEOF -+#define uid_t int -+_ACEOF -+ -+ -+cat >>confdefs.h <<\_ACEOF -+#define gid_t int -+_ACEOF - -+fi - --$as_echo "#define gid_t int" >>confdefs.h -+{ $as_echo "$as_me:$LINENO: checking for ssize_t" >&5 -+$as_echo_n "checking for ssize_t... " >&6; } -+if test "${ac_cv_type_ssize_t+set}" = set; then -+ $as_echo_n "(cached) " >&6 -+else -+ ac_cv_type_ssize_t=no -+cat >conftest.$ac_ext <<_ACEOF -+/* confdefs.h. */ -+_ACEOF -+cat confdefs.h >>conftest.$ac_ext -+cat >>conftest.$ac_ext <<_ACEOF -+/* end confdefs.h. */ -+$ac_includes_default -+int -+main () -+{ -+if (sizeof (ssize_t)) -+ return 0; -+ ; -+ 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 -+ cat >conftest.$ac_ext <<_ACEOF -+/* confdefs.h. */ -+_ACEOF -+cat confdefs.h >>conftest.$ac_ext -+cat >>conftest.$ac_ext <<_ACEOF -+/* end confdefs.h. */ -+$ac_includes_default -+int -+main () -+{ -+if (sizeof ((ssize_t))) -+ return 0; -+ ; -+ 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 -+ : -+else -+ $as_echo "$as_me: failed program was:" >&5 -+sed 's/^/| /' conftest.$ac_ext >&5 - -+ ac_cv_type_ssize_t=yes - fi - --ac_fn_c_check_type "$LINENO" "ssize_t" "ac_cv_type_ssize_t" "$ac_includes_default" --if test "x$ac_cv_type_ssize_t" = x""yes; then : -+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -+else -+ $as_echo "$as_me: failed program was:" >&5 -+sed 's/^/| /' conftest.$ac_ext >&5 -+ -+ -+fi - -+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -+fi -+{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_ssize_t" >&5 -+$as_echo "$ac_cv_type_ssize_t" >&6; } -+if test "x$ac_cv_type_ssize_t" = x""yes; then -+ : - else - - cat >>confdefs.h <<_ACEOF -@@ -12692,26 +14976,88 @@ - fi - - # FIXME: This is crude. It seems to work on Linux, though. --ac_fn_c_check_decl "$LINENO" "LC_MESSAGES" "ac_cv_have_decl_LC_MESSAGES" "#include --" --if test "x$ac_cv_have_decl_LC_MESSAGES" = x""yes; then : -- ac_have_decl=1 -+{ $as_echo "$as_me:$LINENO: checking whether LC_MESSAGES is declared" >&5 -+$as_echo_n "checking whether LC_MESSAGES is declared... " >&6; } -+if test "${ac_cv_have_decl_LC_MESSAGES+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 -+ -+int -+main () -+{ -+#ifndef LC_MESSAGES -+ (void) LC_MESSAGES; -+#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_LC_MESSAGES=yes - else -- ac_have_decl=0 -+ $as_echo "$as_me: failed program was:" >&5 -+sed 's/^/| /' conftest.$ac_ext >&5 -+ -+ ac_cv_have_decl_LC_MESSAGES=no - fi - -+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -+fi -+{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_LC_MESSAGES" >&5 -+$as_echo "$ac_cv_have_decl_LC_MESSAGES" >&6; } -+if test "x$ac_cv_have_decl_LC_MESSAGES" = x""yes; then -+ - cat >>confdefs.h <<_ACEOF --#define HAVE_DECL_LC_MESSAGES $ac_have_decl -+#define HAVE_DECL_LC_MESSAGES 1 -+_ACEOF -+ -+ -+else -+ cat >>confdefs.h <<_ACEOF -+#define HAVE_DECL_LC_MESSAGES 0 - _ACEOF - - -+fi -+ -+ -+ - --{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for program_invocation_short_name" >&5 -+{ $as_echo "$as_me:$LINENO: checking for program_invocation_short_name" >&5 - $as_echo_n "checking for program_invocation_short_name... " >&6; } --if test "${yeti_cv_lib_c_program_invocation_short_name+set}" = set; then : -+if test "${yeti_cv_lib_c_program_invocation_short_name+set}" = set; then - $as_echo_n "(cached) " >&6 - else -- cat confdefs.h - <<_ACEOF >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. */ - #include - int -@@ -12722,40 +15068,295 @@ - return 0; - } - _ACEOF --if ac_fn_c_try_link "$LINENO"; then : -+rm -f conftest.$ac_objext conftest$ac_exeext -+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 -+ $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 - yeti_cv_lib_c_program_invocation_short_name=yes - else -- yeti_cv_lib_c_program_invocation_short_name=no -+ $as_echo "$as_me: failed program was:" >&5 -+sed 's/^/| /' conftest.$ac_ext >&5 -+ -+ yeti_cv_lib_c_program_invocation_short_name=no - fi --rm -f core conftest.err conftest.$ac_objext \ -- conftest$ac_exeext conftest.$ac_ext -+ -+rm -rf conftest.dSYM -+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ -+ conftest$ac_exeext conftest.$ac_ext - fi --{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $yeti_cv_lib_c_program_invocation_short_name" >&5 -+{ $as_echo "$as_me:$LINENO: result: $yeti_cv_lib_c_program_invocation_short_name" >&5 - $as_echo "$yeti_cv_lib_c_program_invocation_short_name" >&6; } - if test "$yeti_cv_lib_c_program_invocation_short_name" = yes; then - --$as_echo "#define HAVE_PROGRAM_INVOCATION_SHORT_NAME 1" >>confdefs.h -+cat >>confdefs.h <<\_ACEOF -+#define HAVE_PROGRAM_INVOCATION_SHORT_NAME 1 -+_ACEOF - - fi - -+ - for ac_header in vfork.h --do : -- ac_fn_c_check_header_mongrel "$LINENO" "vfork.h" "ac_cv_header_vfork_h" "$ac_includes_default" --if test "x$ac_cv_header_vfork_h" = x""yes; then : -+do -+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? -+{ $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 -+cat confdefs.h >>conftest.$ac_ext -+cat >>conftest.$ac_ext <<_ACEOF -+/* end confdefs.h. */ -+$ac_includes_default -+#include <$ac_header> -+_ACEOF -+rm -f conftest.$ac_objext -+if { (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_header_compiler=yes -+else -+ $as_echo "$as_me: failed program was:" >&5 -+sed 's/^/| /' conftest.$ac_ext >&5 -+ -+ ac_header_compiler=no -+fi -+ -+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? -+{ $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 -+cat confdefs.h >>conftest.$ac_ext -+cat >>conftest.$ac_ext <<_ACEOF -+/* end confdefs.h. */ -+#include <$ac_header> -+_ACEOF -+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 -+ $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 -+ $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 -+{ $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: ) -+ { $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:* ) -+ { $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 Michal Cihar ## -+## ---------------------------------------------- ## -+_ASBOX -+ ) | sed "s/^/$as_me: WARNING: /" >&2 -+ ;; -+esac -+{ $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 -+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 -+as_val=`eval 'as_val=${'$as_ac_Header'} -+ $as_echo "$as_val"'` -+ if test "x$as_val" = x""yes; then - cat >>confdefs.h <<_ACEOF --#define HAVE_VFORK_H 1 -+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 - _ACEOF - - fi - - done - -+ -+ - for ac_func in fork vfork --do : -- as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` --ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" --eval as_val=\$$as_ac_var -- if test "x$as_val" = x""yes; then : -+do -+as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -+{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 -+$as_echo_n "checking for $ac_func... " >&6; } -+if { as_var=$as_ac_var; eval "test \"\${$as_var+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. */ -+/* Define $ac_func to an innocuous variant, in case declares $ac_func. -+ For example, HP-UX 11i declares gettimeofday. */ -+#define $ac_func innocuous_$ac_func -+ -+/* System header to define __stub macros and hopefully few prototypes, -+ which can conflict with char $ac_func (); below. -+ Prefer to if __STDC__ is defined, since -+ exists even on freestanding compilers. */ -+ -+#ifdef __STDC__ -+# include -+#else -+# include -+#endif -+ -+#undef $ac_func -+ -+/* 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 -+char $ac_func (); -+/* 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_$ac_func || defined __stub___$ac_func -+choke me -+#endif -+ -+int -+main () -+{ -+return $ac_func (); -+ ; -+ return 0; -+} -+_ACEOF -+rm -f conftest.$ac_objext conftest$ac_exeext -+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 -+ $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 -+ eval "$as_ac_var=yes" -+else -+ $as_echo "$as_me: failed program was:" >&5 -+sed 's/^/| /' conftest.$ac_ext >&5 -+ -+ eval "$as_ac_var=no" -+fi -+ -+rm -rf conftest.dSYM -+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ -+ conftest$ac_exeext conftest.$ac_ext -+fi -+ac_res=`eval 'as_val=${'$as_ac_var'} -+ $as_echo "$as_val"'` -+ { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 -+$as_echo "$ac_res" >&6; } -+as_val=`eval 'as_val=${'$as_ac_var'} -+ $as_echo "$as_val"'` -+ if test "x$as_val" = x""yes; then - cat >>confdefs.h <<_ACEOF - #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 - _ACEOF -@@ -12764,15 +15365,19 @@ - done - - if test "x$ac_cv_func_fork" = xyes; then -- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working fork" >&5 -+ { $as_echo "$as_me:$LINENO: checking for working fork" >&5 - $as_echo_n "checking for working fork... " >&6; } --if test "${ac_cv_func_fork_works+set}" = set; then : -+if test "${ac_cv_func_fork_works+set}" = set; then - $as_echo_n "(cached) " >&6 - else -- if test "$cross_compiling" = yes; then : -+ if test "$cross_compiling" = yes; then - ac_cv_func_fork_works=cross - else -- cat confdefs.h - <<_ACEOF >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_includes_default - int -@@ -12786,17 +15391,44 @@ - return 0; - } - _ACEOF --if ac_fn_c_try_run "$LINENO"; then : -+rm -f conftest$ac_exeext -+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=$? -+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); } && { ac_try='./conftest$ac_exeext' -+ { (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=$? -+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); }; }; then - ac_cv_func_fork_works=yes - else -- ac_cv_func_fork_works=no -+ $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_func_fork_works=no - fi --rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ -- conftest.$ac_objext conftest.beam 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 --{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_fork_works" >&5 -+{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_fork_works" >&5 - $as_echo "$ac_cv_func_fork_works" >&6; } - - else -@@ -12812,20 +15444,24 @@ - ac_cv_func_fork_works=yes - ;; - esac -- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: result $ac_cv_func_fork_works guessed because of cross compilation" >&5 -+ { $as_echo "$as_me:$LINENO: WARNING: result $ac_cv_func_fork_works guessed because of cross compilation" >&5 - $as_echo "$as_me: WARNING: result $ac_cv_func_fork_works guessed because of cross compilation" >&2;} - fi - ac_cv_func_vfork_works=$ac_cv_func_vfork - if test "x$ac_cv_func_vfork" = xyes; then -- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working vfork" >&5 -+ { $as_echo "$as_me:$LINENO: checking for working vfork" >&5 - $as_echo_n "checking for working vfork... " >&6; } --if test "${ac_cv_func_vfork_works+set}" = set; then : -+if test "${ac_cv_func_vfork_works+set}" = set; then - $as_echo_n "(cached) " >&6 - else -- if test "$cross_compiling" = yes; then : -+ if test "$cross_compiling" = yes; then - ac_cv_func_vfork_works=cross - else -- cat confdefs.h - <<_ACEOF >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. */ - /* Thanks to Paul Eggert for this test. */ - $ac_includes_default -@@ -12917,41 +15553,86 @@ - } - } - _ACEOF --if ac_fn_c_try_run "$LINENO"; then : -+rm -f conftest$ac_exeext -+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=$? -+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); } && { ac_try='./conftest$ac_exeext' -+ { (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=$? -+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); }; }; then - ac_cv_func_vfork_works=yes - else -- ac_cv_func_vfork_works=no -+ $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_func_vfork_works=no - fi --rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ -- conftest.$ac_objext conftest.beam 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 --{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_vfork_works" >&5 -+{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_vfork_works" >&5 - $as_echo "$ac_cv_func_vfork_works" >&6; } - - fi; - if test "x$ac_cv_func_fork_works" = xcross; then - ac_cv_func_vfork_works=$ac_cv_func_vfork -- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: result $ac_cv_func_vfork_works guessed because of cross compilation" >&5 -+ { $as_echo "$as_me:$LINENO: WARNING: result $ac_cv_func_vfork_works guessed because of cross compilation" >&5 - $as_echo "$as_me: WARNING: result $ac_cv_func_vfork_works guessed because of cross compilation" >&2;} - fi - - if test "x$ac_cv_func_vfork_works" = xyes; then - --$as_echo "#define HAVE_WORKING_VFORK 1" >>confdefs.h -+cat >>confdefs.h <<\_ACEOF -+#define HAVE_WORKING_VFORK 1 -+_ACEOF - - else - --$as_echo "#define vfork fork" >>confdefs.h -+cat >>confdefs.h <<\_ACEOF -+#define vfork fork -+_ACEOF - - fi - if test "x$ac_cv_func_fork_works" = xyes; then - --$as_echo "#define HAVE_WORKING_FORK 1" >>confdefs.h -+cat >>confdefs.h <<\_ACEOF -+#define HAVE_WORKING_FORK 1 -+_ACEOF - - fi - -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ - for ac_func in \ - canonicalize_file_name \ - ftruncate \ -@@ -12965,11 +15646,98 @@ - setlocale \ - ttyname \ - wordexp --do : -- as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` --ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" --eval as_val=\$$as_ac_var -- if test "x$as_val" = x""yes; then : -+do -+as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -+{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 -+$as_echo_n "checking for $ac_func... " >&6; } -+if { as_var=$as_ac_var; eval "test \"\${$as_var+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. */ -+/* Define $ac_func to an innocuous variant, in case declares $ac_func. -+ For example, HP-UX 11i declares gettimeofday. */ -+#define $ac_func innocuous_$ac_func -+ -+/* System header to define __stub macros and hopefully few prototypes, -+ which can conflict with char $ac_func (); below. -+ Prefer to if __STDC__ is defined, since -+ exists even on freestanding compilers. */ -+ -+#ifdef __STDC__ -+# include -+#else -+# include -+#endif -+ -+#undef $ac_func -+ -+/* 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 -+char $ac_func (); -+/* 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_$ac_func || defined __stub___$ac_func -+choke me -+#endif -+ -+int -+main () -+{ -+return $ac_func (); -+ ; -+ return 0; -+} -+_ACEOF -+rm -f conftest.$ac_objext conftest$ac_exeext -+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 -+ $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 -+ eval "$as_ac_var=yes" -+else -+ $as_echo "$as_me: failed program was:" >&5 -+sed 's/^/| /' conftest.$ac_ext >&5 -+ -+ eval "$as_ac_var=no" -+fi -+ -+rm -rf conftest.dSYM -+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ -+ conftest$ac_exeext conftest.$ac_ext -+fi -+ac_res=`eval 'as_val=${'$as_ac_var'} -+ $as_echo "$as_val"'` -+ { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 -+$as_echo "$ac_res" >&6; } -+as_val=`eval 'as_val=${'$as_ac_var'} -+ $as_echo "$as_val"'` -+ if test "x$as_val" = x""yes; then - cat >>confdefs.h <<_ACEOF - #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 - _ACEOF -@@ -12977,12 +15745,102 @@ - fi - done - -+ - for ac_func in getopt_long --do : -- ac_fn_c_check_func "$LINENO" "getopt_long" "ac_cv_func_getopt_long" --if test "x$ac_cv_func_getopt_long" = x""yes; then : -+do -+as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -+{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 -+$as_echo_n "checking for $ac_func... " >&6; } -+if { as_var=$as_ac_var; eval "test \"\${$as_var+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. */ -+/* Define $ac_func to an innocuous variant, in case declares $ac_func. -+ For example, HP-UX 11i declares gettimeofday. */ -+#define $ac_func innocuous_$ac_func -+ -+/* System header to define __stub macros and hopefully few prototypes, -+ which can conflict with char $ac_func (); below. -+ Prefer to if __STDC__ is defined, since -+ exists even on freestanding compilers. */ -+ -+#ifdef __STDC__ -+# include -+#else -+# include -+#endif -+ -+#undef $ac_func -+ -+/* 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 -+char $ac_func (); -+/* 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_$ac_func || defined __stub___$ac_func -+choke me -+#endif -+ -+int -+main () -+{ -+return $ac_func (); -+ ; -+ return 0; -+} -+_ACEOF -+rm -f conftest.$ac_objext conftest$ac_exeext -+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 -+ $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 -+ eval "$as_ac_var=yes" -+else -+ $as_echo "$as_me: failed program was:" >&5 -+sed 's/^/| /' conftest.$ac_ext >&5 -+ -+ eval "$as_ac_var=no" -+fi -+ -+rm -rf conftest.dSYM -+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ -+ conftest$ac_exeext conftest.$ac_ext -+fi -+ac_res=`eval 'as_val=${'$as_ac_var'} -+ $as_echo "$as_val"'` -+ { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 -+$as_echo "$ac_res" >&6; } -+as_val=`eval 'as_val=${'$as_ac_var'} -+ $as_echo "$as_val"'` -+ if test "x$as_val" = x""yes; then - cat >>confdefs.h <<_ACEOF --#define HAVE_GETOPT_LONG 1 -+#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 - _ACEOF - - else -@@ -13015,7 +15873,7 @@ - - - # Check whether --with-gnu-ld was given. --if test "${with_gnu_ld+set}" = set; then : -+if test "${with_gnu_ld+set}" = set; then - withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes - else - with_gnu_ld=no -@@ -13037,7 +15895,7 @@ - ac_prog=ld - if test "$GCC" = yes; then - # Check if gcc -print-prog-name=ld gives a path. -- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by GCC" >&5 -+ { $as_echo "$as_me:$LINENO: checking for ld used by GCC" >&5 - $as_echo_n "checking for ld used by GCC... " >&6; } - case $host in - *-*-mingw*) -@@ -13067,13 +15925,13 @@ - ;; - esac - elif test "$with_gnu_ld" = yes; then -- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5 -+ { $as_echo "$as_me:$LINENO: checking for GNU ld" >&5 - $as_echo_n "checking for GNU ld... " >&6; } - else -- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 -+ { $as_echo "$as_me:$LINENO: checking for non-GNU ld" >&5 - $as_echo_n "checking for non-GNU ld... " >&6; } - fi --if test "${acl_cv_path_LD+set}" = set; then : -+if test "${acl_cv_path_LD+set}" = set; then - $as_echo_n "(cached) " >&6 - else - if test -z "$LD"; then -@@ -13101,16 +15959,18 @@ - - LD="$acl_cv_path_LD" - if test -n "$LD"; then -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LD" >&5 -+ { $as_echo "$as_me:$LINENO: result: $LD" >&5 - $as_echo "$LD" >&6; } - else -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -+ { $as_echo "$as_me:$LINENO: result: no" >&5 - $as_echo "no" >&6; } - fi --test -z "$LD" && as_fn_error "no acceptable ld found in \$PATH" "$LINENO" 5 --{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 -+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; }; } -+{ $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 "${acl_cv_prog_gnu_ld+set}" = set; then : -+if test "${acl_cv_prog_gnu_ld+set}" = set; then - $as_echo_n "(cached) " >&6 - else - # I'd rather use --version here, but apparently some GNU ld's only accept -v. -@@ -13121,16 +15981,16 @@ - acl_cv_prog_gnu_ld=no ;; - esac - fi --{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $acl_cv_prog_gnu_ld" >&5 -+{ $as_echo "$as_me:$LINENO: result: $acl_cv_prog_gnu_ld" >&5 - $as_echo "$acl_cv_prog_gnu_ld" >&6; } - with_gnu_ld=$acl_cv_prog_gnu_ld - - - - -- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shared library run path origin" >&5 -+ { $as_echo "$as_me:$LINENO: checking for shared library run path origin" >&5 - $as_echo_n "checking for shared library run path origin... " >&6; } --if test "${acl_cv_rpath+set}" = set; then : -+if test "${acl_cv_rpath+set}" = set; then - $as_echo_n "(cached) " >&6 - else - -@@ -13141,7 +16001,7 @@ - acl_cv_rpath=done - - fi --{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $acl_cv_rpath" >&5 -+{ $as_echo "$as_me:$LINENO: result: $acl_cv_rpath" >&5 - $as_echo "$acl_cv_rpath" >&6; } - wl="$acl_cv_wl" - acl_libext="$acl_cv_libext" -@@ -13153,7 +16013,7 @@ - acl_hardcode_direct="$acl_cv_hardcode_direct" - acl_hardcode_minus_L="$acl_cv_hardcode_minus_L" - # Check whether --enable-rpath was given. --if test "${enable_rpath+set}" = set; then : -+if test "${enable_rpath+set}" = set; then - enableval=$enable_rpath; : - else - enable_rpath=yes -@@ -13202,7 +16062,7 @@ - - - # Check whether --with-libiconv-prefix was given. --if test "${with_libiconv_prefix+set}" = set; then : -+if test "${with_libiconv_prefix+set}" = set; then - withval=$with_libiconv_prefix; - if test "X$withval" = "Xno"; then - use_additional=no -@@ -13650,15 +16510,19 @@ - done - - -- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for iconv" >&5 -+ { $as_echo "$as_me:$LINENO: checking for iconv" >&5 - $as_echo_n "checking for iconv... " >&6; } --if test "${am_cv_func_iconv+set}" = set; then : -+if test "${am_cv_func_iconv+set}" = set; then - $as_echo_n "(cached) " >&6 - else - - am_cv_func_iconv="no, consider installing GNU libiconv" - am_cv_lib_iconv=no -- cat confdefs.h - <<_ACEOF >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. */ - #include - #include -@@ -13672,15 +16536,46 @@ - return 0; - } - _ACEOF --if ac_fn_c_try_link "$LINENO"; then : -+rm -f conftest.$ac_objext conftest$ac_exeext -+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 -+ $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 - am_cv_func_iconv=yes -+else -+ $as_echo "$as_me: failed program was:" >&5 -+sed 's/^/| /' conftest.$ac_ext >&5 -+ -+ - fi --rm -f core conftest.err conftest.$ac_objext \ -- conftest$ac_exeext conftest.$ac_ext -+ -+rm -rf conftest.dSYM -+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ -+ conftest$ac_exeext conftest.$ac_ext - if test "$am_cv_func_iconv" != yes; then - am_save_LIBS="$LIBS" - LIBS="$LIBS $LIBICONV" -- cat confdefs.h - <<_ACEOF >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. */ - #include - #include -@@ -13694,22 +16589,49 @@ - return 0; - } - _ACEOF --if ac_fn_c_try_link "$LINENO"; then : -+rm -f conftest.$ac_objext conftest$ac_exeext -+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 -+ $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 - am_cv_lib_iconv=yes - am_cv_func_iconv=yes -+else -+ $as_echo "$as_me: failed program was:" >&5 -+sed 's/^/| /' conftest.$ac_ext >&5 -+ -+ - fi --rm -f core conftest.err conftest.$ac_objext \ -- conftest$ac_exeext conftest.$ac_ext -+ -+rm -rf conftest.dSYM -+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ -+ conftest$ac_exeext conftest.$ac_ext - LIBS="$am_save_LIBS" - fi - - fi --{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_func_iconv" >&5 -+{ $as_echo "$as_me:$LINENO: result: $am_cv_func_iconv" >&5 - $as_echo "$am_cv_func_iconv" >&6; } - if test "$am_cv_func_iconv" = yes; then -- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working iconv" >&5 -+ { $as_echo "$as_me:$LINENO: checking for working iconv" >&5 - $as_echo_n "checking for working iconv... " >&6; } --if test "${am_cv_func_iconv_works+set}" = set; then : -+if test "${am_cv_func_iconv_works+set}" = set; then - $as_echo_n "(cached) " >&6 - else - -@@ -13717,13 +16639,17 @@ - if test $am_cv_lib_iconv = yes; then - LIBS="$LIBS $LIBICONV" - fi -- if test "$cross_compiling" = yes; then : -+ if test "$cross_compiling" = yes; then - case "$host_os" in - aix* | hpux*) am_cv_func_iconv_works="guessing no" ;; - *) am_cv_func_iconv_works="guessing yes" ;; - esac - else -- cat confdefs.h - <<_ACEOF >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. */ - - #include -@@ -13783,19 +16709,46 @@ - return 0; - } - _ACEOF --if ac_fn_c_try_run "$LINENO"; then : -+rm -f conftest$ac_exeext -+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=$? -+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); } && { ac_try='./conftest$ac_exeext' -+ { (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=$? -+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); }; }; then - am_cv_func_iconv_works=yes - else -- am_cv_func_iconv_works=no -+ $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 ) -+am_cv_func_iconv_works=no - fi --rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ -- conftest.$ac_objext conftest.beam 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 - -+ - LIBS="$am_save_LIBS" - - fi --{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_func_iconv_works" >&5 -+{ $as_echo "$as_me:$LINENO: result: $am_cv_func_iconv_works" >&5 - $as_echo "$am_cv_func_iconv_works" >&6; } - case "$am_cv_func_iconv_works" in - *no) am_func_iconv=no am_cv_lib_iconv=no ;; -@@ -13806,13 +16759,15 @@ - fi - if test "$am_func_iconv" = yes; then - --$as_echo "#define HAVE_ICONV 1" >>confdefs.h -+cat >>confdefs.h <<\_ACEOF -+#define HAVE_ICONV 1 -+_ACEOF - - fi - if test "$am_cv_lib_iconv" = yes; then -- { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to link with libiconv" >&5 -+ { $as_echo "$as_me:$LINENO: checking how to link with libiconv" >&5 - $as_echo_n "checking how to link with libiconv... " >&6; } -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBICONV" >&5 -+ { $as_echo "$as_me:$LINENO: result: $LIBICONV" >&5 - $as_echo "$LIBICONV" >&6; } - else - CPPFLAGS="$am_save_CPPFLAGS" -@@ -13823,13 +16778,17 @@ - - - if test "$am_cv_func_iconv" = yes; then -- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for iconv declaration" >&5 -+ { $as_echo "$as_me:$LINENO: checking for iconv declaration" >&5 - $as_echo_n "checking for iconv declaration... " >&6; } -- if test "${am_cv_proto_iconv+set}" = set; then : -+ if test "${am_cv_proto_iconv+set}" = set; then - $as_echo_n "(cached) " >&6 - else - -- cat confdefs.h - <<_ACEOF >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. */ - - #include -@@ -13852,17 +16811,38 @@ - return 0; - } - _ACEOF --if ac_fn_c_try_compile "$LINENO"; then : -+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 - am_cv_proto_iconv_arg1="" - else -- am_cv_proto_iconv_arg1="const" -+ $as_echo "$as_me: failed program was:" >&5 -+sed 's/^/| /' conftest.$ac_ext >&5 -+ -+ am_cv_proto_iconv_arg1="const" - fi -+ - rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - am_cv_proto_iconv="extern size_t iconv (iconv_t cd, $am_cv_proto_iconv_arg1 char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);" - fi - - am_cv_proto_iconv=`echo "$am_cv_proto_iconv" | tr -s ' ' | sed -e 's/( /(/'` -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${ac_t:- -+ { $as_echo "$as_me:$LINENO: result: ${ac_t:- - }$am_cv_proto_iconv" >&5 - $as_echo "${ac_t:- - }$am_cv_proto_iconv" >&6; } -@@ -13877,7 +16857,7 @@ - - libiconv_ok="$am_cv_func_iconv" - if test "$libiconv_ok" = yes; then -- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether iconv implementation is usable" >&5 -+ { $as_echo "$as_me:$LINENO: checking whether iconv implementation is usable" >&5 - $as_echo_n "checking whether iconv implementation is usable... " >&6; } - if $CC -o iconvcap$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS $srcdir/iconvcap.c $LIBS $CONVERTER_LIBS 1>&5 2>&5 && test -s ./iconvcap$ac_exeext 2>&5; then - if ./iconvcap 2>&5 >iconvenc.h; then -@@ -13888,15 +16868,17 @@ - else - libiconv_ok=no - fi -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $libiconv_ok" >&5 -+ { $as_echo "$as_me:$LINENO: result: $libiconv_ok" >&5 - $as_echo "$libiconv_ok" >&6; } - if test "$libiconv_ok" = yes; then - --$as_echo "#define HAVE_GOOD_ICONV 1" >>confdefs.h -+cat >>confdefs.h <<\_ACEOF -+#define HAVE_GOOD_ICONV 1 -+_ACEOF - -- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether iconv is transitive" >&5 -+ { $as_echo "$as_me:$LINENO: checking whether iconv is transitive" >&5 - $as_echo_n "checking whether iconv is transitive... " >&6; } --if test "${yeti_cv_lib_c_iconv_transitive+set}" = set; then : -+if test "${yeti_cv_lib_c_iconv_transitive+set}" = set; then - $as_echo_n "(cached) " >&6 - else - if ./iconvcap iconvenc.h 2>&5; then -@@ -13905,14 +16887,16 @@ - yeti_cv_lib_c_iconv_transitive=no - fi - fi --{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $yeti_cv_lib_c_iconv_transitive" >&5 -+{ $as_echo "$as_me:$LINENO: result: $yeti_cv_lib_c_iconv_transitive" >&5 - $as_echo "$yeti_cv_lib_c_iconv_transitive" >&6; } - if test "$yeti_cv_lib_c_iconv_transitive" = yes; then - --$as_echo "#define ICONV_IS_TRANSITIVE 1" >>confdefs.h -+cat >>confdefs.h <<\_ACEOF -+#define ICONV_IS_TRANSITIVE 1 -+_ACEOF - - else -- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: A non-transitive but otherwise usable iconv implementation -+ { $as_echo "$as_me:$LINENO: WARNING: A non-transitive but otherwise usable iconv implementation - was found. This beast was believed to be mythical. - Please send your system specs to the maintainer." >&5 - $as_echo "$as_me: WARNING: A non-transitive but otherwise usable iconv implementation -@@ -13932,7 +16916,7 @@ - - - # Check whether --with-librecode was given. --if test "${with_librecode+set}" = set; then : -+if test "${with_librecode+set}" = set; then - withval=$with_librecode; case "$withval" in - yes|auto) WANT_LIBRECODE=1 ;; - no) WANT_LIBRECODE=0 ;; -@@ -13950,12 +16934,16 @@ - LIBS="$LIBS -lrecode" - CPPFLAGS="$CPPFLAGS $yeti_librecode_CPPFLAGS" - LDFLAGS="$LDFLAGS $yeti_librecode_LDFLAGS" -- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for recode_new_outer in librecode" >&5 -+ { $as_echo "$as_me:$LINENO: checking for recode_new_outer in librecode" >&5 - $as_echo_n "checking for recode_new_outer in librecode... " >&6; } --if test "${yeti_cv_lib_recode_new_outer+set}" = set; then : -+if test "${yeti_cv_lib_recode_new_outer+set}" = set; then - $as_echo_n "(cached) " >&6 - else -- cat confdefs.h - <<_ACEOF >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. */ - char* program_name = ""; - int -@@ -13966,23 +16954,91 @@ - return 0; - } - _ACEOF --if ac_fn_c_try_link "$LINENO"; then : -+rm -f conftest.$ac_objext conftest$ac_exeext -+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 -+ $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 - yeti_cv_lib_recode_new_outer=yes - else -- yeti_cv_lib_recode_new_outer=no -+ $as_echo "$as_me: failed program was:" >&5 -+sed 's/^/| /' conftest.$ac_ext >&5 -+ -+ yeti_cv_lib_recode_new_outer=no -+fi -+ -+rm -rf conftest.dSYM -+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ -+ conftest$ac_exeext conftest.$ac_ext -+fi -+{ $as_echo "$as_me:$LINENO: result: $yeti_cv_lib_recode_new_outer" >&5 -+$as_echo "$yeti_cv_lib_recode_new_outer" >&6; } -+ librecode_ok="$yeti_cv_lib_recode_new_outer"; -+ if test "$librecode_ok" = yes; then -+ { $as_echo "$as_me:$LINENO: checking for recode.h" >&5 -+$as_echo_n "checking for recode.h... " >&6; } -+if test "${ac_cv_header_recode_h+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. */ -+#define bool int -+ #define size_t int -+ #define FILE void -+ -+#include -+_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_header_recode_h=yes -+else -+ $as_echo "$as_me: failed program was:" >&5 -+sed 's/^/| /' conftest.$ac_ext >&5 -+ -+ ac_cv_header_recode_h=no - fi --rm -f core conftest.err conftest.$ac_objext \ -- conftest$ac_exeext conftest.$ac_ext -+ -+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi --{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $yeti_cv_lib_recode_new_outer" >&5 --$as_echo "$yeti_cv_lib_recode_new_outer" >&6; } -- librecode_ok="$yeti_cv_lib_recode_new_outer"; -- if test "$librecode_ok" = yes; then -- ac_fn_c_check_header_compile "$LINENO" "recode.h" "ac_cv_header_recode_h" "#define bool int -- #define size_t int -- #define FILE void --" --if test "x$ac_cv_header_recode_h" = x""yes; then : -+{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_recode_h" >&5 -+$as_echo "$ac_cv_header_recode_h" >&6; } -+if test "x$ac_cv_header_recode_h" = x""yes; then - librecode_ok=yes - else - librecode_ok=no -@@ -13991,11 +17047,54 @@ - - fi - if test "$librecode_ok" = yes; then -- ac_fn_c_check_header_compile "$LINENO" "recodext.h" "ac_cv_header_recodext_h" "#define bool int -+ { $as_echo "$as_me:$LINENO: checking for recodext.h" >&5 -+$as_echo_n "checking for recodext.h... " >&6; } -+if test "${ac_cv_header_recodext_h+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. */ -+#define bool int - #define size_t int - #define FILE void --" --if test "x$ac_cv_header_recodext_h" = x""yes; then : -+ -+#include -+_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_header_recodext_h=yes -+else -+ $as_echo "$as_me: failed program was:" >&5 -+sed 's/^/| /' conftest.$ac_ext >&5 -+ -+ ac_cv_header_recodext_h=no -+fi -+ -+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -+fi -+{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_recodext_h" >&5 -+$as_echo "$ac_cv_header_recodext_h" >&6; } -+if test "x$ac_cv_header_recodext_h" = x""yes; then - librecode_ok=yes - else - librecode_ok=no -@@ -14005,7 +17104,9 @@ - fi - if test "$librecode_ok" = yes; then - --$as_echo "#define HAVE_LIBRECODE 1" >>confdefs.h -+cat >>confdefs.h <<\_ACEOF -+#define HAVE_LIBRECODE 1 -+_ACEOF - - CONVERTER_LIBS="$CONVERTER_LIBS -lrecode" - fi -@@ -14037,7 +17138,9 @@ - - if test "$WANT_EXTERNAL" = "yes" -a "$ac_cv_func_fork_works" = "yes"; then - --$as_echo "#define ENABLE_EXTERNAL 1" >>confdefs.h -+cat >>confdefs.h <<\_ACEOF -+#define ENABLE_EXTERNAL 1 -+_ACEOF - - if test -n "$DEFAULT_EXTERNAL_CONVERTER"; then - enable_external="yes ($DEFAULT_EXTERNAL_CONVERTER)" -@@ -14056,9 +17159,9 @@ - - locale_alias_ok=no - if test "$ac_cv_func_setlocale" = yes; then -- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for locale.alias" >&5 -+ { $as_echo "$as_me:$LINENO: checking for locale.alias" >&5 - $as_echo_n "checking for locale.alias... " >&6; } --if test "${yeti_cv_file_locale_alias+set}" = set; then : -+if test "${yeti_cv_file_locale_alias+set}" = set; then - $as_echo_n "(cached) " >&6 - else - for yeti_ac_tmp in /usr/share/locale /usr/local/share/locale /etc /usr/lib/X11/locale /usr/X11/lib/locale; do -@@ -14072,12 +17175,14 @@ - fi - done - fi --{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $yeti_cv_file_locale_alias" >&5 -+{ $as_echo "$as_me:$LINENO: result: $yeti_cv_file_locale_alias" >&5 - $as_echo "$yeti_cv_file_locale_alias" >&6; } - if test -n "$yeti_cv_file_locale_alias"; then - locale_alias_ok=yes - --$as_echo "#define HAVE_LOCALE_ALIAS 1" >>confdefs.h -+cat >>confdefs.h <<\_ACEOF -+#define HAVE_LOCALE_ALIAS 1 -+_ACEOF - - - cat >>confdefs.h <<_ACEOF -@@ -14126,13 +17231,13 @@ - case $ac_val in #( - *${as_nl}*) - case $ac_var in #( -- *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 -+ *_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= ;; #( -- *) { eval $ac_var=; unset $ac_var;} ;; -+ *) $as_unset $ac_var ;; - esac ;; - esac - done -@@ -14140,8 +17245,8 @@ - (set) 2>&1 | - 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 \. -+ # `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" -@@ -14164,11 +17269,11 @@ - 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:${as_lineno-$LINENO}: updating cache $cache_file" >&5 -+ { $as_echo "$as_me:$LINENO: updating cache $cache_file" >&5 - $as_echo "$as_me: updating cache $cache_file" >&6;} - cat confcache >$cache_file - else -- { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 -+ { $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 -@@ -14188,8 +17293,8 @@ - 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. -- as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" -- as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' -+ ac_libobjs="$ac_libobjs \${LIBOBJDIR}$ac_i\$U.$ac_objext" -+ ac_ltlibobjs="$ac_ltlibobjs \${LIBOBJDIR}$ac_i"'$U.lo' - done - LIBOBJS=$ac_libobjs - -@@ -14205,34 +17310,48 @@ - fi - - if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then -- as_fn_error "conditional \"MAINTAINER_MODE\" was never defined. --Usually this means the macro was only invoked conditionally." "$LINENO" 5 -+ { { $as_echo "$as_me:$LINENO: error: conditional \"MAINTAINER_MODE\" was never defined. -+Usually this means the macro was only invoked conditionally." >&5 -+$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 -- as_fn_error "conditional \"AMDEP\" was never defined. --Usually this means the macro was only invoked conditionally." "$LINENO" 5 -+ { { $as_echo "$as_me:$LINENO: error: conditional \"AMDEP\" was never defined. -+Usually this means the macro was only invoked conditionally." >&5 -+$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 -- as_fn_error "conditional \"am__fastdepCC\" was never defined. --Usually this means the macro was only invoked conditionally." "$LINENO" 5 -+ { { $as_echo "$as_me:$LINENO: error: conditional \"am__fastdepCC\" was never defined. -+Usually this means the macro was only invoked conditionally." >&5 -+$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 "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then -- as_fn_error "conditional \"am__fastdepCC\" was never defined. --Usually this means the macro was only invoked conditionally." "$LINENO" 5 -+ { { $as_echo "$as_me:$LINENO: error: conditional \"am__fastdepCC\" was never defined. -+Usually this means the macro was only invoked conditionally." >&5 -+$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 "${ENABLE_GTK_DOC_TRUE}" && test -z "${ENABLE_GTK_DOC_FALSE}"; then -- as_fn_error "conditional \"ENABLE_GTK_DOC\" was never defined. --Usually this means the macro was only invoked conditionally." "$LINENO" 5 -+ { { $as_echo "$as_me:$LINENO: error: conditional \"ENABLE_GTK_DOC\" was never defined. -+Usually this means the macro was only invoked conditionally." >&5 -+$as_echo "$as_me: error: conditional \"ENABLE_GTK_DOC\" 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" --{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 -+{ $as_echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5 - $as_echo "$as_me: creating $CONFIG_STATUS" >&6;} --as_write_fail=0 --cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 -+cat >$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 - #! $SHELL - # Generated by $as_me. - # Run this file to recreate the current configuration. -@@ -14242,18 +17361,17 @@ - debug=false - ac_cs_recheck=false - ac_cs_silent=false -- - SHELL=\${CONFIG_SHELL-$SHELL} --export SHELL --_ASEOF --cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 --## -------------------- ## --## M4sh Initialization. ## --## -------------------- ## -+_ACEOF -+ -+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -+## --------------------- ## -+## M4sh Initialization. ## -+## --------------------- ## - - # Be more Bourne compatible - DUALCASE=1; export DUALCASE # for MKS sh --if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : -+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 -@@ -14261,15 +17379,23 @@ - alias -g '${1+"$@"}'='"$@"' - setopt NO_GLOB_SUBST - else -- case `(set -o) 2>/dev/null` in #( -- *posix*) : -- set -o posix ;; #( -- *) : -- ;; -+ 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' @@ -11818,765 +2551,57 @@ diff -Naur enca-1.12/configure enca-1.12.patch/configure +as_cr_digits='0123456789' +as_cr_alnum=$as_cr_Letters$as_cr_digits + - as_nl=' - ' - export as_nl -@@ -14277,13 +17403,7 @@ - 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 --# Prefer a ksh shell builtin over an external printf program on Solaris, --# but without wasting forks for bash or zsh. --if test -z "$BASH_VERSION$ZSH_VERSION" \ -- && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then -- as_echo='print -r --' -- as_echo_n='print -rn --' --elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then -+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 -@@ -14294,7 +17414,7 @@ - as_echo_body='eval expr "X$1" : "X\\(.*\\)"' - as_echo_n_body='eval - arg=$1; -- case $arg in #( -+ case $arg in - *"$as_nl"*) - expr "X$arg" : "X\\(.*\\)$as_nl"; - arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; -@@ -14317,6 +17437,13 @@ - } - fi - -+# Support unset when possible. -+if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then -+ as_unset=unset ++ECHO_C= ECHO_N= ECHO_T= ++case `echo -n x` in #((((( ++-n*) ++ case `echo 'xy\c'` in ++ *c*) ECHO_T=' ';; # ECHO_T is single tab character. ++ xy) ECHO_C='\c';; ++ *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ++ ECHO_T=' ';; ++ esac;; ++*) ++ ECHO_N='-n';; ++esac ++ ++rm -f conf$$ conf$$.exe conf$$.file ++if test -d conf$$.dir; then ++ rm -f conf$$.dir/conf$$.file +else -+ as_unset=false ++ rm -f conf$$.dir ++ mkdir conf$$.dir 2>/dev/null +fi -+ - - # IFS - # We need space, tab and new line, in precisely that order. Quoting is -@@ -14326,15 +17453,15 @@ - IFS=" "" $as_nl" - - # Find who we are. Look in the path if we contain no directory separator. --case $0 in #(( -+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 -+ test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break -+done - IFS=$as_save_IFS - - ;; -@@ -14346,16 +17473,12 @@ - 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); exit 1; } - fi - --# Unset variables that we do not need and which cause bugs (e.g. in --# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" --# suppresses any "Segmentation fault" message there. '((' could --# trigger a bug in pdksh 5.2.14. --for as_var in BASH_ENV ENV MAIL MAILPATH --do eval test x\${$as_var+set} = xset \ -- && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : -+# Work around bugs in pre-3.0 UWIN ksh. -+for as_var in ENV MAIL MAILPATH -+do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var - done - PS1='$ ' - PS2='> ' -@@ -14367,89 +17490,7 @@ - LANGUAGE=C - export LANGUAGE - --# CDPATH. --(unset CDPATH) >/dev/null 2>&1 && unset CDPATH -- -- --# as_fn_error ERROR [LINENO LOG_FD] --# --------------------------------- --# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are --# provided, also output the error to LOG_FD, referencing LINENO. Then exit the --# script with status $?, using 1 if that was 0. --as_fn_error () --{ -- as_status=$?; test $as_status -eq 0 && as_status=1 -- if test "$3"; then -- as_lineno=${as_lineno-"$2"} as_lineno_stack=as_lineno_stack=$as_lineno_stack -- $as_echo "$as_me:${as_lineno-$LINENO}: error: $1" >&$3 -- fi -- $as_echo "$as_me: error: $1" >&2 -- as_fn_exit $as_status --} # as_fn_error -- -- --# as_fn_set_status STATUS --# ----------------------- --# Set $? to STATUS, without forking. --as_fn_set_status () --{ -- return $1 --} # as_fn_set_status -- --# as_fn_exit STATUS --# ----------------- --# Exit the shell with STATUS, even in a "trap 0" or "set -e" context. --as_fn_exit () --{ -- set +e -- as_fn_set_status $1 -- exit $1 --} # as_fn_exit -- --# as_fn_unset VAR --# --------------- --# Portably unset VAR. --as_fn_unset () --{ -- { eval $1=; unset $1;} --} --as_unset=as_fn_unset --# as_fn_append VAR VALUE --# ---------------------- --# Append the text in VALUE to the end of the definition contained in VAR. Take --# advantage of any shell optimizations that allow amortized linear growth over --# repeated appends, instead of the typical quadratic growth present in naive --# implementations. --if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : -- eval 'as_fn_append () -- { -- eval $1+=\$2 -- }' --else -- as_fn_append () -- { -- eval $1=\$$1\$2 -- } --fi # as_fn_append -- --# as_fn_arith ARG... --# ------------------ --# Perform arithmetic evaluation on the ARGs, and store the result in the --# global $as_val. Take advantage of shells that can avoid forks. The arguments --# must be portable across $(()) and expr. --if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : -- eval 'as_fn_arith () -- { -- as_val=$(( $* )) -- }' --else -- as_fn_arith () -- { -- as_val=`expr "$@" || test $? -eq 1` -- } --fi # as_fn_arith -- -- -+# Required to use basename. - if expr a : '\(a\)' >/dev/null 2>&1 && - test "X`expr 00001 : '.*\(...\)'`" = X001; then - as_expr=expr -@@ -14463,12 +17504,8 @@ - as_basename=false - fi - --if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then -- as_dirname=dirname --else -- as_dirname=false --fi - -+# Name of the executable. - as_me=`$as_basename -- "$0" || - $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ - X"$0" : 'X\(//\)$' \| \ -@@ -14488,25 +17525,76 @@ - } - s/.*/./; q'` - --# 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 -+# CDPATH. -+$as_unset CDPATH -+ -+ -+ -+ 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 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 -+ # 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 -+ :loop -+ s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ -+ t loop -+ s/-\n.*// -+ ' >$as_me.lineno && -+ 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 sensitive to this). -+ . "./$as_me.lineno" -+ # Exit status is that of the last command. -+ exit -+} -+ -+ -+if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then -+ as_dirname=dirname ++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 +else -+ as_dirname=false ++ as_ln_s='cp -p' +fi - - ECHO_C= ECHO_N= ECHO_T= --case `echo -n x` in #((((( -+case `echo -n x` in - -n*) -- case `echo 'xy\c'` in -+ case `echo 'x\c'` in - *c*) ECHO_T=' ';; # ECHO_T is single tab character. -- xy) ECHO_C='\c';; -- *) echo `echo ksh88 bug on AIX 6.1` > /dev/null -- ECHO_T=' ';; -+ *) 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 - if test -d conf$$.dir; then -@@ -14535,56 +17623,8 @@ - rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file - rmdir conf$$.dir 2>/dev/null - -- --# as_fn_mkdir_p --# ------------- --# Create "$as_dir" as a directory, including parents if necessary. --as_fn_mkdir_p () --{ -- -- case $as_dir in #( -- -*) as_dir=./$as_dir;; -- esac -- test -d "$as_dir" || eval $as_mkdir_p || { -- as_dirs= -- 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 || --$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 -z "$as_dirs" || eval "mkdir $as_dirs" -- } || test -d "$as_dir" || as_fn_error "cannot create directory $as_dir" -- -- --} # as_fn_mkdir_p - if mkdir -p . 2>/dev/null; then -- as_mkdir_p='mkdir -p "$as_dir"' -+ as_mkdir_p=: - else - test -d ./-p && rmdir ./-p - as_mkdir_p=false -@@ -14603,10 +17643,10 @@ - if test -d "$1"; then - test -d "$1/."; - else -- case $1 in #( -+ case $1 in - -*)set "./$1";; - esac; -- case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #(( -+ case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in - ???[sx]*):;;*)false;;esac;fi - '\'' sh - ' -@@ -14621,19 +17661,13 @@ - - - exec 6>&1 --## ----------------------------------- ## --## Main body of $CONFIG_STATUS script. ## --## ----------------------------------- ## --_ASEOF --test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 - --cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 --# Save the log message, 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. - ac_log=" - This file was extended by Enca $as_me 1.12, which was --generated by GNU Autoconf 2.64. Invocation command line was -+generated by GNU Autoconf 2.63. Invocation command line was - - CONFIG_FILES = $CONFIG_FILES - CONFIG_HEADERS = $CONFIG_HEADERS -@@ -14665,11 +17699,10 @@ - - cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 - ac_cs_usage="\ --\`$as_me' instantiates files and other configuration actions --from templates according to the current configuration. Unless the files --and actions are specified as TAGs, all are instantiated by default. -+\`$as_me' instantiates files from templates according to the -+current configuration. - --Usage: $0 [OPTION]... [TAG]... -+Usage: $0 [OPTION]... [FILE]... - - -h, --help print this help, then exit - -V, --version print version number and configuration settings, then exit -@@ -14691,16 +17724,16 @@ - Configuration commands: - $config_commands - --Report bugs to >." -+Report bugs to ." - - _ACEOF - cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 - ac_cs_version="\\ - Enca config.status 1.12 --configured by $0, generated by GNU Autoconf 2.64, -+configured by $0, generated by GNU Autoconf 2.63, - with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\" - --Copyright (C) 2009 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." - -@@ -14743,19 +17776,20 @@ - case $ac_optarg in - *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; - esac -- as_fn_append CONFIG_FILES " '$ac_optarg'" -+ CONFIG_FILES="$CONFIG_FILES '$ac_optarg'" - ac_need_defaults=false;; - --header | --heade | --head | --hea ) - $ac_shift - case $ac_optarg in - *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; - esac -- as_fn_append CONFIG_HEADERS " '$ac_optarg'" -+ CONFIG_HEADERS="$CONFIG_HEADERS '$ac_optarg'" - ac_need_defaults=false;; - --he | --h) - # Conflict between --help and --header -- as_fn_error "ambiguous option: \`$1' --Try \`$0 --help' for more information.";; -+ { $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 \ -@@ -14763,10 +17797,11 @@ - ac_cs_silent=: ;; - - # This is an error. -- -*) as_fn_error "unrecognized option: \`$1' --Try \`$0 --help' for more information." ;; -+ -*) { $as_echo "$as_me: error: unrecognized option: $1 -+Try \`$0 --help' for more information." >&2 -+ { (exit 1); exit 1; }; } ;; - -- *) as_fn_append ac_config_targets " $1" -+ *) ac_config_targets="$ac_config_targets $1" - ac_need_defaults=false ;; - - esac -@@ -15091,7 +18126,9 @@ - "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; - "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;; - -- *) as_fn_error "invalid argument: \`$ac_config_target'" "$LINENO" 5;; -+ *) { { $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 - -@@ -15118,7 +18155,7 @@ - trap 'exit_status=$? - { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status - ' 0 -- trap 'as_fn_exit 1' 1 2 13 15 -+ trap '{ (exit 1); exit 1; }' 1 2 13 15 - } - # Create a (secure) tmp directory for tmp files. - -@@ -15129,7 +18166,11 @@ - { - tmp=./conf$$-$RANDOM - (umask 077 && mkdir "$tmp") --} || as_fn_error "cannot create a temporary directory in ." "$LINENO" 5 -+} || ++rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file ++rmdir conf$$.dir 2>/dev/null ++ ++ ++# as_fn_mkdir_p ++# ------------- ++# Create "$as_dir" as a directory, including parents if necessary. ++as_fn_mkdir_p () +{ -+ $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. -@@ -15137,16 +18178,10 @@ - if test -n "$CONFIG_FILES"; then - - --ac_cr=`echo X | tr X '\015'` --# On cygwin, bash can eat \r inside `` if the user requested igncr. --# But we know of no other shell where ac_cr would be empty at this --# point, so we can use a bashism as a fallback. --if test "x$ac_cr" = x; then -- eval ac_cr=\$\'\\r\' --fi -+ac_cr=' ' - ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` - if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then -- ac_cs_awk_cr='\r' -+ ac_cs_awk_cr='\\r' - else - ac_cs_awk_cr=$ac_cr - fi -@@ -15160,18 +18195,24 @@ - echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && - echo "_ACEOF" - } >conf$$subs.sh || -- as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5 -+ { { $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_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5 -+ { { $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_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` - if test $ac_delim_n = $ac_delim_num; then - break - elif $ac_last_try; then -- as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5 -+ { { $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 -@@ -15260,7 +18301,9 @@ - else - cat - fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \ -- || as_fn_error "could not setup config files machinery" "$LINENO" 5 -+ || { { $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), -@@ -15301,7 +18344,9 @@ - if test -z "$ac_t"; then - break - elif $ac_last_try; then -- as_fn_error "could not make $CONFIG_HEADERS" "$LINENO" 5 -+ { { $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 -@@ -15386,7 +18431,9 @@ - _ACAWK - _ACEOF - cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -- as_fn_error "could not setup config headers machinery" "$LINENO" 5 -+ { { $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" - - -@@ -15399,7 +18446,9 @@ - esac - case $ac_mode$ac_tag in - :[FHL]*:*);; -- :L* | :C*:*) as_fn_error "invalid tag \`$ac_tag'" "$LINENO" 5;; -+ :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 -@@ -15427,10 +18476,12 @@ - [\\/$]*) false;; - *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; - esac || -- as_fn_error "cannot find input file: \`$ac_f'" "$LINENO" 5;; -+ { { $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 -- as_fn_append ac_file_inputs " '$ac_f'" -+ ac_file_inputs="$ac_file_inputs '$ac_f'" - done - - # Let's still pretend it is `configure' which instantiates (i.e., don't -@@ -15441,7 +18492,7 @@ - `' by configure.' - if test x"$ac_file" != x-; then - configure_input="$ac_file. $configure_input" -- { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 -+ { $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. -@@ -15454,7 +18505,9 @@ - - case $ac_tag in - *:-:* | *:-) cat >"$tmp/stdin" \ -- || as_fn_error "could not create $ac_file" "$LINENO" 5 ;; -+ || { { $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 -@@ -15482,7 +18535,47 @@ - q - } - s/.*/./; q'` -- as_dir="$ac_dir"; as_fn_mkdir_p -+ { 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 :; 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 || -+$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 -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=. - - case "$ac_dir" in -@@ -15539,6 +18632,7 @@ - # 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 -@@ -15548,11 +18642,12 @@ - /@docdir@/p - /@infodir@/p - /@localedir@/p --/@mandir@/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:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 -+ { $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 -@@ -15562,7 +18657,7 @@ - s&@infodir@&$infodir&g - s&@localedir@&$localedir&g - s&@mandir@&$mandir&g -- s&\\\${datarootdir}&$datarootdir&g' ;; -+ s&\\\${datarootdir}&$datarootdir&g' ;; - esac - _ACEOF - -@@ -15591,12 +18686,14 @@ - $ac_datarootdir_hack - " - eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \ -- || as_fn_error "could not create $ac_file" "$LINENO" 5 -+ || { { $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; }; } - - 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:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' -+ { $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;} -@@ -15606,7 +18703,9 @@ - -) cat "$tmp/out" && rm -f "$tmp/out";; - *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";; - esac \ -- || as_fn_error "could not create $ac_file" "$LINENO" 5 -+ || { { $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; }; } - ;; - :H) - # -@@ -15617,19 +18716,25 @@ - $as_echo "/* $configure_input */" \ - && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" - } >"$tmp/config.h" \ -- || as_fn_error "could not create $ac_file" "$LINENO" 5 -+ || { { $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:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 -+ { $as_echo "$as_me:$LINENO: $ac_file is unchanged" >&5 - $as_echo "$as_me: $ac_file is unchanged" >&6;} - else - rm -f "$ac_file" - mv "$tmp/config.h" "$ac_file" \ -- || as_fn_error "could not create $ac_file" "$LINENO" 5 -+ || { { $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 - $as_echo "/* $configure_input */" \ - && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" \ -- || as_fn_error "could not create -" "$LINENO" 5 -+ || { { $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. - _am_arg="$ac_file" -@@ -15667,7 +18772,7 @@ - s/.*/./; q'`/stamp-h$_am_stamp_count - ;; - -- :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5 -+ :C) { $as_echo "$as_me:$LINENO: executing $ac_file commands" >&5 - $as_echo "$as_me: executing $ac_file commands" >&6;} - ;; - esac -@@ -15762,7 +18867,47 @@ - q - } - s/.*/./; q'` -- as_dir=$dirpart/$fdir; as_fn_mkdir_p -+ { as_dir=$dirpart/$fdir + case $as_dir in #( + -*) as_dir=./$as_dir;; + esac -+ test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || { ++ test -d "$as_dir" || eval $as_mkdir_p || { + as_dirs= + while :; do + case $as_dir in #( @@ -12610,70 +2635,1936 @@ diff -Naur enca-1.12/configure enca-1.12.patch/configure + test -d "$as_dir" && break + done + 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 -@@ -16409,12 +19554,15 @@ - done # for ac_tag ++ } || test -d "$as_dir" || as_fn_error "cannot create directory $as_dir" ++ ++ ++} # as_fn_mkdir_p ++if mkdir -p . 2>/dev/null; then ++ as_mkdir_p='mkdir -p "$as_dir"' ++else ++ test -d ./-p && rmdir ./-p ++ as_mkdir_p=false ++fi ++ ++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'" ++ ++# Sed expression to map a string onto a valid variable name. ++as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" ++ ++ ++exec 6>&1 ++## ----------------------------------- ## ++## Main body of $CONFIG_STATUS script. ## ++## ----------------------------------- ## ++# 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. ++ac_log=" ++This file was extended by Enca $as_me 1.13, which was ++generated by GNU Autoconf 2.65. Invocation command line was ++ ++ CONFIG_FILES = $CONFIG_FILES ++ CONFIG_HEADERS = $CONFIG_HEADERS ++ CONFIG_LINKS = $CONFIG_LINKS ++ CONFIG_COMMANDS = $CONFIG_COMMANDS ++ $ $0 $@ ++ ++on `(hostname || uname -n) 2>/dev/null | sed 1q` ++" ++ ++# Files that config.status was made for. ++config_files=" Makefile enca.spec enca.pc devel-docs/Makefile data/Makefile lib/Makefile script/Makefile script/b-cstocs script/b-map script/b-piconv script/b-umap src/Makefile src/HELP test/Makefile tools/Makefile" ++config_headers=" config.h" ++config_commands=" depfiles libtool" ++ ++ac_cs_usage="\ ++\`$as_me' instantiates files and other configuration actions ++from templates according to the current configuration. Unless the files ++and actions are specified as TAGs, all are instantiated by default. ++ ++Usage: $0 [OPTION]... [TAG]... ++ ++ -h, --help print this help, then exit ++ -V, --version print version number and configuration settings, then exit ++ --config print configuration, then exit ++ -q, --quiet, --silent ++ 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 ++ --header=FILE[:TEMPLATE] ++ instantiate the configuration header FILE ++ ++Configuration files: ++$config_files ++ ++Configuration headers: ++$config_headers ++ ++Configuration commands: ++$config_commands ++ ++Report bugs to ." ++ ++ac_cs_config="" ++ac_cs_version="\ ++Enca config.status 1.13 ++configured by ./configure, generated by GNU Autoconf 2.65, ++ with options \"$ac_cs_config\" ++ ++Copyright (C) 2009 Free Software Foundation, Inc. ++This config.status script is free software; the Free Software Foundation ++gives unlimited permission to copy, distribute and modify it." ++ ++ac_pwd='/home/stephan/projects/openelec/sources/enca/enca-1.13.patch' ++srcdir='.' ++INSTALL='/usr/bin/install -c' ++MKDIR_P='/bin/mkdir -p' ++AWK='gawk' ++test -n "$AWK" || AWK=awk ++# 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_shift=: ++ ;; ++ *) ++ ac_option=$1 ++ ac_optarg=$2 ++ ac_shift=shift ++ ;; ++ esac ++ ++ case $ac_option in ++ # Handling of the options. ++ -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ++ ac_cs_recheck=: ;; ++ --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) ++ $as_echo "$ac_cs_version"; exit ;; ++ --config | --confi | --conf | --con | --co | --c ) ++ $as_echo "$ac_cs_config"; exit ;; ++ --debug | --debu | --deb | --de | --d | -d ) ++ debug=: ;; ++ --file | --fil | --fi | --f ) ++ $ac_shift ++ case $ac_optarg in ++ *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; ++ esac ++ as_fn_append CONFIG_FILES " '$ac_optarg'" ++ ac_need_defaults=false;; ++ --header | --heade | --head | --hea ) ++ $ac_shift ++ case $ac_optarg in ++ *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; ++ esac ++ as_fn_append CONFIG_HEADERS " '$ac_optarg'" ++ ac_need_defaults=false;; ++ --he | --h) ++ # Conflict between --help and --header ++ as_fn_error "ambiguous option: \`$1' ++Try \`$0 --help' for more information.";; ++ --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. ++ -*) as_fn_error "unrecognized option: \`$1' ++Try \`$0 --help' for more information." ;; ++ ++ *) as_fn_append ac_config_targets " $1" ++ ac_need_defaults=false ;; ++ ++ esac ++ shift ++done ++ ++ac_configure_extra_args= ++ ++if $ac_cs_silent; then ++ exec 6>/dev/null ++ ac_configure_extra_args="$ac_configure_extra_args --silent" ++fi ++ ++if $ac_cs_recheck; then ++ set X '/bin/sh' './configure' $ac_configure_extra_args --no-create --no-recursion ++ shift ++ $as_echo "running CONFIG_SHELL=/bin/sh $*" >&6 ++ CONFIG_SHELL='/bin/sh' ++ export CONFIG_SHELL ++ exec "$@" ++fi ++ ++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 ++ ++# ++# INIT-COMMANDS ++# ++AMDEP_TRUE="" ac_aux_dir="." ++ ++ ++# The HP-UX ksh and POSIX shell print the target directory to stdout ++# if CDPATH is set. ++(unset CDPATH) >/dev/null 2>&1 && unset CDPATH ++ ++sed_quote_subst='s/\(["`$\\]\)/\\\1/g' ++double_quote_subst='s/\(["`\\]\)/\\\1/g' ++delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' ++macro_version='2.2.6b' ++macro_revision='1.3017' ++enable_shared='yes' ++enable_static='yes' ++pic_mode='default' ++enable_fast_install='yes' ++host_alias='' ++host='i686-pc-linux-gnu' ++host_os='linux-gnu' ++build_alias='' ++build='i686-pc-linux-gnu' ++build_os='linux-gnu' ++SED='/bin/sed' ++Xsed='/bin/sed -e 1s/^X//' ++GREP='/bin/grep' ++EGREP='/bin/grep -E' ++FGREP='/bin/grep -F' ++LD='/usr/bin/ld' ++NM='/usr/bin/nm -B' ++LN_S='ln -s' ++max_cmd_len='1966080' ++ac_objext='o' ++exeext='' ++lt_unset='unset' ++lt_SP2NL='tr \040 \012' ++lt_NL2SP='tr \015\012 \040\040' ++reload_flag=' -r' ++reload_cmds='$LD$reload_flag -o $output$reload_objs' ++OBJDUMP='objdump' ++deplibs_check_method='pass_all' ++file_magic_cmd='$MAGIC_CMD' ++AR='ar' ++AR_FLAGS='cru' ++STRIP='strip' ++RANLIB='ranlib' ++old_postinstall_cmds='chmod 644 $oldlib~$RANLIB $oldlib' ++old_postuninstall_cmds='' ++old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs~$RANLIB $oldlib' ++CC='gcc' ++CFLAGS='-Wall -W -pedantic -g -O2' ++compiler='gcc' ++GCC='yes' ++lt_cv_sys_global_symbol_pipe='sed -n -e '\''s/^.*[ ]\([ABCDGIRSTW][ABCDGIRSTW]*\)[ ][ ]*\([_A-Za-z][_A-Za-z0-9]*\)$/\1 \2 \2/p'\''' ++lt_cv_sys_global_symbol_to_cdecl='sed -n -e '\''s/^T .* \(.*\)$/extern int \1();/p'\'' -e '\''s/^[ABCDGIRSTW]* .* \(.*\)$/extern char \1;/p'\''' ++lt_cv_sys_global_symbol_to_c_name_address='sed -n -e '\''s/^: \([^ ]*\) $/ {\"\1\", (void *) 0},/p'\'' -e '\''s/^[ABCDGIRSTW]* \([^ ]*\) \([^ ]*\)$/ {"\2", (void *) \&\2},/p'\''' ++lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='sed -n -e '\''s/^: \([^ ]*\) $/ {\"\1\", (void *) 0},/p'\'' -e '\''s/^[ABCDGIRSTW]* \([^ ]*\) \(lib[^ ]*\)$/ {"\2", (void *) \&\2},/p'\'' -e '\''s/^[ABCDGIRSTW]* \([^ ]*\) \([^ ]*\)$/ {"lib\2", (void *) \&\2},/p'\''' ++objdir='.libs' ++SHELL='/bin/sh' ++ECHO='echo' ++MAGIC_CMD='file' ++lt_prog_compiler_no_builtin_flag=' -fno-builtin' ++lt_prog_compiler_wl='-Wl,' ++lt_prog_compiler_pic=' -fPIC -DPIC' ++lt_prog_compiler_static='-static' ++lt_cv_prog_compiler_c_o='yes' ++need_locks='no' ++DSYMUTIL='' ++NMEDIT='' ++LIPO='' ++OTOOL='' ++OTOOL64='' ++libext='a' ++shrext_cmds='.so' ++extract_expsyms_cmds='' ++archive_cmds_need_lc='no' ++enable_shared_with_static_runtimes='no' ++export_dynamic_flag_spec='${wl}--export-dynamic' ++whole_archive_flag_spec='${wl}--whole-archive$convenience ${wl}--no-whole-archive' ++compiler_needs_object='no' ++old_archive_from_new_cmds='' ++old_archive_from_expsyms_cmds='' ++archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' ++archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ ++ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ ++ echo "local: *; };" >> $output_objdir/$libname.ver~ ++ $CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' ++module_cmds='' ++module_expsym_cmds='' ++with_gnu_ld='yes' ++allow_undefined_flag='' ++no_undefined_flag='' ++hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' ++hardcode_libdir_flag_spec_ld='' ++hardcode_libdir_separator='' ++hardcode_direct='no' ++hardcode_direct_absolute='no' ++hardcode_minus_L='no' ++hardcode_shlibpath_var='unsupported' ++hardcode_automatic='no' ++inherit_rpath='no' ++link_all_deplibs='unknown' ++fix_srcfile_path='' ++always_export_symbols='no' ++export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' ++exclude_expsyms='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*' ++include_expsyms='' ++prelink_cmds='' ++file_list_spec='' ++variables_saved_for_relink='PATH LD_LIBRARY_PATH LD_RUN_PATH GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH' ++need_lib_prefix='no' ++need_version='no' ++version_type='linux' ++runpath_var='LD_RUN_PATH' ++shlibpath_var='LD_LIBRARY_PATH' ++shlibpath_overrides_runpath='no' ++libname_spec='lib$name' ++library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' ++soname_spec='${libname}${release}${shared_ext}$major' ++postinstall_cmds='' ++postuninstall_cmds='' ++finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' ++finish_eval='' ++hardcode_into_libs='yes' ++sys_lib_search_path_spec='/usr/lib/gcc/i686-redhat-linux/4.4.3 /usr/lib /lib' ++sys_lib_dlsearch_path_spec='/lib64 /usr/lib64 /lib /usr/lib /usr/lib/atlas /usr/lib/ctapi /usr/lib/mysql /usr/lib/OGRE /usr/lib/wine/ /usr/lib/xulrunner-1.9.1 ' ++hardcode_action='immediate' ++enable_dlopen='unknown' ++enable_dlopen_self='unknown' ++enable_dlopen_self_static='unknown' ++old_striplib='strip --strip-debug' ++striplib='strip --strip-unneeded' ++ ++LTCC='gcc' ++LTCFLAGS='-g -O2' ++compiler='gcc' ++ ++# Quote evaled strings. ++for var in SED GREP EGREP FGREP LD NM LN_S lt_SP2NL lt_NL2SP reload_flag OBJDUMP deplibs_check_method file_magic_cmd AR AR_FLAGS STRIP RANLIB CC CFLAGS compiler lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl lt_cv_sys_global_symbol_to_c_name_address lt_cv_sys_global_symbol_to_c_name_address_lib_prefix SHELL ECHO lt_prog_compiler_no_builtin_flag lt_prog_compiler_wl lt_prog_compiler_pic lt_prog_compiler_static lt_cv_prog_compiler_c_o need_locks DSYMUTIL NMEDIT LIPO OTOOL OTOOL64 shrext_cmds export_dynamic_flag_spec whole_archive_flag_spec compiler_needs_object with_gnu_ld allow_undefined_flag no_undefined_flag hardcode_libdir_flag_spec hardcode_libdir_flag_spec_ld hardcode_libdir_separator fix_srcfile_path exclude_expsyms include_expsyms file_list_spec variables_saved_for_relink libname_spec library_names_spec soname_spec finish_eval old_striplib striplib; do ++ case `eval \\$ECHO "X\\$$var"` in ++ *[\\\`\"\$]*) ++ eval "lt_$var=\\\"\`\$ECHO \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" ++ ;; ++ *) ++ eval "lt_$var=\\\"\$$var\\\"" ++ ;; ++ esac ++done ++ ++# Double-quote double-evaled strings. ++for var in reload_cmds old_postinstall_cmds old_postuninstall_cmds old_archive_cmds extract_expsyms_cmds old_archive_from_new_cmds old_archive_from_expsyms_cmds archive_cmds archive_expsym_cmds module_cmds module_expsym_cmds export_symbols_cmds prelink_cmds postinstall_cmds postuninstall_cmds finish_cmds sys_lib_search_path_spec sys_lib_dlsearch_path_spec; do ++ case `eval \\$ECHO "X\\$$var"` in ++ *[\\\`\"\$]*) ++ eval "lt_$var=\\\"\`\$ECHO \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" ++ ;; ++ *) ++ eval "lt_$var=\\\"\$$var\\\"" ++ ;; ++ esac ++done ++ ++# Fix-up fallback echo if it was mangled by the above quoting rules. ++case $lt_ECHO in ++*'\$0 --fallback-echo"') lt_ECHO=`$ECHO "X$lt_ECHO" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` ++ ;; ++esac ++ ++ac_aux_dir='.' ++xsi_shell='yes' ++lt_shell_append='yes' ++ ++# See if we are running on zsh, and set the options which allow our ++# commands through without removal of \ escapes INIT. ++if test -n "${ZSH_VERSION+set}" ; then ++ setopt NO_GLOB_SUBST ++fi ++ ++ ++ PACKAGE='enca' ++ VERSION='1.13' ++ TIMESTAMP='' ++ RM='rm -f' ++ ofile='libtool' ++ ++ ++ ++ ++ ++# Handling of arguments. ++for ac_config_target in $ac_config_targets ++do ++ case $ac_config_target in ++ "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; ++ "enca.spec") CONFIG_FILES="$CONFIG_FILES enca.spec" ;; ++ "enca.pc") CONFIG_FILES="$CONFIG_FILES enca.pc" ;; ++ "devel-docs/Makefile") CONFIG_FILES="$CONFIG_FILES devel-docs/Makefile" ;; ++ "data/Makefile") CONFIG_FILES="$CONFIG_FILES data/Makefile" ;; ++ "lib/Makefile") CONFIG_FILES="$CONFIG_FILES lib/Makefile" ;; ++ "script/Makefile") CONFIG_FILES="$CONFIG_FILES script/Makefile" ;; ++ "script/b-cstocs") CONFIG_FILES="$CONFIG_FILES script/b-cstocs" ;; ++ "script/b-map") CONFIG_FILES="$CONFIG_FILES script/b-map" ;; ++ "script/b-piconv") CONFIG_FILES="$CONFIG_FILES script/b-piconv" ;; ++ "script/b-umap") CONFIG_FILES="$CONFIG_FILES script/b-umap" ;; ++ "src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;; ++ "src/HELP") CONFIG_FILES="$CONFIG_FILES src/HELP" ;; ++ "test/Makefile") CONFIG_FILES="$CONFIG_FILES test/Makefile" ;; ++ "tools/Makefile") CONFIG_FILES="$CONFIG_FILES tools/Makefile" ;; ++ "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; ++ "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; ++ "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;; ++ ++ *) as_fn_error "invalid argument: \`$ac_config_target'" "$LINENO" 5;; ++ 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 ++# bizarre bug on SunOS 4.1.3. ++if $ac_need_defaults; then ++ test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files ++ test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers ++ test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands ++fi ++ ++# Have a temporary directory for convenience. Make it in the build tree ++# simply because there is no reason against having it here, and in addition, ++# creating and moving files from /tmp can sometimes cause problems. ++# 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 || ++{ ++ tmp= ++ trap 'exit_status=$? ++ { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status ++' 0 ++ trap 'as_fn_exit 1' 1 2 13 15 ++} ++# Create a (secure) tmp directory for tmp files. ++ ++{ ++ tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && ++ test -n "$tmp" && test -d "$tmp" ++} || ++{ ++ tmp=./conf$$-$RANDOM ++ (umask 077 && mkdir "$tmp") ++} || as_fn_error "cannot create a temporary directory in ." "$LINENO" 5 ++ ++# 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=`echo X | tr X '\015'` ++# On cygwin, bash can eat \r inside `` if the user requested igncr. ++# But we know of no other shell where ac_cr would be empty at this ++# point, so we can use a bashism as a fallback. ++if test "x$ac_cr" = x; then ++ eval ac_cr=\$\'\\r\' ++fi ++ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /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" && ++cat >>"$tmp/subs1.awk" <<\_ACAWK && ++S["am__EXEEXT_FALSE"]="" ++S["am__EXEEXT_TRUE"]="#" ++S["LTLIBOBJS"]="" ++S["SHELL_RANDOM_FILENAME"]="`/bin/mktemp /tmp/enca-$$-XXXXXXXX`" ++S["DEFAULT_CONVERTER_LIST"]="built-in,iconv" ++S["DEFAULT_EXTERNAL_CONVERTER"]="piconv" ++S["CONVERTER_LIBS"]=" " ++S["RELEASE"]="1" ++S["LTLIBICONV"]="" ++S["LIBICONV"]="" ++S["LIBOBJS"]="" ++S["LIBM"]="-lm" ++S["ENABLE_GTK_DOC_FALSE"]="#" ++S["ENABLE_GTK_DOC_TRUE"]="" ++S["GTKDOC"]="true" ++S["HTML_DIR"]="${datarootdir}/gtk-doc/html" ++S["MAP_PROG"]="" ++S["PICONV_PROG"]="/usr/bin/piconv" ++S["UMAP_PROG"]="" ++S["RECODE_PROG"]="" ++S["CSTOCS_PROG"]="" ++S["MKTEMP_PROG"]="/bin/mktemp" ++S["OTOOL64"]="" ++S["OTOOL"]="" ++S["LIPO"]="" ++S["NMEDIT"]="" ++S["DSYMUTIL"]="" ++S["lt_ECHO"]="echo" ++S["RANLIB"]="ranlib" ++S["AR"]="ar" ++S["OBJDUMP"]="objdump" ++S["LN_S"]="ln -s" ++S["NM"]="/usr/bin/nm -B" ++S["ac_ct_DUMPBIN"]="" ++S["DUMPBIN"]="" ++S["LD"]="/usr/bin/ld" ++S["FGREP"]="/bin/grep -F" ++S["SED"]="/bin/sed" ++S["host_os"]="linux-gnu" ++S["host_vendor"]="pc" ++S["host_cpu"]="i686" ++S["host"]="i686-pc-linux-gnu" ++S["build_os"]="linux-gnu" ++S["build_vendor"]="pc" ++S["build_cpu"]="i686" ++S["build"]="i686-pc-linux-gnu" ++S["LIBTOOL"]="$(SHELL) $(top_builddir)/libtool" ++S["EGREP"]="/bin/grep -E" ++S["GREP"]="/bin/grep" ++S["CPP"]="gcc -E" ++S["am__fastdepCC_FALSE"]="#" ++S["am__fastdepCC_TRUE"]="" ++S["CCDEPMODE"]="depmode=gcc3" ++S["AMDEPBACKSLASH"]="\\" ++S["AMDEP_FALSE"]="#" ++S["AMDEP_TRUE"]="" ++S["am__quote"]="" ++S["am__include"]="include" ++S["DEPDIR"]=".deps" ++S["OBJEXT"]="o" ++S["EXEEXT"]="" ++S["ac_ct_CC"]="gcc" ++S["CPPFLAGS"]="" ++S["LDFLAGS"]="" ++S["CFLAGS"]="-Wall -W -pedantic -g -O2" ++S["CC"]="gcc" ++S["MAINT"]="#" ++S["MAINTAINER_MODE_FALSE"]="" ++S["MAINTAINER_MODE_TRUE"]="#" ++S["am__untar"]="${AMTAR} xf -" ++S["am__tar"]="${AMTAR} chof - \"$$tardir\"" ++S["AMTAR"]="${SHELL} /home/stephan/projects/openelec/sources/enca/enca-1.13.patch/missing --run tar" ++S["am__leading_dot"]="." ++S["SET_MAKE"]="" ++S["AWK"]="gawk" ++S["mkdir_p"]="/bin/mkdir -p" ++S["MKDIR_P"]="/bin/mkdir -p" ++S["INSTALL_STRIP_PROGRAM"]="$(install_sh) -c -s" ++S["STRIP"]="strip" ++S["install_sh"]="${SHELL} /home/stephan/projects/openelec/sources/enca/enca-1.13.patch/install-sh" ++S["MAKEINFO"]="${SHELL} /home/stephan/projects/openelec/sources/enca/enca-1.13.patch/missing --run makeinfo" ++S["AUTOHEADER"]="${SHELL} /home/stephan/projects/openelec/sources/enca/enca-1.13.patch/missing --run autoheader" ++S["AUTOMAKE"]="${SHELL} /home/stephan/projects/openelec/sources/enca/enca-1.13.patch/missing --run automake-1.11" ++S["AUTOCONF"]="${SHELL} /home/stephan/projects/openelec/sources/enca/enca-1.13.patch/missing --run autoconf" ++S["ACLOCAL"]="${SHELL} /home/stephan/projects/openelec/sources/enca/enca-1.13.patch/missing --run aclocal-1.11 -I m4" ++S["VERSION"]="1.13" ++S["PACKAGE"]="enca" ++S["CYGPATH_W"]="echo" ++S["am__isrc"]="" ++S["INSTALL_DATA"]="${INSTALL} -m 644" ++S["INSTALL_SCRIPT"]="${INSTALL}" ++S["INSTALL_PROGRAM"]="${INSTALL}" ++S["target_alias"]="" ++S["host_alias"]="" ++S["build_alias"]="" ++S["LIBS"]=" -lm" ++S["ECHO_T"]="" ++S["ECHO_N"]="-n" ++S["ECHO_C"]="" ++S["DEFS"]="-DHAVE_CONFIG_H" ++S["mandir"]="${datarootdir}/man" ++S["localedir"]="${datarootdir}/locale" ++S["libdir"]="${exec_prefix}/lib" ++S["psdir"]="${docdir}" ++S["pdfdir"]="${docdir}" ++S["dvidir"]="${docdir}" ++S["htmldir"]="${docdir}" ++S["infodir"]="${datarootdir}/info" ++S["docdir"]="${datarootdir}/doc/${PACKAGE_TARNAME}" ++S["oldincludedir"]="/usr/include" ++S["includedir"]="${prefix}/include" ++S["localstatedir"]="${prefix}/var" ++S["sharedstatedir"]="${prefix}/com" ++S["sysconfdir"]="${prefix}/etc" ++S["datadir"]="${datarootdir}" ++S["datarootdir"]="${prefix}/share" ++S["libexecdir"]="${exec_prefix}/libexec" ++S["sbindir"]="${exec_prefix}/sbin" ++S["bindir"]="${exec_prefix}/bin" ++S["program_transform_name"]="s,x,x," ++S["prefix"]="/usr/local" ++S["exec_prefix"]="${prefix}" ++S["PACKAGE_URL"]="" ++S["PACKAGE_BUGREPORT"]="https://bugs.cihar.com/" ++S["PACKAGE_STRING"]="Enca 1.13" ++S["PACKAGE_VERSION"]="1.13" ++S["PACKAGE_TARNAME"]="enca" ++S["PACKAGE_NAME"]="Enca" ++S["PATH_SEPARATOR"]=":" ++S["SHELL"]="/bin/sh" ++_ACAWK ++cat >>"$tmp/subs1.awk" <<_ACAWK && ++ for (key in S) S_is_set[key] = 1 ++ FS = "" ++ ++} ++{ ++ 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 ++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_fn_error "could not setup config files machinery" "$LINENO" 5 ++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 { ++D["PACKAGE_NAME"]=" \"Enca\"" ++D["PACKAGE_TARNAME"]=" \"enca\"" ++D["PACKAGE_VERSION"]=" \"1.13\"" ++D["PACKAGE_STRING"]=" \"Enca 1.13\"" ++D["PACKAGE_BUGREPORT"]=" \"https://bugs.cihar.com/\"" ++D["PACKAGE_URL"]=" \"\"" ++D["PACKAGE"]=" \"enca\"" ++D["VERSION"]=" \"1.13\"" ++D["STDC_HEADERS"]=" 1" ++D["HAVE_SYS_TYPES_H"]=" 1" ++D["HAVE_SYS_STAT_H"]=" 1" ++D["HAVE_STDLIB_H"]=" 1" ++D["HAVE_STRING_H"]=" 1" ++D["HAVE_MEMORY_H"]=" 1" ++D["HAVE_STRINGS_H"]=" 1" ++D["HAVE_INTTYPES_H"]=" 1" ++D["HAVE_STDINT_H"]=" 1" ++D["HAVE_UNISTD_H"]=" 1" ++D["__EXTENSIONS__"]=" 1" ++D["_ALL_SOURCE"]=" 1" ++D["_GNU_SOURCE"]=" 1" ++D["_POSIX_PTHREAD_SEMANTICS"]=" 1" ++D["_TANDEM_SOURCE"]=" 1" ++D["HAVE_DLFCN_H"]=" 1" ++D["LT_OBJDIR"]=" \".libs/\"" ++D["PICONV_PROG"]=" \"/usr/bin/piconv\"" ++D["HAVE__DEV_RANDOM"]=" 1" ++D["HAVE__DEV_URANDOM"]=" 1" ++D["STDC_HEADERS"]=" 1" ++D["HAVE_SYS_WAIT_H"]=" 1" ++D["TIME_WITH_SYS_TIME"]=" 1" ++D["HAVE__BOOL"]=" 1" ++D["HAVE_STDBOOL_H"]=" 1" ++D["HAVE_ERRNO_H"]=" 1" ++D["HAVE_FCNTL_H"]=" 1" ++D["HAVE_GETOPT_H"]=" 1" ++D["HAVE_LANGINFO_H"]=" 1" ++D["HAVE_LIMITS_H"]=" 1" ++D["HAVE_LOCALE_H"]=" 1" ++D["HAVE_MEMORY_H"]=" 1" ++D["HAVE_STRING_H"]=" 1" ++D["HAVE_STRINGS_H"]=" 1" ++D["HAVE_SYS_STAT_H"]=" 1" ++D["HAVE_SYS_TYPES_H"]=" 1" ++D["HAVE_SYS_WAIT_H"]=" 1" ++D["HAVE_SYS_TIME_H"]=" 1" ++D["HAVE_TIME_H"]=" 1" ++D["HAVE_UNISTD_H"]=" 1" ++D["HAVE_WORDEXP_H"]=" 1" ++D["HAVE_DECL_LC_MESSAGES"]=" 1" ++D["HAVE_PROGRAM_INVOCATION_SHORT_NAME"]=" 1" ++D["HAVE_FORK"]=" 1" ++D["HAVE_VFORK"]=" 1" ++D["HAVE_WORKING_VFORK"]=" 1" ++D["HAVE_WORKING_FORK"]=" 1" ++D["HAVE_CANONICALIZE_FILE_NAME"]=" 1" ++D["HAVE_FTRUNCATE"]=" 1" ++D["HAVE_GETTIMEOFDAY"]=" 1" ++D["HAVE_ISATTY"]=" 1" ++D["HAVE_NL_LANGINFO"]=" 1" ++D["HAVE_RANDOM"]=" 1" ++D["HAVE_REALPATH"]=" 1" ++D["HAVE_STRSTR"]=" 1" ++D["HAVE_STPCPY"]=" 1" ++D["HAVE_SETLOCALE"]=" 1" ++D["HAVE_TTYNAME"]=" 1" ++D["HAVE_WORDEXP"]=" 1" ++D["HAVE_GETOPT_LONG"]=" 1" ++D["HAVE_ICONV"]=" 1" ++D["ICONV_CONST"]=" " ++D["HAVE_GOOD_ICONV"]=" 1" ++D["ICONV_IS_TRANSITIVE"]=" 1" ++D["DEFAULT_CONVERTER_LIST"]=" \"built-in,iconv\"" ++D["ENABLE_EXTERNAL"]=" 1" ++D["DEFAULT_EXTERNAL_CONVERTER"]=" \"piconv\"" ++D["HAVE_LOCALE_ALIAS"]=" 1" ++D["LOCALE_ALIAS_PATH"]=" \"/usr/share/locale/locale.alias\"" ++ for (key in D) D_is_set[key] = 1 ++ FS = "" ++} ++/^[\t ]*#[\t ]*(define|undef)[\t ]+[_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ][_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789]*([\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] ++ prefix = substr(line, 1, index(line, defundef) - 1) ++ if (D_is_set[macro]) { ++ # Preserve the white space surrounding the "#". ++ 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 "/*", prefix defundef, macro, "*/" ++ next ++ } ++ } ++} ++{ print } ++_ACAWK ++ as_fn_error "could not setup config headers machinery" "$LINENO" 5 ++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_fn_error "invalid tag \`$ac_tag'" "$LINENO" 5;; ++ :[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 ++ ++ 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_fn_error "cannot find input file: \`$ac_f'" "$LINENO" 5;; ++ esac ++ case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac ++ as_fn_append 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:${as_lineno-$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_fn_error "could not create $ac_file" "$LINENO" 5 ;; ++ 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 || ++$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"; as_fn_mkdir_p ++ ac_builddir=. ++ ++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 ++ .) # We are building in place. ++ ac_srcdir=. ++ 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 ++ 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 ++ ++ ++ case $ac_mode in ++ :F) ++ # ++ # CONFIG_FILE ++ # ++ ++ case $INSTALL in ++ [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; ++ *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; ++ esac ++ ac_MKDIR_P=$MKDIR_P ++ case $MKDIR_P in ++ [\\/$]* | ?:[\\/]* ) ;; ++ */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;; ++ esac ++# 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:${as_lineno-$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;} ++ ac_datarootdir_hack=' ++ s&@datadir@&${datarootdir}&g ++ s&@docdir@&${datarootdir}/doc/${PACKAGE_TARNAME}&g ++ s&@infodir@&${datarootdir}/info&g ++ s&@localedir@&${datarootdir}/locale&g ++ s&@mandir@&${datarootdir}/man&g ++ s&\${datarootdir}&${prefix}/share&g' ;; ++esac ++ac_sed_extra="/^[ ]*VPATH[ ]*=/{ ++s/:*\$(srcdir):*/:/ ++s/:*\${srcdir}:*/:/ ++s/:*@srcdir@:*/:/ ++s/^\([^=]*=[ ]*\):*/\1/ ++s/:*$// ++s/^[^=]*=[ ]*$// ++} ++ ++:t ++/@[a-zA-Z_][a-zA-Z_0-9]*@/!b ++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 ++s&@MKDIR_P@&$ac_MKDIR_P&;t t ++$ac_datarootdir_hack ++" ++eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \ ++ || as_fn_error "could not create $ac_file" "$LINENO" 5 ++ ++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:${as_lineno-$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;} ++ ++ rm -f "$tmp/stdin" ++ case $ac_file in ++ -) cat "$tmp/out" && rm -f "$tmp/out";; ++ *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";; ++ esac \ ++ || as_fn_error "could not create $ac_file" "$LINENO" 5 ++ ;; ++ :H) ++ # ++ # CONFIG_HEADER ++ # ++ if test x"$ac_file" != x-; then ++ { ++ $as_echo "/* $configure_input */" \ ++ && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" ++ } >"$tmp/config.h" \ ++ || as_fn_error "could not create $ac_file" "$LINENO" 5 ++ if diff "$ac_file" "$tmp/config.h" >/dev/null 2>&1; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 ++$as_echo "$as_me: $ac_file is unchanged" >&6;} ++ else ++ rm -f "$ac_file" ++ mv "$tmp/config.h" "$ac_file" \ ++ || as_fn_error "could not create $ac_file" "$LINENO" 5 ++ fi ++ else ++ $as_echo "/* $configure_input */" \ ++ && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" \ ++ || as_fn_error "could not create -" "$LINENO" 5 ++ fi ++# Compute "$ac_file"'s index in $config_headers. ++_am_arg="$ac_file" ++_am_stamp_count=1 ++for _am_header in $config_headers :; do ++ case $_am_header in ++ $_am_arg | $_am_arg:* ) ++ break ;; ++ * ) ++ _am_stamp_count=`expr $_am_stamp_count + 1` ;; ++ esac ++done ++echo "timestamp for $_am_arg" >`$as_dirname -- "$_am_arg" || ++$as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ ++ X"$_am_arg" : 'X\(//\)[^/]' \| \ ++ X"$_am_arg" : 'X\(//\)$' \| \ ++ X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null || ++$as_echo X"$_am_arg" | ++ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ ++ s//\1/ ++ q ++ } ++ /^X\(\/\/\)[^/].*/{ ++ s//\1/ ++ q ++ } ++ /^X\(\/\/\)$/{ ++ s//\1/ ++ q ++ } ++ /^X\(\/\).*/{ ++ s//\1/ ++ q ++ } ++ s/.*/./; q'`/stamp-h$_am_stamp_count ++ ;; ++ ++ :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5 ++$as_echo "$as_me: executing $ac_file commands" >&6;} ++ ;; ++ esac ++ ++ ++ case $ac_file$ac_mode in ++ "depfiles":C) test x"$AMDEP_TRUE" != x"" || { ++ # Autoconf 2.62 quotes --file arguments for eval, but not when files ++ # are listed without --file. Let's play safe and only enable the eval ++ # if we detect the quoting. ++ case $CONFIG_FILES in ++ *\'*) eval set x "$CONFIG_FILES" ;; ++ *) set x $CONFIG_FILES ;; ++ esac ++ shift ++ for mf ++ 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. ++ # We used to match only the files named `Makefile.in', but ++ # some people rename them; so instead we look at the file content. ++ # Grep'ing the first line is not enough: some people post-process ++ # each Makefile.in and add a new line on top of each file to say so. ++ # Grep'ing the whole file is not good either: AIX grep has a line ++ # limit of 2048, but all sed's we know have understand at least 4000. ++ if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then ++ dirpart=`$as_dirname -- "$mf" || ++$as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ ++ X"$mf" : 'X\(//\)[^/]' \| \ ++ X"$mf" : 'X\(//\)$' \| \ ++ 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 ++ # Extract the definition of DEPDIR, am__include, and am__quote ++ # from the Makefile without running `make'. ++ DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` ++ test -z "$DEPDIR" && continue ++ am__include=`sed -n 's/^am__include = //p' < "$mf"` ++ test -z "am__include" && continue ++ am__quote=`sed -n 's/^am__quote = //p' < "$mf"` ++ # When using ansi2knr, U may be empty or an underscore; expand it ++ U=`sed -n 's/^U = //p' < "$mf"` ++ # Find all dependency output files, they are included files with ++ # $(DEPDIR) in their names. We invoke sed twice because it is the ++ # simplest approach to changing $(DEPDIR) to its actual value in the ++ # expansion. ++ for file in `sed -n " ++ s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ ++ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do ++ # Make sure the directory exists. ++ test -f "$dirpart/$file" && continue ++ fdir=`$as_dirname -- "$file" || ++$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ ++ X"$file" : 'X\(//\)[^/]' \| \ ++ X"$file" : 'X\(//\)$' \| \ ++ 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; as_fn_mkdir_p ++ # echo "creating $dirpart/$file" ++ echo '# dummy' > "$dirpart/$file" ++ done ++ done ++} ++ ;; ++ "libtool":C) ++ ++ # See if we are running on zsh, and set the options which allow our ++ # commands through without removal of \ escapes. ++ if test -n "${ZSH_VERSION+set}" ; then ++ setopt NO_GLOB_SUBST ++ fi ++ ++ cfgfile="${ofile}T" ++ trap "$RM \"$cfgfile\"; exit 1" 1 2 15 ++ $RM "$cfgfile" ++ ++ cat <<_LT_EOF >> "$cfgfile" ++#! $SHELL ++ ++# `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. ++# Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION ++# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: ++# NOTE: Changes made to this file will be lost: look at ltmain.sh. ++# ++# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, ++# 2006, 2007, 2008 Free Software Foundation, Inc. ++# Written by Gordon Matzigkeit, 1996 ++# ++# This file is part of GNU Libtool. ++# ++# GNU Libtool is free software; you can redistribute it and/or ++# modify it under the terms of the GNU General Public License as ++# published by the Free Software Foundation; either version 2 of ++# the License, or (at your option) any later version. ++# ++# As a special exception to the GNU General Public License, ++# if you distribute this file as part of a program or library that ++# is built using GNU Libtool, you may include this file under the ++# same distribution terms that you use for the rest of that program. ++# ++# GNU Libtool is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++# GNU General Public License for more details. ++# ++# You should have received a copy of the GNU General Public License ++# along with GNU Libtool; see the file COPYING. If not, a copy ++# can be downloaded from http://www.gnu.org/licenses/gpl.html, or ++# obtained by writing to the Free Software Foundation, Inc., ++# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. ++ ++ ++# The names of the tagged configurations supported by this script. ++available_tags="" ++ ++# ### BEGIN LIBTOOL CONFIG ++ ++# Which release of libtool.m4 was used? ++macro_version=$macro_version ++macro_revision=$macro_revision ++ ++# Whether or not to build shared libraries. ++build_libtool_libs=$enable_shared ++ ++# Whether or not to build static libraries. ++build_old_libs=$enable_static ++ ++# What type of objects to build. ++pic_mode=$pic_mode ++ ++# Whether or not to optimize for fast installation. ++fast_install=$enable_fast_install ++ ++# The host system. ++host_alias=$host_alias ++host=$host ++host_os=$host_os ++ ++# The build system. ++build_alias=$build_alias ++build=$build ++build_os=$build_os ++ ++# A sed program that does not truncate output. ++SED=$lt_SED ++ ++# Sed that helps us avoid accidentally triggering echo(1) options like -n. ++Xsed="\$SED -e 1s/^X//" ++ ++# A grep program that handles long lines. ++GREP=$lt_GREP ++ ++# An ERE matcher. ++EGREP=$lt_EGREP ++ ++# A literal string matcher. ++FGREP=$lt_FGREP ++ ++# A BSD- or MS-compatible name lister. ++NM=$lt_NM ++ ++# Whether we need soft or hard links. ++LN_S=$lt_LN_S ++ ++# What is the maximum length of a command? ++max_cmd_len=$max_cmd_len ++ ++# Object file suffix (normally "o"). ++objext=$ac_objext ++ ++# Executable file suffix (normally ""). ++exeext=$exeext ++ ++# whether the shell understands "unset". ++lt_unset=$lt_unset ++ ++# turn spaces into newlines. ++SP2NL=$lt_lt_SP2NL ++ ++# turn newlines into spaces. ++NL2SP=$lt_lt_NL2SP ++ ++# How to create reloadable object files. ++reload_flag=$lt_reload_flag ++reload_cmds=$lt_reload_cmds ++ ++# An object symbol dumper. ++OBJDUMP=$lt_OBJDUMP ++ ++# Method to check whether dependent libraries are shared objects. ++deplibs_check_method=$lt_deplibs_check_method ++ ++# Command to use when deplibs_check_method == "file_magic". ++file_magic_cmd=$lt_file_magic_cmd ++ ++# The archiver. ++AR=$lt_AR ++AR_FLAGS=$lt_AR_FLAGS ++ ++# A symbol stripping program. ++STRIP=$lt_STRIP ++ ++# Commands used to install an old-style archive. ++RANLIB=$lt_RANLIB ++old_postinstall_cmds=$lt_old_postinstall_cmds ++old_postuninstall_cmds=$lt_old_postuninstall_cmds ++ ++# A C compiler. ++LTCC=$lt_CC ++ ++# LTCC compiler flags. ++LTCFLAGS=$lt_CFLAGS ++ ++# Take the output of nm and produce a listing of raw symbols and C names. ++global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe ++ ++# Transform the output of nm in a proper C declaration. ++global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl ++ ++# Transform the output of nm in a C name address pair. ++global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address ++ ++# Transform the output of nm in a C name address pair when lib prefix is needed. ++global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix ++ ++# The name of the directory that contains temporary libtool files. ++objdir=$objdir ++ ++# Shell to use when invoking shell scripts. ++SHELL=$lt_SHELL ++ ++# An echo program that does not interpret backslashes. ++ECHO=$lt_ECHO ++ ++# Used to examine libraries when file_magic_cmd begins with "file". ++MAGIC_CMD=$MAGIC_CMD ++ ++# Must we lock files when doing compilation? ++need_locks=$lt_need_locks ++ ++# Tool to manipulate archived DWARF debug symbol files on Mac OS X. ++DSYMUTIL=$lt_DSYMUTIL ++ ++# Tool to change global to local symbols on Mac OS X. ++NMEDIT=$lt_NMEDIT ++ ++# Tool to manipulate fat objects and archives on Mac OS X. ++LIPO=$lt_LIPO ++ ++# ldd/readelf like tool for Mach-O binaries on Mac OS X. ++OTOOL=$lt_OTOOL ++ ++# ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4. ++OTOOL64=$lt_OTOOL64 ++ ++# Old archive suffix (normally "a"). ++libext=$libext ++ ++# Shared library suffix (normally ".so"). ++shrext_cmds=$lt_shrext_cmds ++ ++# The commands to extract the exported symbol list from a shared archive. ++extract_expsyms_cmds=$lt_extract_expsyms_cmds ++ ++# Variables whose values should be saved in libtool wrapper scripts and ++# restored at link time. ++variables_saved_for_relink=$lt_variables_saved_for_relink ++ ++# Do we need the "lib" prefix for modules? ++need_lib_prefix=$need_lib_prefix ++ ++# Do we need a version for libraries? ++need_version=$need_version ++ ++# Library versioning type. ++version_type=$version_type ++ ++# Shared library runtime path variable. ++runpath_var=$runpath_var ++ ++# Shared library path variable. ++shlibpath_var=$shlibpath_var ++ ++# Is shlibpath searched before the hard-coded library search path? ++shlibpath_overrides_runpath=$shlibpath_overrides_runpath ++ ++# Format of library name prefix. ++libname_spec=$lt_libname_spec ++ ++# List of archive names. First name is the real one, the rest are links. ++# The last name is the one that the linker finds with -lNAME ++library_names_spec=$lt_library_names_spec ++ ++# The coded name of the library, if different from the real name. ++soname_spec=$lt_soname_spec ++ ++# Command to use after installation of a shared archive. ++postinstall_cmds=$lt_postinstall_cmds ++ ++# Command to use after uninstallation of a shared archive. ++postuninstall_cmds=$lt_postuninstall_cmds ++ ++# Commands used to finish a libtool library installation in a directory. ++finish_cmds=$lt_finish_cmds ++ ++# As "finish_cmds", except a single script fragment to be evaled but ++# not shown. ++finish_eval=$lt_finish_eval ++ ++# Whether we should hardcode library paths into libraries. ++hardcode_into_libs=$hardcode_into_libs ++ ++# Compile-time system search path for libraries. ++sys_lib_search_path_spec=$lt_sys_lib_search_path_spec ++ ++# Run-time system search path for libraries. ++sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec ++ ++# Whether dlopen is supported. ++dlopen_support=$enable_dlopen ++ ++# Whether dlopen of programs is supported. ++dlopen_self=$enable_dlopen_self ++ ++# Whether dlopen of statically linked programs is supported. ++dlopen_self_static=$enable_dlopen_self_static ++ ++# Commands to strip libraries. ++old_striplib=$lt_old_striplib ++striplib=$lt_striplib ++ ++ ++# The linker used to build libraries. ++LD=$lt_LD ++ ++# Commands used to build an old-style archive. ++old_archive_cmds=$lt_old_archive_cmds ++ ++# A language specific compiler. ++CC=$lt_compiler ++ ++# Is the compiler the GNU compiler? ++with_gcc=$GCC ++ ++# Compiler flag to turn off builtin functions. ++no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag ++ ++# How to pass a linker flag through the compiler. ++wl=$lt_lt_prog_compiler_wl ++ ++# Additional compiler flags for building library objects. ++pic_flag=$lt_lt_prog_compiler_pic ++ ++# Compiler flag to prevent dynamic linking. ++link_static_flag=$lt_lt_prog_compiler_static ++ ++# Does compiler simultaneously support -c and -o options? ++compiler_c_o=$lt_lt_cv_prog_compiler_c_o ++ ++# Whether or not to add -lc for building shared libraries. ++build_libtool_need_lc=$archive_cmds_need_lc ++ ++# Whether or not to disallow shared libs when runtime libs are static. ++allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes ++ ++# Compiler flag to allow reflexive dlopens. ++export_dynamic_flag_spec=$lt_export_dynamic_flag_spec ++ ++# Compiler flag to generate shared objects directly from archives. ++whole_archive_flag_spec=$lt_whole_archive_flag_spec ++ ++# Whether the compiler copes with passing no objects directly. ++compiler_needs_object=$lt_compiler_needs_object ++ ++# Create an old-style archive from a shared archive. ++old_archive_from_new_cmds=$lt_old_archive_from_new_cmds ++ ++# Create a temporary old-style archive to link instead of a shared archive. ++old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds ++ ++# Commands used to build a shared archive. ++archive_cmds=$lt_archive_cmds ++archive_expsym_cmds=$lt_archive_expsym_cmds ++ ++# Commands used to build a loadable module if different from building ++# a shared archive. ++module_cmds=$lt_module_cmds ++module_expsym_cmds=$lt_module_expsym_cmds ++ ++# Whether we are building with GNU ld or not. ++with_gnu_ld=$lt_with_gnu_ld ++ ++# Flag that allows shared libraries with undefined symbols to be built. ++allow_undefined_flag=$lt_allow_undefined_flag ++ ++# Flag that enforces no undefined symbols. ++no_undefined_flag=$lt_no_undefined_flag ++ ++# Flag to hardcode \$libdir into a binary during linking. ++# This must work even if \$libdir does not exist ++hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec ++ ++# If ld is used when linking, flag to hardcode \$libdir into a binary ++# during linking. This must work even if \$libdir does not exist. ++hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld ++ ++# Whether we need a single "-rpath" flag with a separated argument. ++hardcode_libdir_separator=$lt_hardcode_libdir_separator ++ ++# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes ++# DIR into the resulting binary. ++hardcode_direct=$hardcode_direct ++ ++# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes ++# DIR into the resulting binary and the resulting library dependency is ++# "absolute",i.e impossible to change by setting \${shlibpath_var} if the ++# library is relocated. ++hardcode_direct_absolute=$hardcode_direct_absolute ++ ++# Set to "yes" if using the -LDIR flag during linking hardcodes DIR ++# into the resulting binary. ++hardcode_minus_L=$hardcode_minus_L ++ ++# Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR ++# into the resulting binary. ++hardcode_shlibpath_var=$hardcode_shlibpath_var ++ ++# Set to "yes" if building a shared library automatically hardcodes DIR ++# into the library and all subsequent libraries and executables linked ++# against it. ++hardcode_automatic=$hardcode_automatic ++ ++# Set to yes if linker adds runtime paths of dependent libraries ++# to runtime path list. ++inherit_rpath=$inherit_rpath ++ ++# Whether libtool must link a program against all its dependency libraries. ++link_all_deplibs=$link_all_deplibs ++ ++# Fix the shell variable \$srcfile for the compiler. ++fix_srcfile_path=$lt_fix_srcfile_path ++ ++# Set to "yes" if exported symbols are required. ++always_export_symbols=$always_export_symbols ++ ++# The commands to list exported symbols. ++export_symbols_cmds=$lt_export_symbols_cmds ++ ++# Symbols that should not be listed in the preloaded symbols. ++exclude_expsyms=$lt_exclude_expsyms ++ ++# Symbols that must always be exported. ++include_expsyms=$lt_include_expsyms ++ ++# Commands necessary for linking programs (against libraries) with templates. ++prelink_cmds=$lt_prelink_cmds ++ ++# Specify filename containing input files. ++file_list_spec=$lt_file_list_spec ++ ++# How to hardcode a shared library path into an executable. ++hardcode_action=$hardcode_action ++ ++# ### END LIBTOOL CONFIG ++ ++_LT_EOF ++ ++ case $host_os in ++ aix3*) ++ cat <<\_LT_EOF >> "$cfgfile" ++# AIX sometimes has problems with the GCC collect2 program. For some ++# reason, if we set the COLLECT_NAMES environment variable, the problems ++# vanish in a puff of smoke. ++if test "X${COLLECT_NAMES+set}" != Xset; then ++ COLLECT_NAMES= ++ export COLLECT_NAMES ++fi ++_LT_EOF ++ ;; ++ esac ++ ++ ++ltmain="$ac_aux_dir/ltmain.sh" ++ ++ ++ # We use sed instead of cat because bash on DJGPP gets confused if ++ # if finds mixed CR/LF and LF-only lines. Since sed operates in ++ # text mode, it properly converts lines to CR/LF. This bash problem ++ # is reportedly fixed, but why not run on old versions too? ++ sed '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \ ++ || (rm -f "$cfgfile"; exit 1) ++ ++ case $xsi_shell in ++ yes) ++ cat << \_LT_EOF >> "$cfgfile" ++ ++# func_dirname file append nondir_replacement ++# Compute the dirname of FILE. If nonempty, add APPEND to the result, ++# otherwise set result to NONDIR_REPLACEMENT. ++func_dirname () ++{ ++ case ${1} in ++ */*) func_dirname_result="${1%/*}${2}" ;; ++ * ) func_dirname_result="${3}" ;; ++ esac ++} ++ ++# func_basename file ++func_basename () ++{ ++ func_basename_result="${1##*/}" ++} ++ ++# func_dirname_and_basename file append nondir_replacement ++# perform func_basename and func_dirname in a single function ++# call: ++# dirname: Compute the dirname of FILE. If nonempty, ++# add APPEND to the result, otherwise set result ++# to NONDIR_REPLACEMENT. ++# value returned in "$func_dirname_result" ++# basename: Compute filename of FILE. ++# value retuned in "$func_basename_result" ++# Implementation must be kept synchronized with func_dirname ++# and func_basename. For efficiency, we do not delegate to ++# those functions but instead duplicate the functionality here. ++func_dirname_and_basename () ++{ ++ case ${1} in ++ */*) func_dirname_result="${1%/*}${2}" ;; ++ * ) func_dirname_result="${3}" ;; ++ esac ++ func_basename_result="${1##*/}" ++} ++ ++# func_stripname prefix suffix name ++# strip PREFIX and SUFFIX off of NAME. ++# PREFIX and SUFFIX must not contain globbing or regex special ++# characters, hashes, percent signs, but SUFFIX may contain a leading ++# dot (in which case that matches only a dot). ++func_stripname () ++{ ++ # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are ++ # positional parameters, so assign one to ordinary parameter first. ++ func_stripname_result=${3} ++ func_stripname_result=${func_stripname_result#"${1}"} ++ func_stripname_result=${func_stripname_result%"${2}"} ++} ++ ++# func_opt_split ++func_opt_split () ++{ ++ func_opt_split_opt=${1%%=*} ++ func_opt_split_arg=${1#*=} ++} ++ ++# func_lo2o object ++func_lo2o () ++{ ++ case ${1} in ++ *.lo) func_lo2o_result=${1%.lo}.${objext} ;; ++ *) func_lo2o_result=${1} ;; ++ esac ++} ++ ++# func_xform libobj-or-source ++func_xform () ++{ ++ func_xform_result=${1%.*}.lo ++} ++ ++# func_arith arithmetic-term... ++func_arith () ++{ ++ func_arith_result=$(( $* )) ++} ++ ++# func_len string ++# STRING may not start with a hyphen. ++func_len () ++{ ++ func_len_result=${#1} ++} ++ ++_LT_EOF ++ ;; ++ *) # Bourne compatible functions. ++ cat << \_LT_EOF >> "$cfgfile" ++ ++# func_dirname file append nondir_replacement ++# Compute the dirname of FILE. If nonempty, add APPEND to the result, ++# otherwise set result to NONDIR_REPLACEMENT. ++func_dirname () ++{ ++ # Extract subdirectory from the argument. ++ func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"` ++ if test "X$func_dirname_result" = "X${1}"; then ++ func_dirname_result="${3}" ++ else ++ func_dirname_result="$func_dirname_result${2}" ++ fi ++} ++ ++# func_basename file ++func_basename () ++{ ++ func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"` ++} ++ ++ ++# func_stripname prefix suffix name ++# strip PREFIX and SUFFIX off of NAME. ++# PREFIX and SUFFIX must not contain globbing or regex special ++# characters, hashes, percent signs, but SUFFIX may contain a leading ++# dot (in which case that matches only a dot). ++# func_strip_suffix prefix name ++func_stripname () ++{ ++ case ${2} in ++ .*) func_stripname_result=`$ECHO "X${3}" \ ++ | $Xsed -e "s%^${1}%%" -e "s%\\\\${2}\$%%"`;; ++ *) func_stripname_result=`$ECHO "X${3}" \ ++ | $Xsed -e "s%^${1}%%" -e "s%${2}\$%%"`;; ++ esac ++} ++ ++# sed scripts: ++my_sed_long_opt='1s/^\(-[^=]*\)=.*/\1/;q' ++my_sed_long_arg='1s/^-[^=]*=//' ++ ++# func_opt_split ++func_opt_split () ++{ ++ func_opt_split_opt=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_opt"` ++ func_opt_split_arg=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_arg"` ++} ++ ++# func_lo2o object ++func_lo2o () ++{ ++ func_lo2o_result=`$ECHO "X${1}" | $Xsed -e "$lo2o"` ++} ++ ++# func_xform libobj-or-source ++func_xform () ++{ ++ func_xform_result=`$ECHO "X${1}" | $Xsed -e 's/\.[^.]*$/.lo/'` ++} ++ ++# func_arith arithmetic-term... ++func_arith () ++{ ++ func_arith_result=`expr "$@"` ++} ++ ++# func_len string ++# STRING may not start with a hyphen. ++func_len () ++{ ++ func_len_result=`expr "$1" : ".*" 2>/dev/null || echo $max_cmd_len` ++} ++ ++_LT_EOF ++esac ++ ++case $lt_shell_append in ++ yes) ++ cat << \_LT_EOF >> "$cfgfile" ++ ++# func_append var value ++# Append VALUE to the end of shell variable VAR. ++func_append () ++{ ++ eval "$1+=\$2" ++} ++_LT_EOF ++ ;; ++ *) ++ cat << \_LT_EOF >> "$cfgfile" ++ ++# func_append var value ++# Append VALUE to the end of shell variable VAR. ++func_append () ++{ ++ eval "$1=\$$1\$2" ++} ++ ++_LT_EOF ++ ;; ++ esac ++ ++ ++ sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \ ++ || (rm -f "$cfgfile"; exit 1) ++ ++ mv -f "$cfgfile" "$ofile" || ++ (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") ++ chmod +x "$ofile" ++ ++ ;; ++ ++ esac ++done # for ac_tag ++ ++ ++as_fn_exit 0 +diff -Naur enca-1.13/configure enca-1.13.patch/configure +--- enca-1.13/configure 2010-02-09 11:23:03.000000000 +0100 ++++ enca-1.13.patch/configure 2010-04-16 18:41:08.657317798 +0200 +@@ -5531,11 +5531,11 @@ + ;; + # This must be Linux ELF. +-linux* | k*bsd*-gnu | kopensolaris*-gnu) ++linux* | k*bsd*-gnu) + lt_cv_deplibs_check_method=pass_all + ;; --as_fn_exit 0 -+{ (exit 0); exit 0; } - _ACEOF -+chmod +x $CONFIG_STATUS - ac_clean_files=$ac_clean_files_save +-netbsd* | netbsdelf*-gnu) ++netbsd*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' + else +@@ -7701,7 +7701,7 @@ + lt_prog_compiler_static='-non_shared' + ;; - test $ac_write_fail = 0 || -- as_fn_error "write failure creating $CONFIG_STATUS" "$LINENO" 5 -+ { { $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; }; } +- linux* | k*bsd*-gnu | kopensolaris*-gnu) ++ linux* | k*bsd*-gnu) + case $cc_basename in + # old Intel for x86_64 which still supported -KPIC. + ecc*) +@@ -8150,9 +8150,6 @@ + openbsd*) + with_gnu_ld=no + ;; +- linux* | k*bsd*-gnu) +- link_all_deplibs=no +- ;; + esac + ld_shlibs=yes +@@ -8174,7 +8171,6 @@ + fi + supports_anon_versioning=no + case `$LD -v 2>&1` in +- *GNU\ gold*) supports_anon_versioning=yes ;; + *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 + *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... + *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... +@@ -8266,7 +8262,7 @@ + archive_expsym_cmds='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + ;; - # configure is writing to config.log, and then calls config.status. -@@ -16435,10 +19583,10 @@ - exec 5>>config.log - # Use ||, not &&, to avoid exiting from the if with $? = 1, which - # would make configure fail if this is the last instruction. -- $ac_cs_success || as_fn_exit $? -+ $ac_cs_success || { (exit 1); exit 1; } - fi - if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then -- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 -+ { $as_echo "$as_me:$LINENO: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 - $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} +- gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) ++ gnu* | linux* | tpf* | k*bsd*-gnu) + tmp_diet=no + if test "$host_os" = linux-dietlibc; then + case $cc_basename in +@@ -8336,7 +8332,7 @@ + fi + ;; + +- netbsd* | netbsdelf*-gnu) ++ netbsd*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' + wlarc= +@@ -8511,7 +8507,6 @@ + if test "$aix_use_runtimelinking" = yes; then + shared_flag="$shared_flag "'${wl}-G' + fi +- link_all_deplibs=no + else + # not using gcc + if test "$host_cpu" = ia64; then +@@ -8838,7 +8833,7 @@ + link_all_deplibs=yes + ;; + +- netbsd* | netbsdelf*-gnu) ++ netbsd*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out + else +@@ -9728,7 +9723,7 @@ + ;; + + # This must be Linux ELF. +-linux* | k*bsd*-gnu | kopensolaris*-gnu) ++linux* | k*bsd*-gnu) + version_type=linux + need_lib_prefix=no + need_version=no +@@ -9768,10 +9763,13 @@ + # before this can be enabled. + hardcode_into_libs=yes + ++ # Add ABI-specific directories to the system library path. ++ sys_lib_dlsearch_path_spec="/lib64 /usr/lib64 /lib /usr/lib" ++ + # Append ld.so.conf contents to the search path + if test -f /etc/ld.so.conf; then + lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` +- sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" ++ sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec $lt_ld_extra" + fi + + # We used to test for /lib/ld.so.1 and disable shared libraries on +@@ -9783,18 +9781,6 @@ + dynamic_linker='GNU/Linux ld.so' + ;; + +-netbsdelf*-gnu) +- version_type=linux +- need_lib_prefix=no +- need_version=no +- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' +- soname_spec='${libname}${release}${shared_ext}$major' +- shlibpath_var=LD_LIBRARY_PATH +- shlibpath_overrides_runpath=no +- hardcode_into_libs=yes +- dynamic_linker='NetBSD ld.elf_so' +- ;; +- + netbsd*) + version_type=sunos + need_lib_prefix=no +@@ -10415,7 +10401,7 @@ + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<_LT_EOF +-#line 10418 "configure" ++#line 10404 "configure" + #include "confdefs.h" + + #if HAVE_DLFCN_H +@@ -10511,7 +10497,7 @@ + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<_LT_EOF +-#line 10514 "configure" ++#line 10500 "configure" + #include "confdefs.h" + + #if HAVE_DLFCN_H +@@ -12036,14 +12022,6 @@ fi -@@ -16494,19 +19642,19 @@ - echo "=================================================================" - if test "$ac_cv_header_stdc" != yes; then -- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: expect build to fail since we depend on \"ISO C headers\"" >&5 -+ { $as_echo "$as_me:$LINENO: WARNING: expect build to fail since we depend on \"ISO C headers\"" >&5 - $as_echo "$as_me: WARNING: expect build to fail since we depend on \"ISO C headers\"" >&2;} - fi - if test "$ac_cv_header_unistd_h" != yes; then -- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: expect build to fail since we depend on \"unistd.h\"" >&5 -+ { $as_echo "$as_me:$LINENO: WARNING: expect build to fail since we depend on \"unistd.h\"" >&5 - $as_echo "$as_me: WARNING: expect build to fail since we depend on \"unistd.h\"" >&2;} - fi - if test "$ac_cv_header_sys_types_h" != yes; then -- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: expect build to fail since we depend on \"sys/types.h\"" >&5 -+ { $as_echo "$as_me:$LINENO: WARNING: expect build to fail since we depend on \"sys/types.h\"" >&5 - $as_echo "$as_me: WARNING: expect build to fail since we depend on \"sys/types.h\"" >&2;} - fi - if test "$ac_cv_header_sys_stat_h" != yes; then -- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: expect build to fail since we depend on \"sys/stat.h\"" >&5 -+ { $as_echo "$as_me:$LINENO: WARNING: expect build to fail since we depend on \"sys/stat.h\"" >&5 - $as_echo "$as_me: WARNING: expect build to fail since we depend on \"sys/stat.h\"" >&2;} - fi +-if test "$prefix" = "NONE"; then +- LDFLAGS="$LDFLAGS -L$ac_default_prefix/lib" +- CPPFLAGS="$CPPFLAGS -I$ac_default_prefix/include" +-else +- LDFLAGS="$LDFLAGS -L$prefix/lib" +- CPPFLAGS="$CPPFLAGS -I$prefix/include" +-fi +- -diff -Naur enca-1.12/configure.ac enca-1.12.patch/configure.ac ---- enca-1.12/configure.ac 2009-10-29 13:05:11.000000000 +0100 -+++ enca-1.12.patch/configure.ac 2009-12-19 01:17:40.884469262 +0100 + case "$target" in + NONE) yeti_libm_target="$host" ;; +diff -Naur enca-1.13/configure.ac enca-1.13.patch/configure.ac +--- enca-1.13/configure.ac 2010-02-09 11:23:03.000000000 +0100 ++++ enca-1.13.patch/configure.ac 2010-04-16 18:40:54.443444882 +0200 @@ -97,15 +97,6 @@ dnl Check for good random number sources AC_CHECK_FILES(/dev/random /dev/urandom /dev/srandom /dev/arandom) @@ -12690,4 +4581,15345 @@ diff -Naur enca-1.12/configure.ac enca-1.12.patch/configure.ac dnl Checks for libraries. ye_CHECK_LIBM -diff -Naur enca-1.12/configure.ac.orig enca-1.12.patch/configure.ac.orig +diff -Naur enca-1.13/data/.deps/basetoc.Po enca-1.13.patch/data/.deps/basetoc.Po +--- enca-1.13/data/.deps/basetoc.Po 1970-01-01 01:00:00.000000000 +0100 ++++ enca-1.13.patch/data/.deps/basetoc.Po 2010-04-16 18:41:17.859442524 +0200 +@@ -0,0 +1 @@ ++# dummy +diff -Naur enca-1.13/data/.deps/countall.Po enca-1.13.patch/data/.deps/countall.Po +--- enca-1.13/data/.deps/countall.Po 1970-01-01 01:00:00.000000000 +0100 ++++ enca-1.13.patch/data/.deps/countall.Po 2010-04-16 18:41:17.861442973 +0200 +@@ -0,0 +1 @@ ++# dummy +diff -Naur enca-1.13/data/.deps/countpair.Po enca-1.13.patch/data/.deps/countpair.Po +--- enca-1.13/data/.deps/countpair.Po 1970-01-01 01:00:00.000000000 +0100 ++++ enca-1.13.patch/data/.deps/countpair.Po 2010-04-16 18:41:17.863464095 +0200 +@@ -0,0 +1 @@ ++# dummy +diff -Naur enca-1.13/data/.deps/findletters.Po enca-1.13.patch/data/.deps/findletters.Po +--- enca-1.13/data/.deps/findletters.Po 1970-01-01 01:00:00.000000000 +0100 ++++ enca-1.13.patch/data/.deps/findletters.Po 2010-04-16 18:41:17.865451414 +0200 +@@ -0,0 +1 @@ ++# dummy +diff -Naur enca-1.13/data/.deps/mystrings.Po enca-1.13.patch/data/.deps/mystrings.Po +--- enca-1.13/data/.deps/mystrings.Po 1970-01-01 01:00:00.000000000 +0100 ++++ enca-1.13.patch/data/.deps/mystrings.Po 2010-04-16 18:41:17.867442574 +0200 +@@ -0,0 +1 @@ ++# dummy +diff -Naur enca-1.13/data/.deps/pairtoc.Po enca-1.13.patch/data/.deps/pairtoc.Po +--- enca-1.13/data/.deps/pairtoc.Po 1970-01-01 01:00:00.000000000 +0100 ++++ enca-1.13.patch/data/.deps/pairtoc.Po 2010-04-16 18:41:17.869451893 +0200 +@@ -0,0 +1 @@ ++# dummy +diff -Naur enca-1.13/data/.deps/xlt.Po enca-1.13.patch/data/.deps/xlt.Po +--- enca-1.13/data/.deps/xlt.Po 1970-01-01 01:00:00.000000000 +0100 ++++ enca-1.13.patch/data/.deps/xlt.Po 2010-04-16 18:41:17.871442495 +0200 +@@ -0,0 +1 @@ ++# dummy +diff -Naur enca-1.13/data/Makefile enca-1.13.patch/data/Makefile +--- enca-1.13/data/Makefile 1970-01-01 01:00:00.000000000 +0100 ++++ enca-1.13.patch/data/Makefile 2010-04-16 18:41:17.561442668 +0200 +@@ -0,0 +1,677 @@ ++# Makefile.in generated by automake 1.11.1 from Makefile.am. ++# data/Makefile. Generated from Makefile.in by configure. ++ ++# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, ++# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, ++# Inc. ++# This Makefile.in is free software; the Free Software Foundation ++# gives unlimited permission to copy and/or distribute it, ++# with or without modifications, as long as this notice is preserved. ++ ++# This program is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY, to the extent permitted by law; without ++# even the implied warranty of MERCHANTABILITY or FITNESS FOR A ++# PARTICULAR PURPOSE. ++ ++ ++ ++ ++ ++ ++pkgdatadir = $(datadir)/enca ++pkgincludedir = $(includedir)/enca ++pkglibdir = $(libdir)/enca ++pkglibexecdir = $(libexecdir)/enca ++am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd ++install_sh_DATA = $(install_sh) -c -m 644 ++install_sh_PROGRAM = $(install_sh) -c ++install_sh_SCRIPT = $(install_sh) -c ++INSTALL_HEADER = $(INSTALL_DATA) ++transform = $(program_transform_name) ++NORMAL_INSTALL = : ++PRE_INSTALL = : ++POST_INSTALL = : ++NORMAL_UNINSTALL = : ++PRE_UNINSTALL = : ++POST_UNINSTALL = : ++build_triplet = i686-pc-linux-gnu ++host_triplet = i686-pc-linux-gnu ++noinst_PROGRAMS = basetoc$(EXEEXT) countall$(EXEEXT) \ ++ countpair$(EXEEXT) findletters$(EXEEXT) mystrings$(EXEEXT) \ ++ pairtoc$(EXEEXT) xlt$(EXEEXT) ++subdir = data ++DIST_COMMON = README $(noinst_HEADERS) $(srcdir)/Makefile.am \ ++ $(srcdir)/Makefile.in ++ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 ++am__aclocal_m4_deps = $(top_srcdir)/m4/gtk-doc.m4 \ ++ $(top_srcdir)/m4/libiconv.m4 $(top_srcdir)/m4/libm.m4 \ ++ $(top_srcdir)/m4/librecode.m4 $(top_srcdir)/m4/libtool.m4 \ ++ $(top_srcdir)/m4/localias.m4 $(top_srcdir)/m4/ltoptions.m4 \ ++ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ ++ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/tools.m4 \ ++ $(top_srcdir)/m4/typevar.m4 $(top_srcdir)/configure.ac ++am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ ++ $(ACLOCAL_M4) ++mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs ++CONFIG_HEADER = $(top_builddir)/config.h ++CONFIG_CLEAN_FILES = ++CONFIG_CLEAN_VPATH_FILES = ++PROGRAMS = $(noinst_PROGRAMS) ++am_basetoc_OBJECTS = basetoc.$(OBJEXT) ++basetoc_OBJECTS = $(am_basetoc_OBJECTS) ++basetoc_LDADD = $(LDADD) ++am_countall_OBJECTS = countall.$(OBJEXT) ++countall_OBJECTS = $(am_countall_OBJECTS) ++countall_LDADD = $(LDADD) ++am_countpair_OBJECTS = countpair.$(OBJEXT) ++countpair_OBJECTS = $(am_countpair_OBJECTS) ++countpair_LDADD = $(LDADD) ++am_findletters_OBJECTS = findletters.$(OBJEXT) ++findletters_OBJECTS = $(am_findletters_OBJECTS) ++findletters_LDADD = $(LDADD) ++am_mystrings_OBJECTS = mystrings.$(OBJEXT) ++mystrings_OBJECTS = $(am_mystrings_OBJECTS) ++mystrings_LDADD = $(LDADD) ++am_pairtoc_OBJECTS = pairtoc.$(OBJEXT) ++pairtoc_OBJECTS = $(am_pairtoc_OBJECTS) ++pairtoc_LDADD = $(LDADD) ++am_xlt_OBJECTS = xlt.$(OBJEXT) ++xlt_OBJECTS = $(am_xlt_OBJECTS) ++xlt_LDADD = $(LDADD) ++DEFAULT_INCLUDES = -I. -I$(top_builddir) ++depcomp = $(SHELL) $(top_srcdir)/depcomp ++am__depfiles_maybe = depfiles ++am__mv = mv -f ++COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ ++ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) ++LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ ++ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ ++ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) ++CCLD = $(CC) ++LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ ++ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ ++ $(LDFLAGS) -o $@ ++SOURCES = $(basetoc_SOURCES) $(countall_SOURCES) $(countpair_SOURCES) \ ++ $(findletters_SOURCES) $(mystrings_SOURCES) $(pairtoc_SOURCES) \ ++ $(xlt_SOURCES) ++DIST_SOURCES = $(basetoc_SOURCES) $(countall_SOURCES) \ ++ $(countpair_SOURCES) $(findletters_SOURCES) \ ++ $(mystrings_SOURCES) $(pairtoc_SOURCES) $(xlt_SOURCES) ++DATA = $(noinst_DATA) ++HEADERS = $(noinst_HEADERS) ++ETAGS = etags ++CTAGS = ctags ++DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ++ACLOCAL = ${SHELL} /home/stephan/projects/openelec/sources/enca/enca-1.13.patch/missing --run aclocal-1.11 -I m4 ++AMTAR = ${SHELL} /home/stephan/projects/openelec/sources/enca/enca-1.13.patch/missing --run tar ++AR = ar ++AUTOCONF = ${SHELL} /home/stephan/projects/openelec/sources/enca/enca-1.13.patch/missing --run autoconf ++AUTOHEADER = ${SHELL} /home/stephan/projects/openelec/sources/enca/enca-1.13.patch/missing --run autoheader ++AUTOMAKE = ${SHELL} /home/stephan/projects/openelec/sources/enca/enca-1.13.patch/missing --run automake-1.11 ++AWK = gawk ++CC = gcc ++CCDEPMODE = depmode=gcc3 ++CFLAGS = -Wall -W -pedantic -g -O2 ++CONVERTER_LIBS = ++CPP = gcc -E ++CPPFLAGS = ++CSTOCS_PROG = ++CYGPATH_W = echo ++DEFAULT_CONVERTER_LIST = built-in,iconv ++DEFAULT_EXTERNAL_CONVERTER = piconv ++DEFS = -DHAVE_CONFIG_H ++DEPDIR = .deps ++DSYMUTIL = ++DUMPBIN = ++ECHO_C = ++ECHO_N = -n ++ECHO_T = ++EGREP = /bin/grep -E ++EXEEXT = ++FGREP = /bin/grep -F ++GREP = /bin/grep ++GTKDOC = true ++HTML_DIR = ${datarootdir}/gtk-doc/html ++INSTALL = /usr/bin/install -c ++INSTALL_DATA = ${INSTALL} -m 644 ++INSTALL_PROGRAM = ${INSTALL} ++INSTALL_SCRIPT = ${INSTALL} ++INSTALL_STRIP_PROGRAM = $(install_sh) -c -s ++LD = /usr/bin/ld ++LDFLAGS = ++LIBICONV = ++LIBM = -lm ++LIBOBJS = ++LIBS = -lm ++LIBTOOL = $(SHELL) $(top_builddir)/libtool ++LIPO = ++LN_S = ln -s ++LTLIBICONV = ++LTLIBOBJS = ++MAINT = # ++MAKEINFO = ${SHELL} /home/stephan/projects/openelec/sources/enca/enca-1.13.patch/missing --run makeinfo ++MAP_PROG = ++MKDIR_P = /bin/mkdir -p ++MKTEMP_PROG = /bin/mktemp ++NM = /usr/bin/nm -B ++NMEDIT = ++OBJDUMP = objdump ++OBJEXT = o ++OTOOL = ++OTOOL64 = ++PACKAGE = enca ++PACKAGE_BUGREPORT = https://bugs.cihar.com/ ++PACKAGE_NAME = Enca ++PACKAGE_STRING = Enca 1.13 ++PACKAGE_TARNAME = enca ++PACKAGE_URL = ++PACKAGE_VERSION = 1.13 ++PATH_SEPARATOR = : ++PICONV_PROG = /usr/bin/piconv ++RANLIB = ranlib ++RECODE_PROG = ++RELEASE = 1 ++SED = /bin/sed ++SET_MAKE = ++SHELL = /bin/sh ++SHELL_RANDOM_FILENAME = `/bin/mktemp /tmp/enca-$$-XXXXXXXX` ++STRIP = strip ++UMAP_PROG = ++VERSION = 1.13 ++abs_builddir = /home/stephan/projects/openelec/sources/enca/enca-1.13.patch/data ++abs_srcdir = /home/stephan/projects/openelec/sources/enca/enca-1.13.patch/data ++abs_top_builddir = /home/stephan/projects/openelec/sources/enca/enca-1.13.patch ++abs_top_srcdir = /home/stephan/projects/openelec/sources/enca/enca-1.13.patch ++ac_ct_CC = gcc ++ac_ct_DUMPBIN = ++am__include = include ++am__leading_dot = . ++am__quote = ++am__tar = ${AMTAR} chof - "$$tardir" ++am__untar = ${AMTAR} xf - ++bindir = ${exec_prefix}/bin ++build = i686-pc-linux-gnu ++build_alias = ++build_cpu = i686 ++build_os = linux-gnu ++build_vendor = pc ++builddir = . ++datadir = ${datarootdir} ++datarootdir = ${prefix}/share ++docdir = ${datarootdir}/doc/${PACKAGE_TARNAME} ++dvidir = ${docdir} ++exec_prefix = ${prefix} ++host = i686-pc-linux-gnu ++host_alias = ++host_cpu = i686 ++host_os = linux-gnu ++host_vendor = pc ++htmldir = ${docdir} ++includedir = ${prefix}/include ++infodir = ${datarootdir}/info ++install_sh = ${SHELL} /home/stephan/projects/openelec/sources/enca/enca-1.13.patch/install-sh ++libdir = ${exec_prefix}/lib ++libexecdir = ${exec_prefix}/libexec ++localedir = ${datarootdir}/locale ++localstatedir = ${prefix}/var ++lt_ECHO = echo ++mandir = ${datarootdir}/man ++mkdir_p = /bin/mkdir -p ++oldincludedir = /usr/include ++pdfdir = ${docdir} ++prefix = /usr/local ++program_transform_name = s,x,x, ++psdir = ${docdir} ++sbindir = ${exec_prefix}/sbin ++sharedstatedir = ${prefix}/com ++srcdir = . ++sysconfdir = ${prefix}/etc ++target_alias = ++top_build_prefix = ../ ++top_builddir = .. ++top_srcdir = .. ++noinst_DATA = $(BASES) $(RAWCOUNTS) $(PAIRCOUNTS) $(MAPS) Letters ++noinst_HEADERS = \ ++ belarussian/belarussian.h \ ++ bulgarian/bulgarian.h \ ++ chinese/chinese.h \ ++ chinese/zh_weight_big5.h \ ++ chinese/zh_weight_gbk.h \ ++ croatian/croatian.h \ ++ czech/czech.h \ ++ estonian/estonian.h \ ++ hungarian/hungarian.h \ ++ latvian/latvian.h \ ++ lithuanian/lithuanian.h \ ++ polish/polish.h \ ++ russian/russian.h \ ++ slovak/slovak.h \ ++ slovene/slovene.h \ ++ ukrainian/ukrainian.h ++ ++basetoc_SOURCES = basetoc.c ++countall_SOURCES = countall.c ++countpair_SOURCES = countpair.c ++findletters_SOURCES = findletters.c ++mystrings_SOURCES = mystrings.c ++pairtoc_SOURCES = pairtoc.c ++xlt_SOURCES = xlt.c ++noinst_SCRPITS = \ ++ clean.sh \ ++ doit.sh \ ++ extreme.pl \ ++ makepaircounts.sh \ ++ map2letters.sh \ ++ normalize.pl \ ++ totals.pl \ ++ belarussian/doit.sh \ ++ bulgarian/doit.sh \ ++ croatian/doit.sh \ ++ czech/doit.sh \ ++ estonian/doit.sh \ ++ hungarian/doit.sh \ ++ latvian/doit.sh \ ++ lithuanian/doit.sh \ ++ polish/doit.sh \ ++ russian/doit.sh \ ++ slovak/doit.sh \ ++ slovene/doit.sh \ ++ ukrainian/doit.sh ++ ++BASES = \ ++ belarussian/cp1251.base \ ++ bulgarian/cp1251.base \ ++ croatian/cp1250.base \ ++ czech/iso88592.base \ ++ estonian/iso88594.base \ ++ hungarian/iso88592.base \ ++ russian/koi8r.base \ ++ latvian/cp1257.base \ ++ lithuanian/cp1257.base \ ++ polish/iso88592.base \ ++ slovak/cp1250.base \ ++ slovene/iso88592.base \ ++ ukrainian/cp1251.base ++ ++RAWCOUNTS = \ ++ belarussian/rawcounts.cp1251 \ ++ bulgarian/rawcounts.cp1251 \ ++ croatian/rawcounts.cp1250 \ ++ czech/rawcounts.iso88592 \ ++ estonian/rawcounts.iso88594 \ ++ hungarian/rawcounts.iso88592 \ ++ latvian/rawcounts.cp1257 \ ++ lithuanian/rawcounts.cp1257 \ ++ polish/rawcounts.iso88592 \ ++ russian/rawcounts.koi8r \ ++ slovak/rawcounts.cp1250 \ ++ slovene/rawcounts.iso88592 \ ++ ukrainian/rawcounts.cp1251 ++ ++PAIRCOUNTS = \ ++ belarussian/paircounts.cp1251 \ ++ belarussian/paircounts.ibm866 \ ++ bulgarian/paircounts.cp1251 \ ++ russian/paircounts.koi8r \ ++ ukrainian/paircounts.cp1251 ++ ++MAPS = \ ++ maps/baltic.map \ ++ maps/cork.map \ ++ maps/cp1125.map \ ++ maps/cp1250.map \ ++ maps/cp1251.map \ ++ maps/cp1257.map \ ++ maps/ecma113.map \ ++ maps/ibm775.map \ ++ maps/ibm852.map \ ++ maps/ibm855.map \ ++ maps/ibm866-bad.map \ ++ maps/ibm866.map \ ++ maps/iso885913.map \ ++ maps/iso885916.map \ ++ maps/iso88592.map \ ++ maps/iso88594.map \ ++ maps/iso88595.map \ ++ maps/keybcs2.map \ ++ maps/koi8cs2.map \ ++ maps/koi8r.map \ ++ maps/koi8u.map \ ++ maps/koi8ub.map \ ++ maps/koi8uni.map \ ++ maps/macce.map \ ++ maps/maccyr.map ++ ++OTHERDATA = \ ++ chinese/zh_weight_big5.txt \ ++ chinese/zh_weight_gb.txt ++ ++EXTRA_DIST = README $(BASES) $(RAWCOUNTS) $(PAIRCOUNTS) $(MAPS) $(OTHERDATA) \ ++ $(noinst_SCRPITS) Letters ++ ++all: all-am ++ ++.SUFFIXES: ++.SUFFIXES: .c .lo .o .obj ++$(srcdir)/Makefile.in: # $(srcdir)/Makefile.am $(am__configure_deps) ++ @for dep in $?; do \ ++ case '$(am__configure_deps)' in \ ++ *$$dep*) \ ++ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ ++ && { if test -f $@; then exit 0; else break; fi; }; \ ++ exit 1;; \ ++ esac; \ ++ done; \ ++ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnits data/Makefile'; \ ++ $(am__cd) $(top_srcdir) && \ ++ $(AUTOMAKE) --gnits data/Makefile ++.PRECIOUS: Makefile ++Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status ++ @case '$?' in \ ++ *config.status*) \ ++ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ ++ *) \ ++ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ ++ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ ++ esac; ++ ++$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) ++ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ++ ++$(top_srcdir)/configure: # $(am__configure_deps) ++ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ++$(ACLOCAL_M4): # $(am__aclocal_m4_deps) ++ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ++$(am__aclocal_m4_deps): ++ ++clean-noinstPROGRAMS: ++ @list='$(noinst_PROGRAMS)'; test -n "$$list" || exit 0; \ ++ echo " rm -f" $$list; \ ++ rm -f $$list || exit $$?; \ ++ test -n "$(EXEEXT)" || exit 0; \ ++ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ ++ echo " rm -f" $$list; \ ++ rm -f $$list ++basetoc$(EXEEXT): $(basetoc_OBJECTS) $(basetoc_DEPENDENCIES) ++ @rm -f basetoc$(EXEEXT) ++ $(LINK) $(basetoc_OBJECTS) $(basetoc_LDADD) $(LIBS) ++countall$(EXEEXT): $(countall_OBJECTS) $(countall_DEPENDENCIES) ++ @rm -f countall$(EXEEXT) ++ $(LINK) $(countall_OBJECTS) $(countall_LDADD) $(LIBS) ++countpair$(EXEEXT): $(countpair_OBJECTS) $(countpair_DEPENDENCIES) ++ @rm -f countpair$(EXEEXT) ++ $(LINK) $(countpair_OBJECTS) $(countpair_LDADD) $(LIBS) ++findletters$(EXEEXT): $(findletters_OBJECTS) $(findletters_DEPENDENCIES) ++ @rm -f findletters$(EXEEXT) ++ $(LINK) $(findletters_OBJECTS) $(findletters_LDADD) $(LIBS) ++mystrings$(EXEEXT): $(mystrings_OBJECTS) $(mystrings_DEPENDENCIES) ++ @rm -f mystrings$(EXEEXT) ++ $(LINK) $(mystrings_OBJECTS) $(mystrings_LDADD) $(LIBS) ++pairtoc$(EXEEXT): $(pairtoc_OBJECTS) $(pairtoc_DEPENDENCIES) ++ @rm -f pairtoc$(EXEEXT) ++ $(LINK) $(pairtoc_OBJECTS) $(pairtoc_LDADD) $(LIBS) ++xlt$(EXEEXT): $(xlt_OBJECTS) $(xlt_DEPENDENCIES) ++ @rm -f xlt$(EXEEXT) ++ $(LINK) $(xlt_OBJECTS) $(xlt_LDADD) $(LIBS) ++ ++mostlyclean-compile: ++ -rm -f *.$(OBJEXT) ++ ++distclean-compile: ++ -rm -f *.tab.c ++ ++include ./$(DEPDIR)/basetoc.Po ++include ./$(DEPDIR)/countall.Po ++include ./$(DEPDIR)/countpair.Po ++include ./$(DEPDIR)/findletters.Po ++include ./$(DEPDIR)/mystrings.Po ++include ./$(DEPDIR)/pairtoc.Po ++include ./$(DEPDIR)/xlt.Po ++ ++.c.o: ++ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< ++ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po ++# source='$<' object='$@' libtool=no \ ++# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \ ++# $(COMPILE) -c $< ++ ++.c.obj: ++ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` ++ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po ++# source='$<' object='$@' libtool=no \ ++# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \ ++# $(COMPILE) -c `$(CYGPATH_W) '$<'` ++ ++.c.lo: ++ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< ++ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo ++# source='$<' object='$@' libtool=yes \ ++# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \ ++# $(LTCOMPILE) -c -o $@ $< ++ ++mostlyclean-libtool: ++ -rm -f *.lo ++ ++clean-libtool: ++ -rm -rf .libs _libs ++ ++ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) ++ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ ++ unique=`for i in $$list; do \ ++ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ ++ done | \ ++ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ ++ END { if (nonempty) { for (i in files) print i; }; }'`; \ ++ mkid -fID $$unique ++tags: TAGS ++ ++TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ ++ $(TAGS_FILES) $(LISP) ++ set x; \ ++ here=`pwd`; \ ++ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ ++ unique=`for i in $$list; do \ ++ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ ++ done | \ ++ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ ++ END { if (nonempty) { for (i in files) print i; }; }'`; \ ++ shift; \ ++ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ ++ test -n "$$unique" || unique=$$empty_fix; \ ++ if test $$# -gt 0; then \ ++ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ ++ "$$@" $$unique; \ ++ else \ ++ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ ++ $$unique; \ ++ fi; \ ++ fi ++ctags: CTAGS ++CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ ++ $(TAGS_FILES) $(LISP) ++ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ ++ unique=`for i in $$list; do \ ++ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ ++ done | \ ++ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ ++ END { if (nonempty) { for (i in files) print i; }; }'`; \ ++ test -z "$(CTAGS_ARGS)$$unique" \ ++ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ ++ $$unique ++ ++GTAGS: ++ here=`$(am__cd) $(top_builddir) && pwd` \ ++ && $(am__cd) $(top_srcdir) \ ++ && gtags -i $(GTAGS_ARGS) "$$here" ++ ++distclean-tags: ++ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags ++ ++distdir: $(DISTFILES) ++ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ ++ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ ++ list='$(DISTFILES)'; \ ++ dist_files=`for file in $$list; do echo $$file; done | \ ++ sed -e "s|^$$srcdirstrip/||;t" \ ++ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ ++ case $$dist_files in \ ++ */*) $(MKDIR_P) `echo "$$dist_files" | \ ++ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ ++ sort -u` ;; \ ++ esac; \ ++ for file in $$dist_files; do \ ++ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ ++ if test -d $$d/$$file; then \ ++ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ ++ if test -d "$(distdir)/$$file"; then \ ++ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ ++ fi; \ ++ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ ++ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ ++ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ ++ fi; \ ++ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ ++ else \ ++ test -f "$(distdir)/$$file" \ ++ || cp -p $$d/$$file "$(distdir)/$$file" \ ++ || exit 1; \ ++ fi; \ ++ done ++check-am: all-am ++check: check-am ++all-am: Makefile $(PROGRAMS) $(DATA) $(HEADERS) ++installdirs: ++install: install-am ++install-exec: install-exec-am ++install-data: install-data-am ++uninstall: uninstall-am ++ ++install-am: all-am ++ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am ++ ++installcheck: installcheck-am ++install-strip: ++ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ ++ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ ++ `test -z '$(STRIP)' || \ ++ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install ++mostlyclean-generic: ++ ++clean-generic: ++ ++distclean-generic: ++ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) ++ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) ++ ++maintainer-clean-generic: ++ @echo "This command is intended for maintainers to use" ++ @echo "it deletes files that may require special tools to rebuild." ++clean: clean-am ++ ++clean-am: clean-generic clean-libtool clean-local clean-noinstPROGRAMS \ ++ mostlyclean-am ++ ++distclean: distclean-am ++ -rm -rf ./$(DEPDIR) ++ -rm -f Makefile ++distclean-am: clean-am distclean-compile distclean-generic \ ++ distclean-local distclean-tags ++ ++dvi: dvi-am ++ ++dvi-am: ++ ++html: html-am ++ ++html-am: ++ ++info: info-am ++ ++info-am: ++ ++install-data-am: ++ ++install-dvi: install-dvi-am ++ ++install-dvi-am: ++ ++install-exec-am: ++ ++install-html: install-html-am ++ ++install-html-am: ++ ++install-info: install-info-am ++ ++install-info-am: ++ ++install-man: ++ ++install-pdf: install-pdf-am ++ ++install-pdf-am: ++ ++install-ps: install-ps-am ++ ++install-ps-am: ++ ++installcheck-am: ++ ++maintainer-clean: maintainer-clean-am ++ -rm -rf ./$(DEPDIR) ++ -rm -f Makefile ++maintainer-clean-am: distclean-am maintainer-clean-generic ++ ++mostlyclean: mostlyclean-am ++ ++mostlyclean-am: mostlyclean-compile mostlyclean-generic \ ++ mostlyclean-libtool ++ ++pdf: pdf-am ++ ++pdf-am: ++ ++ps: ps-am ++ ++ps-am: ++ ++uninstall-am: ++ ++.MAKE: install-am install-strip ++ ++.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ ++ clean-libtool clean-local clean-noinstPROGRAMS ctags distclean \ ++ distclean-compile distclean-generic distclean-libtool \ ++ distclean-local distclean-tags distdir dvi dvi-am html html-am \ ++ info info-am install install-am install-data install-data-am \ ++ install-dvi install-dvi-am install-exec install-exec-am \ ++ install-html install-html-am install-info install-info-am \ ++ install-man install-pdf install-pdf-am install-ps \ ++ install-ps-am install-strip installcheck installcheck-am \ ++ installdirs maintainer-clean maintainer-clean-generic \ ++ mostlyclean mostlyclean-compile mostlyclean-generic \ ++ mostlyclean-libtool pdf pdf-am ps ps-am tags uninstall \ ++ uninstall-am ++ ++ ++# We don't want to recreate the headers over and over, namely we don't want ++# to recreate them during normal compilation. Run `make headers' to create ++# them. ++headers: $(BASES) xlt letters ++ ./doit.sh ++ ++letters: ++ ./map2letters.sh ++ ++.PHONY: headers letters ++ ++clean-local: ++ -rm -f *~ */*~ core.* ++ ++distclean-local: ++ -./clean.sh ++ -rm -f $(noinst_PROGRAMS) ++ ++# Tell versions [3.59,3.63) of GNU make to not export all variables. ++# Otherwise a system limit (for SysV at least) may be exceeded. ++.NOEXPORT: +diff -Naur enca-1.13/devel-docs/Makefile enca-1.13.patch/devel-docs/Makefile +--- enca-1.13/devel-docs/Makefile 1970-01-01 01:00:00.000000000 +0100 ++++ enca-1.13.patch/devel-docs/Makefile 2010-04-16 18:41:17.533318001 +0200 +@@ -0,0 +1,574 @@ ++# Makefile.in generated by automake 1.11.1 from Makefile.am. ++# devel-docs/Makefile. Generated from Makefile.in by configure. ++ ++# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, ++# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, ++# Inc. ++# This Makefile.in is free software; the Free Software Foundation ++# gives unlimited permission to copy and/or distribute it, ++# with or without modifications, as long as this notice is preserved. ++ ++# This program is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY, to the extent permitted by law; without ++# even the implied warranty of MERCHANTABILITY or FITNESS FOR A ++# PARTICULAR PURPOSE. ++ ++ ++ ++# @(#) $Id: Makefile.am,v 1.8 2004/05/27 17:17:15 yeti Exp $ ++ ++# This is a blank Makefile.am for using gtk-doc. ++# Copy this to your project's API docs directory and modify the variables to ++# suit your project. See the GTK+ Makefiles in gtk+/docs/reference for examples ++# of using the various options. ++ ++pkgdatadir = $(datadir)/enca ++pkgincludedir = $(includedir)/enca ++pkglibdir = $(libdir)/enca ++pkglibexecdir = $(libexecdir)/enca ++am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd ++install_sh_DATA = $(install_sh) -c -m 644 ++install_sh_PROGRAM = $(install_sh) -c ++install_sh_SCRIPT = $(install_sh) -c ++INSTALL_HEADER = $(INSTALL_DATA) ++transform = $(program_transform_name) ++NORMAL_INSTALL = : ++PRE_INSTALL = : ++POST_INSTALL = : ++NORMAL_UNINSTALL = : ++PRE_UNINSTALL = : ++POST_UNINSTALL = : ++build_triplet = i686-pc-linux-gnu ++host_triplet = i686-pc-linux-gnu ++subdir = devel-docs ++DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ++ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 ++am__aclocal_m4_deps = $(top_srcdir)/m4/gtk-doc.m4 \ ++ $(top_srcdir)/m4/libiconv.m4 $(top_srcdir)/m4/libm.m4 \ ++ $(top_srcdir)/m4/librecode.m4 $(top_srcdir)/m4/libtool.m4 \ ++ $(top_srcdir)/m4/localias.m4 $(top_srcdir)/m4/ltoptions.m4 \ ++ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ ++ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/tools.m4 \ ++ $(top_srcdir)/m4/typevar.m4 $(top_srcdir)/configure.ac ++am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ ++ $(ACLOCAL_M4) ++mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs ++CONFIG_HEADER = $(top_builddir)/config.h ++CONFIG_CLEAN_FILES = ++CONFIG_CLEAN_VPATH_FILES = ++SOURCES = ++DIST_SOURCES = ++DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ++ACLOCAL = ${SHELL} /home/stephan/projects/openelec/sources/enca/enca-1.13.patch/missing --run aclocal-1.11 -I m4 ++AMTAR = ${SHELL} /home/stephan/projects/openelec/sources/enca/enca-1.13.patch/missing --run tar ++AR = ar ++AUTOCONF = ${SHELL} /home/stephan/projects/openelec/sources/enca/enca-1.13.patch/missing --run autoconf ++AUTOHEADER = ${SHELL} /home/stephan/projects/openelec/sources/enca/enca-1.13.patch/missing --run autoheader ++AUTOMAKE = ${SHELL} /home/stephan/projects/openelec/sources/enca/enca-1.13.patch/missing --run automake-1.11 ++AWK = gawk ++CC = gcc ++CCDEPMODE = depmode=gcc3 ++CFLAGS = -Wall -W -pedantic -g -O2 ++CONVERTER_LIBS = ++CPP = gcc -E ++CPPFLAGS = ++CSTOCS_PROG = ++CYGPATH_W = echo ++DEFAULT_CONVERTER_LIST = built-in,iconv ++DEFAULT_EXTERNAL_CONVERTER = piconv ++DEFS = -DHAVE_CONFIG_H ++DEPDIR = .deps ++DSYMUTIL = ++DUMPBIN = ++ECHO_C = ++ECHO_N = -n ++ECHO_T = ++EGREP = /bin/grep -E ++EXEEXT = ++FGREP = /bin/grep -F ++GREP = /bin/grep ++GTKDOC = true ++HTML_DIR = ${datarootdir}/gtk-doc/html ++INSTALL = /usr/bin/install -c ++INSTALL_DATA = ${INSTALL} -m 644 ++INSTALL_PROGRAM = ${INSTALL} ++INSTALL_SCRIPT = ${INSTALL} ++INSTALL_STRIP_PROGRAM = $(install_sh) -c -s ++LD = /usr/bin/ld ++LDFLAGS = ++LIBICONV = ++LIBM = -lm ++LIBOBJS = ++LIBS = -lm ++LIBTOOL = $(SHELL) $(top_builddir)/libtool ++LIPO = ++LN_S = ln -s ++LTLIBICONV = ++LTLIBOBJS = ++MAINT = # ++MAKEINFO = ${SHELL} /home/stephan/projects/openelec/sources/enca/enca-1.13.patch/missing --run makeinfo ++MAP_PROG = ++MKDIR_P = /bin/mkdir -p ++MKTEMP_PROG = /bin/mktemp ++NM = /usr/bin/nm -B ++NMEDIT = ++OBJDUMP = objdump ++OBJEXT = o ++OTOOL = ++OTOOL64 = ++PACKAGE = enca ++PACKAGE_BUGREPORT = https://bugs.cihar.com/ ++PACKAGE_NAME = Enca ++PACKAGE_STRING = Enca 1.13 ++PACKAGE_TARNAME = enca ++PACKAGE_URL = ++PACKAGE_VERSION = 1.13 ++PATH_SEPARATOR = : ++PICONV_PROG = /usr/bin/piconv ++RANLIB = ranlib ++RECODE_PROG = ++RELEASE = 1 ++SED = /bin/sed ++SET_MAKE = ++SHELL = /bin/sh ++SHELL_RANDOM_FILENAME = `/bin/mktemp /tmp/enca-$$-XXXXXXXX` ++STRIP = strip ++UMAP_PROG = ++VERSION = 1.13 ++abs_builddir = /home/stephan/projects/openelec/sources/enca/enca-1.13.patch/devel-docs ++abs_srcdir = /home/stephan/projects/openelec/sources/enca/enca-1.13.patch/devel-docs ++abs_top_builddir = /home/stephan/projects/openelec/sources/enca/enca-1.13.patch ++abs_top_srcdir = /home/stephan/projects/openelec/sources/enca/enca-1.13.patch ++ac_ct_CC = gcc ++ac_ct_DUMPBIN = ++am__include = include ++am__leading_dot = . ++am__quote = ++am__tar = ${AMTAR} chof - "$$tardir" ++am__untar = ${AMTAR} xf - ++bindir = ${exec_prefix}/bin ++build = i686-pc-linux-gnu ++build_alias = ++build_cpu = i686 ++build_os = linux-gnu ++build_vendor = pc ++builddir = . ++datadir = ${datarootdir} ++datarootdir = ${prefix}/share ++docdir = ${datarootdir}/doc/${PACKAGE_TARNAME} ++dvidir = ${docdir} ++exec_prefix = ${prefix} ++host = i686-pc-linux-gnu ++host_alias = ++host_cpu = i686 ++host_os = linux-gnu ++host_vendor = pc ++htmldir = ${docdir} ++includedir = ${prefix}/include ++infodir = ${datarootdir}/info ++install_sh = ${SHELL} /home/stephan/projects/openelec/sources/enca/enca-1.13.patch/install-sh ++libdir = ${exec_prefix}/lib ++libexecdir = ${exec_prefix}/libexec ++localedir = ${datarootdir}/locale ++localstatedir = ${prefix}/var ++lt_ECHO = echo ++mandir = ${datarootdir}/man ++mkdir_p = /bin/mkdir -p ++oldincludedir = /usr/include ++pdfdir = ${docdir} ++prefix = /usr/local ++program_transform_name = s,x,x, ++psdir = ${docdir} ++sbindir = ${exec_prefix}/sbin ++sharedstatedir = ${prefix}/com ++srcdir = . ++sysconfdir = ${prefix}/etc ++target_alias = ++top_build_prefix = ../ ++top_builddir = .. ++top_srcdir = .. ++ ++# The name of the module, e.g. 'glib'. ++DOC_MODULE = libenca ++ ++# The top-level SGML file. Change it if you want. ++DOC_MAIN_SGML_FILE = $(DOC_MODULE)-docs.sgml ++ ++# The directory containing the source code. Relative to $(srcdir). ++# gtk-doc will search all .c & .h files beneath here for inline comments ++# documenting functions and macros. ++DOC_SOURCE_DIR = ${top_srcdir}/lib ++ ++# Extra options to pass to gtkdoc-scanobj or gtkdoc-scangobj. ++SCANOBJ_OPTIONS = ++ ++# Extra options to supply to gtkdoc-scan. ++SCAN_OPTIONS = ++ ++# Extra options to supply to gtkdoc-mkdb. ++MKDB_OPTIONS = ++ ++# Extra options to supply to gtkdoc-fixref. ++FIXXREF_OPTIONS = ++ ++# Used for dependencies. ++HFILE_GLOB = $(DOC_SOURCE_DIR)/*.h ++CFILE_GLOB = $(DOC_SOURCE_DIR)/*.c ++ ++# Header files to ignore when scanning. ++IGNORE_HFILES = ++ ++# Images to copy into HTML directory. ++HTML_IMAGES = ++ ++# Extra SGML files that are included by $(DOC_MAIN_SGML_FILE). ++content_files = ++ ++# Other files to distribute. ++extra_files = ++ ++# CFLAGS and LDFLAGS for compiling scan program. Only needed if your app/lib ++# contains GtkObjects/GObjects and you want to document signals and properties. ++GTKDOC_CFLAGS = ++GTKDOC_LIBS = ++GTKDOC_CC = $(LIBTOOL) --mode=compile $(CC) ++GTKDOC_LD = $(LIBTOOL) --mode=link $(CC) ++ ++# If you need to override some of the declarations, place them in the ++# $(DOC_MODULE)-overrides.txt file and uncomment the second line here. ++DOC_OVERRIDES = ++#DOC_OVERRIDES = $(DOC_MODULE)-overrides.txt ++ ++########################################################################### ++# Everything below here is generic and you shouldn't need to change it. ++########################################################################### ++TARGET_DIR = $(HTML_DIR)/$(DOC_MODULE) ++EXTRA_DIST = \ ++ $(content_files) \ ++ $(extra_files) \ ++ $(HTML_IMAGES) \ ++ $(DOC_MAIN_SGML_FILE) \ ++ $(DOC_MODULE)-sections.txt \ ++ $(DOC_OVERRIDES) ++ ++DOC_STAMPS = scan-build.stamp tmpl-build.stamp sgml-build.stamp html-build.stamp \ ++ $(srcdir)/tmpl.stamp $(srcdir)/sgml.stamp $(srcdir)/html.stamp ++ ++SCANOBJ_FILES = \ ++ $(DOC_MODULE).args \ ++ $(DOC_MODULE).hierarchy \ ++ $(DOC_MODULE).signals \ ++ $(DOC_MODULE).prerequisites \ ++ $(DOC_MODULE).intefraces ++ ++all: all-am ++ ++.SUFFIXES: ++$(srcdir)/Makefile.in: # $(srcdir)/Makefile.am $(am__configure_deps) ++ @for dep in $?; do \ ++ case '$(am__configure_deps)' in \ ++ *$$dep*) \ ++ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ ++ && { if test -f $@; then exit 0; else break; fi; }; \ ++ exit 1;; \ ++ esac; \ ++ done; \ ++ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnits devel-docs/Makefile'; \ ++ $(am__cd) $(top_srcdir) && \ ++ $(AUTOMAKE) --gnits devel-docs/Makefile ++.PRECIOUS: Makefile ++Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status ++ @case '$?' in \ ++ *config.status*) \ ++ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ ++ *) \ ++ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ ++ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ ++ esac; ++ ++$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) ++ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ++ ++$(top_srcdir)/configure: # $(am__configure_deps) ++ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ++$(ACLOCAL_M4): # $(am__aclocal_m4_deps) ++ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ++$(am__aclocal_m4_deps): ++ ++mostlyclean-libtool: ++ -rm -f *.lo ++ ++clean-libtool: ++ -rm -rf .libs _libs ++tags: TAGS ++TAGS: ++ ++ctags: CTAGS ++CTAGS: ++ ++ ++distdir: $(DISTFILES) ++ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ ++ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ ++ list='$(DISTFILES)'; \ ++ dist_files=`for file in $$list; do echo $$file; done | \ ++ sed -e "s|^$$srcdirstrip/||;t" \ ++ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ ++ case $$dist_files in \ ++ */*) $(MKDIR_P) `echo "$$dist_files" | \ ++ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ ++ sort -u` ;; \ ++ esac; \ ++ for file in $$dist_files; do \ ++ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ ++ if test -d $$d/$$file; then \ ++ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ ++ if test -d "$(distdir)/$$file"; then \ ++ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ ++ fi; \ ++ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ ++ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ ++ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ ++ fi; \ ++ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ ++ else \ ++ test -f "$(distdir)/$$file" \ ++ || cp -p $$d/$$file "$(distdir)/$$file" \ ++ || exit 1; \ ++ fi; \ ++ done ++ $(MAKE) $(AM_MAKEFLAGS) \ ++ top_distdir="$(top_distdir)" distdir="$(distdir)" \ ++ dist-hook ++check-am: all-am ++check: check-am ++all-am: Makefile ++installdirs: ++install: install-am ++install-exec: install-exec-am ++install-data: install-data-am ++uninstall: uninstall-am ++ ++install-am: all-am ++ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am ++ ++installcheck: installcheck-am ++install-strip: ++ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ ++ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ ++ `test -z '$(STRIP)' || \ ++ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install ++mostlyclean-generic: ++ ++clean-generic: ++ ++distclean-generic: ++ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) ++ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) ++ ++maintainer-clean-generic: ++ @echo "This command is intended for maintainers to use" ++ @echo "it deletes files that may require special tools to rebuild." ++clean: clean-am ++ ++clean-am: clean-generic clean-libtool clean-local mostlyclean-am ++ ++distclean: distclean-am ++ -rm -f Makefile ++distclean-am: clean-am distclean-generic ++ ++dvi: dvi-am ++ ++dvi-am: ++ ++html: html-am ++ ++html-am: ++ ++info: info-am ++ ++info-am: ++ ++install-data-am: install-data-local ++ ++install-dvi: install-dvi-am ++ ++install-dvi-am: ++ ++install-exec-am: ++ ++install-html: install-html-am ++ ++install-html-am: ++ ++install-info: install-info-am ++ ++install-info-am: ++ ++install-man: ++ ++install-pdf: install-pdf-am ++ ++install-pdf-am: ++ ++install-ps: install-ps-am ++ ++install-ps-am: ++ ++installcheck-am: ++ ++maintainer-clean: maintainer-clean-am ++ -rm -f Makefile ++maintainer-clean-am: distclean-am maintainer-clean-generic \ ++ maintainer-clean-local ++ ++mostlyclean: mostlyclean-am ++ ++mostlyclean-am: mostlyclean-generic mostlyclean-libtool ++ ++pdf: pdf-am ++ ++pdf-am: ++ ++ps: ps-am ++ ++ps-am: ++ ++uninstall-am: uninstall-local ++ ++.MAKE: install-am install-strip ++ ++.PHONY: all all-am check check-am clean clean-generic clean-libtool \ ++ clean-local dist-hook distclean distclean-generic \ ++ distclean-libtool distdir dvi dvi-am html html-am info info-am \ ++ install install-am install-data install-data-am \ ++ install-data-local install-dvi install-dvi-am install-exec \ ++ install-exec-am install-html install-html-am install-info \ ++ install-info-am install-man install-pdf install-pdf-am \ ++ install-ps install-ps-am install-strip installcheck \ ++ installcheck-am installdirs maintainer-clean \ ++ maintainer-clean-generic maintainer-clean-local mostlyclean \ ++ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ ++ uninstall uninstall-am uninstall-local ++ ++ ++docs: html-build.stamp ++ ++#### scan #### ++ ++scan-build.stamp: $(HFILE_GLOB) ++ @echo '*** Scanning header files ***' ++ if grep -l '^..*$$' $(srcdir)/$(DOC_MODULE).types > /dev/null ; then \ ++ CC="$(GTKDOC_CC)" LD="$(GTKDOC_LD)" CFLAGS="$(GTKDOC_CFLAGS)" LDFLAGS="$(GTKDOC_LIBS)" gtkdoc-scanobj $(SCANOBJ_OPTIONS) --module=$(DOC_MODULE) --output-dir=$(srcdir) ; \ ++ else \ ++ cd $(srcdir) ; \ ++ for i in $(SCANOBJ_FILES) ; do \ ++ test -f $$i || touch $$i ; \ ++ done \ ++ fi ++ cd $(srcdir) && \ ++ gtkdoc-scan --module=$(DOC_MODULE) --source-dir=$(DOC_SOURCE_DIR) --ignore-headers="$(IGNORE_HFILES)" $(SCAN_OPTIONS) $(EXTRA_HFILES) ++ touch scan-build.stamp ++ ++$(DOC_MODULE)-decl.txt $(SCANOBJ_FILES): scan-build.stamp ++ @true ++ ++#### templates #### ++ ++tmpl-build.stamp: $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_OVERRIDES) ++ @echo '*** Rebuilding template files ***' ++ cd $(srcdir) && gtkdoc-mktmpl --module=$(DOC_MODULE) ++ touch tmpl-build.stamp ++ ++tmpl.stamp: tmpl-build.stamp ++ @true ++ ++#### sgml #### ++ ++sgml-build.stamp: tmpl.stamp $(CFILE_GLOB) $(srcdir)/tmpl/*.sgml ++ @echo '*** Building XML ***' ++ cd $(srcdir) && \ ++ gtkdoc-mkdb --module=$(DOC_MODULE) --source-dir=$(DOC_SOURCE_DIR) --output-format=xml $(MKDB_OPTIONS) ++ touch sgml-build.stamp ++ ++sgml.stamp: sgml-build.stamp ++ @true ++ ++#### html #### ++ ++html-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files) ++ @echo '*** Building HTML ***' ++ test -d $(srcdir)/html || mkdir $(srcdir)/html ++ cd $(srcdir)/html && gtkdoc-mkhtml $(DOC_MODULE) ../$(DOC_MAIN_SGML_FILE) ++ test "x$(HTML_IMAGES)" = "x" || ( cd $(srcdir) && cp $(HTML_IMAGES) html ) ++ @echo '-- Fixing Crossreferences' ++ cd $(srcdir) && gtkdoc-fixxref --module-dir=html --html-dir=$(HTML_DIR) $(FIXXREF_OPTIONS) ++ touch html-build.stamp ++ ++############## ++ ++clean-local: ++ rm -f *~ *.bak $(SCANOBJ_FILES) *-unused.txt $(DOC_STAMPS) ++ ++maintainer-clean-local: clean ++ cd $(srcdir) && rm -rf xml html $(DOC_MODULE)-decl-list.txt $(DOC_MODULE)-decl.txt ++ ++install-data-local: ++ $(mkinstalldirs) $(DESTDIR)$(TARGET_DIR) ++ (installfiles=`echo $(srcdir)/html/*.html`; \ ++ if test "$$installfiles" = '$(srcdir)/html/*.html'; \ ++ then echo '-- Nothing to install' ; \ ++ else \ ++ for i in $$installfiles; do \ ++ echo '-- Installing '$$i ; \ ++ $(INSTALL_DATA) $$i $(DESTDIR)$(TARGET_DIR); \ ++ done; \ ++ echo '-- Installing $(srcdir)/html/index.sgml' ; \ ++ $(INSTALL_DATA) $(srcdir)/html/index.sgml $(DESTDIR)$(TARGET_DIR); \ ++ echo '-- Installing $(srcdir)/html/$(DOC_MODULE).devhelp' ; \ ++ $(INSTALL_DATA) $(srcdir)/html/$(DOC_MODULE).devhelp $(DESTDIR)$(TARGET_DIR); \ ++ fi) ++ ++uninstall-local: ++ (installfiles=`cd $(srcdir)/html >/dev/null && echo *.html`; \ ++ if test "$$installfiles" = '*.html'; \ ++ then echo '-- Nothing to uninstall' ; \ ++ else \ ++ for i in $$installfiles; do \ ++ echo '-- Removing '$$i ; \ ++ rm -f $(DESTDIR)$(TARGET_DIR)/$$i; \ ++ done; \ ++ echo '-- Removing index.sgml' ; \ ++ rm -f $(DESTDIR)$(TARGET_DIR)/index.sgml; \ ++ echo '-- Removing $(DOC_MODULE).devhelp' ; \ ++ rm -f $(DESTDIR)$(TARGET_DIR)/$(DOC_MODULE).devhelp; \ ++ fi) ++ ++# ++# Require gtk-doc when making dist ++# ++dist-check-gtkdoc: ++#dist-check-gtkdoc: ++# @echo "*** gtk-doc must be installed and enabled in order to make dist" ++# @false ++ ++dist-hook: dist-check-gtkdoc dist-hook-local ++ mkdir $(distdir)/tmpl ++ mkdir $(distdir)/xml ++ mkdir $(distdir)/html ++ cp $(srcdir)/tmpl/*.sgml $(distdir)/tmpl ++ cp $(srcdir)/xml/*.xml $(distdir)/xml ++ cp $(srcdir)/html/index.sgml $(distdir)/html ++ -cp $(srcdir)/html/$(DOC_MODULE).devhelp $(distdir)/html ++ -cp $(srcdir)/html/*.html $(srcdir)/html/*.css $(distdir)/html ++ ++ images=$(HTML_IMAGES) ; \ ++ for i in $$images ; do \ ++ cp $(srcdir)/$$i $(distdir)/html ; \ ++ done ++ ++.PHONY : dist-hook-local ++ ++# Tell versions [3.59,3.63) of GNU make to not export all variables. ++# Otherwise a system limit (for SysV at least) may be exceeded. ++.NOEXPORT: +diff -Naur enca-1.13/enca.pc enca-1.13.patch/enca.pc +--- enca-1.13/enca.pc 1970-01-01 01:00:00.000000000 +0100 ++++ enca-1.13.patch/enca.pc 2010-04-16 18:41:17.508317732 +0200 +@@ -0,0 +1,13 @@ ++prefix=/usr/local ++exec_prefix=${prefix} ++libdir=${exec_prefix}/lib ++includedir=${prefix}/include ++libexecdir=${exec_prefix}/libexec ++ ++encaextconvdir=${libexecdir}/enca/extconv ++ ++Name: Enca ++Description: Extermely Naive Charset Analyser library ++Version: 1.13 ++Libs: -L${libdir} -lenca -lm ++Cflags: -I${includedir} +diff -Naur enca-1.13/enca.spec enca-1.13.patch/enca.spec +--- enca-1.13/enca.spec 1970-01-01 01:00:00.000000000 +0100 ++++ enca-1.13.patch/enca.spec 2010-04-16 18:41:17.488318200 +0200 +@@ -0,0 +1,163 @@ ++# @(#) $Id: enca.spec.in,v 1.28 2005/12/18 12:05:30 yeti Exp $ ++Summary: A program detecting encoding of text files. ++Name: enca ++Version: 1.13 ++Release: 1 ++License: GNU GPL v2 ++Group: Applications/Text ++Requires: sed ++Source: http://trific.ath.cx/Ftp/enca/enca-1.13.tar.bz2 ++URL: http://trific.ath.cx/software/enca/ ++Packager: https://bugs.cihar.com/ ++Vendor: Trific soft. ++Prefix: %{_prefix} ++BuildRoot: %{_tmppath}/%{name}-%{version}-buildroot ++ ++%description ++Enca is an Extremely Naive Charset Analyser. It detects character set and ++encoding of text files and can also convert them to other encodings using ++either a built-in converter or external libraries and tools like libiconv, ++librecode, or cstocs. ++ ++Currently, it has support for Belarussian, Bulgarian, Croatian, Czech, ++Estonian, Latvian, Lithuanian, Polish, Russian, Slovak, Slovene, Ukrainian, ++Chinese, and some multibyte encodings (mostly variants of Unicode) ++independent on the language. ++ ++This package also contains shared Enca library other programs can make use of. ++ ++Install Enca if you need to cope with text files of dubious origin ++and unknown encoding and convert them to some reasonable encoding. ++ ++%package devel ++Summary: Header files and libraries for Enca development. ++Group: Development/Libraries ++Requires: %{name} = %{version} ++%description devel ++The enca-devel package contains the static libraries and header files ++for writing programs using the Extremely Naive Charset Analyser library, ++and its API documentation. ++ ++Install enca-devel if you are going to create applications using the Enca ++library. ++ ++%prep ++%setup ++ ++%build ++%configure ++%__make ++ ++%install ++[ "$RPM_BUILD_ROOT" != "/" ] && %__rm -rf $RPM_BUILD_ROOT ++%makeinstall HTML_DIR=$RPM_BUILD_ROOT/%{_datadir}/gtk-doc/html ++ ++%clean ++[ "$RPM_BUILD_ROOT" != "/" ] && %__rm -rf $RPM_BUILD_ROOT ++ ++%files ++%defattr(755,root,root) ++%{_bindir}/enca ++%{_bindir}/enconv ++%{_libexecdir}/%{name}/extconv/* ++%dir %{_libexecdir}/%{name}/extconv ++%dir %{_libexecdir}/%{name} ++%{_libdir}/libenca.so.* ++%defattr(644,root,root) ++%doc %{_mandir}/man1/enca.1* ++%doc %{_mandir}/man1/enconv.1* ++%defattr(-,root,root) ++%doc AUTHORS COPYING ChangeLog ChangeLog.prelib FAQ INSTALL ChangeLog.old README README.devel THANKS TODO ++ ++%files devel ++%defattr(-,root,root) ++%{_includedir}/enca.h ++%{_libdir}/pkgconfig/enca.pc ++%{_libdir}/libenca.a ++%{_libdir}/libenca.la ++%{_libdir}/libenca.so ++%doc %{_datadir}/gtk-doc/html/libenca/* ++%doc %dir %{_datadir}/gtk-doc/html/libenca ++%doc %dir %{_datadir}/gtk-doc/html ++%doc %dir %{_datadir}/gtk-doc ++ ++%post -p /sbin/ldconfig ++ ++%postun -p /sbin/ldconfig ++ ++%changelog ++* Sun Dec 18 2005 David Necas (Yeti) ++- fixed 0644 permissions on doc directory ++* Mon May 17 2004 David Necas (Yeti) ++- doubled percents in changelog ++* Mon Dec 22 2003 David Necas (Yeti) ++- moved wrappers to libexec ++* Thu Nov 6 2003 David Necas (Yeti) ++- added b-piconv ++- fixed HTML doc install paths ++* Tue Oct 14 2003 David Necas (Yeti) ++- testing whether $RPM_BUILD_ROOT is not / ++- updated for new HTML doc location ++- changed make -> %%__make, rm -> %%__rm ++* Sat Aug 2 2003 David Necas (Yeti) ++- cleaning $RPM_BUILD_ROOT in %%install ++* Sat Jun 28 2003 David Necas (Yeti) ++- removed --disable-gtk-doc, no longer needed ++* Fri Jun 20 2003 David Necas (Yeti) ++- added enca.pc to devel package ++* Sat Jun 14 2003 David Necas (Yeti) ++- updated description ++- added --disable-gtk-doc ++* Mon Dec 23 2002 David Necas (Yeti) ++- added libenca.so ++* Fri Dec 20 2002 David Necas (Yeti) ++- fixed URL and Source to trific.ath.cx ++* Mon Oct 21 2002 David Necas (Yeti) ++- added FAQ to docs ++* Thu Oct 10 2002 David Necas (Yeti) ++- removed twice-listed %%{docdir}/html ++* Sat Sep 21 2002 David Necas (Yeti) ++- added b-umap ++* Sun Sep 15 2002 David Necas (Yeti) ++- added enconv ++* Thu Aug 29 2002 David Necas (Yeti) ++- removed bzip2-devel buildprereq ++* Sat Aug 24 2002 David Necas (Yeti) ++- added postinstall and postuninstall scriptlets ++* Wed Aug 21 2002 David Necas (Yeti) ++- updated to enca-0.10.0-pre2 ++- added libenca ++- split into enca and enca-devel ++- removed cache ++- fixed HTML_DIR ++* Tue Jul 10 2001 David Necas (Yeti) ++- changed rpm macros in Source and URL to autoconf macros to ease debian/ ++ stuff generation ++* Sun May 20 2001 David Necas (Yeti) ++- added BuildPrereq: bzip2-devel ++* Wed May 2 2001 David Necas (Yeti) ++- changed group to standard (but much less appropriate) Applications/Text ++- rpm macros are used instead of autoconf macros (after the first definition) ++* Sun Mar 11 2001 David Necas (Yeti) ++- added defattr, doc attributes ++- uses global configure cache ++- heavy use of predefined directories ++- configure moved to build section as is usual ++* Sun Feb 25 2001 David Necas (Yeti) ++- updated to enca-0.9.0pre4 (including files and descriptions) ++- added sed dependency ++* Sun Oct 25 2000 David Necas (Yeti) ++- updated to enca-0.7.5 ++* Sun Oct 11 2000 David Necas (Yeti) ++- removed redundant Provides: enca ++* Sun Oct 1 2000 David Necas (Yeti) ++- updated to enca-0.7.1 ++- man page forced to be intstalled to ${prefix}/share/man ++* Tue Sep 26 2000 David Necas (Yeti) ++- updated to enca-0.7.0 ++- spec autogenerated by configure ++* Tue Sep 19 2000 David Necas (Yeti) ++- fixed not installing bcstocs ++* Wed Sep 13 2000 David Necas (Yeti) ++- first packaged (0.6.2) ++ +diff -Naur enca-1.13/iconvcap enca-1.13.patch/iconvcap +--- enca-1.13/iconvcap 1970-01-01 01:00:00.000000000 +0100 ++++ enca-1.13.patch/iconvcap 2010-04-16 18:41:16.654442759 +0200 +@@ -0,0 +1,53 @@ ++ELF4I4 ((%444444###@T#HHHDDPtd#Qtd/lib/ld-linux.so.2GNUGNUgsM;*H "K9  ZbRhL}oG8vغlibm.so.6__gmon_start___Jv_RegisterClasseslibc.so.6_IO_stdin_usedexitfopenstrrchrstrncpyfgetsfclosemallocstderrfwriteiconv_closestrchrfprintficonv_open__libc_start_mainfreeGLIBC_2.0GLIBC_2.1.ii ii |غ  ++   ĴȴUS[/tX[5%%h%h%h%h%h %h(%h0%h8p%h@`%hHP%hP@%hX0%h` %hh%Ĵhp%ȴhx1^PTRh`hpQVh/USd$=ܺu>렳9st&9rܺd$[]Ív'Ud$表tt $ÐUT$$>¸t ++$1ÍUWVStfuSvtGuD$ D$$D$غ${1[^_]ÍvuغD$D$$4D$ "묍&UWVS4}D$(D$,E p$D$=4$D$D$fT$D$$T$$޿YD$ D$"$tD$"$9)<$?WT$t$$T$D8D$T$BQD$$L$'ߋ\$su' O vl t׋\$T$D$ D$D$غ$|$$4[^_]Ðt&غ\$D$$GD$$$4[^_]Ít&غD$/D$$dD$ Xt$($D$(D$غD$7D$$` D$7$`غD$ٝD$$cD$ٝ$D$غD$ȚD$$6 D$Ț$D$غD$ϚD$$ % D$Ϛ$D$mغD$֚D$$p` D$֚$D$غD$ݚD$$򸠸CC D$ݚ$D$غD$D$$ D$$D$zغD$D$$}a D$$D$)غD$D$$,@P ++D$$D$غD$D$$򸀷 ++D$$D$غD$D$$ ++D$$D$6غD$D$$9] D$$D$غD$D$$  , D$$D$غD$D$$`D$$D$CغD$#D$$F򸀶jJD$#$D$غD$-D$$D$-$D$غD$7D$$hD$7$D$PغD$D$$S@wD$$D$غD$D$$l&D$$D$غD$٠D$$򸈹D$٠$D$]غD$D$$`򸤹D$$D$ غD$?D$$33D$?$D$غD$ED$$ D$E$D$jغD$LD$$mQD$L$D$غD$D$$ @D$$D$غD$؛D$$@oD$؛$D$wغD$D$$z`D$$D$&غD$ ++D$$)򸀺MD$ ++$D$غD$RD$$򸠺D$R$D$غD$WD$$򸬺D$W$D$3غD$[D$$6򸼺Z:D$[$D$غD$`D$$Ⱥ D$`$D$y$t&D$7$D$V\$T$D$ D$<D$t&[[غD$D$$uD$ <$1D$`$>&D$[$&D$W$\&D$R$t&D$ ++$Tz&D$$4 &D$؛$&D$$'&D$L$&D$E$E&D$?$&D$$tc&D$٠$T&D$$4&D$$&D$7$&D$-$.&D$#$&D$$L&D$$t&D$$Tj&D$$4&D$$&D$$&D$$&D$$5&D$ݚ$&D$֚$tS&D$Ϛ$T&D$Ț$4q&D$ٝ$$Sغ\$D$$ ++T$$$غt$D$?$${غD$D$$aD$ $D\غD$.D$$D$ U$U]Ít&'UWVSO')t$1ED$E D$E$9rރ[^_]Ë$ÐUSd$t[Ћud$[]ÐUS[x Y[found %s -> %s ++failed. ++riconvcap: cannot open %s ++#defineno valid encodings ++iconvcap: transitivity OK ++#define ICONV_NAME_%s "%s" ++#define ICONV_NAME_%s NULL ++CP1125CP1250CP1251CP1257ECMA113IBM852IBM855IBM775IBM866ISO88592ISO88594ISO88595ISO885913ISO885916KEYBCS2MACCEMACCYRLATEXCORKGBKBIG5HZUCS-2ISO10646/UCS2ISO-10646/UCS2ISO_10646/UCS2UNICODEISO-10646ISO_10646ISO10646UCS-4ISO10646/UCS4ISO-10646/UCS4ISO_10646/UCS4UTF-8ISO10646/UTF8ISO-10646/UTF8ISO_10646/UTF8CSUCS2CSUCS4CSASCIIUS-ASCIIISO646-USISO_646.IRV:1991CP367IBM367CSPC367ISO-8859-1ISO8859-18859_1ISO_8859-1CSLATIN1CSISOLATIN1ISO-8859-2ISO8859-28859_2ISO_8859-2CSLATIN2CSISOLATIN2ISO-IR-101ISO-8859-4ISO8859-48859_4ISO_8859-4CSLATIN4CSISOLATIN4ISO-IR-110ISO-8859-5ISO8859-58859_5ISO_8859-5CSISOCYRILLICISO-IR-144ISO-8859-13ISO8859-138859_13ISO_8859-13CSLATIN7CSISOLATIN7ISO-IR-179ACSISOBALTICCSISOLATINBALTICISO-8859-16ISO8859-168859_16ISO_8859-16ISO-IR-226CSLATIN10CSISOLATIN10CSBALTICISO-IR-179CP-852CP_852IBM-852IBM_852CSPC852CSPCP852CP-855CP_855IBM-855IBM_855CSPC855CSPCP855CP-775CP_775IBM-775IBM_775CSPC775CSPCP775CP-866CP_866IBM-866IBM_866CSPC866CSPCP866CP-1125CP_1125MS1125MS-1125WINDOWS-1125CP-1250CP_1250MS-EEMS1250MS-1250WINDOWS-1250CP-1251CP_1251MS-CYRLMS1251MS-1251WINDOWS-1251CP-1257CP_1257MS-BALTMS1257MS-1257WINDOWS-1257WinBaltRimMAC-CEMAC_CEMACINTOSH-CEMACEEMAC-EEMAC_EEMACINTOSH-EEMAC-CYRMAC_CYRMACINTOSH-CYRMACCYRILLICMAC-CYRILLICMACINTOSH-CYRILLICKOI8-CS2KOI8_CS2KOI-8_CS2KOI8CSKOI8_CSKOI8-CSKOI-8-CSKOI_8-CSCSKOI8CS2KOI8-RKOI8_RKOI-8_RCSKOI8RKOI8-UKOI8_UKOI-8_UCSKOI8UKOI8-UNIKOI8_UNIKOI-8_UNICSKOI8UNIECMA-113ECMA-cyrillicECMA-113:1986ISO-IR-111KEYBCS-2KAMKAMENICKYCP895csPC895LTEXUCS-2BEUCS-4BEUTF-7ISO10646/UTF7ISO-10646/UTF7ISO_10646/UTF7UNICODE/UTF7CSUTF7UNICODE/UTF8CSUTF8T1GB2312CP936CP950HZ-GB-2312iconvcapiconvcap: malformed input line: %siconvap: iconv_open(%s, %s) failed ++iconvcap: iconv_open(%s, %s) failed ++iconvcap: checking for ISO8859-1 -> Unicode... #define ICONV_NAME_UNICODE "%s" ++iconvcap: checking for %s -> Unicode... iconvcap: iconv seems to be broken. aborting. ++;L4\TzR| AB A (<ZAB NEAAA .  o ++ 0 oooƃ&6FVfvƅօciw؛Λݛ ++%7,4=GX^XemxŜޜۜМٜ %" ,7BLS`^lwŝÝϝ %" ٝ-6jAHSOWa_gpw~ȞŞΞ՞ܞȚ Ϛ,)19?FN֚^[ckszݚß?Ο՟ܟE ++(4AT]fpwȠϠ٠Ƞנߠ*75>BLVTRNLZc_iwg؛Λݛ%ou ++¡RɡW̡ӡ[١`ߡGCC: (GNU) 4.4.3 20100127 (Red Hat 4.4.3-4)GCC: (GNU) 4.4.3 20100127 (Red Hat 4.4.3-4)GCC: (GNU) 4.4.3 20100127 (Red Hat 4.4.3-4)GCC: (GNU) 4.4.3 20100127 (Red Hat 4.4.3-4)GCC: (GNU) 4.4.3 20100127 (Red Hat 4.4.3-4)GCC: (GNU) 4.4.3 20100127 (Red Hat 4.4.3-4)GCC: (GNU) 4.4.3 20100127 (Red Hat 4.4.3-4) ++mainyVARIANT_UNICODEVARIANT_ASCIIVARIANT_ISO88591VARIANT_ISO88592VARIANT_ISO88594VARIANT_ISO88595VARIANT_ISO885913VARIANT_ISO885916 VARIANT_BALTICVARIANT_IBM852-VARIANT_IBM855?VARIANT_IBM775QVARIANT_IBM866cVARIANT_CP1125uVARIANT_CP1250VARIANT_CP1251VARIANT_CP1257VARIANT_MACCEVARIANT_MACCYRVARIANT_KOI8CS2VARIANT_KOI8RVARIANT_KOI8U VARIANT_KOI8UNI VARIANT_ECMA113) VARIANT_KEYBCS2; VARIANT_LATEXM VARIANT_UCS2_ VARIANT_UCS4q VARIANT_UTF7 VARIANT_UTF8 VARIANT_CORK VARIANT_GBK VARIANT_BIG5 VARIANT_HZ program_name FROM ++TO ++DWY0 intB#D`g8E7vK1H H>  ,      O 6$ M(  , "0 $4 &>8 }*>< , [0S 1a l2 w6 ? H I J K "L% N> )P ++     >O H ' encל j>چ;toidRk&>&&&9(xto(@>@sBsbBseBfCDp_eE>Wk>9ok>t(̇ 0!""""1"t ###2 #1  #t9 )#>#C#H `#MP } # Rm#X #>]  ++#a#f#k#p#uP#z##9#]#3P# c#S#S#pS #P#p#v#P#P#P#P ##`ʗ##(#ޜ$TOޜ###2%1%t9`%>%C%H %MP`% Rm%X%>]%a%f@%k%p%uP%z %`%9%]%3P %@%Sl%S%pS%P%p%v%P %P@%P`%P%%`ʗ%%(Ⱥ%ܜԺ%ޜ&TOޜ% : ; I$ > $ > $ >   I : ; : ;I8 ++: ;  : ;  : ; I8 I!I/  : ; I8 .: ;' I@ ++: ;I: ;I4: ;I ++4: ;I4: ;I.: ;' I : ;I4: ;I4: ;I.? : ; ' I@ ++: ; I ++4: ; I4: ; I ++1RUX Y 1 U!41"41#4: ; I? < $4: ; I? < %4: ; I?  ++&4: ; I?  ++  ./usr/lib/gcc/i686-redhat-linux/4.4.3/include/usr/include/bits/usr/includeiconvcap.cstddef.htypes.hstdio.hlibio.hiconv.hiןw+Mg-/!u r ++%WG/usYWKY{(Y''y<X2LR% XxJsKEQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ_,$q<%!:o  % % | *AB f ,AB CCJV ++AAA D XAB cu  "u  "u  " ++AAB AF v ++AAB AE __off_t_IO_read_ptr_chain/home/stephan/projects/openelec/sources/enca/enca-1.13.patchsize_tVARIANT_GBK_shortbufVARIANT_LATEXVARIANT_CP1250_IO_buf_basecheck_transitivitylong long unsigned intVARIANT_KOI8CS2VARIANT_KOI8RVARIANT_KOI8UstdoutS_EncListlong long int_filenoVARIANT_CP1251_IO_read_endVARIANT_CP1257_flags_IO_buf_end_cur_column__quad_tVARIANT_KOI8UNI_old_offsetVARIANT_UCS2VARIANT_UCS4VARIANT_ISO88591VARIANT_ISO88592VARIANT_ISO88594VARIANT_ISO88595program_name_IO_markerstdin_IO_write_ptrtolist_sbufshort unsigned int_IO_save_baseGNU C 4.4.3 20100127 (Red Hat 4.4.3-4)iconv_check_lock_flags2_modefnamefromiconv_tVARIANT_UTF8VARIANT_UTF7enclistunicode_IO_write_endVARIANT_IBM852VARIANT_IBM855_IO_lock_t_IO_FILE_posVARIANT_ISO885913_markersVARIANT_HZVARIANT_MACCYRunsigned charVARIANT_ECMA113short intP_EncListVARIANT_ASCIIVARIANT_IBM866VARIANT_BIG5_vtable_offsetfromlisticonv_check_one_next__off64_tVARIANT_UNICODE_IO_read_base_IO_save_endFROM__pad1__pad2__pad3__pad4__pad5_unused2stderrargvVARIANT_BALTIC_IO_backup_baseVARIANT_MACCEargcVARIANT_KEYBCS2VARIANT_ISO885916VARIANT_CP1125main_IO_write_base./iconvcap.cVARIANT_CORKVARIANT_IBM775PR0CP0?R?KWKMSMWW0CPCVVVCKWKSSSSS#P#;S;0S ++S"[SsSSNSfSSASYSS4SLSS'S?xSS S2 k S S ++S% ++^ ++Sv ++ ++S ++ S Q Si S S D S\ S S 7 SO d Sd 0 S Sv{P{SNV?VPVVPP@NPP,tN0Ngtt S?0P!DVDVPt V ++%size_tv__quad_t__off_t__off64_tFILEH_IO_lock_tO_IO_marker_IO_FILEiconv_tS_EncListP_EncListv v .symtab.strtab.shstrtab.interp.note.ABI-tag.note.gnu.build-id.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rel.dyn.rel.plt.init.text.fini.rodata.eh_frame_hdr.eh_frame.ctors.dtors.jcr.dynamic.got.got.plt.data.bss.comment.debug_aranges.debug_pubnames.debug_info.debug_abbrev.debug_line.debug_frame.debug_str.debug_loc.debug_pubtypes.debug_ranges44#HH 1hh$Do$N @V^oƃ(ko0z    00 0 #00#h####||$$L$ غ**;,  3,. ++'9 5;A =N0=YBd}FtG`}G@O'9 @W,4Hhƃ  0 ++   0|غ !"#$ (5  KܺZh tЙ *   &` 6 = J Y mt (`((@,.A,Pl^$n}@ @, غ ,&(8 EUbppZ `   `$(غ(,7 FȺ Q4ch uz   $Xغ` $Ժ$ ++ʙ ! & crtstuff.c__CTOR_LIST____DTOR_LIST____JCR_LIST____do_global_dtors_auxcompleted.5953dtor_idx.5955frame_dummy__CTOR_END____FRAME_END____JCR_END____do_global_ctors_auxiconvcap.ciconv_check_oneiconv_check_GLOBAL_OFFSET_TABLE___init_array_end__init_array_start_DYNAMICdata_start__libc_csu_fini_startVARIANT_CORK__gmon_start___Jv_RegisterClasses_fp_hwiconv_open@@GLIBC_2.1VARIANT_ISO88594VARIANT_ASCIIVARIANT_CP1257strchr@@GLIBC_2.0_finistrncpy@@GLIBC_2.0VARIANT_IBM855fgets@@GLIBC_2.0VARIANT_LATEX__libc_start_main@@GLIBC_2.0strrchr@@GLIBC_2.0VARIANT_IBM866VARIANT_KOI8RVARIANT_KEYBCS2_IO_stdin_usedfree@@GLIBC_2.0VARIANT_UCS4TO__data_startVARIANT_KOI8CS2fclose@@GLIBC_2.1VARIANT_BALTICVARIANT_BIG5stderr@@GLIBC_2.0fopen@@GLIBC_2.1VARIANT_IBM852VARIANT_GBKVARIANT_ISO885916__dso_handleVARIANT_ECMA113__DTOR_END__VARIANT_KOI8U__libc_csu_initprintf@@GLIBC_2.0VARIANT_UTF7VARIANT_MACCYRfwrite@@GLIBC_2.0VARIANT_CP1251fprintf@@GLIBC_2.0VARIANT_ISO88592__bss_startmalloc@@GLIBC_2.0iconv_close@@GLIBC_2.1VARIANT_IBM775VARIANT_CP1125VARIANT_HZVARIANT_ISO885913_endVARIANT_UTF8FROMVARIANT_KOI8UNIVARIANT_UCS2VARIANT_CP1250VARIANT_UNICODE_edataVARIANT_ISO88595VARIANT_ISO88591exit@@GLIBC_2.0program_nameVARIANT_MACCE__i686.get_pc_thunk.bxmain_init +\ Kein Zeilenumbruch am Dateiende. +diff -Naur enca-1.13/iconvenc.h enca-1.13.patch/iconvenc.h +--- enca-1.13/iconvenc.h 1970-01-01 01:00:00.000000000 +0100 ++++ enca-1.13.patch/iconvenc.h 2010-04-16 18:41:16.851015075 +0200 +@@ -0,0 +1,33 @@ ++#define ICONV_NAME_UNICODE "UCS2" ++#define ICONV_NAME_ASCII "ASCII" ++#define ICONV_NAME_BALTIC "BALTIC" ++#define ICONV_NAME_CP1125 "CP1125" ++#define ICONV_NAME_CP1250 "CP1250" ++#define ICONV_NAME_CP1251 "CP1251" ++#define ICONV_NAME_CP1257 "CP1257" ++#define ICONV_NAME_ECMA113 "ECMA-cyrillic" ++#define ICONV_NAME_IBM852 "IBM852" ++#define ICONV_NAME_IBM855 "IBM855" ++#define ICONV_NAME_IBM775 "IBM775" ++#define ICONV_NAME_IBM866 "IBM866" ++#define ICONV_NAME_ISO88592 "ISO-8859-2" ++#define ICONV_NAME_ISO88594 "ISO-8859-4" ++#define ICONV_NAME_ISO88595 "ISO-8859-5" ++#define ICONV_NAME_ISO885913 "ISO-8859-13" ++#define ICONV_NAME_ISO885916 "ISO-8859-16" ++#define ICONV_NAME_KEYBCS2 NULL ++#define ICONV_NAME_KOI8CS2 NULL ++#define ICONV_NAME_KOI8R "KOI8-R" ++#define ICONV_NAME_KOI8U "KOI8-U" ++#define ICONV_NAME_KOI8UNI NULL ++#define ICONV_NAME_MACCE NULL ++#define ICONV_NAME_MACCYR "MACCYRILLIC" ++#define ICONV_NAME_LATEX NULL ++#define ICONV_NAME_UCS2 "UCS-2" ++#define ICONV_NAME_UCS4 "UCS-4" ++#define ICONV_NAME_UTF7 "UTF-7" ++#define ICONV_NAME_UTF8 "UTF-8" ++#define ICONV_NAME_CORK NULL ++#define ICONV_NAME_GBK "GBK" ++#define ICONV_NAME_BIG5 "BIG5" ++#define ICONV_NAME_HZ NULL +diff -Naur enca-1.13/lib/.deps/common.Plo enca-1.13.patch/lib/.deps/common.Plo +--- enca-1.13/lib/.deps/common.Plo 1970-01-01 01:00:00.000000000 +0100 ++++ enca-1.13.patch/lib/.deps/common.Plo 2010-04-16 18:41:17.892442565 +0200 +@@ -0,0 +1 @@ ++# dummy +diff -Naur enca-1.13/lib/.deps/ctype.Plo enca-1.13.patch/lib/.deps/ctype.Plo +--- enca-1.13/lib/.deps/ctype.Plo 1970-01-01 01:00:00.000000000 +0100 ++++ enca-1.13.patch/lib/.deps/ctype.Plo 2010-04-16 18:41:17.893451554 +0200 +@@ -0,0 +1 @@ ++# dummy +diff -Naur enca-1.13/lib/.deps/enca.Plo enca-1.13.patch/lib/.deps/enca.Plo +--- enca-1.13/lib/.deps/enca.Plo 1970-01-01 01:00:00.000000000 +0100 ++++ enca-1.13.patch/lib/.deps/enca.Plo 2010-04-16 18:41:17.895442575 +0200 +@@ -0,0 +1 @@ ++# dummy +diff -Naur enca-1.13/lib/.deps/encnames.Plo enca-1.13.patch/lib/.deps/encnames.Plo +--- enca-1.13/lib/.deps/encnames.Plo 1970-01-01 01:00:00.000000000 +0100 ++++ enca-1.13.patch/lib/.deps/encnames.Plo 2010-04-16 18:41:17.897451894 +0200 +@@ -0,0 +1 @@ ++# dummy +diff -Naur enca-1.13/lib/.deps/filters.Plo enca-1.13.patch/lib/.deps/filters.Plo +--- enca-1.13/lib/.deps/filters.Plo 1970-01-01 01:00:00.000000000 +0100 ++++ enca-1.13.patch/lib/.deps/filters.Plo 2010-04-16 18:41:17.899442844 +0200 +@@ -0,0 +1 @@ ++# dummy +diff -Naur enca-1.13/lib/.deps/guess.Plo enca-1.13.patch/lib/.deps/guess.Plo +--- enca-1.13/lib/.deps/guess.Plo 1970-01-01 01:00:00.000000000 +0100 ++++ enca-1.13.patch/lib/.deps/guess.Plo 2010-04-16 18:41:17.901442804 +0200 +@@ -0,0 +1 @@ ++# dummy +diff -Naur enca-1.13/lib/.deps/lang_be.Plo enca-1.13.patch/lib/.deps/lang_be.Plo +--- enca-1.13/lib/.deps/lang_be.Plo 1970-01-01 01:00:00.000000000 +0100 ++++ enca-1.13.patch/lib/.deps/lang_be.Plo 2010-04-16 18:41:17.905442794 +0200 +@@ -0,0 +1 @@ ++# dummy +diff -Naur enca-1.13/lib/.deps/lang_bg.Plo enca-1.13.patch/lib/.deps/lang_bg.Plo +--- enca-1.13/lib/.deps/lang_bg.Plo 1970-01-01 01:00:00.000000000 +0100 ++++ enca-1.13.patch/lib/.deps/lang_bg.Plo 2010-04-16 18:41:17.907468665 +0200 +@@ -0,0 +1 @@ ++# dummy +diff -Naur enca-1.13/lib/.deps/lang_cs.Plo enca-1.13.patch/lib/.deps/lang_cs.Plo +--- enca-1.13/lib/.deps/lang_cs.Plo 1970-01-01 01:00:00.000000000 +0100 ++++ enca-1.13.patch/lib/.deps/lang_cs.Plo 2010-04-16 18:41:17.909445438 +0200 +@@ -0,0 +1 @@ ++# dummy +diff -Naur enca-1.13/lib/.deps/lang_et.Plo enca-1.13.patch/lib/.deps/lang_et.Plo +--- enca-1.13/lib/.deps/lang_et.Plo 1970-01-01 01:00:00.000000000 +0100 ++++ enca-1.13.patch/lib/.deps/lang_et.Plo 2010-04-16 18:41:17.911442884 +0200 +@@ -0,0 +1 @@ ++# dummy +diff -Naur enca-1.13/lib/.deps/lang_hr.Plo enca-1.13.patch/lib/.deps/lang_hr.Plo +--- enca-1.13/lib/.deps/lang_hr.Plo 1970-01-01 01:00:00.000000000 +0100 ++++ enca-1.13.patch/lib/.deps/lang_hr.Plo 2010-04-16 18:41:17.912472267 +0200 +@@ -0,0 +1 @@ ++# dummy +diff -Naur enca-1.13/lib/.deps/lang_hu.Plo enca-1.13.patch/lib/.deps/lang_hu.Plo +--- enca-1.13/lib/.deps/lang_hu.Plo 1970-01-01 01:00:00.000000000 +0100 ++++ enca-1.13.patch/lib/.deps/lang_hu.Plo 2010-04-16 18:41:17.914442335 +0200 +@@ -0,0 +1 @@ ++# dummy +diff -Naur enca-1.13/lib/.deps/lang_lt.Plo enca-1.13.patch/lib/.deps/lang_lt.Plo +--- enca-1.13/lib/.deps/lang_lt.Plo 1970-01-01 01:00:00.000000000 +0100 ++++ enca-1.13.patch/lib/.deps/lang_lt.Plo 2010-04-16 18:41:17.915452163 +0200 +@@ -0,0 +1 @@ ++# dummy +diff -Naur enca-1.13/lib/.deps/lang_lv.Plo enca-1.13.patch/lib/.deps/lang_lv.Plo +--- enca-1.13/lib/.deps/lang_lv.Plo 1970-01-01 01:00:00.000000000 +0100 ++++ enca-1.13.patch/lib/.deps/lang_lv.Plo 2010-04-16 18:41:17.917443044 +0200 +@@ -0,0 +1 @@ ++# dummy +diff -Naur enca-1.13/lib/.deps/lang.Plo enca-1.13.patch/lib/.deps/lang.Plo +--- enca-1.13/lib/.deps/lang.Plo 1970-01-01 01:00:00.000000000 +0100 ++++ enca-1.13.patch/lib/.deps/lang.Plo 2010-04-16 18:41:17.903468815 +0200 +@@ -0,0 +1 @@ ++# dummy +diff -Naur enca-1.13/lib/.deps/lang_pl.Plo enca-1.13.patch/lib/.deps/lang_pl.Plo +--- enca-1.13/lib/.deps/lang_pl.Plo 1970-01-01 01:00:00.000000000 +0100 ++++ enca-1.13.patch/lib/.deps/lang_pl.Plo 2010-04-16 18:41:17.918456433 +0200 +@@ -0,0 +1 @@ ++# dummy +diff -Naur enca-1.13/lib/.deps/lang_ru.Plo enca-1.13.patch/lib/.deps/lang_ru.Plo +--- enca-1.13/lib/.deps/lang_ru.Plo 1970-01-01 01:00:00.000000000 +0100 ++++ enca-1.13.patch/lib/.deps/lang_ru.Plo 2010-04-16 18:41:17.920442775 +0200 +@@ -0,0 +1 @@ ++# dummy +diff -Naur enca-1.13/lib/.deps/lang_sk.Plo enca-1.13.patch/lib/.deps/lang_sk.Plo +--- enca-1.13/lib/.deps/lang_sk.Plo 1970-01-01 01:00:00.000000000 +0100 ++++ enca-1.13.patch/lib/.deps/lang_sk.Plo 2010-04-16 18:41:17.922468017 +0200 +@@ -0,0 +1 @@ ++# dummy +diff -Naur enca-1.13/lib/.deps/lang_sl.Plo enca-1.13.patch/lib/.deps/lang_sl.Plo +--- enca-1.13/lib/.deps/lang_sl.Plo 1970-01-01 01:00:00.000000000 +0100 ++++ enca-1.13.patch/lib/.deps/lang_sl.Plo 2010-04-16 18:41:17.924442904 +0200 +@@ -0,0 +1 @@ ++# dummy +diff -Naur enca-1.13/lib/.deps/lang_uk.Plo enca-1.13.patch/lib/.deps/lang_uk.Plo +--- enca-1.13/lib/.deps/lang_uk.Plo 1970-01-01 01:00:00.000000000 +0100 ++++ enca-1.13.patch/lib/.deps/lang_uk.Plo 2010-04-16 18:41:17.926468566 +0200 +@@ -0,0 +1 @@ ++# dummy +diff -Naur enca-1.13/lib/.deps/lang_zh.Plo enca-1.13.patch/lib/.deps/lang_zh.Plo +--- enca-1.13/lib/.deps/lang_zh.Plo 1970-01-01 01:00:00.000000000 +0100 ++++ enca-1.13.patch/lib/.deps/lang_zh.Plo 2010-04-16 18:41:17.928442615 +0200 +@@ -0,0 +1 @@ ++# dummy +diff -Naur enca-1.13/lib/.deps/multibyte.Plo enca-1.13.patch/lib/.deps/multibyte.Plo +--- enca-1.13/lib/.deps/multibyte.Plo 1970-01-01 01:00:00.000000000 +0100 ++++ enca-1.13.patch/lib/.deps/multibyte.Plo 2010-04-16 18:41:17.930468277 +0200 +@@ -0,0 +1 @@ ++# dummy +diff -Naur enca-1.13/lib/.deps/pair.Plo enca-1.13.patch/lib/.deps/pair.Plo +--- enca-1.13/lib/.deps/pair.Plo 1970-01-01 01:00:00.000000000 +0100 ++++ enca-1.13.patch/lib/.deps/pair.Plo 2010-04-16 18:41:17.932442885 +0200 +@@ -0,0 +1 @@ ++# dummy +diff -Naur enca-1.13/lib/.deps/unicodemap.Plo enca-1.13.patch/lib/.deps/unicodemap.Plo +--- enca-1.13/lib/.deps/unicodemap.Plo 1970-01-01 01:00:00.000000000 +0100 ++++ enca-1.13.patch/lib/.deps/unicodemap.Plo 2010-04-16 18:41:17.934452972 +0200 +@@ -0,0 +1 @@ ++# dummy +diff -Naur enca-1.13/lib/.deps/utf8_double.Plo enca-1.13.patch/lib/.deps/utf8_double.Plo +--- enca-1.13/lib/.deps/utf8_double.Plo 1970-01-01 01:00:00.000000000 +0100 ++++ enca-1.13.patch/lib/.deps/utf8_double.Plo 2010-04-16 18:41:17.936451675 +0200 +@@ -0,0 +1 @@ ++# dummy +diff -Naur enca-1.13/lib/Makefile enca-1.13.patch/lib/Makefile +--- enca-1.13/lib/Makefile 1970-01-01 01:00:00.000000000 +0100 ++++ enca-1.13.patch/lib/Makefile 2010-04-16 18:41:17.578442538 +0200 +@@ -0,0 +1,631 @@ ++# Makefile.in generated by automake 1.11.1 from Makefile.am. ++# lib/Makefile. Generated from Makefile.in by configure. ++ ++# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, ++# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, ++# Inc. ++# This Makefile.in is free software; the Free Software Foundation ++# gives unlimited permission to copy and/or distribute it, ++# with or without modifications, as long as this notice is preserved. ++ ++# This program is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY, to the extent permitted by law; without ++# even the implied warranty of MERCHANTABILITY or FITNESS FOR A ++# PARTICULAR PURPOSE. ++ ++ ++ ++ ++ ++pkgdatadir = $(datadir)/enca ++pkgincludedir = $(includedir)/enca ++pkglibdir = $(libdir)/enca ++pkglibexecdir = $(libexecdir)/enca ++am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd ++install_sh_DATA = $(install_sh) -c -m 644 ++install_sh_PROGRAM = $(install_sh) -c ++install_sh_SCRIPT = $(install_sh) -c ++INSTALL_HEADER = $(INSTALL_DATA) ++transform = $(program_transform_name) ++NORMAL_INSTALL = : ++PRE_INSTALL = : ++POST_INSTALL = : ++NORMAL_UNINSTALL = : ++PRE_UNINSTALL = : ++POST_UNINSTALL = : ++build_triplet = i686-pc-linux-gnu ++host_triplet = i686-pc-linux-gnu ++subdir = lib ++DIST_COMMON = $(include_HEADERS) $(srcdir)/Makefile.am \ ++ $(srcdir)/Makefile.in ++ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 ++am__aclocal_m4_deps = $(top_srcdir)/m4/gtk-doc.m4 \ ++ $(top_srcdir)/m4/libiconv.m4 $(top_srcdir)/m4/libm.m4 \ ++ $(top_srcdir)/m4/librecode.m4 $(top_srcdir)/m4/libtool.m4 \ ++ $(top_srcdir)/m4/localias.m4 $(top_srcdir)/m4/ltoptions.m4 \ ++ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ ++ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/tools.m4 \ ++ $(top_srcdir)/m4/typevar.m4 $(top_srcdir)/configure.ac ++am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ ++ $(ACLOCAL_M4) ++mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs ++CONFIG_HEADER = $(top_builddir)/config.h ++CONFIG_CLEAN_FILES = ++CONFIG_CLEAN_VPATH_FILES = ++am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; ++am__vpath_adj = case $$p in \ ++ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ ++ *) f=$$p;; \ ++ esac; ++am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; ++am__install_max = 40 ++am__nobase_strip_setup = \ ++ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` ++am__nobase_strip = \ ++ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" ++am__nobase_list = $(am__nobase_strip_setup); \ ++ for p in $$list; do echo "$$p $$p"; done | \ ++ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ ++ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ ++ if (++n[$$2] == $(am__install_max)) \ ++ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ ++ END { for (dir in files) print dir, files[dir] }' ++am__base_list = \ ++ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ ++ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' ++am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(includedir)" ++LTLIBRARIES = $(lib_LTLIBRARIES) ++libenca_la_LIBADD = ++am_libenca_la_OBJECTS = common.lo ctype.lo enca.lo encnames.lo \ ++ filters.lo guess.lo lang.lo lang_be.lo lang_bg.lo lang_cs.lo \ ++ lang_et.lo lang_hr.lo lang_hu.lo lang_lt.lo lang_lv.lo \ ++ lang_pl.lo lang_ru.lo lang_sk.lo lang_sl.lo lang_uk.lo \ ++ lang_zh.lo multibyte.lo pair.lo unicodemap.lo utf8_double.lo ++libenca_la_OBJECTS = $(am_libenca_la_OBJECTS) ++libenca_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ ++ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ ++ $(libenca_la_LDFLAGS) $(LDFLAGS) -o $@ ++DEFAULT_INCLUDES = -I. -I$(top_builddir) ++depcomp = $(SHELL) $(top_srcdir)/depcomp ++am__depfiles_maybe = depfiles ++am__mv = mv -f ++COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ ++ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) ++LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ ++ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ ++ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) ++CCLD = $(CC) ++LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ ++ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ ++ $(LDFLAGS) -o $@ ++SOURCES = $(libenca_la_SOURCES) ++DIST_SOURCES = $(libenca_la_SOURCES) ++HEADERS = $(include_HEADERS) ++ETAGS = etags ++CTAGS = ctags ++DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ++ACLOCAL = ${SHELL} /home/stephan/projects/openelec/sources/enca/enca-1.13.patch/missing --run aclocal-1.11 -I m4 ++AMTAR = ${SHELL} /home/stephan/projects/openelec/sources/enca/enca-1.13.patch/missing --run tar ++AR = ar ++AUTOCONF = ${SHELL} /home/stephan/projects/openelec/sources/enca/enca-1.13.patch/missing --run autoconf ++AUTOHEADER = ${SHELL} /home/stephan/projects/openelec/sources/enca/enca-1.13.patch/missing --run autoheader ++AUTOMAKE = ${SHELL} /home/stephan/projects/openelec/sources/enca/enca-1.13.patch/missing --run automake-1.11 ++AWK = gawk ++CC = gcc ++CCDEPMODE = depmode=gcc3 ++CFLAGS = -Wall -W -pedantic -g -O2 ++CONVERTER_LIBS = ++CPP = gcc -E ++CPPFLAGS = ++CSTOCS_PROG = ++CYGPATH_W = echo ++DEFAULT_CONVERTER_LIST = built-in,iconv ++DEFAULT_EXTERNAL_CONVERTER = piconv ++DEFS = -DHAVE_CONFIG_H ++DEPDIR = .deps ++DSYMUTIL = ++DUMPBIN = ++ECHO_C = ++ECHO_N = -n ++ECHO_T = ++EGREP = /bin/grep -E ++EXEEXT = ++FGREP = /bin/grep -F ++GREP = /bin/grep ++GTKDOC = true ++HTML_DIR = ${datarootdir}/gtk-doc/html ++INSTALL = /usr/bin/install -c ++INSTALL_DATA = ${INSTALL} -m 644 ++INSTALL_PROGRAM = ${INSTALL} ++INSTALL_SCRIPT = ${INSTALL} ++INSTALL_STRIP_PROGRAM = $(install_sh) -c -s ++LD = /usr/bin/ld ++LDFLAGS = ++LIBICONV = ++LIBM = -lm ++LIBOBJS = ++LIBS = -lm ++LIBTOOL = $(SHELL) $(top_builddir)/libtool ++LIPO = ++LN_S = ln -s ++LTLIBICONV = ++LTLIBOBJS = ++MAINT = # ++MAKEINFO = ${SHELL} /home/stephan/projects/openelec/sources/enca/enca-1.13.patch/missing --run makeinfo ++MAP_PROG = ++MKDIR_P = /bin/mkdir -p ++MKTEMP_PROG = /bin/mktemp ++NM = /usr/bin/nm -B ++NMEDIT = ++OBJDUMP = objdump ++OBJEXT = o ++OTOOL = ++OTOOL64 = ++PACKAGE = enca ++PACKAGE_BUGREPORT = https://bugs.cihar.com/ ++PACKAGE_NAME = Enca ++PACKAGE_STRING = Enca 1.13 ++PACKAGE_TARNAME = enca ++PACKAGE_URL = ++PACKAGE_VERSION = 1.13 ++PATH_SEPARATOR = : ++PICONV_PROG = /usr/bin/piconv ++RANLIB = ranlib ++RECODE_PROG = ++RELEASE = 1 ++SED = /bin/sed ++SET_MAKE = ++SHELL = /bin/sh ++SHELL_RANDOM_FILENAME = `/bin/mktemp /tmp/enca-$$-XXXXXXXX` ++STRIP = strip ++UMAP_PROG = ++VERSION = 1.13 ++abs_builddir = /home/stephan/projects/openelec/sources/enca/enca-1.13.patch/lib ++abs_srcdir = /home/stephan/projects/openelec/sources/enca/enca-1.13.patch/lib ++abs_top_builddir = /home/stephan/projects/openelec/sources/enca/enca-1.13.patch ++abs_top_srcdir = /home/stephan/projects/openelec/sources/enca/enca-1.13.patch ++ac_ct_CC = gcc ++ac_ct_DUMPBIN = ++am__include = include ++am__leading_dot = . ++am__quote = ++am__tar = ${AMTAR} chof - "$$tardir" ++am__untar = ${AMTAR} xf - ++bindir = ${exec_prefix}/bin ++build = i686-pc-linux-gnu ++build_alias = ++build_cpu = i686 ++build_os = linux-gnu ++build_vendor = pc ++builddir = . ++datadir = ${datarootdir} ++datarootdir = ${prefix}/share ++docdir = ${datarootdir}/doc/${PACKAGE_TARNAME} ++dvidir = ${docdir} ++exec_prefix = ${prefix} ++host = i686-pc-linux-gnu ++host_alias = ++host_cpu = i686 ++host_os = linux-gnu ++host_vendor = pc ++htmldir = ${docdir} ++includedir = ${prefix}/include ++infodir = ${datarootdir}/info ++install_sh = ${SHELL} /home/stephan/projects/openelec/sources/enca/enca-1.13.patch/install-sh ++libdir = ${exec_prefix}/lib ++libexecdir = ${exec_prefix}/libexec ++localedir = ${datarootdir}/locale ++localstatedir = ${prefix}/var ++lt_ECHO = echo ++mandir = ${datarootdir}/man ++mkdir_p = /bin/mkdir -p ++oldincludedir = /usr/include ++pdfdir = ${docdir} ++prefix = /usr/local ++program_transform_name = s,x,x, ++psdir = ${docdir} ++sbindir = ${exec_prefix}/sbin ++sharedstatedir = ${prefix}/com ++srcdir = . ++sysconfdir = ${prefix}/etc ++target_alias = ++top_build_prefix = ../ ++top_builddir = .. ++top_srcdir = .. ++ ++# @(#) $Id: Makefile.am,v 1.29 2005/11/24 20:11:20 yeti Exp $ ++include_HEADERS = enca.h ++lib_LTLIBRARIES = libenca.la ++ ++# In following order do: ++# Any code change C: R++: A ++# Any iface change C++: 0: A ++# Adding ifaces C: R: A++ ++# Changing ifaces C: R: 0 ++libenca_la_LDFLAGS = -version-info 5:1:5 ++libenca_la_SOURCES = \ ++ common.c \ ++ ctype.c \ ++ enca.c \ ++ enca.h \ ++ encnames.c \ ++ filters.c \ ++ guess.c \ ++ internal.h \ ++ lang.c \ ++ lang_be.c \ ++ lang_bg.c \ ++ lang_cs.c \ ++ lang_et.c \ ++ lang_hr.c \ ++ lang_hu.c \ ++ lang_lt.c \ ++ lang_lv.c \ ++ lang_pl.c \ ++ lang_ru.c \ ++ lang_sk.c \ ++ lang_sl.c \ ++ lang_uk.c \ ++ lang_zh.c \ ++ multibyte.c \ ++ pair.c \ ++ unicodemap.c \ ++ utf8_double.c ++ ++INCLUDES = -I$(top_srcdir) ++all: all-am ++ ++.SUFFIXES: ++.SUFFIXES: .c .lo .o .obj ++$(srcdir)/Makefile.in: # $(srcdir)/Makefile.am $(am__configure_deps) ++ @for dep in $?; do \ ++ case '$(am__configure_deps)' in \ ++ *$$dep*) \ ++ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ ++ && { if test -f $@; then exit 0; else break; fi; }; \ ++ exit 1;; \ ++ esac; \ ++ done; \ ++ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnits lib/Makefile'; \ ++ $(am__cd) $(top_srcdir) && \ ++ $(AUTOMAKE) --gnits lib/Makefile ++.PRECIOUS: Makefile ++Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status ++ @case '$?' in \ ++ *config.status*) \ ++ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ ++ *) \ ++ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ ++ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ ++ esac; ++ ++$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) ++ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ++ ++$(top_srcdir)/configure: # $(am__configure_deps) ++ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ++$(ACLOCAL_M4): # $(am__aclocal_m4_deps) ++ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ++$(am__aclocal_m4_deps): ++install-libLTLIBRARIES: $(lib_LTLIBRARIES) ++ @$(NORMAL_INSTALL) ++ test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)" ++ @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ ++ list2=; for p in $$list; do \ ++ if test -f $$p; then \ ++ list2="$$list2 $$p"; \ ++ else :; fi; \ ++ done; \ ++ test -z "$$list2" || { \ ++ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \ ++ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \ ++ } ++ ++uninstall-libLTLIBRARIES: ++ @$(NORMAL_UNINSTALL) ++ @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ ++ for p in $$list; do \ ++ $(am__strip_dir) \ ++ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \ ++ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \ ++ done ++ ++clean-libLTLIBRARIES: ++ -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) ++ @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ ++ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ ++ test "$$dir" != "$$p" || dir=.; \ ++ echo "rm -f \"$${dir}/so_locations\""; \ ++ rm -f "$${dir}/so_locations"; \ ++ done ++libenca.la: $(libenca_la_OBJECTS) $(libenca_la_DEPENDENCIES) ++ $(libenca_la_LINK) -rpath $(libdir) $(libenca_la_OBJECTS) $(libenca_la_LIBADD) $(LIBS) ++ ++mostlyclean-compile: ++ -rm -f *.$(OBJEXT) ++ ++distclean-compile: ++ -rm -f *.tab.c ++ ++include ./$(DEPDIR)/common.Plo ++include ./$(DEPDIR)/ctype.Plo ++include ./$(DEPDIR)/enca.Plo ++include ./$(DEPDIR)/encnames.Plo ++include ./$(DEPDIR)/filters.Plo ++include ./$(DEPDIR)/guess.Plo ++include ./$(DEPDIR)/lang.Plo ++include ./$(DEPDIR)/lang_be.Plo ++include ./$(DEPDIR)/lang_bg.Plo ++include ./$(DEPDIR)/lang_cs.Plo ++include ./$(DEPDIR)/lang_et.Plo ++include ./$(DEPDIR)/lang_hr.Plo ++include ./$(DEPDIR)/lang_hu.Plo ++include ./$(DEPDIR)/lang_lt.Plo ++include ./$(DEPDIR)/lang_lv.Plo ++include ./$(DEPDIR)/lang_pl.Plo ++include ./$(DEPDIR)/lang_ru.Plo ++include ./$(DEPDIR)/lang_sk.Plo ++include ./$(DEPDIR)/lang_sl.Plo ++include ./$(DEPDIR)/lang_uk.Plo ++include ./$(DEPDIR)/lang_zh.Plo ++include ./$(DEPDIR)/multibyte.Plo ++include ./$(DEPDIR)/pair.Plo ++include ./$(DEPDIR)/unicodemap.Plo ++include ./$(DEPDIR)/utf8_double.Plo ++ ++.c.o: ++ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< ++ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po ++# source='$<' object='$@' libtool=no \ ++# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \ ++# $(COMPILE) -c $< ++ ++.c.obj: ++ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` ++ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po ++# source='$<' object='$@' libtool=no \ ++# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \ ++# $(COMPILE) -c `$(CYGPATH_W) '$<'` ++ ++.c.lo: ++ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< ++ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo ++# source='$<' object='$@' libtool=yes \ ++# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \ ++# $(LTCOMPILE) -c -o $@ $< ++ ++mostlyclean-libtool: ++ -rm -f *.lo ++ ++clean-libtool: ++ -rm -rf .libs _libs ++install-includeHEADERS: $(include_HEADERS) ++ @$(NORMAL_INSTALL) ++ test -z "$(includedir)" || $(MKDIR_P) "$(DESTDIR)$(includedir)" ++ @list='$(include_HEADERS)'; test -n "$(includedir)" || list=; \ ++ for p in $$list; do \ ++ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ ++ echo "$$d$$p"; \ ++ done | $(am__base_list) | \ ++ while read files; do \ ++ echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(includedir)'"; \ ++ $(INSTALL_HEADER) $$files "$(DESTDIR)$(includedir)" || exit $$?; \ ++ done ++ ++uninstall-includeHEADERS: ++ @$(NORMAL_UNINSTALL) ++ @list='$(include_HEADERS)'; test -n "$(includedir)" || list=; \ ++ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ ++ test -n "$$files" || exit 0; \ ++ echo " ( cd '$(DESTDIR)$(includedir)' && rm -f" $$files ")"; \ ++ cd "$(DESTDIR)$(includedir)" && rm -f $$files ++ ++ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) ++ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ ++ unique=`for i in $$list; do \ ++ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ ++ done | \ ++ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ ++ END { if (nonempty) { for (i in files) print i; }; }'`; \ ++ mkid -fID $$unique ++tags: TAGS ++ ++TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ ++ $(TAGS_FILES) $(LISP) ++ set x; \ ++ here=`pwd`; \ ++ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ ++ unique=`for i in $$list; do \ ++ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ ++ done | \ ++ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ ++ END { if (nonempty) { for (i in files) print i; }; }'`; \ ++ shift; \ ++ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ ++ test -n "$$unique" || unique=$$empty_fix; \ ++ if test $$# -gt 0; then \ ++ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ ++ "$$@" $$unique; \ ++ else \ ++ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ ++ $$unique; \ ++ fi; \ ++ fi ++ctags: CTAGS ++CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ ++ $(TAGS_FILES) $(LISP) ++ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ ++ unique=`for i in $$list; do \ ++ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ ++ done | \ ++ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ ++ END { if (nonempty) { for (i in files) print i; }; }'`; \ ++ test -z "$(CTAGS_ARGS)$$unique" \ ++ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ ++ $$unique ++ ++GTAGS: ++ here=`$(am__cd) $(top_builddir) && pwd` \ ++ && $(am__cd) $(top_srcdir) \ ++ && gtags -i $(GTAGS_ARGS) "$$here" ++ ++distclean-tags: ++ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags ++ ++distdir: $(DISTFILES) ++ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ ++ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ ++ list='$(DISTFILES)'; \ ++ dist_files=`for file in $$list; do echo $$file; done | \ ++ sed -e "s|^$$srcdirstrip/||;t" \ ++ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ ++ case $$dist_files in \ ++ */*) $(MKDIR_P) `echo "$$dist_files" | \ ++ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ ++ sort -u` ;; \ ++ esac; \ ++ for file in $$dist_files; do \ ++ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ ++ if test -d $$d/$$file; then \ ++ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ ++ if test -d "$(distdir)/$$file"; then \ ++ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ ++ fi; \ ++ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ ++ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ ++ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ ++ fi; \ ++ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ ++ else \ ++ test -f "$(distdir)/$$file" \ ++ || cp -p $$d/$$file "$(distdir)/$$file" \ ++ || exit 1; \ ++ fi; \ ++ done ++check-am: all-am ++check: check-am ++all-am: Makefile $(LTLIBRARIES) $(HEADERS) ++installdirs: ++ for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(includedir)"; do \ ++ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ ++ done ++install: install-am ++install-exec: install-exec-am ++install-data: install-data-am ++uninstall: uninstall-am ++ ++install-am: all-am ++ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am ++ ++installcheck: installcheck-am ++install-strip: ++ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ ++ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ ++ `test -z '$(STRIP)' || \ ++ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install ++mostlyclean-generic: ++ ++clean-generic: ++ ++distclean-generic: ++ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) ++ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) ++ ++maintainer-clean-generic: ++ @echo "This command is intended for maintainers to use" ++ @echo "it deletes files that may require special tools to rebuild." ++clean: clean-am ++ ++clean-am: clean-generic clean-libLTLIBRARIES clean-libtool clean-local \ ++ mostlyclean-am ++ ++distclean: distclean-am ++ -rm -rf ./$(DEPDIR) ++ -rm -f Makefile ++distclean-am: clean-am distclean-compile distclean-generic \ ++ distclean-tags ++ ++dvi: dvi-am ++ ++dvi-am: ++ ++html: html-am ++ ++html-am: ++ ++info: info-am ++ ++info-am: ++ ++install-data-am: install-includeHEADERS ++ ++install-dvi: install-dvi-am ++ ++install-dvi-am: ++ ++install-exec-am: install-libLTLIBRARIES ++ ++install-html: install-html-am ++ ++install-html-am: ++ ++install-info: install-info-am ++ ++install-info-am: ++ ++install-man: ++ ++install-pdf: install-pdf-am ++ ++install-pdf-am: ++ ++install-ps: install-ps-am ++ ++install-ps-am: ++ ++installcheck-am: ++ ++maintainer-clean: maintainer-clean-am ++ -rm -rf ./$(DEPDIR) ++ -rm -f Makefile ++maintainer-clean-am: distclean-am maintainer-clean-generic ++ ++mostlyclean: mostlyclean-am ++ ++mostlyclean-am: mostlyclean-compile mostlyclean-generic \ ++ mostlyclean-libtool ++ ++pdf: pdf-am ++ ++pdf-am: ++ ++ps: ps-am ++ ++ps-am: ++ ++uninstall-am: uninstall-includeHEADERS uninstall-libLTLIBRARIES ++ ++.MAKE: install-am install-strip ++ ++.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ ++ clean-libLTLIBRARIES clean-libtool clean-local ctags distclean \ ++ distclean-compile distclean-generic distclean-libtool \ ++ distclean-tags distdir dvi dvi-am html html-am info info-am \ ++ install install-am install-data install-data-am install-dvi \ ++ install-dvi-am install-exec install-exec-am install-html \ ++ install-html-am install-includeHEADERS install-info \ ++ install-info-am install-libLTLIBRARIES install-man install-pdf \ ++ install-pdf-am install-ps install-ps-am install-strip \ ++ installcheck installcheck-am installdirs maintainer-clean \ ++ maintainer-clean-generic mostlyclean mostlyclean-compile \ ++ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ ++ tags uninstall uninstall-am uninstall-includeHEADERS \ ++ uninstall-libLTLIBRARIES ++ ++ ++clean-local: ++ rm -f core.* *~ ++ ++# Tell versions [3.59,3.63) of GNU make to not export all variables. ++# Otherwise a system limit (for SysV at least) may be exceeded. ++.NOEXPORT: +diff -Naur enca-1.13/libtool enca-1.13.patch/libtool +--- enca-1.13/libtool 1970-01-01 01:00:00.000000000 +0100 ++++ enca-1.13.patch/libtool 2010-04-16 18:41:18.072442468 +0200 +@@ -0,0 +1,8893 @@ ++#! /bin/sh ++ ++# libtool - Provide generalized library-building support services. ++# Generated automatically by config.status (enca) 1.13 ++# Libtool was configured on host x200t.openelec.tv: ++# NOTE: Changes made to this file will be lost: look at ltmain.sh. ++# ++# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, ++# 2006, 2007, 2008 Free Software Foundation, Inc. ++# Written by Gordon Matzigkeit, 1996 ++# ++# This file is part of GNU Libtool. ++# ++# GNU Libtool is free software; you can redistribute it and/or ++# modify it under the terms of the GNU General Public License as ++# published by the Free Software Foundation; either version 2 of ++# the License, or (at your option) any later version. ++# ++# As a special exception to the GNU General Public License, ++# if you distribute this file as part of a program or library that ++# is built using GNU Libtool, you may include this file under the ++# same distribution terms that you use for the rest of that program. ++# ++# GNU Libtool is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++# GNU General Public License for more details. ++# ++# You should have received a copy of the GNU General Public License ++# along with GNU Libtool; see the file COPYING. If not, a copy ++# can be downloaded from http://www.gnu.org/licenses/gpl.html, or ++# obtained by writing to the Free Software Foundation, Inc., ++# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. ++ ++ ++# The names of the tagged configurations supported by this script. ++available_tags="" ++ ++# ### BEGIN LIBTOOL CONFIG ++ ++# Which release of libtool.m4 was used? ++macro_version=2.2.6b ++macro_revision=1.3017 ++ ++# Whether or not to build shared libraries. ++build_libtool_libs=yes ++ ++# Whether or not to build static libraries. ++build_old_libs=yes ++ ++# What type of objects to build. ++pic_mode=default ++ ++# Whether or not to optimize for fast installation. ++fast_install=yes ++ ++# The host system. ++host_alias= ++host=i686-pc-linux-gnu ++host_os=linux-gnu ++ ++# The build system. ++build_alias= ++build=i686-pc-linux-gnu ++build_os=linux-gnu ++ ++# A sed program that does not truncate output. ++SED="/bin/sed" ++ ++# Sed that helps us avoid accidentally triggering echo(1) options like -n. ++Xsed="$SED -e 1s/^X//" ++ ++# A grep program that handles long lines. ++GREP="/bin/grep" ++ ++# An ERE matcher. ++EGREP="/bin/grep -E" ++ ++# A literal string matcher. ++FGREP="/bin/grep -F" ++ ++# A BSD- or MS-compatible name lister. ++NM="/usr/bin/nm -B" ++ ++# Whether we need soft or hard links. ++LN_S="ln -s" ++ ++# What is the maximum length of a command? ++max_cmd_len=1966080 ++ ++# Object file suffix (normally "o"). ++objext=o ++ ++# Executable file suffix (normally ""). ++exeext= ++ ++# whether the shell understands "unset". ++lt_unset=unset ++ ++# turn spaces into newlines. ++SP2NL="tr \\040 \\012" ++ ++# turn newlines into spaces. ++NL2SP="tr \\015\\012 \\040\\040" ++ ++# How to create reloadable object files. ++reload_flag=" -r" ++reload_cmds="\$LD\$reload_flag -o \$output\$reload_objs" ++ ++# An object symbol dumper. ++OBJDUMP="objdump" ++ ++# Method to check whether dependent libraries are shared objects. ++deplibs_check_method="pass_all" ++ ++# Command to use when deplibs_check_method == "file_magic". ++file_magic_cmd="\$MAGIC_CMD" ++ ++# The archiver. ++AR="ar" ++AR_FLAGS="cru" ++ ++# A symbol stripping program. ++STRIP="strip" ++ ++# Commands used to install an old-style archive. ++RANLIB="ranlib" ++old_postinstall_cmds="chmod 644 \$oldlib~\$RANLIB \$oldlib" ++old_postuninstall_cmds="" ++ ++# A C compiler. ++LTCC="gcc" ++ ++# LTCC compiler flags. ++LTCFLAGS="-Wall -W -pedantic -g -O2" ++ ++# Take the output of nm and produce a listing of raw symbols and C names. ++global_symbol_pipe="sed -n -e 's/^.*[ ]\\([ABCDGIRSTW][ABCDGIRSTW]*\\)[ ][ ]*\\([_A-Za-z][_A-Za-z0-9]*\\)\$/\\1 \\2 \\2/p'" ++ ++# Transform the output of nm in a proper C declaration. ++global_symbol_to_cdecl="sed -n -e 's/^T .* \\(.*\\)\$/extern int \\1();/p' -e 's/^[ABCDGIRSTW]* .* \\(.*\\)\$/extern char \\1;/p'" ++ ++# Transform the output of nm in a C name address pair. ++global_symbol_to_c_name_address="sed -n -e 's/^: \\([^ ]*\\) \$/ {\\\"\\1\\\", (void *) 0},/p' -e 's/^[ABCDGIRSTW]* \\([^ ]*\\) \\([^ ]*\\)\$/ {\"\\2\", (void *) \\&\\2},/p'" ++ ++# Transform the output of nm in a C name address pair when lib prefix is needed. ++global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \\([^ ]*\\) \$/ {\\\"\\1\\\", (void *) 0},/p' -e 's/^[ABCDGIRSTW]* \\([^ ]*\\) \\(lib[^ ]*\\)\$/ {\"\\2\", (void *) \\&\\2},/p' -e 's/^[ABCDGIRSTW]* \\([^ ]*\\) \\([^ ]*\\)\$/ {\"lib\\2\", (void *) \\&\\2},/p'" ++ ++# The name of the directory that contains temporary libtool files. ++objdir=.libs ++ ++# Shell to use when invoking shell scripts. ++SHELL="/bin/sh" ++ ++# An echo program that does not interpret backslashes. ++ECHO="echo" ++ ++# Used to examine libraries when file_magic_cmd begins with "file". ++MAGIC_CMD=file ++ ++# Must we lock files when doing compilation? ++need_locks="no" ++ ++# Tool to manipulate archived DWARF debug symbol files on Mac OS X. ++DSYMUTIL="" ++ ++# Tool to change global to local symbols on Mac OS X. ++NMEDIT="" ++ ++# Tool to manipulate fat objects and archives on Mac OS X. ++LIPO="" ++ ++# ldd/readelf like tool for Mach-O binaries on Mac OS X. ++OTOOL="" ++ ++# ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4. ++OTOOL64="" ++ ++# Old archive suffix (normally "a"). ++libext=a ++ ++# Shared library suffix (normally ".so"). ++shrext_cmds=".so" ++ ++# The commands to extract the exported symbol list from a shared archive. ++extract_expsyms_cmds="" ++ ++# Variables whose values should be saved in libtool wrapper scripts and ++# restored at link time. ++variables_saved_for_relink="PATH LD_LIBRARY_PATH LD_RUN_PATH GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" ++ ++# Do we need the "lib" prefix for modules? ++need_lib_prefix=no ++ ++# Do we need a version for libraries? ++need_version=no ++ ++# Library versioning type. ++version_type=linux ++ ++# Shared library runtime path variable. ++runpath_var=LD_RUN_PATH ++ ++# Shared library path variable. ++shlibpath_var=LD_LIBRARY_PATH ++ ++# Is shlibpath searched before the hard-coded library search path? ++shlibpath_overrides_runpath=no ++ ++# Format of library name prefix. ++libname_spec="lib\$name" ++ ++# List of archive names. First name is the real one, the rest are links. ++# The last name is the one that the linker finds with -lNAME ++library_names_spec="\${libname}\${release}\${shared_ext}\$versuffix \${libname}\${release}\${shared_ext}\$major \$libname\${shared_ext}" ++ ++# The coded name of the library, if different from the real name. ++soname_spec="\${libname}\${release}\${shared_ext}\$major" ++ ++# Command to use after installation of a shared archive. ++postinstall_cmds="" ++ ++# Command to use after uninstallation of a shared archive. ++postuninstall_cmds="" ++ ++# Commands used to finish a libtool library installation in a directory. ++finish_cmds="PATH=\\\"\\\$PATH:/sbin\\\" ldconfig -n \$libdir" ++ ++# As "finish_cmds", except a single script fragment to be evaled but ++# not shown. ++finish_eval="" ++ ++# Whether we should hardcode library paths into libraries. ++hardcode_into_libs=yes ++ ++# Compile-time system search path for libraries. ++sys_lib_search_path_spec="/usr/lib/gcc/i686-redhat-linux/4.4.3 /usr/lib /lib" ++ ++# Run-time system search path for libraries. ++sys_lib_dlsearch_path_spec="/lib64 /usr/lib64 /lib /usr/lib /usr/lib/atlas /usr/lib/ctapi /usr/lib/mysql /usr/lib/OGRE /usr/lib/wine/ /usr/lib/xulrunner-1.9.1 " ++ ++# Whether dlopen is supported. ++dlopen_support=unknown ++ ++# Whether dlopen of programs is supported. ++dlopen_self=unknown ++ ++# Whether dlopen of statically linked programs is supported. ++dlopen_self_static=unknown ++ ++# Commands to strip libraries. ++old_striplib="strip --strip-debug" ++striplib="strip --strip-unneeded" ++ ++ ++# The linker used to build libraries. ++LD="/usr/bin/ld" ++ ++# Commands used to build an old-style archive. ++old_archive_cmds="\$AR \$AR_FLAGS \$oldlib\$oldobjs~\$RANLIB \$oldlib" ++ ++# A language specific compiler. ++CC="gcc" ++ ++# Is the compiler the GNU compiler? ++with_gcc=yes ++ ++# Compiler flag to turn off builtin functions. ++no_builtin_flag=" -fno-builtin" ++ ++# How to pass a linker flag through the compiler. ++wl="-Wl," ++ ++# Additional compiler flags for building library objects. ++pic_flag=" -fPIC -DPIC" ++ ++# Compiler flag to prevent dynamic linking. ++link_static_flag="-static" ++ ++# Does compiler simultaneously support -c and -o options? ++compiler_c_o="yes" ++ ++# Whether or not to add -lc for building shared libraries. ++build_libtool_need_lc=no ++ ++# Whether or not to disallow shared libs when runtime libs are static. ++allow_libtool_libs_with_static_runtimes=no ++ ++# Compiler flag to allow reflexive dlopens. ++export_dynamic_flag_spec="\${wl}--export-dynamic" ++ ++# Compiler flag to generate shared objects directly from archives. ++whole_archive_flag_spec="\${wl}--whole-archive\$convenience \${wl}--no-whole-archive" ++ ++# Whether the compiler copes with passing no objects directly. ++compiler_needs_object="no" ++ ++# Create an old-style archive from a shared archive. ++old_archive_from_new_cmds="" ++ ++# Create a temporary old-style archive to link instead of a shared archive. ++old_archive_from_expsyms_cmds="" ++ ++# Commands used to build a shared archive. ++archive_cmds="\$CC -shared \$libobjs \$deplibs \$compiler_flags \${wl}-soname \$wl\$soname -o \$lib" ++archive_expsym_cmds="echo \\\"{ global:\\\" > \$output_objdir/\$libname.ver~ ++ cat \$export_symbols | sed -e \\\"s/\\\\(.*\\\\)/\\\\1;/\\\" >> \$output_objdir/\$libname.ver~ ++ echo \\\"local: *; };\\\" >> \$output_objdir/\$libname.ver~ ++ \$CC -shared \$libobjs \$deplibs \$compiler_flags \${wl}-soname \$wl\$soname \${wl}-version-script \${wl}\$output_objdir/\$libname.ver -o \$lib" ++ ++# Commands used to build a loadable module if different from building ++# a shared archive. ++module_cmds="" ++module_expsym_cmds="" ++ ++# Whether we are building with GNU ld or not. ++with_gnu_ld="yes" ++ ++# Flag that allows shared libraries with undefined symbols to be built. ++allow_undefined_flag="" ++ ++# Flag that enforces no undefined symbols. ++no_undefined_flag="" ++ ++# Flag to hardcode $libdir into a binary during linking. ++# This must work even if $libdir does not exist ++hardcode_libdir_flag_spec="\${wl}-rpath \${wl}\$libdir" ++ ++# If ld is used when linking, flag to hardcode $libdir into a binary ++# during linking. This must work even if $libdir does not exist. ++hardcode_libdir_flag_spec_ld="" ++ ++# Whether we need a single "-rpath" flag with a separated argument. ++hardcode_libdir_separator="" ++ ++# Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes ++# DIR into the resulting binary. ++hardcode_direct=no ++ ++# Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes ++# DIR into the resulting binary and the resulting library dependency is ++# "absolute",i.e impossible to change by setting ${shlibpath_var} if the ++# library is relocated. ++hardcode_direct_absolute=no ++ ++# Set to "yes" if using the -LDIR flag during linking hardcodes DIR ++# into the resulting binary. ++hardcode_minus_L=no ++ ++# Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR ++# into the resulting binary. ++hardcode_shlibpath_var=unsupported ++ ++# Set to "yes" if building a shared library automatically hardcodes DIR ++# into the library and all subsequent libraries and executables linked ++# against it. ++hardcode_automatic=no ++ ++# Set to yes if linker adds runtime paths of dependent libraries ++# to runtime path list. ++inherit_rpath=no ++ ++# Whether libtool must link a program against all its dependency libraries. ++link_all_deplibs=unknown ++ ++# Fix the shell variable $srcfile for the compiler. ++fix_srcfile_path="" ++ ++# Set to "yes" if exported symbols are required. ++always_export_symbols=no ++ ++# The commands to list exported symbols. ++export_symbols_cmds="\$NM \$libobjs \$convenience | \$global_symbol_pipe | \$SED 's/.* //' | sort | uniq > \$export_symbols" ++ ++# Symbols that should not be listed in the preloaded symbols. ++exclude_expsyms="_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*" ++ ++# Symbols that must always be exported. ++include_expsyms="" ++ ++# Commands necessary for linking programs (against libraries) with templates. ++prelink_cmds="" ++ ++# Specify filename containing input files. ++file_list_spec="" ++ ++# How to hardcode a shared library path into an executable. ++hardcode_action=immediate ++ ++# ### END LIBTOOL CONFIG ++ ++# Generated from ltmain.m4sh. ++ ++# ltmain.sh (GNU libtool) 2.2.6b ++# Written by Gordon Matzigkeit , 1996 ++ ++# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, 2007 2008 Free Software Foundation, Inc. ++# This is free software; see the source for copying conditions. There is NO ++# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. ++ ++# GNU Libtool is free software; you can redistribute it and/or modify ++# it under the terms of the GNU General Public License as published by ++# the Free Software Foundation; either version 2 of the License, or ++# (at your option) any later version. ++# ++# As a special exception to the GNU General Public License, ++# if you distribute this file as part of a program or library that ++# is built using GNU Libtool, you may include this file under the ++# same distribution terms that you use for the rest of that program. ++# ++# GNU Libtool is distributed in the hope that it will be useful, but ++# WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++# General Public License for more details. ++# ++# You should have received a copy of the GNU General Public License ++# along with GNU Libtool; see the file COPYING. If not, a copy ++# can be downloaded from http://www.gnu.org/licenses/gpl.html, ++# or obtained by writing to the Free Software Foundation, Inc., ++# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. ++ ++# Usage: $progname [OPTION]... [MODE-ARG]... ++# ++# Provide generalized library-building support services. ++# ++# --config show all configuration variables ++# --debug enable verbose shell tracing ++# -n, --dry-run display commands without modifying any files ++# --features display basic configuration information and exit ++# --mode=MODE use operation mode MODE ++# --preserve-dup-deps don't remove duplicate dependency libraries ++# --quiet, --silent don't print informational messages ++# --tag=TAG use configuration variables from tag TAG ++# -v, --verbose print informational messages (default) ++# --version print version information ++# -h, --help print short or long help message ++# ++# MODE must be one of the following: ++# ++# clean remove files from the build directory ++# compile compile a source file into a libtool object ++# execute automatically set library path, then run a program ++# finish complete the installation of libtool libraries ++# install install libraries or executables ++# link create a library or an executable ++# uninstall remove libraries from an installed directory ++# ++# MODE-ARGS vary depending on the MODE. ++# Try `$progname --help --mode=MODE' for a more detailed description of MODE. ++# ++# When reporting a bug, please describe a test case to reproduce it and ++# include the following information: ++# ++# host-triplet: $host ++# shell: $SHELL ++# compiler: $LTCC ++# compiler flags: $LTCFLAGS ++# linker: $LD (gnu? $with_gnu_ld) ++# $progname: (GNU libtool) 2.2.6b ++# automake: $automake_version ++# autoconf: $autoconf_version ++# ++# Report bugs to . ++ ++PROGRAM=ltmain.sh ++PACKAGE=libtool ++VERSION=2.2.6b ++TIMESTAMP="" ++package_revision=1.3017 ++ ++# Be Bourne compatible ++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 ++ # 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 ++BIN_SH=xpg4; export BIN_SH # for Tru64 ++DUALCASE=1; export DUALCASE # for MKS sh ++ ++# NLS nuisances: We save the old values to restore during execute mode. ++# Only set LANG and LC_ALL to C if already set. ++# These must not be set unconditionally because not all systems understand ++# e.g. LANG=C (notably SCO). ++lt_user_locale= ++lt_safe_locale= ++for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES ++do ++ eval "if test \"\${$lt_var+set}\" = set; then ++ save_$lt_var=\$$lt_var ++ $lt_var=C ++ export $lt_var ++ lt_user_locale=\"$lt_var=\\\$save_\$lt_var; \$lt_user_locale\" ++ lt_safe_locale=\"$lt_var=C; \$lt_safe_locale\" ++ fi" ++done ++ ++$lt_unset CDPATH ++ ++ ++ ++ ++ ++: ${CP="cp -f"} ++: ${ECHO="echo"} ++: ${EGREP="/bin/grep -E"} ++: ${FGREP="/bin/grep -F"} ++: ${GREP="/bin/grep"} ++: ${LN_S="ln -s"} ++: ${MAKE="make"} ++: ${MKDIR="mkdir"} ++: ${MV="mv -f"} ++: ${RM="rm -f"} ++: ${SED="/bin/sed"} ++: ${SHELL="${CONFIG_SHELL-/bin/sh}"} ++: ${Xsed="$SED -e 1s/^X//"} ++ ++# Global variables: ++EXIT_SUCCESS=0 ++EXIT_FAILURE=1 ++EXIT_MISMATCH=63 # $? = 63 is used to indicate version mismatch to missing. ++EXIT_SKIP=77 # $? = 77 is used to indicate a skipped test to automake. ++ ++exit_status=$EXIT_SUCCESS ++ ++# Make sure IFS has a sensible default ++lt_nl=' ++' ++IFS=" $lt_nl" ++ ++dirname="s,/[^/]*$,," ++basename="s,^.*/,," ++ ++# func_dirname_and_basename file append nondir_replacement ++# perform func_basename and func_dirname in a single function ++# call: ++# dirname: Compute the dirname of FILE. If nonempty, ++# add APPEND to the result, otherwise set result ++# to NONDIR_REPLACEMENT. ++# value returned in "$func_dirname_result" ++# basename: Compute filename of FILE. ++# value retuned in "$func_basename_result" ++# Implementation must be kept synchronized with func_dirname ++# and func_basename. For efficiency, we do not delegate to ++# those functions but instead duplicate the functionality here. ++func_dirname_and_basename () ++{ ++ # Extract subdirectory from the argument. ++ func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"` ++ if test "X$func_dirname_result" = "X${1}"; then ++ func_dirname_result="${3}" ++ else ++ func_dirname_result="$func_dirname_result${2}" ++ fi ++ func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"` ++} ++ ++# Generated shell functions inserted here. ++ ++# func_dirname file append nondir_replacement ++# Compute the dirname of FILE. If nonempty, add APPEND to the result, ++# otherwise set result to NONDIR_REPLACEMENT. ++func_dirname () ++{ ++ case ${1} in ++ */*) func_dirname_result="${1%/*}${2}" ;; ++ * ) func_dirname_result="${3}" ;; ++ esac ++} ++ ++# func_basename file ++func_basename () ++{ ++ func_basename_result="${1##*/}" ++} ++ ++# func_dirname_and_basename file append nondir_replacement ++# perform func_basename and func_dirname in a single function ++# call: ++# dirname: Compute the dirname of FILE. If nonempty, ++# add APPEND to the result, otherwise set result ++# to NONDIR_REPLACEMENT. ++# value returned in "$func_dirname_result" ++# basename: Compute filename of FILE. ++# value retuned in "$func_basename_result" ++# Implementation must be kept synchronized with func_dirname ++# and func_basename. For efficiency, we do not delegate to ++# those functions but instead duplicate the functionality here. ++func_dirname_and_basename () ++{ ++ case ${1} in ++ */*) func_dirname_result="${1%/*}${2}" ;; ++ * ) func_dirname_result="${3}" ;; ++ esac ++ func_basename_result="${1##*/}" ++} ++ ++# func_stripname prefix suffix name ++# strip PREFIX and SUFFIX off of NAME. ++# PREFIX and SUFFIX must not contain globbing or regex special ++# characters, hashes, percent signs, but SUFFIX may contain a leading ++# dot (in which case that matches only a dot). ++func_stripname () ++{ ++ # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are ++ # positional parameters, so assign one to ordinary parameter first. ++ func_stripname_result=${3} ++ func_stripname_result=${func_stripname_result#"${1}"} ++ func_stripname_result=${func_stripname_result%"${2}"} ++} ++ ++# func_opt_split ++func_opt_split () ++{ ++ func_opt_split_opt=${1%%=*} ++ func_opt_split_arg=${1#*=} ++} ++ ++# func_lo2o object ++func_lo2o () ++{ ++ case ${1} in ++ *.lo) func_lo2o_result=${1%.lo}.${objext} ;; ++ *) func_lo2o_result=${1} ;; ++ esac ++} ++ ++# func_xform libobj-or-source ++func_xform () ++{ ++ func_xform_result=${1%.*}.lo ++} ++ ++# func_arith arithmetic-term... ++func_arith () ++{ ++ func_arith_result=$(( $* )) ++} ++ ++# func_len string ++# STRING may not start with a hyphen. ++func_len () ++{ ++ func_len_result=${#1} ++} ++ ++ ++# func_append var value ++# Append VALUE to the end of shell variable VAR. ++func_append () ++{ ++ eval "$1+=\$2" ++} ++# Generated shell functions inserted here. ++ ++# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh ++# is ksh but when the shell is invoked as "sh" and the current value of ++# the _XPG environment variable is not equal to 1 (one), the special ++# positional parameter $0, within a function call, is the name of the ++# function. ++progpath="$0" ++ ++# The name of this program: ++# In the unlikely event $progname began with a '-', it would play havoc with ++# func_echo (imagine progname=-n), so we prepend ./ in that case: ++func_dirname_and_basename "$progpath" ++progname=$func_basename_result ++case $progname in ++ -*) progname=./$progname ;; ++esac ++ ++# Make sure we have an absolute path for reexecution: ++case $progpath in ++ [\\/]*|[A-Za-z]:\\*) ;; ++ *[\\/]*) ++ progdir=$func_dirname_result ++ progdir=`cd "$progdir" && pwd` ++ progpath="$progdir/$progname" ++ ;; ++ *) ++ save_IFS="$IFS" ++ IFS=: ++ for progdir in $PATH; do ++ IFS="$save_IFS" ++ test -x "$progdir/$progname" && break ++ done ++ IFS="$save_IFS" ++ test -n "$progdir" || progdir=`pwd` ++ progpath="$progdir/$progname" ++ ;; ++esac ++ ++# Sed substitution that helps us do robust quoting. It backslashifies ++# metacharacters that are still active within double-quoted strings. ++Xsed="${SED}"' -e 1s/^X//' ++sed_quote_subst='s/\([`"$\\]\)/\\\1/g' ++ ++# Same as above, but do not quote variable references. ++double_quote_subst='s/\(["`\\]\)/\\\1/g' ++ ++# Re-`\' parameter expansions in output of double_quote_subst that were ++# `\'-ed in input to the same. If an odd number of `\' preceded a '$' ++# in input to double_quote_subst, that '$' was protected from expansion. ++# Since each input `\' is now two `\'s, look for any number of runs of ++# four `\'s followed by two `\'s and then a '$'. `\' that '$'. ++bs='\\' ++bs2='\\\\' ++bs4='\\\\\\\\' ++dollar='\$' ++sed_double_backslash="\ ++ s/$bs4/&\\ ++/g ++ s/^$bs2$dollar/$bs&/ ++ s/\\([^$bs]\\)$bs2$dollar/\\1$bs2$bs$dollar/g ++ s/\n//g" ++ ++# Standard options: ++opt_dry_run=false ++opt_help=false ++opt_quiet=false ++opt_verbose=false ++opt_warning=: ++ ++# func_echo arg... ++# Echo program name prefixed message, along with the current mode ++# name if it has been set yet. ++func_echo () ++{ ++ $ECHO "$progname${mode+: }$mode: $*" ++} ++ ++# func_verbose arg... ++# Echo program name prefixed message in verbose mode only. ++func_verbose () ++{ ++ $opt_verbose && func_echo ${1+"$@"} ++ ++ # A bug in bash halts the script if the last line of a function ++ # fails when set -e is in force, so we need another command to ++ # work around that: ++ : ++} ++ ++# func_error arg... ++# Echo program name prefixed message to standard error. ++func_error () ++{ ++ $ECHO "$progname${mode+: }$mode: "${1+"$@"} 1>&2 ++} ++ ++# func_warning arg... ++# Echo program name prefixed warning message to standard error. ++func_warning () ++{ ++ $opt_warning && $ECHO "$progname${mode+: }$mode: warning: "${1+"$@"} 1>&2 ++ ++ # bash bug again: ++ : ++} ++ ++# func_fatal_error arg... ++# Echo program name prefixed message to standard error, and exit. ++func_fatal_error () ++{ ++ func_error ${1+"$@"} ++ exit $EXIT_FAILURE ++} ++ ++# func_fatal_help arg... ++# Echo program name prefixed message to standard error, followed by ++# a help hint, and exit. ++func_fatal_help () ++{ ++ func_error ${1+"$@"} ++ func_fatal_error "$help" ++} ++help="Try \`$progname --help' for more information." ## default ++ ++ ++# func_grep expression filename ++# Check whether EXPRESSION matches any line of FILENAME, without output. ++func_grep () ++{ ++ $GREP "$1" "$2" >/dev/null 2>&1 ++} ++ ++ ++# func_mkdir_p directory-path ++# Make sure the entire path to DIRECTORY-PATH is available. ++func_mkdir_p () ++{ ++ my_directory_path="$1" ++ my_dir_list= ++ ++ if test -n "$my_directory_path" && test "$opt_dry_run" != ":"; then ++ ++ # Protect directory names starting with `-' ++ case $my_directory_path in ++ -*) my_directory_path="./$my_directory_path" ;; ++ esac ++ ++ # While some portion of DIR does not yet exist... ++ while test ! -d "$my_directory_path"; do ++ # ...make a list in topmost first order. Use a colon delimited ++ # list incase some portion of path contains whitespace. ++ my_dir_list="$my_directory_path:$my_dir_list" ++ ++ # If the last portion added has no slash in it, the list is done ++ case $my_directory_path in */*) ;; *) break ;; esac ++ ++ # ...otherwise throw away the child directory and loop ++ my_directory_path=`$ECHO "X$my_directory_path" | $Xsed -e "$dirname"` ++ done ++ my_dir_list=`$ECHO "X$my_dir_list" | $Xsed -e 's,:*$,,'` ++ ++ save_mkdir_p_IFS="$IFS"; IFS=':' ++ for my_dir in $my_dir_list; do ++ IFS="$save_mkdir_p_IFS" ++ # mkdir can fail with a `File exist' error if two processes ++ # try to create one of the directories concurrently. Don't ++ # stop in that case! ++ $MKDIR "$my_dir" 2>/dev/null || : ++ done ++ IFS="$save_mkdir_p_IFS" ++ ++ # Bail out if we (or some other process) failed to create a directory. ++ test -d "$my_directory_path" || \ ++ func_fatal_error "Failed to create \`$1'" ++ fi ++} ++ ++ ++# func_mktempdir [string] ++# Make a temporary directory that won't clash with other running ++# libtool processes, and avoids race conditions if possible. If ++# given, STRING is the basename for that directory. ++func_mktempdir () ++{ ++ my_template="${TMPDIR-/tmp}/${1-$progname}" ++ ++ if test "$opt_dry_run" = ":"; then ++ # Return a directory name, but don't create it in dry-run mode ++ my_tmpdir="${my_template}-$$" ++ else ++ ++ # If mktemp works, use that first and foremost ++ my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null` ++ ++ if test ! -d "$my_tmpdir"; then ++ # Failing that, at least try and use $RANDOM to avoid a race ++ my_tmpdir="${my_template}-${RANDOM-0}$$" ++ ++ save_mktempdir_umask=`umask` ++ umask 0077 ++ $MKDIR "$my_tmpdir" ++ umask $save_mktempdir_umask ++ fi ++ ++ # If we're not in dry-run mode, bomb out on failure ++ test -d "$my_tmpdir" || \ ++ func_fatal_error "cannot create temporary directory \`$my_tmpdir'" ++ fi ++ ++ $ECHO "X$my_tmpdir" | $Xsed ++} ++ ++ ++# func_quote_for_eval arg ++# Aesthetically quote ARG to be evaled later. ++# This function returns two values: FUNC_QUOTE_FOR_EVAL_RESULT ++# is double-quoted, suitable for a subsequent eval, whereas ++# FUNC_QUOTE_FOR_EVAL_UNQUOTED_RESULT has merely all characters ++# which are still active within double quotes backslashified. ++func_quote_for_eval () ++{ ++ case $1 in ++ *[\\\`\"\$]*) ++ func_quote_for_eval_unquoted_result=`$ECHO "X$1" | $Xsed -e "$sed_quote_subst"` ;; ++ *) ++ func_quote_for_eval_unquoted_result="$1" ;; ++ esac ++ ++ case $func_quote_for_eval_unquoted_result in ++ # Double-quote args containing shell metacharacters to delay ++ # word splitting, command substitution and and variable ++ # expansion for a subsequent eval. ++ # Many Bourne shells cannot handle close brackets correctly ++ # in scan sets, so we specify it separately. ++ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") ++ func_quote_for_eval_result="\"$func_quote_for_eval_unquoted_result\"" ++ ;; ++ *) ++ func_quote_for_eval_result="$func_quote_for_eval_unquoted_result" ++ esac ++} ++ ++ ++# func_quote_for_expand arg ++# Aesthetically quote ARG to be evaled later; same as above, ++# but do not quote variable references. ++func_quote_for_expand () ++{ ++ case $1 in ++ *[\\\`\"]*) ++ my_arg=`$ECHO "X$1" | $Xsed \ ++ -e "$double_quote_subst" -e "$sed_double_backslash"` ;; ++ *) ++ my_arg="$1" ;; ++ esac ++ ++ case $my_arg in ++ # Double-quote args containing shell metacharacters to delay ++ # word splitting and command substitution for a subsequent eval. ++ # Many Bourne shells cannot handle close brackets correctly ++ # in scan sets, so we specify it separately. ++ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") ++ my_arg="\"$my_arg\"" ++ ;; ++ esac ++ ++ func_quote_for_expand_result="$my_arg" ++} ++ ++ ++# func_show_eval cmd [fail_exp] ++# Unless opt_silent is true, then output CMD. Then, if opt_dryrun is ++# not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP ++# is given, then evaluate it. ++func_show_eval () ++{ ++ my_cmd="$1" ++ my_fail_exp="${2-:}" ++ ++ ${opt_silent-false} || { ++ func_quote_for_expand "$my_cmd" ++ eval "func_echo $func_quote_for_expand_result" ++ } ++ ++ if ${opt_dry_run-false}; then :; else ++ eval "$my_cmd" ++ my_status=$? ++ if test "$my_status" -eq 0; then :; else ++ eval "(exit $my_status); $my_fail_exp" ++ fi ++ fi ++} ++ ++ ++# func_show_eval_locale cmd [fail_exp] ++# Unless opt_silent is true, then output CMD. Then, if opt_dryrun is ++# not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP ++# is given, then evaluate it. Use the saved locale for evaluation. ++func_show_eval_locale () ++{ ++ my_cmd="$1" ++ my_fail_exp="${2-:}" ++ ++ ${opt_silent-false} || { ++ func_quote_for_expand "$my_cmd" ++ eval "func_echo $func_quote_for_expand_result" ++ } ++ ++ if ${opt_dry_run-false}; then :; else ++ eval "$lt_user_locale ++ $my_cmd" ++ my_status=$? ++ eval "$lt_safe_locale" ++ if test "$my_status" -eq 0; then :; else ++ eval "(exit $my_status); $my_fail_exp" ++ fi ++ fi ++} ++ ++ ++ ++ ++ ++# func_version ++# Echo version message to standard output and exit. ++func_version () ++{ ++ $SED -n '/^# '$PROGRAM' (GNU /,/# warranty; / { ++ s/^# // ++ s/^# *$// ++ s/\((C)\)[ 0-9,-]*\( [1-9][0-9]*\)/\1\2/ ++ p ++ }' < "$progpath" ++ exit $? ++} ++ ++# func_usage ++# Echo short help message to standard output and exit. ++func_usage () ++{ ++ $SED -n '/^# Usage:/,/# -h/ { ++ s/^# // ++ s/^# *$// ++ s/\$progname/'$progname'/ ++ p ++ }' < "$progpath" ++ $ECHO ++ $ECHO "run \`$progname --help | more' for full usage" ++ exit $? ++} ++ ++# func_help ++# Echo long help message to standard output and exit. ++func_help () ++{ ++ $SED -n '/^# Usage:/,/# Report bugs to/ { ++ s/^# // ++ s/^# *$// ++ s*\$progname*'$progname'* ++ s*\$host*'"$host"'* ++ s*\$SHELL*'"$SHELL"'* ++ s*\$LTCC*'"$LTCC"'* ++ s*\$LTCFLAGS*'"$LTCFLAGS"'* ++ s*\$LD*'"$LD"'* ++ s/\$with_gnu_ld/'"$with_gnu_ld"'/ ++ s/\$automake_version/'"`(automake --version) 2>/dev/null |$SED 1q`"'/ ++ s/\$autoconf_version/'"`(autoconf --version) 2>/dev/null |$SED 1q`"'/ ++ p ++ }' < "$progpath" ++ exit $? ++} ++ ++# func_missing_arg argname ++# Echo program name prefixed message to standard error and set global ++# exit_cmd. ++func_missing_arg () ++{ ++ func_error "missing argument for $1" ++ exit_cmd=exit ++} ++ ++exit_cmd=: ++ ++ ++ ++ ++ ++# Check that we have a working $ECHO. ++if test "X$1" = X--no-reexec; then ++ # Discard the --no-reexec flag, and continue. ++ shift ++elif test "X$1" = X--fallback-echo; then ++ # Avoid inline document here, it may be left over ++ : ++elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t'; then ++ # Yippee, $ECHO works! ++ : ++else ++ # Restart under the correct shell, and then maybe $ECHO will work. ++ exec $SHELL "$progpath" --no-reexec ${1+"$@"} ++fi ++ ++if test "X$1" = X--fallback-echo; then ++ # used as fallback echo ++ shift ++ cat </dev/null 2>&1; then ++ taglist="$taglist $tagname" ++ ++ # Evaluate the configuration. Be careful to quote the path ++ # and the sed script, to avoid splitting on whitespace, but ++ # also don't use non-portable quotes within backquotes within ++ # quotes we have to do it in 2 steps: ++ extractedcf=`$SED -n -e "$sed_extractcf" < "$progpath"` ++ eval "$extractedcf" ++ else ++ func_error "ignoring unknown tag $tagname" ++ fi ++ ;; ++ esac ++} ++ ++# Parse options once, thoroughly. This comes as soon as possible in ++# the script to make things like `libtool --version' happen quickly. ++{ ++ ++ # Shorthand for --mode=foo, only valid as the first argument ++ case $1 in ++ clean|clea|cle|cl) ++ shift; set dummy --mode clean ${1+"$@"}; shift ++ ;; ++ compile|compil|compi|comp|com|co|c) ++ shift; set dummy --mode compile ${1+"$@"}; shift ++ ;; ++ execute|execut|execu|exec|exe|ex|e) ++ shift; set dummy --mode execute ${1+"$@"}; shift ++ ;; ++ finish|finis|fini|fin|fi|f) ++ shift; set dummy --mode finish ${1+"$@"}; shift ++ ;; ++ install|instal|insta|inst|ins|in|i) ++ shift; set dummy --mode install ${1+"$@"}; shift ++ ;; ++ link|lin|li|l) ++ shift; set dummy --mode link ${1+"$@"}; shift ++ ;; ++ uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u) ++ shift; set dummy --mode uninstall ${1+"$@"}; shift ++ ;; ++ esac ++ ++ # Parse non-mode specific arguments: ++ while test "$#" -gt 0; do ++ opt="$1" ++ shift ++ ++ case $opt in ++ --config) func_config ;; ++ ++ --debug) preserve_args="$preserve_args $opt" ++ func_echo "enabling shell trace mode" ++ opt_debug='set -x' ++ $opt_debug ++ ;; ++ ++ -dlopen) test "$#" -eq 0 && func_missing_arg "$opt" && break ++ execute_dlfiles="$execute_dlfiles $1" ++ shift ++ ;; ++ ++ --dry-run | -n) opt_dry_run=: ;; ++ --features) func_features ;; ++ --finish) mode="finish" ;; ++ ++ --mode) test "$#" -eq 0 && func_missing_arg "$opt" && break ++ case $1 in ++ # Valid mode arguments: ++ clean) ;; ++ compile) ;; ++ execute) ;; ++ finish) ;; ++ install) ;; ++ link) ;; ++ relink) ;; ++ uninstall) ;; ++ ++ # Catch anything else as an error ++ *) func_error "invalid argument for $opt" ++ exit_cmd=exit ++ break ++ ;; ++ esac ++ ++ mode="$1" ++ shift ++ ;; ++ ++ --preserve-dup-deps) ++ opt_duplicate_deps=: ;; ++ ++ --quiet|--silent) preserve_args="$preserve_args $opt" ++ opt_silent=: ++ ;; ++ ++ --verbose| -v) preserve_args="$preserve_args $opt" ++ opt_silent=false ++ ;; ++ ++ --tag) test "$#" -eq 0 && func_missing_arg "$opt" && break ++ preserve_args="$preserve_args $opt $1" ++ func_enable_tag "$1" # tagname is set here ++ shift ++ ;; ++ ++ # Separate optargs to long options: ++ -dlopen=*|--mode=*|--tag=*) ++ func_opt_split "$opt" ++ set dummy "$func_opt_split_opt" "$func_opt_split_arg" ${1+"$@"} ++ shift ++ ;; ++ ++ -\?|-h) func_usage ;; ++ --help) opt_help=: ;; ++ --version) func_version ;; ++ ++ -*) func_fatal_help "unrecognized option \`$opt'" ;; ++ ++ *) nonopt="$opt" ++ break ++ ;; ++ esac ++ done ++ ++ ++ case $host in ++ *cygwin* | *mingw* | *pw32* | *cegcc*) ++ # don't eliminate duplications in $postdeps and $predeps ++ opt_duplicate_compiler_generated_deps=: ++ ;; ++ *) ++ opt_duplicate_compiler_generated_deps=$opt_duplicate_deps ++ ;; ++ esac ++ ++ # Having warned about all mis-specified options, bail out if ++ # anything was wrong. ++ $exit_cmd $EXIT_FAILURE ++} ++ ++# func_check_version_match ++# Ensure that we are using m4 macros, and libtool script from the same ++# release of libtool. ++func_check_version_match () ++{ ++ if test "$package_revision" != "$macro_revision"; then ++ if test "$VERSION" != "$macro_version"; then ++ if test -z "$macro_version"; then ++ cat >&2 <<_LT_EOF ++$progname: Version mismatch error. This is $PACKAGE $VERSION, but the ++$progname: definition of this LT_INIT comes from an older release. ++$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION ++$progname: and run autoconf again. ++_LT_EOF ++ else ++ cat >&2 <<_LT_EOF ++$progname: Version mismatch error. This is $PACKAGE $VERSION, but the ++$progname: definition of this LT_INIT comes from $PACKAGE $macro_version. ++$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION ++$progname: and run autoconf again. ++_LT_EOF ++ fi ++ else ++ cat >&2 <<_LT_EOF ++$progname: Version mismatch error. This is $PACKAGE $VERSION, revision $package_revision, ++$progname: but the definition of this LT_INIT comes from revision $macro_revision. ++$progname: You should recreate aclocal.m4 with macros from revision $package_revision ++$progname: of $PACKAGE $VERSION and run autoconf again. ++_LT_EOF ++ fi ++ ++ exit $EXIT_MISMATCH ++ fi ++} ++ ++ ++## ----------- ## ++## Main. ## ++## ----------- ## ++ ++$opt_help || { ++ # Sanity checks first: ++ func_check_version_match ++ ++ if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then ++ func_fatal_configuration "not configured to build any kind of library" ++ fi ++ ++ test -z "$mode" && func_fatal_error "error: you must specify a MODE." ++ ++ ++ # Darwin sucks ++ eval std_shrext=\"$shrext_cmds\" ++ ++ ++ # Only execute mode is allowed to have -dlopen flags. ++ if test -n "$execute_dlfiles" && test "$mode" != execute; then ++ func_error "unrecognized option \`-dlopen'" ++ $ECHO "$help" 1>&2 ++ exit $EXIT_FAILURE ++ fi ++ ++ # Change the help message to a mode-specific one. ++ generic_help="$help" ++ help="Try \`$progname --help --mode=$mode' for more information." ++} ++ ++ ++# func_lalib_p file ++# True iff FILE is a libtool `.la' library or `.lo' object file. ++# This function is only a basic sanity check; it will hardly flush out ++# determined imposters. ++func_lalib_p () ++{ ++ test -f "$1" && ++ $SED -e 4q "$1" 2>/dev/null \ ++ | $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1 ++} ++ ++# func_lalib_unsafe_p file ++# True iff FILE is a libtool `.la' library or `.lo' object file. ++# This function implements the same check as func_lalib_p without ++# resorting to external programs. To this end, it redirects stdin and ++# closes it afterwards, without saving the original file descriptor. ++# As a safety measure, use it only where a negative result would be ++# fatal anyway. Works if `file' does not exist. ++func_lalib_unsafe_p () ++{ ++ lalib_p=no ++ if test -f "$1" && test -r "$1" && exec 5<&0 <"$1"; then ++ for lalib_p_l in 1 2 3 4 ++ do ++ read lalib_p_line ++ case "$lalib_p_line" in ++ \#\ Generated\ by\ *$PACKAGE* ) lalib_p=yes; break;; ++ esac ++ done ++ exec 0<&5 5<&- ++ fi ++ test "$lalib_p" = yes ++} ++ ++# func_ltwrapper_script_p file ++# True iff FILE is a libtool wrapper script ++# This function is only a basic sanity check; it will hardly flush out ++# determined imposters. ++func_ltwrapper_script_p () ++{ ++ func_lalib_p "$1" ++} ++ ++# func_ltwrapper_executable_p file ++# True iff FILE is a libtool wrapper executable ++# This function is only a basic sanity check; it will hardly flush out ++# determined imposters. ++func_ltwrapper_executable_p () ++{ ++ func_ltwrapper_exec_suffix= ++ case $1 in ++ *.exe) ;; ++ *) func_ltwrapper_exec_suffix=.exe ;; ++ esac ++ $GREP "$magic_exe" "$1$func_ltwrapper_exec_suffix" >/dev/null 2>&1 ++} ++ ++# func_ltwrapper_scriptname file ++# Assumes file is an ltwrapper_executable ++# uses $file to determine the appropriate filename for a ++# temporary ltwrapper_script. ++func_ltwrapper_scriptname () ++{ ++ func_ltwrapper_scriptname_result="" ++ if func_ltwrapper_executable_p "$1"; then ++ func_dirname_and_basename "$1" "" "." ++ func_stripname '' '.exe' "$func_basename_result" ++ func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper" ++ fi ++} ++ ++# func_ltwrapper_p file ++# True iff FILE is a libtool wrapper script or wrapper executable ++# This function is only a basic sanity check; it will hardly flush out ++# determined imposters. ++func_ltwrapper_p () ++{ ++ func_ltwrapper_script_p "$1" || func_ltwrapper_executable_p "$1" ++} ++ ++ ++# func_execute_cmds commands fail_cmd ++# Execute tilde-delimited COMMANDS. ++# If FAIL_CMD is given, eval that upon failure. ++# FAIL_CMD may read-access the current command in variable CMD! ++func_execute_cmds () ++{ ++ $opt_debug ++ save_ifs=$IFS; IFS='~' ++ for cmd in $1; do ++ IFS=$save_ifs ++ eval cmd=\"$cmd\" ++ func_show_eval "$cmd" "${2-:}" ++ done ++ IFS=$save_ifs ++} ++ ++ ++# func_source file ++# Source FILE, adding directory component if necessary. ++# Note that it is not necessary on cygwin/mingw to append a dot to ++# FILE even if both FILE and FILE.exe exist: automatic-append-.exe ++# behavior happens only for exec(3), not for open(2)! Also, sourcing ++# `FILE.' does not work on cygwin managed mounts. ++func_source () ++{ ++ $opt_debug ++ case $1 in ++ */* | *\\*) . "$1" ;; ++ *) . "./$1" ;; ++ esac ++} ++ ++ ++# func_infer_tag arg ++# Infer tagged configuration to use if any are available and ++# if one wasn't chosen via the "--tag" command line option. ++# Only attempt this if the compiler in the base compile ++# command doesn't match the default compiler. ++# arg is usually of the form 'gcc ...' ++func_infer_tag () ++{ ++ $opt_debug ++ if test -n "$available_tags" && test -z "$tagname"; then ++ CC_quoted= ++ for arg in $CC; do ++ func_quote_for_eval "$arg" ++ CC_quoted="$CC_quoted $func_quote_for_eval_result" ++ done ++ case $@ in ++ # Blanks in the command may have been stripped by the calling shell, ++ # but not from the CC environment variable when configure was run. ++ " $CC "* | "$CC "* | " `$ECHO $CC` "* | "`$ECHO $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$ECHO $CC_quoted` "* | "`$ECHO $CC_quoted` "*) ;; ++ # Blanks at the start of $base_compile will cause this to fail ++ # if we don't check for them as well. ++ *) ++ for z in $available_tags; do ++ if $GREP "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then ++ # Evaluate the configuration. ++ eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`" ++ CC_quoted= ++ for arg in $CC; do ++ # Double-quote args containing other shell metacharacters. ++ func_quote_for_eval "$arg" ++ CC_quoted="$CC_quoted $func_quote_for_eval_result" ++ done ++ case "$@ " in ++ " $CC "* | "$CC "* | " `$ECHO $CC` "* | "`$ECHO $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$ECHO $CC_quoted` "* | "`$ECHO $CC_quoted` "*) ++ # The compiler in the base compile command matches ++ # the one in the tagged configuration. ++ # Assume this is the tagged configuration we want. ++ tagname=$z ++ break ++ ;; ++ esac ++ fi ++ done ++ # If $tagname still isn't set, then no tagged configuration ++ # was found and let the user know that the "--tag" command ++ # line option must be used. ++ if test -z "$tagname"; then ++ func_echo "unable to infer tagged configuration" ++ func_fatal_error "specify a tag with \`--tag'" ++# else ++# func_verbose "using $tagname tagged configuration" ++ fi ++ ;; ++ esac ++ fi ++} ++ ++ ++ ++# func_write_libtool_object output_name pic_name nonpic_name ++# Create a libtool object file (analogous to a ".la" file), ++# but don't create it if we're doing a dry run. ++func_write_libtool_object () ++{ ++ write_libobj=${1} ++ if test "$build_libtool_libs" = yes; then ++ write_lobj=\'${2}\' ++ else ++ write_lobj=none ++ fi ++ ++ if test "$build_old_libs" = yes; then ++ write_oldobj=\'${3}\' ++ else ++ write_oldobj=none ++ fi ++ ++ $opt_dry_run || { ++ cat >${write_libobj}T <?"'"'"' &()|`$[]' \ ++ && func_warning "libobj name \`$libobj' may not contain shell special characters." ++ func_dirname_and_basename "$obj" "/" "" ++ objname="$func_basename_result" ++ xdir="$func_dirname_result" ++ lobj=${xdir}$objdir/$objname ++ ++ test -z "$base_compile" && \ ++ func_fatal_help "you must specify a compilation command" ++ ++ # Delete any leftover library objects. ++ if test "$build_old_libs" = yes; then ++ removelist="$obj $lobj $libobj ${libobj}T" ++ else ++ removelist="$lobj $libobj ${libobj}T" ++ fi ++ ++ # On Cygwin there's no "real" PIC flag so we must build both object types ++ case $host_os in ++ cygwin* | mingw* | pw32* | os2* | cegcc*) ++ pic_mode=default ++ ;; ++ esac ++ if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then ++ # non-PIC code in shared libraries is not supported ++ pic_mode=default ++ fi ++ ++ # Calculate the filename of the output object if compiler does ++ # not support -o with -c ++ if test "$compiler_c_o" = no; then ++ output_obj=`$ECHO "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext} ++ lockfile="$output_obj.lock" ++ else ++ output_obj= ++ need_locks=no ++ lockfile= ++ fi ++ ++ # Lock this critical section if it is needed ++ # We use this script file to make the link, it avoids creating a new file ++ if test "$need_locks" = yes; then ++ until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do ++ func_echo "Waiting for $lockfile to be removed" ++ sleep 2 ++ done ++ elif test "$need_locks" = warn; then ++ if test -f "$lockfile"; then ++ $ECHO "\ ++*** ERROR, $lockfile exists and contains: ++`cat $lockfile 2>/dev/null` ++ ++This indicates that another process is trying to use the same ++temporary object file, and libtool could not work around it because ++your compiler does not support \`-c' and \`-o' together. If you ++repeat this compilation, it may succeed, by chance, but you had better ++avoid parallel builds (make -j) in this platform, or get a better ++compiler." ++ ++ $opt_dry_run || $RM $removelist ++ exit $EXIT_FAILURE ++ fi ++ removelist="$removelist $output_obj" ++ $ECHO "$srcfile" > "$lockfile" ++ fi ++ ++ $opt_dry_run || $RM $removelist ++ removelist="$removelist $lockfile" ++ trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15 ++ ++ if test -n "$fix_srcfile_path"; then ++ eval srcfile=\"$fix_srcfile_path\" ++ fi ++ func_quote_for_eval "$srcfile" ++ qsrcfile=$func_quote_for_eval_result ++ ++ # Only build a PIC object if we are building libtool libraries. ++ if test "$build_libtool_libs" = yes; then ++ # Without this assignment, base_compile gets emptied. ++ fbsd_hideous_sh_bug=$base_compile ++ ++ if test "$pic_mode" != no; then ++ command="$base_compile $qsrcfile $pic_flag" ++ else ++ # Don't build PIC code ++ command="$base_compile $qsrcfile" ++ fi ++ ++ func_mkdir_p "$xdir$objdir" ++ ++ if test -z "$output_obj"; then ++ # Place PIC objects in $objdir ++ command="$command -o $lobj" ++ fi ++ ++ func_show_eval_locale "$command" \ ++ 'test -n "$output_obj" && $RM $removelist; exit $EXIT_FAILURE' ++ ++ if test "$need_locks" = warn && ++ test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then ++ $ECHO "\ ++*** ERROR, $lockfile contains: ++`cat $lockfile 2>/dev/null` ++ ++but it should contain: ++$srcfile ++ ++This indicates that another process is trying to use the same ++temporary object file, and libtool could not work around it because ++your compiler does not support \`-c' and \`-o' together. If you ++repeat this compilation, it may succeed, by chance, but you had better ++avoid parallel builds (make -j) in this platform, or get a better ++compiler." ++ ++ $opt_dry_run || $RM $removelist ++ exit $EXIT_FAILURE ++ fi ++ ++ # Just move the object if needed, then go on to compile the next one ++ if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then ++ func_show_eval '$MV "$output_obj" "$lobj"' \ ++ 'error=$?; $opt_dry_run || $RM $removelist; exit $error' ++ fi ++ ++ # Allow error messages only from the first compilation. ++ if test "$suppress_opt" = yes; then ++ suppress_output=' >/dev/null 2>&1' ++ fi ++ fi ++ ++ # Only build a position-dependent object if we build old libraries. ++ if test "$build_old_libs" = yes; then ++ if test "$pic_mode" != yes; then ++ # Don't build PIC code ++ command="$base_compile $qsrcfile$pie_flag" ++ else ++ command="$base_compile $qsrcfile $pic_flag" ++ fi ++ if test "$compiler_c_o" = yes; then ++ command="$command -o $obj" ++ fi ++ ++ # Suppress compiler output if we already did a PIC compilation. ++ command="$command$suppress_output" ++ func_show_eval_locale "$command" \ ++ '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' ++ ++ if test "$need_locks" = warn && ++ test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then ++ $ECHO "\ ++*** ERROR, $lockfile contains: ++`cat $lockfile 2>/dev/null` ++ ++but it should contain: ++$srcfile ++ ++This indicates that another process is trying to use the same ++temporary object file, and libtool could not work around it because ++your compiler does not support \`-c' and \`-o' together. If you ++repeat this compilation, it may succeed, by chance, but you had better ++avoid parallel builds (make -j) in this platform, or get a better ++compiler." ++ ++ $opt_dry_run || $RM $removelist ++ exit $EXIT_FAILURE ++ fi ++ ++ # Just move the object if needed ++ if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then ++ func_show_eval '$MV "$output_obj" "$obj"' \ ++ 'error=$?; $opt_dry_run || $RM $removelist; exit $error' ++ fi ++ fi ++ ++ $opt_dry_run || { ++ func_write_libtool_object "$libobj" "$objdir/$objname" "$objname" ++ ++ # Unlock the critical section if it was locked ++ if test "$need_locks" != no; then ++ removelist=$lockfile ++ $RM "$lockfile" ++ fi ++ } ++ ++ exit $EXIT_SUCCESS ++} ++ ++$opt_help || { ++test "$mode" = compile && func_mode_compile ${1+"$@"} ++} ++ ++func_mode_help () ++{ ++ # We need to display help for each of the modes. ++ case $mode in ++ "") ++ # Generic help is extracted from the usage comments ++ # at the start of this file. ++ func_help ++ ;; ++ ++ clean) ++ $ECHO \ ++"Usage: $progname [OPTION]... --mode=clean RM [RM-OPTION]... FILE... ++ ++Remove files from the build directory. ++ ++RM is the name of the program to use to delete files associated with each FILE ++(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed ++to RM. ++ ++If FILE is a libtool library, object or program, all the files associated ++with it are deleted. Otherwise, only FILE itself is deleted using RM." ++ ;; ++ ++ compile) ++ $ECHO \ ++"Usage: $progname [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE ++ ++Compile a source file into a libtool library object. ++ ++This mode accepts the following additional options: ++ ++ -o OUTPUT-FILE set the output file name to OUTPUT-FILE ++ -no-suppress do not suppress compiler output for multiple passes ++ -prefer-pic try to building PIC objects only ++ -prefer-non-pic try to building non-PIC objects only ++ -shared do not build a \`.o' file suitable for static linking ++ -static only build a \`.o' file suitable for static linking ++ ++COMPILE-COMMAND is a command to be used in creating a \`standard' object file ++from the given SOURCEFILE. ++ ++The output file name is determined by removing the directory component from ++SOURCEFILE, then substituting the C source code suffix \`.c' with the ++library object suffix, \`.lo'." ++ ;; ++ ++ execute) ++ $ECHO \ ++"Usage: $progname [OPTION]... --mode=execute COMMAND [ARGS]... ++ ++Automatically set library path, then run a program. ++ ++This mode accepts the following additional options: ++ ++ -dlopen FILE add the directory containing FILE to the library path ++ ++This mode sets the library path environment variable according to \`-dlopen' ++flags. ++ ++If any of the ARGS are libtool executable wrappers, then they are translated ++into their corresponding uninstalled binary, and any of their required library ++directories are added to the library path. ++ ++Then, COMMAND is executed, with ARGS as arguments." ++ ;; ++ ++ finish) ++ $ECHO \ ++"Usage: $progname [OPTION]... --mode=finish [LIBDIR]... ++ ++Complete the installation of libtool libraries. ++ ++Each LIBDIR is a directory that contains libtool libraries. ++ ++The commands that this mode executes may require superuser privileges. Use ++the \`--dry-run' option if you just want to see what would be executed." ++ ;; ++ ++ install) ++ $ECHO \ ++"Usage: $progname [OPTION]... --mode=install INSTALL-COMMAND... ++ ++Install executables or libraries. ++ ++INSTALL-COMMAND is the installation command. The first component should be ++either the \`install' or \`cp' program. ++ ++The following components of INSTALL-COMMAND are treated specially: ++ ++ -inst-prefix PREFIX-DIR Use PREFIX-DIR as a staging area for installation ++ ++The rest of the components are interpreted as arguments to that command (only ++BSD-compatible install options are recognized)." ++ ;; ++ ++ link) ++ $ECHO \ ++"Usage: $progname [OPTION]... --mode=link LINK-COMMAND... ++ ++Link object files or libraries together to form another library, or to ++create an executable program. ++ ++LINK-COMMAND is a command using the C compiler that you would use to create ++a program from several object files. ++ ++The following components of LINK-COMMAND are treated specially: ++ ++ -all-static do not do any dynamic linking at all ++ -avoid-version do not add a version suffix if possible ++ -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime ++ -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols ++ -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3) ++ -export-symbols SYMFILE ++ try to export only the symbols listed in SYMFILE ++ -export-symbols-regex REGEX ++ try to export only the symbols matching REGEX ++ -LLIBDIR search LIBDIR for required installed libraries ++ -lNAME OUTPUT-FILE requires the installed library libNAME ++ -module build a library that can dlopened ++ -no-fast-install disable the fast-install mode ++ -no-install link a not-installable executable ++ -no-undefined declare that a library does not refer to external symbols ++ -o OUTPUT-FILE create OUTPUT-FILE from the specified objects ++ -objectlist FILE Use a list of object files found in FILE to specify objects ++ -precious-files-regex REGEX ++ don't remove output files matching REGEX ++ -release RELEASE specify package release information ++ -rpath LIBDIR the created library will eventually be installed in LIBDIR ++ -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries ++ -shared only do dynamic linking of libtool libraries ++ -shrext SUFFIX override the standard shared library file extension ++ -static do not do any dynamic linking of uninstalled libtool libraries ++ -static-libtool-libs ++ do not do any dynamic linking of libtool libraries ++ -version-info CURRENT[:REVISION[:AGE]] ++ specify library version info [each variable defaults to 0] ++ -weak LIBNAME declare that the target provides the LIBNAME interface ++ ++All other options (arguments beginning with \`-') are ignored. ++ ++Every other argument is treated as a filename. Files ending in \`.la' are ++treated as uninstalled libtool libraries, other files are standard or library ++object files. ++ ++If the OUTPUT-FILE ends in \`.la', then a libtool library is created, ++only library objects (\`.lo' files) may be specified, and \`-rpath' is ++required, except when creating a convenience library. ++ ++If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created ++using \`ar' and \`ranlib', or on Windows using \`lib'. ++ ++If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file ++is created, otherwise an executable program is created." ++ ;; ++ ++ uninstall) ++ $ECHO \ ++"Usage: $progname [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE... ++ ++Remove libraries from an installation directory. ++ ++RM is the name of the program to use to delete files associated with each FILE ++(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed ++to RM. ++ ++If FILE is a libtool library, all the files associated with it are deleted. ++Otherwise, only FILE itself is deleted using RM." ++ ;; ++ ++ *) ++ func_fatal_help "invalid operation mode \`$mode'" ++ ;; ++ esac ++ ++ $ECHO ++ $ECHO "Try \`$progname --help' for more information about other modes." ++ ++ exit $? ++} ++ ++ # Now that we've collected a possible --mode arg, show help if necessary ++ $opt_help && func_mode_help ++ ++ ++# func_mode_execute arg... ++func_mode_execute () ++{ ++ $opt_debug ++ # The first argument is the command name. ++ cmd="$nonopt" ++ test -z "$cmd" && \ ++ func_fatal_help "you must specify a COMMAND" ++ ++ # Handle -dlopen flags immediately. ++ for file in $execute_dlfiles; do ++ test -f "$file" \ ++ || func_fatal_help "\`$file' is not a file" ++ ++ dir= ++ case $file in ++ *.la) ++ # Check to see that this really is a libtool archive. ++ func_lalib_unsafe_p "$file" \ ++ || func_fatal_help "\`$lib' is not a valid libtool archive" ++ ++ # Read the libtool library. ++ dlname= ++ library_names= ++ func_source "$file" ++ ++ # Skip this library if it cannot be dlopened. ++ if test -z "$dlname"; then ++ # Warn if it was a shared library. ++ test -n "$library_names" && \ ++ func_warning "\`$file' was not linked with \`-export-dynamic'" ++ continue ++ fi ++ ++ func_dirname "$file" "" "." ++ dir="$func_dirname_result" ++ ++ if test -f "$dir/$objdir/$dlname"; then ++ dir="$dir/$objdir" ++ else ++ if test ! -f "$dir/$dlname"; then ++ func_fatal_error "cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" ++ fi ++ fi ++ ;; ++ ++ *.lo) ++ # Just add the directory containing the .lo file. ++ func_dirname "$file" "" "." ++ dir="$func_dirname_result" ++ ;; ++ ++ *) ++ func_warning "\`-dlopen' is ignored for non-libtool libraries and objects" ++ continue ++ ;; ++ esac ++ ++ # Get the absolute pathname. ++ absdir=`cd "$dir" && pwd` ++ test -n "$absdir" && dir="$absdir" ++ ++ # Now add the directory to shlibpath_var. ++ if eval "test -z \"\$$shlibpath_var\""; then ++ eval "$shlibpath_var=\"\$dir\"" ++ else ++ eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\"" ++ fi ++ done ++ ++ # This variable tells wrapper scripts just to set shlibpath_var ++ # rather than running their programs. ++ libtool_execute_magic="$magic" ++ ++ # Check if any of the arguments is a wrapper script. ++ args= ++ for file ++ do ++ case $file in ++ -*) ;; ++ *) ++ # Do a test to see if this is really a libtool program. ++ if func_ltwrapper_script_p "$file"; then ++ func_source "$file" ++ # Transform arg to wrapped name. ++ file="$progdir/$program" ++ elif func_ltwrapper_executable_p "$file"; then ++ func_ltwrapper_scriptname "$file" ++ func_source "$func_ltwrapper_scriptname_result" ++ # Transform arg to wrapped name. ++ file="$progdir/$program" ++ fi ++ ;; ++ esac ++ # Quote arguments (to preserve shell metacharacters). ++ func_quote_for_eval "$file" ++ args="$args $func_quote_for_eval_result" ++ done ++ ++ if test "X$opt_dry_run" = Xfalse; then ++ if test -n "$shlibpath_var"; then ++ # Export the shlibpath_var. ++ eval "export $shlibpath_var" ++ fi ++ ++ # Restore saved environment variables ++ for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES ++ do ++ eval "if test \"\${save_$lt_var+set}\" = set; then ++ $lt_var=\$save_$lt_var; export $lt_var ++ else ++ $lt_unset $lt_var ++ fi" ++ done ++ ++ # Now prepare to actually exec the command. ++ exec_cmd="\$cmd$args" ++ else ++ # Display what would be done. ++ if test -n "$shlibpath_var"; then ++ eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\"" ++ $ECHO "export $shlibpath_var" ++ fi ++ $ECHO "$cmd$args" ++ exit $EXIT_SUCCESS ++ fi ++} ++ ++test "$mode" = execute && func_mode_execute ${1+"$@"} ++ ++ ++# func_mode_finish arg... ++func_mode_finish () ++{ ++ $opt_debug ++ libdirs="$nonopt" ++ admincmds= ++ ++ if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then ++ for dir ++ do ++ libdirs="$libdirs $dir" ++ done ++ ++ for libdir in $libdirs; do ++ if test -n "$finish_cmds"; then ++ # Do each command in the finish commands. ++ func_execute_cmds "$finish_cmds" 'admincmds="$admincmds ++'"$cmd"'"' ++ fi ++ if test -n "$finish_eval"; then ++ # Do the single finish_eval. ++ eval cmds=\"$finish_eval\" ++ $opt_dry_run || eval "$cmds" || admincmds="$admincmds ++ $cmds" ++ fi ++ done ++ fi ++ ++ # Exit here if they wanted silent mode. ++ $opt_silent && exit $EXIT_SUCCESS ++ ++ $ECHO "X----------------------------------------------------------------------" | $Xsed ++ $ECHO "Libraries have been installed in:" ++ for libdir in $libdirs; do ++ $ECHO " $libdir" ++ done ++ $ECHO ++ $ECHO "If you ever happen to want to link against installed libraries" ++ $ECHO "in a given directory, LIBDIR, you must either use libtool, and" ++ $ECHO "specify the full pathname of the library, or use the \`-LLIBDIR'" ++ $ECHO "flag during linking and do at least one of the following:" ++ if test -n "$shlibpath_var"; then ++ $ECHO " - add LIBDIR to the \`$shlibpath_var' environment variable" ++ $ECHO " during execution" ++ fi ++ if test -n "$runpath_var"; then ++ $ECHO " - add LIBDIR to the \`$runpath_var' environment variable" ++ $ECHO " during linking" ++ fi ++ if test -n "$hardcode_libdir_flag_spec"; then ++ libdir=LIBDIR ++ eval flag=\"$hardcode_libdir_flag_spec\" ++ ++ $ECHO " - use the \`$flag' linker flag" ++ fi ++ if test -n "$admincmds"; then ++ $ECHO " - have your system administrator run these commands:$admincmds" ++ fi ++ if test -f /etc/ld.so.conf; then ++ $ECHO " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'" ++ fi ++ $ECHO ++ ++ $ECHO "See any operating system documentation about shared libraries for" ++ case $host in ++ solaris2.[6789]|solaris2.1[0-9]) ++ $ECHO "more information, such as the ld(1), crle(1) and ld.so(8) manual" ++ $ECHO "pages." ++ ;; ++ *) ++ $ECHO "more information, such as the ld(1) and ld.so(8) manual pages." ++ ;; ++ esac ++ $ECHO "X----------------------------------------------------------------------" | $Xsed ++ exit $EXIT_SUCCESS ++} ++ ++test "$mode" = finish && func_mode_finish ${1+"$@"} ++ ++ ++# func_mode_install arg... ++func_mode_install () ++{ ++ $opt_debug ++ # There may be an optional sh(1) argument at the beginning of ++ # install_prog (especially on Windows NT). ++ if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh || ++ # Allow the use of GNU shtool's install command. ++ $ECHO "X$nonopt" | $GREP shtool >/dev/null; then ++ # Aesthetically quote it. ++ func_quote_for_eval "$nonopt" ++ install_prog="$func_quote_for_eval_result " ++ arg=$1 ++ shift ++ else ++ install_prog= ++ arg=$nonopt ++ fi ++ ++ # The real first argument should be the name of the installation program. ++ # Aesthetically quote it. ++ func_quote_for_eval "$arg" ++ install_prog="$install_prog$func_quote_for_eval_result" ++ ++ # We need to accept at least all the BSD install flags. ++ dest= ++ files= ++ opts= ++ prev= ++ install_type= ++ isdir=no ++ stripme= ++ for arg ++ do ++ if test -n "$dest"; then ++ files="$files $dest" ++ dest=$arg ++ continue ++ fi ++ ++ case $arg in ++ -d) isdir=yes ;; ++ -f) ++ case " $install_prog " in ++ *[\\\ /]cp\ *) ;; ++ *) prev=$arg ;; ++ esac ++ ;; ++ -g | -m | -o) ++ prev=$arg ++ ;; ++ -s) ++ stripme=" -s" ++ continue ++ ;; ++ -*) ++ ;; ++ *) ++ # If the previous option needed an argument, then skip it. ++ if test -n "$prev"; then ++ prev= ++ else ++ dest=$arg ++ continue ++ fi ++ ;; ++ esac ++ ++ # Aesthetically quote the argument. ++ func_quote_for_eval "$arg" ++ install_prog="$install_prog $func_quote_for_eval_result" ++ done ++ ++ test -z "$install_prog" && \ ++ func_fatal_help "you must specify an install program" ++ ++ test -n "$prev" && \ ++ func_fatal_help "the \`$prev' option requires an argument" ++ ++ if test -z "$files"; then ++ if test -z "$dest"; then ++ func_fatal_help "no file or destination specified" ++ else ++ func_fatal_help "you must specify a destination" ++ fi ++ fi ++ ++ # Strip any trailing slash from the destination. ++ func_stripname '' '/' "$dest" ++ dest=$func_stripname_result ++ ++ # Check to see that the destination is a directory. ++ test -d "$dest" && isdir=yes ++ if test "$isdir" = yes; then ++ destdir="$dest" ++ destname= ++ else ++ func_dirname_and_basename "$dest" "" "." ++ destdir="$func_dirname_result" ++ destname="$func_basename_result" ++ ++ # Not a directory, so check to see that there is only one file specified. ++ set dummy $files; shift ++ test "$#" -gt 1 && \ ++ func_fatal_help "\`$dest' is not a directory" ++ fi ++ case $destdir in ++ [\\/]* | [A-Za-z]:[\\/]*) ;; ++ *) ++ for file in $files; do ++ case $file in ++ *.lo) ;; ++ *) ++ func_fatal_help "\`$destdir' must be an absolute directory name" ++ ;; ++ esac ++ done ++ ;; ++ esac ++ ++ # This variable tells wrapper scripts just to set variables rather ++ # than running their programs. ++ libtool_install_magic="$magic" ++ ++ staticlibs= ++ future_libdirs= ++ current_libdirs= ++ for file in $files; do ++ ++ # Do each installation. ++ case $file in ++ *.$libext) ++ # Do the static libraries later. ++ staticlibs="$staticlibs $file" ++ ;; ++ ++ *.la) ++ # Check to see that this really is a libtool archive. ++ func_lalib_unsafe_p "$file" \ ++ || func_fatal_help "\`$file' is not a valid libtool archive" ++ ++ library_names= ++ old_library= ++ relink_command= ++ func_source "$file" ++ ++ # Add the libdir to current_libdirs if it is the destination. ++ if test "X$destdir" = "X$libdir"; then ++ case "$current_libdirs " in ++ *" $libdir "*) ;; ++ *) current_libdirs="$current_libdirs $libdir" ;; ++ esac ++ else ++ # Note the libdir as a future libdir. ++ case "$future_libdirs " in ++ *" $libdir "*) ;; ++ *) future_libdirs="$future_libdirs $libdir" ;; ++ esac ++ fi ++ ++ func_dirname "$file" "/" "" ++ dir="$func_dirname_result" ++ dir="$dir$objdir" ++ ++ if test -n "$relink_command"; then ++ # Determine the prefix the user has applied to our future dir. ++ inst_prefix_dir=`$ECHO "X$destdir" | $Xsed -e "s%$libdir\$%%"` ++ ++ # Don't allow the user to place us outside of our expected ++ # location b/c this prevents finding dependent libraries that ++ # are installed to the same prefix. ++ # At present, this check doesn't affect windows .dll's that ++ # are installed into $libdir/../bin (currently, that works fine) ++ # but it's something to keep an eye on. ++ test "$inst_prefix_dir" = "$destdir" && \ ++ func_fatal_error "error: cannot install \`$file' to a directory not ending in $libdir" ++ ++ if test -n "$inst_prefix_dir"; then ++ # Stick the inst_prefix_dir data into the link command. ++ relink_command=`$ECHO "X$relink_command" | $Xsed -e "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` ++ else ++ relink_command=`$ECHO "X$relink_command" | $Xsed -e "s%@inst_prefix_dir@%%"` ++ fi ++ ++ func_warning "relinking \`$file'" ++ func_show_eval "$relink_command" \ ++ 'func_fatal_error "error: relink \`$file'\'' with the above command before installing it"' ++ fi ++ ++ # See the names of the shared library. ++ set dummy $library_names; shift ++ if test -n "$1"; then ++ realname="$1" ++ shift ++ ++ srcname="$realname" ++ test -n "$relink_command" && srcname="$realname"T ++ ++ # Install the shared library and build the symlinks. ++ func_show_eval "$install_prog $dir/$srcname $destdir/$realname" \ ++ 'exit $?' ++ tstripme="$stripme" ++ case $host_os in ++ cygwin* | mingw* | pw32* | cegcc*) ++ case $realname in ++ *.dll.a) ++ tstripme="" ++ ;; ++ esac ++ ;; ++ esac ++ if test -n "$tstripme" && test -n "$striplib"; then ++ func_show_eval "$striplib $destdir/$realname" 'exit $?' ++ fi ++ ++ if test "$#" -gt 0; then ++ # Delete the old symlinks, and create new ones. ++ # Try `ln -sf' first, because the `ln' binary might depend on ++ # the symlink we replace! Solaris /bin/ln does not understand -f, ++ # so we also need to try rm && ln -s. ++ for linkname ++ do ++ test "$linkname" != "$realname" \ ++ && func_show_eval "(cd $destdir && { $LN_S -f $realname $linkname || { $RM $linkname && $LN_S $realname $linkname; }; })" ++ done ++ fi ++ ++ # Do each command in the postinstall commands. ++ lib="$destdir/$realname" ++ func_execute_cmds "$postinstall_cmds" 'exit $?' ++ fi ++ ++ # Install the pseudo-library for information purposes. ++ func_basename "$file" ++ name="$func_basename_result" ++ instname="$dir/$name"i ++ func_show_eval "$install_prog $instname $destdir/$name" 'exit $?' ++ ++ # Maybe install the static library, too. ++ test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library" ++ ;; ++ ++ *.lo) ++ # Install (i.e. copy) a libtool object. ++ ++ # Figure out destination file name, if it wasn't already specified. ++ if test -n "$destname"; then ++ destfile="$destdir/$destname" ++ else ++ func_basename "$file" ++ destfile="$func_basename_result" ++ destfile="$destdir/$destfile" ++ fi ++ ++ # Deduce the name of the destination old-style object file. ++ case $destfile in ++ *.lo) ++ func_lo2o "$destfile" ++ staticdest=$func_lo2o_result ++ ;; ++ *.$objext) ++ staticdest="$destfile" ++ destfile= ++ ;; ++ *) ++ func_fatal_help "cannot copy a libtool object to \`$destfile'" ++ ;; ++ esac ++ ++ # Install the libtool object if requested. ++ test -n "$destfile" && \ ++ func_show_eval "$install_prog $file $destfile" 'exit $?' ++ ++ # Install the old object if enabled. ++ if test "$build_old_libs" = yes; then ++ # Deduce the name of the old-style object file. ++ func_lo2o "$file" ++ staticobj=$func_lo2o_result ++ func_show_eval "$install_prog \$staticobj \$staticdest" 'exit $?' ++ fi ++ exit $EXIT_SUCCESS ++ ;; ++ ++ *) ++ # Figure out destination file name, if it wasn't already specified. ++ if test -n "$destname"; then ++ destfile="$destdir/$destname" ++ else ++ func_basename "$file" ++ destfile="$func_basename_result" ++ destfile="$destdir/$destfile" ++ fi ++ ++ # If the file is missing, and there is a .exe on the end, strip it ++ # because it is most likely a libtool script we actually want to ++ # install ++ stripped_ext="" ++ case $file in ++ *.exe) ++ if test ! -f "$file"; then ++ func_stripname '' '.exe' "$file" ++ file=$func_stripname_result ++ stripped_ext=".exe" ++ fi ++ ;; ++ esac ++ ++ # Do a test to see if this is really a libtool program. ++ case $host in ++ *cygwin* | *mingw*) ++ if func_ltwrapper_executable_p "$file"; then ++ func_ltwrapper_scriptname "$file" ++ wrapper=$func_ltwrapper_scriptname_result ++ else ++ func_stripname '' '.exe' "$file" ++ wrapper=$func_stripname_result ++ fi ++ ;; ++ *) ++ wrapper=$file ++ ;; ++ esac ++ if func_ltwrapper_script_p "$wrapper"; then ++ notinst_deplibs= ++ relink_command= ++ ++ func_source "$wrapper" ++ ++ # Check the variables that should have been set. ++ test -z "$generated_by_libtool_version" && \ ++ func_fatal_error "invalid libtool wrapper script \`$wrapper'" ++ ++ finalize=yes ++ for lib in $notinst_deplibs; do ++ # Check to see that each library is installed. ++ libdir= ++ if test -f "$lib"; then ++ func_source "$lib" ++ fi ++ libfile="$libdir/"`$ECHO "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test ++ if test -n "$libdir" && test ! -f "$libfile"; then ++ func_warning "\`$lib' has not been installed in \`$libdir'" ++ finalize=no ++ fi ++ done ++ ++ relink_command= ++ func_source "$wrapper" ++ ++ outputname= ++ if test "$fast_install" = no && test -n "$relink_command"; then ++ $opt_dry_run || { ++ if test "$finalize" = yes; then ++ tmpdir=`func_mktempdir` ++ func_basename "$file$stripped_ext" ++ file="$func_basename_result" ++ outputname="$tmpdir/$file" ++ # Replace the output file specification. ++ relink_command=`$ECHO "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'` ++ ++ $opt_silent || { ++ func_quote_for_expand "$relink_command" ++ eval "func_echo $func_quote_for_expand_result" ++ } ++ if eval "$relink_command"; then : ++ else ++ func_error "error: relink \`$file' with the above command before installing it" ++ $opt_dry_run || ${RM}r "$tmpdir" ++ continue ++ fi ++ file="$outputname" ++ else ++ func_warning "cannot relink \`$file'" ++ fi ++ } ++ else ++ # Install the binary that we compiled earlier. ++ file=`$ECHO "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"` ++ fi ++ fi ++ ++ # remove .exe since cygwin /usr/bin/install will append another ++ # one anyway ++ case $install_prog,$host in ++ */usr/bin/install*,*cygwin*) ++ case $file:$destfile in ++ *.exe:*.exe) ++ # this is ok ++ ;; ++ *.exe:*) ++ destfile=$destfile.exe ++ ;; ++ *:*.exe) ++ func_stripname '' '.exe' "$destfile" ++ destfile=$func_stripname_result ++ ;; ++ esac ++ ;; ++ esac ++ func_show_eval "$install_prog\$stripme \$file \$destfile" 'exit $?' ++ $opt_dry_run || if test -n "$outputname"; then ++ ${RM}r "$tmpdir" ++ fi ++ ;; ++ esac ++ done ++ ++ for file in $staticlibs; do ++ func_basename "$file" ++ name="$func_basename_result" ++ ++ # Set up the ranlib parameters. ++ oldlib="$destdir/$name" ++ ++ func_show_eval "$install_prog \$file \$oldlib" 'exit $?' ++ ++ if test -n "$stripme" && test -n "$old_striplib"; then ++ func_show_eval "$old_striplib $oldlib" 'exit $?' ++ fi ++ ++ # Do each command in the postinstall commands. ++ func_execute_cmds "$old_postinstall_cmds" 'exit $?' ++ done ++ ++ test -n "$future_libdirs" && \ ++ func_warning "remember to run \`$progname --finish$future_libdirs'" ++ ++ if test -n "$current_libdirs"; then ++ # Maybe just do a dry run. ++ $opt_dry_run && current_libdirs=" -n$current_libdirs" ++ exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs' ++ else ++ exit $EXIT_SUCCESS ++ fi ++} ++ ++test "$mode" = install && func_mode_install ${1+"$@"} ++ ++ ++# func_generate_dlsyms outputname originator pic_p ++# Extract symbols from dlprefiles and create ${outputname}S.o with ++# a dlpreopen symbol table. ++func_generate_dlsyms () ++{ ++ $opt_debug ++ my_outputname="$1" ++ my_originator="$2" ++ my_pic_p="${3-no}" ++ my_prefix=`$ECHO "$my_originator" | sed 's%[^a-zA-Z0-9]%_%g'` ++ my_dlsyms= ++ ++ if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then ++ if test -n "$NM" && test -n "$global_symbol_pipe"; then ++ my_dlsyms="${my_outputname}S.c" ++ else ++ func_error "not configured to extract global symbols from dlpreopened files" ++ fi ++ fi ++ ++ if test -n "$my_dlsyms"; then ++ case $my_dlsyms in ++ "") ;; ++ *.c) ++ # Discover the nlist of each of the dlfiles. ++ nlist="$output_objdir/${my_outputname}.nm" ++ ++ func_show_eval "$RM $nlist ${nlist}S ${nlist}T" ++ ++ # Parse the name list into a source file. ++ func_verbose "creating $output_objdir/$my_dlsyms" ++ ++ $opt_dry_run || $ECHO > "$output_objdir/$my_dlsyms" "\ ++/* $my_dlsyms - symbol resolution table for \`$my_outputname' dlsym emulation. */ ++/* Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION */ ++ ++#ifdef __cplusplus ++extern \"C\" { ++#endif ++ ++/* External symbol declarations for the compiler. */\ ++" ++ ++ if test "$dlself" = yes; then ++ func_verbose "generating symbol list for \`$output'" ++ ++ $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist" ++ ++ # Add our own program objects to the symbol list. ++ progfiles=`$ECHO "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` ++ for progfile in $progfiles; do ++ func_verbose "extracting global C symbols from \`$progfile'" ++ $opt_dry_run || eval "$NM $progfile | $global_symbol_pipe >> '$nlist'" ++ done ++ ++ if test -n "$exclude_expsyms"; then ++ $opt_dry_run || { ++ eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' ++ eval '$MV "$nlist"T "$nlist"' ++ } ++ fi ++ ++ if test -n "$export_symbols_regex"; then ++ $opt_dry_run || { ++ eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T' ++ eval '$MV "$nlist"T "$nlist"' ++ } ++ fi ++ ++ # Prepare the list of exported symbols ++ if test -z "$export_symbols"; then ++ export_symbols="$output_objdir/$outputname.exp" ++ $opt_dry_run || { ++ $RM $export_symbols ++ eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' ++ case $host in ++ *cygwin* | *mingw* | *cegcc* ) ++ eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' ++ eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"' ++ ;; ++ esac ++ } ++ else ++ $opt_dry_run || { ++ eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"' ++ eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' ++ eval '$MV "$nlist"T "$nlist"' ++ case $host in ++ *cygwin | *mingw* | *cegcc* ) ++ eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' ++ eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' ++ ;; ++ esac ++ } ++ fi ++ fi ++ ++ for dlprefile in $dlprefiles; do ++ func_verbose "extracting global C symbols from \`$dlprefile'" ++ func_basename "$dlprefile" ++ name="$func_basename_result" ++ $opt_dry_run || { ++ eval '$ECHO ": $name " >> "$nlist"' ++ eval "$NM $dlprefile 2>/dev/null | $global_symbol_pipe >> '$nlist'" ++ } ++ done ++ ++ $opt_dry_run || { ++ # Make sure we have at least an empty file. ++ test -f "$nlist" || : > "$nlist" ++ ++ if test -n "$exclude_expsyms"; then ++ $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T ++ $MV "$nlist"T "$nlist" ++ fi ++ ++ # Try sorting and uniquifying the output. ++ if $GREP -v "^: " < "$nlist" | ++ if sort -k 3 /dev/null 2>&1; then ++ sort -k 3 ++ else ++ sort +2 ++ fi | ++ uniq > "$nlist"S; then ++ : ++ else ++ $GREP -v "^: " < "$nlist" > "$nlist"S ++ fi ++ ++ if test -f "$nlist"S; then ++ eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"' ++ else ++ $ECHO '/* NONE */' >> "$output_objdir/$my_dlsyms" ++ fi ++ ++ $ECHO >> "$output_objdir/$my_dlsyms" "\ ++ ++/* The mapping between symbol names and symbols. */ ++typedef struct { ++ const char *name; ++ void *address; ++} lt_dlsymlist; ++" ++ case $host in ++ *cygwin* | *mingw* | *cegcc* ) ++ $ECHO >> "$output_objdir/$my_dlsyms" "\ ++/* DATA imports from DLLs on WIN32 con't be const, because ++ runtime relocations are performed -- see ld's documentation ++ on pseudo-relocs. */" ++ lt_dlsym_const= ;; ++ *osf5*) ++ echo >> "$output_objdir/$my_dlsyms" "\ ++/* This system does not cope well with relocations in const data */" ++ lt_dlsym_const= ;; ++ *) ++ lt_dlsym_const=const ;; ++ esac ++ ++ $ECHO >> "$output_objdir/$my_dlsyms" "\ ++extern $lt_dlsym_const lt_dlsymlist ++lt_${my_prefix}_LTX_preloaded_symbols[]; ++$lt_dlsym_const lt_dlsymlist ++lt_${my_prefix}_LTX_preloaded_symbols[] = ++{\ ++ { \"$my_originator\", (void *) 0 }," ++ ++ case $need_lib_prefix in ++ no) ++ eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$my_dlsyms" ++ ;; ++ *) ++ eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms" ++ ;; ++ esac ++ $ECHO >> "$output_objdir/$my_dlsyms" "\ ++ {0, (void *) 0} ++}; ++ ++/* This works around a problem in FreeBSD linker */ ++#ifdef FREEBSD_WORKAROUND ++static const void *lt_preloaded_setup() { ++ return lt_${my_prefix}_LTX_preloaded_symbols; ++} ++#endif ++ ++#ifdef __cplusplus ++} ++#endif\ ++" ++ } # !$opt_dry_run ++ ++ pic_flag_for_symtable= ++ case "$compile_command " in ++ *" -static "*) ;; ++ *) ++ case $host in ++ # compiling the symbol table file with pic_flag works around ++ # a FreeBSD bug that causes programs to crash when -lm is ++ # linked before any other PIC object. But we must not use ++ # pic_flag when linking with -static. The problem exists in ++ # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1. ++ *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) ++ pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;; ++ *-*-hpux*) ++ pic_flag_for_symtable=" $pic_flag" ;; ++ *) ++ if test "X$my_pic_p" != Xno; then ++ pic_flag_for_symtable=" $pic_flag" ++ fi ++ ;; ++ esac ++ ;; ++ esac ++ symtab_cflags= ++ for arg in $LTCFLAGS; do ++ case $arg in ++ -pie | -fpie | -fPIE) ;; ++ *) symtab_cflags="$symtab_cflags $arg" ;; ++ esac ++ done ++ ++ # Now compile the dynamic symbol file. ++ func_show_eval '(cd $output_objdir && $LTCC$symtab_cflags -c$no_builtin_flag$pic_flag_for_symtable "$my_dlsyms")' 'exit $?' ++ ++ # Clean up the generated files. ++ func_show_eval '$RM "$output_objdir/$my_dlsyms" "$nlist" "${nlist}S" "${nlist}T"' ++ ++ # Transform the symbol file into the correct name. ++ symfileobj="$output_objdir/${my_outputname}S.$objext" ++ case $host in ++ *cygwin* | *mingw* | *cegcc* ) ++ if test -f "$output_objdir/$my_outputname.def"; then ++ compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` ++ finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` ++ else ++ compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` ++ finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` ++ fi ++ ;; ++ *) ++ compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` ++ finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` ++ ;; ++ esac ++ ;; ++ *) ++ func_fatal_error "unknown suffix for \`$my_dlsyms'" ++ ;; ++ esac ++ else ++ # We keep going just in case the user didn't refer to ++ # lt_preloaded_symbols. The linker will fail if global_symbol_pipe ++ # really was required. ++ ++ # Nullify the symbol file. ++ compile_command=`$ECHO "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"` ++ finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"` ++ fi ++} ++ ++# func_win32_libid arg ++# return the library type of file 'arg' ++# ++# Need a lot of goo to handle *both* DLLs and import libs ++# Has to be a shell function in order to 'eat' the argument ++# that is supplied when $file_magic_command is called. ++func_win32_libid () ++{ ++ $opt_debug ++ win32_libid_type="unknown" ++ win32_fileres=`file -L $1 2>/dev/null` ++ case $win32_fileres in ++ *ar\ archive\ import\ library*) # definitely import ++ win32_libid_type="x86 archive import" ++ ;; ++ *ar\ archive*) # could be an import, or static ++ if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | ++ $EGREP 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then ++ win32_nmres=`eval $NM -f posix -A $1 | ++ $SED -n -e ' ++ 1,100{ ++ / I /{ ++ s,.*,import, ++ p ++ q ++ } ++ }'` ++ case $win32_nmres in ++ import*) win32_libid_type="x86 archive import";; ++ *) win32_libid_type="x86 archive static";; ++ esac ++ fi ++ ;; ++ *DLL*) ++ win32_libid_type="x86 DLL" ++ ;; ++ *executable*) # but shell scripts are "executable" too... ++ case $win32_fileres in ++ *MS\ Windows\ PE\ Intel*) ++ win32_libid_type="x86 DLL" ++ ;; ++ esac ++ ;; ++ esac ++ $ECHO "$win32_libid_type" ++} ++ ++ ++ ++# func_extract_an_archive dir oldlib ++func_extract_an_archive () ++{ ++ $opt_debug ++ f_ex_an_ar_dir="$1"; shift ++ f_ex_an_ar_oldlib="$1" ++ func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" 'exit $?' ++ if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then ++ : ++ else ++ func_fatal_error "object name conflicts in archive: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" ++ fi ++} ++ ++ ++# func_extract_archives gentop oldlib ... ++func_extract_archives () ++{ ++ $opt_debug ++ my_gentop="$1"; shift ++ my_oldlibs=${1+"$@"} ++ my_oldobjs="" ++ my_xlib="" ++ my_xabs="" ++ my_xdir="" ++ ++ for my_xlib in $my_oldlibs; do ++ # Extract the objects. ++ case $my_xlib in ++ [\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;; ++ *) my_xabs=`pwd`"/$my_xlib" ;; ++ esac ++ func_basename "$my_xlib" ++ my_xlib="$func_basename_result" ++ my_xlib_u=$my_xlib ++ while :; do ++ case " $extracted_archives " in ++ *" $my_xlib_u "*) ++ func_arith $extracted_serial + 1 ++ extracted_serial=$func_arith_result ++ my_xlib_u=lt$extracted_serial-$my_xlib ;; ++ *) break ;; ++ esac ++ done ++ extracted_archives="$extracted_archives $my_xlib_u" ++ my_xdir="$my_gentop/$my_xlib_u" ++ ++ func_mkdir_p "$my_xdir" ++ ++ case $host in ++ *-darwin*) ++ func_verbose "Extracting $my_xabs" ++ # Do not bother doing anything if just a dry run ++ $opt_dry_run || { ++ darwin_orig_dir=`pwd` ++ cd $my_xdir || exit $? ++ darwin_archive=$my_xabs ++ darwin_curdir=`pwd` ++ darwin_base_archive=`basename "$darwin_archive"` ++ darwin_arches=`$LIPO -info "$darwin_archive" 2>/dev/null | $GREP Architectures 2>/dev/null || true` ++ if test -n "$darwin_arches"; then ++ darwin_arches=`$ECHO "$darwin_arches" | $SED -e 's/.*are://'` ++ darwin_arch= ++ func_verbose "$darwin_base_archive has multiple architectures $darwin_arches" ++ for darwin_arch in $darwin_arches ; do ++ func_mkdir_p "unfat-$$/${darwin_base_archive}-${darwin_arch}" ++ $LIPO -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}" ++ cd "unfat-$$/${darwin_base_archive}-${darwin_arch}" ++ func_extract_an_archive "`pwd`" "${darwin_base_archive}" ++ cd "$darwin_curdir" ++ $RM "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" ++ done # $darwin_arches ++ ## Okay now we've a bunch of thin objects, gotta fatten them up :) ++ darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print | $SED -e "$basename" | sort -u` ++ darwin_file= ++ darwin_files= ++ for darwin_file in $darwin_filelist; do ++ darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP` ++ $LIPO -create -output "$darwin_file" $darwin_files ++ done # $darwin_filelist ++ $RM -rf unfat-$$ ++ cd "$darwin_orig_dir" ++ else ++ cd $darwin_orig_dir ++ func_extract_an_archive "$my_xdir" "$my_xabs" ++ fi # $darwin_arches ++ } # !$opt_dry_run ++ ;; ++ *) ++ func_extract_an_archive "$my_xdir" "$my_xabs" ++ ;; ++ esac ++ my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP` ++ done ++ ++ func_extract_archives_result="$my_oldobjs" ++} ++ ++ ++ ++# func_emit_wrapper_part1 [arg=no] ++# ++# Emit the first part of a libtool wrapper script on stdout. ++# For more information, see the description associated with ++# func_emit_wrapper(), below. ++func_emit_wrapper_part1 () ++{ ++ func_emit_wrapper_part1_arg1=no ++ if test -n "$1" ; then ++ func_emit_wrapper_part1_arg1=$1 ++ fi ++ ++ $ECHO "\ ++#! $SHELL ++ ++# $output - temporary wrapper script for $objdir/$outputname ++# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION ++# ++# The $output program cannot be directly executed until all the libtool ++# libraries that it depends on are installed. ++# ++# This wrapper script should never be moved out of the build directory. ++# If it is, it will not operate correctly. ++ ++# Sed substitution that helps us do robust quoting. It backslashifies ++# metacharacters that are still active within double-quoted strings. ++Xsed='${SED} -e 1s/^X//' ++sed_quote_subst='$sed_quote_subst' ++ ++# Be Bourne compatible ++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 ++ # 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 ++BIN_SH=xpg4; export BIN_SH # for Tru64 ++DUALCASE=1; export DUALCASE # for MKS sh ++ ++# The HP-UX ksh and POSIX shell print the target directory to stdout ++# if CDPATH is set. ++(unset CDPATH) >/dev/null 2>&1 && unset CDPATH ++ ++relink_command=\"$relink_command\" ++ ++# This environment variable determines our operation mode. ++if test \"\$libtool_install_magic\" = \"$magic\"; then ++ # install mode needs the following variables: ++ generated_by_libtool_version='$macro_version' ++ notinst_deplibs='$notinst_deplibs' ++else ++ # When we are sourced in execute mode, \$file and \$ECHO are already set. ++ if test \"\$libtool_execute_magic\" != \"$magic\"; then ++ ECHO=\"$qecho\" ++ file=\"\$0\" ++ # Make sure echo works. ++ if test \"X\$1\" = X--no-reexec; then ++ # Discard the --no-reexec flag, and continue. ++ shift ++ elif test \"X\`{ \$ECHO '\t'; } 2>/dev/null\`\" = 'X\t'; then ++ # Yippee, \$ECHO works! ++ : ++ else ++ # Restart under the correct shell, and then maybe \$ECHO will work. ++ exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"} ++ fi ++ fi\ ++" ++ $ECHO "\ ++ ++ # Find the directory that this script lives in. ++ thisdir=\`\$ECHO \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\` ++ test \"x\$thisdir\" = \"x\$file\" && thisdir=. ++ ++ # Follow symbolic links until we get to the real thisdir. ++ file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\` ++ while test -n \"\$file\"; do ++ destdir=\`\$ECHO \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\` ++ ++ # If there was a directory component, then change thisdir. ++ if test \"x\$destdir\" != \"x\$file\"; then ++ case \"\$destdir\" in ++ [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;; ++ *) thisdir=\"\$thisdir/\$destdir\" ;; ++ esac ++ fi ++ ++ file=\`\$ECHO \"X\$file\" | \$Xsed -e 's%^.*/%%'\` ++ file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\` ++ done ++" ++} ++# end: func_emit_wrapper_part1 ++ ++# func_emit_wrapper_part2 [arg=no] ++# ++# Emit the second part of a libtool wrapper script on stdout. ++# For more information, see the description associated with ++# func_emit_wrapper(), below. ++func_emit_wrapper_part2 () ++{ ++ func_emit_wrapper_part2_arg1=no ++ if test -n "$1" ; then ++ func_emit_wrapper_part2_arg1=$1 ++ fi ++ ++ $ECHO "\ ++ ++ # Usually 'no', except on cygwin/mingw when embedded into ++ # the cwrapper. ++ WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_part2_arg1 ++ if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then ++ # special case for '.' ++ if test \"\$thisdir\" = \".\"; then ++ thisdir=\`pwd\` ++ fi ++ # remove .libs from thisdir ++ case \"\$thisdir\" in ++ *[\\\\/]$objdir ) thisdir=\`\$ECHO \"X\$thisdir\" | \$Xsed -e 's%[\\\\/][^\\\\/]*$%%'\` ;; ++ $objdir ) thisdir=. ;; ++ esac ++ fi ++ ++ # Try to get the absolute directory name. ++ absdir=\`cd \"\$thisdir\" && pwd\` ++ test -n \"\$absdir\" && thisdir=\"\$absdir\" ++" ++ ++ if test "$fast_install" = yes; then ++ $ECHO "\ ++ program=lt-'$outputname'$exeext ++ progdir=\"\$thisdir/$objdir\" ++ ++ if test ! -f \"\$progdir/\$program\" || ++ { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\ ++ test \"X\$file\" != \"X\$progdir/\$program\"; }; then ++ ++ file=\"\$\$-\$program\" ++ ++ if test ! -d \"\$progdir\"; then ++ $MKDIR \"\$progdir\" ++ else ++ $RM \"\$progdir/\$file\" ++ fi" ++ ++ $ECHO "\ ++ ++ # relink executable if necessary ++ if test -n \"\$relink_command\"; then ++ if relink_command_output=\`eval \$relink_command 2>&1\`; then : ++ else ++ $ECHO \"\$relink_command_output\" >&2 ++ $RM \"\$progdir/\$file\" ++ exit 1 ++ fi ++ fi ++ ++ $MV \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null || ++ { $RM \"\$progdir/\$program\"; ++ $MV \"\$progdir/\$file\" \"\$progdir/\$program\"; } ++ $RM \"\$progdir/\$file\" ++ fi" ++ else ++ $ECHO "\ ++ program='$outputname' ++ progdir=\"\$thisdir/$objdir\" ++" ++ fi ++ ++ $ECHO "\ ++ ++ if test -f \"\$progdir/\$program\"; then" ++ ++ # Export our shlibpath_var if we have one. ++ if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then ++ $ECHO "\ ++ # Add our own library path to $shlibpath_var ++ $shlibpath_var=\"$temp_rpath\$$shlibpath_var\" ++ ++ # Some systems cannot cope with colon-terminated $shlibpath_var ++ # The second colon is a workaround for a bug in BeOS R4 sed ++ $shlibpath_var=\`\$ECHO \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\` ++ ++ export $shlibpath_var ++" ++ fi ++ ++ # fixup the dll searchpath if we need to. ++ if test -n "$dllsearchpath"; then ++ $ECHO "\ ++ # Add the dll search path components to the executable PATH ++ PATH=$dllsearchpath:\$PATH ++" ++ fi ++ ++ $ECHO "\ ++ if test \"\$libtool_execute_magic\" != \"$magic\"; then ++ # Run the actual program with our arguments. ++" ++ case $host in ++ # Backslashes separate directories on plain windows ++ *-*-mingw | *-*-os2* | *-cegcc*) ++ $ECHO "\ ++ exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} ++" ++ ;; ++ ++ *) ++ $ECHO "\ ++ exec \"\$progdir/\$program\" \${1+\"\$@\"} ++" ++ ;; ++ esac ++ $ECHO "\ ++ \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2 ++ exit 1 ++ fi ++ else ++ # The program doesn't exist. ++ \$ECHO \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2 ++ \$ECHO \"This script is just a wrapper for \$program.\" 1>&2 ++ $ECHO \"See the $PACKAGE documentation for more information.\" 1>&2 ++ exit 1 ++ fi ++fi\ ++" ++} ++# end: func_emit_wrapper_part2 ++ ++ ++# func_emit_wrapper [arg=no] ++# ++# Emit a libtool wrapper script on stdout. ++# Don't directly open a file because we may want to ++# incorporate the script contents within a cygwin/mingw ++# wrapper executable. Must ONLY be called from within ++# func_mode_link because it depends on a number of variables ++# set therein. ++# ++# ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR ++# variable will take. If 'yes', then the emitted script ++# will assume that the directory in which it is stored is ++# the $objdir directory. This is a cygwin/mingw-specific ++# behavior. ++func_emit_wrapper () ++{ ++ func_emit_wrapper_arg1=no ++ if test -n "$1" ; then ++ func_emit_wrapper_arg1=$1 ++ fi ++ ++ # split this up so that func_emit_cwrapperexe_src ++ # can call each part independently. ++ func_emit_wrapper_part1 "${func_emit_wrapper_arg1}" ++ func_emit_wrapper_part2 "${func_emit_wrapper_arg1}" ++} ++ ++ ++# func_to_host_path arg ++# ++# Convert paths to host format when used with build tools. ++# Intended for use with "native" mingw (where libtool itself ++# is running under the msys shell), or in the following cross- ++# build environments: ++# $build $host ++# mingw (msys) mingw [e.g. native] ++# cygwin mingw ++# *nix + wine mingw ++# where wine is equipped with the `winepath' executable. ++# In the native mingw case, the (msys) shell automatically ++# converts paths for any non-msys applications it launches, ++# but that facility isn't available from inside the cwrapper. ++# Similar accommodations are necessary for $host mingw and ++# $build cygwin. Calling this function does no harm for other ++# $host/$build combinations not listed above. ++# ++# ARG is the path (on $build) that should be converted to ++# the proper representation for $host. The result is stored ++# in $func_to_host_path_result. ++func_to_host_path () ++{ ++ func_to_host_path_result="$1" ++ if test -n "$1" ; then ++ case $host in ++ *mingw* ) ++ lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' ++ case $build in ++ *mingw* ) # actually, msys ++ # awkward: cmd appends spaces to result ++ lt_sed_strip_trailing_spaces="s/[ ]*\$//" ++ func_to_host_path_tmp1=`( cmd //c echo "$1" |\ ++ $SED -e "$lt_sed_strip_trailing_spaces" ) 2>/dev/null || echo ""` ++ func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\ ++ $SED -e "$lt_sed_naive_backslashify"` ++ ;; ++ *cygwin* ) ++ func_to_host_path_tmp1=`cygpath -w "$1"` ++ func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\ ++ $SED -e "$lt_sed_naive_backslashify"` ++ ;; ++ * ) ++ # Unfortunately, winepath does not exit with a non-zero ++ # error code, so we are forced to check the contents of ++ # stdout. On the other hand, if the command is not ++ # found, the shell will set an exit code of 127 and print ++ # *an error message* to stdout. So we must check for both ++ # error code of zero AND non-empty stdout, which explains ++ # the odd construction: ++ func_to_host_path_tmp1=`winepath -w "$1" 2>/dev/null` ++ if test "$?" -eq 0 && test -n "${func_to_host_path_tmp1}"; then ++ func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\ ++ $SED -e "$lt_sed_naive_backslashify"` ++ else ++ # Allow warning below. ++ func_to_host_path_result="" ++ fi ++ ;; ++ esac ++ if test -z "$func_to_host_path_result" ; then ++ func_error "Could not determine host path corresponding to" ++ func_error " '$1'" ++ func_error "Continuing, but uninstalled executables may not work." ++ # Fallback: ++ func_to_host_path_result="$1" ++ fi ++ ;; ++ esac ++ fi ++} ++# end: func_to_host_path ++ ++# func_to_host_pathlist arg ++# ++# Convert pathlists to host format when used with build tools. ++# See func_to_host_path(), above. This function supports the ++# following $build/$host combinations (but does no harm for ++# combinations not listed here): ++# $build $host ++# mingw (msys) mingw [e.g. native] ++# cygwin mingw ++# *nix + wine mingw ++# ++# Path separators are also converted from $build format to ++# $host format. If ARG begins or ends with a path separator ++# character, it is preserved (but converted to $host format) ++# on output. ++# ++# ARG is a pathlist (on $build) that should be converted to ++# the proper representation on $host. The result is stored ++# in $func_to_host_pathlist_result. ++func_to_host_pathlist () ++{ ++ func_to_host_pathlist_result="$1" ++ if test -n "$1" ; then ++ case $host in ++ *mingw* ) ++ lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' ++ # Remove leading and trailing path separator characters from ++ # ARG. msys behavior is inconsistent here, cygpath turns them ++ # into '.;' and ';.', and winepath ignores them completely. ++ func_to_host_pathlist_tmp2="$1" ++ # Once set for this call, this variable should not be ++ # reassigned. It is used in tha fallback case. ++ func_to_host_pathlist_tmp1=`echo "$func_to_host_pathlist_tmp2" |\ ++ $SED -e 's|^:*||' -e 's|:*$||'` ++ case $build in ++ *mingw* ) # Actually, msys. ++ # Awkward: cmd appends spaces to result. ++ lt_sed_strip_trailing_spaces="s/[ ]*\$//" ++ func_to_host_pathlist_tmp2=`( cmd //c echo "$func_to_host_pathlist_tmp1" |\ ++ $SED -e "$lt_sed_strip_trailing_spaces" ) 2>/dev/null || echo ""` ++ func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp2" |\ ++ $SED -e "$lt_sed_naive_backslashify"` ++ ;; ++ *cygwin* ) ++ func_to_host_pathlist_tmp2=`cygpath -w -p "$func_to_host_pathlist_tmp1"` ++ func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp2" |\ ++ $SED -e "$lt_sed_naive_backslashify"` ++ ;; ++ * ) ++ # unfortunately, winepath doesn't convert pathlists ++ func_to_host_pathlist_result="" ++ func_to_host_pathlist_oldIFS=$IFS ++ IFS=: ++ for func_to_host_pathlist_f in $func_to_host_pathlist_tmp1 ; do ++ IFS=$func_to_host_pathlist_oldIFS ++ if test -n "$func_to_host_pathlist_f" ; then ++ func_to_host_path "$func_to_host_pathlist_f" ++ if test -n "$func_to_host_path_result" ; then ++ if test -z "$func_to_host_pathlist_result" ; then ++ func_to_host_pathlist_result="$func_to_host_path_result" ++ else ++ func_to_host_pathlist_result="$func_to_host_pathlist_result;$func_to_host_path_result" ++ fi ++ fi ++ fi ++ IFS=: ++ done ++ IFS=$func_to_host_pathlist_oldIFS ++ ;; ++ esac ++ if test -z "$func_to_host_pathlist_result" ; then ++ func_error "Could not determine the host path(s) corresponding to" ++ func_error " '$1'" ++ func_error "Continuing, but uninstalled executables may not work." ++ # Fallback. This may break if $1 contains DOS-style drive ++ # specifications. The fix is not to complicate the expression ++ # below, but for the user to provide a working wine installation ++ # with winepath so that path translation in the cross-to-mingw ++ # case works properly. ++ lt_replace_pathsep_nix_to_dos="s|:|;|g" ++ func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp1" |\ ++ $SED -e "$lt_replace_pathsep_nix_to_dos"` ++ fi ++ # Now, add the leading and trailing path separators back ++ case "$1" in ++ :* ) func_to_host_pathlist_result=";$func_to_host_pathlist_result" ++ ;; ++ esac ++ case "$1" in ++ *: ) func_to_host_pathlist_result="$func_to_host_pathlist_result;" ++ ;; ++ esac ++ ;; ++ esac ++ fi ++} ++# end: func_to_host_pathlist ++ ++# func_emit_cwrapperexe_src ++# emit the source code for a wrapper executable on stdout ++# Must ONLY be called from within func_mode_link because ++# it depends on a number of variable set therein. ++func_emit_cwrapperexe_src () ++{ ++ cat < ++#include ++#ifdef _MSC_VER ++# include ++# include ++# include ++# define setmode _setmode ++#else ++# include ++# include ++# ifdef __CYGWIN__ ++# include ++# define HAVE_SETENV ++# ifdef __STRICT_ANSI__ ++char *realpath (const char *, char *); ++int putenv (char *); ++int setenv (const char *, const char *, int); ++# endif ++# endif ++#endif ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#if defined(PATH_MAX) ++# define LT_PATHMAX PATH_MAX ++#elif defined(MAXPATHLEN) ++# define LT_PATHMAX MAXPATHLEN ++#else ++# define LT_PATHMAX 1024 ++#endif ++ ++#ifndef S_IXOTH ++# define S_IXOTH 0 ++#endif ++#ifndef S_IXGRP ++# define S_IXGRP 0 ++#endif ++ ++#ifdef _MSC_VER ++# define S_IXUSR _S_IEXEC ++# define stat _stat ++# ifndef _INTPTR_T_DEFINED ++# define intptr_t int ++# endif ++#endif ++ ++#ifndef DIR_SEPARATOR ++# define DIR_SEPARATOR '/' ++# define PATH_SEPARATOR ':' ++#endif ++ ++#if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \ ++ defined (__OS2__) ++# define HAVE_DOS_BASED_FILE_SYSTEM ++# define FOPEN_WB "wb" ++# ifndef DIR_SEPARATOR_2 ++# define DIR_SEPARATOR_2 '\\' ++# endif ++# ifndef PATH_SEPARATOR_2 ++# define PATH_SEPARATOR_2 ';' ++# endif ++#endif ++ ++#ifndef DIR_SEPARATOR_2 ++# define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR) ++#else /* DIR_SEPARATOR_2 */ ++# define IS_DIR_SEPARATOR(ch) \ ++ (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2)) ++#endif /* DIR_SEPARATOR_2 */ ++ ++#ifndef PATH_SEPARATOR_2 ++# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR) ++#else /* PATH_SEPARATOR_2 */ ++# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2) ++#endif /* PATH_SEPARATOR_2 */ ++ ++#ifdef __CYGWIN__ ++# define FOPEN_WB "wb" ++#endif ++ ++#ifndef FOPEN_WB ++# define FOPEN_WB "w" ++#endif ++#ifndef _O_BINARY ++# define _O_BINARY 0 ++#endif ++ ++#define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type))) ++#define XFREE(stale) do { \ ++ if (stale) { free ((void *) stale); stale = 0; } \ ++} while (0) ++ ++#undef LTWRAPPER_DEBUGPRINTF ++#if defined DEBUGWRAPPER ++# define LTWRAPPER_DEBUGPRINTF(args) ltwrapper_debugprintf args ++static void ++ltwrapper_debugprintf (const char *fmt, ...) ++{ ++ va_list args; ++ va_start (args, fmt); ++ (void) vfprintf (stderr, fmt, args); ++ va_end (args); ++} ++#else ++# define LTWRAPPER_DEBUGPRINTF(args) ++#endif ++ ++const char *program_name = NULL; ++ ++void *xmalloc (size_t num); ++char *xstrdup (const char *string); ++const char *base_name (const char *name); ++char *find_executable (const char *wrapper); ++char *chase_symlinks (const char *pathspec); ++int make_executable (const char *path); ++int check_executable (const char *path); ++char *strendzap (char *str, const char *pat); ++void lt_fatal (const char *message, ...); ++void lt_setenv (const char *name, const char *value); ++char *lt_extend_str (const char *orig_value, const char *add, int to_end); ++void lt_opt_process_env_set (const char *arg); ++void lt_opt_process_env_prepend (const char *arg); ++void lt_opt_process_env_append (const char *arg); ++int lt_split_name_value (const char *arg, char** name, char** value); ++void lt_update_exe_path (const char *name, const char *value); ++void lt_update_lib_path (const char *name, const char *value); ++ ++static const char *script_text_part1 = ++EOF ++ ++ func_emit_wrapper_part1 yes | ++ $SED -e 's/\([\\"]\)/\\\1/g' \ ++ -e 's/^/ "/' -e 's/$/\\n"/' ++ echo ";" ++ cat <"))); ++ for (i = 0; i < newargc; i++) ++ { ++ LTWRAPPER_DEBUGPRINTF (("(main) newargz[%d] : %s\n", i, (newargz[i] ? newargz[i] : ""))); ++ } ++ ++EOF ++ ++ case $host_os in ++ mingw*) ++ cat <<"EOF" ++ /* execv doesn't actually work on mingw as expected on unix */ ++ rval = _spawnv (_P_WAIT, lt_argv_zero, (const char * const *) newargz); ++ if (rval == -1) ++ { ++ /* failed to start process */ ++ LTWRAPPER_DEBUGPRINTF (("(main) failed to launch target \"%s\": errno = %d\n", lt_argv_zero, errno)); ++ return 127; ++ } ++ return rval; ++EOF ++ ;; ++ *) ++ cat <<"EOF" ++ execv (lt_argv_zero, newargz); ++ return rval; /* =127, but avoids unused variable warning */ ++EOF ++ ;; ++ esac ++ ++ cat <<"EOF" ++} ++ ++void * ++xmalloc (size_t num) ++{ ++ void *p = (void *) malloc (num); ++ if (!p) ++ lt_fatal ("Memory exhausted"); ++ ++ return p; ++} ++ ++char * ++xstrdup (const char *string) ++{ ++ return string ? strcpy ((char *) xmalloc (strlen (string) + 1), ++ string) : NULL; ++} ++ ++const char * ++base_name (const char *name) ++{ ++ const char *base; ++ ++#if defined (HAVE_DOS_BASED_FILE_SYSTEM) ++ /* Skip over the disk name in MSDOS pathnames. */ ++ if (isalpha ((unsigned char) name[0]) && name[1] == ':') ++ name += 2; ++#endif ++ ++ for (base = name; *name; name++) ++ if (IS_DIR_SEPARATOR (*name)) ++ base = name + 1; ++ return base; ++} ++ ++int ++check_executable (const char *path) ++{ ++ struct stat st; ++ ++ LTWRAPPER_DEBUGPRINTF (("(check_executable) : %s\n", ++ path ? (*path ? path : "EMPTY!") : "NULL!")); ++ if ((!path) || (!*path)) ++ return 0; ++ ++ if ((stat (path, &st) >= 0) ++ && (st.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH))) ++ return 1; ++ else ++ return 0; ++} ++ ++int ++make_executable (const char *path) ++{ ++ int rval = 0; ++ struct stat st; ++ ++ LTWRAPPER_DEBUGPRINTF (("(make_executable) : %s\n", ++ path ? (*path ? path : "EMPTY!") : "NULL!")); ++ if ((!path) || (!*path)) ++ return 0; ++ ++ if (stat (path, &st) >= 0) ++ { ++ rval = chmod (path, st.st_mode | S_IXOTH | S_IXGRP | S_IXUSR); ++ } ++ return rval; ++} ++ ++/* Searches for the full path of the wrapper. Returns ++ newly allocated full path name if found, NULL otherwise ++ Does not chase symlinks, even on platforms that support them. ++*/ ++char * ++find_executable (const char *wrapper) ++{ ++ int has_slash = 0; ++ const char *p; ++ const char *p_next; ++ /* static buffer for getcwd */ ++ char tmp[LT_PATHMAX + 1]; ++ int tmp_len; ++ char *concat_name; ++ ++ LTWRAPPER_DEBUGPRINTF (("(find_executable) : %s\n", ++ wrapper ? (*wrapper ? wrapper : "EMPTY!") : "NULL!")); ++ ++ if ((wrapper == NULL) || (*wrapper == '\0')) ++ return NULL; ++ ++ /* Absolute path? */ ++#if defined (HAVE_DOS_BASED_FILE_SYSTEM) ++ if (isalpha ((unsigned char) wrapper[0]) && wrapper[1] == ':') ++ { ++ concat_name = xstrdup (wrapper); ++ if (check_executable (concat_name)) ++ return concat_name; ++ XFREE (concat_name); ++ } ++ else ++ { ++#endif ++ if (IS_DIR_SEPARATOR (wrapper[0])) ++ { ++ concat_name = xstrdup (wrapper); ++ if (check_executable (concat_name)) ++ return concat_name; ++ XFREE (concat_name); ++ } ++#if defined (HAVE_DOS_BASED_FILE_SYSTEM) ++ } ++#endif ++ ++ for (p = wrapper; *p; p++) ++ if (*p == '/') ++ { ++ has_slash = 1; ++ break; ++ } ++ if (!has_slash) ++ { ++ /* no slashes; search PATH */ ++ const char *path = getenv ("PATH"); ++ if (path != NULL) ++ { ++ for (p = path; *p; p = p_next) ++ { ++ const char *q; ++ size_t p_len; ++ for (q = p; *q; q++) ++ if (IS_PATH_SEPARATOR (*q)) ++ break; ++ p_len = q - p; ++ p_next = (*q == '\0' ? q : q + 1); ++ if (p_len == 0) ++ { ++ /* empty path: current directory */ ++ if (getcwd (tmp, LT_PATHMAX) == NULL) ++ lt_fatal ("getcwd failed"); ++ tmp_len = strlen (tmp); ++ concat_name = ++ XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); ++ memcpy (concat_name, tmp, tmp_len); ++ concat_name[tmp_len] = '/'; ++ strcpy (concat_name + tmp_len + 1, wrapper); ++ } ++ else ++ { ++ concat_name = ++ XMALLOC (char, p_len + 1 + strlen (wrapper) + 1); ++ memcpy (concat_name, p, p_len); ++ concat_name[p_len] = '/'; ++ strcpy (concat_name + p_len + 1, wrapper); ++ } ++ if (check_executable (concat_name)) ++ return concat_name; ++ XFREE (concat_name); ++ } ++ } ++ /* not found in PATH; assume curdir */ ++ } ++ /* Relative path | not found in path: prepend cwd */ ++ if (getcwd (tmp, LT_PATHMAX) == NULL) ++ lt_fatal ("getcwd failed"); ++ tmp_len = strlen (tmp); ++ concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); ++ memcpy (concat_name, tmp, tmp_len); ++ concat_name[tmp_len] = '/'; ++ strcpy (concat_name + tmp_len + 1, wrapper); ++ ++ if (check_executable (concat_name)) ++ return concat_name; ++ XFREE (concat_name); ++ return NULL; ++} ++ ++char * ++chase_symlinks (const char *pathspec) ++{ ++#ifndef S_ISLNK ++ return xstrdup (pathspec); ++#else ++ char buf[LT_PATHMAX]; ++ struct stat s; ++ char *tmp_pathspec = xstrdup (pathspec); ++ char *p; ++ int has_symlinks = 0; ++ while (strlen (tmp_pathspec) && !has_symlinks) ++ { ++ LTWRAPPER_DEBUGPRINTF (("checking path component for symlinks: %s\n", ++ tmp_pathspec)); ++ if (lstat (tmp_pathspec, &s) == 0) ++ { ++ if (S_ISLNK (s.st_mode) != 0) ++ { ++ has_symlinks = 1; ++ break; ++ } ++ ++ /* search backwards for last DIR_SEPARATOR */ ++ p = tmp_pathspec + strlen (tmp_pathspec) - 1; ++ while ((p > tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) ++ p--; ++ if ((p == tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) ++ { ++ /* no more DIR_SEPARATORS left */ ++ break; ++ } ++ *p = '\0'; ++ } ++ else ++ { ++ char *errstr = strerror (errno); ++ lt_fatal ("Error accessing file %s (%s)", tmp_pathspec, errstr); ++ } ++ } ++ XFREE (tmp_pathspec); ++ ++ if (!has_symlinks) ++ { ++ return xstrdup (pathspec); ++ } ++ ++ tmp_pathspec = realpath (pathspec, buf); ++ if (tmp_pathspec == 0) ++ { ++ lt_fatal ("Could not follow symlinks for %s", pathspec); ++ } ++ return xstrdup (tmp_pathspec); ++#endif ++} ++ ++char * ++strendzap (char *str, const char *pat) ++{ ++ size_t len, patlen; ++ ++ assert (str != NULL); ++ assert (pat != NULL); ++ ++ len = strlen (str); ++ patlen = strlen (pat); ++ ++ if (patlen <= len) ++ { ++ str += len - patlen; ++ if (strcmp (str, pat) == 0) ++ *str = '\0'; ++ } ++ return str; ++} ++ ++static void ++lt_error_core (int exit_status, const char *mode, ++ const char *message, va_list ap) ++{ ++ fprintf (stderr, "%s: %s: ", program_name, mode); ++ vfprintf (stderr, message, ap); ++ fprintf (stderr, ".\n"); ++ ++ if (exit_status >= 0) ++ exit (exit_status); ++} ++ ++void ++lt_fatal (const char *message, ...) ++{ ++ va_list ap; ++ va_start (ap, message); ++ lt_error_core (EXIT_FAILURE, "FATAL", message, ap); ++ va_end (ap); ++} ++ ++void ++lt_setenv (const char *name, const char *value) ++{ ++ LTWRAPPER_DEBUGPRINTF (("(lt_setenv) setting '%s' to '%s'\n", ++ (name ? name : ""), ++ (value ? value : ""))); ++ { ++#ifdef HAVE_SETENV ++ /* always make a copy, for consistency with !HAVE_SETENV */ ++ char *str = xstrdup (value); ++ setenv (name, str, 1); ++#else ++ int len = strlen (name) + 1 + strlen (value) + 1; ++ char *str = XMALLOC (char, len); ++ sprintf (str, "%s=%s", name, value); ++ if (putenv (str) != EXIT_SUCCESS) ++ { ++ XFREE (str); ++ } ++#endif ++ } ++} ++ ++char * ++lt_extend_str (const char *orig_value, const char *add, int to_end) ++{ ++ char *new_value; ++ if (orig_value && *orig_value) ++ { ++ int orig_value_len = strlen (orig_value); ++ int add_len = strlen (add); ++ new_value = XMALLOC (char, add_len + orig_value_len + 1); ++ if (to_end) ++ { ++ strcpy (new_value, orig_value); ++ strcpy (new_value + orig_value_len, add); ++ } ++ else ++ { ++ strcpy (new_value, add); ++ strcpy (new_value + add_len, orig_value); ++ } ++ } ++ else ++ { ++ new_value = xstrdup (add); ++ } ++ return new_value; ++} ++ ++int ++lt_split_name_value (const char *arg, char** name, char** value) ++{ ++ const char *p; ++ int len; ++ if (!arg || !*arg) ++ return 1; ++ ++ p = strchr (arg, (int)'='); ++ ++ if (!p) ++ return 1; ++ ++ *value = xstrdup (++p); ++ ++ len = strlen (arg) - strlen (*value); ++ *name = XMALLOC (char, len); ++ strncpy (*name, arg, len-1); ++ (*name)[len - 1] = '\0'; ++ ++ return 0; ++} ++ ++void ++lt_opt_process_env_set (const char *arg) ++{ ++ char *name = NULL; ++ char *value = NULL; ++ ++ if (lt_split_name_value (arg, &name, &value) != 0) ++ { ++ XFREE (name); ++ XFREE (value); ++ lt_fatal ("bad argument for %s: '%s'", env_set_opt, arg); ++ } ++ ++ lt_setenv (name, value); ++ XFREE (name); ++ XFREE (value); ++} ++ ++void ++lt_opt_process_env_prepend (const char *arg) ++{ ++ char *name = NULL; ++ char *value = NULL; ++ char *new_value = NULL; ++ ++ if (lt_split_name_value (arg, &name, &value) != 0) ++ { ++ XFREE (name); ++ XFREE (value); ++ lt_fatal ("bad argument for %s: '%s'", env_prepend_opt, arg); ++ } ++ ++ new_value = lt_extend_str (getenv (name), value, 0); ++ lt_setenv (name, new_value); ++ XFREE (new_value); ++ XFREE (name); ++ XFREE (value); ++} ++ ++void ++lt_opt_process_env_append (const char *arg) ++{ ++ char *name = NULL; ++ char *value = NULL; ++ char *new_value = NULL; ++ ++ if (lt_split_name_value (arg, &name, &value) != 0) ++ { ++ XFREE (name); ++ XFREE (value); ++ lt_fatal ("bad argument for %s: '%s'", env_append_opt, arg); ++ } ++ ++ new_value = lt_extend_str (getenv (name), value, 1); ++ lt_setenv (name, new_value); ++ XFREE (new_value); ++ XFREE (name); ++ XFREE (value); ++} ++ ++void ++lt_update_exe_path (const char *name, const char *value) ++{ ++ LTWRAPPER_DEBUGPRINTF (("(lt_update_exe_path) modifying '%s' by prepending '%s'\n", ++ (name ? name : ""), ++ (value ? value : ""))); ++ ++ if (name && *name && value && *value) ++ { ++ char *new_value = lt_extend_str (getenv (name), value, 0); ++ /* some systems can't cope with a ':'-terminated path #' */ ++ int len = strlen (new_value); ++ while (((len = strlen (new_value)) > 0) && IS_PATH_SEPARATOR (new_value[len-1])) ++ { ++ new_value[len-1] = '\0'; ++ } ++ lt_setenv (name, new_value); ++ XFREE (new_value); ++ } ++} ++ ++void ++lt_update_lib_path (const char *name, const char *value) ++{ ++ LTWRAPPER_DEBUGPRINTF (("(lt_update_lib_path) modifying '%s' by prepending '%s'\n", ++ (name ? name : ""), ++ (value ? value : ""))); ++ ++ if (name && *name && value && *value) ++ { ++ char *new_value = lt_extend_str (getenv (name), value, 0); ++ lt_setenv (name, new_value); ++ XFREE (new_value); ++ } ++} ++ ++ ++EOF ++} ++# end: func_emit_cwrapperexe_src ++ ++# func_mode_link arg... ++func_mode_link () ++{ ++ $opt_debug ++ case $host in ++ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) ++ # It is impossible to link a dll without this setting, and ++ # we shouldn't force the makefile maintainer to figure out ++ # which system we are compiling for in order to pass an extra ++ # flag for every libtool invocation. ++ # allow_undefined=no ++ ++ # FIXME: Unfortunately, there are problems with the above when trying ++ # to make a dll which has undefined symbols, in which case not ++ # even a static library is built. For now, we need to specify ++ # -no-undefined on the libtool link line when we can be certain ++ # that all symbols are satisfied, otherwise we get a static library. ++ allow_undefined=yes ++ ;; ++ *) ++ allow_undefined=yes ++ ;; ++ esac ++ libtool_args=$nonopt ++ base_compile="$nonopt $@" ++ compile_command=$nonopt ++ finalize_command=$nonopt ++ ++ compile_rpath= ++ finalize_rpath= ++ compile_shlibpath= ++ finalize_shlibpath= ++ convenience= ++ old_convenience= ++ deplibs= ++ old_deplibs= ++ compiler_flags= ++ linker_flags= ++ dllsearchpath= ++ lib_search_path=`pwd` ++ inst_prefix_dir= ++ new_inherited_linker_flags= ++ ++ avoid_version=no ++ dlfiles= ++ dlprefiles= ++ dlself=no ++ export_dynamic=no ++ export_symbols= ++ export_symbols_regex= ++ generated= ++ libobjs= ++ ltlibs= ++ module=no ++ no_install=no ++ objs= ++ non_pic_objects= ++ precious_files_regex= ++ prefer_static_libs=no ++ preload=no ++ prev= ++ prevarg= ++ release= ++ rpath= ++ xrpath= ++ perm_rpath= ++ temp_rpath= ++ thread_safe=no ++ vinfo= ++ vinfo_number=no ++ weak_libs= ++ single_module="${wl}-single_module" ++ func_infer_tag $base_compile ++ ++ # We need to know -static, to get the right output filenames. ++ for arg ++ do ++ case $arg in ++ -shared) ++ test "$build_libtool_libs" != yes && \ ++ func_fatal_configuration "can not build a shared library" ++ build_old_libs=no ++ break ++ ;; ++ -all-static | -static | -static-libtool-libs) ++ case $arg in ++ -all-static) ++ if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then ++ func_warning "complete static linking is impossible in this configuration" ++ fi ++ if test -n "$link_static_flag"; then ++ dlopen_self=$dlopen_self_static ++ fi ++ prefer_static_libs=yes ++ ;; ++ -static) ++ if test -z "$pic_flag" && test -n "$link_static_flag"; then ++ dlopen_self=$dlopen_self_static ++ fi ++ prefer_static_libs=built ++ ;; ++ -static-libtool-libs) ++ if test -z "$pic_flag" && test -n "$link_static_flag"; then ++ dlopen_self=$dlopen_self_static ++ fi ++ prefer_static_libs=yes ++ ;; ++ esac ++ build_libtool_libs=no ++ build_old_libs=yes ++ break ++ ;; ++ esac ++ done ++ ++ # See if our shared archives depend on static archives. ++ test -n "$old_archive_from_new_cmds" && build_old_libs=yes ++ ++ # Go through the arguments, transforming them on the way. ++ while test "$#" -gt 0; do ++ arg="$1" ++ shift ++ func_quote_for_eval "$arg" ++ qarg=$func_quote_for_eval_unquoted_result ++ func_append libtool_args " $func_quote_for_eval_result" ++ ++ # If the previous option needs an argument, assign it. ++ if test -n "$prev"; then ++ case $prev in ++ output) ++ func_append compile_command " @OUTPUT@" ++ func_append finalize_command " @OUTPUT@" ++ ;; ++ esac ++ ++ case $prev in ++ dlfiles|dlprefiles) ++ if test "$preload" = no; then ++ # Add the symbol object into the linking commands. ++ func_append compile_command " @SYMFILE@" ++ func_append finalize_command " @SYMFILE@" ++ preload=yes ++ fi ++ case $arg in ++ *.la | *.lo) ;; # We handle these cases below. ++ force) ++ if test "$dlself" = no; then ++ dlself=needless ++ export_dynamic=yes ++ fi ++ prev= ++ continue ++ ;; ++ self) ++ if test "$prev" = dlprefiles; then ++ dlself=yes ++ elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then ++ dlself=yes ++ else ++ dlself=needless ++ export_dynamic=yes ++ fi ++ prev= ++ continue ++ ;; ++ *) ++ if test "$prev" = dlfiles; then ++ dlfiles="$dlfiles $arg" ++ else ++ dlprefiles="$dlprefiles $arg" ++ fi ++ prev= ++ continue ++ ;; ++ esac ++ ;; ++ expsyms) ++ export_symbols="$arg" ++ test -f "$arg" \ ++ || func_fatal_error "symbol file \`$arg' does not exist" ++ prev= ++ continue ++ ;; ++ expsyms_regex) ++ export_symbols_regex="$arg" ++ prev= ++ continue ++ ;; ++ framework) ++ case $host in ++ *-*-darwin*) ++ case "$deplibs " in ++ *" $qarg.ltframework "*) ;; ++ *) deplibs="$deplibs $qarg.ltframework" # this is fixed later ++ ;; ++ esac ++ ;; ++ esac ++ prev= ++ continue ++ ;; ++ inst_prefix) ++ inst_prefix_dir="$arg" ++ prev= ++ continue ++ ;; ++ objectlist) ++ if test -f "$arg"; then ++ save_arg=$arg ++ moreargs= ++ for fil in `cat "$save_arg"` ++ do ++# moreargs="$moreargs $fil" ++ arg=$fil ++ # A libtool-controlled object. ++ ++ # Check to see that this really is a libtool object. ++ if func_lalib_unsafe_p "$arg"; then ++ pic_object= ++ non_pic_object= ++ ++ # Read the .lo file ++ func_source "$arg" ++ ++ if test -z "$pic_object" || ++ test -z "$non_pic_object" || ++ test "$pic_object" = none && ++ test "$non_pic_object" = none; then ++ func_fatal_error "cannot find name of object for \`$arg'" ++ fi ++ ++ # Extract subdirectory from the argument. ++ func_dirname "$arg" "/" "" ++ xdir="$func_dirname_result" ++ ++ if test "$pic_object" != none; then ++ # Prepend the subdirectory the object is found in. ++ pic_object="$xdir$pic_object" ++ ++ if test "$prev" = dlfiles; then ++ if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then ++ dlfiles="$dlfiles $pic_object" ++ prev= ++ continue ++ else ++ # If libtool objects are unsupported, then we need to preload. ++ prev=dlprefiles ++ fi ++ fi ++ ++ # CHECK ME: I think I busted this. -Ossama ++ if test "$prev" = dlprefiles; then ++ # Preload the old-style object. ++ dlprefiles="$dlprefiles $pic_object" ++ prev= ++ fi ++ ++ # A PIC object. ++ func_append libobjs " $pic_object" ++ arg="$pic_object" ++ fi ++ ++ # Non-PIC object. ++ if test "$non_pic_object" != none; then ++ # Prepend the subdirectory the object is found in. ++ non_pic_object="$xdir$non_pic_object" ++ ++ # A standard non-PIC object ++ func_append non_pic_objects " $non_pic_object" ++ if test -z "$pic_object" || test "$pic_object" = none ; then ++ arg="$non_pic_object" ++ fi ++ else ++ # If the PIC object exists, use it instead. ++ # $xdir was prepended to $pic_object above. ++ non_pic_object="$pic_object" ++ func_append non_pic_objects " $non_pic_object" ++ fi ++ else ++ # Only an error if not doing a dry-run. ++ if $opt_dry_run; then ++ # Extract subdirectory from the argument. ++ func_dirname "$arg" "/" "" ++ xdir="$func_dirname_result" ++ ++ func_lo2o "$arg" ++ pic_object=$xdir$objdir/$func_lo2o_result ++ non_pic_object=$xdir$func_lo2o_result ++ func_append libobjs " $pic_object" ++ func_append non_pic_objects " $non_pic_object" ++ else ++ func_fatal_error "\`$arg' is not a valid libtool object" ++ fi ++ fi ++ done ++ else ++ func_fatal_error "link input file \`$arg' does not exist" ++ fi ++ arg=$save_arg ++ prev= ++ continue ++ ;; ++ precious_regex) ++ precious_files_regex="$arg" ++ prev= ++ continue ++ ;; ++ release) ++ release="-$arg" ++ prev= ++ continue ++ ;; ++ rpath | xrpath) ++ # We need an absolute path. ++ case $arg in ++ [\\/]* | [A-Za-z]:[\\/]*) ;; ++ *) ++ func_fatal_error "only absolute run-paths are allowed" ++ ;; ++ esac ++ if test "$prev" = rpath; then ++ case "$rpath " in ++ *" $arg "*) ;; ++ *) rpath="$rpath $arg" ;; ++ esac ++ else ++ case "$xrpath " in ++ *" $arg "*) ;; ++ *) xrpath="$xrpath $arg" ;; ++ esac ++ fi ++ prev= ++ continue ++ ;; ++ shrext) ++ shrext_cmds="$arg" ++ prev= ++ continue ++ ;; ++ weak) ++ weak_libs="$weak_libs $arg" ++ prev= ++ continue ++ ;; ++ xcclinker) ++ linker_flags="$linker_flags $qarg" ++ compiler_flags="$compiler_flags $qarg" ++ prev= ++ func_append compile_command " $qarg" ++ func_append finalize_command " $qarg" ++ continue ++ ;; ++ xcompiler) ++ compiler_flags="$compiler_flags $qarg" ++ prev= ++ func_append compile_command " $qarg" ++ func_append finalize_command " $qarg" ++ continue ++ ;; ++ xlinker) ++ linker_flags="$linker_flags $qarg" ++ compiler_flags="$compiler_flags $wl$qarg" ++ prev= ++ func_append compile_command " $wl$qarg" ++ func_append finalize_command " $wl$qarg" ++ continue ++ ;; ++ *) ++ eval "$prev=\"\$arg\"" ++ prev= ++ continue ++ ;; ++ esac ++ fi # test -n "$prev" ++ ++ prevarg="$arg" ++ ++ case $arg in ++ -all-static) ++ if test -n "$link_static_flag"; then ++ # See comment for -static flag below, for more details. ++ func_append compile_command " $link_static_flag" ++ func_append finalize_command " $link_static_flag" ++ fi ++ continue ++ ;; ++ ++ -allow-undefined) ++ # FIXME: remove this flag sometime in the future. ++ func_fatal_error "\`-allow-undefined' must not be used because it is the default" ++ ;; ++ ++ -avoid-version) ++ avoid_version=yes ++ continue ++ ;; ++ ++ -dlopen) ++ prev=dlfiles ++ continue ++ ;; ++ ++ -dlpreopen) ++ prev=dlprefiles ++ continue ++ ;; ++ ++ -export-dynamic) ++ export_dynamic=yes ++ continue ++ ;; ++ ++ -export-symbols | -export-symbols-regex) ++ if test -n "$export_symbols" || test -n "$export_symbols_regex"; then ++ func_fatal_error "more than one -exported-symbols argument is not allowed" ++ fi ++ if test "X$arg" = "X-export-symbols"; then ++ prev=expsyms ++ else ++ prev=expsyms_regex ++ fi ++ continue ++ ;; ++ ++ -framework) ++ prev=framework ++ continue ++ ;; ++ ++ -inst-prefix-dir) ++ prev=inst_prefix ++ continue ++ ;; ++ ++ # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:* ++ # so, if we see these flags be careful not to treat them like -L ++ -L[A-Z][A-Z]*:*) ++ case $with_gcc/$host in ++ no/*-*-irix* | /*-*-irix*) ++ func_append compile_command " $arg" ++ func_append finalize_command " $arg" ++ ;; ++ esac ++ continue ++ ;; ++ ++ -L*) ++ func_stripname '-L' '' "$arg" ++ dir=$func_stripname_result ++ if test -z "$dir"; then ++ if test "$#" -gt 0; then ++ func_fatal_error "require no space between \`-L' and \`$1'" ++ else ++ func_fatal_error "need path for \`-L' option" ++ fi ++ fi ++ # We need an absolute path. ++ case $dir in ++ [\\/]* | [A-Za-z]:[\\/]*) ;; ++ *) ++ absdir=`cd "$dir" && pwd` ++ test -z "$absdir" && \ ++ func_fatal_error "cannot determine absolute directory name of \`$dir'" ++ dir="$absdir" ++ ;; ++ esac ++ case "$deplibs " in ++ *" -L$dir "*) ;; ++ *) ++ deplibs="$deplibs -L$dir" ++ lib_search_path="$lib_search_path $dir" ++ ;; ++ esac ++ case $host in ++ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) ++ testbindir=`$ECHO "X$dir" | $Xsed -e 's*/lib$*/bin*'` ++ case :$dllsearchpath: in ++ *":$dir:"*) ;; ++ ::) dllsearchpath=$dir;; ++ *) dllsearchpath="$dllsearchpath:$dir";; ++ esac ++ case :$dllsearchpath: in ++ *":$testbindir:"*) ;; ++ ::) dllsearchpath=$testbindir;; ++ *) dllsearchpath="$dllsearchpath:$testbindir";; ++ esac ++ ;; ++ esac ++ continue ++ ;; ++ ++ -l*) ++ if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then ++ case $host in ++ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc*) ++ # These systems don't actually have a C or math library (as such) ++ continue ++ ;; ++ *-*-os2*) ++ # These systems don't actually have a C library (as such) ++ test "X$arg" = "X-lc" && continue ++ ;; ++ *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) ++ # Do not include libc due to us having libc/libc_r. ++ test "X$arg" = "X-lc" && continue ++ ;; ++ *-*-rhapsody* | *-*-darwin1.[012]) ++ # Rhapsody C and math libraries are in the System framework ++ deplibs="$deplibs System.ltframework" ++ continue ++ ;; ++ *-*-sco3.2v5* | *-*-sco5v6*) ++ # Causes problems with __ctype ++ test "X$arg" = "X-lc" && continue ++ ;; ++ *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) ++ # Compiler inserts libc in the correct place for threads to work ++ test "X$arg" = "X-lc" && continue ++ ;; ++ esac ++ elif test "X$arg" = "X-lc_r"; then ++ case $host in ++ *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) ++ # Do not include libc_r directly, use -pthread flag. ++ continue ++ ;; ++ esac ++ fi ++ deplibs="$deplibs $arg" ++ continue ++ ;; ++ ++ -module) ++ module=yes ++ continue ++ ;; ++ ++ # Tru64 UNIX uses -model [arg] to determine the layout of C++ ++ # classes, name mangling, and exception handling. ++ # Darwin uses the -arch flag to determine output architecture. ++ -model|-arch|-isysroot) ++ compiler_flags="$compiler_flags $arg" ++ func_append compile_command " $arg" ++ func_append finalize_command " $arg" ++ prev=xcompiler ++ continue ++ ;; ++ ++ -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads) ++ compiler_flags="$compiler_flags $arg" ++ func_append compile_command " $arg" ++ func_append finalize_command " $arg" ++ case "$new_inherited_linker_flags " in ++ *" $arg "*) ;; ++ * ) new_inherited_linker_flags="$new_inherited_linker_flags $arg" ;; ++ esac ++ continue ++ ;; ++ ++ -multi_module) ++ single_module="${wl}-multi_module" ++ continue ++ ;; ++ ++ -no-fast-install) ++ fast_install=no ++ continue ++ ;; ++ ++ -no-install) ++ case $host in ++ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin* | *-cegcc*) ++ # The PATH hackery in wrapper scripts is required on Windows ++ # and Darwin in order for the loader to find any dlls it needs. ++ func_warning "\`-no-install' is ignored for $host" ++ func_warning "assuming \`-no-fast-install' instead" ++ fast_install=no ++ ;; ++ *) no_install=yes ;; ++ esac ++ continue ++ ;; ++ ++ -no-undefined) ++ allow_undefined=no ++ continue ++ ;; ++ ++ -objectlist) ++ prev=objectlist ++ continue ++ ;; ++ ++ -o) prev=output ;; ++ ++ -precious-files-regex) ++ prev=precious_regex ++ continue ++ ;; ++ ++ -release) ++ prev=release ++ continue ++ ;; ++ ++ -rpath) ++ prev=rpath ++ continue ++ ;; ++ ++ -R) ++ prev=xrpath ++ continue ++ ;; ++ ++ -R*) ++ func_stripname '-R' '' "$arg" ++ dir=$func_stripname_result ++ # We need an absolute path. ++ case $dir in ++ [\\/]* | [A-Za-z]:[\\/]*) ;; ++ *) ++ func_fatal_error "only absolute run-paths are allowed" ++ ;; ++ esac ++ case "$xrpath " in ++ *" $dir "*) ;; ++ *) xrpath="$xrpath $dir" ;; ++ esac ++ continue ++ ;; ++ ++ -shared) ++ # The effects of -shared are defined in a previous loop. ++ continue ++ ;; ++ ++ -shrext) ++ prev=shrext ++ continue ++ ;; ++ ++ -static | -static-libtool-libs) ++ # The effects of -static are defined in a previous loop. ++ # We used to do the same as -all-static on platforms that ++ # didn't have a PIC flag, but the assumption that the effects ++ # would be equivalent was wrong. It would break on at least ++ # Digital Unix and AIX. ++ continue ++ ;; ++ ++ -thread-safe) ++ thread_safe=yes ++ continue ++ ;; ++ ++ -version-info) ++ prev=vinfo ++ continue ++ ;; ++ ++ -version-number) ++ prev=vinfo ++ vinfo_number=yes ++ continue ++ ;; ++ ++ -weak) ++ prev=weak ++ continue ++ ;; ++ ++ -Wc,*) ++ func_stripname '-Wc,' '' "$arg" ++ args=$func_stripname_result ++ arg= ++ save_ifs="$IFS"; IFS=',' ++ for flag in $args; do ++ IFS="$save_ifs" ++ func_quote_for_eval "$flag" ++ arg="$arg $wl$func_quote_for_eval_result" ++ compiler_flags="$compiler_flags $func_quote_for_eval_result" ++ done ++ IFS="$save_ifs" ++ func_stripname ' ' '' "$arg" ++ arg=$func_stripname_result ++ ;; ++ ++ -Wl,*) ++ func_stripname '-Wl,' '' "$arg" ++ args=$func_stripname_result ++ arg= ++ save_ifs="$IFS"; IFS=',' ++ for flag in $args; do ++ IFS="$save_ifs" ++ func_quote_for_eval "$flag" ++ arg="$arg $wl$func_quote_for_eval_result" ++ compiler_flags="$compiler_flags $wl$func_quote_for_eval_result" ++ linker_flags="$linker_flags $func_quote_for_eval_result" ++ done ++ IFS="$save_ifs" ++ func_stripname ' ' '' "$arg" ++ arg=$func_stripname_result ++ ;; ++ ++ -Xcompiler) ++ prev=xcompiler ++ continue ++ ;; ++ ++ -Xlinker) ++ prev=xlinker ++ continue ++ ;; ++ ++ -XCClinker) ++ prev=xcclinker ++ continue ++ ;; ++ ++ # -msg_* for osf cc ++ -msg_*) ++ func_quote_for_eval "$arg" ++ arg="$func_quote_for_eval_result" ++ ;; ++ ++ # -64, -mips[0-9] enable 64-bit mode on the SGI compiler ++ # -r[0-9][0-9]* specifies the processor on the SGI compiler ++ # -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler ++ # +DA*, +DD* enable 64-bit mode on the HP compiler ++ # -q* pass through compiler args for the IBM compiler ++ # -m*, -t[45]*, -txscale* pass through architecture-specific ++ # compiler args for GCC ++ # -F/path gives path to uninstalled frameworks, gcc on darwin ++ # -p, -pg, --coverage, -fprofile-* pass through profiling flag for GCC ++ # @file GCC response files ++ -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \ ++ -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*) ++ func_quote_for_eval "$arg" ++ arg="$func_quote_for_eval_result" ++ func_append compile_command " $arg" ++ func_append finalize_command " $arg" ++ compiler_flags="$compiler_flags $arg" ++ continue ++ ;; ++ ++ # Some other compiler flag. ++ -* | +*) ++ func_quote_for_eval "$arg" ++ arg="$func_quote_for_eval_result" ++ ;; ++ ++ *.$objext) ++ # A standard object. ++ objs="$objs $arg" ++ ;; ++ ++ *.lo) ++ # A libtool-controlled object. ++ ++ # Check to see that this really is a libtool object. ++ if func_lalib_unsafe_p "$arg"; then ++ pic_object= ++ non_pic_object= ++ ++ # Read the .lo file ++ func_source "$arg" ++ ++ if test -z "$pic_object" || ++ test -z "$non_pic_object" || ++ test "$pic_object" = none && ++ test "$non_pic_object" = none; then ++ func_fatal_error "cannot find name of object for \`$arg'" ++ fi ++ ++ # Extract subdirectory from the argument. ++ func_dirname "$arg" "/" "" ++ xdir="$func_dirname_result" ++ ++ if test "$pic_object" != none; then ++ # Prepend the subdirectory the object is found in. ++ pic_object="$xdir$pic_object" ++ ++ if test "$prev" = dlfiles; then ++ if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then ++ dlfiles="$dlfiles $pic_object" ++ prev= ++ continue ++ else ++ # If libtool objects are unsupported, then we need to preload. ++ prev=dlprefiles ++ fi ++ fi ++ ++ # CHECK ME: I think I busted this. -Ossama ++ if test "$prev" = dlprefiles; then ++ # Preload the old-style object. ++ dlprefiles="$dlprefiles $pic_object" ++ prev= ++ fi ++ ++ # A PIC object. ++ func_append libobjs " $pic_object" ++ arg="$pic_object" ++ fi ++ ++ # Non-PIC object. ++ if test "$non_pic_object" != none; then ++ # Prepend the subdirectory the object is found in. ++ non_pic_object="$xdir$non_pic_object" ++ ++ # A standard non-PIC object ++ func_append non_pic_objects " $non_pic_object" ++ if test -z "$pic_object" || test "$pic_object" = none ; then ++ arg="$non_pic_object" ++ fi ++ else ++ # If the PIC object exists, use it instead. ++ # $xdir was prepended to $pic_object above. ++ non_pic_object="$pic_object" ++ func_append non_pic_objects " $non_pic_object" ++ fi ++ else ++ # Only an error if not doing a dry-run. ++ if $opt_dry_run; then ++ # Extract subdirectory from the argument. ++ func_dirname "$arg" "/" "" ++ xdir="$func_dirname_result" ++ ++ func_lo2o "$arg" ++ pic_object=$xdir$objdir/$func_lo2o_result ++ non_pic_object=$xdir$func_lo2o_result ++ func_append libobjs " $pic_object" ++ func_append non_pic_objects " $non_pic_object" ++ else ++ func_fatal_error "\`$arg' is not a valid libtool object" ++ fi ++ fi ++ ;; ++ ++ *.$libext) ++ # An archive. ++ deplibs="$deplibs $arg" ++ old_deplibs="$old_deplibs $arg" ++ continue ++ ;; ++ ++ *.la) ++ # A libtool-controlled library. ++ ++ if test "$prev" = dlfiles; then ++ # This library was specified with -dlopen. ++ dlfiles="$dlfiles $arg" ++ prev= ++ elif test "$prev" = dlprefiles; then ++ # The library was specified with -dlpreopen. ++ dlprefiles="$dlprefiles $arg" ++ prev= ++ else ++ deplibs="$deplibs $arg" ++ fi ++ continue ++ ;; ++ ++ # Some other compiler argument. ++ *) ++ # Unknown arguments in both finalize_command and compile_command need ++ # to be aesthetically quoted because they are evaled later. ++ func_quote_for_eval "$arg" ++ arg="$func_quote_for_eval_result" ++ ;; ++ esac # arg ++ ++ # Now actually substitute the argument into the commands. ++ if test -n "$arg"; then ++ func_append compile_command " $arg" ++ func_append finalize_command " $arg" ++ fi ++ done # argument parsing loop ++ ++ test -n "$prev" && \ ++ func_fatal_help "the \`$prevarg' option requires an argument" ++ ++ if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then ++ eval arg=\"$export_dynamic_flag_spec\" ++ func_append compile_command " $arg" ++ func_append finalize_command " $arg" ++ fi ++ ++ oldlibs= ++ # calculate the name of the file, without its directory ++ func_basename "$output" ++ outputname="$func_basename_result" ++ libobjs_save="$libobjs" ++ ++ if test -n "$shlibpath_var"; then ++ # get the directories listed in $shlibpath_var ++ eval shlib_search_path=\`\$ECHO \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\` ++ else ++ shlib_search_path= ++ fi ++ eval sys_lib_search_path=\"$sys_lib_search_path_spec\" ++ eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\" ++ ++ func_dirname "$output" "/" "" ++ output_objdir="$func_dirname_result$objdir" ++ # Create the object directory. ++ func_mkdir_p "$output_objdir" ++ ++ # Determine the type of output ++ case $output in ++ "") ++ func_fatal_help "you must specify an output file" ++ ;; ++ *.$libext) linkmode=oldlib ;; ++ *.lo | *.$objext) linkmode=obj ;; ++ *.la) linkmode=lib ;; ++ *) linkmode=prog ;; # Anything else should be a program. ++ esac ++ ++ specialdeplibs= ++ ++ libs= ++ # Find all interdependent deplibs by searching for libraries ++ # that are linked more than once (e.g. -la -lb -la) ++ for deplib in $deplibs; do ++ if $opt_duplicate_deps ; then ++ case "$libs " in ++ *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; ++ esac ++ fi ++ libs="$libs $deplib" ++ done ++ ++ if test "$linkmode" = lib; then ++ libs="$predeps $libs $compiler_lib_search_path $postdeps" ++ ++ # Compute libraries that are listed more than once in $predeps ++ # $postdeps and mark them as special (i.e., whose duplicates are ++ # not to be eliminated). ++ pre_post_deps= ++ if $opt_duplicate_compiler_generated_deps; then ++ for pre_post_dep in $predeps $postdeps; do ++ case "$pre_post_deps " in ++ *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;; ++ esac ++ pre_post_deps="$pre_post_deps $pre_post_dep" ++ done ++ fi ++ pre_post_deps= ++ fi ++ ++ deplibs= ++ newdependency_libs= ++ newlib_search_path= ++ need_relink=no # whether we're linking any uninstalled libtool libraries ++ notinst_deplibs= # not-installed libtool libraries ++ notinst_path= # paths that contain not-installed libtool libraries ++ ++ case $linkmode in ++ lib) ++ passes="conv dlpreopen link" ++ for file in $dlfiles $dlprefiles; do ++ case $file in ++ *.la) ;; ++ *) ++ func_fatal_help "libraries can \`-dlopen' only libtool libraries: $file" ++ ;; ++ esac ++ done ++ ;; ++ prog) ++ compile_deplibs= ++ finalize_deplibs= ++ alldeplibs=no ++ newdlfiles= ++ newdlprefiles= ++ passes="conv scan dlopen dlpreopen link" ++ ;; ++ *) passes="conv" ++ ;; ++ esac ++ ++ for pass in $passes; do ++ # The preopen pass in lib mode reverses $deplibs; put it back here ++ # so that -L comes before libs that need it for instance... ++ if test "$linkmode,$pass" = "lib,link"; then ++ ## FIXME: Find the place where the list is rebuilt in the wrong ++ ## order, and fix it there properly ++ tmp_deplibs= ++ for deplib in $deplibs; do ++ tmp_deplibs="$deplib $tmp_deplibs" ++ done ++ deplibs="$tmp_deplibs" ++ fi ++ ++ if test "$linkmode,$pass" = "lib,link" || ++ test "$linkmode,$pass" = "prog,scan"; then ++ libs="$deplibs" ++ deplibs= ++ fi ++ if test "$linkmode" = prog; then ++ case $pass in ++ dlopen) libs="$dlfiles" ;; ++ dlpreopen) libs="$dlprefiles" ;; ++ link) libs="$deplibs %DEPLIBS% $dependency_libs" ;; ++ esac ++ fi ++ if test "$linkmode,$pass" = "lib,dlpreopen"; then ++ # Collect and forward deplibs of preopened libtool libs ++ for lib in $dlprefiles; do ++ # Ignore non-libtool-libs ++ dependency_libs= ++ case $lib in ++ *.la) func_source "$lib" ;; ++ esac ++ ++ # Collect preopened libtool deplibs, except any this library ++ # has declared as weak libs ++ for deplib in $dependency_libs; do ++ deplib_base=`$ECHO "X$deplib" | $Xsed -e "$basename"` ++ case " $weak_libs " in ++ *" $deplib_base "*) ;; ++ *) deplibs="$deplibs $deplib" ;; ++ esac ++ done ++ done ++ libs="$dlprefiles" ++ fi ++ if test "$pass" = dlopen; then ++ # Collect dlpreopened libraries ++ save_deplibs="$deplibs" ++ deplibs= ++ fi ++ ++ for deplib in $libs; do ++ lib= ++ found=no ++ case $deplib in ++ -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads) ++ if test "$linkmode,$pass" = "prog,link"; then ++ compile_deplibs="$deplib $compile_deplibs" ++ finalize_deplibs="$deplib $finalize_deplibs" ++ else ++ compiler_flags="$compiler_flags $deplib" ++ if test "$linkmode" = lib ; then ++ case "$new_inherited_linker_flags " in ++ *" $deplib "*) ;; ++ * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;; ++ esac ++ fi ++ fi ++ continue ++ ;; ++ -l*) ++ if test "$linkmode" != lib && test "$linkmode" != prog; then ++ func_warning "\`-l' is ignored for archives/objects" ++ continue ++ fi ++ func_stripname '-l' '' "$deplib" ++ name=$func_stripname_result ++ if test "$linkmode" = lib; then ++ searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path" ++ else ++ searchdirs="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path" ++ fi ++ for searchdir in $searchdirs; do ++ for search_ext in .la $std_shrext .so .a; do ++ # Search the libtool library ++ lib="$searchdir/lib${name}${search_ext}" ++ if test -f "$lib"; then ++ if test "$search_ext" = ".la"; then ++ found=yes ++ else ++ found=no ++ fi ++ break 2 ++ fi ++ done ++ done ++ if test "$found" != yes; then ++ # deplib doesn't seem to be a libtool library ++ if test "$linkmode,$pass" = "prog,link"; then ++ compile_deplibs="$deplib $compile_deplibs" ++ finalize_deplibs="$deplib $finalize_deplibs" ++ else ++ deplibs="$deplib $deplibs" ++ test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" ++ fi ++ continue ++ else # deplib is a libtool library ++ # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib, ++ # We need to do some special things here, and not later. ++ if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then ++ case " $predeps $postdeps " in ++ *" $deplib "*) ++ if func_lalib_p "$lib"; then ++ library_names= ++ old_library= ++ func_source "$lib" ++ for l in $old_library $library_names; do ++ ll="$l" ++ done ++ if test "X$ll" = "X$old_library" ; then # only static version available ++ found=no ++ func_dirname "$lib" "" "." ++ ladir="$func_dirname_result" ++ lib=$ladir/$old_library ++ if test "$linkmode,$pass" = "prog,link"; then ++ compile_deplibs="$deplib $compile_deplibs" ++ finalize_deplibs="$deplib $finalize_deplibs" ++ else ++ deplibs="$deplib $deplibs" ++ test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" ++ fi ++ continue ++ fi ++ fi ++ ;; ++ *) ;; ++ esac ++ fi ++ fi ++ ;; # -l ++ *.ltframework) ++ if test "$linkmode,$pass" = "prog,link"; then ++ compile_deplibs="$deplib $compile_deplibs" ++ finalize_deplibs="$deplib $finalize_deplibs" ++ else ++ deplibs="$deplib $deplibs" ++ if test "$linkmode" = lib ; then ++ case "$new_inherited_linker_flags " in ++ *" $deplib "*) ;; ++ * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;; ++ esac ++ fi ++ fi ++ continue ++ ;; ++ -L*) ++ case $linkmode in ++ lib) ++ deplibs="$deplib $deplibs" ++ test "$pass" = conv && continue ++ newdependency_libs="$deplib $newdependency_libs" ++ func_stripname '-L' '' "$deplib" ++ newlib_search_path="$newlib_search_path $func_stripname_result" ++ ;; ++ prog) ++ if test "$pass" = conv; then ++ deplibs="$deplib $deplibs" ++ continue ++ fi ++ if test "$pass" = scan; then ++ deplibs="$deplib $deplibs" ++ else ++ compile_deplibs="$deplib $compile_deplibs" ++ finalize_deplibs="$deplib $finalize_deplibs" ++ fi ++ func_stripname '-L' '' "$deplib" ++ newlib_search_path="$newlib_search_path $func_stripname_result" ++ ;; ++ *) ++ func_warning "\`-L' is ignored for archives/objects" ++ ;; ++ esac # linkmode ++ continue ++ ;; # -L ++ -R*) ++ if test "$pass" = link; then ++ func_stripname '-R' '' "$deplib" ++ dir=$func_stripname_result ++ # Make sure the xrpath contains only unique directories. ++ case "$xrpath " in ++ *" $dir "*) ;; ++ *) xrpath="$xrpath $dir" ;; ++ esac ++ fi ++ deplibs="$deplib $deplibs" ++ continue ++ ;; ++ *.la) lib="$deplib" ;; ++ *.$libext) ++ if test "$pass" = conv; then ++ deplibs="$deplib $deplibs" ++ continue ++ fi ++ case $linkmode in ++ lib) ++ # Linking convenience modules into shared libraries is allowed, ++ # but linking other static libraries is non-portable. ++ case " $dlpreconveniencelibs " in ++ *" $deplib "*) ;; ++ *) ++ valid_a_lib=no ++ case $deplibs_check_method in ++ match_pattern*) ++ set dummy $deplibs_check_method; shift ++ match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` ++ if eval "\$ECHO \"X$deplib\"" 2>/dev/null | $Xsed -e 10q \ ++ | $EGREP "$match_pattern_regex" > /dev/null; then ++ valid_a_lib=yes ++ fi ++ ;; ++ pass_all) ++ valid_a_lib=yes ++ ;; ++ esac ++ if test "$valid_a_lib" != yes; then ++ $ECHO ++ $ECHO "*** Warning: Trying to link with static lib archive $deplib." ++ $ECHO "*** I have the capability to make that library automatically link in when" ++ $ECHO "*** you link to this library. But I can only do this if you have a" ++ $ECHO "*** shared version of the library, which you do not appear to have" ++ $ECHO "*** because the file extensions .$libext of this argument makes me believe" ++ $ECHO "*** that it is just a static archive that I should not use here." ++ else ++ $ECHO ++ $ECHO "*** Warning: Linking the shared library $output against the" ++ $ECHO "*** static library $deplib is not portable!" ++ deplibs="$deplib $deplibs" ++ fi ++ ;; ++ esac ++ continue ++ ;; ++ prog) ++ if test "$pass" != link; then ++ deplibs="$deplib $deplibs" ++ else ++ compile_deplibs="$deplib $compile_deplibs" ++ finalize_deplibs="$deplib $finalize_deplibs" ++ fi ++ continue ++ ;; ++ esac # linkmode ++ ;; # *.$libext ++ *.lo | *.$objext) ++ if test "$pass" = conv; then ++ deplibs="$deplib $deplibs" ++ elif test "$linkmode" = prog; then ++ if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then ++ # If there is no dlopen support or we're linking statically, ++ # we need to preload. ++ newdlprefiles="$newdlprefiles $deplib" ++ compile_deplibs="$deplib $compile_deplibs" ++ finalize_deplibs="$deplib $finalize_deplibs" ++ else ++ newdlfiles="$newdlfiles $deplib" ++ fi ++ fi ++ continue ++ ;; ++ %DEPLIBS%) ++ alldeplibs=yes ++ continue ++ ;; ++ esac # case $deplib ++ ++ if test "$found" = yes || test -f "$lib"; then : ++ else ++ func_fatal_error "cannot find the library \`$lib' or unhandled argument \`$deplib'" ++ fi ++ ++ # Check to see that this really is a libtool archive. ++ func_lalib_unsafe_p "$lib" \ ++ || func_fatal_error "\`$lib' is not a valid libtool archive" ++ ++ func_dirname "$lib" "" "." ++ ladir="$func_dirname_result" ++ ++ dlname= ++ dlopen= ++ dlpreopen= ++ libdir= ++ library_names= ++ old_library= ++ inherited_linker_flags= ++ # If the library was installed with an old release of libtool, ++ # it will not redefine variables installed, or shouldnotlink ++ installed=yes ++ shouldnotlink=no ++ avoidtemprpath= ++ ++ ++ # Read the .la file ++ func_source "$lib" ++ ++ # Convert "-framework foo" to "foo.ltframework" ++ if test -n "$inherited_linker_flags"; then ++ tmp_inherited_linker_flags=`$ECHO "X$inherited_linker_flags" | $Xsed -e 's/-framework \([^ $]*\)/\1.ltframework/g'` ++ for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do ++ case " $new_inherited_linker_flags " in ++ *" $tmp_inherited_linker_flag "*) ;; ++ *) new_inherited_linker_flags="$new_inherited_linker_flags $tmp_inherited_linker_flag";; ++ esac ++ done ++ fi ++ dependency_libs=`$ECHO "X $dependency_libs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` ++ if test "$linkmode,$pass" = "lib,link" || ++ test "$linkmode,$pass" = "prog,scan" || ++ { test "$linkmode" != prog && test "$linkmode" != lib; }; then ++ test -n "$dlopen" && dlfiles="$dlfiles $dlopen" ++ test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen" ++ fi ++ ++ if test "$pass" = conv; then ++ # Only check for convenience libraries ++ deplibs="$lib $deplibs" ++ if test -z "$libdir"; then ++ if test -z "$old_library"; then ++ func_fatal_error "cannot find name of link library for \`$lib'" ++ fi ++ # It is a libtool convenience library, so add in its objects. ++ convenience="$convenience $ladir/$objdir/$old_library" ++ old_convenience="$old_convenience $ladir/$objdir/$old_library" ++ elif test "$linkmode" != prog && test "$linkmode" != lib; then ++ func_fatal_error "\`$lib' is not a convenience library" ++ fi ++ tmp_libs= ++ for deplib in $dependency_libs; do ++ deplibs="$deplib $deplibs" ++ if $opt_duplicate_deps ; then ++ case "$tmp_libs " in ++ *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; ++ esac ++ fi ++ tmp_libs="$tmp_libs $deplib" ++ done ++ continue ++ fi # $pass = conv ++ ++ ++ # Get the name of the library we link against. ++ linklib= ++ for l in $old_library $library_names; do ++ linklib="$l" ++ done ++ if test -z "$linklib"; then ++ func_fatal_error "cannot find name of link library for \`$lib'" ++ fi ++ ++ # This library was specified with -dlopen. ++ if test "$pass" = dlopen; then ++ if test -z "$libdir"; then ++ func_fatal_error "cannot -dlopen a convenience library: \`$lib'" ++ fi ++ if test -z "$dlname" || ++ test "$dlopen_support" != yes || ++ test "$build_libtool_libs" = no; then ++ # If there is no dlname, no dlopen support or we're linking ++ # statically, we need to preload. We also need to preload any ++ # dependent libraries so libltdl's deplib preloader doesn't ++ # bomb out in the load deplibs phase. ++ dlprefiles="$dlprefiles $lib $dependency_libs" ++ else ++ newdlfiles="$newdlfiles $lib" ++ fi ++ continue ++ fi # $pass = dlopen ++ ++ # We need an absolute path. ++ case $ladir in ++ [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;; ++ *) ++ abs_ladir=`cd "$ladir" && pwd` ++ if test -z "$abs_ladir"; then ++ func_warning "cannot determine absolute directory name of \`$ladir'" ++ func_warning "passing it literally to the linker, although it might fail" ++ abs_ladir="$ladir" ++ fi ++ ;; ++ esac ++ func_basename "$lib" ++ laname="$func_basename_result" ++ ++ # Find the relevant object directory and library name. ++ if test "X$installed" = Xyes; then ++ if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then ++ func_warning "library \`$lib' was moved." ++ dir="$ladir" ++ absdir="$abs_ladir" ++ libdir="$abs_ladir" ++ else ++ dir="$libdir" ++ absdir="$libdir" ++ fi ++ test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes ++ else ++ if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then ++ dir="$ladir" ++ absdir="$abs_ladir" ++ # Remove this search path later ++ notinst_path="$notinst_path $abs_ladir" ++ else ++ dir="$ladir/$objdir" ++ absdir="$abs_ladir/$objdir" ++ # Remove this search path later ++ notinst_path="$notinst_path $abs_ladir" ++ fi ++ fi # $installed = yes ++ func_stripname 'lib' '.la' "$laname" ++ name=$func_stripname_result ++ ++ # This library was specified with -dlpreopen. ++ if test "$pass" = dlpreopen; then ++ if test -z "$libdir" && test "$linkmode" = prog; then ++ func_fatal_error "only libraries may -dlpreopen a convenience library: \`$lib'" ++ fi ++ # Prefer using a static library (so that no silly _DYNAMIC symbols ++ # are required to link). ++ if test -n "$old_library"; then ++ newdlprefiles="$newdlprefiles $dir/$old_library" ++ # Keep a list of preopened convenience libraries to check ++ # that they are being used correctly in the link pass. ++ test -z "$libdir" && \ ++ dlpreconveniencelibs="$dlpreconveniencelibs $dir/$old_library" ++ # Otherwise, use the dlname, so that lt_dlopen finds it. ++ elif test -n "$dlname"; then ++ newdlprefiles="$newdlprefiles $dir/$dlname" ++ else ++ newdlprefiles="$newdlprefiles $dir/$linklib" ++ fi ++ fi # $pass = dlpreopen ++ ++ if test -z "$libdir"; then ++ # Link the convenience library ++ if test "$linkmode" = lib; then ++ deplibs="$dir/$old_library $deplibs" ++ elif test "$linkmode,$pass" = "prog,link"; then ++ compile_deplibs="$dir/$old_library $compile_deplibs" ++ finalize_deplibs="$dir/$old_library $finalize_deplibs" ++ else ++ deplibs="$lib $deplibs" # used for prog,scan pass ++ fi ++ continue ++ fi ++ ++ ++ if test "$linkmode" = prog && test "$pass" != link; then ++ newlib_search_path="$newlib_search_path $ladir" ++ deplibs="$lib $deplibs" ++ ++ linkalldeplibs=no ++ if test "$link_all_deplibs" != no || test -z "$library_names" || ++ test "$build_libtool_libs" = no; then ++ linkalldeplibs=yes ++ fi ++ ++ tmp_libs= ++ for deplib in $dependency_libs; do ++ case $deplib in ++ -L*) func_stripname '-L' '' "$deplib" ++ newlib_search_path="$newlib_search_path $func_stripname_result" ++ ;; ++ esac ++ # Need to link against all dependency_libs? ++ if test "$linkalldeplibs" = yes; then ++ deplibs="$deplib $deplibs" ++ else ++ # Need to hardcode shared library paths ++ # or/and link against static libraries ++ newdependency_libs="$deplib $newdependency_libs" ++ fi ++ if $opt_duplicate_deps ; then ++ case "$tmp_libs " in ++ *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; ++ esac ++ fi ++ tmp_libs="$tmp_libs $deplib" ++ done # for deplib ++ continue ++ fi # $linkmode = prog... ++ ++ if test "$linkmode,$pass" = "prog,link"; then ++ if test -n "$library_names" && ++ { { test "$prefer_static_libs" = no || ++ test "$prefer_static_libs,$installed" = "built,yes"; } || ++ test -z "$old_library"; }; then ++ # We need to hardcode the library path ++ if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then ++ # Make sure the rpath contains only unique directories. ++ case "$temp_rpath:" in ++ *"$absdir:"*) ;; ++ *) temp_rpath="$temp_rpath$absdir:" ;; ++ esac ++ fi ++ ++ # Hardcode the library path. ++ # Skip directories that are in the system default run-time ++ # search path. ++ case " $sys_lib_dlsearch_path " in ++ *" $absdir "*) ;; ++ *) ++ case "$compile_rpath " in ++ *" $absdir "*) ;; ++ *) compile_rpath="$compile_rpath $absdir" ++ esac ++ ;; ++ esac ++ case " $sys_lib_dlsearch_path " in ++ *" $libdir "*) ;; ++ *) ++ case "$finalize_rpath " in ++ *" $libdir "*) ;; ++ *) finalize_rpath="$finalize_rpath $libdir" ++ esac ++ ;; ++ esac ++ fi # $linkmode,$pass = prog,link... ++ ++ if test "$alldeplibs" = yes && ++ { test "$deplibs_check_method" = pass_all || ++ { test "$build_libtool_libs" = yes && ++ test -n "$library_names"; }; }; then ++ # We only need to search for static libraries ++ continue ++ fi ++ fi ++ ++ link_static=no # Whether the deplib will be linked statically ++ use_static_libs=$prefer_static_libs ++ if test "$use_static_libs" = built && test "$installed" = yes; then ++ use_static_libs=no ++ fi ++ if test -n "$library_names" && ++ { test "$use_static_libs" = no || test -z "$old_library"; }; then ++ case $host in ++ *cygwin* | *mingw* | *cegcc*) ++ # No point in relinking DLLs because paths are not encoded ++ notinst_deplibs="$notinst_deplibs $lib" ++ need_relink=no ++ ;; ++ *) ++ if test "$installed" = no; then ++ notinst_deplibs="$notinst_deplibs $lib" ++ need_relink=yes ++ fi ++ ;; ++ esac ++ # This is a shared library ++ ++ # Warn about portability, can't link against -module's on some ++ # systems (darwin). Don't bleat about dlopened modules though! ++ dlopenmodule="" ++ for dlpremoduletest in $dlprefiles; do ++ if test "X$dlpremoduletest" = "X$lib"; then ++ dlopenmodule="$dlpremoduletest" ++ break ++ fi ++ done ++ if test -z "$dlopenmodule" && test "$shouldnotlink" = yes && test "$pass" = link; then ++ $ECHO ++ if test "$linkmode" = prog; then ++ $ECHO "*** Warning: Linking the executable $output against the loadable module" ++ else ++ $ECHO "*** Warning: Linking the shared library $output against the loadable module" ++ fi ++ $ECHO "*** $linklib is not portable!" ++ fi ++ if test "$linkmode" = lib && ++ test "$hardcode_into_libs" = yes; then ++ # Hardcode the library path. ++ # Skip directories that are in the system default run-time ++ # search path. ++ case " $sys_lib_dlsearch_path " in ++ *" $absdir "*) ;; ++ *) ++ case "$compile_rpath " in ++ *" $absdir "*) ;; ++ *) compile_rpath="$compile_rpath $absdir" ++ esac ++ ;; ++ esac ++ case " $sys_lib_dlsearch_path " in ++ *" $libdir "*) ;; ++ *) ++ case "$finalize_rpath " in ++ *" $libdir "*) ;; ++ *) finalize_rpath="$finalize_rpath $libdir" ++ esac ++ ;; ++ esac ++ fi ++ ++ if test -n "$old_archive_from_expsyms_cmds"; then ++ # figure out the soname ++ set dummy $library_names ++ shift ++ realname="$1" ++ shift ++ libname=`eval "\\$ECHO \"$libname_spec\""` ++ # use dlname if we got it. it's perfectly good, no? ++ if test -n "$dlname"; then ++ soname="$dlname" ++ elif test -n "$soname_spec"; then ++ # bleh windows ++ case $host in ++ *cygwin* | mingw* | *cegcc*) ++ func_arith $current - $age ++ major=$func_arith_result ++ versuffix="-$major" ++ ;; ++ esac ++ eval soname=\"$soname_spec\" ++ else ++ soname="$realname" ++ fi ++ ++ # Make a new name for the extract_expsyms_cmds to use ++ soroot="$soname" ++ func_basename "$soroot" ++ soname="$func_basename_result" ++ func_stripname 'lib' '.dll' "$soname" ++ newlib=libimp-$func_stripname_result.a ++ ++ # If the library has no export list, then create one now ++ if test -f "$output_objdir/$soname-def"; then : ++ else ++ func_verbose "extracting exported symbol list from \`$soname'" ++ func_execute_cmds "$extract_expsyms_cmds" 'exit $?' ++ fi ++ ++ # Create $newlib ++ if test -f "$output_objdir/$newlib"; then :; else ++ func_verbose "generating import library for \`$soname'" ++ func_execute_cmds "$old_archive_from_expsyms_cmds" 'exit $?' ++ fi ++ # make sure the library variables are pointing to the new library ++ dir=$output_objdir ++ linklib=$newlib ++ fi # test -n "$old_archive_from_expsyms_cmds" ++ ++ if test "$linkmode" = prog || test "$mode" != relink; then ++ add_shlibpath= ++ add_dir= ++ add= ++ lib_linked=yes ++ case $hardcode_action in ++ immediate | unsupported) ++ if test "$hardcode_direct" = no; then ++ add="$dir/$linklib" ++ case $host in ++ *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;; ++ *-*-sysv4*uw2*) add_dir="-L$dir" ;; ++ *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \ ++ *-*-unixware7*) add_dir="-L$dir" ;; ++ *-*-darwin* ) ++ # if the lib is a (non-dlopened) module then we can not ++ # link against it, someone is ignoring the earlier warnings ++ if /usr/bin/file -L $add 2> /dev/null | ++ $GREP ": [^:]* bundle" >/dev/null ; then ++ if test "X$dlopenmodule" != "X$lib"; then ++ $ECHO "*** Warning: lib $linklib is a module, not a shared library" ++ if test -z "$old_library" ; then ++ $ECHO ++ $ECHO "*** And there doesn't seem to be a static archive available" ++ $ECHO "*** The link will probably fail, sorry" ++ else ++ add="$dir/$old_library" ++ fi ++ elif test -n "$old_library"; then ++ add="$dir/$old_library" ++ fi ++ fi ++ esac ++ elif test "$hardcode_minus_L" = no; then ++ case $host in ++ *-*-sunos*) add_shlibpath="$dir" ;; ++ esac ++ add_dir="-L$dir" ++ add="-l$name" ++ elif test "$hardcode_shlibpath_var" = no; then ++ add_shlibpath="$dir" ++ add="-l$name" ++ else ++ lib_linked=no ++ fi ++ ;; ++ relink) ++ if test "$hardcode_direct" = yes && ++ test "$hardcode_direct_absolute" = no; then ++ add="$dir/$linklib" ++ elif test "$hardcode_minus_L" = yes; then ++ add_dir="-L$dir" ++ # Try looking first in the location we're being installed to. ++ if test -n "$inst_prefix_dir"; then ++ case $libdir in ++ [\\/]*) ++ add_dir="$add_dir -L$inst_prefix_dir$libdir" ++ ;; ++ esac ++ fi ++ add="-l$name" ++ elif test "$hardcode_shlibpath_var" = yes; then ++ add_shlibpath="$dir" ++ add="-l$name" ++ else ++ lib_linked=no ++ fi ++ ;; ++ *) lib_linked=no ;; ++ esac ++ ++ if test "$lib_linked" != yes; then ++ func_fatal_configuration "unsupported hardcode properties" ++ fi ++ ++ if test -n "$add_shlibpath"; then ++ case :$compile_shlibpath: in ++ *":$add_shlibpath:"*) ;; ++ *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;; ++ esac ++ fi ++ if test "$linkmode" = prog; then ++ test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs" ++ test -n "$add" && compile_deplibs="$add $compile_deplibs" ++ else ++ test -n "$add_dir" && deplibs="$add_dir $deplibs" ++ test -n "$add" && deplibs="$add $deplibs" ++ if test "$hardcode_direct" != yes && ++ test "$hardcode_minus_L" != yes && ++ test "$hardcode_shlibpath_var" = yes; then ++ case :$finalize_shlibpath: in ++ *":$libdir:"*) ;; ++ *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; ++ esac ++ fi ++ fi ++ fi ++ ++ if test "$linkmode" = prog || test "$mode" = relink; then ++ add_shlibpath= ++ add_dir= ++ add= ++ # Finalize command for both is simple: just hardcode it. ++ if test "$hardcode_direct" = yes && ++ test "$hardcode_direct_absolute" = no; then ++ add="$libdir/$linklib" ++ elif test "$hardcode_minus_L" = yes; then ++ add_dir="-L$libdir" ++ add="-l$name" ++ elif test "$hardcode_shlibpath_var" = yes; then ++ case :$finalize_shlibpath: in ++ *":$libdir:"*) ;; ++ *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; ++ esac ++ add="-l$name" ++ elif test "$hardcode_automatic" = yes; then ++ if test -n "$inst_prefix_dir" && ++ test -f "$inst_prefix_dir$libdir/$linklib" ; then ++ add="$inst_prefix_dir$libdir/$linklib" ++ else ++ add="$libdir/$linklib" ++ fi ++ else ++ # We cannot seem to hardcode it, guess we'll fake it. ++ add_dir="-L$libdir" ++ # Try looking first in the location we're being installed to. ++ if test -n "$inst_prefix_dir"; then ++ case $libdir in ++ [\\/]*) ++ add_dir="$add_dir -L$inst_prefix_dir$libdir" ++ ;; ++ esac ++ fi ++ add="-l$name" ++ fi ++ ++ if test "$linkmode" = prog; then ++ test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs" ++ test -n "$add" && finalize_deplibs="$add $finalize_deplibs" ++ else ++ test -n "$add_dir" && deplibs="$add_dir $deplibs" ++ test -n "$add" && deplibs="$add $deplibs" ++ fi ++ fi ++ elif test "$linkmode" = prog; then ++ # Here we assume that one of hardcode_direct or hardcode_minus_L ++ # is not unsupported. This is valid on all known static and ++ # shared platforms. ++ if test "$hardcode_direct" != unsupported; then ++ test -n "$old_library" && linklib="$old_library" ++ compile_deplibs="$dir/$linklib $compile_deplibs" ++ finalize_deplibs="$dir/$linklib $finalize_deplibs" ++ else ++ compile_deplibs="-l$name -L$dir $compile_deplibs" ++ finalize_deplibs="-l$name -L$dir $finalize_deplibs" ++ fi ++ elif test "$build_libtool_libs" = yes; then ++ # Not a shared library ++ if test "$deplibs_check_method" != pass_all; then ++ # We're trying link a shared library against a static one ++ # but the system doesn't support it. ++ ++ # Just print a warning and add the library to dependency_libs so ++ # that the program can be linked against the static library. ++ $ECHO ++ $ECHO "*** Warning: This system can not link to static lib archive $lib." ++ $ECHO "*** I have the capability to make that library automatically link in when" ++ $ECHO "*** you link to this library. But I can only do this if you have a" ++ $ECHO "*** shared version of the library, which you do not appear to have." ++ if test "$module" = yes; then ++ $ECHO "*** But as you try to build a module library, libtool will still create " ++ $ECHO "*** a static module, that should work as long as the dlopening application" ++ $ECHO "*** is linked with the -dlopen flag to resolve symbols at runtime." ++ if test -z "$global_symbol_pipe"; then ++ $ECHO ++ $ECHO "*** However, this would only work if libtool was able to extract symbol" ++ $ECHO "*** lists from a program, using \`nm' or equivalent, but libtool could" ++ $ECHO "*** not find such a program. So, this module is probably useless." ++ $ECHO "*** \`nm' from GNU binutils and a full rebuild may help." ++ fi ++ if test "$build_old_libs" = no; then ++ build_libtool_libs=module ++ build_old_libs=yes ++ else ++ build_libtool_libs=no ++ fi ++ fi ++ else ++ deplibs="$dir/$old_library $deplibs" ++ link_static=yes ++ fi ++ fi # link shared/static library? ++ ++ if test "$linkmode" = lib; then ++ if test -n "$dependency_libs" && ++ { test "$hardcode_into_libs" != yes || ++ test "$build_old_libs" = yes || ++ test "$link_static" = yes; }; then ++ # Extract -R from dependency_libs ++ temp_deplibs= ++ for libdir in $dependency_libs; do ++ case $libdir in ++ -R*) func_stripname '-R' '' "$libdir" ++ temp_xrpath=$func_stripname_result ++ case " $xrpath " in ++ *" $temp_xrpath "*) ;; ++ *) xrpath="$xrpath $temp_xrpath";; ++ esac;; ++ *) temp_deplibs="$temp_deplibs $libdir";; ++ esac ++ done ++ dependency_libs="$temp_deplibs" ++ fi ++ ++ newlib_search_path="$newlib_search_path $absdir" ++ # Link against this library ++ test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs" ++ # ... and its dependency_libs ++ tmp_libs= ++ for deplib in $dependency_libs; do ++ newdependency_libs="$deplib $newdependency_libs" ++ if $opt_duplicate_deps ; then ++ case "$tmp_libs " in ++ *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; ++ esac ++ fi ++ tmp_libs="$tmp_libs $deplib" ++ done ++ ++ if test "$link_all_deplibs" != no; then ++ # Add the search paths of all dependency libraries ++ for deplib in $dependency_libs; do ++ case $deplib in ++ -L*) path="$deplib" ;; ++ *.la) ++ func_dirname "$deplib" "" "." ++ dir="$func_dirname_result" ++ # We need an absolute path. ++ case $dir in ++ [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;; ++ *) ++ absdir=`cd "$dir" && pwd` ++ if test -z "$absdir"; then ++ func_warning "cannot determine absolute directory name of \`$dir'" ++ absdir="$dir" ++ fi ++ ;; ++ esac ++ if $GREP "^installed=no" $deplib > /dev/null; then ++ case $host in ++ *-*-darwin*) ++ depdepl= ++ eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib` ++ if test -n "$deplibrary_names" ; then ++ for tmp in $deplibrary_names ; do ++ depdepl=$tmp ++ done ++ if test -f "$absdir/$objdir/$depdepl" ; then ++ depdepl="$absdir/$objdir/$depdepl" ++ darwin_install_name=`${OTOOL} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` ++ if test -z "$darwin_install_name"; then ++ darwin_install_name=`${OTOOL64} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` ++ fi ++ compiler_flags="$compiler_flags ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}" ++ linker_flags="$linker_flags -dylib_file ${darwin_install_name}:${depdepl}" ++ path= ++ fi ++ fi ++ ;; ++ *) ++ path="-L$absdir/$objdir" ++ ;; ++ esac ++ else ++ eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` ++ test -z "$libdir" && \ ++ func_fatal_error "\`$deplib' is not a valid libtool archive" ++ test "$absdir" != "$libdir" && \ ++ func_warning "\`$deplib' seems to be moved" ++ ++ path="-L$absdir" ++ fi ++ ;; ++ esac ++ case " $deplibs " in ++ *" $path "*) ;; ++ *) deplibs="$path $deplibs" ;; ++ esac ++ done ++ fi # link_all_deplibs != no ++ fi # linkmode = lib ++ done # for deplib in $libs ++ if test "$pass" = link; then ++ if test "$linkmode" = "prog"; then ++ compile_deplibs="$new_inherited_linker_flags $compile_deplibs" ++ finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs" ++ else ++ compiler_flags="$compiler_flags "`$ECHO "X $new_inherited_linker_flags" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` ++ fi ++ fi ++ dependency_libs="$newdependency_libs" ++ if test "$pass" = dlpreopen; then ++ # Link the dlpreopened libraries before other libraries ++ for deplib in $save_deplibs; do ++ deplibs="$deplib $deplibs" ++ done ++ fi ++ if test "$pass" != dlopen; then ++ if test "$pass" != conv; then ++ # Make sure lib_search_path contains only unique directories. ++ lib_search_path= ++ for dir in $newlib_search_path; do ++ case "$lib_search_path " in ++ *" $dir "*) ;; ++ *) lib_search_path="$lib_search_path $dir" ;; ++ esac ++ done ++ newlib_search_path= ++ fi ++ ++ if test "$linkmode,$pass" != "prog,link"; then ++ vars="deplibs" ++ else ++ vars="compile_deplibs finalize_deplibs" ++ fi ++ for var in $vars dependency_libs; do ++ # Add libraries to $var in reverse order ++ eval tmp_libs=\"\$$var\" ++ new_libs= ++ for deplib in $tmp_libs; do ++ # FIXME: Pedantically, this is the right thing to do, so ++ # that some nasty dependency loop isn't accidentally ++ # broken: ++ #new_libs="$deplib $new_libs" ++ # Pragmatically, this seems to cause very few problems in ++ # practice: ++ case $deplib in ++ -L*) new_libs="$deplib $new_libs" ;; ++ -R*) ;; ++ *) ++ # And here is the reason: when a library appears more ++ # than once as an explicit dependence of a library, or ++ # is implicitly linked in more than once by the ++ # compiler, it is considered special, and multiple ++ # occurrences thereof are not removed. Compare this ++ # with having the same library being listed as a ++ # dependency of multiple other libraries: in this case, ++ # we know (pedantically, we assume) the library does not ++ # need to be listed more than once, so we keep only the ++ # last copy. This is not always right, but it is rare ++ # enough that we require users that really mean to play ++ # such unportable linking tricks to link the library ++ # using -Wl,-lname, so that libtool does not consider it ++ # for duplicate removal. ++ case " $specialdeplibs " in ++ *" $deplib "*) new_libs="$deplib $new_libs" ;; ++ *) ++ case " $new_libs " in ++ *" $deplib "*) ;; ++ *) new_libs="$deplib $new_libs" ;; ++ esac ++ ;; ++ esac ++ ;; ++ esac ++ done ++ tmp_libs= ++ for deplib in $new_libs; do ++ case $deplib in ++ -L*) ++ case " $tmp_libs " in ++ *" $deplib "*) ;; ++ *) tmp_libs="$tmp_libs $deplib" ;; ++ esac ++ ;; ++ *) tmp_libs="$tmp_libs $deplib" ;; ++ esac ++ done ++ eval $var=\"$tmp_libs\" ++ done # for var ++ fi ++ # Last step: remove runtime libs from dependency_libs ++ # (they stay in deplibs) ++ tmp_libs= ++ for i in $dependency_libs ; do ++ case " $predeps $postdeps $compiler_lib_search_path " in ++ *" $i "*) ++ i="" ++ ;; ++ esac ++ if test -n "$i" ; then ++ tmp_libs="$tmp_libs $i" ++ fi ++ done ++ dependency_libs=$tmp_libs ++ done # for pass ++ if test "$linkmode" = prog; then ++ dlfiles="$newdlfiles" ++ fi ++ if test "$linkmode" = prog || test "$linkmode" = lib; then ++ dlprefiles="$newdlprefiles" ++ fi ++ ++ case $linkmode in ++ oldlib) ++ if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then ++ func_warning "\`-dlopen' is ignored for archives" ++ fi ++ ++ case " $deplibs" in ++ *\ -l* | *\ -L*) ++ func_warning "\`-l' and \`-L' are ignored for archives" ;; ++ esac ++ ++ test -n "$rpath" && \ ++ func_warning "\`-rpath' is ignored for archives" ++ ++ test -n "$xrpath" && \ ++ func_warning "\`-R' is ignored for archives" ++ ++ test -n "$vinfo" && \ ++ func_warning "\`-version-info/-version-number' is ignored for archives" ++ ++ test -n "$release" && \ ++ func_warning "\`-release' is ignored for archives" ++ ++ test -n "$export_symbols$export_symbols_regex" && \ ++ func_warning "\`-export-symbols' is ignored for archives" ++ ++ # Now set the variables for building old libraries. ++ build_libtool_libs=no ++ oldlibs="$output" ++ objs="$objs$old_deplibs" ++ ;; ++ ++ lib) ++ # Make sure we only generate libraries of the form `libNAME.la'. ++ case $outputname in ++ lib*) ++ func_stripname 'lib' '.la' "$outputname" ++ name=$func_stripname_result ++ eval shared_ext=\"$shrext_cmds\" ++ eval libname=\"$libname_spec\" ++ ;; ++ *) ++ test "$module" = no && \ ++ func_fatal_help "libtool library \`$output' must begin with \`lib'" ++ ++ if test "$need_lib_prefix" != no; then ++ # Add the "lib" prefix for modules if required ++ func_stripname '' '.la' "$outputname" ++ name=$func_stripname_result ++ eval shared_ext=\"$shrext_cmds\" ++ eval libname=\"$libname_spec\" ++ else ++ func_stripname '' '.la' "$outputname" ++ libname=$func_stripname_result ++ fi ++ ;; ++ esac ++ ++ if test -n "$objs"; then ++ if test "$deplibs_check_method" != pass_all; then ++ func_fatal_error "cannot build libtool library \`$output' from non-libtool objects on this host:$objs" ++ else ++ $ECHO ++ $ECHO "*** Warning: Linking the shared library $output against the non-libtool" ++ $ECHO "*** objects $objs is not portable!" ++ libobjs="$libobjs $objs" ++ fi ++ fi ++ ++ test "$dlself" != no && \ ++ func_warning "\`-dlopen self' is ignored for libtool libraries" ++ ++ set dummy $rpath ++ shift ++ test "$#" -gt 1 && \ ++ func_warning "ignoring multiple \`-rpath's for a libtool library" ++ ++ install_libdir="$1" ++ ++ oldlibs= ++ if test -z "$rpath"; then ++ if test "$build_libtool_libs" = yes; then ++ # Building a libtool convenience library. ++ # Some compilers have problems with a `.al' extension so ++ # convenience libraries should have the same extension an ++ # archive normally would. ++ oldlibs="$output_objdir/$libname.$libext $oldlibs" ++ build_libtool_libs=convenience ++ build_old_libs=yes ++ fi ++ ++ test -n "$vinfo" && \ ++ func_warning "\`-version-info/-version-number' is ignored for convenience libraries" ++ ++ test -n "$release" && \ ++ func_warning "\`-release' is ignored for convenience libraries" ++ else ++ ++ # Parse the version information argument. ++ save_ifs="$IFS"; IFS=':' ++ set dummy $vinfo 0 0 0 ++ shift ++ IFS="$save_ifs" ++ ++ test -n "$7" && \ ++ func_fatal_help "too many parameters to \`-version-info'" ++ ++ # convert absolute version numbers to libtool ages ++ # this retains compatibility with .la files and attempts ++ # to make the code below a bit more comprehensible ++ ++ case $vinfo_number in ++ yes) ++ number_major="$1" ++ number_minor="$2" ++ number_revision="$3" ++ # ++ # There are really only two kinds -- those that ++ # use the current revision as the major version ++ # and those that subtract age and use age as ++ # a minor version. But, then there is irix ++ # which has an extra 1 added just for fun ++ # ++ case $version_type in ++ darwin|linux|osf|windows|none) ++ func_arith $number_major + $number_minor ++ current=$func_arith_result ++ age="$number_minor" ++ revision="$number_revision" ++ ;; ++ freebsd-aout|freebsd-elf|sunos) ++ current="$number_major" ++ revision="$number_minor" ++ age="0" ++ ;; ++ irix|nonstopux) ++ func_arith $number_major + $number_minor ++ current=$func_arith_result ++ age="$number_minor" ++ revision="$number_minor" ++ lt_irix_increment=no ++ ;; ++ esac ++ ;; ++ no) ++ current="$1" ++ revision="$2" ++ age="$3" ++ ;; ++ esac ++ ++ # Check that each of the things are valid numbers. ++ case $current in ++ 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; ++ *) ++ func_error "CURRENT \`$current' must be a nonnegative integer" ++ func_fatal_error "\`$vinfo' is not valid version information" ++ ;; ++ esac ++ ++ case $revision in ++ 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; ++ *) ++ func_error "REVISION \`$revision' must be a nonnegative integer" ++ func_fatal_error "\`$vinfo' is not valid version information" ++ ;; ++ esac ++ ++ case $age in ++ 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; ++ *) ++ func_error "AGE \`$age' must be a nonnegative integer" ++ func_fatal_error "\`$vinfo' is not valid version information" ++ ;; ++ esac ++ ++ if test "$age" -gt "$current"; then ++ func_error "AGE \`$age' is greater than the current interface number \`$current'" ++ func_fatal_error "\`$vinfo' is not valid version information" ++ fi ++ ++ # Calculate the version variables. ++ major= ++ versuffix= ++ verstring= ++ case $version_type in ++ none) ;; ++ ++ darwin) ++ # Like Linux, but with the current version available in ++ # verstring for coding it into the library header ++ func_arith $current - $age ++ major=.$func_arith_result ++ versuffix="$major.$age.$revision" ++ # Darwin ld doesn't like 0 for these options... ++ func_arith $current + 1 ++ minor_current=$func_arith_result ++ xlcverstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision" ++ verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" ++ ;; ++ ++ freebsd-aout) ++ major=".$current" ++ versuffix=".$current.$revision"; ++ ;; ++ ++ freebsd-elf) ++ major=".$current" ++ versuffix=".$current" ++ ;; ++ ++ irix | nonstopux) ++ if test "X$lt_irix_increment" = "Xno"; then ++ func_arith $current - $age ++ else ++ func_arith $current - $age + 1 ++ fi ++ major=$func_arith_result ++ ++ case $version_type in ++ nonstopux) verstring_prefix=nonstopux ;; ++ *) verstring_prefix=sgi ;; ++ esac ++ verstring="$verstring_prefix$major.$revision" ++ ++ # Add in all the interfaces that we are compatible with. ++ loop=$revision ++ while test "$loop" -ne 0; do ++ func_arith $revision - $loop ++ iface=$func_arith_result ++ func_arith $loop - 1 ++ loop=$func_arith_result ++ verstring="$verstring_prefix$major.$iface:$verstring" ++ done ++ ++ # Before this point, $major must not contain `.'. ++ major=.$major ++ versuffix="$major.$revision" ++ ;; ++ ++ linux) ++ func_arith $current - $age ++ major=.$func_arith_result ++ versuffix="$major.$age.$revision" ++ ;; ++ ++ osf) ++ func_arith $current - $age ++ major=.$func_arith_result ++ versuffix=".$current.$age.$revision" ++ verstring="$current.$age.$revision" ++ ++ # Add in all the interfaces that we are compatible with. ++ loop=$age ++ while test "$loop" -ne 0; do ++ func_arith $current - $loop ++ iface=$func_arith_result ++ func_arith $loop - 1 ++ loop=$func_arith_result ++ verstring="$verstring:${iface}.0" ++ done ++ ++ # Make executables depend on our current version. ++ verstring="$verstring:${current}.0" ++ ;; ++ ++ qnx) ++ major=".$current" ++ versuffix=".$current" ++ ;; ++ ++ sunos) ++ major=".$current" ++ versuffix=".$current.$revision" ++ ;; ++ ++ windows) ++ # Use '-' rather than '.', since we only want one ++ # extension on DOS 8.3 filesystems. ++ func_arith $current - $age ++ major=$func_arith_result ++ versuffix="-$major" ++ ;; ++ ++ *) ++ func_fatal_configuration "unknown library version type \`$version_type'" ++ ;; ++ esac ++ ++ # Clear the version info if we defaulted, and they specified a release. ++ if test -z "$vinfo" && test -n "$release"; then ++ major= ++ case $version_type in ++ darwin) ++ # we can't check for "0.0" in archive_cmds due to quoting ++ # problems, so we reset it completely ++ verstring= ++ ;; ++ *) ++ verstring="0.0" ++ ;; ++ esac ++ if test "$need_version" = no; then ++ versuffix= ++ else ++ versuffix=".0.0" ++ fi ++ fi ++ ++ # Remove version info from name if versioning should be avoided ++ if test "$avoid_version" = yes && test "$need_version" = no; then ++ major= ++ versuffix= ++ verstring="" ++ fi ++ ++ # Check to see if the archive will have undefined symbols. ++ if test "$allow_undefined" = yes; then ++ if test "$allow_undefined_flag" = unsupported; then ++ func_warning "undefined symbols not allowed in $host shared libraries" ++ build_libtool_libs=no ++ build_old_libs=yes ++ fi ++ else ++ # Don't allow undefined symbols. ++ allow_undefined_flag="$no_undefined_flag" ++ fi ++ ++ fi ++ ++ func_generate_dlsyms "$libname" "$libname" "yes" ++ libobjs="$libobjs $symfileobj" ++ test "X$libobjs" = "X " && libobjs= ++ ++ if test "$mode" != relink; then ++ # Remove our outputs, but don't remove object files since they ++ # may have been created when compiling PIC objects. ++ removelist= ++ tempremovelist=`$ECHO "$output_objdir/*"` ++ for p in $tempremovelist; do ++ case $p in ++ *.$objext | *.gcno) ++ ;; ++ $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*) ++ if test "X$precious_files_regex" != "X"; then ++ if $ECHO "$p" | $EGREP -e "$precious_files_regex" >/dev/null 2>&1 ++ then ++ continue ++ fi ++ fi ++ removelist="$removelist $p" ++ ;; ++ *) ;; ++ esac ++ done ++ test -n "$removelist" && \ ++ func_show_eval "${RM}r \$removelist" ++ fi ++ ++ # Now set the variables for building old libraries. ++ if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then ++ oldlibs="$oldlibs $output_objdir/$libname.$libext" ++ ++ # Transform .lo files to .o files. ++ oldobjs="$objs "`$ECHO "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP` ++ fi ++ ++ # Eliminate all temporary directories. ++ #for path in $notinst_path; do ++ # lib_search_path=`$ECHO "X$lib_search_path " | $Xsed -e "s% $path % %g"` ++ # deplibs=`$ECHO "X$deplibs " | $Xsed -e "s% -L$path % %g"` ++ # dependency_libs=`$ECHO "X$dependency_libs " | $Xsed -e "s% -L$path % %g"` ++ #done ++ ++ if test -n "$xrpath"; then ++ # If the user specified any rpath flags, then add them. ++ temp_xrpath= ++ for libdir in $xrpath; do ++ temp_xrpath="$temp_xrpath -R$libdir" ++ case "$finalize_rpath " in ++ *" $libdir "*) ;; ++ *) finalize_rpath="$finalize_rpath $libdir" ;; ++ esac ++ done ++ if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then ++ dependency_libs="$temp_xrpath $dependency_libs" ++ fi ++ fi ++ ++ # Make sure dlfiles contains only unique files that won't be dlpreopened ++ old_dlfiles="$dlfiles" ++ dlfiles= ++ for lib in $old_dlfiles; do ++ case " $dlprefiles $dlfiles " in ++ *" $lib "*) ;; ++ *) dlfiles="$dlfiles $lib" ;; ++ esac ++ done ++ ++ # Make sure dlprefiles contains only unique files ++ old_dlprefiles="$dlprefiles" ++ dlprefiles= ++ for lib in $old_dlprefiles; do ++ case "$dlprefiles " in ++ *" $lib "*) ;; ++ *) dlprefiles="$dlprefiles $lib" ;; ++ esac ++ done ++ ++ if test "$build_libtool_libs" = yes; then ++ if test -n "$rpath"; then ++ case $host in ++ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc*) ++ # these systems don't actually have a c library (as such)! ++ ;; ++ *-*-rhapsody* | *-*-darwin1.[012]) ++ # Rhapsody C library is in the System framework ++ deplibs="$deplibs System.ltframework" ++ ;; ++ *-*-netbsd*) ++ # Don't link with libc until the a.out ld.so is fixed. ++ ;; ++ *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) ++ # Do not include libc due to us having libc/libc_r. ++ ;; ++ *-*-sco3.2v5* | *-*-sco5v6*) ++ # Causes problems with __ctype ++ ;; ++ *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) ++ # Compiler inserts libc in the correct place for threads to work ++ ;; ++ *) ++ # Add libc to deplibs on all other systems if necessary. ++ if test "$build_libtool_need_lc" = "yes"; then ++ deplibs="$deplibs -lc" ++ fi ++ ;; ++ esac ++ fi ++ ++ # Transform deplibs into only deplibs that can be linked in shared. ++ name_save=$name ++ libname_save=$libname ++ release_save=$release ++ versuffix_save=$versuffix ++ major_save=$major ++ # I'm not sure if I'm treating the release correctly. I think ++ # release should show up in the -l (ie -lgmp5) so we don't want to ++ # add it in twice. Is that correct? ++ release="" ++ versuffix="" ++ major="" ++ newdeplibs= ++ droppeddeps=no ++ case $deplibs_check_method in ++ pass_all) ++ # Don't check for shared/static. Everything works. ++ # This might be a little naive. We might want to check ++ # whether the library exists or not. But this is on ++ # osf3 & osf4 and I'm not really sure... Just ++ # implementing what was already the behavior. ++ newdeplibs=$deplibs ++ ;; ++ test_compile) ++ # This code stresses the "libraries are programs" paradigm to its ++ # limits. Maybe even breaks it. We compile a program, linking it ++ # against the deplibs as a proxy for the library. Then we can check ++ # whether they linked in statically or dynamically with ldd. ++ $opt_dry_run || $RM conftest.c ++ cat > conftest.c </dev/null` ++ for potent_lib in $potential_libs; do ++ # Follow soft links. ++ if ls -lLd "$potent_lib" 2>/dev/null | ++ $GREP " -> " >/dev/null; then ++ continue ++ fi ++ # The statement above tries to avoid entering an ++ # endless loop below, in case of cyclic links. ++ # We might still enter an endless loop, since a link ++ # loop can be closed while we follow links, ++ # but so what? ++ potlib="$potent_lib" ++ while test -h "$potlib" 2>/dev/null; do ++ potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'` ++ case $potliblink in ++ [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";; ++ *) potlib=`$ECHO "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";; ++ esac ++ done ++ if eval $file_magic_cmd \"\$potlib\" 2>/dev/null | ++ $SED -e 10q | ++ $EGREP "$file_magic_regex" > /dev/null; then ++ newdeplibs="$newdeplibs $a_deplib" ++ a_deplib="" ++ break 2 ++ fi ++ done ++ done ++ fi ++ if test -n "$a_deplib" ; then ++ droppeddeps=yes ++ $ECHO ++ $ECHO "*** Warning: linker path does not have real file for library $a_deplib." ++ $ECHO "*** I have the capability to make that library automatically link in when" ++ $ECHO "*** you link to this library. But I can only do this if you have a" ++ $ECHO "*** shared version of the library, which you do not appear to have" ++ $ECHO "*** because I did check the linker path looking for a file starting" ++ if test -z "$potlib" ; then ++ $ECHO "*** with $libname but no candidates were found. (...for file magic test)" ++ else ++ $ECHO "*** with $libname and none of the candidates passed a file format test" ++ $ECHO "*** using a file magic. Last file checked: $potlib" ++ fi ++ fi ++ ;; ++ *) ++ # Add a -L argument. ++ newdeplibs="$newdeplibs $a_deplib" ++ ;; ++ esac ++ done # Gone through all deplibs. ++ ;; ++ match_pattern*) ++ set dummy $deplibs_check_method; shift ++ match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` ++ for a_deplib in $deplibs; do ++ case $a_deplib in ++ -l*) ++ func_stripname -l '' "$a_deplib" ++ name=$func_stripname_result ++ if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then ++ case " $predeps $postdeps " in ++ *" $a_deplib "*) ++ newdeplibs="$newdeplibs $a_deplib" ++ a_deplib="" ++ ;; ++ esac ++ fi ++ if test -n "$a_deplib" ; then ++ libname=`eval "\\$ECHO \"$libname_spec\""` ++ for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do ++ potential_libs=`ls $i/$libname[.-]* 2>/dev/null` ++ for potent_lib in $potential_libs; do ++ potlib="$potent_lib" # see symlink-check above in file_magic test ++ if eval "\$ECHO \"X$potent_lib\"" 2>/dev/null | $Xsed -e 10q | \ ++ $EGREP "$match_pattern_regex" > /dev/null; then ++ newdeplibs="$newdeplibs $a_deplib" ++ a_deplib="" ++ break 2 ++ fi ++ done ++ done ++ fi ++ if test -n "$a_deplib" ; then ++ droppeddeps=yes ++ $ECHO ++ $ECHO "*** Warning: linker path does not have real file for library $a_deplib." ++ $ECHO "*** I have the capability to make that library automatically link in when" ++ $ECHO "*** you link to this library. But I can only do this if you have a" ++ $ECHO "*** shared version of the library, which you do not appear to have" ++ $ECHO "*** because I did check the linker path looking for a file starting" ++ if test -z "$potlib" ; then ++ $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)" ++ else ++ $ECHO "*** with $libname and none of the candidates passed a file format test" ++ $ECHO "*** using a regex pattern. Last file checked: $potlib" ++ fi ++ fi ++ ;; ++ *) ++ # Add a -L argument. ++ newdeplibs="$newdeplibs $a_deplib" ++ ;; ++ esac ++ done # Gone through all deplibs. ++ ;; ++ none | unknown | *) ++ newdeplibs="" ++ tmp_deplibs=`$ECHO "X $deplibs" | $Xsed \ ++ -e 's/ -lc$//' -e 's/ -[LR][^ ]*//g'` ++ if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then ++ for i in $predeps $postdeps ; do ++ # can't use Xsed below, because $i might contain '/' ++ tmp_deplibs=`$ECHO "X $tmp_deplibs" | $Xsed -e "s,$i,,"` ++ done ++ fi ++ if $ECHO "X $tmp_deplibs" | $Xsed -e 's/[ ]//g' | ++ $GREP . >/dev/null; then ++ $ECHO ++ if test "X$deplibs_check_method" = "Xnone"; then ++ $ECHO "*** Warning: inter-library dependencies are not supported in this platform." ++ else ++ $ECHO "*** Warning: inter-library dependencies are not known to be supported." ++ fi ++ $ECHO "*** All declared inter-library dependencies are being dropped." ++ droppeddeps=yes ++ fi ++ ;; ++ esac ++ versuffix=$versuffix_save ++ major=$major_save ++ release=$release_save ++ libname=$libname_save ++ name=$name_save ++ ++ case $host in ++ *-*-rhapsody* | *-*-darwin1.[012]) ++ # On Rhapsody replace the C library with the System framework ++ newdeplibs=`$ECHO "X $newdeplibs" | $Xsed -e 's/ -lc / System.ltframework /'` ++ ;; ++ esac ++ ++ if test "$droppeddeps" = yes; then ++ if test "$module" = yes; then ++ $ECHO ++ $ECHO "*** Warning: libtool could not satisfy all declared inter-library" ++ $ECHO "*** dependencies of module $libname. Therefore, libtool will create" ++ $ECHO "*** a static module, that should work as long as the dlopening" ++ $ECHO "*** application is linked with the -dlopen flag." ++ if test -z "$global_symbol_pipe"; then ++ $ECHO ++ $ECHO "*** However, this would only work if libtool was able to extract symbol" ++ $ECHO "*** lists from a program, using \`nm' or equivalent, but libtool could" ++ $ECHO "*** not find such a program. So, this module is probably useless." ++ $ECHO "*** \`nm' from GNU binutils and a full rebuild may help." ++ fi ++ if test "$build_old_libs" = no; then ++ oldlibs="$output_objdir/$libname.$libext" ++ build_libtool_libs=module ++ build_old_libs=yes ++ else ++ build_libtool_libs=no ++ fi ++ else ++ $ECHO "*** The inter-library dependencies that have been dropped here will be" ++ $ECHO "*** automatically added whenever a program is linked with this library" ++ $ECHO "*** or is declared to -dlopen it." ++ ++ if test "$allow_undefined" = no; then ++ $ECHO ++ $ECHO "*** Since this library must not contain undefined symbols," ++ $ECHO "*** because either the platform does not support them or" ++ $ECHO "*** it was explicitly requested with -no-undefined," ++ $ECHO "*** libtool will only create a static version of it." ++ if test "$build_old_libs" = no; then ++ oldlibs="$output_objdir/$libname.$libext" ++ build_libtool_libs=module ++ build_old_libs=yes ++ else ++ build_libtool_libs=no ++ fi ++ fi ++ fi ++ fi ++ # Done checking deplibs! ++ deplibs=$newdeplibs ++ fi ++ # Time to change all our "foo.ltframework" stuff back to "-framework foo" ++ case $host in ++ *-*-darwin*) ++ newdeplibs=`$ECHO "X $newdeplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` ++ new_inherited_linker_flags=`$ECHO "X $new_inherited_linker_flags" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` ++ deplibs=`$ECHO "X $deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` ++ ;; ++ esac ++ ++ # move library search paths that coincide with paths to not yet ++ # installed libraries to the beginning of the library search list ++ new_libs= ++ for path in $notinst_path; do ++ case " $new_libs " in ++ *" -L$path/$objdir "*) ;; ++ *) ++ case " $deplibs " in ++ *" -L$path/$objdir "*) ++ new_libs="$new_libs -L$path/$objdir" ;; ++ esac ++ ;; ++ esac ++ done ++ for deplib in $deplibs; do ++ case $deplib in ++ -L*) ++ case " $new_libs " in ++ *" $deplib "*) ;; ++ *) new_libs="$new_libs $deplib" ;; ++ esac ++ ;; ++ *) new_libs="$new_libs $deplib" ;; ++ esac ++ done ++ deplibs="$new_libs" ++ ++ # All the library-specific variables (install_libdir is set above). ++ library_names= ++ old_library= ++ dlname= ++ ++ # Test again, we may have decided not to build it any more ++ if test "$build_libtool_libs" = yes; then ++ if test "$hardcode_into_libs" = yes; then ++ # Hardcode the library paths ++ hardcode_libdirs= ++ dep_rpath= ++ rpath="$finalize_rpath" ++ test "$mode" != relink && rpath="$compile_rpath$rpath" ++ for libdir in $rpath; do ++ if test -n "$hardcode_libdir_flag_spec"; then ++ if test -n "$hardcode_libdir_separator"; then ++ if test -z "$hardcode_libdirs"; then ++ hardcode_libdirs="$libdir" ++ else ++ # Just accumulate the unique libdirs. ++ case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in ++ *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ++ ;; ++ *) ++ hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" ++ ;; ++ esac ++ fi ++ else ++ eval flag=\"$hardcode_libdir_flag_spec\" ++ dep_rpath="$dep_rpath $flag" ++ fi ++ elif test -n "$runpath_var"; then ++ case "$perm_rpath " in ++ *" $libdir "*) ;; ++ *) perm_rpath="$perm_rpath $libdir" ;; ++ esac ++ fi ++ done ++ # Substitute the hardcoded libdirs into the rpath. ++ if test -n "$hardcode_libdir_separator" && ++ test -n "$hardcode_libdirs"; then ++ libdir="$hardcode_libdirs" ++ if test -n "$hardcode_libdir_flag_spec_ld"; then ++ eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\" ++ else ++ eval dep_rpath=\"$hardcode_libdir_flag_spec\" ++ fi ++ fi ++ if test -n "$runpath_var" && test -n "$perm_rpath"; then ++ # We should set the runpath_var. ++ rpath= ++ for dir in $perm_rpath; do ++ rpath="$rpath$dir:" ++ done ++ eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var" ++ fi ++ test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs" ++ fi ++ ++ shlibpath="$finalize_shlibpath" ++ test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath" ++ if test -n "$shlibpath"; then ++ eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var" ++ fi ++ ++ # Get the real and link names of the library. ++ eval shared_ext=\"$shrext_cmds\" ++ eval library_names=\"$library_names_spec\" ++ set dummy $library_names ++ shift ++ realname="$1" ++ shift ++ ++ if test -n "$soname_spec"; then ++ eval soname=\"$soname_spec\" ++ else ++ soname="$realname" ++ fi ++ if test -z "$dlname"; then ++ dlname=$soname ++ fi ++ ++ lib="$output_objdir/$realname" ++ linknames= ++ for link ++ do ++ linknames="$linknames $link" ++ done ++ ++ # Use standard objects if they are pic ++ test -z "$pic_flag" && libobjs=`$ECHO "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` ++ test "X$libobjs" = "X " && libobjs= ++ ++ delfiles= ++ if test -n "$export_symbols" && test -n "$include_expsyms"; then ++ $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp" ++ export_symbols="$output_objdir/$libname.uexp" ++ delfiles="$delfiles $export_symbols" ++ fi ++ ++ orig_export_symbols= ++ case $host_os in ++ cygwin* | mingw* | cegcc*) ++ if test -n "$export_symbols" && test -z "$export_symbols_regex"; then ++ # exporting using user supplied symfile ++ if test "x`$SED 1q $export_symbols`" != xEXPORTS; then ++ # and it's NOT already a .def file. Must figure out ++ # which of the given symbols are data symbols and tag ++ # them as such. So, trigger use of export_symbols_cmds. ++ # export_symbols gets reassigned inside the "prepare ++ # the list of exported symbols" if statement, so the ++ # include_expsyms logic still works. ++ orig_export_symbols="$export_symbols" ++ export_symbols= ++ always_export_symbols=yes ++ fi ++ fi ++ ;; ++ esac ++ ++ # Prepare the list of exported symbols ++ if test -z "$export_symbols"; then ++ if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then ++ func_verbose "generating symbol list for \`$libname.la'" ++ export_symbols="$output_objdir/$libname.exp" ++ $opt_dry_run || $RM $export_symbols ++ cmds=$export_symbols_cmds ++ save_ifs="$IFS"; IFS='~' ++ for cmd in $cmds; do ++ IFS="$save_ifs" ++ eval cmd=\"$cmd\" ++ func_len " $cmd" ++ len=$func_len_result ++ if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then ++ func_show_eval "$cmd" 'exit $?' ++ skipped_export=false ++ else ++ # The command line is too long to execute in one step. ++ func_verbose "using reloadable object file for export list..." ++ skipped_export=: ++ # Break out early, otherwise skipped_export may be ++ # set to false by a later but shorter cmd. ++ break ++ fi ++ done ++ IFS="$save_ifs" ++ if test -n "$export_symbols_regex" && test "X$skipped_export" != "X:"; then ++ func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' ++ func_show_eval '$MV "${export_symbols}T" "$export_symbols"' ++ fi ++ fi ++ fi ++ ++ if test -n "$export_symbols" && test -n "$include_expsyms"; then ++ tmp_export_symbols="$export_symbols" ++ test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" ++ $opt_dry_run || eval '$ECHO "X$include_expsyms" | $Xsed | $SP2NL >> "$tmp_export_symbols"' ++ fi ++ ++ if test "X$skipped_export" != "X:" && test -n "$orig_export_symbols"; then ++ # The given exports_symbols file has to be filtered, so filter it. ++ func_verbose "filter symbol list for \`$libname.la' to tag DATA exports" ++ # FIXME: $output_objdir/$libname.filter potentially contains lots of ++ # 's' commands which not all seds can handle. GNU sed should be fine ++ # though. Also, the filter scales superlinearly with the number of ++ # global variables. join(1) would be nice here, but unfortunately ++ # isn't a blessed tool. ++ $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter ++ delfiles="$delfiles $export_symbols $output_objdir/$libname.filter" ++ export_symbols=$output_objdir/$libname.def ++ $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols ++ fi ++ ++ tmp_deplibs= ++ for test_deplib in $deplibs; do ++ case " $convenience " in ++ *" $test_deplib "*) ;; ++ *) ++ tmp_deplibs="$tmp_deplibs $test_deplib" ++ ;; ++ esac ++ done ++ deplibs="$tmp_deplibs" ++ ++ if test -n "$convenience"; then ++ if test -n "$whole_archive_flag_spec" && ++ test "$compiler_needs_object" = yes && ++ test -z "$libobjs"; then ++ # extract the archives, so we have objects to list. ++ # TODO: could optimize this to just extract one archive. ++ whole_archive_flag_spec= ++ fi ++ if test -n "$whole_archive_flag_spec"; then ++ save_libobjs=$libobjs ++ eval libobjs=\"\$libobjs $whole_archive_flag_spec\" ++ test "X$libobjs" = "X " && libobjs= ++ else ++ gentop="$output_objdir/${outputname}x" ++ generated="$generated $gentop" ++ ++ func_extract_archives $gentop $convenience ++ libobjs="$libobjs $func_extract_archives_result" ++ test "X$libobjs" = "X " && libobjs= ++ fi ++ fi ++ ++ if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then ++ eval flag=\"$thread_safe_flag_spec\" ++ linker_flags="$linker_flags $flag" ++ fi ++ ++ # Make a backup of the uninstalled library when relinking ++ if test "$mode" = relink; then ++ $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $? ++ fi ++ ++ # Do each of the archive commands. ++ if test "$module" = yes && test -n "$module_cmds" ; then ++ if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then ++ eval test_cmds=\"$module_expsym_cmds\" ++ cmds=$module_expsym_cmds ++ else ++ eval test_cmds=\"$module_cmds\" ++ cmds=$module_cmds ++ fi ++ else ++ if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then ++ eval test_cmds=\"$archive_expsym_cmds\" ++ cmds=$archive_expsym_cmds ++ else ++ eval test_cmds=\"$archive_cmds\" ++ cmds=$archive_cmds ++ fi ++ fi ++ ++ if test "X$skipped_export" != "X:" && ++ func_len " $test_cmds" && ++ len=$func_len_result && ++ test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then ++ : ++ else ++ # The command line is too long to link in one step, link piecewise ++ # or, if using GNU ld and skipped_export is not :, use a linker ++ # script. ++ ++ # Save the value of $output and $libobjs because we want to ++ # use them later. If we have whole_archive_flag_spec, we ++ # want to use save_libobjs as it was before ++ # whole_archive_flag_spec was expanded, because we can't ++ # assume the linker understands whole_archive_flag_spec. ++ # This may have to be revisited, in case too many ++ # convenience libraries get linked in and end up exceeding ++ # the spec. ++ if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then ++ save_libobjs=$libobjs ++ fi ++ save_output=$output ++ output_la=`$ECHO "X$output" | $Xsed -e "$basename"` ++ ++ # Clear the reloadable object creation command queue and ++ # initialize k to one. ++ test_cmds= ++ concat_cmds= ++ objlist= ++ last_robj= ++ k=1 ++ ++ if test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "$with_gnu_ld" = yes; then ++ output=${output_objdir}/${output_la}.lnkscript ++ func_verbose "creating GNU ld script: $output" ++ $ECHO 'INPUT (' > $output ++ for obj in $save_libobjs ++ do ++ $ECHO "$obj" >> $output ++ done ++ $ECHO ')' >> $output ++ delfiles="$delfiles $output" ++ elif test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "X$file_list_spec" != X; then ++ output=${output_objdir}/${output_la}.lnk ++ func_verbose "creating linker input file list: $output" ++ : > $output ++ set x $save_libobjs ++ shift ++ firstobj= ++ if test "$compiler_needs_object" = yes; then ++ firstobj="$1 " ++ shift ++ fi ++ for obj ++ do ++ $ECHO "$obj" >> $output ++ done ++ delfiles="$delfiles $output" ++ output=$firstobj\"$file_list_spec$output\" ++ else ++ if test -n "$save_libobjs"; then ++ func_verbose "creating reloadable object files..." ++ output=$output_objdir/$output_la-${k}.$objext ++ eval test_cmds=\"$reload_cmds\" ++ func_len " $test_cmds" ++ len0=$func_len_result ++ len=$len0 ++ ++ # Loop over the list of objects to be linked. ++ for obj in $save_libobjs ++ do ++ func_len " $obj" ++ func_arith $len + $func_len_result ++ len=$func_arith_result ++ if test "X$objlist" = X || ++ test "$len" -lt "$max_cmd_len"; then ++ func_append objlist " $obj" ++ else ++ # The command $test_cmds is almost too long, add a ++ # command to the queue. ++ if test "$k" -eq 1 ; then ++ # The first file doesn't have a previous command to add. ++ eval concat_cmds=\"$reload_cmds $objlist $last_robj\" ++ else ++ # All subsequent reloadable object files will link in ++ # the last one created. ++ eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj~\$RM $last_robj\" ++ fi ++ last_robj=$output_objdir/$output_la-${k}.$objext ++ func_arith $k + 1 ++ k=$func_arith_result ++ output=$output_objdir/$output_la-${k}.$objext ++ objlist=$obj ++ func_len " $last_robj" ++ func_arith $len0 + $func_len_result ++ len=$func_arith_result ++ fi ++ done ++ # Handle the remaining objects by creating one last ++ # reloadable object file. All subsequent reloadable object ++ # files will link in the last one created. ++ test -z "$concat_cmds" || concat_cmds=$concat_cmds~ ++ eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\" ++ if test -n "$last_robj"; then ++ eval concat_cmds=\"\${concat_cmds}~\$RM $last_robj\" ++ fi ++ delfiles="$delfiles $output" ++ ++ else ++ output= ++ fi ++ ++ if ${skipped_export-false}; then ++ func_verbose "generating symbol list for \`$libname.la'" ++ export_symbols="$output_objdir/$libname.exp" ++ $opt_dry_run || $RM $export_symbols ++ libobjs=$output ++ # Append the command to create the export file. ++ test -z "$concat_cmds" || concat_cmds=$concat_cmds~ ++ eval concat_cmds=\"\$concat_cmds$export_symbols_cmds\" ++ if test -n "$last_robj"; then ++ eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\" ++ fi ++ fi ++ ++ test -n "$save_libobjs" && ++ func_verbose "creating a temporary reloadable object file: $output" ++ ++ # Loop through the commands generated above and execute them. ++ save_ifs="$IFS"; IFS='~' ++ for cmd in $concat_cmds; do ++ IFS="$save_ifs" ++ $opt_silent || { ++ func_quote_for_expand "$cmd" ++ eval "func_echo $func_quote_for_expand_result" ++ } ++ $opt_dry_run || eval "$cmd" || { ++ lt_exit=$? ++ ++ # Restore the uninstalled library and exit ++ if test "$mode" = relink; then ++ ( cd "$output_objdir" && \ ++ $RM "${realname}T" && \ ++ $MV "${realname}U" "$realname" ) ++ fi ++ ++ exit $lt_exit ++ } ++ done ++ IFS="$save_ifs" ++ ++ if test -n "$export_symbols_regex" && ${skipped_export-false}; then ++ func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' ++ func_show_eval '$MV "${export_symbols}T" "$export_symbols"' ++ fi ++ fi ++ ++ if ${skipped_export-false}; then ++ if test -n "$export_symbols" && test -n "$include_expsyms"; then ++ tmp_export_symbols="$export_symbols" ++ test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" ++ $opt_dry_run || eval '$ECHO "X$include_expsyms" | $Xsed | $SP2NL >> "$tmp_export_symbols"' ++ fi ++ ++ if test -n "$orig_export_symbols"; then ++ # The given exports_symbols file has to be filtered, so filter it. ++ func_verbose "filter symbol list for \`$libname.la' to tag DATA exports" ++ # FIXME: $output_objdir/$libname.filter potentially contains lots of ++ # 's' commands which not all seds can handle. GNU sed should be fine ++ # though. Also, the filter scales superlinearly with the number of ++ # global variables. join(1) would be nice here, but unfortunately ++ # isn't a blessed tool. ++ $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter ++ delfiles="$delfiles $export_symbols $output_objdir/$libname.filter" ++ export_symbols=$output_objdir/$libname.def ++ $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols ++ fi ++ fi ++ ++ libobjs=$output ++ # Restore the value of output. ++ output=$save_output ++ ++ if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then ++ eval libobjs=\"\$libobjs $whole_archive_flag_spec\" ++ test "X$libobjs" = "X " && libobjs= ++ fi ++ # Expand the library linking commands again to reset the ++ # value of $libobjs for piecewise linking. ++ ++ # Do each of the archive commands. ++ if test "$module" = yes && test -n "$module_cmds" ; then ++ if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then ++ cmds=$module_expsym_cmds ++ else ++ cmds=$module_cmds ++ fi ++ else ++ if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then ++ cmds=$archive_expsym_cmds ++ else ++ cmds=$archive_cmds ++ fi ++ fi ++ fi ++ ++ if test -n "$delfiles"; then ++ # Append the command to remove temporary files to $cmds. ++ eval cmds=\"\$cmds~\$RM $delfiles\" ++ fi ++ ++ # Add any objects from preloaded convenience libraries ++ if test -n "$dlprefiles"; then ++ gentop="$output_objdir/${outputname}x" ++ generated="$generated $gentop" ++ ++ func_extract_archives $gentop $dlprefiles ++ libobjs="$libobjs $func_extract_archives_result" ++ test "X$libobjs" = "X " && libobjs= ++ fi ++ ++ save_ifs="$IFS"; IFS='~' ++ for cmd in $cmds; do ++ IFS="$save_ifs" ++ eval cmd=\"$cmd\" ++ $opt_silent || { ++ func_quote_for_expand "$cmd" ++ eval "func_echo $func_quote_for_expand_result" ++ } ++ $opt_dry_run || eval "$cmd" || { ++ lt_exit=$? ++ ++ # Restore the uninstalled library and exit ++ if test "$mode" = relink; then ++ ( cd "$output_objdir" && \ ++ $RM "${realname}T" && \ ++ $MV "${realname}U" "$realname" ) ++ fi ++ ++ exit $lt_exit ++ } ++ done ++ IFS="$save_ifs" ++ ++ # Restore the uninstalled library and exit ++ if test "$mode" = relink; then ++ $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $? ++ ++ if test -n "$convenience"; then ++ if test -z "$whole_archive_flag_spec"; then ++ func_show_eval '${RM}r "$gentop"' ++ fi ++ fi ++ ++ exit $EXIT_SUCCESS ++ fi ++ ++ # Create links to the real library. ++ for linkname in $linknames; do ++ if test "$realname" != "$linkname"; then ++ func_show_eval '(cd "$output_objdir" && $RM "$linkname" && $LN_S "$realname" "$linkname")' 'exit $?' ++ fi ++ done ++ ++ # If -module or -export-dynamic was specified, set the dlname. ++ if test "$module" = yes || test "$export_dynamic" = yes; then ++ # On all known operating systems, these are identical. ++ dlname="$soname" ++ fi ++ fi ++ ;; ++ ++ obj) ++ if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then ++ func_warning "\`-dlopen' is ignored for objects" ++ fi ++ ++ case " $deplibs" in ++ *\ -l* | *\ -L*) ++ func_warning "\`-l' and \`-L' are ignored for objects" ;; ++ esac ++ ++ test -n "$rpath" && \ ++ func_warning "\`-rpath' is ignored for objects" ++ ++ test -n "$xrpath" && \ ++ func_warning "\`-R' is ignored for objects" ++ ++ test -n "$vinfo" && \ ++ func_warning "\`-version-info' is ignored for objects" ++ ++ test -n "$release" && \ ++ func_warning "\`-release' is ignored for objects" ++ ++ case $output in ++ *.lo) ++ test -n "$objs$old_deplibs" && \ ++ func_fatal_error "cannot build library object \`$output' from non-libtool objects" ++ ++ libobj=$output ++ func_lo2o "$libobj" ++ obj=$func_lo2o_result ++ ;; ++ *) ++ libobj= ++ obj="$output" ++ ;; ++ esac ++ ++ # Delete the old objects. ++ $opt_dry_run || $RM $obj $libobj ++ ++ # Objects from convenience libraries. This assumes ++ # single-version convenience libraries. Whenever we create ++ # different ones for PIC/non-PIC, this we'll have to duplicate ++ # the extraction. ++ reload_conv_objs= ++ gentop= ++ # reload_cmds runs $LD directly, so let us get rid of ++ # -Wl from whole_archive_flag_spec and hope we can get by with ++ # turning comma into space.. ++ wl= ++ ++ if test -n "$convenience"; then ++ if test -n "$whole_archive_flag_spec"; then ++ eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\" ++ reload_conv_objs=$reload_objs\ `$ECHO "X$tmp_whole_archive_flags" | $Xsed -e 's|,| |g'` ++ else ++ gentop="$output_objdir/${obj}x" ++ generated="$generated $gentop" ++ ++ func_extract_archives $gentop $convenience ++ reload_conv_objs="$reload_objs $func_extract_archives_result" ++ fi ++ fi ++ ++ # Create the old-style object. ++ reload_objs="$objs$old_deplibs "`$ECHO "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test ++ ++ output="$obj" ++ func_execute_cmds "$reload_cmds" 'exit $?' ++ ++ # Exit if we aren't doing a library object file. ++ if test -z "$libobj"; then ++ if test -n "$gentop"; then ++ func_show_eval '${RM}r "$gentop"' ++ fi ++ ++ exit $EXIT_SUCCESS ++ fi ++ ++ if test "$build_libtool_libs" != yes; then ++ if test -n "$gentop"; then ++ func_show_eval '${RM}r "$gentop"' ++ fi ++ ++ # Create an invalid libtool object if no PIC, so that we don't ++ # accidentally link it into a program. ++ # $show "echo timestamp > $libobj" ++ # $opt_dry_run || eval "echo timestamp > $libobj" || exit $? ++ exit $EXIT_SUCCESS ++ fi ++ ++ if test -n "$pic_flag" || test "$pic_mode" != default; then ++ # Only do commands if we really have different PIC objects. ++ reload_objs="$libobjs $reload_conv_objs" ++ output="$libobj" ++ func_execute_cmds "$reload_cmds" 'exit $?' ++ fi ++ ++ if test -n "$gentop"; then ++ func_show_eval '${RM}r "$gentop"' ++ fi ++ ++ exit $EXIT_SUCCESS ++ ;; ++ ++ prog) ++ case $host in ++ *cygwin*) func_stripname '' '.exe' "$output" ++ output=$func_stripname_result.exe;; ++ esac ++ test -n "$vinfo" && \ ++ func_warning "\`-version-info' is ignored for programs" ++ ++ test -n "$release" && \ ++ func_warning "\`-release' is ignored for programs" ++ ++ test "$preload" = yes \ ++ && test "$dlopen_support" = unknown \ ++ && test "$dlopen_self" = unknown \ ++ && test "$dlopen_self_static" = unknown && \ ++ func_warning "\`LT_INIT([dlopen])' not used. Assuming no dlopen support." ++ ++ case $host in ++ *-*-rhapsody* | *-*-darwin1.[012]) ++ # On Rhapsody replace the C library is the System framework ++ compile_deplibs=`$ECHO "X $compile_deplibs" | $Xsed -e 's/ -lc / System.ltframework /'` ++ finalize_deplibs=`$ECHO "X $finalize_deplibs" | $Xsed -e 's/ -lc / System.ltframework /'` ++ ;; ++ esac ++ ++ case $host in ++ *-*-darwin*) ++ # Don't allow lazy linking, it breaks C++ global constructors ++ # But is supposedly fixed on 10.4 or later (yay!). ++ if test "$tagname" = CXX ; then ++ case ${MACOSX_DEPLOYMENT_TARGET-10.0} in ++ 10.[0123]) ++ compile_command="$compile_command ${wl}-bind_at_load" ++ finalize_command="$finalize_command ${wl}-bind_at_load" ++ ;; ++ esac ++ fi ++ # Time to change all our "foo.ltframework" stuff back to "-framework foo" ++ compile_deplibs=`$ECHO "X $compile_deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` ++ finalize_deplibs=`$ECHO "X $finalize_deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` ++ ;; ++ esac ++ ++ ++ # move library search paths that coincide with paths to not yet ++ # installed libraries to the beginning of the library search list ++ new_libs= ++ for path in $notinst_path; do ++ case " $new_libs " in ++ *" -L$path/$objdir "*) ;; ++ *) ++ case " $compile_deplibs " in ++ *" -L$path/$objdir "*) ++ new_libs="$new_libs -L$path/$objdir" ;; ++ esac ++ ;; ++ esac ++ done ++ for deplib in $compile_deplibs; do ++ case $deplib in ++ -L*) ++ case " $new_libs " in ++ *" $deplib "*) ;; ++ *) new_libs="$new_libs $deplib" ;; ++ esac ++ ;; ++ *) new_libs="$new_libs $deplib" ;; ++ esac ++ done ++ compile_deplibs="$new_libs" ++ ++ ++ compile_command="$compile_command $compile_deplibs" ++ finalize_command="$finalize_command $finalize_deplibs" ++ ++ if test -n "$rpath$xrpath"; then ++ # If the user specified any rpath flags, then add them. ++ for libdir in $rpath $xrpath; do ++ # This is the magic to use -rpath. ++ case "$finalize_rpath " in ++ *" $libdir "*) ;; ++ *) finalize_rpath="$finalize_rpath $libdir" ;; ++ esac ++ done ++ fi ++ ++ # Now hardcode the library paths ++ rpath= ++ hardcode_libdirs= ++ for libdir in $compile_rpath $finalize_rpath; do ++ if test -n "$hardcode_libdir_flag_spec"; then ++ if test -n "$hardcode_libdir_separator"; then ++ if test -z "$hardcode_libdirs"; then ++ hardcode_libdirs="$libdir" ++ else ++ # Just accumulate the unique libdirs. ++ case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in ++ *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ++ ;; ++ *) ++ hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" ++ ;; ++ esac ++ fi ++ else ++ eval flag=\"$hardcode_libdir_flag_spec\" ++ rpath="$rpath $flag" ++ fi ++ elif test -n "$runpath_var"; then ++ case "$perm_rpath " in ++ *" $libdir "*) ;; ++ *) perm_rpath="$perm_rpath $libdir" ;; ++ esac ++ fi ++ case $host in ++ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) ++ testbindir=`${ECHO} "$libdir" | ${SED} -e 's*/lib$*/bin*'` ++ case :$dllsearchpath: in ++ *":$libdir:"*) ;; ++ ::) dllsearchpath=$libdir;; ++ *) dllsearchpath="$dllsearchpath:$libdir";; ++ esac ++ case :$dllsearchpath: in ++ *":$testbindir:"*) ;; ++ ::) dllsearchpath=$testbindir;; ++ *) dllsearchpath="$dllsearchpath:$testbindir";; ++ esac ++ ;; ++ esac ++ done ++ # Substitute the hardcoded libdirs into the rpath. ++ if test -n "$hardcode_libdir_separator" && ++ test -n "$hardcode_libdirs"; then ++ libdir="$hardcode_libdirs" ++ eval rpath=\" $hardcode_libdir_flag_spec\" ++ fi ++ compile_rpath="$rpath" ++ ++ rpath= ++ hardcode_libdirs= ++ for libdir in $finalize_rpath; do ++ if test -n "$hardcode_libdir_flag_spec"; then ++ if test -n "$hardcode_libdir_separator"; then ++ if test -z "$hardcode_libdirs"; then ++ hardcode_libdirs="$libdir" ++ else ++ # Just accumulate the unique libdirs. ++ case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in ++ *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ++ ;; ++ *) ++ hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" ++ ;; ++ esac ++ fi ++ else ++ eval flag=\"$hardcode_libdir_flag_spec\" ++ rpath="$rpath $flag" ++ fi ++ elif test -n "$runpath_var"; then ++ case "$finalize_perm_rpath " in ++ *" $libdir "*) ;; ++ *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;; ++ esac ++ fi ++ done ++ # Substitute the hardcoded libdirs into the rpath. ++ if test -n "$hardcode_libdir_separator" && ++ test -n "$hardcode_libdirs"; then ++ libdir="$hardcode_libdirs" ++ eval rpath=\" $hardcode_libdir_flag_spec\" ++ fi ++ finalize_rpath="$rpath" ++ ++ if test -n "$libobjs" && test "$build_old_libs" = yes; then ++ # Transform all the library objects into standard objects. ++ compile_command=`$ECHO "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` ++ finalize_command=`$ECHO "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` ++ fi ++ ++ func_generate_dlsyms "$outputname" "@PROGRAM@" "no" ++ ++ # template prelinking step ++ if test -n "$prelink_cmds"; then ++ func_execute_cmds "$prelink_cmds" 'exit $?' ++ fi ++ ++ wrappers_required=yes ++ case $host in ++ *cygwin* | *mingw* ) ++ if test "$build_libtool_libs" != yes; then ++ wrappers_required=no ++ fi ++ ;; ++ *cegcc) ++ # Disable wrappers for cegcc, we are cross compiling anyway. ++ wrappers_required=no ++ ;; ++ *) ++ if test "$need_relink" = no || test "$build_libtool_libs" != yes; then ++ wrappers_required=no ++ fi ++ ;; ++ esac ++ if test "$wrappers_required" = no; then ++ # Replace the output file specification. ++ compile_command=`$ECHO "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` ++ link_command="$compile_command$compile_rpath" ++ ++ # We have no uninstalled library dependencies, so finalize right now. ++ exit_status=0 ++ func_show_eval "$link_command" 'exit_status=$?' ++ ++ # Delete the generated files. ++ if test -f "$output_objdir/${outputname}S.${objext}"; then ++ func_show_eval '$RM "$output_objdir/${outputname}S.${objext}"' ++ fi ++ ++ exit $exit_status ++ fi ++ ++ if test -n "$compile_shlibpath$finalize_shlibpath"; then ++ compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command" ++ fi ++ if test -n "$finalize_shlibpath"; then ++ finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command" ++ fi ++ ++ compile_var= ++ finalize_var= ++ if test -n "$runpath_var"; then ++ if test -n "$perm_rpath"; then ++ # We should set the runpath_var. ++ rpath= ++ for dir in $perm_rpath; do ++ rpath="$rpath$dir:" ++ done ++ compile_var="$runpath_var=\"$rpath\$$runpath_var\" " ++ fi ++ if test -n "$finalize_perm_rpath"; then ++ # We should set the runpath_var. ++ rpath= ++ for dir in $finalize_perm_rpath; do ++ rpath="$rpath$dir:" ++ done ++ finalize_var="$runpath_var=\"$rpath\$$runpath_var\" " ++ fi ++ fi ++ ++ if test "$no_install" = yes; then ++ # We don't need to create a wrapper script. ++ link_command="$compile_var$compile_command$compile_rpath" ++ # Replace the output file specification. ++ link_command=`$ECHO "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` ++ # Delete the old output file. ++ $opt_dry_run || $RM $output ++ # Link the executable and exit ++ func_show_eval "$link_command" 'exit $?' ++ exit $EXIT_SUCCESS ++ fi ++ ++ if test "$hardcode_action" = relink; then ++ # Fast installation is not supported ++ link_command="$compile_var$compile_command$compile_rpath" ++ relink_command="$finalize_var$finalize_command$finalize_rpath" ++ ++ func_warning "this platform does not like uninstalled shared libraries" ++ func_warning "\`$output' will be relinked during installation" ++ else ++ if test "$fast_install" != no; then ++ link_command="$finalize_var$compile_command$finalize_rpath" ++ if test "$fast_install" = yes; then ++ relink_command=`$ECHO "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'` ++ else ++ # fast_install is set to needless ++ relink_command= ++ fi ++ else ++ link_command="$compile_var$compile_command$compile_rpath" ++ relink_command="$finalize_var$finalize_command$finalize_rpath" ++ fi ++ fi ++ ++ # Replace the output file specification. ++ link_command=`$ECHO "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` ++ ++ # Delete the old output files. ++ $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname ++ ++ func_show_eval "$link_command" 'exit $?' ++ ++ # Now create the wrapper script. ++ func_verbose "creating $output" ++ ++ # Quote the relink command for shipping. ++ if test -n "$relink_command"; then ++ # Preserve any variables that may affect compiler behavior ++ for var in $variables_saved_for_relink; do ++ if eval test -z \"\${$var+set}\"; then ++ relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" ++ elif eval var_value=\$$var; test -z "$var_value"; then ++ relink_command="$var=; export $var; $relink_command" ++ else ++ func_quote_for_eval "$var_value" ++ relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" ++ fi ++ done ++ relink_command="(cd `pwd`; $relink_command)" ++ relink_command=`$ECHO "X$relink_command" | $Xsed -e "$sed_quote_subst"` ++ fi ++ ++ # Quote $ECHO for shipping. ++ if test "X$ECHO" = "X$SHELL $progpath --fallback-echo"; then ++ case $progpath in ++ [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $progpath --fallback-echo";; ++ *) qecho="$SHELL `pwd`/$progpath --fallback-echo";; ++ esac ++ qecho=`$ECHO "X$qecho" | $Xsed -e "$sed_quote_subst"` ++ else ++ qecho=`$ECHO "X$ECHO" | $Xsed -e "$sed_quote_subst"` ++ fi ++ ++ # Only actually do things if not in dry run mode. ++ $opt_dry_run || { ++ # win32 will think the script is a binary if it has ++ # a .exe suffix, so we strip it off here. ++ case $output in ++ *.exe) func_stripname '' '.exe' "$output" ++ output=$func_stripname_result ;; ++ esac ++ # test for cygwin because mv fails w/o .exe extensions ++ case $host in ++ *cygwin*) ++ exeext=.exe ++ func_stripname '' '.exe' "$outputname" ++ outputname=$func_stripname_result ;; ++ *) exeext= ;; ++ esac ++ case $host in ++ *cygwin* | *mingw* ) ++ func_dirname_and_basename "$output" "" "." ++ output_name=$func_basename_result ++ output_path=$func_dirname_result ++ cwrappersource="$output_path/$objdir/lt-$output_name.c" ++ cwrapper="$output_path/$output_name.exe" ++ $RM $cwrappersource $cwrapper ++ trap "$RM $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15 ++ ++ func_emit_cwrapperexe_src > $cwrappersource ++ ++ # The wrapper executable is built using the $host compiler, ++ # because it contains $host paths and files. If cross- ++ # compiling, it, like the target executable, must be ++ # executed on the $host or under an emulation environment. ++ $opt_dry_run || { ++ $LTCC $LTCFLAGS -o $cwrapper $cwrappersource ++ $STRIP $cwrapper ++ } ++ ++ # Now, create the wrapper script for func_source use: ++ func_ltwrapper_scriptname $cwrapper ++ $RM $func_ltwrapper_scriptname_result ++ trap "$RM $func_ltwrapper_scriptname_result; exit $EXIT_FAILURE" 1 2 15 ++ $opt_dry_run || { ++ # note: this script will not be executed, so do not chmod. ++ if test "x$build" = "x$host" ; then ++ $cwrapper --lt-dump-script > $func_ltwrapper_scriptname_result ++ else ++ func_emit_wrapper no > $func_ltwrapper_scriptname_result ++ fi ++ } ++ ;; ++ * ) ++ $RM $output ++ trap "$RM $output; exit $EXIT_FAILURE" 1 2 15 ++ ++ func_emit_wrapper no > $output ++ chmod +x $output ++ ;; ++ esac ++ } ++ exit $EXIT_SUCCESS ++ ;; ++ esac ++ ++ # See if we need to build an old-fashioned archive. ++ for oldlib in $oldlibs; do ++ ++ if test "$build_libtool_libs" = convenience; then ++ oldobjs="$libobjs_save $symfileobj" ++ addlibs="$convenience" ++ build_libtool_libs=no ++ else ++ if test "$build_libtool_libs" = module; then ++ oldobjs="$libobjs_save" ++ build_libtool_libs=no ++ else ++ oldobjs="$old_deplibs $non_pic_objects" ++ if test "$preload" = yes && test -f "$symfileobj"; then ++ oldobjs="$oldobjs $symfileobj" ++ fi ++ fi ++ addlibs="$old_convenience" ++ fi ++ ++ if test -n "$addlibs"; then ++ gentop="$output_objdir/${outputname}x" ++ generated="$generated $gentop" ++ ++ func_extract_archives $gentop $addlibs ++ oldobjs="$oldobjs $func_extract_archives_result" ++ fi ++ ++ # Do each command in the archive commands. ++ if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then ++ cmds=$old_archive_from_new_cmds ++ else ++ ++ # Add any objects from preloaded convenience libraries ++ if test -n "$dlprefiles"; then ++ gentop="$output_objdir/${outputname}x" ++ generated="$generated $gentop" ++ ++ func_extract_archives $gentop $dlprefiles ++ oldobjs="$oldobjs $func_extract_archives_result" ++ fi ++ ++ # POSIX demands no paths to be encoded in archives. We have ++ # to avoid creating archives with duplicate basenames if we ++ # might have to extract them afterwards, e.g., when creating a ++ # static archive out of a convenience library, or when linking ++ # the entirety of a libtool archive into another (currently ++ # not supported by libtool). ++ if (for obj in $oldobjs ++ do ++ func_basename "$obj" ++ $ECHO "$func_basename_result" ++ done | sort | sort -uc >/dev/null 2>&1); then ++ : ++ else ++ $ECHO "copying selected object files to avoid basename conflicts..." ++ gentop="$output_objdir/${outputname}x" ++ generated="$generated $gentop" ++ func_mkdir_p "$gentop" ++ save_oldobjs=$oldobjs ++ oldobjs= ++ counter=1 ++ for obj in $save_oldobjs ++ do ++ func_basename "$obj" ++ objbase="$func_basename_result" ++ case " $oldobjs " in ++ " ") oldobjs=$obj ;; ++ *[\ /]"$objbase "*) ++ while :; do ++ # Make sure we don't pick an alternate name that also ++ # overlaps. ++ newobj=lt$counter-$objbase ++ func_arith $counter + 1 ++ counter=$func_arith_result ++ case " $oldobjs " in ++ *[\ /]"$newobj "*) ;; ++ *) if test ! -f "$gentop/$newobj"; then break; fi ;; ++ esac ++ done ++ func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj" ++ oldobjs="$oldobjs $gentop/$newobj" ++ ;; ++ *) oldobjs="$oldobjs $obj" ;; ++ esac ++ done ++ fi ++ eval cmds=\"$old_archive_cmds\" ++ ++ func_len " $cmds" ++ len=$func_len_result ++ if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then ++ cmds=$old_archive_cmds ++ else ++ # the command line is too long to link in one step, link in parts ++ func_verbose "using piecewise archive linking..." ++ save_RANLIB=$RANLIB ++ RANLIB=: ++ objlist= ++ concat_cmds= ++ save_oldobjs=$oldobjs ++ oldobjs= ++ # Is there a better way of finding the last object in the list? ++ for obj in $save_oldobjs ++ do ++ last_oldobj=$obj ++ done ++ eval test_cmds=\"$old_archive_cmds\" ++ func_len " $test_cmds" ++ len0=$func_len_result ++ len=$len0 ++ for obj in $save_oldobjs ++ do ++ func_len " $obj" ++ func_arith $len + $func_len_result ++ len=$func_arith_result ++ func_append objlist " $obj" ++ if test "$len" -lt "$max_cmd_len"; then ++ : ++ else ++ # the above command should be used before it gets too long ++ oldobjs=$objlist ++ if test "$obj" = "$last_oldobj" ; then ++ RANLIB=$save_RANLIB ++ fi ++ test -z "$concat_cmds" || concat_cmds=$concat_cmds~ ++ eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\" ++ objlist= ++ len=$len0 ++ fi ++ done ++ RANLIB=$save_RANLIB ++ oldobjs=$objlist ++ if test "X$oldobjs" = "X" ; then ++ eval cmds=\"\$concat_cmds\" ++ else ++ eval cmds=\"\$concat_cmds~\$old_archive_cmds\" ++ fi ++ fi ++ fi ++ func_execute_cmds "$cmds" 'exit $?' ++ done ++ ++ test -n "$generated" && \ ++ func_show_eval "${RM}r$generated" ++ ++ # Now create the libtool archive. ++ case $output in ++ *.la) ++ old_library= ++ test "$build_old_libs" = yes && old_library="$libname.$libext" ++ func_verbose "creating $output" ++ ++ # Preserve any variables that may affect compiler behavior ++ for var in $variables_saved_for_relink; do ++ if eval test -z \"\${$var+set}\"; then ++ relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" ++ elif eval var_value=\$$var; test -z "$var_value"; then ++ relink_command="$var=; export $var; $relink_command" ++ else ++ func_quote_for_eval "$var_value" ++ relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" ++ fi ++ done ++ # Quote the link command for shipping. ++ relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" ++ relink_command=`$ECHO "X$relink_command" | $Xsed -e "$sed_quote_subst"` ++ if test "$hardcode_automatic" = yes ; then ++ relink_command= ++ fi ++ ++ # Only create the output if not a dry run. ++ $opt_dry_run || { ++ for installed in no yes; do ++ if test "$installed" = yes; then ++ if test -z "$install_libdir"; then ++ break ++ fi ++ output="$output_objdir/$outputname"i ++ # Replace all uninstalled libtool libraries with the installed ones ++ newdependency_libs= ++ for deplib in $dependency_libs; do ++ case $deplib in ++ *.la) ++ func_basename "$deplib" ++ name="$func_basename_result" ++ eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` ++ test -z "$libdir" && \ ++ func_fatal_error "\`$deplib' is not a valid libtool archive" ++ newdependency_libs="$newdependency_libs $libdir/$name" ++ ;; ++ *) newdependency_libs="$newdependency_libs $deplib" ;; ++ esac ++ done ++ dependency_libs="$newdependency_libs" ++ newdlfiles= ++ ++ for lib in $dlfiles; do ++ case $lib in ++ *.la) ++ func_basename "$lib" ++ name="$func_basename_result" ++ eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` ++ test -z "$libdir" && \ ++ func_fatal_error "\`$lib' is not a valid libtool archive" ++ newdlfiles="$newdlfiles $libdir/$name" ++ ;; ++ *) newdlfiles="$newdlfiles $lib" ;; ++ esac ++ done ++ dlfiles="$newdlfiles" ++ newdlprefiles= ++ for lib in $dlprefiles; do ++ case $lib in ++ *.la) ++ # Only pass preopened files to the pseudo-archive (for ++ # eventual linking with the app. that links it) if we ++ # didn't already link the preopened objects directly into ++ # the library: ++ func_basename "$lib" ++ name="$func_basename_result" ++ eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` ++ test -z "$libdir" && \ ++ func_fatal_error "\`$lib' is not a valid libtool archive" ++ newdlprefiles="$newdlprefiles $libdir/$name" ++ ;; ++ esac ++ done ++ dlprefiles="$newdlprefiles" ++ else ++ newdlfiles= ++ for lib in $dlfiles; do ++ case $lib in ++ [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; ++ *) abs=`pwd`"/$lib" ;; ++ esac ++ newdlfiles="$newdlfiles $abs" ++ done ++ dlfiles="$newdlfiles" ++ newdlprefiles= ++ for lib in $dlprefiles; do ++ case $lib in ++ [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; ++ *) abs=`pwd`"/$lib" ;; ++ esac ++ newdlprefiles="$newdlprefiles $abs" ++ done ++ dlprefiles="$newdlprefiles" ++ fi ++ $RM $output ++ # place dlname in correct position for cygwin ++ tdlname=$dlname ++ case $host,$output,$installed,$module,$dlname in ++ *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;; ++ esac ++ $ECHO > $output "\ ++# $outputname - a libtool library file ++# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION ++# ++# Please DO NOT delete this file! ++# It is necessary for linking the library. ++ ++# The name that we can dlopen(3). ++dlname='$tdlname' ++ ++# Names of this library. ++library_names='$library_names' ++ ++# The name of the static archive. ++old_library='$old_library' ++ ++# Linker flags that can not go in dependency_libs. ++inherited_linker_flags='$new_inherited_linker_flags' ++ ++# Libraries that this one depends upon. ++dependency_libs='$dependency_libs' ++ ++# Names of additional weak libraries provided by this library ++weak_library_names='$weak_libs' ++ ++# Version information for $libname. ++current=$current ++age=$age ++revision=$revision ++ ++# Is this an already installed library? ++installed=$installed ++ ++# Should we warn about portability when linking against -modules? ++shouldnotlink=$module ++ ++# Files to dlopen/dlpreopen ++dlopen='$dlfiles' ++dlpreopen='$dlprefiles' ++ ++# Directory that this library needs to be installed in: ++libdir='$install_libdir'" ++ if test "$installed" = no && test "$need_relink" = yes; then ++ $ECHO >> $output "\ ++relink_command=\"$relink_command\"" ++ fi ++ done ++ } ++ ++ # Do a symbolic link so that the libtool archive can be found in ++ # LD_LIBRARY_PATH before the program is installed. ++ func_show_eval '( cd "$output_objdir" && $RM "$outputname" && $LN_S "../$outputname" "$outputname" )' 'exit $?' ++ ;; ++ esac ++ exit $EXIT_SUCCESS ++} ++ ++{ test "$mode" = link || test "$mode" = relink; } && ++ func_mode_link ${1+"$@"} ++ ++ ++# func_mode_uninstall arg... ++func_mode_uninstall () ++{ ++ $opt_debug ++ RM="$nonopt" ++ files= ++ rmforce= ++ exit_status=0 ++ ++ # This variable tells wrapper scripts just to set variables rather ++ # than running their programs. ++ libtool_install_magic="$magic" ++ ++ for arg ++ do ++ case $arg in ++ -f) RM="$RM $arg"; rmforce=yes ;; ++ -*) RM="$RM $arg" ;; ++ *) files="$files $arg" ;; ++ esac ++ done ++ ++ test -z "$RM" && \ ++ func_fatal_help "you must specify an RM program" ++ ++ rmdirs= ++ ++ origobjdir="$objdir" ++ for file in $files; do ++ func_dirname "$file" "" "." ++ dir="$func_dirname_result" ++ if test "X$dir" = X.; then ++ objdir="$origobjdir" ++ else ++ objdir="$dir/$origobjdir" ++ fi ++ func_basename "$file" ++ name="$func_basename_result" ++ test "$mode" = uninstall && objdir="$dir" ++ ++ # Remember objdir for removal later, being careful to avoid duplicates ++ if test "$mode" = clean; then ++ case " $rmdirs " in ++ *" $objdir "*) ;; ++ *) rmdirs="$rmdirs $objdir" ;; ++ esac ++ fi ++ ++ # Don't error if the file doesn't exist and rm -f was used. ++ if { test -L "$file"; } >/dev/null 2>&1 || ++ { test -h "$file"; } >/dev/null 2>&1 || ++ test -f "$file"; then ++ : ++ elif test -d "$file"; then ++ exit_status=1 ++ continue ++ elif test "$rmforce" = yes; then ++ continue ++ fi ++ ++ rmfiles="$file" ++ ++ case $name in ++ *.la) ++ # Possibly a libtool archive, so verify it. ++ if func_lalib_p "$file"; then ++ func_source $dir/$name ++ ++ # Delete the libtool libraries and symlinks. ++ for n in $library_names; do ++ rmfiles="$rmfiles $objdir/$n" ++ done ++ test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library" ++ ++ case "$mode" in ++ clean) ++ case " $library_names " in ++ # " " in the beginning catches empty $dlname ++ *" $dlname "*) ;; ++ *) rmfiles="$rmfiles $objdir/$dlname" ;; ++ esac ++ test -n "$libdir" && rmfiles="$rmfiles $objdir/$name $objdir/${name}i" ++ ;; ++ uninstall) ++ if test -n "$library_names"; then ++ # Do each command in the postuninstall commands. ++ func_execute_cmds "$postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1' ++ fi ++ ++ if test -n "$old_library"; then ++ # Do each command in the old_postuninstall commands. ++ func_execute_cmds "$old_postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1' ++ fi ++ # FIXME: should reinstall the best remaining shared library. ++ ;; ++ esac ++ fi ++ ;; ++ ++ *.lo) ++ # Possibly a libtool object, so verify it. ++ if func_lalib_p "$file"; then ++ ++ # Read the .lo file ++ func_source $dir/$name ++ ++ # Add PIC object to the list of files to remove. ++ if test -n "$pic_object" && ++ test "$pic_object" != none; then ++ rmfiles="$rmfiles $dir/$pic_object" ++ fi ++ ++ # Add non-PIC object to the list of files to remove. ++ if test -n "$non_pic_object" && ++ test "$non_pic_object" != none; then ++ rmfiles="$rmfiles $dir/$non_pic_object" ++ fi ++ fi ++ ;; ++ ++ *) ++ if test "$mode" = clean ; then ++ noexename=$name ++ case $file in ++ *.exe) ++ func_stripname '' '.exe' "$file" ++ file=$func_stripname_result ++ func_stripname '' '.exe' "$name" ++ noexename=$func_stripname_result ++ # $file with .exe has already been added to rmfiles, ++ # add $file without .exe ++ rmfiles="$rmfiles $file" ++ ;; ++ esac ++ # Do a test to see if this is a libtool program. ++ if func_ltwrapper_p "$file"; then ++ if func_ltwrapper_executable_p "$file"; then ++ func_ltwrapper_scriptname "$file" ++ relink_command= ++ func_source $func_ltwrapper_scriptname_result ++ rmfiles="$rmfiles $func_ltwrapper_scriptname_result" ++ else ++ relink_command= ++ func_source $dir/$noexename ++ fi ++ ++ # note $name still contains .exe if it was in $file originally ++ # as does the version of $file that was added into $rmfiles ++ rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}" ++ if test "$fast_install" = yes && test -n "$relink_command"; then ++ rmfiles="$rmfiles $objdir/lt-$name" ++ fi ++ if test "X$noexename" != "X$name" ; then ++ rmfiles="$rmfiles $objdir/lt-${noexename}.c" ++ fi ++ fi ++ fi ++ ;; ++ esac ++ func_show_eval "$RM $rmfiles" 'exit_status=1' ++ done ++ objdir="$origobjdir" ++ ++ # Try to remove the ${objdir}s in the directories where we deleted files ++ for dir in $rmdirs; do ++ if test -d "$dir"; then ++ func_show_eval "rmdir $dir >/dev/null 2>&1" ++ fi ++ done ++ ++ exit $exit_status ++} ++ ++{ test "$mode" = uninstall || test "$mode" = clean; } && ++ func_mode_uninstall ${1+"$@"} ++ ++test -z "$mode" && { ++ help="$generic_help" ++ func_fatal_help "you must specify a MODE" ++} ++ ++test -z "$exec_cmd" && \ ++ func_fatal_help "invalid operation mode \`$mode'" ++ ++if test -n "$exec_cmd"; then ++ eval exec "$exec_cmd" ++ exit $EXIT_FAILURE ++fi ++ ++exit $exit_status ++ ++ ++# The TAGs below are defined such that we never get into a situation ++# in which we disable both kinds of libraries. Given conflicting ++# choices, we go for a static library, that is the most portable, ++# since we can't tell whether shared libraries were disabled because ++# the user asked for that or because the platform doesn't support ++# them. This is particularly important on AIX, because we don't ++# support having both static and shared libraries enabled at the same ++# time on that platform, so we default to a shared-only configuration. ++# If a disable-shared tag is given, we'll fallback to a static-only ++# configuration. But we'll never go from static-only to shared-only. ++ ++# ### BEGIN LIBTOOL TAG CONFIG: disable-shared ++build_libtool_libs=no ++build_old_libs=yes ++# ### END LIBTOOL TAG CONFIG: disable-shared ++ ++# ### BEGIN LIBTOOL TAG CONFIG: disable-static ++build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac` ++# ### END LIBTOOL TAG CONFIG: disable-static ++ ++# Local Variables: ++# mode:shell-script ++# sh-indentation:2 ++# End: ++# vi:sw=2 ++ +diff -Naur enca-1.13/ltmain.sh enca-1.13.patch/ltmain.sh +--- enca-1.13/ltmain.sh 2010-02-09 11:23:03.000000000 +0100 ++++ enca-1.13.patch/ltmain.sh 2010-04-16 18:40:59.525444818 +0200 +@@ -65,7 +65,7 @@ + # compiler: $LTCC + # compiler flags: $LTCFLAGS + # linker: $LD (gnu? $with_gnu_ld) +-# $progname: (GNU libtool) 2.2.6b Debian-2.2.6b-2 ++# $progname: (GNU libtool) 2.2.6b + # automake: $automake_version + # autoconf: $autoconf_version + # +@@ -73,7 +73,7 @@ + + PROGRAM=ltmain.sh + PACKAGE=libtool +-VERSION="2.2.6b Debian-2.2.6b-2" ++VERSION=2.2.6b + TIMESTAMP="" + package_revision=1.3017 + +@@ -5033,10 +5033,7 @@ + case $pass in + dlopen) libs="$dlfiles" ;; + dlpreopen) libs="$dlprefiles" ;; +- link) +- libs="$deplibs %DEPLIBS%" +- test "X$link_all_deplibs" != Xno && libs="$libs $dependency_libs" +- ;; ++ link) libs="$deplibs %DEPLIBS% $dependency_libs" ;; + esac + fi + if test "$linkmode,$pass" = "lib,dlpreopen"; then +@@ -5347,19 +5344,19 @@ + # It is a libtool convenience library, so add in its objects. + convenience="$convenience $ladir/$objdir/$old_library" + old_convenience="$old_convenience $ladir/$objdir/$old_library" +- tmp_libs= +- for deplib in $dependency_libs; do +- deplibs="$deplib $deplibs" +- if $opt_duplicate_deps ; then +- case "$tmp_libs " in +- *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; +- esac +- fi +- tmp_libs="$tmp_libs $deplib" +- done + elif test "$linkmode" != prog && test "$linkmode" != lib; then + func_fatal_error "\`$lib' is not a convenience library" + fi ++ tmp_libs= ++ for deplib in $dependency_libs; do ++ deplibs="$deplib $deplibs" ++ if $opt_duplicate_deps ; then ++ case "$tmp_libs " in ++ *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; ++ esac ++ fi ++ tmp_libs="$tmp_libs $deplib" ++ done + continue + fi # $pass = conv + +@@ -5896,7 +5893,6 @@ + if test "$link_all_deplibs" != no; then + # Add the search paths of all dependency libraries + for deplib in $dependency_libs; do +- path= + case $deplib in + -L*) path="$deplib" ;; + *.la) +@@ -6210,9 +6206,6 @@ + revision="$number_minor" + lt_irix_increment=no + ;; +- *) +- func_fatal_configuration "$modename: unknown library version type \`$version_type'" +- ;; + esac + ;; + no) +diff -Naur enca-1.13/m4/libtool.m4 enca-1.13.patch/m4/libtool.m4 +--- enca-1.13/m4/libtool.m4 2010-02-09 11:23:03.000000000 +0100 ++++ enca-1.13.patch/m4/libtool.m4 2010-04-16 18:40:59.606321058 +0200 +@@ -2445,7 +2445,7 @@ + ;; + + # This must be Linux ELF. +-linux* | k*bsd*-gnu | kopensolaris*-gnu) ++linux* | k*bsd*-gnu) + version_type=linux + need_lib_prefix=no + need_version=no +@@ -2470,10 +2470,13 @@ + # before this can be enabled. + hardcode_into_libs=yes + ++ # Add ABI-specific directories to the system library path. ++ sys_lib_dlsearch_path_spec="/lib64 /usr/lib64 /lib /usr/lib" ++ + # Append ld.so.conf contents to the search path + if test -f /etc/ld.so.conf; then + lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` +- sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" ++ sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec $lt_ld_extra" + fi + + # We used to test for /lib/ld.so.1 and disable shared libraries on +@@ -2485,18 +2488,6 @@ + dynamic_linker='GNU/Linux ld.so' + ;; + +-netbsdelf*-gnu) +- version_type=linux +- need_lib_prefix=no +- need_version=no +- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' +- soname_spec='${libname}${release}${shared_ext}$major' +- shlibpath_var=LD_LIBRARY_PATH +- shlibpath_overrides_runpath=no +- hardcode_into_libs=yes +- dynamic_linker='NetBSD ld.elf_so' +- ;; +- + netbsd*) + version_type=sunos + need_lib_prefix=no +@@ -3084,11 +3075,11 @@ + ;; + + # This must be Linux ELF. +-linux* | k*bsd*-gnu | kopensolaris*-gnu) ++linux* | k*bsd*-gnu) + lt_cv_deplibs_check_method=pass_all + ;; + +-netbsd* | netbsdelf*-gnu) ++netbsd*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' + else +@@ -3705,7 +3696,7 @@ + ;; + esac + ;; +- linux* | k*bsd*-gnu | kopensolaris*-gnu) ++ linux* | k*bsd*-gnu) + case $cc_basename in + KCC*) + # KAI C++ Compiler +@@ -3769,7 +3760,7 @@ + ;; + esac + ;; +- netbsd* | netbsdelf*-gnu) ++ netbsd*) + ;; + *qnx* | *nto*) + # QNX uses GNU C++, but need to define -shared option too, otherwise +@@ -3989,7 +3980,7 @@ + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + +- linux* | k*bsd*-gnu | kopensolaris*-gnu) ++ linux* | k*bsd*-gnu) + case $cc_basename in + # old Intel for x86_64 which still supported -KPIC. + ecc*) +@@ -4194,9 +4185,6 @@ + cygwin* | mingw* | cegcc*) + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;/^.*[[ ]]__nm__/s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' + ;; +- linux* | k*bsd*-gnu) +- _LT_TAGVAR(link_all_deplibs, $1)=no +- ;; + *) + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + ;; +@@ -4261,9 +4249,6 @@ + openbsd*) + with_gnu_ld=no + ;; +- linux* | k*bsd*-gnu) +- _LT_TAGVAR(link_all_deplibs, $1)=no +- ;; + esac + + _LT_TAGVAR(ld_shlibs, $1)=yes +@@ -4285,7 +4270,6 @@ + fi + supports_anon_versioning=no + case `$LD -v 2>&1` in +- *GNU\ gold*) supports_anon_versioning=yes ;; + *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11 + *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... + *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... +@@ -4377,7 +4361,7 @@ + _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + ;; + +- gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) ++ gnu* | linux* | tpf* | k*bsd*-gnu) + tmp_diet=no + if test "$host_os" = linux-dietlibc; then + case $cc_basename in +@@ -4447,7 +4431,7 @@ + fi + ;; + +- netbsd* | netbsdelf*-gnu) ++ netbsd*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' + wlarc= +@@ -4622,7 +4606,6 @@ + if test "$aix_use_runtimelinking" = yes; then + shared_flag="$shared_flag "'${wl}-G' + fi +- _LT_TAGVAR(link_all_deplibs, $1)=no + else + # not using gcc + if test "$host_cpu" = ia64; then +@@ -4861,7 +4844,7 @@ + _LT_TAGVAR(link_all_deplibs, $1)=yes + ;; + +- netbsd* | netbsdelf*-gnu) ++ netbsd*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out + else +@@ -5861,7 +5844,7 @@ + _LT_TAGVAR(inherit_rpath, $1)=yes + ;; + +- linux* | k*bsd*-gnu | kopensolaris*-gnu) ++ linux* | k*bsd*-gnu) + case $cc_basename in + KCC*) + # Kuck and Associates, Inc. (KAI) C++ Compiler +diff -Naur enca-1.13/Makefile enca-1.13.patch/Makefile +--- enca-1.13/Makefile 1970-01-01 01:00:00.000000000 +0100 ++++ enca-1.13.patch/Makefile 2010-04-16 18:41:17.475317761 +0200 +@@ -0,0 +1,937 @@ ++# Makefile.in generated by automake 1.11.1 from Makefile.am. ++# Makefile. Generated from Makefile.in by configure. ++ ++# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, ++# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, ++# Inc. ++# This Makefile.in is free software; the Free Software Foundation ++# gives unlimited permission to copy and/or distribute it, ++# with or without modifications, as long as this notice is preserved. ++ ++# This program is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY, to the extent permitted by law; without ++# even the implied warranty of MERCHANTABILITY or FITNESS FOR A ++# PARTICULAR PURPOSE. ++ ++ ++ ++ ++pkgdatadir = $(datadir)/enca ++pkgincludedir = $(includedir)/enca ++pkglibdir = $(libdir)/enca ++pkglibexecdir = $(libexecdir)/enca ++am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd ++install_sh_DATA = $(install_sh) -c -m 644 ++install_sh_PROGRAM = $(install_sh) -c ++install_sh_SCRIPT = $(install_sh) -c ++INSTALL_HEADER = $(INSTALL_DATA) ++transform = $(program_transform_name) ++NORMAL_INSTALL = : ++PRE_INSTALL = : ++POST_INSTALL = : ++NORMAL_UNINSTALL = : ++PRE_UNINSTALL = : ++POST_UNINSTALL = : ++build_triplet = i686-pc-linux-gnu ++host_triplet = i686-pc-linux-gnu ++subdir = . ++DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \ ++ $(srcdir)/Makefile.in $(srcdir)/config.h.in \ ++ $(srcdir)/enca.pc.in $(srcdir)/enca.spec.in \ ++ $(top_srcdir)/configure AUTHORS COPYING ChangeLog INSTALL NEWS \ ++ THANKS TODO compile config.guess config.rpath config.sub \ ++ depcomp install-sh ltmain.sh missing mkinstalldirs ++ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 ++am__aclocal_m4_deps = $(top_srcdir)/m4/gtk-doc.m4 \ ++ $(top_srcdir)/m4/libiconv.m4 $(top_srcdir)/m4/libm.m4 \ ++ $(top_srcdir)/m4/librecode.m4 $(top_srcdir)/m4/libtool.m4 \ ++ $(top_srcdir)/m4/localias.m4 $(top_srcdir)/m4/ltoptions.m4 \ ++ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ ++ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/tools.m4 \ ++ $(top_srcdir)/m4/typevar.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 config.status.lineno ++mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs ++CONFIG_HEADER = config.h ++CONFIG_CLEAN_FILES = enca.spec enca.pc ++CONFIG_CLEAN_VPATH_FILES = ++SOURCES = ++DIST_SOURCES = ++RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ ++ html-recursive info-recursive install-data-recursive \ ++ install-dvi-recursive install-exec-recursive \ ++ install-html-recursive install-info-recursive \ ++ install-pdf-recursive install-ps-recursive install-recursive \ ++ installcheck-recursive installdirs-recursive pdf-recursive \ ++ ps-recursive uninstall-recursive ++am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; ++am__vpath_adj = case $$p in \ ++ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ ++ *) f=$$p;; \ ++ esac; ++am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; ++am__install_max = 40 ++am__nobase_strip_setup = \ ++ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` ++am__nobase_strip = \ ++ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" ++am__nobase_list = $(am__nobase_strip_setup); \ ++ for p in $$list; do echo "$$p $$p"; done | \ ++ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ ++ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ ++ if (++n[$$2] == $(am__install_max)) \ ++ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ ++ END { for (dir in files) print dir, files[dir] }' ++am__base_list = \ ++ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ ++ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' ++man1dir = $(mandir)/man1 ++am__installdirs = "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(pkgconfigdir)" ++NROFF = nroff ++MANS = $(man_MANS) ++DATA = $(pkgconfig_DATA) ++RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ ++ distclean-recursive maintainer-clean-recursive ++AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ ++ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ ++ distdir dist dist-all distcheck ++ETAGS = etags ++CTAGS = ctags ++DIST_SUBDIRS = tools script lib src devel-docs test data ++DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ++distdir = $(PACKAGE)-$(VERSION) ++top_distdir = $(distdir) ++am__remove_distdir = \ ++ { test ! -d "$(distdir)" \ ++ || { find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \ ++ && rm -fr "$(distdir)"; }; } ++am__relativize = \ ++ dir0=`pwd`; \ ++ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ ++ sed_rest='s,^[^/]*/*,,'; \ ++ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ ++ sed_butlast='s,/*[^/]*$$,,'; \ ++ while test -n "$$dir1"; do \ ++ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ ++ if test "$$first" != "."; then \ ++ if test "$$first" = ".."; then \ ++ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ ++ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ ++ else \ ++ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ ++ if test "$$first2" = "$$first"; then \ ++ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ ++ else \ ++ dir2="../$$dir2"; \ ++ fi; \ ++ dir0="$$dir0"/"$$first"; \ ++ fi; \ ++ fi; \ ++ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ ++ done; \ ++ reldir="$$dir2" ++DIST_ARCHIVES = $(distdir).tar.gz $(distdir).tar.bz2 ++GZIP_ENV = --best ++distuninstallcheck_listfiles = find . -type f -print ++distcleancheck_listfiles = find . -type f -print ++ACLOCAL = ${SHELL} /home/stephan/projects/openelec/sources/enca/enca-1.13.patch/missing --run aclocal-1.11 -I m4 ++AMTAR = ${SHELL} /home/stephan/projects/openelec/sources/enca/enca-1.13.patch/missing --run tar ++AR = ar ++AUTOCONF = ${SHELL} /home/stephan/projects/openelec/sources/enca/enca-1.13.patch/missing --run autoconf ++AUTOHEADER = ${SHELL} /home/stephan/projects/openelec/sources/enca/enca-1.13.patch/missing --run autoheader ++AUTOMAKE = ${SHELL} /home/stephan/projects/openelec/sources/enca/enca-1.13.patch/missing --run automake-1.11 ++AWK = gawk ++CC = gcc ++CCDEPMODE = depmode=gcc3 ++CFLAGS = -Wall -W -pedantic -g -O2 ++CONVERTER_LIBS = ++CPP = gcc -E ++CPPFLAGS = ++CSTOCS_PROG = ++CYGPATH_W = echo ++DEFAULT_CONVERTER_LIST = built-in,iconv ++DEFAULT_EXTERNAL_CONVERTER = piconv ++DEFS = -DHAVE_CONFIG_H ++DEPDIR = .deps ++DSYMUTIL = ++DUMPBIN = ++ECHO_C = ++ECHO_N = -n ++ECHO_T = ++EGREP = /bin/grep -E ++EXEEXT = ++FGREP = /bin/grep -F ++GREP = /bin/grep ++GTKDOC = true ++HTML_DIR = ${datarootdir}/gtk-doc/html ++INSTALL = /usr/bin/install -c ++INSTALL_DATA = ${INSTALL} -m 644 ++INSTALL_PROGRAM = ${INSTALL} ++INSTALL_SCRIPT = ${INSTALL} ++INSTALL_STRIP_PROGRAM = $(install_sh) -c -s ++LD = /usr/bin/ld ++LDFLAGS = ++LIBICONV = ++LIBM = -lm ++LIBOBJS = ++LIBS = -lm ++LIBTOOL = $(SHELL) $(top_builddir)/libtool ++LIPO = ++LN_S = ln -s ++LTLIBICONV = ++LTLIBOBJS = ++MAINT = # ++MAKEINFO = ${SHELL} /home/stephan/projects/openelec/sources/enca/enca-1.13.patch/missing --run makeinfo ++MAP_PROG = ++MKDIR_P = /bin/mkdir -p ++MKTEMP_PROG = /bin/mktemp ++NM = /usr/bin/nm -B ++NMEDIT = ++OBJDUMP = objdump ++OBJEXT = o ++OTOOL = ++OTOOL64 = ++PACKAGE = enca ++PACKAGE_BUGREPORT = https://bugs.cihar.com/ ++PACKAGE_NAME = Enca ++PACKAGE_STRING = Enca 1.13 ++PACKAGE_TARNAME = enca ++PACKAGE_URL = ++PACKAGE_VERSION = 1.13 ++PATH_SEPARATOR = : ++PICONV_PROG = /usr/bin/piconv ++RANLIB = ranlib ++RECODE_PROG = ++RELEASE = 1 ++SED = /bin/sed ++SET_MAKE = ++SHELL = /bin/sh ++SHELL_RANDOM_FILENAME = `/bin/mktemp /tmp/enca-$$-XXXXXXXX` ++STRIP = strip ++UMAP_PROG = ++VERSION = 1.13 ++abs_builddir = /home/stephan/projects/openelec/sources/enca/enca-1.13.patch ++abs_srcdir = /home/stephan/projects/openelec/sources/enca/enca-1.13.patch ++abs_top_builddir = /home/stephan/projects/openelec/sources/enca/enca-1.13.patch ++abs_top_srcdir = /home/stephan/projects/openelec/sources/enca/enca-1.13.patch ++ac_ct_CC = gcc ++ac_ct_DUMPBIN = ++am__include = include ++am__leading_dot = . ++am__quote = ++am__tar = ${AMTAR} chof - "$$tardir" ++am__untar = ${AMTAR} xf - ++bindir = ${exec_prefix}/bin ++build = i686-pc-linux-gnu ++build_alias = ++build_cpu = i686 ++build_os = linux-gnu ++build_vendor = pc ++builddir = . ++datadir = ${datarootdir} ++datarootdir = ${prefix}/share ++docdir = ${datarootdir}/doc/${PACKAGE_TARNAME} ++dvidir = ${docdir} ++exec_prefix = ${prefix} ++host = i686-pc-linux-gnu ++host_alias = ++host_cpu = i686 ++host_os = linux-gnu ++host_vendor = pc ++htmldir = ${docdir} ++includedir = ${prefix}/include ++infodir = ${datarootdir}/info ++install_sh = ${SHELL} /home/stephan/projects/openelec/sources/enca/enca-1.13.patch/install-sh ++libdir = ${exec_prefix}/lib ++libexecdir = ${exec_prefix}/libexec ++localedir = ${datarootdir}/locale ++localstatedir = ${prefix}/var ++lt_ECHO = echo ++mandir = ${datarootdir}/man ++mkdir_p = /bin/mkdir -p ++oldincludedir = /usr/include ++pdfdir = ${docdir} ++prefix = /usr/local ++program_transform_name = s,x,x, ++psdir = ${docdir} ++sbindir = ${exec_prefix}/sbin ++sharedstatedir = ${prefix}/com ++srcdir = . ++sysconfdir = ${prefix}/etc ++target_alias = ++top_build_prefix = ++top_builddir = . ++top_srcdir = . ++SUBDIRS = tools script lib src devel-docs test ++ ++# @(#) $Id: Makefile.am,v 1.35 2005/11/24 10:21:32 yeti Exp $ ++#SUBDIRS = tools data script lib src devel-docs test ++man_MANS = man/enca.1 ++DISTCHECK_CONFIGURE_FLAGS = --enable-maintainer-mode ++ACLOCAL_AMFLAGS = -I m4 ++M4TESTS = \ ++ m4/crash-me \ ++ m4/gtk-doc.m4 \ ++ m4/libiconv.m4 \ ++ m4/libm.m4 \ ++ m4/librecode.m4 \ ++ m4/localias.m4 \ ++ m4/long-text.l2 \ ++ m4/recode-bugs.m4 \ ++ m4/scanf.m4 \ ++ m4/tools.m4 \ ++ m4/typevar.m4 ++ ++EXTRA_DIST = \ ++ FAQ \ ++ README.devel \ ++ TODO \ ++ ChangeLog.prelib \ ++ autogen.sh \ ++ config.rpath \ ++ enca.pc.in \ ++ enca.spec \ ++ enca.spec.in \ ++ iconvcap.c \ ++ topline.sh \ ++ man/enca.1 \ ++ $(M4TESTS) ++ ++pkgconfigdir = $(libdir)/pkgconfig ++pkgconfig_DATA = enca.pc ++all: config.h ++ $(MAKE) $(AM_MAKEFLAGS) all-recursive ++ ++.SUFFIXES: ++am--refresh: ++ @: ++$(srcdir)/Makefile.in: # $(srcdir)/Makefile.am $(am__configure_deps) ++ @for dep in $?; do \ ++ case '$(am__configure_deps)' in \ ++ *$$dep*) \ ++ echo ' cd $(srcdir) && $(AUTOMAKE) --gnits'; \ ++ $(am__cd) $(srcdir) && $(AUTOMAKE) --gnits \ ++ && exit 0; \ ++ exit 1;; \ ++ esac; \ ++ done; \ ++ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnits Makefile'; \ ++ $(am__cd) $(top_srcdir) && \ ++ $(AUTOMAKE) --gnits Makefile ++.PRECIOUS: Makefile ++Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status ++ @case '$?' in \ ++ *config.status*) \ ++ echo ' $(SHELL) ./config.status'; \ ++ $(SHELL) ./config.status;; \ ++ *) \ ++ echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ ++ cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ ++ esac; ++ ++$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) ++ $(SHELL) ./config.status --recheck ++ ++$(top_srcdir)/configure: # $(am__configure_deps) ++ $(am__cd) $(srcdir) && $(AUTOCONF) ++$(ACLOCAL_M4): # $(am__aclocal_m4_deps) ++ $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) ++$(am__aclocal_m4_deps): ++ ++config.h: stamp-h1 ++ @if test ! -f $@; then \ ++ rm -f stamp-h1; \ ++ $(MAKE) $(AM_MAKEFLAGS) stamp-h1; \ ++ else :; fi ++ ++stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status ++ @rm -f stamp-h1 ++ cd $(top_builddir) && $(SHELL) ./config.status config.h ++$(srcdir)/config.h.in: # $(am__configure_deps) ++ ($(am__cd) $(top_srcdir) && $(AUTOHEADER)) ++ rm -f stamp-h1 ++ touch $@ ++ ++distclean-hdr: ++ -rm -f config.h stamp-h1 ++enca.spec: $(top_builddir)/config.status $(srcdir)/enca.spec.in ++ cd $(top_builddir) && $(SHELL) ./config.status $@ ++enca.pc: $(top_builddir)/config.status $(srcdir)/enca.pc.in ++ cd $(top_builddir) && $(SHELL) ./config.status $@ ++ ++mostlyclean-libtool: ++ -rm -f *.lo ++ ++clean-libtool: ++ -rm -rf .libs _libs ++ ++distclean-libtool: ++ -rm -f libtool config.lt ++install-man1: $(man_MANS) ++ @$(NORMAL_INSTALL) ++ test -z "$(man1dir)" || $(MKDIR_P) "$(DESTDIR)$(man1dir)" ++ @list=''; test -n "$(man1dir)" || exit 0; \ ++ { for i in $$list; do echo "$$i"; done; \ ++ l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \ ++ sed -n '/\.1[a-z]*$$/p'; \ ++ } | while read p; do \ ++ if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ ++ echo "$$d$$p"; echo "$$p"; \ ++ done | \ ++ sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \ ++ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \ ++ sed 'N;N;s,\n, ,g' | { \ ++ list=; while read file base inst; do \ ++ if test "$$base" = "$$inst"; then list="$$list $$file"; else \ ++ echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \ ++ $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst" || exit $$?; \ ++ fi; \ ++ done; \ ++ for i in $$list; do echo "$$i"; done | $(am__base_list) | \ ++ while read files; do \ ++ test -z "$$files" || { \ ++ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man1dir)'"; \ ++ $(INSTALL_DATA) $$files "$(DESTDIR)$(man1dir)" || exit $$?; }; \ ++ done; } ++ ++uninstall-man1: ++ @$(NORMAL_UNINSTALL) ++ @list=''; test -n "$(man1dir)" || exit 0; \ ++ files=`{ for i in $$list; do echo "$$i"; done; \ ++ l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \ ++ sed -n '/\.1[a-z]*$$/p'; \ ++ } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \ ++ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ ++ test -z "$$files" || { \ ++ echo " ( cd '$(DESTDIR)$(man1dir)' && rm -f" $$files ")"; \ ++ cd "$(DESTDIR)$(man1dir)" && rm -f $$files; } ++install-pkgconfigDATA: $(pkgconfig_DATA) ++ @$(NORMAL_INSTALL) ++ test -z "$(pkgconfigdir)" || $(MKDIR_P) "$(DESTDIR)$(pkgconfigdir)" ++ @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \ ++ for p in $$list; do \ ++ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ ++ echo "$$d$$p"; \ ++ done | $(am__base_list) | \ ++ while read files; do \ ++ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pkgconfigdir)'"; \ ++ $(INSTALL_DATA) $$files "$(DESTDIR)$(pkgconfigdir)" || exit $$?; \ ++ done ++ ++uninstall-pkgconfigDATA: ++ @$(NORMAL_UNINSTALL) ++ @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \ ++ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ ++ test -n "$$files" || exit 0; \ ++ echo " ( cd '$(DESTDIR)$(pkgconfigdir)' && rm -f" $$files ")"; \ ++ cd "$(DESTDIR)$(pkgconfigdir)" && rm -f $$files ++ ++# This directory's subdirectories are mostly independent; you can cd ++# into them and run `make' without going through this Makefile. ++# To change the values of `make' variables: instead of editing Makefiles, ++# (1) if the variable is set in `config.status', edit `config.status' ++# (which will cause the Makefiles to be regenerated when you run `make'); ++# (2) otherwise, pass the desired values on the `make' command line. ++$(RECURSIVE_TARGETS): ++ @fail= failcom='exit 1'; \ ++ for f in x $$MAKEFLAGS; do \ ++ case $$f in \ ++ *=* | --[!k]*);; \ ++ *k*) failcom='fail=yes';; \ ++ esac; \ ++ done; \ ++ dot_seen=no; \ ++ target=`echo $@ | sed s/-recursive//`; \ ++ list='$(SUBDIRS)'; for subdir in $$list; do \ ++ echo "Making $$target in $$subdir"; \ ++ if test "$$subdir" = "."; then \ ++ dot_seen=yes; \ ++ local_target="$$target-am"; \ ++ else \ ++ local_target="$$target"; \ ++ fi; \ ++ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ ++ || eval $$failcom; \ ++ done; \ ++ if test "$$dot_seen" = "no"; then \ ++ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ ++ fi; test -z "$$fail" ++ ++$(RECURSIVE_CLEAN_TARGETS): ++ @fail= failcom='exit 1'; \ ++ for f in x $$MAKEFLAGS; do \ ++ case $$f in \ ++ *=* | --[!k]*);; \ ++ *k*) failcom='fail=yes';; \ ++ esac; \ ++ done; \ ++ dot_seen=no; \ ++ case "$@" in \ ++ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ ++ *) list='$(SUBDIRS)' ;; \ ++ esac; \ ++ rev=''; for subdir in $$list; do \ ++ if test "$$subdir" = "."; then :; else \ ++ rev="$$subdir $$rev"; \ ++ fi; \ ++ done; \ ++ rev="$$rev ."; \ ++ target=`echo $@ | sed s/-recursive//`; \ ++ for subdir in $$rev; do \ ++ echo "Making $$target in $$subdir"; \ ++ if test "$$subdir" = "."; then \ ++ local_target="$$target-am"; \ ++ else \ ++ local_target="$$target"; \ ++ fi; \ ++ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ ++ || eval $$failcom; \ ++ done && test -z "$$fail" ++tags-recursive: ++ list='$(SUBDIRS)'; for subdir in $$list; do \ ++ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ ++ done ++ctags-recursive: ++ list='$(SUBDIRS)'; for subdir in $$list; do \ ++ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ ++ done ++ ++ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) ++ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ ++ unique=`for i in $$list; do \ ++ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ ++ done | \ ++ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ ++ END { if (nonempty) { for (i in files) print i; }; }'`; \ ++ mkid -fID $$unique ++tags: TAGS ++ ++TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ ++ $(TAGS_FILES) $(LISP) ++ set x; \ ++ here=`pwd`; \ ++ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ ++ include_option=--etags-include; \ ++ empty_fix=.; \ ++ else \ ++ include_option=--include; \ ++ empty_fix=; \ ++ fi; \ ++ list='$(SUBDIRS)'; for subdir in $$list; do \ ++ if test "$$subdir" = .; then :; else \ ++ test ! -f $$subdir/TAGS || \ ++ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ ++ fi; \ ++ done; \ ++ list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ ++ unique=`for i in $$list; do \ ++ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ ++ done | \ ++ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ ++ END { if (nonempty) { for (i in files) print i; }; }'`; \ ++ shift; \ ++ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ ++ test -n "$$unique" || unique=$$empty_fix; \ ++ if test $$# -gt 0; then \ ++ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ ++ "$$@" $$unique; \ ++ else \ ++ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ ++ $$unique; \ ++ fi; \ ++ fi ++ctags: CTAGS ++CTAGS: ctags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ ++ $(TAGS_FILES) $(LISP) ++ list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ ++ unique=`for i in $$list; do \ ++ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ ++ done | \ ++ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ ++ END { if (nonempty) { for (i in files) print i; }; }'`; \ ++ test -z "$(CTAGS_ARGS)$$unique" \ ++ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ ++ $$unique ++ ++GTAGS: ++ here=`$(am__cd) $(top_builddir) && pwd` \ ++ && $(am__cd) $(top_srcdir) \ ++ && gtags -i $(GTAGS_ARGS) "$$here" ++ ++distclean-tags: ++ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags ++ ++distdir: $(DISTFILES) ++ @case `sed 15q $(srcdir)/NEWS` in \ ++ *"$(VERSION)"*) : ;; \ ++ *) \ ++ echo "NEWS not updated; not releasing" 1>&2; \ ++ exit 1;; \ ++ esac ++ @list='$(MANS)'; if test -n "$$list"; then \ ++ list=`for p in $$list; do \ ++ if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ ++ if test -f "$$d$$p"; then echo "$$d$$p"; else :; fi; done`; \ ++ if test -n "$$list" && \ ++ grep 'ab help2man is required to generate this page' $$list >/dev/null; then \ ++ echo "error: found man pages containing the \`missing help2man' replacement text:" >&2; \ ++ grep -l 'ab help2man is required to generate this page' $$list | sed 's/^/ /' >&2; \ ++ echo " to fix them, install help2man, remove and regenerate the man pages;" >&2; \ ++ echo " typically \`make maintainer-clean' will remove them" >&2; \ ++ exit 1; \ ++ else :; fi; \ ++ else :; fi ++ $(am__remove_distdir) ++ test -d "$(distdir)" || mkdir "$(distdir)" ++ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ ++ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ ++ list='$(DISTFILES)'; \ ++ dist_files=`for file in $$list; do echo $$file; done | \ ++ sed -e "s|^$$srcdirstrip/||;t" \ ++ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ ++ case $$dist_files in \ ++ */*) $(MKDIR_P) `echo "$$dist_files" | \ ++ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ ++ sort -u` ;; \ ++ esac; \ ++ for file in $$dist_files; do \ ++ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ ++ if test -d $$d/$$file; then \ ++ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ ++ if test -d "$(distdir)/$$file"; then \ ++ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ ++ fi; \ ++ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ ++ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ ++ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ ++ fi; \ ++ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ ++ else \ ++ test -f "$(distdir)/$$file" \ ++ || cp -p $$d/$$file "$(distdir)/$$file" \ ++ || exit 1; \ ++ fi; \ ++ done ++ @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ ++ if test "$$subdir" = .; then :; else \ ++ test -d "$(distdir)/$$subdir" \ ++ || $(MKDIR_P) "$(distdir)/$$subdir" \ ++ || exit 1; \ ++ fi; \ ++ done ++ @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ ++ if test "$$subdir" = .; then :; else \ ++ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ ++ $(am__relativize); \ ++ new_distdir=$$reldir; \ ++ dir1=$$subdir; dir2="$(top_distdir)"; \ ++ $(am__relativize); \ ++ new_top_distdir=$$reldir; \ ++ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ ++ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ++ ($(am__cd) $$subdir && \ ++ $(MAKE) $(AM_MAKEFLAGS) \ ++ top_distdir="$$new_top_distdir" \ ++ distdir="$$new_distdir" \ ++ am__remove_distdir=: \ ++ am__skip_length_check=: \ ++ am__skip_mode_fix=: \ ++ distdir) \ ++ || exit 1; \ ++ fi; \ ++ done ++ $(MAKE) $(AM_MAKEFLAGS) \ ++ top_distdir="$(top_distdir)" distdir="$(distdir)" \ ++ dist-hook ++ -test -n "$(am__skip_mode_fix)" \ ++ || find "$(distdir)" -type d ! -perm -755 \ ++ -exec chmod u+rwx,go+rx {} \; -o \ ++ ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ ++ ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ ++ ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \ ++ || chmod -R a+r "$(distdir)" ++dist-gzip: distdir ++ tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz ++ $(am__remove_distdir) ++dist-bzip2: distdir ++ tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2 ++ $(am__remove_distdir) ++ ++dist-lzma: distdir ++ tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma ++ $(am__remove_distdir) ++ ++dist-xz: distdir ++ tardir=$(distdir) && $(am__tar) | xz -c >$(distdir).tar.xz ++ $(am__remove_distdir) ++ ++dist-tarZ: distdir ++ tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z ++ $(am__remove_distdir) ++ ++dist-shar: distdir ++ shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz ++ $(am__remove_distdir) ++ ++dist-zip: distdir ++ -rm -f $(distdir).zip ++ zip -rq $(distdir).zip $(distdir) ++ $(am__remove_distdir) ++ ++dist dist-all: distdir ++ tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz ++ tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2 ++ $(am__remove_distdir) ++ ++# This target untars the dist file and tries a VPATH configuration. Then ++# it guarantees that the distribution is self-contained by making another ++# tarfile. ++distcheck: dist ++ case '$(DIST_ARCHIVES)' in \ ++ *.tar.gz*) \ ++ GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\ ++ *.tar.bz2*) \ ++ bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\ ++ *.tar.lzma*) \ ++ lzma -dc $(distdir).tar.lzma | $(am__untar) ;;\ ++ *.tar.xz*) \ ++ xz -dc $(distdir).tar.xz | $(am__untar) ;;\ ++ *.tar.Z*) \ ++ uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ ++ *.shar.gz*) \ ++ GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\ ++ *.zip*) \ ++ unzip $(distdir).zip ;;\ ++ esac ++ chmod -R a-w $(distdir); chmod a+w $(distdir) ++ mkdir $(distdir)/_build ++ mkdir $(distdir)/_inst ++ chmod a-w $(distdir) ++ test -d $(distdir)/_build || exit 0; \ ++ dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ ++ && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ ++ && am__cwd=`pwd` \ ++ && $(am__cd) $(distdir)/_build \ ++ && ../configure --srcdir=.. --prefix="$$dc_install_base" \ ++ $(DISTCHECK_CONFIGURE_FLAGS) \ ++ && $(MAKE) $(AM_MAKEFLAGS) \ ++ && $(MAKE) $(AM_MAKEFLAGS) dvi \ ++ && $(MAKE) $(AM_MAKEFLAGS) check \ ++ && $(MAKE) $(AM_MAKEFLAGS) install \ ++ && $(MAKE) $(AM_MAKEFLAGS) installcheck \ ++ && $(MAKE) $(AM_MAKEFLAGS) uninstall \ ++ && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ ++ distuninstallcheck \ ++ && chmod -R a-w "$$dc_install_base" \ ++ && ({ \ ++ (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ ++ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ ++ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ ++ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ ++ distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ ++ } || { rm -rf "$$dc_destdir"; exit 1; }) \ ++ && rm -rf "$$dc_destdir" \ ++ && $(MAKE) $(AM_MAKEFLAGS) dist \ ++ && rm -rf $(DIST_ARCHIVES) \ ++ && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \ ++ && cd "$$am__cwd" \ ++ || exit 1 ++ $(am__remove_distdir) ++ @(echo "$(distdir) archives ready for distribution: "; \ ++ list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ ++ sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x' ++distuninstallcheck: ++ @$(am__cd) '$(distuninstallcheck_dir)' \ ++ && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \ ++ || { echo "ERROR: files left after uninstall:" ; \ ++ if test -n "$(DESTDIR)"; then \ ++ echo " (check DESTDIR support)"; \ ++ fi ; \ ++ $(distuninstallcheck_listfiles) ; \ ++ exit 1; } >&2 ++distcleancheck: distclean ++ @if test '$(srcdir)' = . ; then \ ++ echo "ERROR: distcleancheck can only run from a VPATH build" ; \ ++ exit 1 ; \ ++ fi ++ @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ ++ || { echo "ERROR: files left in build directory after distclean:" ; \ ++ $(distcleancheck_listfiles) ; \ ++ exit 1; } >&2 ++check-am: all-am ++check: check-recursive ++all-am: Makefile $(MANS) $(DATA) config.h ++installdirs: installdirs-recursive ++installdirs-am: ++ for dir in "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(pkgconfigdir)"; do \ ++ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ ++ done ++install: install-recursive ++install-exec: install-exec-recursive ++install-data: install-data-recursive ++uninstall: uninstall-recursive ++ ++install-am: all-am ++ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am ++ ++installcheck: installcheck-recursive ++install-strip: ++ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ ++ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ ++ `test -z '$(STRIP)' || \ ++ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install ++mostlyclean-generic: ++ ++clean-generic: ++ ++distclean-generic: ++ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) ++ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) ++ ++maintainer-clean-generic: ++ @echo "This command is intended for maintainers to use" ++ @echo "it deletes files that may require special tools to rebuild." ++clean: clean-recursive ++ ++clean-am: clean-generic clean-libtool clean-local mostlyclean-am ++ ++distclean: distclean-recursive ++ -rm -f $(am__CONFIG_DISTCLEAN_FILES) ++ -rm -f Makefile ++distclean-am: clean-am distclean-generic distclean-hdr \ ++ distclean-libtool distclean-local distclean-tags ++ ++dvi: dvi-recursive ++ ++dvi-am: ++ ++html: html-recursive ++ ++html-am: ++ ++info: info-recursive ++ ++info-am: ++ ++install-data-am: install-man install-pkgconfigDATA ++ @$(NORMAL_INSTALL) ++ $(MAKE) $(AM_MAKEFLAGS) install-data-hook ++install-dvi: install-dvi-recursive ++ ++install-dvi-am: ++ ++install-exec-am: ++ ++install-html: install-html-recursive ++ ++install-html-am: ++ ++install-info: install-info-recursive ++ ++install-info-am: ++ ++install-man: install-man1 ++ ++install-pdf: install-pdf-recursive ++ ++install-pdf-am: ++ ++install-ps: install-ps-recursive ++ ++install-ps-am: ++ ++installcheck-am: ++ ++maintainer-clean: maintainer-clean-recursive ++ -rm -f $(am__CONFIG_DISTCLEAN_FILES) ++ -rm -rf $(top_srcdir)/autom4te.cache ++ -rm -f Makefile ++maintainer-clean-am: distclean-am maintainer-clean-generic ++ ++mostlyclean: mostlyclean-recursive ++ ++mostlyclean-am: mostlyclean-generic mostlyclean-libtool ++ ++pdf: pdf-recursive ++ ++pdf-am: ++ ++ps: ps-recursive ++ ++ps-am: ++ ++uninstall-am: uninstall-man uninstall-pkgconfigDATA ++ @$(NORMAL_INSTALL) ++ $(MAKE) $(AM_MAKEFLAGS) uninstall-hook ++uninstall-man: uninstall-man1 ++ ++.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) all \ ++ ctags-recursive install-am install-data-am install-strip \ ++ tags-recursive uninstall-am ++ ++.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ ++ all all-am am--refresh check check-am clean clean-generic \ ++ clean-libtool clean-local ctags ctags-recursive dist dist-all \ ++ dist-bzip2 dist-gzip dist-hook dist-lzma dist-shar dist-tarZ \ ++ dist-xz dist-zip distcheck distclean distclean-generic \ ++ distclean-hdr distclean-libtool distclean-local distclean-tags \ ++ distcleancheck distdir distuninstallcheck dvi dvi-am html \ ++ html-am info info-am install install-am install-data \ ++ install-data-am install-data-hook install-dvi install-dvi-am \ ++ install-exec install-exec-am install-html install-html-am \ ++ install-info install-info-am install-man install-man1 \ ++ install-pdf install-pdf-am install-pkgconfigDATA install-ps \ ++ install-ps-am install-strip installcheck installcheck-am \ ++ installdirs installdirs-am maintainer-clean \ ++ maintainer-clean-generic mostlyclean mostlyclean-generic \ ++ mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \ ++ uninstall uninstall-am uninstall-hook uninstall-man \ ++ uninstall-man1 uninstall-pkgconfigDATA ++ ++ ++####################### maintainer's targets ###################### ++# alias test=check ++test: check ++ ++docs: ++ cd $(srcdir)/devel-docs && $(MAKE) docs ++ ++.PHONY: test docs ++ ++$(pkgconfig_DATA): config.status ++ ++install-data-hook: ++ cd $(DESTDIR)$(man1dir); \ ++ inst1=`echo enca | sed '$(transform)'`.1; \ ++ inst2=`echo enconv | sed '$(transform)'`.1; \ ++ $(LN_S) $$inst1 $$inst2 ++ ++uninstall-hook: ++ inst=`echo enconv | sed '$(transform)'`.1; \ ++ rm -f $(DESTDIR)$(man1dir)/$$inst ++ ++clean-local: ++ rm -f iconvcap iconvcap.o *~ core.* ++ ++distclean-local: ++ rm -f iconvenc.h ++ ++#dist-check-maintainer: ++dist-check-maintainer: ++ @echo "*** maintainer mode must be enabled in order to make dist" ++ @false ++ ++dist-hook: dist-check-maintainer ++ cat $(distdir)/tools/iconvenc.null >$(distdir)/iconvenc.h ++ ++# To be run [by hand] before release (not the same as before making dists). ++#update: ++# ./topline.sh ++ ++.PHONY: update ++ ++# Tell versions [3.59,3.63) of GNU make to not export all variables. ++# Otherwise a system limit (for SysV at least) may be exceeded. ++.NOEXPORT: +diff -Naur enca-1.13/script/b-cstocs enca-1.13.patch/script/b-cstocs +--- enca-1.13/script/b-cstocs 1970-01-01 01:00:00.000000000 +0100 ++++ enca-1.13.patch/script/b-cstocs 2010-04-16 18:41:17.622443058 +0200 +@@ -0,0 +1,50 @@ ++#! /bin/sh ++# @(#) $Id: b-cstocs.in,v 1.3 2003/12/22 15:32:37 yeti Exp $ ++# cstocs batch-call wrapper. ++# To be called by enca, don't use directly. See enca(1) for calling convention. ++# ++# Copyright (C) 2000-2003 David Necas (Yeti) . ++# This is free software; it can be copied and/or modified under the terms of ++# version 2 of GNU General Public License, see COPYING for details. There is ++# NO WARRANTY; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. ++transform_enc_name() { ++ case "$1" in ++ ASCII*) echo ascii ; return ;; ++ CP1250*) echo 1250 ; return ;; ++ IBM852*) echo pc2 ; return ;; ++ ISO-8859-2*) echo il2 ; return ;; ++ KEYBCS2*) echo kam ; return ;; ++ KOI-8_CS2*) echo koi ; return ;; ++ UTF-8*) echo utf8 ; return ;; ++ TeX*) echo tex ; return ;; ++ esac ++ echo "$1"|sed -e 's:/.*::' ++} ++if test "x$3" = "x"; then ++ echo "$0 has to be called by enca" 1>&2 ++ exit 1 ++fi ++umask 077 ++inenc=`transform_enc_name "$1"` ++outenc=`transform_enc_name "$2"` ++if test "$4" = "-"; then ++ if cstocs "$inenc" "$outenc" <"$3"; then ++ rm -- "$3" ++ else ++ echo "$0: cstocs $inenc $outenc failed" 1>&2 ++ rm -- "$3" ++ exit 1 ++ fi ++else ++ temp=`/bin/mktemp /tmp/enca-$$-XXXXXXXX` || exit 1 ++ if cstocs "$inenc" "$outenc" <"$3" >>"$temp"; then ++ # use cat > to preserve permissions ++ cat $temp >"$3" ++ else ++ echo "$0: cstocs $inenc $outenc $3 failed, file $3 unchanged" 1>&2 ++ rm -f $temp ++ exit 1 ++ fi ++ rm -f $temp ++fi ++ +diff -Naur enca-1.13/script/b-map enca-1.13.patch/script/b-map +--- enca-1.13/script/b-map 1970-01-01 01:00:00.000000000 +0100 ++++ enca-1.13.patch/script/b-map 2010-04-16 18:41:17.641443238 +0200 +@@ -0,0 +1,41 @@ ++#! /bin/sh ++# @(#) $Id: b-map.in,v 1.4 2003/12/22 15:32:37 yeti Exp $ ++# map batch-call wrapper. ++# To be called by enca, don't use directly. See enca(1) for calling convention. ++# ++# Copyright (C) 2000-2003 David Necas (Yeti) . ++# This is free software; it can be copied and/or modified under the terms of ++# version 2 of GNU General Public License, see COPYING for details. There is ++# NO WARRANTY; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. ++transform_enc_name() { ++ echo "$1" | sed -e 's:/.*::' ++} ++if test "x$3" = "x"; then ++ echo "$0 has to be called by enca" 1>&2 ++ exit 1 ++fi ++umask 077 ++inenc=`transform_enc_name "$1"` ++outenc=`transform_enc_name "$2"` ++if test "$4" = "-"; then ++ # Note map returns 0 on failure and 1 on success! ++ if map --from "$inenc" --to "$outenc" <"$3"; then ++ echo "$0: map --from $inenc --to $outenc failed" 1>&2 ++ rm -- "$3" ++ exit 1 ++ else ++ rm -- "$3" ++ fi ++else ++ temp=`/bin/mktemp /tmp/enca-$$-XXXXXXXX` || exit 1 ++ # Note map returns 0 on failure and 1 on success! ++ if map --from "$inenc" --to "$outenc" <"$3" >"$temp"; then ++ echo "$0: map --from $inenc --to $outenc <$3 failed, file $3 unchanged" 1>&2 ++ rm -f $temp ++ exit 1 ++ else ++ # use cat > to preserve permissions ++ cat $temp >"$3" ++ fi ++ rm -f $temp ++fi +diff -Naur enca-1.13/script/b-piconv enca-1.13.patch/script/b-piconv +--- enca-1.13/script/b-piconv 1970-01-01 01:00:00.000000000 +0100 ++++ enca-1.13.patch/script/b-piconv 2010-04-16 18:41:17.662443239 +0200 +@@ -0,0 +1,40 @@ ++#! /bin/sh ++# @(#) $Id: b-piconv.in,v 1.3 2003/12/22 15:32:37 yeti Exp $ ++# piconv wrapper. ++# To be called by enca, don't use directly. See enca(1) for calling convention. ++# ++# Copyright (C) 2000-2003 David Necas (Yeti) . ++# This is free software; it can be copied and/or modified under the terms of ++# version 2 of GNU General Public License, see COPYING for details. There is ++# NO WARRANTY; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. ++transform_enc_name() { ++ echo "$1" | sed -e 's:/.*::' ++} ++if test "x$3" = "x"; then ++ echo "$0 has to be called by enca" 1>&2 ++ exit 1 ++fi ++umask 077 ++inenc=`transform_enc_name "$1"` ++outenc=`transform_enc_name "$2"` ++if test "$4" = "-"; then ++ if piconv -f "$inenc" -t "$outenc" <"$3"; then ++ rm -- "$3" ++ else ++ echo "$0: piconv -f $inenc -t $outenc failed" 1>&2 ++ rm -- "$3" ++ exit 1 ++ fi ++else ++ temp=`/bin/mktemp /tmp/enca-$$-XXXXXXXX` || exit 1 ++ if piconv -f "$inenc" -t "$outenc" <"$3" >"$temp"; then ++ # use cat > to preserve permissions ++ cat $temp >"$3" ++ else ++ echo "$0: piconv -f $inenc -t $outenc <$3 failed, file $3 unchanged" 1>&2 ++ rm -f $temp ++ exit 1 ++ fi ++ rm -f $temp ++fi ++ +diff -Naur enca-1.13/script/b-umap enca-1.13.patch/script/b-umap +--- enca-1.13/script/b-umap 1970-01-01 01:00:00.000000000 +0100 ++++ enca-1.13.patch/script/b-umap 2010-04-16 18:41:17.683442820 +0200 +@@ -0,0 +1,39 @@ ++#! /bin/sh ++# @(#) $Id: b-umap.in,v 1.4 2003/12/22 15:32:37 yeti Exp $ ++# umap batch-call wrapper. ++# To be called by enca, don't use directly. See enca(1) for calling convention. ++# ++# Copyright (C) 2000-2003 David Necas (Yeti) . ++# This is free software; it can be copied and/or modified under the terms of ++# version 2 of GNU General Public License, see COPYING for details. There is ++# NO WARRANTY; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. ++transform_enc_name() { ++ echo "$1" | sed -e 's:/.*::' ++} ++if test "x$3" = "x"; then ++ echo "$0 has to be called by enca" 1>&2 ++ exit 1 ++fi ++umask 077 ++inenc=`transform_enc_name "$1"` ++outenc=`transform_enc_name "$2"` ++if test "$4" = "-"; then ++ if umap "$inenc:$outenc" <"$3"; then ++ rm -- "$3" ++ else ++ echo "$0: umap $inenc:$outenc failed" 1>&2 ++ rm -- "$3" ++ exit 1 ++ fi ++else ++ temp=`/bin/mktemp /tmp/enca-$$-XXXXXXXX` || exit 1 ++ if umap "$inenc:$outenc" <"$3" >"$temp"; then ++ # use cat > to preserve permissions ++ cat $temp >"$3" ++ else ++ echo "$0: umap $inenc:$outenc <$3 failed, file $3 unchanged" 1>&2 ++ rm -f $temp ++ exit 1 ++ fi ++ rm -f $temp ++fi +diff -Naur enca-1.13/script/Makefile enca-1.13.patch/script/Makefile +--- enca-1.13/script/Makefile 1970-01-01 01:00:00.000000000 +0100 ++++ enca-1.13.patch/script/Makefile 2010-04-16 18:41:17.602468040 +0200 +@@ -0,0 +1,482 @@ ++# Makefile.in generated by automake 1.11.1 from Makefile.am. ++# script/Makefile. Generated from Makefile.in by configure. ++ ++# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, ++# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, ++# Inc. ++# This Makefile.in is free software; the Free Software Foundation ++# gives unlimited permission to copy and/or distribute it, ++# with or without modifications, as long as this notice is preserved. ++ ++# This program is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY, to the extent permitted by law; without ++# even the implied warranty of MERCHANTABILITY or FITNESS FOR A ++# PARTICULAR PURPOSE. ++ ++ ++ ++# @(#) $Id: Makefile.am,v 1.7 2003/12/22 15:32:37 yeti Exp $ ++ ++ ++pkgdatadir = $(datadir)/enca ++pkgincludedir = $(includedir)/enca ++pkglibdir = $(libdir)/enca ++pkglibexecdir = $(libexecdir)/enca ++am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd ++install_sh_DATA = $(install_sh) -c -m 644 ++install_sh_PROGRAM = $(install_sh) -c ++install_sh_SCRIPT = $(install_sh) -c ++INSTALL_HEADER = $(INSTALL_DATA) ++transform = $(program_transform_name) ++NORMAL_INSTALL = : ++PRE_INSTALL = : ++POST_INSTALL = : ++NORMAL_UNINSTALL = : ++PRE_UNINSTALL = : ++POST_UNINSTALL = : ++build_triplet = i686-pc-linux-gnu ++host_triplet = i686-pc-linux-gnu ++subdir = script ++DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ ++ $(srcdir)/b-cstocs.in $(srcdir)/b-map.in $(srcdir)/b-piconv.in \ ++ $(srcdir)/b-umap.in ++ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 ++am__aclocal_m4_deps = $(top_srcdir)/m4/gtk-doc.m4 \ ++ $(top_srcdir)/m4/libiconv.m4 $(top_srcdir)/m4/libm.m4 \ ++ $(top_srcdir)/m4/librecode.m4 $(top_srcdir)/m4/libtool.m4 \ ++ $(top_srcdir)/m4/localias.m4 $(top_srcdir)/m4/ltoptions.m4 \ ++ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ ++ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/tools.m4 \ ++ $(top_srcdir)/m4/typevar.m4 $(top_srcdir)/configure.ac ++am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ ++ $(ACLOCAL_M4) ++mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs ++CONFIG_HEADER = $(top_builddir)/config.h ++CONFIG_CLEAN_FILES = b-cstocs b-map b-piconv b-umap ++CONFIG_CLEAN_VPATH_FILES = ++am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; ++am__vpath_adj = case $$p in \ ++ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ ++ *) f=$$p;; \ ++ esac; ++am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; ++am__install_max = 40 ++am__nobase_strip_setup = \ ++ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` ++am__nobase_strip = \ ++ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" ++am__nobase_list = $(am__nobase_strip_setup); \ ++ for p in $$list; do echo "$$p $$p"; done | \ ++ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ ++ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ ++ if (++n[$$2] == $(am__install_max)) \ ++ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ ++ END { for (dir in files) print dir, files[dir] }' ++am__base_list = \ ++ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ ++ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' ++am__installdirs = "$(DESTDIR)$(extconvdir)" ++SCRIPTS = $(extconv_SCRIPTS) ++SOURCES = ++DIST_SOURCES = ++DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ++ACLOCAL = ${SHELL} /home/stephan/projects/openelec/sources/enca/enca-1.13.patch/missing --run aclocal-1.11 -I m4 ++AMTAR = ${SHELL} /home/stephan/projects/openelec/sources/enca/enca-1.13.patch/missing --run tar ++AR = ar ++AUTOCONF = ${SHELL} /home/stephan/projects/openelec/sources/enca/enca-1.13.patch/missing --run autoconf ++AUTOHEADER = ${SHELL} /home/stephan/projects/openelec/sources/enca/enca-1.13.patch/missing --run autoheader ++AUTOMAKE = ${SHELL} /home/stephan/projects/openelec/sources/enca/enca-1.13.patch/missing --run automake-1.11 ++AWK = gawk ++CC = gcc ++CCDEPMODE = depmode=gcc3 ++CFLAGS = -Wall -W -pedantic -g -O2 ++CONVERTER_LIBS = ++CPP = gcc -E ++CPPFLAGS = ++CSTOCS_PROG = ++CYGPATH_W = echo ++DEFAULT_CONVERTER_LIST = built-in,iconv ++DEFAULT_EXTERNAL_CONVERTER = piconv ++DEFS = -DHAVE_CONFIG_H ++DEPDIR = .deps ++DSYMUTIL = ++DUMPBIN = ++ECHO_C = ++ECHO_N = -n ++ECHO_T = ++EGREP = /bin/grep -E ++EXEEXT = ++FGREP = /bin/grep -F ++GREP = /bin/grep ++GTKDOC = true ++HTML_DIR = ${datarootdir}/gtk-doc/html ++INSTALL = /usr/bin/install -c ++INSTALL_DATA = ${INSTALL} -m 644 ++INSTALL_PROGRAM = ${INSTALL} ++INSTALL_SCRIPT = ${INSTALL} ++INSTALL_STRIP_PROGRAM = $(install_sh) -c -s ++LD = /usr/bin/ld ++LDFLAGS = ++LIBICONV = ++LIBM = -lm ++LIBOBJS = ++LIBS = -lm ++LIBTOOL = $(SHELL) $(top_builddir)/libtool ++LIPO = ++LN_S = ln -s ++LTLIBICONV = ++LTLIBOBJS = ++MAINT = # ++MAKEINFO = ${SHELL} /home/stephan/projects/openelec/sources/enca/enca-1.13.patch/missing --run makeinfo ++MAP_PROG = ++MKDIR_P = /bin/mkdir -p ++MKTEMP_PROG = /bin/mktemp ++NM = /usr/bin/nm -B ++NMEDIT = ++OBJDUMP = objdump ++OBJEXT = o ++OTOOL = ++OTOOL64 = ++PACKAGE = enca ++PACKAGE_BUGREPORT = https://bugs.cihar.com/ ++PACKAGE_NAME = Enca ++PACKAGE_STRING = Enca 1.13 ++PACKAGE_TARNAME = enca ++PACKAGE_URL = ++PACKAGE_VERSION = 1.13 ++PATH_SEPARATOR = : ++PICONV_PROG = /usr/bin/piconv ++RANLIB = ranlib ++RECODE_PROG = ++RELEASE = 1 ++SED = /bin/sed ++SET_MAKE = ++SHELL = /bin/sh ++SHELL_RANDOM_FILENAME = `/bin/mktemp /tmp/enca-$$-XXXXXXXX` ++STRIP = strip ++UMAP_PROG = ++VERSION = 1.13 ++abs_builddir = /home/stephan/projects/openelec/sources/enca/enca-1.13.patch/script ++abs_srcdir = /home/stephan/projects/openelec/sources/enca/enca-1.13.patch/script ++abs_top_builddir = /home/stephan/projects/openelec/sources/enca/enca-1.13.patch ++abs_top_srcdir = /home/stephan/projects/openelec/sources/enca/enca-1.13.patch ++ac_ct_CC = gcc ++ac_ct_DUMPBIN = ++am__include = include ++am__leading_dot = . ++am__quote = ++am__tar = ${AMTAR} chof - "$$tardir" ++am__untar = ${AMTAR} xf - ++bindir = ${exec_prefix}/bin ++build = i686-pc-linux-gnu ++build_alias = ++build_cpu = i686 ++build_os = linux-gnu ++build_vendor = pc ++builddir = . ++datadir = ${datarootdir} ++datarootdir = ${prefix}/share ++docdir = ${datarootdir}/doc/${PACKAGE_TARNAME} ++dvidir = ${docdir} ++exec_prefix = ${prefix} ++host = i686-pc-linux-gnu ++host_alias = ++host_cpu = i686 ++host_os = linux-gnu ++host_vendor = pc ++htmldir = ${docdir} ++includedir = ${prefix}/include ++infodir = ${datarootdir}/info ++install_sh = ${SHELL} /home/stephan/projects/openelec/sources/enca/enca-1.13.patch/install-sh ++libdir = ${exec_prefix}/lib ++libexecdir = ${exec_prefix}/libexec ++localedir = ${datarootdir}/locale ++localstatedir = ${prefix}/var ++lt_ECHO = echo ++mandir = ${datarootdir}/man ++mkdir_p = /bin/mkdir -p ++oldincludedir = /usr/include ++pdfdir = ${docdir} ++prefix = /usr/local ++program_transform_name = s,x,x, ++psdir = ${docdir} ++sbindir = ${exec_prefix}/sbin ++sharedstatedir = ${prefix}/com ++srcdir = . ++sysconfdir = ${prefix}/etc ++target_alias = ++top_build_prefix = ../ ++top_builddir = .. ++top_srcdir = .. ++AM_INSTALLCHECK_STD_OPTIONS_EXEMPT = $(extconv_SCRIPTS) ++extconvdir = $(libexecdir)/enca/extconv ++extconv_SCRIPTS = \ ++ cstocs \ ++ map \ ++ piconv \ ++ recode \ ++ umap ++ ++EXTRA_DIST = \ ++ b-recode \ ++ b-cstocs.in \ ++ b-map.in \ ++ b-piconv.in \ ++ b-umap.in ++ ++all: all-am ++ ++.SUFFIXES: ++$(srcdir)/Makefile.in: # $(srcdir)/Makefile.am $(am__configure_deps) ++ @for dep in $?; do \ ++ case '$(am__configure_deps)' in \ ++ *$$dep*) \ ++ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ ++ && { if test -f $@; then exit 0; else break; fi; }; \ ++ exit 1;; \ ++ esac; \ ++ done; \ ++ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnits script/Makefile'; \ ++ $(am__cd) $(top_srcdir) && \ ++ $(AUTOMAKE) --gnits script/Makefile ++.PRECIOUS: Makefile ++Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status ++ @case '$?' in \ ++ *config.status*) \ ++ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ ++ *) \ ++ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ ++ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ ++ esac; ++ ++$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) ++ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ++ ++$(top_srcdir)/configure: # $(am__configure_deps) ++ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ++$(ACLOCAL_M4): # $(am__aclocal_m4_deps) ++ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ++$(am__aclocal_m4_deps): ++b-cstocs: $(top_builddir)/config.status $(srcdir)/b-cstocs.in ++ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ ++b-map: $(top_builddir)/config.status $(srcdir)/b-map.in ++ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ ++b-piconv: $(top_builddir)/config.status $(srcdir)/b-piconv.in ++ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ ++b-umap: $(top_builddir)/config.status $(srcdir)/b-umap.in ++ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ ++install-extconvSCRIPTS: $(extconv_SCRIPTS) ++ @$(NORMAL_INSTALL) ++ test -z "$(extconvdir)" || $(MKDIR_P) "$(DESTDIR)$(extconvdir)" ++ @list='$(extconv_SCRIPTS)'; test -n "$(extconvdir)" || list=; \ ++ for p in $$list; do \ ++ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ ++ if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \ ++ done | \ ++ sed -e 'p;s,.*/,,;n' \ ++ -e 'h;s|.*|.|' \ ++ -e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \ ++ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \ ++ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ ++ if ($$2 == $$4) { files[d] = files[d] " " $$1; \ ++ if (++n[d] == $(am__install_max)) { \ ++ print "f", d, files[d]; n[d] = 0; files[d] = "" } } \ ++ else { print "f", d "/" $$4, $$1 } } \ ++ END { for (d in files) print "f", d, files[d] }' | \ ++ while read type dir files; do \ ++ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ ++ test -z "$$files" || { \ ++ echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(extconvdir)$$dir'"; \ ++ $(INSTALL_SCRIPT) $$files "$(DESTDIR)$(extconvdir)$$dir" || exit $$?; \ ++ } \ ++ ; done ++ ++uninstall-extconvSCRIPTS: ++ @$(NORMAL_UNINSTALL) ++ @list='$(extconv_SCRIPTS)'; test -n "$(extconvdir)" || exit 0; \ ++ files=`for p in $$list; do echo "$$p"; done | \ ++ sed -e 's,.*/,,;$(transform)'`; \ ++ test -n "$$list" || exit 0; \ ++ echo " ( cd '$(DESTDIR)$(extconvdir)' && rm -f" $$files ")"; \ ++ cd "$(DESTDIR)$(extconvdir)" && rm -f $$files ++ ++installcheck-extconvSCRIPTS: $(extconv_SCRIPTS) ++ bad=0; pid=$$$$; list="$(extconv_SCRIPTS)"; for p in $$list; do \ ++ case ' $(AM_INSTALLCHECK_STD_OPTIONS_EXEMPT) ' in \ ++ *" $$p "* | *" $(srcdir)/$$p "*) continue;; \ ++ esac; \ ++ f=`echo "$$p" | sed 's,^.*/,,;$(transform)'`; \ ++ for opt in --help --version; do \ ++ if "$(DESTDIR)$(extconvdir)/$$f" $$opt >c$${pid}_.out \ ++ 2>c$${pid}_.err &2; bad=1; fi; \ ++ done; \ ++ done; rm -f c$${pid}_.???; exit $$bad ++ ++mostlyclean-libtool: ++ -rm -f *.lo ++ ++clean-libtool: ++ -rm -rf .libs _libs ++tags: TAGS ++TAGS: ++ ++ctags: CTAGS ++CTAGS: ++ ++ ++distdir: $(DISTFILES) ++ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ ++ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ ++ list='$(DISTFILES)'; \ ++ dist_files=`for file in $$list; do echo $$file; done | \ ++ sed -e "s|^$$srcdirstrip/||;t" \ ++ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ ++ case $$dist_files in \ ++ */*) $(MKDIR_P) `echo "$$dist_files" | \ ++ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ ++ sort -u` ;; \ ++ esac; \ ++ for file in $$dist_files; do \ ++ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ ++ if test -d $$d/$$file; then \ ++ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ ++ if test -d "$(distdir)/$$file"; then \ ++ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ ++ fi; \ ++ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ ++ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ ++ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ ++ fi; \ ++ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ ++ else \ ++ test -f "$(distdir)/$$file" \ ++ || cp -p $$d/$$file "$(distdir)/$$file" \ ++ || exit 1; \ ++ fi; \ ++ done ++check-am: all-am ++check: check-am ++all-am: Makefile $(SCRIPTS) ++installdirs: ++ for dir in "$(DESTDIR)$(extconvdir)"; do \ ++ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ ++ done ++install: install-am ++install-exec: install-exec-am ++install-data: install-data-am ++uninstall: uninstall-am ++ ++install-am: all-am ++ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am ++ ++installcheck: installcheck-am ++install-strip: ++ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ ++ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ ++ `test -z '$(STRIP)' || \ ++ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install ++mostlyclean-generic: ++ ++clean-generic: ++ ++distclean-generic: ++ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) ++ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) ++ ++maintainer-clean-generic: ++ @echo "This command is intended for maintainers to use" ++ @echo "it deletes files that may require special tools to rebuild." ++clean: clean-am ++ ++clean-am: clean-generic clean-libtool clean-local mostlyclean-am ++ ++distclean: distclean-am ++ -rm -f Makefile ++distclean-am: clean-am distclean-generic ++ ++dvi: dvi-am ++ ++dvi-am: ++ ++html: html-am ++ ++html-am: ++ ++info: info-am ++ ++info-am: ++ ++install-data-am: install-extconvSCRIPTS ++ ++install-dvi: install-dvi-am ++ ++install-dvi-am: ++ ++install-exec-am: ++ ++install-html: install-html-am ++ ++install-html-am: ++ ++install-info: install-info-am ++ ++install-info-am: ++ ++install-man: ++ ++install-pdf: install-pdf-am ++ ++install-pdf-am: ++ ++install-ps: install-ps-am ++ ++install-ps-am: ++ ++installcheck-am: installcheck-extconvSCRIPTS ++ ++maintainer-clean: maintainer-clean-am ++ -rm -f Makefile ++maintainer-clean-am: distclean-am maintainer-clean-generic ++ ++mostlyclean: mostlyclean-am ++ ++mostlyclean-am: mostlyclean-generic mostlyclean-libtool ++ ++pdf: pdf-am ++ ++pdf-am: ++ ++ps: ps-am ++ ++ps-am: ++ ++uninstall-am: uninstall-extconvSCRIPTS ++ ++.MAKE: install-am install-strip ++ ++.PHONY: all all-am check check-am clean clean-generic clean-libtool \ ++ clean-local distclean distclean-generic distclean-libtool \ ++ distdir dvi dvi-am html html-am info info-am install \ ++ install-am install-data install-data-am install-dvi \ ++ install-dvi-am install-exec install-exec-am \ ++ install-extconvSCRIPTS install-html install-html-am \ ++ install-info install-info-am install-man install-pdf \ ++ install-pdf-am install-ps install-ps-am install-strip \ ++ installcheck installcheck-am installcheck-extconvSCRIPTS \ ++ installdirs maintainer-clean maintainer-clean-generic \ ++ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ ++ ps ps-am uninstall uninstall-am uninstall-extconvSCRIPTS ++ ++ ++%: b-% ++ cat $< >$@ ++ ++clean-local: ++ rm -f $(extconv_SCRIPTS) *~ core.* ++ ++# Tell versions [3.59,3.63) of GNU make to not export all variables. ++# Otherwise a system limit (for SysV at least) may be exceeded. ++.NOEXPORT: +diff -Naur enca-1.13/src/.deps/enca-convert_extern.Po enca-1.13.patch/src/.deps/enca-convert_extern.Po +--- enca-1.13/src/.deps/enca-convert_extern.Po 1970-01-01 01:00:00.000000000 +0100 ++++ enca-1.13.patch/src/.deps/enca-convert_extern.Po 2010-04-16 18:41:17.996442866 +0200 +@@ -0,0 +1 @@ ++# dummy +diff -Naur enca-1.13/src/.deps/enca-convert_iconv.Po enca-1.13.patch/src/.deps/enca-convert_iconv.Po +--- enca-1.13/src/.deps/enca-convert_iconv.Po 1970-01-01 01:00:00.000000000 +0100 ++++ enca-1.13.patch/src/.deps/enca-convert_iconv.Po 2010-04-16 18:41:17.998468108 +0200 +@@ -0,0 +1 @@ ++# dummy +diff -Naur enca-1.13/src/.deps/enca-convert.Po enca-1.13.patch/src/.deps/enca-convert.Po +--- enca-1.13/src/.deps/enca-convert.Po 1970-01-01 01:00:00.000000000 +0100 ++++ enca-1.13.patch/src/.deps/enca-convert.Po 2010-04-16 18:41:17.994468607 +0200 +@@ -0,0 +1 @@ ++# dummy +diff -Naur enca-1.13/src/.deps/enca-convert_recode.Po enca-1.13.patch/src/.deps/enca-convert_recode.Po +--- enca-1.13/src/.deps/enca-convert_recode.Po 1970-01-01 01:00:00.000000000 +0100 ++++ enca-1.13.patch/src/.deps/enca-convert_recode.Po 2010-04-16 18:41:18.000442856 +0200 +@@ -0,0 +1 @@ ++# dummy +diff -Naur enca-1.13/src/.deps/enca-COPYING.Po enca-1.13.patch/src/.deps/enca-COPYING.Po +--- enca-1.13/src/.deps/enca-COPYING.Po 1970-01-01 01:00:00.000000000 +0100 ++++ enca-1.13.patch/src/.deps/enca-COPYING.Po 2010-04-16 18:41:17.990468547 +0200 +@@ -0,0 +1 @@ ++# dummy +diff -Naur enca-1.13/src/.deps/enca-enca.Po enca-1.13.patch/src/.deps/enca-enca.Po +--- enca-1.13/src/.deps/enca-enca.Po 1970-01-01 01:00:00.000000000 +0100 ++++ enca-1.13.patch/src/.deps/enca-enca.Po 2010-04-16 18:41:18.002467470 +0200 +@@ -0,0 +1 @@ ++# dummy +diff -Naur enca-1.13/src/.deps/enca-filebuf.Po enca-1.13.patch/src/.deps/enca-filebuf.Po +--- enca-1.13/src/.deps/enca-filebuf.Po 1970-01-01 01:00:00.000000000 +0100 ++++ enca-1.13.patch/src/.deps/enca-filebuf.Po 2010-04-16 18:41:18.003442726 +0200 +@@ -0,0 +1 @@ ++# dummy +diff -Naur enca-1.13/src/.deps/enca-HELP.Po enca-1.13.patch/src/.deps/enca-HELP.Po +--- enca-1.13/src/.deps/enca-HELP.Po 1970-01-01 01:00:00.000000000 +0100 ++++ enca-1.13.patch/src/.deps/enca-HELP.Po 2010-04-16 18:41:17.992442736 +0200 +@@ -0,0 +1 @@ ++# dummy +diff -Naur enca-1.13/src/.deps/enca-locale_detect.Po enca-1.13.patch/src/.deps/enca-locale_detect.Po +--- enca-1.13/src/.deps/enca-locale_detect.Po 1970-01-01 01:00:00.000000000 +0100 ++++ enca-1.13.patch/src/.deps/enca-locale_detect.Po 2010-04-16 18:41:18.005442686 +0200 +@@ -0,0 +1 @@ ++# dummy +diff -Naur enca-1.13/src/.deps/enca-options.Po enca-1.13.patch/src/.deps/enca-options.Po +--- enca-1.13/src/.deps/enca-options.Po 1970-01-01 01:00:00.000000000 +0100 ++++ enca-1.13.patch/src/.deps/enca-options.Po 2010-04-16 18:41:18.006442876 +0200 +@@ -0,0 +1 @@ ++# dummy +diff -Naur enca-1.13/src/.deps/getopt_long.Po enca-1.13.patch/src/.deps/getopt_long.Po +--- enca-1.13/src/.deps/getopt_long.Po 1970-01-01 01:00:00.000000000 +0100 ++++ enca-1.13.patch/src/.deps/getopt_long.Po 2010-04-16 18:41:17.988442676 +0200 +@@ -0,0 +1 @@ ++# dummy +diff -Naur enca-1.13/src/HELP enca-1.13.patch/src/HELP +--- enca-1.13/src/HELP 1970-01-01 01:00:00.000000000 +0100 ++++ enca-1.13.patch/src/HELP 2010-04-16 18:41:17.727318046 +0200 +@@ -0,0 +1,50 @@ ++Usage: enca [-L LANGUAGE] [OPTION]... [FILE]... ++ enconv [-L LANGUAGE] [OPTION]... [FILE]... ++Detect encoding of text files and convert them if required. ++ ++Operation modes: ++ -g, --guess Behave as `enca' (just detect encoding by default) ++ -c, --auto-convert Behave as `enconv' (autoconvert by default) ++ ++Output type selectors: ++ -d, --details Print failure reason when encoding was not recognized ++ -e, --enca-name Print enca's encoding name (passed to converters) ++ -f, --human-readable Print full (descriptive) encoding name (default) ++ -i, --iconv-name Print how iconv calls the encoding ++ -m, --mime-name Print preferred MIME encoding name ++ -r, --rfc1345-name Print RFC 1345 (or otherwise canonized) encoding name ++ -s, --cstocs-name Print how cstocs calls the encoding ++ -n, --name=WORD Print required name (enca-name, human-readable, etc.) ++ -x, --convert-to=ENC Convert file to some other encoding ENC ++ ++Guessing parameters: ++ -L, --language=LANG Set language of FILEs; obligatory, when cannot be ++ determined from locale settings ++ ++Conversion parameters: ++ -E, --external-converter-program=PATH ++ Set external converter program name ++ (default: piconv) ++ -C, --try-converters=LIST Converters to be tried (associative) ++ (default: built-in,iconv) ++ ++General options: ++ -p, --with-filename Print the file name for each result ++ -P, --no-filename Suppress the prefixing filename on output ++ -V, --verbose Increase verbosity level ++ ++Listings: ++ -G, --license Print full enca license and terminate ++ -h, --help Print this help and terminate ++ -l, --list=WORD Print required list (built-in-charsets, converters, ++ charsets, languages, lists, names, surfaces) ++ and terminate ++ -v, --version Print version and build information and terminate ++ ++With no FILE, reads standard input and possibly writes converted stream to ++standard output. Exit status is 0 if all files were successfully proceeded, ++1 if some were not recognized or converted, 2 in real troubles. ++ ++When called as `enconv' without -x, target encoding it guessed from locales. ++ ++Report bugs to https://bugs.cihar.com/ +diff -Naur enca-1.13/src/Makefile enca-1.13.patch/src/Makefile +--- enca-1.13/src/Makefile 1970-01-01 01:00:00.000000000 +0100 ++++ enca-1.13.patch/src/Makefile 2010-04-16 18:41:17.711325139 +0200 +@@ -0,0 +1,769 @@ ++# Makefile.in generated by automake 1.11.1 from Makefile.am. ++# src/Makefile. Generated from Makefile.in by configure. ++ ++# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, ++# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, ++# Inc. ++# This Makefile.in is free software; the Free Software Foundation ++# gives unlimited permission to copy and/or distribute it, ++# with or without modifications, as long as this notice is preserved. ++ ++# This program is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY, to the extent permitted by law; without ++# even the implied warranty of MERCHANTABILITY or FITNESS FOR A ++# PARTICULAR PURPOSE. ++ ++ ++ ++ ++ ++pkgdatadir = $(datadir)/enca ++pkgincludedir = $(includedir)/enca ++pkglibdir = $(libdir)/enca ++pkglibexecdir = $(libexecdir)/enca ++am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd ++install_sh_DATA = $(install_sh) -c -m 644 ++install_sh_PROGRAM = $(install_sh) -c ++install_sh_SCRIPT = $(install_sh) -c ++INSTALL_HEADER = $(INSTALL_DATA) ++transform = $(program_transform_name) ++NORMAL_INSTALL = : ++PRE_INSTALL = : ++POST_INSTALL = : ++NORMAL_UNINSTALL = : ++PRE_UNINSTALL = : ++POST_UNINSTALL = : ++build_triplet = i686-pc-linux-gnu ++host_triplet = i686-pc-linux-gnu ++bin_PROGRAMS = enca$(EXEEXT) ++subdir = src ++DIST_COMMON = $(srcdir)/HELP.in $(srcdir)/Makefile.am \ ++ $(srcdir)/Makefile.in getopt_long.c ++ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 ++am__aclocal_m4_deps = $(top_srcdir)/m4/gtk-doc.m4 \ ++ $(top_srcdir)/m4/libiconv.m4 $(top_srcdir)/m4/libm.m4 \ ++ $(top_srcdir)/m4/librecode.m4 $(top_srcdir)/m4/libtool.m4 \ ++ $(top_srcdir)/m4/localias.m4 $(top_srcdir)/m4/ltoptions.m4 \ ++ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ ++ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/tools.m4 \ ++ $(top_srcdir)/m4/typevar.m4 $(top_srcdir)/configure.ac ++am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ ++ $(ACLOCAL_M4) ++mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs ++CONFIG_HEADER = $(top_builddir)/config.h ++CONFIG_CLEAN_FILES = HELP ++CONFIG_CLEAN_VPATH_FILES = ++am__installdirs = "$(DESTDIR)$(bindir)" ++PROGRAMS = $(bin_PROGRAMS) ++am_enca_OBJECTS = enca-COPYING.$(OBJEXT) enca-HELP.$(OBJEXT) \ ++ enca-convert.$(OBJEXT) enca-convert_extern.$(OBJEXT) \ ++ enca-convert_recode.$(OBJEXT) enca-convert_iconv.$(OBJEXT) \ ++ enca-enca.$(OBJEXT) enca-filebuf.$(OBJEXT) \ ++ enca-locale_detect.$(OBJEXT) enca-options.$(OBJEXT) ++enca_OBJECTS = $(am_enca_OBJECTS) ++enca_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ ++ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(enca_LDFLAGS) \ ++ $(LDFLAGS) -o $@ ++SCRIPTS = $(noinst_SCRIPTS) ++DEFAULT_INCLUDES = -I. -I$(top_builddir) ++depcomp = $(SHELL) $(top_srcdir)/depcomp ++am__depfiles_maybe = depfiles ++am__mv = mv -f ++COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ ++ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) ++LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ ++ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ ++ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) ++CCLD = $(CC) ++LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ ++ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ ++ $(LDFLAGS) -o $@ ++SOURCES = $(enca_SOURCES) $(EXTRA_enca_SOURCES) ++DIST_SOURCES = $(enca_SOURCES) $(EXTRA_enca_SOURCES) ++ETAGS = etags ++CTAGS = ctags ++DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ++ACLOCAL = ${SHELL} /home/stephan/projects/openelec/sources/enca/enca-1.13.patch/missing --run aclocal-1.11 -I m4 ++AMTAR = ${SHELL} /home/stephan/projects/openelec/sources/enca/enca-1.13.patch/missing --run tar ++AR = ar ++AUTOCONF = ${SHELL} /home/stephan/projects/openelec/sources/enca/enca-1.13.patch/missing --run autoconf ++AUTOHEADER = ${SHELL} /home/stephan/projects/openelec/sources/enca/enca-1.13.patch/missing --run autoheader ++AUTOMAKE = ${SHELL} /home/stephan/projects/openelec/sources/enca/enca-1.13.patch/missing --run automake-1.11 ++AWK = gawk ++CC = gcc ++CCDEPMODE = depmode=gcc3 ++CFLAGS = -Wall -W -pedantic -g -O2 ++CONVERTER_LIBS = ++CPP = gcc -E ++CPPFLAGS = ++CSTOCS_PROG = ++CYGPATH_W = echo ++DEFAULT_CONVERTER_LIST = built-in,iconv ++DEFAULT_EXTERNAL_CONVERTER = piconv ++DEFS = -DHAVE_CONFIG_H ++DEPDIR = .deps ++DSYMUTIL = ++DUMPBIN = ++ECHO_C = ++ECHO_N = -n ++ECHO_T = ++EGREP = /bin/grep -E ++EXEEXT = ++FGREP = /bin/grep -F ++GREP = /bin/grep ++GTKDOC = true ++HTML_DIR = ${datarootdir}/gtk-doc/html ++INSTALL = /usr/bin/install -c ++INSTALL_DATA = ${INSTALL} -m 644 ++INSTALL_PROGRAM = ${INSTALL} ++INSTALL_SCRIPT = ${INSTALL} ++INSTALL_STRIP_PROGRAM = $(install_sh) -c -s ++LD = /usr/bin/ld ++LDFLAGS = ++LIBICONV = ++LIBM = -lm ++LIBOBJS = ++LIBS = -lm ++LIBTOOL = $(SHELL) $(top_builddir)/libtool ++LIPO = ++LN_S = ln -s ++LTLIBICONV = ++LTLIBOBJS = ++MAINT = # ++MAKEINFO = ${SHELL} /home/stephan/projects/openelec/sources/enca/enca-1.13.patch/missing --run makeinfo ++MAP_PROG = ++MKDIR_P = /bin/mkdir -p ++MKTEMP_PROG = /bin/mktemp ++NM = /usr/bin/nm -B ++NMEDIT = ++OBJDUMP = objdump ++OBJEXT = o ++OTOOL = ++OTOOL64 = ++PACKAGE = enca ++PACKAGE_BUGREPORT = https://bugs.cihar.com/ ++PACKAGE_NAME = Enca ++PACKAGE_STRING = Enca 1.13 ++PACKAGE_TARNAME = enca ++PACKAGE_URL = ++PACKAGE_VERSION = 1.13 ++PATH_SEPARATOR = : ++PICONV_PROG = /usr/bin/piconv ++RANLIB = ranlib ++RECODE_PROG = ++RELEASE = 1 ++SED = /bin/sed ++SET_MAKE = ++SHELL = /bin/sh ++SHELL_RANDOM_FILENAME = `/bin/mktemp /tmp/enca-$$-XXXXXXXX` ++STRIP = strip ++UMAP_PROG = ++VERSION = 1.13 ++abs_builddir = /home/stephan/projects/openelec/sources/enca/enca-1.13.patch/src ++abs_srcdir = /home/stephan/projects/openelec/sources/enca/enca-1.13.patch/src ++abs_top_builddir = /home/stephan/projects/openelec/sources/enca/enca-1.13.patch ++abs_top_srcdir = /home/stephan/projects/openelec/sources/enca/enca-1.13.patch ++ac_ct_CC = gcc ++ac_ct_DUMPBIN = ++am__include = include ++am__leading_dot = . ++am__quote = ++am__tar = ${AMTAR} chof - "$$tardir" ++am__untar = ${AMTAR} xf - ++bindir = ${exec_prefix}/bin ++build = i686-pc-linux-gnu ++build_alias = ++build_cpu = i686 ++build_os = linux-gnu ++build_vendor = pc ++builddir = . ++datadir = ${datarootdir} ++datarootdir = ${prefix}/share ++docdir = ${datarootdir}/doc/${PACKAGE_TARNAME} ++dvidir = ${docdir} ++exec_prefix = ${prefix} ++host = i686-pc-linux-gnu ++host_alias = ++host_cpu = i686 ++host_os = linux-gnu ++host_vendor = pc ++htmldir = ${docdir} ++includedir = ${prefix}/include ++infodir = ${datarootdir}/info ++install_sh = ${SHELL} /home/stephan/projects/openelec/sources/enca/enca-1.13.patch/install-sh ++libdir = ${exec_prefix}/lib ++libexecdir = ${exec_prefix}/libexec ++localedir = ${datarootdir}/locale ++localstatedir = ${prefix}/var ++lt_ECHO = echo ++mandir = ${datarootdir}/man ++mkdir_p = /bin/mkdir -p ++oldincludedir = /usr/include ++pdfdir = ${docdir} ++prefix = /usr/local ++program_transform_name = s,x,x, ++psdir = ${docdir} ++sbindir = ${exec_prefix}/sbin ++sharedstatedir = ${prefix}/com ++srcdir = . ++sysconfdir = ${prefix}/etc ++target_alias = ++top_build_prefix = ../ ++top_builddir = .. ++top_srcdir = .. ++noinst_SCRIPTS = text2c.sh ++enca_SOURCES = \ ++ COPYING.c \ ++ HELP.c \ ++ common.h \ ++ convert.c \ ++ convert_extern.c \ ++ convert_recode.c \ ++ convert_iconv.c \ ++ enca.c \ ++ filebuf.c \ ++ locale_detect.c \ ++ options.c ++ ++EXTRA_enca_SOURCES = \ ++ getopt.h ++ ++BUILT_SOURCES = \ ++ COPYING.c \ ++ HELP.c ++ ++EXTRA_DIST = \ ++ HELP.in \ ++ text2c.sh ++ ++enca_LDADD = ../lib/libenca.la ++enca_LDFLAGS = -lm ++enca_DEPENDENCIES = ../lib/libenca.la ++enca_CPPFLAGS = -DEXTCONV_DIR=\"${exec_prefix}/libexec/enca/extconv\" ++INCLUDES = -I$(top_srcdir)/lib ++all: $(BUILT_SOURCES) ++ $(MAKE) $(AM_MAKEFLAGS) all-am ++ ++.SUFFIXES: ++.SUFFIXES: .c .lo .o .obj ++$(srcdir)/Makefile.in: # $(srcdir)/Makefile.am $(am__configure_deps) ++ @for dep in $?; do \ ++ case '$(am__configure_deps)' in \ ++ *$$dep*) \ ++ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ ++ && { if test -f $@; then exit 0; else break; fi; }; \ ++ exit 1;; \ ++ esac; \ ++ done; \ ++ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnits src/Makefile'; \ ++ $(am__cd) $(top_srcdir) && \ ++ $(AUTOMAKE) --gnits src/Makefile ++.PRECIOUS: Makefile ++Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status ++ @case '$?' in \ ++ *config.status*) \ ++ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ ++ *) \ ++ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ ++ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ ++ esac; ++ ++$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) ++ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ++ ++$(top_srcdir)/configure: # $(am__configure_deps) ++ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ++$(ACLOCAL_M4): # $(am__aclocal_m4_deps) ++ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ++$(am__aclocal_m4_deps): ++HELP: $(top_builddir)/config.status $(srcdir)/HELP.in ++ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ ++install-binPROGRAMS: $(bin_PROGRAMS) ++ @$(NORMAL_INSTALL) ++ test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)" ++ @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ ++ for p in $$list; do echo "$$p $$p"; done | \ ++ sed 's/$(EXEEXT)$$//' | \ ++ while read p p1; do if test -f $$p || test -f $$p1; \ ++ then echo "$$p"; echo "$$p"; else :; fi; \ ++ done | \ ++ sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \ ++ -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ ++ sed 'N;N;N;s,\n, ,g' | \ ++ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ ++ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ ++ if ($$2 == $$4) files[d] = files[d] " " $$1; \ ++ else { print "f", $$3 "/" $$4, $$1; } } \ ++ END { for (d in files) print "f", d, files[d] }' | \ ++ while read type dir files; do \ ++ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ ++ test -z "$$files" || { \ ++ echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \ ++ $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ ++ } \ ++ ; done ++ ++uninstall-binPROGRAMS: ++ @$(NORMAL_UNINSTALL) ++ @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ ++ files=`for p in $$list; do echo "$$p"; done | \ ++ sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ ++ -e 's/$$/$(EXEEXT)/' `; \ ++ test -n "$$list" || exit 0; \ ++ echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ ++ cd "$(DESTDIR)$(bindir)" && rm -f $$files ++ ++clean-binPROGRAMS: ++ @list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \ ++ echo " rm -f" $$list; \ ++ rm -f $$list || exit $$?; \ ++ test -n "$(EXEEXT)" || exit 0; \ ++ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ ++ echo " rm -f" $$list; \ ++ rm -f $$list ++ ++installcheck-binPROGRAMS: $(bin_PROGRAMS) ++ bad=0; pid=$$$$; list="$(bin_PROGRAMS)"; for p in $$list; do \ ++ case ' $(AM_INSTALLCHECK_STD_OPTIONS_EXEMPT) ' in \ ++ *" $$p "* | *" $(srcdir)/$$p "*) continue;; \ ++ esac; \ ++ f=`echo "$$p" | \ ++ sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \ ++ for opt in --help --version; do \ ++ if "$(DESTDIR)$(bindir)/$$f" $$opt >c$${pid}_.out \ ++ 2>c$${pid}_.err &2; bad=1; fi; \ ++ done; \ ++ done; rm -f c$${pid}_.???; exit $$bad ++enca$(EXEEXT): $(enca_OBJECTS) $(enca_DEPENDENCIES) ++ @rm -f enca$(EXEEXT) ++ $(enca_LINK) $(enca_OBJECTS) $(enca_LDADD) $(LIBS) ++ ++mostlyclean-compile: ++ -rm -f *.$(OBJEXT) ++ ++distclean-compile: ++ -rm -f *.tab.c ++ ++include $(DEPDIR)/getopt_long.Po ++include ./$(DEPDIR)/enca-COPYING.Po ++include ./$(DEPDIR)/enca-HELP.Po ++include ./$(DEPDIR)/enca-convert.Po ++include ./$(DEPDIR)/enca-convert_extern.Po ++include ./$(DEPDIR)/enca-convert_iconv.Po ++include ./$(DEPDIR)/enca-convert_recode.Po ++include ./$(DEPDIR)/enca-enca.Po ++include ./$(DEPDIR)/enca-filebuf.Po ++include ./$(DEPDIR)/enca-locale_detect.Po ++include ./$(DEPDIR)/enca-options.Po ++ ++.c.o: ++ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< ++ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po ++# source='$<' object='$@' libtool=no \ ++# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \ ++# $(COMPILE) -c $< ++ ++.c.obj: ++ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` ++ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po ++# source='$<' object='$@' libtool=no \ ++# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \ ++# $(COMPILE) -c `$(CYGPATH_W) '$<'` ++ ++.c.lo: ++ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< ++ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo ++# source='$<' object='$@' libtool=yes \ ++# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \ ++# $(LTCOMPILE) -c -o $@ $< ++ ++enca-COPYING.o: COPYING.c ++ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(enca_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT enca-COPYING.o -MD -MP -MF $(DEPDIR)/enca-COPYING.Tpo -c -o enca-COPYING.o `test -f 'COPYING.c' || echo '$(srcdir)/'`COPYING.c ++ $(am__mv) $(DEPDIR)/enca-COPYING.Tpo $(DEPDIR)/enca-COPYING.Po ++# source='COPYING.c' object='enca-COPYING.o' libtool=no \ ++# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \ ++# $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(enca_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o enca-COPYING.o `test -f 'COPYING.c' || echo '$(srcdir)/'`COPYING.c ++ ++enca-COPYING.obj: COPYING.c ++ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(enca_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT enca-COPYING.obj -MD -MP -MF $(DEPDIR)/enca-COPYING.Tpo -c -o enca-COPYING.obj `if test -f 'COPYING.c'; then $(CYGPATH_W) 'COPYING.c'; else $(CYGPATH_W) '$(srcdir)/COPYING.c'; fi` ++ $(am__mv) $(DEPDIR)/enca-COPYING.Tpo $(DEPDIR)/enca-COPYING.Po ++# source='COPYING.c' object='enca-COPYING.obj' libtool=no \ ++# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \ ++# $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(enca_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o enca-COPYING.obj `if test -f 'COPYING.c'; then $(CYGPATH_W) 'COPYING.c'; else $(CYGPATH_W) '$(srcdir)/COPYING.c'; fi` ++ ++enca-HELP.o: HELP.c ++ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(enca_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT enca-HELP.o -MD -MP -MF $(DEPDIR)/enca-HELP.Tpo -c -o enca-HELP.o `test -f 'HELP.c' || echo '$(srcdir)/'`HELP.c ++ $(am__mv) $(DEPDIR)/enca-HELP.Tpo $(DEPDIR)/enca-HELP.Po ++# source='HELP.c' object='enca-HELP.o' libtool=no \ ++# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \ ++# $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(enca_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o enca-HELP.o `test -f 'HELP.c' || echo '$(srcdir)/'`HELP.c ++ ++enca-HELP.obj: HELP.c ++ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(enca_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT enca-HELP.obj -MD -MP -MF $(DEPDIR)/enca-HELP.Tpo -c -o enca-HELP.obj `if test -f 'HELP.c'; then $(CYGPATH_W) 'HELP.c'; else $(CYGPATH_W) '$(srcdir)/HELP.c'; fi` ++ $(am__mv) $(DEPDIR)/enca-HELP.Tpo $(DEPDIR)/enca-HELP.Po ++# source='HELP.c' object='enca-HELP.obj' libtool=no \ ++# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \ ++# $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(enca_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o enca-HELP.obj `if test -f 'HELP.c'; then $(CYGPATH_W) 'HELP.c'; else $(CYGPATH_W) '$(srcdir)/HELP.c'; fi` ++ ++enca-convert.o: convert.c ++ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(enca_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT enca-convert.o -MD -MP -MF $(DEPDIR)/enca-convert.Tpo -c -o enca-convert.o `test -f 'convert.c' || echo '$(srcdir)/'`convert.c ++ $(am__mv) $(DEPDIR)/enca-convert.Tpo $(DEPDIR)/enca-convert.Po ++# source='convert.c' object='enca-convert.o' libtool=no \ ++# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \ ++# $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(enca_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o enca-convert.o `test -f 'convert.c' || echo '$(srcdir)/'`convert.c ++ ++enca-convert.obj: convert.c ++ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(enca_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT enca-convert.obj -MD -MP -MF $(DEPDIR)/enca-convert.Tpo -c -o enca-convert.obj `if test -f 'convert.c'; then $(CYGPATH_W) 'convert.c'; else $(CYGPATH_W) '$(srcdir)/convert.c'; fi` ++ $(am__mv) $(DEPDIR)/enca-convert.Tpo $(DEPDIR)/enca-convert.Po ++# source='convert.c' object='enca-convert.obj' libtool=no \ ++# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \ ++# $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(enca_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o enca-convert.obj `if test -f 'convert.c'; then $(CYGPATH_W) 'convert.c'; else $(CYGPATH_W) '$(srcdir)/convert.c'; fi` ++ ++enca-convert_extern.o: convert_extern.c ++ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(enca_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT enca-convert_extern.o -MD -MP -MF $(DEPDIR)/enca-convert_extern.Tpo -c -o enca-convert_extern.o `test -f 'convert_extern.c' || echo '$(srcdir)/'`convert_extern.c ++ $(am__mv) $(DEPDIR)/enca-convert_extern.Tpo $(DEPDIR)/enca-convert_extern.Po ++# source='convert_extern.c' object='enca-convert_extern.o' libtool=no \ ++# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \ ++# $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(enca_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o enca-convert_extern.o `test -f 'convert_extern.c' || echo '$(srcdir)/'`convert_extern.c ++ ++enca-convert_extern.obj: convert_extern.c ++ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(enca_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT enca-convert_extern.obj -MD -MP -MF $(DEPDIR)/enca-convert_extern.Tpo -c -o enca-convert_extern.obj `if test -f 'convert_extern.c'; then $(CYGPATH_W) 'convert_extern.c'; else $(CYGPATH_W) '$(srcdir)/convert_extern.c'; fi` ++ $(am__mv) $(DEPDIR)/enca-convert_extern.Tpo $(DEPDIR)/enca-convert_extern.Po ++# source='convert_extern.c' object='enca-convert_extern.obj' libtool=no \ ++# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \ ++# $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(enca_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o enca-convert_extern.obj `if test -f 'convert_extern.c'; then $(CYGPATH_W) 'convert_extern.c'; else $(CYGPATH_W) '$(srcdir)/convert_extern.c'; fi` ++ ++enca-convert_recode.o: convert_recode.c ++ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(enca_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT enca-convert_recode.o -MD -MP -MF $(DEPDIR)/enca-convert_recode.Tpo -c -o enca-convert_recode.o `test -f 'convert_recode.c' || echo '$(srcdir)/'`convert_recode.c ++ $(am__mv) $(DEPDIR)/enca-convert_recode.Tpo $(DEPDIR)/enca-convert_recode.Po ++# source='convert_recode.c' object='enca-convert_recode.o' libtool=no \ ++# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \ ++# $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(enca_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o enca-convert_recode.o `test -f 'convert_recode.c' || echo '$(srcdir)/'`convert_recode.c ++ ++enca-convert_recode.obj: convert_recode.c ++ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(enca_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT enca-convert_recode.obj -MD -MP -MF $(DEPDIR)/enca-convert_recode.Tpo -c -o enca-convert_recode.obj `if test -f 'convert_recode.c'; then $(CYGPATH_W) 'convert_recode.c'; else $(CYGPATH_W) '$(srcdir)/convert_recode.c'; fi` ++ $(am__mv) $(DEPDIR)/enca-convert_recode.Tpo $(DEPDIR)/enca-convert_recode.Po ++# source='convert_recode.c' object='enca-convert_recode.obj' libtool=no \ ++# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \ ++# $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(enca_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o enca-convert_recode.obj `if test -f 'convert_recode.c'; then $(CYGPATH_W) 'convert_recode.c'; else $(CYGPATH_W) '$(srcdir)/convert_recode.c'; fi` ++ ++enca-convert_iconv.o: convert_iconv.c ++ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(enca_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT enca-convert_iconv.o -MD -MP -MF $(DEPDIR)/enca-convert_iconv.Tpo -c -o enca-convert_iconv.o `test -f 'convert_iconv.c' || echo '$(srcdir)/'`convert_iconv.c ++ $(am__mv) $(DEPDIR)/enca-convert_iconv.Tpo $(DEPDIR)/enca-convert_iconv.Po ++# source='convert_iconv.c' object='enca-convert_iconv.o' libtool=no \ ++# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \ ++# $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(enca_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o enca-convert_iconv.o `test -f 'convert_iconv.c' || echo '$(srcdir)/'`convert_iconv.c ++ ++enca-convert_iconv.obj: convert_iconv.c ++ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(enca_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT enca-convert_iconv.obj -MD -MP -MF $(DEPDIR)/enca-convert_iconv.Tpo -c -o enca-convert_iconv.obj `if test -f 'convert_iconv.c'; then $(CYGPATH_W) 'convert_iconv.c'; else $(CYGPATH_W) '$(srcdir)/convert_iconv.c'; fi` ++ $(am__mv) $(DEPDIR)/enca-convert_iconv.Tpo $(DEPDIR)/enca-convert_iconv.Po ++# source='convert_iconv.c' object='enca-convert_iconv.obj' libtool=no \ ++# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \ ++# $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(enca_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o enca-convert_iconv.obj `if test -f 'convert_iconv.c'; then $(CYGPATH_W) 'convert_iconv.c'; else $(CYGPATH_W) '$(srcdir)/convert_iconv.c'; fi` ++ ++enca-enca.o: enca.c ++ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(enca_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT enca-enca.o -MD -MP -MF $(DEPDIR)/enca-enca.Tpo -c -o enca-enca.o `test -f 'enca.c' || echo '$(srcdir)/'`enca.c ++ $(am__mv) $(DEPDIR)/enca-enca.Tpo $(DEPDIR)/enca-enca.Po ++# source='enca.c' object='enca-enca.o' libtool=no \ ++# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \ ++# $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(enca_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o enca-enca.o `test -f 'enca.c' || echo '$(srcdir)/'`enca.c ++ ++enca-enca.obj: enca.c ++ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(enca_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT enca-enca.obj -MD -MP -MF $(DEPDIR)/enca-enca.Tpo -c -o enca-enca.obj `if test -f 'enca.c'; then $(CYGPATH_W) 'enca.c'; else $(CYGPATH_W) '$(srcdir)/enca.c'; fi` ++ $(am__mv) $(DEPDIR)/enca-enca.Tpo $(DEPDIR)/enca-enca.Po ++# source='enca.c' object='enca-enca.obj' libtool=no \ ++# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \ ++# $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(enca_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o enca-enca.obj `if test -f 'enca.c'; then $(CYGPATH_W) 'enca.c'; else $(CYGPATH_W) '$(srcdir)/enca.c'; fi` ++ ++enca-filebuf.o: filebuf.c ++ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(enca_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT enca-filebuf.o -MD -MP -MF $(DEPDIR)/enca-filebuf.Tpo -c -o enca-filebuf.o `test -f 'filebuf.c' || echo '$(srcdir)/'`filebuf.c ++ $(am__mv) $(DEPDIR)/enca-filebuf.Tpo $(DEPDIR)/enca-filebuf.Po ++# source='filebuf.c' object='enca-filebuf.o' libtool=no \ ++# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \ ++# $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(enca_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o enca-filebuf.o `test -f 'filebuf.c' || echo '$(srcdir)/'`filebuf.c ++ ++enca-filebuf.obj: filebuf.c ++ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(enca_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT enca-filebuf.obj -MD -MP -MF $(DEPDIR)/enca-filebuf.Tpo -c -o enca-filebuf.obj `if test -f 'filebuf.c'; then $(CYGPATH_W) 'filebuf.c'; else $(CYGPATH_W) '$(srcdir)/filebuf.c'; fi` ++ $(am__mv) $(DEPDIR)/enca-filebuf.Tpo $(DEPDIR)/enca-filebuf.Po ++# source='filebuf.c' object='enca-filebuf.obj' libtool=no \ ++# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \ ++# $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(enca_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o enca-filebuf.obj `if test -f 'filebuf.c'; then $(CYGPATH_W) 'filebuf.c'; else $(CYGPATH_W) '$(srcdir)/filebuf.c'; fi` ++ ++enca-locale_detect.o: locale_detect.c ++ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(enca_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT enca-locale_detect.o -MD -MP -MF $(DEPDIR)/enca-locale_detect.Tpo -c -o enca-locale_detect.o `test -f 'locale_detect.c' || echo '$(srcdir)/'`locale_detect.c ++ $(am__mv) $(DEPDIR)/enca-locale_detect.Tpo $(DEPDIR)/enca-locale_detect.Po ++# source='locale_detect.c' object='enca-locale_detect.o' libtool=no \ ++# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \ ++# $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(enca_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o enca-locale_detect.o `test -f 'locale_detect.c' || echo '$(srcdir)/'`locale_detect.c ++ ++enca-locale_detect.obj: locale_detect.c ++ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(enca_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT enca-locale_detect.obj -MD -MP -MF $(DEPDIR)/enca-locale_detect.Tpo -c -o enca-locale_detect.obj `if test -f 'locale_detect.c'; then $(CYGPATH_W) 'locale_detect.c'; else $(CYGPATH_W) '$(srcdir)/locale_detect.c'; fi` ++ $(am__mv) $(DEPDIR)/enca-locale_detect.Tpo $(DEPDIR)/enca-locale_detect.Po ++# source='locale_detect.c' object='enca-locale_detect.obj' libtool=no \ ++# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \ ++# $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(enca_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o enca-locale_detect.obj `if test -f 'locale_detect.c'; then $(CYGPATH_W) 'locale_detect.c'; else $(CYGPATH_W) '$(srcdir)/locale_detect.c'; fi` ++ ++enca-options.o: options.c ++ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(enca_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT enca-options.o -MD -MP -MF $(DEPDIR)/enca-options.Tpo -c -o enca-options.o `test -f 'options.c' || echo '$(srcdir)/'`options.c ++ $(am__mv) $(DEPDIR)/enca-options.Tpo $(DEPDIR)/enca-options.Po ++# source='options.c' object='enca-options.o' libtool=no \ ++# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \ ++# $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(enca_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o enca-options.o `test -f 'options.c' || echo '$(srcdir)/'`options.c ++ ++enca-options.obj: options.c ++ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(enca_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT enca-options.obj -MD -MP -MF $(DEPDIR)/enca-options.Tpo -c -o enca-options.obj `if test -f 'options.c'; then $(CYGPATH_W) 'options.c'; else $(CYGPATH_W) '$(srcdir)/options.c'; fi` ++ $(am__mv) $(DEPDIR)/enca-options.Tpo $(DEPDIR)/enca-options.Po ++# source='options.c' object='enca-options.obj' libtool=no \ ++# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \ ++# $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(enca_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o enca-options.obj `if test -f 'options.c'; then $(CYGPATH_W) 'options.c'; else $(CYGPATH_W) '$(srcdir)/options.c'; fi` ++ ++mostlyclean-libtool: ++ -rm -f *.lo ++ ++clean-libtool: ++ -rm -rf .libs _libs ++ ++ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) ++ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ ++ unique=`for i in $$list; do \ ++ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ ++ done | \ ++ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ ++ END { if (nonempty) { for (i in files) print i; }; }'`; \ ++ mkid -fID $$unique ++tags: TAGS ++ ++TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ ++ $(TAGS_FILES) $(LISP) ++ set x; \ ++ here=`pwd`; \ ++ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ ++ unique=`for i in $$list; do \ ++ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ ++ done | \ ++ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ ++ END { if (nonempty) { for (i in files) print i; }; }'`; \ ++ shift; \ ++ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ ++ test -n "$$unique" || unique=$$empty_fix; \ ++ if test $$# -gt 0; then \ ++ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ ++ "$$@" $$unique; \ ++ else \ ++ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ ++ $$unique; \ ++ fi; \ ++ fi ++ctags: CTAGS ++CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ ++ $(TAGS_FILES) $(LISP) ++ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ ++ unique=`for i in $$list; do \ ++ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ ++ done | \ ++ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ ++ END { if (nonempty) { for (i in files) print i; }; }'`; \ ++ test -z "$(CTAGS_ARGS)$$unique" \ ++ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ ++ $$unique ++ ++GTAGS: ++ here=`$(am__cd) $(top_builddir) && pwd` \ ++ && $(am__cd) $(top_srcdir) \ ++ && gtags -i $(GTAGS_ARGS) "$$here" ++ ++distclean-tags: ++ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags ++ ++distdir: $(DISTFILES) ++ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ ++ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ ++ list='$(DISTFILES)'; \ ++ dist_files=`for file in $$list; do echo $$file; done | \ ++ sed -e "s|^$$srcdirstrip/||;t" \ ++ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ ++ case $$dist_files in \ ++ */*) $(MKDIR_P) `echo "$$dist_files" | \ ++ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ ++ sort -u` ;; \ ++ esac; \ ++ for file in $$dist_files; do \ ++ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ ++ if test -d $$d/$$file; then \ ++ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ ++ if test -d "$(distdir)/$$file"; then \ ++ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ ++ fi; \ ++ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ ++ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ ++ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ ++ fi; \ ++ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ ++ else \ ++ test -f "$(distdir)/$$file" \ ++ || cp -p $$d/$$file "$(distdir)/$$file" \ ++ || exit 1; \ ++ fi; \ ++ done ++ $(MAKE) $(AM_MAKEFLAGS) \ ++ top_distdir="$(top_distdir)" distdir="$(distdir)" \ ++ dist-hook ++check-am: all-am ++check: $(BUILT_SOURCES) ++ $(MAKE) $(AM_MAKEFLAGS) check-am ++all-am: Makefile $(PROGRAMS) $(SCRIPTS) ++installdirs: ++ for dir in "$(DESTDIR)$(bindir)"; do \ ++ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ ++ done ++install: $(BUILT_SOURCES) ++ $(MAKE) $(AM_MAKEFLAGS) install-am ++install-exec: install-exec-am ++install-data: install-data-am ++uninstall: uninstall-am ++ ++install-am: all-am ++ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am ++ ++installcheck: installcheck-am ++install-strip: ++ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ ++ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ ++ `test -z '$(STRIP)' || \ ++ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install ++mostlyclean-generic: ++ ++clean-generic: ++ ++distclean-generic: ++ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) ++ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) ++ ++maintainer-clean-generic: ++ @echo "This command is intended for maintainers to use" ++ @echo "it deletes files that may require special tools to rebuild." ++ -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) ++clean: clean-am ++ ++clean-am: clean-binPROGRAMS clean-generic clean-libtool clean-local \ ++ mostlyclean-am ++ ++distclean: distclean-am ++ -rm -rf $(DEPDIR) ./$(DEPDIR) ++ -rm -f Makefile ++distclean-am: clean-am distclean-compile distclean-generic \ ++ distclean-tags ++ ++dvi: dvi-am ++ ++dvi-am: ++ ++html: html-am ++ ++html-am: ++ ++info: info-am ++ ++info-am: ++ ++install-data-am: ++ ++install-dvi: install-dvi-am ++ ++install-dvi-am: ++ ++install-exec-am: install-binPROGRAMS ++ @$(NORMAL_INSTALL) ++ $(MAKE) $(AM_MAKEFLAGS) install-exec-hook ++install-html: install-html-am ++ ++install-html-am: ++ ++install-info: install-info-am ++ ++install-info-am: ++ ++install-man: ++ ++install-pdf: install-pdf-am ++ ++install-pdf-am: ++ ++install-ps: install-ps-am ++ ++install-ps-am: ++ ++installcheck-am: installcheck-binPROGRAMS ++ ++maintainer-clean: maintainer-clean-am ++ -rm -rf $(DEPDIR) ./$(DEPDIR) ++ -rm -f Makefile ++maintainer-clean-am: distclean-am maintainer-clean-generic ++ ++mostlyclean: mostlyclean-am ++ ++mostlyclean-am: mostlyclean-compile mostlyclean-generic \ ++ mostlyclean-libtool ++ ++pdf: pdf-am ++ ++pdf-am: ++ ++ps: ps-am ++ ++ps-am: ++ ++uninstall-am: uninstall-binPROGRAMS ++ @$(NORMAL_INSTALL) ++ $(MAKE) $(AM_MAKEFLAGS) uninstall-hook ++.MAKE: all check install install-am install-exec-am install-strip \ ++ uninstall-am ++ ++.PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \ ++ clean-generic clean-libtool clean-local ctags dist-hook \ ++ distclean distclean-compile distclean-generic \ ++ distclean-libtool distclean-tags distdir dvi dvi-am html \ ++ html-am info info-am install install-am install-binPROGRAMS \ ++ install-data install-data-am install-dvi install-dvi-am \ ++ install-exec install-exec-am install-exec-hook install-html \ ++ install-html-am install-info install-info-am install-man \ ++ install-pdf install-pdf-am install-ps install-ps-am \ ++ install-strip installcheck installcheck-am \ ++ installcheck-binPROGRAMS installdirs maintainer-clean \ ++ maintainer-clean-generic mostlyclean mostlyclean-compile \ ++ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ ++ tags uninstall uninstall-am uninstall-binPROGRAMS \ ++ uninstall-hook ++ ++ ++# BUILT_SOURCES. How we build them: ++ ++# For inclusion of GNU General Public License directly into Enca ++COPYING.c: $(top_srcdir)/COPYING $(srcdir)/text2c.sh ++ $(srcdir)/text2c.sh $(top_srcdir)/COPYING >COPYING.c ++ ++HELP.c: HELP $(srcdir)/text2c.sh ++ $(srcdir)/text2c.sh HELP >HELP.c ++ ++install-exec-hook: ++ cd $(DESTDIR)$(bindir); \ ++ inst1=`echo enca | sed '$(transform)'`; \ ++ inst2=`echo enconv | sed '$(transform)'`; \ ++ $(LN_S) $$inst1$(EXEEXT) $$inst2$(EXEEXT) ++ ++uninstall-hook: ++ inst=`echo enconv | sed '$(transform)'`; \ ++ rm -f $(DESTDIR)$(bindir)/$$inst$(EXEEXT) ++ ++clean-local: ++ rm -f core.* *~ HELP.c COPYING.c ++ ++dist-hook: ++ rm -f $(distdir)/HELP.c $(distdir)/COPYING.c ++ ++# Tell versions [3.59,3.63) of GNU make to not export all variables. ++# Otherwise a system limit (for SysV at least) may be exceeded. ++.NOEXPORT: +diff -Naur enca-1.13/stamp-h1 enca-1.13.patch/stamp-h1 +--- enca-1.13/stamp-h1 1970-01-01 01:00:00.000000000 +0100 ++++ enca-1.13.patch/stamp-h1 2010-04-16 18:41:17.791443112 +0200 +@@ -0,0 +1 @@ ++timestamp for config.h +diff -Naur enca-1.13/test/.deps/simtable.Po enca-1.13.patch/test/.deps/simtable.Po +--- enca-1.13/test/.deps/simtable.Po 1970-01-01 01:00:00.000000000 +0100 ++++ enca-1.13.patch/test/.deps/simtable.Po 2010-04-16 18:41:18.030442607 +0200 +@@ -0,0 +1 @@ ++# dummy +diff -Naur enca-1.13/test/Makefile enca-1.13.patch/test/Makefile +--- enca-1.13/test/Makefile 1970-01-01 01:00:00.000000000 +0100 ++++ enca-1.13.patch/test/Makefile 2010-04-16 18:41:17.756442831 +0200 +@@ -0,0 +1,797 @@ ++# Makefile.in generated by automake 1.11.1 from Makefile.am. ++# test/Makefile. Generated from Makefile.in by configure. ++ ++# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, ++# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, ++# Inc. ++# This Makefile.in is free software; the Free Software Foundation ++# gives unlimited permission to copy and/or distribute it, ++# with or without modifications, as long as this notice is preserved. ++ ++# This program is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY, to the extent permitted by law; without ++# even the implied warranty of MERCHANTABILITY or FITNESS FOR A ++# PARTICULAR PURPOSE. ++ ++ ++ ++ ++ ++pkgdatadir = $(datadir)/enca ++pkgincludedir = $(includedir)/enca ++pkglibdir = $(libdir)/enca ++pkglibexecdir = $(libexecdir)/enca ++am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd ++install_sh_DATA = $(install_sh) -c -m 644 ++install_sh_PROGRAM = $(install_sh) -c ++install_sh_SCRIPT = $(install_sh) -c ++INSTALL_HEADER = $(INSTALL_DATA) ++transform = $(program_transform_name) ++NORMAL_INSTALL = : ++PRE_INSTALL = : ++POST_INSTALL = : ++NORMAL_UNINSTALL = : ++PRE_UNINSTALL = : ++POST_UNINSTALL = : ++build_triplet = i686-pc-linux-gnu ++host_triplet = i686-pc-linux-gnu ++#noinst_PROGRAMS = simtable$(EXEEXT) ++subdir = test ++DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ++ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 ++am__aclocal_m4_deps = $(top_srcdir)/m4/gtk-doc.m4 \ ++ $(top_srcdir)/m4/libiconv.m4 $(top_srcdir)/m4/libm.m4 \ ++ $(top_srcdir)/m4/librecode.m4 $(top_srcdir)/m4/libtool.m4 \ ++ $(top_srcdir)/m4/localias.m4 $(top_srcdir)/m4/ltoptions.m4 \ ++ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ ++ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/tools.m4 \ ++ $(top_srcdir)/m4/typevar.m4 $(top_srcdir)/configure.ac ++am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ ++ $(ACLOCAL_M4) ++mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs ++CONFIG_HEADER = $(top_builddir)/config.h ++CONFIG_CLEAN_FILES = ++CONFIG_CLEAN_VPATH_FILES = ++PROGRAMS = $(noinst_PROGRAMS) ++am__simtable_SOURCES_DIST = simtable.c ++#am_simtable_OBJECTS = simtable.$(OBJEXT) ++simtable_OBJECTS = $(am_simtable_OBJECTS) ++simtable_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ ++ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(simtable_LDFLAGS) \ ++ $(LDFLAGS) -o $@ ++SCRIPTS = $(noinst_SCRIPTS) ++DEFAULT_INCLUDES = -I. -I$(top_builddir) ++depcomp = $(SHELL) $(top_srcdir)/depcomp ++am__depfiles_maybe = depfiles ++am__mv = mv -f ++COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ ++ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) ++LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ ++ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ ++ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) ++CCLD = $(CC) ++LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ ++ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ ++ $(LDFLAGS) -o $@ ++SOURCES = $(simtable_SOURCES) ++DIST_SOURCES = $(am__simtable_SOURCES_DIST) ++ETAGS = etags ++CTAGS = ctags ++am__tty_colors = \ ++red=; grn=; lgn=; blu=; std= ++DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ++ACLOCAL = ${SHELL} /home/stephan/projects/openelec/sources/enca/enca-1.13.patch/missing --run aclocal-1.11 -I m4 ++AMTAR = ${SHELL} /home/stephan/projects/openelec/sources/enca/enca-1.13.patch/missing --run tar ++AR = ar ++AUTOCONF = ${SHELL} /home/stephan/projects/openelec/sources/enca/enca-1.13.patch/missing --run autoconf ++AUTOHEADER = ${SHELL} /home/stephan/projects/openelec/sources/enca/enca-1.13.patch/missing --run autoheader ++AUTOMAKE = ${SHELL} /home/stephan/projects/openelec/sources/enca/enca-1.13.patch/missing --run automake-1.11 ++AWK = gawk ++CC = gcc ++CCDEPMODE = depmode=gcc3 ++CFLAGS = -Wall -W -pedantic -g -O2 ++CONVERTER_LIBS = ++CPP = gcc -E ++CPPFLAGS = ++CSTOCS_PROG = ++CYGPATH_W = echo ++DEFAULT_CONVERTER_LIST = built-in,iconv ++DEFAULT_EXTERNAL_CONVERTER = piconv ++DEFS = -DHAVE_CONFIG_H ++DEPDIR = .deps ++DSYMUTIL = ++DUMPBIN = ++ECHO_C = ++ECHO_N = -n ++ECHO_T = ++EGREP = /bin/grep -E ++EXEEXT = ++FGREP = /bin/grep -F ++GREP = /bin/grep ++GTKDOC = true ++HTML_DIR = ${datarootdir}/gtk-doc/html ++INSTALL = /usr/bin/install -c ++INSTALL_DATA = ${INSTALL} -m 644 ++INSTALL_PROGRAM = ${INSTALL} ++INSTALL_SCRIPT = ${INSTALL} ++INSTALL_STRIP_PROGRAM = $(install_sh) -c -s ++LD = /usr/bin/ld ++LDFLAGS = ++LIBICONV = ++LIBM = -lm ++LIBOBJS = ++LIBS = -lm ++LIBTOOL = $(SHELL) $(top_builddir)/libtool ++LIPO = ++LN_S = ln -s ++LTLIBICONV = ++LTLIBOBJS = ++MAINT = # ++MAKEINFO = ${SHELL} /home/stephan/projects/openelec/sources/enca/enca-1.13.patch/missing --run makeinfo ++MAP_PROG = ++MKDIR_P = /bin/mkdir -p ++MKTEMP_PROG = /bin/mktemp ++NM = /usr/bin/nm -B ++NMEDIT = ++OBJDUMP = objdump ++OBJEXT = o ++OTOOL = ++OTOOL64 = ++PACKAGE = enca ++PACKAGE_BUGREPORT = https://bugs.cihar.com/ ++PACKAGE_NAME = Enca ++PACKAGE_STRING = Enca 1.13 ++PACKAGE_TARNAME = enca ++PACKAGE_URL = ++PACKAGE_VERSION = 1.13 ++PATH_SEPARATOR = : ++PICONV_PROG = /usr/bin/piconv ++RANLIB = ranlib ++RECODE_PROG = ++RELEASE = 1 ++SED = /bin/sed ++SET_MAKE = ++SHELL = /bin/sh ++SHELL_RANDOM_FILENAME = `/bin/mktemp /tmp/enca-$$-XXXXXXXX` ++STRIP = strip ++UMAP_PROG = ++VERSION = 1.13 ++abs_builddir = /home/stephan/projects/openelec/sources/enca/enca-1.13.patch/test ++abs_srcdir = /home/stephan/projects/openelec/sources/enca/enca-1.13.patch/test ++abs_top_builddir = /home/stephan/projects/openelec/sources/enca/enca-1.13.patch ++abs_top_srcdir = /home/stephan/projects/openelec/sources/enca/enca-1.13.patch ++ac_ct_CC = gcc ++ac_ct_DUMPBIN = ++am__include = include ++am__leading_dot = . ++am__quote = ++am__tar = ${AMTAR} chof - "$$tardir" ++am__untar = ${AMTAR} xf - ++bindir = ${exec_prefix}/bin ++build = i686-pc-linux-gnu ++build_alias = ++build_cpu = i686 ++build_os = linux-gnu ++build_vendor = pc ++builddir = . ++datadir = ${datarootdir} ++datarootdir = ${prefix}/share ++docdir = ${datarootdir}/doc/${PACKAGE_TARNAME} ++dvidir = ${docdir} ++exec_prefix = ${prefix} ++host = i686-pc-linux-gnu ++host_alias = ++host_cpu = i686 ++host_os = linux-gnu ++host_vendor = pc ++htmldir = ${docdir} ++includedir = ${prefix}/include ++infodir = ${datarootdir}/info ++install_sh = ${SHELL} /home/stephan/projects/openelec/sources/enca/enca-1.13.patch/install-sh ++libdir = ${exec_prefix}/lib ++libexecdir = ${exec_prefix}/libexec ++localedir = ${datarootdir}/locale ++localstatedir = ${prefix}/var ++lt_ECHO = echo ++mandir = ${datarootdir}/man ++mkdir_p = /bin/mkdir -p ++oldincludedir = /usr/include ++pdfdir = ${docdir} ++prefix = /usr/local ++program_transform_name = s,x,x, ++psdir = ${docdir} ++sbindir = ${exec_prefix}/sbin ++sharedstatedir = ${prefix}/com ++srcdir = . ++sysconfdir = ${prefix}/etc ++target_alias = ++top_build_prefix = ../ ++top_builddir = .. ++top_srcdir = .. ++ ++# @(#) $Id: Makefile.am,v 1.26 2005/12/01 10:12:10 yeti Exp $ ++TESTS_ENVIRONMENT = srcdir=. top_srcdir=.. top_builddir=.. ++TESTS = \ ++ ./test-lists.sh \ ++ ./test-long-texts.sh \ ++ ./test-convlist.sh \ ++ ./test-guess-short.sh \ ++ ./test-guess-stdin.sh \ ++ ./test-guess-utf8.sh \ ++ ./test-pP.sh \ ++ ./test-aliases.sh \ ++ ./test-empty.sh \ ++ ./test-convert-64.sh \ ++ ./test-convert-filter.sh \ ++ ./test-errors.sh \ ++ ./test-ENCAOPT.sh \ ++ ./test-default-cs.sh \ ++ ./test-external.sh \ ++ ./test-iconv.sh \ ++ ./test-recode.sh ++ ++noinst_SCRIPTS = \ ++ dummy-converter.sh \ ++ failing-converter.sh \ ++ failing-converter2.sh \ ++ finish.sh \ ++ setup.sh ++ ++#simtable_SOURCES = simtable.c ++#simtable_LDFLAGS = -lm ++#simtable_LDADD = $(top_builddir)/lib/libenca.la ++#simtable_DEPENDENCIES = $(top_builddir)/lib/libenca.la ++#INCLUDES = -I$(top_srcdir)/lib ++EXTRA_DIST = $(TEST_SAMPLES) $(TESTS) $(TEST_RESULTS) $(noinst_SCRIPTS) ++TEST_RESULTS = \ ++ test-guess-short.expected \ ++ test-guess-utf8.expected \ ++ test-external.expected \ ++ test-pP.expected ++ ++TEST_SAMPLES = \ ++ be-s.cp1251 \ ++ be-s.ibm855 \ ++ be-s.ibm866 \ ++ be-s.iso88595 \ ++ be-s.koi8uni \ ++ be-s.maccyr \ ++ be-s.utf8 \ ++ be-utf8.ibm855 \ ++ be-utf8.iso88595 \ ++ bg-s.cp1251 \ ++ bg-s.cp1251.qp \ ++ bg-s.ecma113 \ ++ bg-s.ibm855 \ ++ bg-s.iso88595 \ ++ bg-s.maccyr \ ++ bg-s.utf8 \ ++ bg-utf8.bin \ ++ bg-utf8.cp1251 \ ++ bg-utf8.ecma113 \ ++ bg-utf8.ibm855 \ ++ bg-utf8.iso88595 \ ++ bg-utf8.maccyr \ ++ cs-s.cork \ ++ cs-s.cp1250 \ ++ cs-s.ibm852 \ ++ cs-s.ibm852.qp \ ++ cs-s.iso88592 \ ++ cs-s.keybcs2 \ ++ cs-s.koi8cs2 \ ++ cs-s.macce \ ++ cs-s.utf8 \ ++ cs-utf8.bin \ ++ cs-utf8.cork \ ++ cs-utf8.ibm852 \ ++ cs-utf8.iso88592 \ ++ et-s.baltic \ ++ et-s.cp1257 \ ++ et-s.ibm775 \ ++ et-s.iso885913 \ ++ et-s.iso88594 \ ++ et-s.iso88594.qp \ ++ et-s.macce \ ++ et-s.utf8 \ ++ et-utf8.bin \ ++ et-utf8.ibm775 \ ++ et-utf8.iso885913 \ ++ et-utf8.iso88594 \ ++ hr-s.cork \ ++ hr-s.cp1250 \ ++ hr-s.ibm852 \ ++ hr-s.iso88592 \ ++ hr-s.iso88592.qp \ ++ hr-s.macce \ ++ hr-s.utf8 \ ++ hr-utf8.cp1250 \ ++ hr-utf8.ibm852 \ ++ hu-s.cork \ ++ hu-s.cp1250 \ ++ hu-s.ibm852 \ ++ hu-s.iso88592 \ ++ hu-s.macce \ ++ hu-s.macce.qp \ ++ hu-s.utf8 \ ++ hu-utf8.cork \ ++ hu-utf8.cp1250 \ ++ hu-utf8.ibm852 \ ++ hu-utf8.macce \ ++ lt-s.baltic \ ++ lt-s.cp1257 \ ++ lt-s.ibm775 \ ++ lt-s.iso885913 \ ++ lt-s.iso88594 \ ++ lt-s.macce \ ++ lt-s.utf8 \ ++ lt-utf8.ibm775 \ ++ lt-utf8.iso88594 \ ++ lt-utf8.macce \ ++ lv-s.baltic \ ++ lv-s.cp1257 \ ++ lv-s.ibm775 \ ++ lv-s.iso885913 \ ++ lv-s.iso885913.qp \ ++ lv-s.iso88594 \ ++ lv-s.macce \ ++ lv-s.utf8 \ ++ lv-utf8.ibm775 \ ++ lv-utf8.iso88594 \ ++ lv-utf8.macce \ ++ none-s.ucs2 \ ++ none-s.ucs2le \ ++ none-s.ucs2le.qp \ ++ none-s.ucs4 \ ++ none-s.ucs4le \ ++ none-s.utf7 \ ++ none-s.utf8 \ ++ none-utf8.messy \ ++ pl-s.baltic \ ++ pl-s.baltic.qp \ ++ pl-s.cork \ ++ pl-s.cp1250 \ ++ pl-s.ibm852 \ ++ pl-s.iso885913 \ ++ pl-s.iso885916 \ ++ pl-s.iso88592 \ ++ pl-s.utf8 \ ++ pl-utf8.baltic \ ++ pl-utf8.ibm852 \ ++ pl-utf8.iso885916 \ ++ ru-s.cp1251 \ ++ ru-s.cp866 \ ++ ru-s.iso88595 \ ++ ru-s.koi8r \ ++ ru-s.maccyr \ ++ ru-s.maccyr.qp \ ++ ru-s.utf8 \ ++ ru-utf8.cp866 \ ++ ru-utf8.koi8r \ ++ ru-utf8.maccyr \ ++ sk-s.cork \ ++ sk-s.cp1250 \ ++ sk-s.cp1250.qp \ ++ sk-s.ibm852 \ ++ sk-s.iso88592 \ ++ sk-s.keybcs2 \ ++ sk-s.koi8cs2 \ ++ sk-s.macce \ ++ sk-s.utf8 \ ++ sk-utf8.cp1250 \ ++ sk-utf8.keybcs2 \ ++ sl-s.cork \ ++ sl-s.cp1250 \ ++ sl-s.ibm852 \ ++ sl-s.ibm852.qp \ ++ sl-s.iso88592 \ ++ sl-s.macce \ ++ sl-s.utf8 \ ++ sl-utf8.cork \ ++ sl-utf8.ibm852 \ ++ sl-utf8.iso88592 \ ++ sl-utf8.macce \ ++ uk-s.cp1125 \ ++ uk-s.cp1251 \ ++ uk-s.ibm855 \ ++ uk-s.iso88595 \ ++ uk-s.koi8u \ ++ uk-s.maccyr \ ++ uk-s.utf8 \ ++ uk-utf8.bin \ ++ uk-utf8.cp1251 \ ++ zh-s.big5 \ ++ zh-s.gbk \ ++ zh-s.hz \ ++ zh-s.utf8 ++ ++all: all-am ++ ++.SUFFIXES: ++.SUFFIXES: .c .lo .o .obj ++$(srcdir)/Makefile.in: # $(srcdir)/Makefile.am $(am__configure_deps) ++ @for dep in $?; do \ ++ case '$(am__configure_deps)' in \ ++ *$$dep*) \ ++ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ ++ && { if test -f $@; then exit 0; else break; fi; }; \ ++ exit 1;; \ ++ esac; \ ++ done; \ ++ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnits test/Makefile'; \ ++ $(am__cd) $(top_srcdir) && \ ++ $(AUTOMAKE) --gnits test/Makefile ++.PRECIOUS: Makefile ++Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status ++ @case '$?' in \ ++ *config.status*) \ ++ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ ++ *) \ ++ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ ++ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ ++ esac; ++ ++$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) ++ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ++ ++$(top_srcdir)/configure: # $(am__configure_deps) ++ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ++$(ACLOCAL_M4): # $(am__aclocal_m4_deps) ++ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ++$(am__aclocal_m4_deps): ++ ++clean-noinstPROGRAMS: ++ @list='$(noinst_PROGRAMS)'; test -n "$$list" || exit 0; \ ++ echo " rm -f" $$list; \ ++ rm -f $$list || exit $$?; \ ++ test -n "$(EXEEXT)" || exit 0; \ ++ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ ++ echo " rm -f" $$list; \ ++ rm -f $$list ++simtable$(EXEEXT): $(simtable_OBJECTS) $(simtable_DEPENDENCIES) ++ @rm -f simtable$(EXEEXT) ++ $(simtable_LINK) $(simtable_OBJECTS) $(simtable_LDADD) $(LIBS) ++ ++mostlyclean-compile: ++ -rm -f *.$(OBJEXT) ++ ++distclean-compile: ++ -rm -f *.tab.c ++ ++include ./$(DEPDIR)/simtable.Po ++ ++.c.o: ++ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< ++ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po ++# source='$<' object='$@' libtool=no \ ++# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \ ++# $(COMPILE) -c $< ++ ++.c.obj: ++ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` ++ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po ++# source='$<' object='$@' libtool=no \ ++# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \ ++# $(COMPILE) -c `$(CYGPATH_W) '$<'` ++ ++.c.lo: ++ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< ++ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo ++# source='$<' object='$@' libtool=yes \ ++# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \ ++# $(LTCOMPILE) -c -o $@ $< ++ ++mostlyclean-libtool: ++ -rm -f *.lo ++ ++clean-libtool: ++ -rm -rf .libs _libs ++ ++ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) ++ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ ++ unique=`for i in $$list; do \ ++ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ ++ done | \ ++ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ ++ END { if (nonempty) { for (i in files) print i; }; }'`; \ ++ mkid -fID $$unique ++tags: TAGS ++ ++TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ ++ $(TAGS_FILES) $(LISP) ++ set x; \ ++ here=`pwd`; \ ++ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ ++ unique=`for i in $$list; do \ ++ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ ++ done | \ ++ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ ++ END { if (nonempty) { for (i in files) print i; }; }'`; \ ++ shift; \ ++ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ ++ test -n "$$unique" || unique=$$empty_fix; \ ++ if test $$# -gt 0; then \ ++ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ ++ "$$@" $$unique; \ ++ else \ ++ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ ++ $$unique; \ ++ fi; \ ++ fi ++ctags: CTAGS ++CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ ++ $(TAGS_FILES) $(LISP) ++ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ ++ unique=`for i in $$list; do \ ++ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ ++ done | \ ++ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ ++ END { if (nonempty) { for (i in files) print i; }; }'`; \ ++ test -z "$(CTAGS_ARGS)$$unique" \ ++ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ ++ $$unique ++ ++GTAGS: ++ here=`$(am__cd) $(top_builddir) && pwd` \ ++ && $(am__cd) $(top_srcdir) \ ++ && gtags -i $(GTAGS_ARGS) "$$here" ++ ++distclean-tags: ++ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags ++ ++check-TESTS: $(TESTS) ++ @failed=0; all=0; xfail=0; xpass=0; skip=0; \ ++ srcdir=$(srcdir); export srcdir; \ ++ list=' $(TESTS) '; \ ++ $(am__tty_colors); \ ++ if test -n "$$list"; then \ ++ for tst in $$list; do \ ++ if test -f ./$$tst; then dir=./; \ ++ elif test -f $$tst; then dir=; \ ++ else dir="$(srcdir)/"; fi; \ ++ if $(TESTS_ENVIRONMENT) $${dir}$$tst; then \ ++ all=`expr $$all + 1`; \ ++ case " $(XFAIL_TESTS) " in \ ++ *[\ \ ]$$tst[\ \ ]*) \ ++ xpass=`expr $$xpass + 1`; \ ++ failed=`expr $$failed + 1`; \ ++ col=$$red; res=XPASS; \ ++ ;; \ ++ *) \ ++ col=$$grn; res=PASS; \ ++ ;; \ ++ esac; \ ++ elif test $$? -ne 77; then \ ++ all=`expr $$all + 1`; \ ++ case " $(XFAIL_TESTS) " in \ ++ *[\ \ ]$$tst[\ \ ]*) \ ++ xfail=`expr $$xfail + 1`; \ ++ col=$$lgn; res=XFAIL; \ ++ ;; \ ++ *) \ ++ failed=`expr $$failed + 1`; \ ++ col=$$red; res=FAIL; \ ++ ;; \ ++ esac; \ ++ else \ ++ skip=`expr $$skip + 1`; \ ++ col=$$blu; res=SKIP; \ ++ fi; \ ++ echo "$${col}$$res$${std}: $$tst"; \ ++ done; \ ++ if test "$$all" -eq 1; then \ ++ tests="test"; \ ++ All=""; \ ++ else \ ++ tests="tests"; \ ++ All="All "; \ ++ fi; \ ++ if test "$$failed" -eq 0; then \ ++ if test "$$xfail" -eq 0; then \ ++ banner="$$All$$all $$tests passed"; \ ++ else \ ++ if test "$$xfail" -eq 1; then failures=failure; else failures=failures; fi; \ ++ banner="$$All$$all $$tests behaved as expected ($$xfail expected $$failures)"; \ ++ fi; \ ++ else \ ++ if test "$$xpass" -eq 0; then \ ++ banner="$$failed of $$all $$tests failed"; \ ++ else \ ++ if test "$$xpass" -eq 1; then passes=pass; else passes=passes; fi; \ ++ banner="$$failed of $$all $$tests did not behave as expected ($$xpass unexpected $$passes)"; \ ++ fi; \ ++ fi; \ ++ dashes="$$banner"; \ ++ skipped=""; \ ++ if test "$$skip" -ne 0; then \ ++ if test "$$skip" -eq 1; then \ ++ skipped="($$skip test was not run)"; \ ++ else \ ++ skipped="($$skip tests were not run)"; \ ++ fi; \ ++ test `echo "$$skipped" | wc -c` -le `echo "$$banner" | wc -c` || \ ++ dashes="$$skipped"; \ ++ fi; \ ++ report=""; \ ++ if test "$$failed" -ne 0 && test -n "$(PACKAGE_BUGREPORT)"; then \ ++ report="Please report to $(PACKAGE_BUGREPORT)"; \ ++ test `echo "$$report" | wc -c` -le `echo "$$banner" | wc -c` || \ ++ dashes="$$report"; \ ++ fi; \ ++ dashes=`echo "$$dashes" | sed s/./=/g`; \ ++ if test "$$failed" -eq 0; then \ ++ echo "$$grn$$dashes"; \ ++ else \ ++ echo "$$red$$dashes"; \ ++ fi; \ ++ echo "$$banner"; \ ++ test -z "$$skipped" || echo "$$skipped"; \ ++ test -z "$$report" || echo "$$report"; \ ++ echo "$$dashes$$std"; \ ++ test "$$failed" -eq 0; \ ++ else :; fi ++ ++distdir: $(DISTFILES) ++ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ ++ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ ++ list='$(DISTFILES)'; \ ++ dist_files=`for file in $$list; do echo $$file; done | \ ++ sed -e "s|^$$srcdirstrip/||;t" \ ++ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ ++ case $$dist_files in \ ++ */*) $(MKDIR_P) `echo "$$dist_files" | \ ++ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ ++ sort -u` ;; \ ++ esac; \ ++ for file in $$dist_files; do \ ++ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ ++ if test -d $$d/$$file; then \ ++ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ ++ if test -d "$(distdir)/$$file"; then \ ++ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ ++ fi; \ ++ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ ++ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ ++ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ ++ fi; \ ++ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ ++ else \ ++ test -f "$(distdir)/$$file" \ ++ || cp -p $$d/$$file "$(distdir)/$$file" \ ++ || exit 1; \ ++ fi; \ ++ done ++ $(MAKE) $(AM_MAKEFLAGS) \ ++ top_distdir="$(top_distdir)" distdir="$(distdir)" \ ++ dist-hook ++check-am: all-am ++ $(MAKE) $(AM_MAKEFLAGS) check-TESTS ++check: check-am ++all-am: Makefile $(PROGRAMS) $(SCRIPTS) ++installdirs: ++install: install-am ++install-exec: install-exec-am ++install-data: install-data-am ++uninstall: uninstall-am ++ ++install-am: all-am ++ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am ++ ++installcheck: installcheck-am ++install-strip: ++ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ ++ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ ++ `test -z '$(STRIP)' || \ ++ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install ++mostlyclean-generic: ++ ++clean-generic: ++ ++distclean-generic: ++ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) ++ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) ++ ++maintainer-clean-generic: ++ @echo "This command is intended for maintainers to use" ++ @echo "it deletes files that may require special tools to rebuild." ++clean: clean-am ++ ++clean-am: clean-generic clean-libtool clean-local clean-noinstPROGRAMS \ ++ mostlyclean-am ++ ++distclean: distclean-am ++ -rm -rf ./$(DEPDIR) ++ -rm -f Makefile ++distclean-am: clean-am distclean-compile distclean-generic \ ++ distclean-tags ++ ++dvi: dvi-am ++ ++dvi-am: ++ ++html: html-am ++ ++html-am: ++ ++info: info-am ++ ++info-am: ++ ++install-data-am: ++ ++install-dvi: install-dvi-am ++ ++install-dvi-am: ++ ++install-exec-am: ++ ++install-html: install-html-am ++ ++install-html-am: ++ ++install-info: install-info-am ++ ++install-info-am: ++ ++install-man: ++ ++install-pdf: install-pdf-am ++ ++install-pdf-am: ++ ++install-ps: install-ps-am ++ ++install-ps-am: ++ ++installcheck-am: ++ ++maintainer-clean: maintainer-clean-am ++ -rm -rf ./$(DEPDIR) ++ -rm -f Makefile ++maintainer-clean-am: distclean-am maintainer-clean-generic ++ ++mostlyclean: mostlyclean-am ++ ++mostlyclean-am: mostlyclean-compile mostlyclean-generic \ ++ mostlyclean-libtool ++ ++pdf: pdf-am ++ ++pdf-am: ++ ++ps: ps-am ++ ++ps-am: ++ ++uninstall-am: ++ ++.MAKE: check-am install-am install-strip ++ ++.PHONY: CTAGS GTAGS all all-am check check-TESTS check-am clean \ ++ clean-generic clean-libtool clean-local clean-noinstPROGRAMS \ ++ ctags dist-hook distclean distclean-compile distclean-generic \ ++ distclean-libtool distclean-tags distdir dvi dvi-am html \ ++ html-am info info-am install install-am install-data \ ++ install-data-am install-dvi install-dvi-am install-exec \ ++ install-exec-am install-html install-html-am install-info \ ++ install-info-am install-man install-pdf install-pdf-am \ ++ install-ps install-ps-am install-strip installcheck \ ++ installcheck-am installdirs maintainer-clean \ ++ maintainer-clean-generic mostlyclean mostlyclean-compile \ ++ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ ++ tags uninstall uninstall-am ++ ++ ++# alias test=check ++test: check ++ ++.PHONY: test ++ ++clean-local: ++ rm -f test-*.actual core.* core *.tmp *~ *-big.* test-guess-stdin.expected test-ENCAOPT.expected ++ ++dist-hook: ++ chmod 755 $(distdir)/test-*.sh ++ ++# Tell versions [3.59,3.63) of GNU make to not export all variables. ++# Otherwise a system limit (for SysV at least) may be exceeded. ++.NOEXPORT: +diff -Naur enca-1.13/tools/.deps/make_hash.Po enca-1.13.patch/tools/.deps/make_hash.Po +--- enca-1.13/tools/.deps/make_hash.Po 1970-01-01 01:00:00.000000000 +0100 ++++ enca-1.13.patch/tools/.deps/make_hash.Po 2010-04-16 18:41:18.051442468 +0200 +@@ -0,0 +1 @@ ++# dummy +diff -Naur enca-1.13/tools/Makefile enca-1.13.patch/tools/Makefile +--- enca-1.13/tools/Makefile 1970-01-01 01:00:00.000000000 +0100 ++++ enca-1.13.patch/tools/Makefile 2010-04-16 18:41:17.776472255 +0200 +@@ -0,0 +1,557 @@ ++# Makefile.in generated by automake 1.11.1 from Makefile.am. ++# tools/Makefile. Generated from Makefile.in by configure. ++ ++# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, ++# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, ++# Inc. ++# This Makefile.in is free software; the Free Software Foundation ++# gives unlimited permission to copy and/or distribute it, ++# with or without modifications, as long as this notice is preserved. ++ ++# This program is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY, to the extent permitted by law; without ++# even the implied warranty of MERCHANTABILITY or FITNESS FOR A ++# PARTICULAR PURPOSE. ++ ++ ++ ++ ++ ++ ++pkgdatadir = $(datadir)/enca ++pkgincludedir = $(includedir)/enca ++pkglibdir = $(libdir)/enca ++pkglibexecdir = $(libexecdir)/enca ++am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd ++install_sh_DATA = $(install_sh) -c -m 644 ++install_sh_PROGRAM = $(install_sh) -c ++install_sh_SCRIPT = $(install_sh) -c ++INSTALL_HEADER = $(INSTALL_DATA) ++transform = $(program_transform_name) ++NORMAL_INSTALL = : ++PRE_INSTALL = : ++POST_INSTALL = : ++NORMAL_UNINSTALL = : ++PRE_UNINSTALL = : ++POST_UNINSTALL = : ++build_triplet = i686-pc-linux-gnu ++host_triplet = i686-pc-linux-gnu ++noinst_PROGRAMS = make_hash$(EXEEXT) ++subdir = tools ++DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ ++ $(srcdir)/Makefile.in ++ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 ++am__aclocal_m4_deps = $(top_srcdir)/m4/gtk-doc.m4 \ ++ $(top_srcdir)/m4/libiconv.m4 $(top_srcdir)/m4/libm.m4 \ ++ $(top_srcdir)/m4/librecode.m4 $(top_srcdir)/m4/libtool.m4 \ ++ $(top_srcdir)/m4/localias.m4 $(top_srcdir)/m4/ltoptions.m4 \ ++ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ ++ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/tools.m4 \ ++ $(top_srcdir)/m4/typevar.m4 $(top_srcdir)/configure.ac ++am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ ++ $(ACLOCAL_M4) ++mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs ++CONFIG_HEADER = $(top_builddir)/config.h ++CONFIG_CLEAN_FILES = ++CONFIG_CLEAN_VPATH_FILES = ++PROGRAMS = $(noinst_PROGRAMS) ++am_make_hash_OBJECTS = make_hash.$(OBJEXT) ++make_hash_OBJECTS = $(am_make_hash_OBJECTS) ++make_hash_LDADD = $(LDADD) ++SCRIPTS = $(noinst_SCRIPTS) ++DEFAULT_INCLUDES = -I. -I$(top_builddir) ++depcomp = $(SHELL) $(top_srcdir)/depcomp ++am__depfiles_maybe = depfiles ++am__mv = mv -f ++COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ ++ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) ++LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ ++ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ ++ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) ++CCLD = $(CC) ++LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ ++ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ ++ $(LDFLAGS) -o $@ ++SOURCES = $(make_hash_SOURCES) ++DIST_SOURCES = $(make_hash_SOURCES) ++HEADERS = $(noinst_HEADERS) ++ETAGS = etags ++CTAGS = ctags ++DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ++ACLOCAL = ${SHELL} /home/stephan/projects/openelec/sources/enca/enca-1.13.patch/missing --run aclocal-1.11 -I m4 ++AMTAR = ${SHELL} /home/stephan/projects/openelec/sources/enca/enca-1.13.patch/missing --run tar ++AR = ar ++AUTOCONF = ${SHELL} /home/stephan/projects/openelec/sources/enca/enca-1.13.patch/missing --run autoconf ++AUTOHEADER = ${SHELL} /home/stephan/projects/openelec/sources/enca/enca-1.13.patch/missing --run autoheader ++AUTOMAKE = ${SHELL} /home/stephan/projects/openelec/sources/enca/enca-1.13.patch/missing --run automake-1.11 ++AWK = gawk ++CC = gcc ++CCDEPMODE = depmode=gcc3 ++CFLAGS = -Wall -W -pedantic -g -O2 ++CONVERTER_LIBS = ++CPP = gcc -E ++CPPFLAGS = ++CSTOCS_PROG = ++CYGPATH_W = echo ++DEFAULT_CONVERTER_LIST = built-in,iconv ++DEFAULT_EXTERNAL_CONVERTER = piconv ++DEFS = -DHAVE_CONFIG_H ++DEPDIR = .deps ++DSYMUTIL = ++DUMPBIN = ++ECHO_C = ++ECHO_N = -n ++ECHO_T = ++EGREP = /bin/grep -E ++EXEEXT = ++FGREP = /bin/grep -F ++GREP = /bin/grep ++GTKDOC = true ++HTML_DIR = ${datarootdir}/gtk-doc/html ++INSTALL = /usr/bin/install -c ++INSTALL_DATA = ${INSTALL} -m 644 ++INSTALL_PROGRAM = ${INSTALL} ++INSTALL_SCRIPT = ${INSTALL} ++INSTALL_STRIP_PROGRAM = $(install_sh) -c -s ++LD = /usr/bin/ld ++LDFLAGS = ++LIBICONV = ++LIBM = -lm ++LIBOBJS = ++LIBS = -lm ++LIBTOOL = $(SHELL) $(top_builddir)/libtool ++LIPO = ++LN_S = ln -s ++LTLIBICONV = ++LTLIBOBJS = ++MAINT = # ++MAKEINFO = ${SHELL} /home/stephan/projects/openelec/sources/enca/enca-1.13.patch/missing --run makeinfo ++MAP_PROG = ++MKDIR_P = /bin/mkdir -p ++MKTEMP_PROG = /bin/mktemp ++NM = /usr/bin/nm -B ++NMEDIT = ++OBJDUMP = objdump ++OBJEXT = o ++OTOOL = ++OTOOL64 = ++PACKAGE = enca ++PACKAGE_BUGREPORT = https://bugs.cihar.com/ ++PACKAGE_NAME = Enca ++PACKAGE_STRING = Enca 1.13 ++PACKAGE_TARNAME = enca ++PACKAGE_URL = ++PACKAGE_VERSION = 1.13 ++PATH_SEPARATOR = : ++PICONV_PROG = /usr/bin/piconv ++RANLIB = ranlib ++RECODE_PROG = ++RELEASE = 1 ++SED = /bin/sed ++SET_MAKE = ++SHELL = /bin/sh ++SHELL_RANDOM_FILENAME = `/bin/mktemp /tmp/enca-$$-XXXXXXXX` ++STRIP = strip ++UMAP_PROG = ++VERSION = 1.13 ++abs_builddir = /home/stephan/projects/openelec/sources/enca/enca-1.13.patch/tools ++abs_srcdir = /home/stephan/projects/openelec/sources/enca/enca-1.13.patch/tools ++abs_top_builddir = /home/stephan/projects/openelec/sources/enca/enca-1.13.patch ++abs_top_srcdir = /home/stephan/projects/openelec/sources/enca/enca-1.13.patch ++ac_ct_CC = gcc ++ac_ct_DUMPBIN = ++am__include = include ++am__leading_dot = . ++am__quote = ++am__tar = ${AMTAR} chof - "$$tardir" ++am__untar = ${AMTAR} xf - ++bindir = ${exec_prefix}/bin ++build = i686-pc-linux-gnu ++build_alias = ++build_cpu = i686 ++build_os = linux-gnu ++build_vendor = pc ++builddir = . ++datadir = ${datarootdir} ++datarootdir = ${prefix}/share ++docdir = ${datarootdir}/doc/${PACKAGE_TARNAME} ++dvidir = ${docdir} ++exec_prefix = ${prefix} ++host = i686-pc-linux-gnu ++host_alias = ++host_cpu = i686 ++host_os = linux-gnu ++host_vendor = pc ++htmldir = ${docdir} ++includedir = ${prefix}/include ++infodir = ${datarootdir}/info ++install_sh = ${SHELL} /home/stephan/projects/openelec/sources/enca/enca-1.13.patch/install-sh ++libdir = ${exec_prefix}/lib ++libexecdir = ${exec_prefix}/libexec ++localedir = ${datarootdir}/locale ++localstatedir = ${prefix}/var ++lt_ECHO = echo ++mandir = ${datarootdir}/man ++mkdir_p = /bin/mkdir -p ++oldincludedir = /usr/include ++pdfdir = ${docdir} ++prefix = /usr/local ++program_transform_name = s,x,x, ++psdir = ${docdir} ++sbindir = ${exec_prefix}/sbin ++sharedstatedir = ${prefix}/com ++srcdir = . ++sysconfdir = ${prefix}/etc ++target_alias = ++top_build_prefix = ../ ++top_builddir = .. ++top_srcdir = .. ++noinst_HEADERS = encodings.h ++noinst_SCRIPTS = expand_table.pl ++make_hash_SOURCES = make_hash.c ++BUILT_SOURCES = $(noinst_HEADERS) ++TABLE_SRC = \ ++ ACCEPTED_CHARS.t \ ++ BASE64.ti \ ++ BOXVERT_CP1125.t \ ++ BOXVERT_IBM852.t \ ++ BOXVERT_KEYBCS2.t \ ++ BOXVERT_KOI8R.t \ ++ BOXVERT_KOI8RU.t \ ++ BOXVERT_KOI8U.t \ ++ BOXVERT_KOI8UNI.t \ ++ HEXDIGITS.ti \ ++ TEX_ACCALPHA.t \ ++ TEX_ACCPUNCT.t \ ++ TEX_SKIP.t \ ++ encodings.dat ++ ++EXTRA_DIST = $(TABLE_SRC) $(noinst_SCRIPTS) iconvenc.null ++ ++# Normally there's no need to regenerate tables, they are copy-and-pasted ++# into the C source manually, but the rules are here. Run `make tables' ++# to create them. ++TABLES = \ ++ ACCEPTED_CHARS.h \ ++ BOXVERT_CP1125.h \ ++ BOXVERT_IBM852.h \ ++ BOXVERT_KEYBCS2.h \ ++ BOXVERT_KOI8R.h \ ++ BOXVERT_KOI8RU.h \ ++ BOXVERT_KOI8U.h \ ++ BOXVERT_KOI8UNI.h \ ++ TEX_ACCALPHA.h \ ++ TEX_ACCPUNCT.h \ ++ TEX_SKIP.h ++ ++TABLES_INCR = BASE64.h HEXDIGITS.h ++all: $(BUILT_SOURCES) ++ $(MAKE) $(AM_MAKEFLAGS) all-am ++ ++.SUFFIXES: ++.SUFFIXES: .c .lo .o .obj ++$(srcdir)/Makefile.in: # $(srcdir)/Makefile.am $(am__configure_deps) ++ @for dep in $?; do \ ++ case '$(am__configure_deps)' in \ ++ *$$dep*) \ ++ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ ++ && { if test -f $@; then exit 0; else break; fi; }; \ ++ exit 1;; \ ++ esac; \ ++ done; \ ++ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnits tools/Makefile'; \ ++ $(am__cd) $(top_srcdir) && \ ++ $(AUTOMAKE) --gnits tools/Makefile ++.PRECIOUS: Makefile ++Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status ++ @case '$?' in \ ++ *config.status*) \ ++ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ ++ *) \ ++ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ ++ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ ++ esac; ++ ++$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) ++ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ++ ++$(top_srcdir)/configure: # $(am__configure_deps) ++ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ++$(ACLOCAL_M4): # $(am__aclocal_m4_deps) ++ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ++$(am__aclocal_m4_deps): ++ ++clean-noinstPROGRAMS: ++ @list='$(noinst_PROGRAMS)'; test -n "$$list" || exit 0; \ ++ echo " rm -f" $$list; \ ++ rm -f $$list || exit $$?; \ ++ test -n "$(EXEEXT)" || exit 0; \ ++ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ ++ echo " rm -f" $$list; \ ++ rm -f $$list ++make_hash$(EXEEXT): $(make_hash_OBJECTS) $(make_hash_DEPENDENCIES) ++ @rm -f make_hash$(EXEEXT) ++ $(LINK) $(make_hash_OBJECTS) $(make_hash_LDADD) $(LIBS) ++ ++mostlyclean-compile: ++ -rm -f *.$(OBJEXT) ++ ++distclean-compile: ++ -rm -f *.tab.c ++ ++include ./$(DEPDIR)/make_hash.Po ++ ++.c.o: ++ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< ++ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po ++# source='$<' object='$@' libtool=no \ ++# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \ ++# $(COMPILE) -c $< ++ ++.c.obj: ++ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` ++ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po ++# source='$<' object='$@' libtool=no \ ++# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \ ++# $(COMPILE) -c `$(CYGPATH_W) '$<'` ++ ++.c.lo: ++ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< ++ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo ++# source='$<' object='$@' libtool=yes \ ++# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \ ++# $(LTCOMPILE) -c -o $@ $< ++ ++mostlyclean-libtool: ++ -rm -f *.lo ++ ++clean-libtool: ++ -rm -rf .libs _libs ++ ++ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) ++ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ ++ unique=`for i in $$list; do \ ++ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ ++ done | \ ++ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ ++ END { if (nonempty) { for (i in files) print i; }; }'`; \ ++ mkid -fID $$unique ++tags: TAGS ++ ++TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ ++ $(TAGS_FILES) $(LISP) ++ set x; \ ++ here=`pwd`; \ ++ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ ++ unique=`for i in $$list; do \ ++ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ ++ done | \ ++ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ ++ END { if (nonempty) { for (i in files) print i; }; }'`; \ ++ shift; \ ++ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ ++ test -n "$$unique" || unique=$$empty_fix; \ ++ if test $$# -gt 0; then \ ++ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ ++ "$$@" $$unique; \ ++ else \ ++ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ ++ $$unique; \ ++ fi; \ ++ fi ++ctags: CTAGS ++CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ ++ $(TAGS_FILES) $(LISP) ++ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ ++ unique=`for i in $$list; do \ ++ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ ++ done | \ ++ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ ++ END { if (nonempty) { for (i in files) print i; }; }'`; \ ++ test -z "$(CTAGS_ARGS)$$unique" \ ++ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ ++ $$unique ++ ++GTAGS: ++ here=`$(am__cd) $(top_builddir) && pwd` \ ++ && $(am__cd) $(top_srcdir) \ ++ && gtags -i $(GTAGS_ARGS) "$$here" ++ ++distclean-tags: ++ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags ++ ++distdir: $(DISTFILES) ++ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ ++ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ ++ list='$(DISTFILES)'; \ ++ dist_files=`for file in $$list; do echo $$file; done | \ ++ sed -e "s|^$$srcdirstrip/||;t" \ ++ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ ++ case $$dist_files in \ ++ */*) $(MKDIR_P) `echo "$$dist_files" | \ ++ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ ++ sort -u` ;; \ ++ esac; \ ++ for file in $$dist_files; do \ ++ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ ++ if test -d $$d/$$file; then \ ++ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ ++ if test -d "$(distdir)/$$file"; then \ ++ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ ++ fi; \ ++ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ ++ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ ++ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ ++ fi; \ ++ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ ++ else \ ++ test -f "$(distdir)/$$file" \ ++ || cp -p $$d/$$file "$(distdir)/$$file" \ ++ || exit 1; \ ++ fi; \ ++ done ++check-am: all-am ++check: $(BUILT_SOURCES) ++ $(MAKE) $(AM_MAKEFLAGS) check-am ++all-am: Makefile $(PROGRAMS) $(SCRIPTS) $(HEADERS) ++installdirs: ++install: $(BUILT_SOURCES) ++ $(MAKE) $(AM_MAKEFLAGS) install-am ++install-exec: install-exec-am ++install-data: install-data-am ++uninstall: uninstall-am ++ ++install-am: all-am ++ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am ++ ++installcheck: installcheck-am ++install-strip: ++ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ ++ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ ++ `test -z '$(STRIP)' || \ ++ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install ++mostlyclean-generic: ++ ++clean-generic: ++ ++distclean-generic: ++ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) ++ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) ++ ++maintainer-clean-generic: ++ @echo "This command is intended for maintainers to use" ++ @echo "it deletes files that may require special tools to rebuild." ++ -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) ++clean: clean-am ++ ++clean-am: clean-generic clean-libtool clean-local clean-noinstPROGRAMS \ ++ mostlyclean-am ++ ++distclean: distclean-am ++ -rm -rf ./$(DEPDIR) ++ -rm -f Makefile ++distclean-am: clean-am distclean-compile distclean-generic \ ++ distclean-local distclean-tags ++ ++dvi: dvi-am ++ ++dvi-am: ++ ++html: html-am ++ ++html-am: ++ ++info: info-am ++ ++info-am: ++ ++install-data-am: ++ ++install-dvi: install-dvi-am ++ ++install-dvi-am: ++ ++install-exec-am: ++ ++install-html: install-html-am ++ ++install-html-am: ++ ++install-info: install-info-am ++ ++install-info-am: ++ ++install-man: ++ ++install-pdf: install-pdf-am ++ ++install-pdf-am: ++ ++install-ps: install-ps-am ++ ++install-ps-am: ++ ++installcheck-am: ++ ++maintainer-clean: maintainer-clean-am ++ -rm -rf ./$(DEPDIR) ++ -rm -f Makefile ++maintainer-clean-am: distclean-am maintainer-clean-generic ++ ++mostlyclean: mostlyclean-am ++ ++mostlyclean-am: mostlyclean-compile mostlyclean-generic \ ++ mostlyclean-libtool ++ ++pdf: pdf-am ++ ++pdf-am: ++ ++ps: ps-am ++ ++ps-am: ++ ++uninstall-am: ++ ++.MAKE: all check install install-am install-strip ++ ++.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ ++ clean-libtool clean-local clean-noinstPROGRAMS ctags distclean \ ++ distclean-compile distclean-generic distclean-libtool \ ++ distclean-local distclean-tags distdir dvi dvi-am html html-am \ ++ info info-am install install-am install-data install-data-am \ ++ install-dvi install-dvi-am install-exec install-exec-am \ ++ install-html install-html-am install-info install-info-am \ ++ install-man install-pdf install-pdf-am install-ps \ ++ install-ps-am install-strip installcheck installcheck-am \ ++ installdirs maintainer-clean maintainer-clean-generic \ ++ mostlyclean mostlyclean-compile mostlyclean-generic \ ++ mostlyclean-libtool pdf pdf-am ps ps-am tags uninstall \ ++ uninstall-am ++ ++ ++all: encodings.h ++ ++encodings.sed: $(top_builddir)/iconvenc.h ++ sed -e 's/^#define \([A-Z0-9_]*\) \(.*\)/@\1@ \2/' -e 's/"//g' -e 's/NULL$$//' -e 's/ /\//' -e 's/^\(.*\)$$/s\/\1\//' $(top_builddir)/iconvenc.h >encodings.sed ++ ++encodings.h: encodings.sed $(srcdir)/encodings.dat make_hash ++ sed -f encodings.sed $(srcdir)/encodings.dat | ./make_hash >encodings.h ++ ++#tables: $(TABLES) $(TABLES_INCR) ++ ++#%.h: $(srcdir)/%.t $(srcdir)/expand_table.pl ++# $(srcdir)/expand_table.pl $< >$@ ++ ++#%.h: $(srcdir)/%.ti $(srcdir)/expand_table.pl ++# $(srcdir)/expand_table.pl $< >$@ ++ ++clean-local: ++ rm -f $(TABLES) $(TABLES_INCR) encodings.sed *~ core.* ++ ++distclean-local: ++ rm -f encodings.h ++ ++# Tell versions [3.59,3.63) of GNU make to not export all variables. ++# Otherwise a system limit (for SysV at least) may be exceeded. ++.NOEXPORT: diff --git a/packages/other/enca/url b/packages/other/enca/url index 7ab1d8f301..dac8a76c82 100644 --- a/packages/other/enca/url +++ b/packages/other/enca/url @@ -1 +1 @@ -http://dl.cihar.com/enca/enca-1.12.tar.bz2 \ No newline at end of file +http://dl.cihar.com/enca/enca-1.13.tar.bz2 \ No newline at end of file From 57c0ab1ad9b082fc05cc2f1cebfc7d7758ed78e1 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Sat, 17 Apr 2010 00:00:05 +0200 Subject: [PATCH 125/320] libdaemon: - update to libdaemon-0.14 --- packages/other/libdaemon/url | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/other/libdaemon/url b/packages/other/libdaemon/url index 3738152402..53d3d5ea89 100644 --- a/packages/other/libdaemon/url +++ b/packages/other/libdaemon/url @@ -1 +1 @@ -http://0pointer.de/lennart/projects/libdaemon/libdaemon-0.13.tar.gz \ No newline at end of file +http://0pointer.de/lennart/projects/libdaemon/libdaemon-0.14.tar.gz \ No newline at end of file From 785c019095a018f1024cd67a2be7f9d236d6f98a Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Sat, 17 Apr 2010 00:00:24 +0200 Subject: [PATCH 126/320] dbus-python: - update to dbus-python-0.83.1 --- packages/python/system/dbus-python/url | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/python/system/dbus-python/url b/packages/python/system/dbus-python/url index 019d0925ef..50df5d53f6 100644 --- a/packages/python/system/dbus-python/url +++ b/packages/python/system/dbus-python/url @@ -1 +1 @@ -http://dbus.freedesktop.org/releases/dbus-python/dbus-python-0.83.0.tar.gz +http://dbus.freedesktop.org/releases/dbus-python/dbus-python-0.83.1.tar.gz \ No newline at end of file From fa56b6e1f3eb12089099ca2449218013c332a2c3 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Sat, 17 Apr 2010 00:00:43 +0200 Subject: [PATCH 127/320] Linux-PAM: - update to Linux-PAM-1.1.1 --- .../patches/pam-disable-nis-on-uclibc.diff | 251 ------------------ ...s_that_does_not_build_with_uClibc-0.1.diff | 30 --- packages/security/Linux-PAM/url | 2 +- 3 files changed, 1 insertion(+), 282 deletions(-) delete mode 100644 packages/security/Linux-PAM/patches/pam-disable-nis-on-uclibc.diff delete mode 100644 packages/security/Linux-PAM/patches/pam-dont_build_modules_that_does_not_build_with_uClibc-0.1.diff diff --git a/packages/security/Linux-PAM/patches/pam-disable-nis-on-uclibc.diff b/packages/security/Linux-PAM/patches/pam-disable-nis-on-uclibc.diff deleted file mode 100644 index 258166cc52..0000000000 --- a/packages/security/Linux-PAM/patches/pam-disable-nis-on-uclibc.diff +++ /dev/null @@ -1,251 +0,0 @@ -Index: Linux-PAM-1.0.2/Makefile.in -=================================================================== ---- Linux-PAM-1.0.2.orig/Makefile.in 2008-08-29 01:14:12.000000000 -0700 -+++ Linux-PAM-1.0.2/Makefile.in 2009-09-04 01:06:22.571466501 -0700 -@@ -71,8 +71,7 @@ - distclean-recursive maintainer-clean-recursive - ETAGS = etags - CTAGS = ctags --DIST_SUBDIRS = libpam tests libpamc libpam_misc modules po conf doc \ -- examples xtests -+DIST_SUBDIRS = libpam libpamc libpam_misc modules po conf - DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) - distdir = $(PACKAGE)-$(VERSION) - top_distdir = $(distdir) -@@ -244,8 +243,8 @@ - top_builddir = @top_builddir@ - top_srcdir = @top_srcdir@ - AUTOMAKE_OPTIONS = 1.9 gnu dist-bzip2 check-news --@STATIC_MODULES_FALSE@SUBDIRS = libpam tests libpamc libpam_misc modules po conf doc examples xtests --@STATIC_MODULES_TRUE@SUBDIRS = modules libpam libpamc libpam_misc tests po conf doc examples xtests -+@STATIC_MODULES_FALSE@SUBDIRS = libpam libpamc libpam_misc modules po conf -+@STATIC_MODULES_TRUE@SUBDIRS = modules libpam libpamc libpam_misc po conf - CLEANFILES = *~ - M4_FILES = m4/codeset.m4 m4/gettext.m4 m4/glibc21.m4 m4/glibc2.m4 \ - m4/iconv.m4 m4/intdiv0.m4 m4/intmax.m4 m4/inttypes_h.m4 \ -Index: Linux-PAM-1.0.2/modules/pam_access/pam_access.c -=================================================================== ---- Linux-PAM-1.0.2.orig/modules/pam_access/pam_access.c 2007-12-07 07:40:01.000000000 -0800 -+++ Linux-PAM-1.0.2/modules/pam_access/pam_access.c 2009-09-04 01:06:22.575455835 -0700 -@@ -41,7 +41,11 @@ - #include - #include - #include -+ -+#ifdef NIS - #include -+#endif -+ - #include - #include - #include -@@ -479,8 +483,9 @@ - char *mydomain = NULL; - int retval; - -+#ifdef NIS - yp_get_default_domain(&mydomain); -- -+#endif - - retval = innetgr (netgroup, machine, user, mydomain); - if (debug == YES) -Index: Linux-PAM-1.0.2/modules/pam_unix/Makefile.am -=================================================================== ---- Linux-PAM-1.0.2.orig/modules/pam_unix/Makefile.am 2008-02-29 07:22:03.000000000 -0800 -+++ Linux-PAM-1.0.2/modules/pam_unix/Makefile.am 2009-09-04 01:09:46.519457167 -0700 -@@ -32,7 +32,7 @@ - - securelib_LTLIBRARIES = pam_unix.la - --noinst_HEADERS = md5.h support.h yppasswd.h bigcrypt.h passverify.h -+noinst_HEADERS = md5.h support.h bigcrypt.h passverify.h - - sbin_PROGRAMS = unix_chkpwd unix_update - -@@ -40,7 +40,7 @@ - - pam_unix_la_SOURCES = bigcrypt.c pam_unix_acct.c \ - pam_unix_auth.c pam_unix_passwd.c pam_unix_sess.c support.c \ -- passverify.c yppasswd_xdr.c md5_good.c md5_broken.c -+ passverify.c md5_good.c md5_broken.c - - bigcrypt_SOURCES = bigcrypt.c bigcrypt_main.c - bigcrypt_CFLAGS = $(AM_CFLAGS) -Index: Linux-PAM-1.0.2/modules/pam_unix/Makefile.in -=================================================================== ---- Linux-PAM-1.0.2.orig/modules/pam_unix/Makefile.in 2008-08-29 01:14:10.000000000 -0700 -+++ Linux-PAM-1.0.2/modules/pam_unix/Makefile.in 2009-09-04 01:13:42.939510044 -0700 -@@ -74,7 +74,7 @@ - pam_unix_la_DEPENDENCIES = - am_pam_unix_la_OBJECTS = bigcrypt.lo pam_unix_acct.lo pam_unix_auth.lo \ - pam_unix_passwd.lo pam_unix_sess.lo support.lo passverify.lo \ -- yppasswd_xdr.lo md5_good.lo md5_broken.lo -+ md5_good.lo md5_broken.lo - pam_unix_la_OBJECTS = $(am_pam_unix_la_OBJECTS) - pam_unix_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ -@@ -310,10 +310,10 @@ - @LIBCRYPT@ @LIBSELINUX@ - - securelib_LTLIBRARIES = pam_unix.la --noinst_HEADERS = md5.h support.h yppasswd.h bigcrypt.h passverify.h -+noinst_HEADERS = md5.h support.h bigcrypt.h passverify.h - pam_unix_la_SOURCES = bigcrypt.c pam_unix_acct.c \ - pam_unix_auth.c pam_unix_passwd.c pam_unix_sess.c support.c \ -- passverify.c yppasswd_xdr.c md5_good.c md5_broken.c -+ passverify.c md5_good.c md5_broken.c - - bigcrypt_SOURCES = bigcrypt.c bigcrypt_main.c - bigcrypt_CFLAGS = $(AM_CFLAGS) -@@ -465,7 +465,6 @@ - @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unix_update-md5_good.Po@am__quote@ - @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unix_update-passverify.Po@am__quote@ - @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unix_update-unix_update.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/yppasswd_xdr.Plo@am__quote@ - - .c.o: - @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -Index: Linux-PAM-1.0.2/modules/pam_unix/pam_unix_passwd.c -=================================================================== ---- Linux-PAM-1.0.2.orig/modules/pam_unix/pam_unix_passwd.c 2008-02-29 07:22:03.000000000 -0800 -+++ Linux-PAM-1.0.2/modules/pam_unix/pam_unix_passwd.c 2009-09-04 01:06:22.579455994 -0700 -@@ -55,8 +55,11 @@ - #include - #include - #include -+ -+#ifdef NIS - #include - #include -+#endif - - #include - #include -@@ -77,7 +80,10 @@ - #include - #include - -+#ifdef NIS - #include "yppasswd.h" -+#endif -+ - #include "md5.h" - #include "support.h" - #include "passverify.h" -@@ -105,6 +111,7 @@ - - static char *getNISserver(pam_handle_t *pamh) - { -+#ifdef NIS - char *master; - char *domainname; - int port, err; -@@ -131,6 +138,9 @@ - return NULL; - } - return master; -+#else -+ return NULL; -+#endif - } - - #ifdef WITH_SELINUX -@@ -301,6 +311,7 @@ - - if (on(UNIX_NIS, ctrl) && _unix_comesfromsource(pamh, forwho, 0, 1)) { - if ((master=getNISserver(pamh)) != NULL) { -+#ifdef NIS - struct timeval timeout; - struct yppasswd yppwd; - CLIENT *clnt; -@@ -362,6 +373,7 @@ - #ifdef DEBUG - sleep(5); - #endif -+#endif - } else { - retval = PAM_TRY_AGAIN; - } -Index: Linux-PAM-1.0.2/modules/pam_unix/support.c -=================================================================== ---- Linux-PAM-1.0.2.orig/modules/pam_unix/support.c 2008-01-23 07:35:13.000000000 -0800 -+++ Linux-PAM-1.0.2/modules/pam_unix/support.c 2009-09-04 01:06:22.579455994 -0700 -@@ -19,7 +19,10 @@ - #include - #include - #include -+ -+#ifdef NIS - #include -+#endif - - #include - #include -@@ -266,6 +269,7 @@ - if (!matched && nis) { - char *userinfo = NULL, *domain = NULL; - int len = 0, i; -+#ifdef NIS - len = yp_get_default_domain(&domain); - if (len == YPERR_SUCCESS) { - len = yp_bind(domain); -@@ -280,6 +284,7 @@ - matched = 1; - } - } -+#endif - } - - if (matched && (ret != NULL)) { -Index: Linux-PAM-1.0.2/modules/pam_unix/yppasswd.h -=================================================================== ---- Linux-PAM-1.0.2.orig/modules/pam_unix/yppasswd.h 2000-06-20 15:12:08.000000000 -0700 -+++ Linux-PAM-1.0.2/modules/pam_unix/yppasswd.h 2009-09-04 01:06:22.579455994 -0700 -@@ -13,6 +13,8 @@ - #ifndef _YPPASSWD_H_ - #define _YPPASSWD_H_ - -+#ifdef NIS -+ - #define YPPASSWDPROG ((u_long)100009) - #define YPPASSWDVERS ((u_long)1) - #define YPPASSWDPROC_UPDATE ((u_long)1) -@@ -48,4 +50,6 @@ - bool_t xdr_xpasswd(XDR * xdrs, xpasswd * objp); - bool_t xdr_yppasswd(XDR * xdrs, yppasswd * objp); - -+#endif -+ - #endif /* _YPPASSWD_H_ */ -Index: Linux-PAM-1.0.2/modules/pam_unix/yppasswd_xdr.c -=================================================================== ---- Linux-PAM-1.0.2.orig/modules/pam_unix/yppasswd_xdr.c 2005-07-20 02:46:19.000000000 -0700 -+++ Linux-PAM-1.0.2/modules/pam_unix/yppasswd_xdr.c 2009-09-04 01:06:22.579455994 -0700 -@@ -10,6 +10,8 @@ - * editied manually. - */ - -+#ifdef NIS -+ - #include "config.h" - - #include -@@ -36,3 +38,5 @@ - return xdr_string(xdrs, &objp->oldpass, ~0) - && xdr_xpasswd(xdrs, &objp->newpw); - } -+ -+#endif -Index: Linux-PAM-1.0.2/po/POTFILES.in -=================================================================== ---- Linux-PAM-1.0.2.orig/po/POTFILES.in 2008-02-13 06:39:41.000000000 -0800 -+++ Linux-PAM-1.0.2/po/POTFILES.in 2009-09-04 01:06:22.579455994 -0700 -@@ -85,7 +85,6 @@ - ./modules/pam_unix/passverify.c - ./modules/pam_unix/support.c - ./modules/pam_unix/unix_chkpwd.c --./modules/pam_unix/yppasswd_xdr.c - ./modules/pam_userdb/pam_userdb.c - ./modules/pam_warn/pam_warn.c - ./modules/pam_wheel/pam_wheel.c diff --git a/packages/security/Linux-PAM/patches/pam-dont_build_modules_that_does_not_build_with_uClibc-0.1.diff b/packages/security/Linux-PAM/patches/pam-dont_build_modules_that_does_not_build_with_uClibc-0.1.diff deleted file mode 100644 index 5065154967..0000000000 --- a/packages/security/Linux-PAM/patches/pam-dont_build_modules_that_does_not_build_with_uClibc-0.1.diff +++ /dev/null @@ -1,30 +0,0 @@ -diff -Naur Linux-PAM-1.1.0/modules/Makefile.am Linux-PAM-1.1.0.patch/modules/Makefile.am ---- Linux-PAM-1.1.0/modules/Makefile.am 2008-11-28 15:29:12.000000000 +0100 -+++ Linux-PAM-1.1.0.patch/modules/Makefile.am 2009-11-08 11:14:06.473256272 +0100 -@@ -7,9 +7,9 @@ - pam_group pam_issue pam_keyinit pam_lastlog pam_limits \ - pam_listfile pam_localuser pam_loginuid pam_mail \ - pam_mkhomedir pam_motd pam_namespace pam_nologin \ -- pam_permit pam_pwhistory pam_rhosts pam_rootok pam_securetty \ -+ pam_permit pam_rhosts pam_rootok pam_securetty \ - pam_selinux pam_sepermit pam_shells pam_stress \ -- pam_succeed_if pam_tally pam_tally2 pam_time pam_timestamp \ -+ pam_succeed_if pam_tally pam_tally2 pam_time \ - pam_tty_audit pam_umask \ - pam_unix pam_userdb pam_warn pam_wheel pam_xauth - -diff -Naur Linux-PAM-1.1.0/modules/Makefile.in Linux-PAM-1.1.0.patch/modules/Makefile.in ---- Linux-PAM-1.1.0/modules/Makefile.in 2009-06-19 16:04:56.000000000 +0200 -+++ Linux-PAM-1.1.0.patch/modules/Makefile.in 2009-11-08 11:14:26.485380166 +0100 -@@ -235,9 +235,9 @@ - pam_group pam_issue pam_keyinit pam_lastlog pam_limits \ - pam_listfile pam_localuser pam_loginuid pam_mail \ - pam_mkhomedir pam_motd pam_namespace pam_nologin \ -- pam_permit pam_pwhistory pam_rhosts pam_rootok pam_securetty \ -+ pam_permit pam_rhosts pam_rootok pam_securetty \ - pam_selinux pam_sepermit pam_shells pam_stress \ -- pam_succeed_if pam_tally pam_tally2 pam_time pam_timestamp \ -+ pam_succeed_if pam_tally pam_tally2 pam_time \ - pam_tty_audit pam_umask \ - pam_unix pam_userdb pam_warn pam_wheel pam_xauth - diff --git a/packages/security/Linux-PAM/url b/packages/security/Linux-PAM/url index 58ba959bc8..38c291ae6b 100644 --- a/packages/security/Linux-PAM/url +++ b/packages/security/Linux-PAM/url @@ -1 +1 @@ -http://www.kernel.org/pub/linux/libs/pam/library/Linux-PAM-1.1.0.tar.bz2 \ No newline at end of file +http://www.kernel.org/pub/linux/libs/pam/library/Linux-PAM-1.1.1.tar.bz2 \ No newline at end of file From fbe9fb371c213a2e92925bae9e4ee4ec91f7794a Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Sat, 17 Apr 2010 00:01:06 +0200 Subject: [PATCH 128/320] polkit: - update to polkit-0.96 --- packages/security/polkit/url | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/security/polkit/url b/packages/security/polkit/url index 0e3ac8b777..d9613275dc 100644 --- a/packages/security/polkit/url +++ b/packages/security/polkit/url @@ -1 +1 @@ -http://hal.freedesktop.org/releases/polkit-0.95.tar.gz \ No newline at end of file +http://hal.freedesktop.org/releases/polkit-0.96.tar.gz \ No newline at end of file From 3163f7851ec9be7e049964c38cc3551f92f7535f Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Sat, 17 Apr 2010 00:01:31 +0200 Subject: [PATCH 129/320] LVM2: - update to LVM2.2.02.63 --- packages/sysutils/LVM2/url | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/sysutils/LVM2/url b/packages/sysutils/LVM2/url index ba0b507e61..5d60e08e67 100644 --- a/packages/sysutils/LVM2/url +++ b/packages/sysutils/LVM2/url @@ -1 +1 @@ -ftp://sources.redhat.com/pub/lvm2/LVM2.2.02.54.tgz \ No newline at end of file +ftp://sources.redhat.com/pub/lvm2/LVM2.2.02.63.tgz From e06a16e21cfdf661af566a8ea61b8ac76d40ea31 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Sat, 17 Apr 2010 00:01:47 +0200 Subject: [PATCH 130/320] libusb: - update to libusb-1.0.6 --- packages/sysutils/libusb/url | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/sysutils/libusb/url b/packages/sysutils/libusb/url index 6949cc5a3d..503c47098e 100644 --- a/packages/sysutils/libusb/url +++ b/packages/sysutils/libusb/url @@ -1 +1 @@ -http://freefr.dl.sourceforge.net/sourceforge/libusb/libusb-1.0.1.tar.bz2 +http://freefr.dl.sourceforge.net/sourceforge/libusb/libusb-1.0.6.tar.bz2 From f1b0fdfd8ef6372939e4dde5e1cbe23c5567ee00 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Sat, 17 Apr 2010 00:02:16 +0200 Subject: [PATCH 131/320] module-init-tools: - update to module-init-tools-3.12-pre2 --- packages/sysutils/module-init-tools/url | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/sysutils/module-init-tools/url b/packages/sysutils/module-init-tools/url index 19aaaa81d4..eb01046af6 100644 --- a/packages/sysutils/module-init-tools/url +++ b/packages/sysutils/module-init-tools/url @@ -1 +1 @@ -http://ftp.kernel.org/pub/linux/utils/kernel/module-init-tools/module-init-tools-3.11.1.tar.bz2 +http://ftp.kernel.org/pub/linux/utils/kernel/module-init-tools/module-init-tools-3.12-pre2.tar.gz \ No newline at end of file From 3ec25c0d8979c6fc9d65e0b4f0195a173580a5f3 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Sat, 17 Apr 2010 00:02:36 +0200 Subject: [PATCH 132/320] parted: - update to parted-2.2 --- packages/sysutils/parted/url | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/sysutils/parted/url b/packages/sysutils/parted/url index 1373b10764..a12d3efeb6 100644 --- a/packages/sysutils/parted/url +++ b/packages/sysutils/parted/url @@ -1 +1 @@ -http://ftp.gnu.org/gnu/parted/parted-1.9.0.tar.gz \ No newline at end of file +http://ftp.gnu.org/gnu/parted/parted-2.2.tar.gz \ No newline at end of file From d33ec240beefeae8f010a087ddcaa41b446224e4 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Sat, 17 Apr 2010 00:02:54 +0200 Subject: [PATCH 133/320] pciutils: - update to pciutils-3.1.7 --- packages/sysutils/pciutils/url | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/sysutils/pciutils/url b/packages/sysutils/pciutils/url index 442782ed50..31f0339444 100644 --- a/packages/sysutils/pciutils/url +++ b/packages/sysutils/pciutils/url @@ -1 +1 @@ -http://ftp.de.kernel.org/pub/software/utils/pciutils/pciutils-3.1.6.tar.bz2 +http://ftp.de.kernel.org/pub/software/utils/pciutils/pciutils-3.1.7.tar.bz2 From 0273ed0f408b0c5ef9ba6143ca68d88f62546d2c Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Sat, 17 Apr 2010 00:03:21 +0200 Subject: [PATCH 134/320] sg3_utils: - update to sg3_utils-1.29 --- packages/sysutils/sg3_utils/url | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/sysutils/sg3_utils/url b/packages/sysutils/sg3_utils/url index 6d97ab4eac..8f7070e5b2 100644 --- a/packages/sysutils/sg3_utils/url +++ b/packages/sysutils/sg3_utils/url @@ -1 +1 @@ -http://sg.danny.cz/sg/p/sg3_utils-1.28.tar.bz2 \ No newline at end of file +http://sg.danny.cz/sg/p/sg3_utils-1.29.tar.bz2 \ No newline at end of file From dc1c1fb713f982d221387cf7faac4c6f967116fa Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Sat, 17 Apr 2010 00:03:42 +0200 Subject: [PATCH 135/320] util-linux-ng: - update to util-linux-ng-2.17.2 --- packages/sysutils/util-linux-ng/url | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/sysutils/util-linux-ng/url b/packages/sysutils/util-linux-ng/url index 216f29879d..528f84c55e 100644 --- a/packages/sysutils/util-linux-ng/url +++ b/packages/sysutils/util-linux-ng/url @@ -1 +1 @@ -http://www.kernel.org/pub/linux/utils/util-linux-ng/v2.16/util-linux-ng-2.16.1.tar.bz2 \ No newline at end of file +http://www.kernel.org/pub/linux/utils/util-linux-ng/v2.17/util-linux-ng-2.17.2.tar.bz2 \ No newline at end of file From 0b375b832c48294c9ee5df955ee891f89bf8e4d8 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Sat, 17 Apr 2010 00:03:59 +0200 Subject: [PATCH 136/320] libxml2: - update to libxml2-2.7.7 --- packages/textproc/libxml2/url | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/textproc/libxml2/url b/packages/textproc/libxml2/url index 3ae6f7d6d4..f4ddb0d914 100644 --- a/packages/textproc/libxml2/url +++ b/packages/textproc/libxml2/url @@ -1 +1 @@ -ftp://xmlsoft.org/libxml2/libxml2-2.7.5.tar.gz \ No newline at end of file +ftp://xmlsoft.org/libxml2/libxml2-2.7.7.tar.gz \ No newline at end of file From 6ff4fa79972ebc4b55ecf9e71ba107650cf0e120 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Sat, 17 Apr 2010 00:04:14 +0200 Subject: [PATCH 137/320] binutils: - update to binutils-2.20.51.0.8 --- packages/toolchain/devel/binutils/url | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/toolchain/devel/binutils/url b/packages/toolchain/devel/binutils/url index d5954ddf71..e9c0a6d2a4 100644 --- a/packages/toolchain/devel/binutils/url +++ b/packages/toolchain/devel/binutils/url @@ -1 +1 @@ -ftp://ftp.kernel.org/pub/linux/devel/binutils/binutils-2.20.51.0.7.tar.bz2 \ No newline at end of file +ftp://ftp.kernel.org/pub/linux/devel/binutils/binutils-2.20.51.0.8.tar.bz2 \ No newline at end of file From fa464fd2ef5af74791d2c0c858456d797f3df60d Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Sat, 17 Apr 2010 00:04:36 +0200 Subject: [PATCH 138/320] ccache: - update to ccache-3.0pre0 --- packages/toolchain/devel/ccache/url | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/toolchain/devel/ccache/url b/packages/toolchain/devel/ccache/url index 6b47bc66d9..813727b48f 100644 --- a/packages/toolchain/devel/ccache/url +++ b/packages/toolchain/devel/ccache/url @@ -1 +1 @@ -http://samba.org/ftp/ccache/ccache-2.4.tar.gz +http://samba.org/ftp/ccache/ccache-3.0pre0.tar.bz2 \ No newline at end of file From 591eebac5e38322c3c25230fcad310d157c7cad1 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Sat, 17 Apr 2010 00:04:49 +0200 Subject: [PATCH 139/320] cmake: - update to cmake-2.8.1 --- packages/toolchain/devel/cmake/url | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/toolchain/devel/cmake/url b/packages/toolchain/devel/cmake/url index 919d3041da..8c6712ea09 100644 --- a/packages/toolchain/devel/cmake/url +++ b/packages/toolchain/devel/cmake/url @@ -1 +1 @@ -http://www.cmake.org/files/v2.6/cmake-2.6.4.tar.gz +http://www.cmake.org/files/v2.8/cmake-2.8.1.tar.gz \ No newline at end of file From a4a017e0dfb3264f5f741fd7336d482411c2e59b Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Sat, 17 Apr 2010 00:05:07 +0200 Subject: [PATCH 140/320] yasm: - update to yasm-1.0.0 --- packages/toolchain/lang/yasm/url | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/toolchain/lang/yasm/url b/packages/toolchain/lang/yasm/url index 9be2b58b77..98ff511eda 100644 --- a/packages/toolchain/lang/yasm/url +++ b/packages/toolchain/lang/yasm/url @@ -1 +1 @@ -http://www.tortall.net/projects/yasm/releases/yasm-0.8.0.tar.gz \ No newline at end of file +http://www.tortall.net/projects/yasm/releases/yasm-1.0.0.tar.gz \ No newline at end of file From ecd3ca6edd83fe143ef436e8adc5bc21bc098cde Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Sat, 17 Apr 2010 00:05:47 +0200 Subject: [PATCH 141/320] gmp: - add -fexceptions to CPPFLAGS --- packages/toolchain/math/gmp/build | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/toolchain/math/gmp/build b/packages/toolchain/math/gmp/build index d15b61187b..4841578946 100755 --- a/packages/toolchain/math/gmp/build +++ b/packages/toolchain/math/gmp/build @@ -6,9 +6,10 @@ $SCRIPTS/install ccache setup_toolchain host -# workaround gcc 4.3.2 bug on x86_64 hosts +# CFLAGS: workaround gcc 4.3.2 bug on x86_64 hosts # http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=524472 export CFLAGS="$CFLAGS -fno-strict-aliasing -fPIC" + export CPPFLAGS="$CPPFLAGS -fexceptions" cd $PKG_BUILD From e91f7c1716def0e745824404cb8aa59196753729 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Sat, 17 Apr 2010 00:06:05 +0200 Subject: [PATCH 142/320] sed: - update to sed-4.2.1 --- packages/toolchain/sed/url | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/toolchain/sed/url b/packages/toolchain/sed/url index a1f64a4349..f6126cf7db 100644 --- a/packages/toolchain/sed/url +++ b/packages/toolchain/sed/url @@ -1 +1 @@ -http://ftp.gnu.org/gnu/sed/sed-4.1.4.tar.gz +http://ftp.gnu.org/gnu/sed/sed-4.2.1.tar.bz2 \ No newline at end of file From 27d8ff08f0f5d77ec8690b1770bbb7fc140af725 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Sat, 17 Apr 2010 00:06:23 +0200 Subject: [PATCH 143/320] curl: - update to curl-7.20.1 --- packages/web/curl/url | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/web/curl/url b/packages/web/curl/url index 996786b108..ae34b215cc 100644 --- a/packages/web/curl/url +++ b/packages/web/curl/url @@ -1 +1 @@ -http://curl.haxx.se/download/curl-7.19.4.tar.bz2 +http://curl.haxx.se/download/curl-7.20.1.tar.bz2 \ No newline at end of file From a18bf1b656d34af1ba59537dddbe85d585b52523 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Sat, 17 Apr 2010 00:06:41 +0200 Subject: [PATCH 144/320] libmicrohttpd: - update to libmicrohttpd-0.4.6 --- packages/web/libmicrohttpd/url | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/web/libmicrohttpd/url b/packages/web/libmicrohttpd/url index 918416af95..1502e63b3d 100644 --- a/packages/web/libmicrohttpd/url +++ b/packages/web/libmicrohttpd/url @@ -1 +1 @@ -ftp://sunsite.cnlab-switch.ch/mirror/gnu/libmicrohttpd/libmicrohttpd-0.4.5.tar.gz \ No newline at end of file +ftp://sunsite.cnlab-switch.ch/mirror/gnu/libmicrohttpd/libmicrohttpd-0.4.6.tar.gz \ No newline at end of file From 1011a45c2fc283d7b1d59befb2bb64dcfd1ff600 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Sat, 17 Apr 2010 00:07:19 +0200 Subject: [PATCH 145/320] xf86-input-wacom: - update to xf86-input-wacom-0.10.5 --- packages/x11/driver/xf86-input-wacom/url | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/x11/driver/xf86-input-wacom/url b/packages/x11/driver/xf86-input-wacom/url index f611635f35..6ae0215f91 100644 --- a/packages/x11/driver/xf86-input-wacom/url +++ b/packages/x11/driver/xf86-input-wacom/url @@ -1 +1 @@ -http://freefr.dl.sourceforge.net/project/linuxwacom/xf86-input-wacom/xf86-input-wacom-0.10.4.tar.bz2 \ No newline at end of file +http://freefr.dl.sourceforge.net/project/linuxwacom/xf86-input-wacom/xf86-input-wacom-0.10.5.tar.bz2 \ No newline at end of file From f87382e5da209448e7090eb71d278de363bc6415 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Sat, 17 Apr 2010 00:07:39 +0200 Subject: [PATCH 146/320] libXmu: - update to libXmu-1.0.5 --- packages/x11/lib/libXmu/url | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/x11/lib/libXmu/url b/packages/x11/lib/libXmu/url index 8965d9a8a2..c38aaaf231 100644 --- a/packages/x11/lib/libXmu/url +++ b/packages/x11/lib/libXmu/url @@ -1 +1 @@ -http://xorg.freedesktop.org/releases/individual/lib/libXmu-1.0.4.tar.bz2 +http://xorg.freedesktop.org/releases/individual/lib/libXmu-1.0.5.tar.bz2 From 537b0207bb9a559127e0f63a35637fc16932c4d8 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Sat, 17 Apr 2010 00:07:55 +0200 Subject: [PATCH 147/320] encodings: - update to encodings-1.0.3 --- packages/x11/font/encodings/url | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/x11/font/encodings/url b/packages/x11/font/encodings/url index c28851f40b..810c21869b 100644 --- a/packages/x11/font/encodings/url +++ b/packages/x11/font/encodings/url @@ -1 +1 @@ -http://xorg.freedesktop.org/releases/individual/font/encodings-1.0.2.tar.bz2 +http://xorg.freedesktop.org/releases/individual/font/encodings-1.0.3.tar.bz2 From 7780bee724d06cbcec0c7ef5799e2dbb0c1c7078 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Sat, 17 Apr 2010 00:08:09 +0200 Subject: [PATCH 148/320] libxcb: - update to libxcb-1.6 --- packages/x11/lib/libxcb/url | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/x11/lib/libxcb/url b/packages/x11/lib/libxcb/url index 703a2bee59..fcad720ea6 100644 --- a/packages/x11/lib/libxcb/url +++ b/packages/x11/lib/libxcb/url @@ -1 +1 @@ -http://xcb.freedesktop.org/dist/libxcb-1.5.tar.bz2 \ No newline at end of file +http://xcb.freedesktop.org/dist/libxcb-1.6.tar.bz2 \ No newline at end of file From bcdecf0e1a9533a050d098284aa150e033b187b2 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Sat, 17 Apr 2010 00:08:25 +0200 Subject: [PATCH 149/320] fontconfig: - update to fontconfig-2.8.0 --- packages/x11/other/fontconfig/url | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/x11/other/fontconfig/url b/packages/x11/other/fontconfig/url index ca1830006c..307a703f05 100644 --- a/packages/x11/other/fontconfig/url +++ b/packages/x11/other/fontconfig/url @@ -1 +1 @@ -http://fontconfig.org/release/fontconfig-2.7.3.tar.gz +http://fontconfig.org/release/fontconfig-2.8.0.tar.gz \ No newline at end of file From c79ded6f07c2e9e012e755ea1631d4ad76953c86 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Sat, 17 Apr 2010 02:29:12 +0200 Subject: [PATCH 150/320] glib: - cleanup - install charset.alias --- packages/devel/glib/build | 1 - packages/devel/glib/install | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/packages/devel/glib/build b/packages/devel/glib/build index 241160eea4..049d9b2bf0 100755 --- a/packages/devel/glib/build +++ b/packages/devel/glib/build @@ -3,7 +3,6 @@ . config/options $SCRIPTS/build toolchain -#$SCRIPTS/build libiconv $SCRIPTS/build zlib $SCRIPTS/build glib-host diff --git a/packages/devel/glib/install b/packages/devel/glib/install index bd21ae602e..2a4172be3f 100755 --- a/packages/devel/glib/install +++ b/packages/devel/glib/install @@ -3,8 +3,8 @@ . config/options $SCRIPTS/install zlib -#$SCRIPTS/install libiconv mkdir -p $INSTALL/usr/lib cp -P `find $PKG_BUILD/.build-target/g{lib,module,object,thread,io} -name *.so*` $INSTALL/usr/lib rm -rf $INSTALL/usr/lib/libg{lib,module,object,thread,io}*.so*T + cp $PKG_BUILD/.build-target/glib/libcharset/charset.alias $INSTALL/usr/lib \ No newline at end of file From c907fc859d509dbc635e28d87fc0d151251122fb Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Sat, 17 Apr 2010 02:29:55 +0200 Subject: [PATCH 151/320] busybox: - create also /var/lib/polkit-1 and /var/lib/udisks --- packages/sysutils/busybox/init.d/06_make_directorys | 3 +++ 1 file changed, 3 insertions(+) diff --git a/packages/sysutils/busybox/init.d/06_make_directorys b/packages/sysutils/busybox/init.d/06_make_directorys index 9f19dc2486..8f4690580d 100755 --- a/packages/sysutils/busybox/init.d/06_make_directorys +++ b/packages/sysutils/busybox/init.d/06_make_directorys @@ -19,3 +19,6 @@ progress "make variable directory structure" $IONICE touch /var/log/wtmp $IONICE chmod 1777 /var/log/wtmp +# others: + $IONICE mkdir -p /var/lib/polkit-1 \ + /var/lib/udisks From 21c3f01b4d37dea00bb3fffed178afb7a80a8f03 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Sat, 17 Apr 2010 02:30:37 +0200 Subject: [PATCH 152/320] udev: - remove rule for probing filesystem (fixes hanging blkid) --- packages/sysutils/udev/config/60-filesystem-info.rules | 3 --- 1 file changed, 3 deletions(-) delete mode 100644 packages/sysutils/udev/config/60-filesystem-info.rules diff --git a/packages/sysutils/udev/config/60-filesystem-info.rules b/packages/sysutils/udev/config/60-filesystem-info.rules deleted file mode 100644 index 2fbe75fb42..0000000000 --- a/packages/sysutils/udev/config/60-filesystem-info.rules +++ /dev/null @@ -1,3 +0,0 @@ -# probe filesystem metadata of disks -KERNEL!="sr*", IMPORT{program}="/sbin/blkid -o udev -p $tempnode" - From 06b4c51dfce2b4b987f321dcfee9fbb2d13a0175 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Sat, 17 Apr 2010 02:34:39 +0200 Subject: [PATCH 153/320] projects/*/linux: - add audit support (for creating /proc/*/sessionid) --- projects/ION/linux/linux.i386.conf | 5 ++++- projects/ION/linux/linux.x86_64.conf | 5 ++++- projects/generic/linux/linux.i386.conf | 5 ++++- projects/intel/linux/linux.i386.conf | 5 ++++- projects/intel/linux/linux.x86_64.conf | 5 ++++- 5 files changed, 20 insertions(+), 5 deletions(-) diff --git a/projects/ION/linux/linux.i386.conf b/projects/ION/linux/linux.i386.conf index 78339d624c..2de2cd5473 100644 --- a/projects/ION/linux/linux.i386.conf +++ b/projects/ION/linux/linux.i386.conf @@ -78,7 +78,9 @@ CONFIG_POSIX_MQUEUE_SYSCTL=y CONFIG_BSD_PROCESS_ACCT=y # CONFIG_BSD_PROCESS_ACCT_V3 is not set # CONFIG_TASKSTATS is not set -# CONFIG_AUDIT is not set +CONFIG_AUDIT=y +CONFIG_AUDITSYSCALL=y +CONFIG_AUDIT_TREE=y # # RCU Subsystem @@ -2027,6 +2029,7 @@ CONFIG_CRC_ITU_T=y CONFIG_CRC32=y # CONFIG_CRC7 is not set CONFIG_LIBCRC32C=y +CONFIG_AUDIT_GENERIC=y CONFIG_ZLIB_INFLATE=y CONFIG_ZLIB_DEFLATE=y CONFIG_LZO_COMPRESS=y diff --git a/projects/ION/linux/linux.x86_64.conf b/projects/ION/linux/linux.x86_64.conf index eba7cf1f50..319efaa6aa 100644 --- a/projects/ION/linux/linux.x86_64.conf +++ b/projects/ION/linux/linux.x86_64.conf @@ -79,7 +79,9 @@ CONFIG_POSIX_MQUEUE_SYSCTL=y CONFIG_BSD_PROCESS_ACCT=y # CONFIG_BSD_PROCESS_ACCT_V3 is not set # CONFIG_TASKSTATS is not set -# CONFIG_AUDIT is not set +CONFIG_AUDIT=y +CONFIG_AUDITSYSCALL=y +CONFIG_AUDIT_TREE=y # # RCU Subsystem @@ -1981,6 +1983,7 @@ CONFIG_CRC_ITU_T=y CONFIG_CRC32=y # CONFIG_CRC7 is not set CONFIG_LIBCRC32C=y +CONFIG_AUDIT_GENERIC=y CONFIG_ZLIB_INFLATE=y CONFIG_ZLIB_DEFLATE=y CONFIG_LZO_COMPRESS=y diff --git a/projects/generic/linux/linux.i386.conf b/projects/generic/linux/linux.i386.conf index 35e38658b7..baccfd3516 100644 --- a/projects/generic/linux/linux.i386.conf +++ b/projects/generic/linux/linux.i386.conf @@ -78,7 +78,9 @@ CONFIG_POSIX_MQUEUE_SYSCTL=y CONFIG_BSD_PROCESS_ACCT=y # CONFIG_BSD_PROCESS_ACCT_V3 is not set # CONFIG_TASKSTATS is not set -# CONFIG_AUDIT is not set +CONFIG_AUDIT=y +CONFIG_AUDITSYSCALL=y +CONFIG_AUDIT_TREE=y # # RCU Subsystem @@ -2345,6 +2347,7 @@ CONFIG_CRC_ITU_T=y CONFIG_CRC32=y # CONFIG_CRC7 is not set CONFIG_LIBCRC32C=y +CONFIG_AUDIT_GENERIC=y CONFIG_ZLIB_INFLATE=y CONFIG_ZLIB_DEFLATE=y CONFIG_LZO_COMPRESS=y diff --git a/projects/intel/linux/linux.i386.conf b/projects/intel/linux/linux.i386.conf index 358ea32645..7249944643 100644 --- a/projects/intel/linux/linux.i386.conf +++ b/projects/intel/linux/linux.i386.conf @@ -78,7 +78,9 @@ CONFIG_POSIX_MQUEUE_SYSCTL=y CONFIG_BSD_PROCESS_ACCT=y # CONFIG_BSD_PROCESS_ACCT_V3 is not set # CONFIG_TASKSTATS is not set -# CONFIG_AUDIT is not set +CONFIG_AUDIT=y +CONFIG_AUDITSYSCALL=y +CONFIG_AUDIT_TREE=y # # RCU Subsystem @@ -2301,6 +2303,7 @@ CONFIG_CRC_ITU_T=y CONFIG_CRC32=y # CONFIG_CRC7 is not set CONFIG_LIBCRC32C=y +CONFIG_AUDIT_GENERIC=y CONFIG_ZLIB_INFLATE=y CONFIG_ZLIB_DEFLATE=y CONFIG_LZO_COMPRESS=y diff --git a/projects/intel/linux/linux.x86_64.conf b/projects/intel/linux/linux.x86_64.conf index 71c54359b2..8655e4fda2 100644 --- a/projects/intel/linux/linux.x86_64.conf +++ b/projects/intel/linux/linux.x86_64.conf @@ -79,7 +79,9 @@ CONFIG_POSIX_MQUEUE_SYSCTL=y CONFIG_BSD_PROCESS_ACCT=y # CONFIG_BSD_PROCESS_ACCT_V3 is not set # CONFIG_TASKSTATS is not set -# CONFIG_AUDIT is not set +CONFIG_AUDIT=y +CONFIG_AUDITSYSCALL=y +CONFIG_AUDIT_TREE=y # # RCU Subsystem @@ -2258,6 +2260,7 @@ CONFIG_CRC_ITU_T=y CONFIG_CRC32=y # CONFIG_CRC7 is not set CONFIG_LIBCRC32C=y +CONFIG_AUDIT_GENERIC=y CONFIG_ZLIB_INFLATE=y CONFIG_ZLIB_DEFLATE=y CONFIG_LZO_COMPRESS=y From cbec269922f39cd4844d6ba1ef1134d36aa50e2e Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Sat, 17 Apr 2010 08:10:24 +0200 Subject: [PATCH 154/320] Linux-PAM: - dont build doc and examples --- packages/security/Linux-PAM/build | 1 + .../Linux-PAM/patches/pam-dont_build_doc.diff | 41 +++++++++++++++++++ 2 files changed, 42 insertions(+) create mode 100644 packages/security/Linux-PAM/patches/pam-dont_build_doc.diff diff --git a/packages/security/Linux-PAM/build b/packages/security/Linux-PAM/build index 661bdbdba9..569de1796c 100755 --- a/packages/security/Linux-PAM/build +++ b/packages/security/Linux-PAM/build @@ -20,6 +20,7 @@ cd $PKG_BUILD --disable-cracklib \ --disable-audit \ --enable-db=no \ + --disable-regenerate-docu \ make diff --git a/packages/security/Linux-PAM/patches/pam-dont_build_doc.diff b/packages/security/Linux-PAM/patches/pam-dont_build_doc.diff new file mode 100644 index 0000000000..95306019bd --- /dev/null +++ b/packages/security/Linux-PAM/patches/pam-dont_build_doc.diff @@ -0,0 +1,41 @@ +Index: Linux-PAM-1.0.2/Makefile.in +=================================================================== +--- Linux-PAM-1.0.2.orig/Makefile.in 2008-08-29 01:14:12.000000000 -0700 ++++ Linux-PAM-1.0.2/Makefile.in 2009-09-04 01:06:22.571466501 -0700 +@@ -71,8 +71,7 @@ + distclean-recursive maintainer-clean-recursive + ETAGS = etags + CTAGS = ctags +-DIST_SUBDIRS = libpam tests libpamc libpam_misc modules po conf doc \ +- examples xtests ++DIST_SUBDIRS = libpam libpamc libpam_misc modules po conf + DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) + distdir = $(PACKAGE)-$(VERSION) + top_distdir = $(distdir) +@@ -244,8 +243,8 @@ + top_builddir = @top_builddir@ + top_srcdir = @top_srcdir@ + AUTOMAKE_OPTIONS = 1.9 gnu dist-bzip2 check-news +-@STATIC_MODULES_FALSE@SUBDIRS = libpam tests libpamc libpam_misc modules po conf doc examples xtests +-@STATIC_MODULES_TRUE@SUBDIRS = modules libpam libpamc libpam_misc tests po conf doc examples xtests ++@STATIC_MODULES_FALSE@SUBDIRS = libpam libpamc libpam_misc modules po conf ++@STATIC_MODULES_TRUE@SUBDIRS = modules libpam libpamc libpam_misc po conf + CLEANFILES = *~ + M4_FILES = m4/codeset.m4 m4/gettext.m4 m4/glibc21.m4 m4/glibc2.m4 \ + m4/iconv.m4 m4/intdiv0.m4 m4/intmax.m4 m4/inttypes_h.m4 \ +Index: Linux-PAM-1.0.2/modules/pam_access/pam_access.c +=================================================================== +Index: Linux-PAM-1.0.2/modules/pam_unix/Makefile.am +=================================================================== +Index: Linux-PAM-1.0.2/modules/pam_unix/Makefile.in +=================================================================== +Index: Linux-PAM-1.0.2/modules/pam_unix/pam_unix_passwd.c +=================================================================== +Index: Linux-PAM-1.0.2/modules/pam_unix/support.c +=================================================================== +Index: Linux-PAM-1.0.2/modules/pam_unix/yppasswd.h +=================================================================== +Index: Linux-PAM-1.0.2/modules/pam_unix/yppasswd_xdr.c +=================================================================== +Index: Linux-PAM-1.0.2/po/POTFILES.in +=================================================================== From 8643a636e9502e65c02d92aff0768ec95d20e932 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Sun, 18 Apr 2010 10:20:39 +0200 Subject: [PATCH 155/320] mysql: - update to mysql-5.1.45 --- packages/databases/mysql/url | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/databases/mysql/url b/packages/databases/mysql/url index 241bd2933f..d8ce3308e7 100644 --- a/packages/databases/mysql/url +++ b/packages/databases/mysql/url @@ -1 +1 @@ -ftp://mirror.switch.ch/mirror/mysql/Downloads/MySQL-5.1/mysql-5.1.41.tar.gz +ftp://mirror.switch.ch/mirror/mysql/Downloads/MySQL-5.1/mysql-5.1.45.tar.gz From 7af79853ace0465df182734efe4e07b43e932eb6 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Sun, 18 Apr 2010 10:22:30 +0200 Subject: [PATCH 156/320] samba: - update to samba-3.5.2 --- ... => 010_samba-3.5.2-crosscompile-0.1.diff} | 36795 +++++++++------- packages/network/samba/url | 2 +- 2 files changed, 20369 insertions(+), 16428 deletions(-) rename packages/network/samba/patches/{010_samba-3.4.5-crosscompile-0.1.diff => 010_samba-3.5.2-crosscompile-0.1.diff} (94%) diff --git a/packages/network/samba/patches/010_samba-3.4.5-crosscompile-0.1.diff b/packages/network/samba/patches/010_samba-3.5.2-crosscompile-0.1.diff similarity index 94% rename from packages/network/samba/patches/010_samba-3.4.5-crosscompile-0.1.diff rename to packages/network/samba/patches/010_samba-3.5.2-crosscompile-0.1.diff index ce5b76e9f4..b834a54b1a 100644 --- a/packages/network/samba/patches/010_samba-3.4.5-crosscompile-0.1.diff +++ b/packages/network/samba/patches/010_samba-3.5.2-crosscompile-0.1.diff @@ -1,6 +1,6 @@ -diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure ---- samba-3.4.5/source3/configure 2010-01-18 13:04:22.000000000 +0100 -+++ samba-3.4.5.patch/source3/configure 2010-02-18 09:20:13.176598606 +0100 +diff -Naur samba-3.5.2/source3/configure samba-3.5.2.patch/source3/configure +--- samba-3.5.2/source3/configure 2010-04-06 09:43:16.000000000 +0200 ++++ samba-3.5.2.patch/source3/configure 2010-04-18 00:12:20.015397879 +0200 @@ -1,20 +1,24 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. @@ -810,7 +810,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure ac_unique_file="include/includes.h" ac_default_prefix=/usr/local/samba -@@ -945,6 +902,7 @@ +@@ -957,6 +914,7 @@ program_transform_name prefix exec_prefix @@ -818,7 +818,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure PACKAGE_BUGREPORT PACKAGE_STRING PACKAGE_VERSION -@@ -1164,8 +1122,7 @@ +@@ -1183,8 +1141,7 @@ ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && @@ -828,7 +828,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in -@@ -1191,8 +1148,7 @@ +@@ -1210,8 +1167,7 @@ ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && @@ -838,7 +838,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in -@@ -1396,8 +1352,7 @@ +@@ -1415,8 +1371,7 @@ ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && @@ -848,7 +848,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in -@@ -1413,8 +1368,7 @@ +@@ -1432,8 +1387,7 @@ ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && @@ -858,7 +858,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in -@@ -1444,17 +1398,17 @@ +@@ -1463,17 +1417,17 @@ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) x_libraries=$ac_optarg ;; @@ -882,7 +882,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure eval $ac_envvar=\$ac_optarg export $ac_envvar ;; -@@ -1471,15 +1425,13 @@ +@@ -1490,15 +1444,13 @@ if test -n "$ac_prev"; then ac_option=--`echo $ac_prev | sed 's/_/-/g'` @@ -900,7 +900,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; esac fi -@@ -1502,8 +1454,7 @@ +@@ -1521,8 +1473,7 @@ [\\/$]* | ?:[\\/]* ) continue;; NONE | '' ) case $ac_var in *prefix ) continue;; esac;; esac @@ -910,7 +910,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure done # There might be people who depend on the old broken behavior: `$host' -@@ -1533,11 +1484,9 @@ +@@ -1552,11 +1503,9 @@ ac_pwd=`pwd` && test -n "$ac_pwd" && ac_ls_di=`ls -di .` && ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || @@ -924,7 +924,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure # Find the source files, if location was not specified. -@@ -1576,13 +1525,11 @@ +@@ -1595,13 +1544,11 @@ fi if test ! -r "$srcdir/$ac_unique_file"; then test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." @@ -940,7 +940,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure pwd)` # When building in place, set srcdir=. if test "$ac_abs_confdir" = "$ac_pwd"; then -@@ -1820,7 +1767,7 @@ +@@ -1848,7 +1795,7 @@ LDFLAGS linker flags, e.g. -L if you have libraries in a nonstandard directory LIBS libraries to pass to the linker, e.g. -l @@ -949,7 +949,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure you have headers in a nonstandard directory CPP C preprocessor PKG_CONFIG path to pkg-config utility -@@ -1904,178 +1851,863 @@ +@@ -1935,178 +1882,863 @@ if $ac_init_version; then cat <<\_ACEOF Samba configure 3 @@ -1959,7 +1959,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" -@@ -2119,39 +2751,41 @@ +@@ -2150,39 +2782,41 @@ exit $exit_status ' 0 for ac_signal in 1 2 13 15; do @@ -2006,7 +2006,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure # Let the site file select an alternate cache file if it wants to. # Prefer an explicitly selected file to automatically selected ones. -@@ -2169,8 +2803,8 @@ +@@ -2200,8 +2834,8 @@ for ac_site_file in "$ac_site_file1" "$ac_site_file2" do test "x$ac_site_file" = xNONE && continue @@ -2017,7 +2017,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 . "$ac_site_file" -@@ -2178,10 +2812,10 @@ +@@ -2209,10 +2843,10 @@ done if test -r "$cache_file"; then @@ -2032,7 +2032,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "$as_me: loading cache $cache_file" >&6;} case $cache_file in [\\/]* | ?:[\\/]* ) . "$cache_file";; -@@ -2189,7 +2823,7 @@ +@@ -2220,7 +2854,7 @@ esac fi else @@ -2041,7 +2041,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "$as_me: creating cache $cache_file" >&6;} >$cache_file fi -@@ -2204,11 +2838,11 @@ +@@ -2235,11 +2869,11 @@ eval ac_new_val=\$ac_env_${ac_var}_value case $ac_old_set,$ac_new_set in set,) @@ -2055,7 +2055,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} ac_cache_corrupted=: ;; ,);; -@@ -2218,17 +2852,17 @@ +@@ -2249,17 +2883,17 @@ 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 @@ -2077,7 +2077,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "$as_me: current value: \`$ac_new_val'" >&2;} fi;; esac -@@ -2240,43 +2874,20 @@ +@@ -2271,43 +2905,20 @@ esac case " $ac_configure_args " in *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. @@ -2128,7 +2128,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure ac_ext=c ac_cpp='$CPP $CPPFLAGS' -@@ -2290,14 +2901,12 @@ +@@ -2321,14 +2932,12 @@ ac_config_headers="$ac_config_headers include/config.h" @@ -2145,7 +2145,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "$as_me: WARNING: \$PATH contains /usr/ucb - build errors may follow" >&2;} ;; esac -@@ -2329,24 +2938,16 @@ +@@ -2360,24 +2969,16 @@ ac_aux_dir= for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do @@ -2178,7 +2178,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure fi # These three variables are undocumented and unsupported, -@@ -2358,57 +2959,29 @@ +@@ -2389,57 +2990,29 @@ ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. @@ -2199,7 +2199,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -$as_echo "$as_me: error: cannot find libreplace in $libreplacepaths" >&2;} - { (exit 1); exit 1; }; } -fi --LIBREPLACEOBJ="replace.o" +-LIBREPLACEOBJ="$libreplacedir/replace.o" - - # Make sure we can run config.sub. @@ -2243,7 +2243,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure esac build=$ac_cv_build ac_save_IFS=$IFS; IFS='-' -@@ -2424,28 +2997,24 @@ +@@ -2455,28 +3028,24 @@ case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac @@ -2277,7 +2277,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure esac host=$ac_cv_host ac_save_IFS=$IFS; IFS='-' -@@ -2461,28 +3030,24 @@ +@@ -2492,28 +3061,24 @@ case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac @@ -2311,7 +2311,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure esac target=$ac_cv_target ac_save_IFS=$IFS; IFS='-' -@@ -2505,6 +3070,27 @@ +@@ -2536,6 +3101,27 @@ NONENONEs,x,x, && program_prefix=${target_alias}- @@ -2329,7 +2329,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure +if test x"$libreplacedir" = "x"; then + as_fn_error "cannot find libreplace in $libreplacepaths" "$LINENO" 5 +fi -+LIBREPLACEOBJ="replace.o" ++LIBREPLACEOBJ="$libreplacedir/replace.o" + + + @@ -2339,7 +2339,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure echo "LIBREPLACE_LOCATION_CHECKS: END" -@@ -2533,7 +3119,7 @@ +@@ -2564,7 +3150,7 @@ # Check whether --with-fhs was given. @@ -2348,7 +2348,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure withval=$with_fhs; case "$withval" in yes) lockdir="\${VARDIR}/lib/samba" -@@ -2550,9 +3136,7 @@ +@@ -2581,9 +3167,7 @@ cachedir="\${VARDIR}/lib/samba" ncalrpcdir="\${VARDIR}/ncalrpc" @@ -2359,7 +2359,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure ;; esac -@@ -2563,13 +3147,13 @@ +@@ -2594,13 +3178,13 @@ # set private directory location # Check whether --with-privatedir was given. @@ -2375,7 +2375,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "$as_me: WARNING: --with-privatedir called without argument - will use default" >&2;} ;; * ) -@@ -2583,13 +3167,13 @@ +@@ -2614,13 +3198,13 @@ # set root sbin directory location # Check whether --with-rootsbindir was given. @@ -2391,7 +2391,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "$as_me: WARNING: --with-rootsbindir called without argument - will use default" >&2;} ;; * ) -@@ -2603,13 +3187,13 @@ +@@ -2634,13 +3218,13 @@ # set lock directory location # Check whether --with-lockdir was given. @@ -2407,7 +2407,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "$as_me: WARNING: --with-lockdir called without argument - will use default" >&2;} ;; * ) -@@ -2623,13 +3207,13 @@ +@@ -2654,13 +3238,13 @@ # set state directory location # Check whether --with-statedir was given. @@ -2423,7 +2423,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "$as_me: WARNING: --with-statedir called without argument - will use default" >&2;} ;; * ) -@@ -2643,13 +3227,13 @@ +@@ -2674,13 +3258,13 @@ # set cache directory location # Check whether --with-cachedir was given. @@ -2439,7 +2439,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "$as_me: WARNING: --with-cachedir called without argument - will use default" >&2;} ;; * ) -@@ -2663,13 +3247,13 @@ +@@ -2694,13 +3278,13 @@ # set pid directory location # Check whether --with-piddir was given. @@ -2455,13 +2455,13 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "$as_me: WARNING: --with-piddir called without argument - will use default" >&2;} ;; * ) -@@ -2683,13 +3267,13 @@ +@@ -2714,13 +3298,13 @@ # set ncalrpc directory location - # Check whether --with-ncalprcdir was given. --if test "${with_ncalprcdir+set}" = set; then -+if test "${with_ncalprcdir+set}" = set; then : - withval=$with_ncalprcdir; case "$withval" in + # Check whether --with-ncalrpcdir was given. +-if test "${with_ncalrpcdir+set}" = set; then ++if test "${with_ncalrpcdir+set}" = set; then : + withval=$with_ncalrpcdir; case "$withval" in yes|no) # # Just in case anybody calls it without argument @@ -2471,7 +2471,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "$as_me: WARNING: --with-ncalrpcdir called without argument - will use default" >&2;} ;; * ) -@@ -2703,13 +3287,13 @@ +@@ -2734,13 +3318,13 @@ # set SWAT directory location # Check whether --with-swatdir was given. @@ -2487,7 +2487,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "$as_me: WARNING: --with-swatdir called without argument - will use default" >&2;} ;; * ) -@@ -2723,13 +3307,13 @@ +@@ -2754,13 +3338,13 @@ # set configuration directory location # Check whether --with-configdir was given. @@ -2503,7 +2503,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "$as_me: WARNING: --with-configdir called without argument - will use default" >&2;} ;; * ) -@@ -2743,13 +3327,13 @@ +@@ -2774,13 +3358,13 @@ # set log directory location # Check whether --with-logfilebase was given. @@ -2519,7 +2519,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "$as_me: WARNING: --with-logfilebase called without argument - will use default" >&2;} ;; * ) -@@ -2764,13 +3348,13 @@ +@@ -2795,13 +3379,13 @@ # set shared modules (internal lib) directory location # Check whether --with-modulesdir was given. @@ -2535,7 +2535,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "$as_me: WARNING: --with-modulesdir without argument - will use default" >&2;} ;; * ) -@@ -2784,13 +3368,13 @@ +@@ -2815,13 +3399,13 @@ # set PAM modules directory location # Check whether --with-pammodulesdir was given. @@ -2551,7 +2551,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "$as_me: WARNING: --with-pammodulesdir called without argument - will use default" >&2;} ;; * ) -@@ -2804,13 +3388,13 @@ +@@ -2835,13 +3419,13 @@ # set man directory location # Check whether --with-mandir was given. @@ -2567,7 +2567,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "$as_me: WARNING: --with-mandir without argument - will use default" >&2;} ;; * ) -@@ -2824,13 +3408,13 @@ +@@ -2855,13 +3439,13 @@ # set locale directory location # Check whether --with-localedir was given. @@ -2583,7 +2583,23 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "$as_me: WARNING: --with-localedir called without argument - will use default" >&2;} ;; *) -@@ -2864,10 +3448,10 @@ +@@ -2875,13 +3459,13 @@ + # set codepage directory location + + # Check whether --with-codepagedir was given. +-if test "${with_codepagedir+set}" = set; then ++if test "${with_codepagedir+set}" = set; then : + withval=$with_codepagedir; case "$withval" in + yes|no) + # + # Just in case anybody calls it without argument + # +- { $as_echo "$as_me:$LINENO: WARNING: --with-codepagedir called without argument - will use default" >&5 ++ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: --with-codepagedir called without argument - will use default" >&5 + $as_echo "$as_me: WARNING: --with-codepagedir called without argument - will use default" >&2;} + ;; + * ) +@@ -2915,10 +3499,10 @@ # Check whether --with-selftest-prefix was given. @@ -2596,7 +2612,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "$as_me: WARNING: --with-selftest-prefix called without argument - will use default" >&2;} ;; * ) -@@ -2884,10 +3468,10 @@ +@@ -2935,10 +3519,10 @@ # Check whether --with-selftest-shrdir was given. @@ -2609,7 +2625,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "$as_me: WARNING: --with-selftest-shrdir called without argument - will use default" >&2;} ;; * ) -@@ -2906,19 +3490,15 @@ +@@ -2957,19 +3541,15 @@ # Check whether --with-smbtorture4_path was given. @@ -2632,7 +2648,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure fi smbtorture4_option="-t $withval" ;; -@@ -2933,19 +3513,15 @@ +@@ -2984,19 +3564,15 @@ # Check whether --with-selftest_custom_conf was given. @@ -2655,7 +2671,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure fi selftest_custom_conf="-c $withval" ;; -@@ -2958,7 +3534,7 @@ +@@ -3009,7 +3585,7 @@ ## so that we don't mix -O and -g debug=no # Check whether --enable-debug was given. @@ -2664,7 +2680,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure enableval=$enable_debug; if eval "test x$enable_debug = xyes"; then debug=yes fi -@@ -2968,7 +3544,7 @@ +@@ -3019,7 +3595,7 @@ developer=no # Check whether --enable-developer was given. @@ -2673,7 +2689,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure enableval=$enable_developer; if eval "test x$enable_developer = xyes"; then debug=yes developer=yes -@@ -2978,7 +3554,7 @@ +@@ -3029,7 +3605,7 @@ krb5developer=no # Check whether --enable-krb5developer was given. @@ -2682,7 +2698,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure enableval=$enable_krb5developer; if eval "test x$enable_krb5developer = xyes"; then debug=yes developer=yes -@@ -2989,7 +3565,7 @@ +@@ -3040,7 +3616,7 @@ picky_developer=no # Check whether --enable-picky-developer was given. @@ -2691,7 +2707,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure enableval=$enable_picky_developer; if eval "test x$enable_picky_developer = xyes"; then debug=yes developer=yes -@@ -3000,7 +3576,7 @@ +@@ -3051,7 +3627,7 @@ # Check whether --with-cfenc was given. @@ -2700,7 +2716,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure withval=$with_cfenc; # May be in source $withval/CoreFoundation/StringEncodings.subproj. # Should have been in framework $withval/CoreFoundation.framework/Headers. -@@ -3097,9 +3673,9 @@ +@@ -3148,9 +3724,9 @@ 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 @@ -2712,7 +2728,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo_n "(cached) " >&6 else if test -n "$CC"; then -@@ -3110,24 +3686,24 @@ +@@ -3161,24 +3737,24 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. @@ -2742,7 +2758,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "no" >&6; } fi -@@ -3137,9 +3713,9 @@ +@@ -3188,9 +3764,9 @@ 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 @@ -2754,7 +2770,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then -@@ -3150,24 +3726,24 @@ +@@ -3201,24 +3777,24 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. @@ -2784,7 +2800,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "no" >&6; } fi -@@ -3176,7 +3752,7 @@ +@@ -3227,7 +3803,7 @@ else case $cross_compiling:$ac_tool_warned in yes:) @@ -2793,7 +2809,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac -@@ -3190,9 +3766,9 @@ +@@ -3241,9 +3817,9 @@ 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 @@ -2805,7 +2821,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo_n "(cached) " >&6 else if test -n "$CC"; then -@@ -3203,24 +3779,24 @@ +@@ -3254,24 +3830,24 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. @@ -2835,7 +2851,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "no" >&6; } fi -@@ -3230,9 +3806,9 @@ +@@ -3281,9 +3857,9 @@ 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 @@ -2847,7 +2863,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo_n "(cached) " >&6 else if test -n "$CC"; then -@@ -3244,18 +3820,18 @@ +@@ -3295,18 +3871,18 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. @@ -2869,7 +2885,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure IFS=$as_save_IFS if test $ac_prog_rejected = yes; then -@@ -3274,10 +3850,10 @@ +@@ -3325,10 +3901,10 @@ fi CC=$ac_cv_prog_CC if test -n "$CC"; then @@ -2882,7 +2898,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "no" >&6; } fi -@@ -3289,9 +3865,9 @@ +@@ -3340,9 +3916,9 @@ 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 @@ -2894,7 +2910,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo_n "(cached) " >&6 else if test -n "$CC"; then -@@ -3302,24 +3878,24 @@ +@@ -3353,24 +3929,24 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. @@ -2924,7 +2940,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "no" >&6; } fi -@@ -3333,9 +3909,9 @@ +@@ -3384,9 +3960,9 @@ do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 @@ -2936,7 +2952,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then -@@ -3346,24 +3922,24 @@ +@@ -3397,24 +3973,24 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. @@ -2966,7 +2982,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "no" >&6; } fi -@@ -3376,7 +3952,7 @@ +@@ -3427,7 +4003,7 @@ else case $cross_compiling:$ac_tool_warned in yes:) @@ -2975,7 +2991,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac -@@ -3387,57 +3963,37 @@ +@@ -3438,57 +4014,37 @@ fi @@ -3053,7 +3069,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ int -@@ -3453,8 +4009,8 @@ +@@ -3504,8 +4060,8 @@ # 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. @@ -3064,7 +3080,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` # The possible output files: -@@ -3470,17 +4026,17 @@ +@@ -3521,17 +4077,17 @@ done rm -f $ac_rmfiles @@ -3087,7 +3103,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure # 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, -@@ -3497,7 +4053,7 @@ +@@ -3548,7 +4104,7 @@ # certainly right. break;; *.* ) @@ -3096,7 +3112,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure then :; else ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` fi -@@ -3516,84 +4072,42 @@ +@@ -3567,84 +4123,42 @@ else ac_file='' fi @@ -3202,7 +3218,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure # If both `conftest.exe' and `conftest' are `present' (well, observable) # catch `conftest.exe'. For instance with Cygwin, `ls conftest' will # work properly (i.e., refer to `conftest.exe'), while it won't with -@@ -3608,32 +4122,83 @@ +@@ -3659,32 +4173,83 @@ esac done else @@ -3302,7 +3318,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ int -@@ -3645,17 +4210,17 @@ +@@ -3696,17 +4261,17 @@ } _ACEOF rm -f conftest.o conftest.obj @@ -3325,7 +3341,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure for ac_file in conftest.o conftest.obj conftest.*; do test -f "$ac_file" || continue; case $ac_file in -@@ -3668,31 +4233,23 @@ +@@ -3719,31 +4284,23 @@ $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 @@ -3364,7 +3380,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ int -@@ -3706,37 +4263,16 @@ +@@ -3757,37 +4314,16 @@ return 0; } _ACEOF @@ -3405,7 +3421,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "$ac_cv_c_compiler_gnu" >&6; } if test $ac_compiler_gnu = yes; then GCC=yes -@@ -3745,20 +4281,16 @@ +@@ -3796,20 +4332,16 @@ fi ac_test_CFLAGS=${CFLAGS+set} ac_save_CFLAGS=$CFLAGS @@ -3429,7 +3445,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ int -@@ -3769,35 +4301,11 @@ +@@ -3820,35 +4352,11 @@ return 0; } _ACEOF @@ -3468,7 +3484,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ int -@@ -3808,36 +4316,12 @@ +@@ -3859,36 +4367,12 @@ return 0; } _ACEOF @@ -3509,7 +3525,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ int -@@ -3848,42 +4332,17 @@ +@@ -3899,42 +4383,17 @@ return 0; } _ACEOF @@ -3554,7 +3570,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "$ac_cv_prog_cc_g" >&6; } if test "$ac_test_CFLAGS" = set; then CFLAGS=$ac_save_CFLAGS -@@ -3900,18 +4359,14 @@ +@@ -3951,18 +4410,14 @@ CFLAGS= fi fi @@ -3576,7 +3592,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #include #include -@@ -3968,32 +4423,9 @@ +@@ -4019,32 +4474,9 @@ -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CC="$ac_save_CC $ac_arg" @@ -3610,7 +3626,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure rm -f core conftest.err conftest.$ac_objext test "x$ac_cv_prog_cc_c89" != "xno" && break done -@@ -4004,17 +4436,19 @@ +@@ -4055,17 +4487,19 @@ # AC_CACHE_VAL case "x$ac_cv_prog_cc_c89" in x) @@ -3633,7 +3649,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure ac_ext=c ac_cpp='$CPP $CPPFLAGS' -@@ -4025,18 +4459,14 @@ +@@ -4076,18 +4510,14 @@ CFLAGS=$savedCFLAGS if test x"$GCC" != x"yes" ; then @@ -3655,7 +3671,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #include #include -@@ -4178,32 +4608,9 @@ +@@ -4229,32 +4659,9 @@ for ac_arg in '' -std=gnu99 -std=c99 -c99 -AC99 -xc99=all -qlanglvl=extc99 do CC="$ac_save_CC $ac_arg" @@ -3689,7 +3705,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure rm -f core conftest.err conftest.$ac_objext test "x$ac_cv_prog_cc_c99" != "xno" && break done -@@ -4214,26 +4621,28 @@ +@@ -4265,26 +4672,28 @@ # AC_CACHE_VAL case "x$ac_cv_prog_cc_c99" in x) @@ -3723,7 +3739,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "${GCC_VERSION}" >&6; } fi -@@ -4242,14 +4651,14 @@ +@@ -4293,14 +4702,14 @@ 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 @@ -3740,7 +3756,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo_n "(cached) " >&6 else # Double quotes because CPP needs to be expanded -@@ -4264,11 +4673,7 @@ +@@ -4315,11 +4724,7 @@ # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. @@ -3753,7 +3769,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #ifdef __STDC__ # include -@@ -4277,78 +4682,34 @@ +@@ -4328,78 +4733,34 @@ #endif Syntax error _ACEOF @@ -3837,7 +3853,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure break fi -@@ -4360,7 +4721,7 @@ +@@ -4411,7 +4772,7 @@ else ac_cv_prog_CPP=$CPP fi @@ -3846,7 +3862,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "$CPP" >&6; } ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes -@@ -4371,11 +4732,7 @@ +@@ -4422,11 +4783,7 @@ # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. @@ -3859,7 +3875,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #ifdef __STDC__ # include -@@ -4384,87 +4741,40 @@ +@@ -4435,87 +4792,40 @@ #endif Syntax error _ACEOF @@ -3956,7 +3972,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure fi ac_ext=c -@@ -4474,9 +4784,9 @@ +@@ -4525,9 +4835,9 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu @@ -3968,7 +3984,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo_n "(cached) " >&6 else if test -z "$GREP"; then -@@ -4487,7 +4797,7 @@ +@@ -4538,7 +4848,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. @@ -3977,7 +3993,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure 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 -@@ -4507,7 +4817,7 @@ +@@ -4558,7 +4868,7 @@ $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 @@ -3986,7 +4002,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure 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" -@@ -4522,26 +4832,24 @@ +@@ -4573,26 +4883,24 @@ $ac_path_GREP_found && break 3 done done @@ -4018,7 +4034,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo_n "(cached) " >&6 else if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 -@@ -4555,7 +4863,7 @@ +@@ -4606,7 +4914,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. @@ -4027,7 +4043,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure 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 -@@ -4575,7 +4883,7 @@ +@@ -4626,7 +4934,7 @@ $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 @@ -4036,7 +4052,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure 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" -@@ -4590,12 +4898,10 @@ +@@ -4641,12 +4949,10 @@ $ac_path_EGREP_found && break 3 done done @@ -4051,7 +4067,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure fi else ac_cv_path_EGREP=$EGREP -@@ -4603,21 +4909,17 @@ +@@ -4654,21 +4960,17 @@ fi fi @@ -4077,7 +4093,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #include #include -@@ -4632,48 +4934,23 @@ +@@ -4683,48 +4985,23 @@ return 0; } _ACEOF @@ -4131,7 +4147,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure else ac_cv_header_stdc=no fi -@@ -4683,18 +4960,14 @@ +@@ -4734,18 +5011,14 @@ if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. @@ -4153,7 +4169,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure else ac_cv_header_stdc=no fi -@@ -4704,14 +4977,10 @@ +@@ -4755,14 +5028,10 @@ if test $ac_cv_header_stdc = yes; then # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. @@ -4170,7 +4186,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #include #include -@@ -4738,118 +5007,34 @@ +@@ -4789,118 +5058,34 @@ return 0; } _ACEOF @@ -4302,7 +4318,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF -@@ -4860,139 +5045,8 @@ +@@ -4911,139 +5096,8 @@ @@ -4444,7 +4460,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure MINIX=yes else MINIX= -@@ -5001,34 +5055,23 @@ +@@ -5052,34 +5106,23 @@ if test "$MINIX" = yes; then @@ -4485,7 +4501,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ # define __EXTENSIONS__ 1 -@@ -5041,71 +5084,35 @@ +@@ -5092,71 +5135,35 @@ return 0; } _ACEOF @@ -4568,7 +4584,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #ifndef __APPLE_CC__ not a universal capable compiler -@@ -5113,46 +5120,34 @@ +@@ -5164,46 +5171,34 @@ typedef int dummy; _ACEOF @@ -4637,7 +4653,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #include #include -@@ -5170,30 +5165,9 @@ +@@ -5221,30 +5216,9 @@ return 0; } _ACEOF @@ -4670,7 +4686,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #include #include -@@ -5209,49 +5183,18 @@ +@@ -5260,49 +5234,18 @@ return 0; } _ACEOF @@ -4723,7 +4739,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #include -@@ -5266,30 +5209,9 @@ +@@ -5317,30 +5260,9 @@ return 0; } _ACEOF @@ -4756,7 +4772,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #include -@@ -5304,51 +5226,20 @@ +@@ -5355,51 +5277,20 @@ return 0; } _ACEOF @@ -4812,7 +4828,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ short int ascii_mm[] = { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 }; -@@ -5374,24 +5265,7 @@ +@@ -5425,24 +5316,7 @@ return 0; } _ACEOF @@ -4838,7 +4854,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure if grep BIGenDianSyS conftest.$ac_objext >/dev/null; then ac_cv_c_bigendian=yes fi -@@ -5403,20 +5277,10 @@ +@@ -5454,20 +5328,10 @@ ac_cv_c_bigendian=unknown fi fi @@ -4860,7 +4876,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ $ac_includes_default int -@@ -5436,81 +5300,43 @@ +@@ -5487,81 +5351,43 @@ return 0; } _ACEOF @@ -4954,7 +4970,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #ifndef __cplusplus typedef int foo_t; -@@ -5519,41 +5345,17 @@ +@@ -5570,41 +5396,17 @@ #endif _ACEOF @@ -4998,7 +5014,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure case $ac_cv_c_inline in inline | yes) ;; *) -@@ -5573,14 +5375,10 @@ +@@ -5624,14 +5426,10 @@ saved_CFLAGS="$CFLAGS"; c99_init=no if test x"$c99_init" = x"no"; then @@ -5015,7 +5031,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #include int -@@ -5593,45 +5391,20 @@ +@@ -5644,45 +5442,20 @@ return 0; } _ACEOF @@ -5066,7 +5082,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #include int -@@ -5644,45 +5417,20 @@ +@@ -5695,45 +5468,20 @@ return 0; } _ACEOF @@ -5117,7 +5133,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #include int -@@ -5695,45 +5443,20 @@ +@@ -5746,45 +5494,20 @@ return 0; } _ACEOF @@ -5168,7 +5184,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #include int -@@ -5746,45 +5469,20 @@ +@@ -5797,45 +5520,20 @@ return 0; } _ACEOF @@ -5219,7 +5235,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #include int -@@ -5797,34 +5495,13 @@ +@@ -5848,34 +5546,13 @@ return 0; } _ACEOF @@ -5257,7 +5273,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -@@ -5843,7 +5520,7 @@ +@@ -5894,7 +5571,7 @@ else CFLAGS="$saved_CFLAGS" saved_CFLAGS="" @@ -5266,7 +5282,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "$as_me: WARNING: c99 structure initializer are not supported" >&2;} fi -@@ -5862,10 +5539,10 @@ +@@ -5913,10 +5590,10 @@ # OS/2's system install, which has a completely different semantic # ./install, which can be erroneously created by make from ./install.sh. # Reject install programs that cannot install multiple files. @@ -5279,7 +5295,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -@@ -5873,11 +5550,11 @@ +@@ -5924,11 +5601,11 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. @@ -5295,7 +5311,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /usr/ucb/* ) ;; *) # OSF1 and SCO ODT 3.0 have their own names for install. -@@ -5914,7 +5591,7 @@ +@@ -5965,7 +5642,7 @@ ;; esac @@ -5304,7 +5320,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure IFS=$as_save_IFS rm -rf conftest.one conftest.two conftest.dir -@@ -5930,7 +5607,7 @@ +@@ -5981,7 +5658,7 @@ INSTALL=$ac_install_sh fi fi @@ -5313,7 +5329,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "$INSTALL" >&6; } # Use test -z because SunOS4 sh mishandles braces in ${var-val}. -@@ -5942,17 +5619,13 @@ +@@ -5993,17 +5670,13 @@ test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' @@ -5334,7 +5350,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. -@@ -5977,54 +5650,27 @@ +@@ -6028,54 +5701,27 @@ ac_res=-l$ac_lib LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi @@ -5397,7 +5413,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" fi -@@ -6032,7 +5678,6 @@ +@@ -6083,7 +5729,6 @@ @@ -5405,7 +5421,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure cat >>confdefs.h <<\EOF #ifndef _XOPEN_SOURCE_EXTENDED #define _XOPEN_SOURCE_EXTENDED 1 -@@ -6041,15 +5686,15 @@ +@@ -6092,15 +5737,15 @@ # Check whether --enable-largefile was given. @@ -5424,7 +5440,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo_n "(cached) " >&6 else ac_cv_sys_largefile_CC=no -@@ -6058,11 +5703,7 @@ +@@ -6109,11 +5754,7 @@ while :; do # IRIX 6.2 and later do not support large files by default, # so use the C compiler's -n32 option if that helps. @@ -5437,7 +5453,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #include /* Check that off_t can represent 2**63 - 1 correctly. -@@ -6081,60 +5722,14 @@ +@@ -6132,60 +5773,14 @@ return 0; } _ACEOF @@ -5500,7 +5516,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure rm -f core conftest.err conftest.$ac_objext break done -@@ -6142,23 +5737,19 @@ +@@ -6193,23 +5788,19 @@ rm -f conftest.$ac_ext fi fi @@ -5528,7 +5544,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #include /* Check that off_t can represent 2**63 - 1 correctly. -@@ -6177,38 +5768,11 @@ +@@ -6228,38 +5819,11 @@ return 0; } _ACEOF @@ -5569,7 +5585,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #define _FILE_OFFSET_BITS 64 #include -@@ -6228,38 +5792,15 @@ +@@ -6279,38 +5843,15 @@ return 0; } _ACEOF @@ -5610,7 +5626,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "$ac_cv_sys_file_offset_bits" >&6; } case $ac_cv_sys_file_offset_bits in #( no | unknown) ;; -@@ -6271,17 +5812,13 @@ +@@ -6322,17 +5863,13 @@ esac rm -rf conftest* if test $ac_cv_sys_file_offset_bits = unknown; then @@ -5631,7 +5647,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #include /* Check that off_t can represent 2**63 - 1 correctly. -@@ -6300,38 +5837,11 @@ +@@ -6351,38 +5888,11 @@ return 0; } _ACEOF @@ -5672,7 +5688,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #define _LARGE_FILES 1 #include -@@ -6351,38 +5861,15 @@ +@@ -6402,38 +5912,15 @@ return 0; } _ACEOF @@ -5713,7 +5729,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "$ac_cv_sys_large_files" >&6; } case $ac_cv_sys_large_files in #( no | unknown) ;; -@@ -6406,31 +5893,25 @@ +@@ -6457,31 +5944,25 @@ *hpux*) # mmap on HPUX is completely broken... @@ -5750,7 +5766,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure if test "${GCC}" != "yes"; then ## for funky AIX compiler using strncpy() -@@ -6442,7 +5923,6 @@ +@@ -6493,7 +5974,6 @@ @@ -5758,7 +5774,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure cat >>confdefs.h <<\EOF #ifndef _XOPEN_SOURCE #define _XOPEN_SOURCE 600 -@@ -6452,7 +5932,6 @@ +@@ -6503,7 +5983,6 @@ @@ -5766,7 +5782,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure cat >>confdefs.h <<\EOF #ifndef _OSF_SOURCE #define _OSF_SOURCE 1 -@@ -6469,9 +5948,7 @@ +@@ -6520,9 +5999,7 @@ *) CFLAGS="$CFLAGS -D_POSIX_C_SOURCE=200112L" @@ -5777,7 +5793,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure ;; esac -@@ -6480,9 +5957,7 @@ +@@ -6531,9 +6008,7 @@ *) CFLAGS="$CFLAGS -D_SYSV" @@ -5788,7 +5804,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure ;; esac -@@ -6491,978 +5966,385 @@ +@@ -6542,978 +6017,385 @@ @@ -7022,7 +7038,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure _ACEOF -@@ -7470,717 +6352,429 @@ +@@ -7521,30401 +6403,2005 @@ # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. # This bug is HP SR number 8606223364. @@ -7187,7 +7203,10 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - ; - return 0; -} --_ACEOF ++ ++cat >>confdefs.h <<_ACEOF ++#define SIZEOF_SSIZE_T $ac_cv_sizeof_ssize_t + _ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in @@ -7211,8 +7230,13 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ + ++ ++ ++ac_fn_c_check_type "$LINENO" "intptr_t" "ac_cv_type_intptr_t" "$ac_includes_default" ++if test "x$ac_cv_type_intptr_t" = x""yes; then : ++ +cat >>confdefs.h <<_ACEOF -+#define SIZEOF_SSIZE_T $ac_cv_sizeof_ssize_t ++#define HAVE_INTPTR_T 1 _ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF @@ -7228,14 +7252,12 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - return 0; -} + -+ -+ac_fn_c_check_type "$LINENO" "intptr_t" "ac_cv_type_intptr_t" "$ac_includes_default" -+if test "x$ac_cv_type_intptr_t" = x""yes; then : -+ -+else ++fi ++ac_fn_c_check_type "$LINENO" "uintptr_t" "ac_cv_type_uintptr_t" "$ac_includes_default" ++if test "x$ac_cv_type_uintptr_t" = x""yes; then : + +cat >>confdefs.h <<_ACEOF -+#define intptr_t long long ++#define HAVE_UINTPTR_T 1 _ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" @@ -7256,13 +7278,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_lo=$ac_mid; break -+ -+fi -+ -+ac_fn_c_check_type "$LINENO" "uintptr_t" "ac_cv_type_uintptr_t" "$ac_includes_default" -+if test "x$ac_cv_type_uintptr_t" = x""yes; then : -+ - else +-else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 @@ -7272,26 +7288,22 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - break - fi - ac_mid=`expr 2 '*' $ac_mid` -+cat >>confdefs.h <<_ACEOF -+#define uintptr_t unsigned long long -+_ACEOF + fi - --rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -- done +ac_fn_c_check_type "$LINENO" "ptrdiff_t" "ac_cv_type_ptrdiff_t" "$ac_includes_default" +if test "x$ac_cv_type_ptrdiff_t" = x""yes; then : + - else ++cat >>confdefs.h <<_ACEOF ++#define HAVE_PTRDIFF_T 1 ++_ACEOF + +-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +- done +-else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - ac_lo= ac_hi= -+cat >>confdefs.h <<_ACEOF -+#define ptrdiff_t unsigned long long -+_ACEOF -+ fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext @@ -7375,16 +7387,12 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure + libreplace_cv_immediate_structures=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -+ -+fi -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libreplace_cv_immediate_structures" >&5 -+$as_echo "$libreplace_cv_immediate_structures" >&6; } -+if test x"$libreplace_cv_immediate_structures" = x"yes"; then -+ -+$as_echo "#define HAVE_IMMEDIATE_STRUCTURES 1" >>confdefs.h - ac_lo=`expr '(' $ac_mid ')' + 1` fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libreplace_cv_immediate_structures" >&5 ++$as_echo "$libreplace_cv_immediate_structures" >&6; } ++if test x"$libreplace_cv_immediate_structures" = x"yes"; then -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -done @@ -7402,15 +7410,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - ac_cv_sizeof_short=0 - fi ;; -esac -+ -+echo "LIBREPLACE_CC_CHECKS: END" -+ -+ -+ -+# Check whether --enable-external_libtalloc was given. -+if test "${enable_external_libtalloc+set}" = set; then : -+ enableval=$enable_external_libtalloc; enable_external_libtalloc=$enableval - else +-else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF @@ -7425,8 +7425,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -int -main () -{ -+ enable_external_libtalloc=auto -+fi ++$as_echo "#define HAVE_IMMEDIATE_STRUCTURES 1" >>confdefs.h - FILE *f = fopen ("conftest.val", "w"); - if (! f) @@ -7448,6 +7447,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - /* Do not output a trailing newline, as this causes \r\n confusion - on some platforms. */ - return ferror (f) || fclose (f) != 0; ++fi - ; - return 0; @@ -7476,41 +7476,10 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_sizeof_short=`cat conftest.val` -+if test "x$enable_external_libtalloc" != xno -+then -+ -+ -+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 -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -+$as_echo_n "checking for $ac_word... " >&6; } -+if test "${ac_cv_path_PKG_CONFIG+set}" = set; then : -+ $as_echo_n "(cached) " >&6 - else +-else - $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 -+ case $PKG_CONFIG in -+ [\\/]* | ?:[\\/]*) -+ ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. -+ ;; -+ *) -+ 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_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" -+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 -+ break 2 -+ fi -+done -+ done -+IFS=$as_save_IFS -( exit $ac_status ) -if test "$ac_cv_type_short" = yes; then @@ -7527,28 +7496,41 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -fi -rm -rf conftest.dSYM -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext -+ ;; -+esac - fi +-fi -rm -f conftest.val -+PKG_CONFIG=$ac_cv_path_PKG_CONFIG -+if test -n "$PKG_CONFIG"; then -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5 -+$as_echo "$PKG_CONFIG" >&6; } -+else -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -+$as_echo "no" >&6; } ++echo "LIBREPLACE_CC_CHECKS: END" ++ ++ ++ ++ ++ ++ ++if test x"$teventdir" = "x"; then ++ teventdir="" ++ teventpaths="$srcdir $srcdir/../lib/tevent $srcdir/tevent $srcdir/../tevent" ++ for d in $teventpaths; do ++ if test -f "$d/tevent.c"; then ++ teventdir="$d" ++ break; ++ fi ++ done ++ if test x"$teventdir" = "x"; then ++ as_fn_error "cannot find libtevent source in $teventpaths" "$LINENO" 5 ++ fi fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_sizeof_short" >&5 -$as_echo "$ac_cv_sizeof_short" >&6; } ++TEVENT_OBJ="" ++TEVENT_CFLAGS="" ++TEVENT_LIBS="" + -- -cat >>confdefs.h <<_ACEOF -#define SIZEOF_SHORT $ac_cv_sizeof_short -_ACEOF -- -- + + -# The cast to long int works around a bug in the HP C Compiler -# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects -# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. @@ -7556,16 +7538,8 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -{ $as_echo "$as_me:$LINENO: checking size of long" >&5 -$as_echo_n "checking size of long... " >&6; } -if test "${ac_cv_sizeof_long+set}" = set; then -+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 -+{ $as_echo "$as_me:${as_lineno-$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 : - $as_echo_n "(cached) " >&6 - else +- $as_echo_n "(cached) " >&6 +-else - if test "$cross_compiling" = yes; then - # Depending upon the size, compute the lo and hi bounds. -cat >conftest.$ac_ext <<_ACEOF @@ -7580,25 +7554,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -{ -static int test_array [1 - 2 * !(((long int) (sizeof (long))) >= 0)]; -test_array [0] = 0 -+ case $ac_pt_PKG_CONFIG in -+ [\\/]* | ?:[\\/]*) -+ ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path. -+ ;; -+ *) -+ 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_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" -+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 -+ break 2 -+ fi -+done -+ done -+IFS=$as_save_IFS ++TEVENT_CFLAGS="-I$teventdir" - ; - return 0; @@ -7609,8 +7565,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -+ ;; - esac +-esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 @@ -7637,34 +7592,27 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -{ -static int test_array [1 - 2 * !(((long int) (sizeof (long))) <= $ac_mid)]; -test_array [0] = 0 -+fi -+ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG -+if test -n "$ac_pt_PKG_CONFIG"; then -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5 -+$as_echo "$ac_pt_PKG_CONFIG" >&6; } -+else -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -+$as_echo "no" >&6; } -+fi ++TEVENT_OBJ="tevent.o tevent_debug.o tevent_util.o" ++TEVENT_OBJ="$TEVENT_OBJ tevent_fd.o tevent_timed.o tevent_immediate.o tevent_signal.o" ++TEVENT_OBJ="$TEVENT_OBJ tevent_req.o tevent_wakeup.o tevent_queue.o" ++TEVENT_OBJ="$TEVENT_OBJ tevent_standard.o tevent_select.o" - ; - return 0; -} --_ACEOF ++for ac_header in sys/epoll.h ++do : ++ ac_fn_c_check_header_mongrel "$LINENO" "sys/epoll.h" "ac_cv_header_sys_epoll_h" "$ac_includes_default" ++if test "x$ac_cv_header_sys_epoll_h" = x""yes; then : ++ cat >>confdefs.h <<_ACEOF ++#define HAVE_SYS_EPOLL_H 1 + _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;; -+ if test "x$ac_pt_PKG_CONFIG" = x; then -+ PKG_CONFIG="" -+ else -+ case $cross_compiling:$ac_tool_warned in -+yes:) -+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -+ac_tool_warned=yes ;; - esac +-esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 @@ -7678,13 +7626,9 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_hi=$ac_mid; break -+ PKG_CONFIG=$ac_pt_PKG_CONFIG -+ fi - else +-else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 -+ PKG_CONFIG="$ac_cv_path_PKG_CONFIG" -+fi - ac_lo=`expr $ac_mid + 1` - if test $ac_lo -le $ac_mid; then @@ -7693,29 +7637,23 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - fi - ac_mid=`expr 2 '*' $ac_mid + 1` fi -+if test -n "$PKG_CONFIG"; then -+ _pkg_min_version=0.9.0 -+ { $as_echo "$as_me:${as_lineno-$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 -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -+$as_echo "yes" >&6; } -+ else -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -+$as_echo "no" >&6; } -+ PKG_CONFIG="" -+ fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - done -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 -+fi ++done - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ --_ACEOF ++for ac_func in epoll_create ++do : ++ ac_fn_c_check_func "$LINENO" "epoll_create" "ac_cv_func_epoll_create" ++if test "x$ac_cv_func_epoll_create" = x""yes; then : ++ cat >>confdefs.h <<_ACEOF ++#define HAVE_EPOLL_CREATE 1 + _ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ @@ -7725,9 +7663,6 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -{ -static int test_array [1 - 2 * !(((long int) (sizeof (long))) < 0)]; -test_array [0] = 0 -+pkg_failed=no -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for TALLOC" >&5 -+$as_echo_n "checking for TALLOC... " >&6; } - ; - return 0; @@ -7742,14 +7677,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 -+if test -n "$PKG_CONFIG"; then -+ if test -n "$TALLOC_CFLAGS"; then -+ pkg_cv_TALLOC_CFLAGS="$TALLOC_CFLAGS" -+ else -+ if test -n "$PKG_CONFIG" && \ -+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"talloc >= 1.3.0\""; } >&5 -+ ($PKG_CONFIG --exists --print-errors "talloc >= 1.3.0") 2>&5 - ac_status=$? +- ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 @@ -7772,7 +7700,9 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -{ -static int test_array [1 - 2 * !(((long int) (sizeof (long))) >= $ac_mid)]; -test_array [0] = 0 -- ++fi ++done + - ; - return 0; -} @@ -7786,24 +7716,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 -+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 -+ test $ac_status = 0; }; then -+ pkg_cv_TALLOC_CFLAGS=`$PKG_CONFIG --cflags "talloc >= 1.3.0" 2>/dev/null` -+else -+ pkg_failed=yes -+fi -+ fi -+else -+ pkg_failed=untried -+fi -+if test -n "$PKG_CONFIG"; then -+ if test -n "$TALLOC_LIBS"; then -+ pkg_cv_TALLOC_LIBS="$TALLOC_LIBS" -+ else -+ if test -n "$PKG_CONFIG" && \ -+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"talloc >= 1.3.0\""; } >&5 -+ ($PKG_CONFIG --exists --print-errors "talloc >= 1.3.0") 2>&5 - ac_status=$? +- ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 @@ -7813,31 +7726,31 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_lo=$ac_mid; break -+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 -+ test $ac_status = 0; }; then -+ pkg_cv_TALLOC_LIBS=`$PKG_CONFIG --libs "talloc >= 1.3.0" 2>/dev/null` - else +-else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 -- ++if test x"$ac_cv_header_sys_epoll_h" = x"yes" -a x"$ac_cv_func_epoll_create" = x"yes"; then ++ TEVENT_OBJ="$TEVENT_OBJ tevent_epoll.o" ++ ++$as_echo "#define HAVE_EPOLL 1" >>confdefs.h + - ac_hi=`expr '(' $ac_mid ')' - 1` - if test $ac_mid -le $ac_hi; then - ac_lo= ac_hi= - break - fi - ac_mid=`expr 2 '*' $ac_mid` -+ pkg_failed=yes fi -- + -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - done -+ fi - else +-else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 -- ++if test x"$VERSIONSCRIPT" != "x"; then ++ EXPORTSFILE=tevent.exports + - ac_lo= ac_hi= -+ pkg_failed=untried fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext @@ -7883,60 +7796,33 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_hi=$ac_mid -+if test $pkg_failed = yes; then -+ -+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then -+ _pkg_short_errors_supported=yes - else +-else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 -+ _pkg_short_errors_supported=no -+fi -+ if test $_pkg_short_errors_supported = yes; then -+ TALLOC_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "talloc >= 1.3.0"` -+ else -+ TALLOC_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "talloc >= 1.3.0"` -+ fi -+ # Put the nasty error message in config.log where it belongs -+ echo "$TALLOC_PKG_ERRORS" >&5 ++LIBTEVENT_OBJ0="" ++for obj in ${TEVENT_OBJ}; do ++ LIBTEVENT_OBJ0="${LIBTEVENT_OBJ0} ${teventdir}/${obj}" ++done + -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -+$as_echo "no" >&6; } -+ if test "x$enable_external_libtalloc" = xyes; then -+ as_fn_error "Unable to find libtalloc" "$LINENO" 5 -+ else -+ enable_external_libtalloc=no -+ fi -+ -+elif test $pkg_failed = untried; then -+ if test "x$enable_external_libtalloc" = xyes; then -+ as_fn_error "Unable to find libtalloc" "$LINENO" 5 -+ else -+ enable_external_libtalloc=no -+ fi ++LIBS="${LIBS} ${TEVENT_LIBS}" - ac_lo=`expr '(' $ac_mid ')' + 1` -+else -+ TALLOC_CFLAGS=$pkg_cv_TALLOC_CFLAGS -+ TALLOC_LIBS=$pkg_cv_TALLOC_LIBS -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -+$as_echo "yes" >&6; } -+ enable_external_libtalloc=yes -+fi ++SAMBA_CPPFLAGS="-Iinclude -I${srcdir-.}/include -I. -I${srcdir-.}" ++SAMBA_CPPFLAGS="${SAMBA_CPPFLAGS} -I${srcdir-.}/../lib/replace" ++SAMBA_CPPFLAGS="${SAMBA_CPPFLAGS} ${TEVENT_CFLAGS}" ++SAMBA_CPPFLAGS="${SAMBA_CPPFLAGS} -I${srcdir-.}/libaddns" ++SAMBA_CPPFLAGS="${SAMBA_CPPFLAGS} -I${srcdir-.}/librpc" ++SAMBA_CPPFLAGS="${SAMBA_CPPFLAGS} -I${srcdir-.}/.." ++ ++SAMBA_CONFIGURE_CPPFLAGS="${SAMBA_CPPFLAGS} -I${srcdir-.}/../lib/popt" ++ ++## cleanup the $(srcdir) in the Makefile if we are outside of the tree ++if test "x${srcdir-.}" != "x."; then ++ SAMBA_CPPFLAGS=`echo ${SAMBA_CPPFLAGS} | sed -e "s;${srcdir};\$\(srcdir\);g"` fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -+if test "x$enable_external_libtalloc" != xyes -+then -+ tallocdir="" -+tallocpaths=". lib/talloc talloc ../talloc ../lib/talloc" -+for d in $tallocpaths; do -+ if test -f "$srcdir/$d/talloc.c"; then -+ tallocdir="$d" -+ -+ break; -+ fi - done +-done -case $ac_lo in -?*) ac_cv_sizeof_long=$ac_lo;; -'') if test "$ac_cv_type_long" = yes; then @@ -7966,10 +7852,6 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -int -main () -{ -+if test x"$tallocdir" = "x"; then -+ as_fn_error "cannot find talloc source in $tallocpaths" "$LINENO" 5 -+fi -+TALLOC_OBJ="talloc.o" - FILE *f = fopen ("conftest.val", "w"); - if (! f) @@ -8019,77 +7901,48 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_sizeof_long=`cat conftest.val` -+TALLOC_CFLAGS="-I$srcdir/$tallocdir" -+ -+ -+TALLOC_LIBS="" -+ -+ -+# The cast to long int works around a bug in the HP C Compiler -+# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects -+# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. -+# This bug is HP SR number 8606223364. -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of size_t" >&5 -+$as_echo_n "checking size of size_t... " >&6; } -+if test "${ac_cv_sizeof_size_t+set}" = set; then : -+ $as_echo_n "(cached) " >&6 - else +-else - $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 -+ if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (size_t))" "ac_cv_sizeof_size_t" "$ac_includes_default"; then : -( exit $ac_status ) -if test "$ac_cv_type_long" = yes; then - { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 -+else -+ if test "$ac_cv_type_size_t" = yes; then -+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 - $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -{ { $as_echo "$as_me:$LINENO: error: cannot compute sizeof (long) -See \`config.log' for more details." >&5 -$as_echo "$as_me: error: cannot compute sizeof (long) -See \`config.log' for more details." >&2;} - { (exit 77); exit 77; }; }; } -+{ as_fn_set_status 77 -+as_fn_error "cannot compute sizeof (size_t) -+See \`config.log' for more details." "$LINENO" 5; }; } - else +- else - ac_cv_sizeof_long=0 -+ ac_cv_sizeof_size_t=0 - fi - fi +- fi +-fi -rm -rf conftest.dSYM -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext -fi -rm -f conftest.val -+ - fi +-fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_sizeof_long" >&5 -$as_echo "$ac_cv_sizeof_long" >&6; } -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_size_t" >&5 -+$as_echo "$ac_cv_sizeof_size_t" >&6; } - cat >>confdefs.h <<_ACEOF +-cat >>confdefs.h <<_ACEOF -#define SIZEOF_LONG $ac_cv_sizeof_long -+#define SIZEOF_SIZE_T $ac_cv_sizeof_size_t - _ACEOF +-_ACEOF -@@ -8188,29172 +6782,661 @@ - # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects - # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. - # This bug is HP SR number 8606223364. +-# The cast to long int works around a bug in the HP C Compiler +-# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects +-# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. +-# This bug is HP SR number 8606223364. -{ $as_echo "$as_me:$LINENO: checking size of long long" >&5 -$as_echo_n "checking size of long long... " >&6; } -if test "${ac_cv_sizeof_long_long+set}" = set; then -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of void *" >&5 -+$as_echo_n "checking size of void *... " >&6; } -+if test "${ac_cv_sizeof_void_p+set}" = set; then : - $as_echo_n "(cached) " >&6 - else +- $as_echo_n "(cached) " >&6 +-else - if test "$cross_compiling" = yes; then - # Depending upon the size, compute the lo and hi bounds. -cat >conftest.$ac_ext <<_ACEOF @@ -8104,7 +7957,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -{ -static int test_array [1 - 2 * !(((long int) (sizeof (long long))) >= 0)]; -test_array [0] = 0 -- + - ; - return 0; -} @@ -8141,7 +7994,6 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -{ -static int test_array [1 - 2 * !(((long int) (sizeof (long long))) <= $ac_mid)]; -test_array [0] = 0 -+ if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (void *))" "ac_cv_sizeof_void_p" "$ac_includes_default"; then : - ; - return 0; @@ -8166,19 +8018,9 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_hi=$ac_mid; break - else +-else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 -+ if test "$ac_cv_type_void_p" = yes; then -+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -+{ as_fn_set_status 77 -+as_fn_error "cannot compute sizeof (void *) -+See \`config.log' for more details." "$LINENO" 5; }; } -+ else -+ ac_cv_sizeof_void_p=0 -+ fi -+fi - ac_lo=`expr $ac_mid + 1` - if test $ac_lo -le $ac_mid; then @@ -8186,9 +8028,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - break - fi - ac_mid=`expr 2 '*' $ac_mid + 1` - fi -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_void_p" >&5 -+$as_echo "$ac_cv_sizeof_void_p" >&6; } +-fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - done @@ -8235,9 +8075,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - while :; do - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -+cat >>confdefs.h <<_ACEOF -+#define SIZEOF_VOID_P $ac_cv_sizeof_void_p - _ACEOF +-_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ @@ -8288,13 +8126,13 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 -- + - ac_lo= ac_hi= -fi -- + -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -- + -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -# Binary search between lo and hi bounds. -while test "x$ac_lo" != "x$ac_hi"; do @@ -8311,7 +8149,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -{ -static int test_array [1 - 2 * !(((long int) (sizeof (long long))) <= $ac_mid)]; -test_array [0] = 0 -- + - ; - return 0; -} @@ -8338,10 +8176,10 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 -- + - ac_lo=`expr '(' $ac_mid ')' + 1` -fi -- + -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -done -case $ac_lo in @@ -8373,7 +8211,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -int -main () -{ -- + - FILE *f = fopen ("conftest.val", "w"); - if (! f) - return 1; @@ -8394,7 +8232,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - /* Do not output a trailing newline, as this causes \r\n confusion - on some platforms. */ - return ferror (f) || fclose (f) != 0; -- + - ; - return 0; -} @@ -8426,7 +8264,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - $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 ) -if test "$ac_cv_type_long_long" = yes; then - { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 @@ -8447,15 +8285,15 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_sizeof_long_long" >&5 -$as_echo "$ac_cv_sizeof_long_long" >&6; } -- -- -- + + + -cat >>confdefs.h <<_ACEOF -#define SIZEOF_LONG_LONG $ac_cv_sizeof_long_long -_ACEOF -- -- -- + + + -{ $as_echo "$as_me:$LINENO: checking for uint_t" >&5 -$as_echo_n "checking for uint_t... " >&6; } -if test "${ac_cv_type_uint_t+set}" = set; then @@ -8534,18 +8372,18 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 -- + - ac_cv_type_uint_t=yes -fi -- + -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 -- -- + + -fi -- + -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_uint_t" >&5 @@ -8553,13 +8391,13 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -if test "x$ac_cv_type_uint_t" = x""yes; then - : -else -- + -cat >>confdefs.h <<_ACEOF -#define uint_t unsigned int -_ACEOF -- + -fi -- + -{ $as_echo "$as_me:$LINENO: checking for int8_t" >&5 -$as_echo_n "checking for int8_t... " >&6; } -if test "${ac_cv_type_int8_t+set}" = set; then @@ -8638,18 +8476,18 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 -- + - ac_cv_type_int8_t=yes -fi -- + -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 -- -- + + -fi -- + -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_int8_t" >&5 @@ -8657,13 +8495,13 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -if test "x$ac_cv_type_int8_t" = x""yes; then - : -else -- + -cat >>confdefs.h <<_ACEOF -#define int8_t char -_ACEOF -- + -fi -- + -{ $as_echo "$as_me:$LINENO: checking for uint8_t" >&5 -$as_echo_n "checking for uint8_t... " >&6; } -if test "${ac_cv_type_uint8_t+set}" = set; then @@ -8742,18 +8580,18 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 -- + - ac_cv_type_uint8_t=yes -fi -- + -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 -- -- + + -fi -- + -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_uint8_t" >&5 @@ -8761,13 +8599,13 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -if test "x$ac_cv_type_uint8_t" = x""yes; then - : -else -- + -cat >>confdefs.h <<_ACEOF -#define uint8_t unsigned char -_ACEOF -- + -fi -- + -{ $as_echo "$as_me:$LINENO: checking for int16_t" >&5 -$as_echo_n "checking for int16_t... " >&6; } -if test "${ac_cv_type_int16_t+set}" = set; then @@ -8846,32 +8684,53 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 -- + - ac_cv_type_int16_t=yes --fi -- ++ ++# compile with optimization and without debugging by default, but ++# allow people to set their own preference. ++# do this here since AC_CACHE_CHECK apparently sets the CFLAGS to "-g -O2" ++# if it has no value. This prevent *very* large debug binaries from occurring ++# by default. ++if test "x$debug" = "xyes" ; then ++ CFLAGS="${CFLAGS} -g" ++fi ++if test "x$CFLAGS" = x; then ++ CFLAGS="-O" + fi + -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 -- -- ++# Check whether --enable-socket-wrapper was given. ++if test "${enable_socket_wrapper+set}" = set; then : ++ enableval=$enable_socket_wrapper; ++fi + + -fi -- ++DEFAULT_TEST_OPTIONS= ++HAVE_SOCKET_WRAPPER=no + -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext --fi ++if eval "test x$developer = xyes"; then ++ enable_socket_wrapper=yes + fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_int16_t" >&5 -$as_echo "$ac_cv_type_int16_t" >&6; } -if test "x$ac_cv_type_int16_t" = x""yes; then - : -else -- + -cat >>confdefs.h <<_ACEOF -#define int16_t short -_ACEOF -- ++if eval "test x$enable_socket_wrapper = xyes"; then + -fi -- ++$as_echo "#define SOCKET_WRAPPER 1" >>confdefs.h + -{ $as_echo "$as_me:$LINENO: checking for uint16_t" >&5 -$as_echo_n "checking for uint16_t... " >&6; } -if test "${ac_cv_type_uint16_t+set}" = set; then @@ -8950,33 +8809,46 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 -- ++ DEFAULT_TEST_OPTIONS=--socket-wrapper ++ HAVE_SOCKET_WRAPPER=yes + - ac_cv_type_uint16_t=yes --fi -- ++ # this is only used for samba3 ++ SOCKET_WRAPPER_OBJS="../lib/socket_wrapper/socket_wrapper.o" + fi + -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 -- -- + + -fi -- + -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext --fi ++ ++# Check whether --enable-nss-wrapper was given. ++if test "${enable_nss_wrapper+set}" = set; then : ++ enableval=$enable_nss_wrapper; + fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_uint16_t" >&5 -$as_echo "$ac_cv_type_uint16_t" >&6; } -if test "x$ac_cv_type_uint16_t" = x""yes; then - : -else -- + -cat >>confdefs.h <<_ACEOF -#define uint16_t unsigned short -_ACEOF -- --fi -- -- + ++HAVE_NSS_WRAPPER=no ++ ++if eval "test x$developer = xyes"; then ++ enable_nss_wrapper=yes + fi + ++if eval "test x$enable_nss_wrapper = xyes"; then + -if test $ac_cv_sizeof_int -eq 4 ; then -{ $as_echo "$as_me:$LINENO: checking for int32_t" >&5 -$as_echo_n "checking for int32_t... " >&6; } @@ -9056,18 +8928,23 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 -- ++$as_echo "#define NSS_WRAPPER 1" >>confdefs.h + - ac_cv_type_int32_t=yes --fi -- ++ HAVE_NSS_WRAPPER=yes ++ ++ # this is only used for samba3 ++ NSS_WRAPPER_OBJS="../lib/nss_wrapper/nss_wrapper.o" + fi + -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 -- -- + + -fi -- + -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_int32_t" >&5 @@ -9075,13 +8952,13 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -if test "x$ac_cv_type_int32_t" = x""yes; then - : -else -- + -cat >>confdefs.h <<_ACEOF -#define int32_t int -_ACEOF -- + -fi -- + -{ $as_echo "$as_me:$LINENO: checking for uint32_t" >&5 -$as_echo_n "checking for uint32_t... " >&6; } -if test "${ac_cv_type_uint32_t+set}" = set; then @@ -9160,18 +9037,30 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 -- ++SWAT_SBIN_TARGETS='bin/swat$(EXEEXT)' ++SWAT_INSTALL_TARGETS=installswat ++ ++# Check whether --enable-swat was given. ++if test "${enable_swat+set}" = set; then : ++ enableval=$enable_swat; ++ case "$enable_swat" in ++ no) ++ SWAT_SBIN_TARGETS='' ++ SWAT_INSTALL_TARGETS='' ++ ;; ++ esac + - ac_cv_type_uint32_t=yes --fi -- + fi + -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 -- -- + + -fi -- + -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_uint32_t" >&5 @@ -9179,19 +9068,28 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -if test "x$ac_cv_type_uint32_t" = x""yes; then - : -else -- + -cat >>confdefs.h <<_ACEOF -#define uint32_t unsigned int -_ACEOF -- + -fi -- + -elif test $ac_cv_size_long -eq 4 ; then -{ $as_echo "$as_me:$LINENO: checking for int32_t" >&5 -$as_echo_n "checking for int32_t... " >&6; } -if test "${ac_cv_type_int32_t+set}" = set; then -- $as_echo_n "(cached) " >&6 --else ++# Probe the gcc version for extra CFLAGS. We always stash these in ++# DEVELOPER_CFLAGS, so that you can turn them on and off with a simple ++# Makefile edit, avoiding the need to re-run configure. ++if test x"$ac_cv_c_compiler_gnu" = x"yes" ; then ++ DEVELOPER_CFLAGS="-g -Wall -Wshadow -Wpointer-arith -Wcast-align -Wwrite-strings -DDEBUG_PASSWORD -DDEVELOPER" ++ # Add -Wdeclaration-after-statement if compiler supports it ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking that the C compiler understands -Wdeclaration-after-statement" >&5 ++$as_echo_n "checking that the C compiler understands -Wdeclaration-after-statement... " >&6; } ++if test "${samba_cv_HAVE_Wdeclaration_after_statement+set}" = set; then : + $as_echo_n "(cached) " >&6 + else - ac_cv_type_int32_t=no -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ @@ -9232,7 +9130,22 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF --/* end confdefs.h. */ ++ ++ ++ old_CFLAGS="$CFLAGS"; ++ CFLAGS="$CFLAGS -Wdeclaration-after-statement"; ++ export CFLAGS; ++ old_CPPFLAGS="$CPPFLAGS"; ++ CPPFLAGS="$CPPFLAGS"; ++ export CPPFLAGS; ++ old_LDFLAGS="$LDFLAGS"; ++ LDFLAGS="$LDFLAGS"; ++ export LDFLAGS; ++ if test "$cross_compiling" = yes; then : ++ samba_cv_HAVE_Wdeclaration_after_statement=cross ++else ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ -$ac_includes_default -int -main () @@ -9242,7 +9155,12 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - ; - return 0; -} --_ACEOF ++ ++ int main(void) ++ { ++ return 0; ++ } + _ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in @@ -9262,21 +9180,38 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - : --else ++if ac_fn_c_try_run "$LINENO"; then : ++ samba_cv_HAVE_Wdeclaration_after_statement=yes + else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_type_int32_t=yes --fi -- ++ samba_cv_HAVE_Wdeclaration_after_statement=no ++fi ++rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ ++ conftest.$ac_objext conftest.beam conftest.$ac_ext + fi + -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 -- -- --fi -- ++ CFLAGS="$old_CFLAGS"; ++ old_CFLAGS=""; ++ export CFLAGS; ++ CPPFLAGS="$old_CPPFLAGS"; ++ old_CPPFLAGS=""; ++ export CPPFLAGS; ++ LDFLAGS="$old_LDFLAGS"; ++ old_LDFLAGS=""; ++ export LDFLAGS; + + + fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $samba_cv_HAVE_Wdeclaration_after_statement" >&5 ++$as_echo "$samba_cv_HAVE_Wdeclaration_after_statement" >&6; } + -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_int32_t" >&5 @@ -9284,25 +9219,46 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -if test "x$ac_cv_type_int32_t" = x""yes; then - : -else -- ++ if test x"$samba_cv_HAVE_Wdeclaration_after_statement" = x"yes"; then ++ DEVELOPER_CFLAGS="${DEVELOPER_CFLAGS} -Wdeclaration-after-statement" ++ fi + -cat >>confdefs.h <<_ACEOF -#define int32_t long -_ACEOF -- ++ #-Werror-implicit-function-declaration ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking that the C compiler understands -Werror-implicit-function-declaration" >&5 ++$as_echo_n "checking that the C compiler understands -Werror-implicit-function-declaration... " >&6; } ++if test "${samba_cv_HAVE_Werror_implicit_function_declaration+set}" = set; then : ++ $as_echo_n "(cached) " >&6 ++else + -fi -- + -{ $as_echo "$as_me:$LINENO: checking for uint32_t" >&5 -$as_echo_n "checking for uint32_t... " >&6; } -if test "${ac_cv_type_uint32_t+set}" = set; then - $as_echo_n "(cached) " >&6 --else ++ old_CFLAGS="$CFLAGS"; ++ CFLAGS="$CFLAGS -Werror-implicit-function-declaration"; ++ export CFLAGS; ++ old_CPPFLAGS="$CPPFLAGS"; ++ CPPFLAGS="$CPPFLAGS"; ++ export CPPFLAGS; ++ old_LDFLAGS="$LDFLAGS"; ++ LDFLAGS="$LDFLAGS"; ++ export LDFLAGS; ++ if test "$cross_compiling" = yes; then : ++ samba_cv_HAVE_Werror_implicit_function_declaration=cross + else - ac_cv_type_uint32_t=no -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF --/* end confdefs.h. */ ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ -$ac_includes_default -int -main () @@ -9312,7 +9268,12 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - ; - return 0; -} --_ACEOF ++ ++ int main(void) ++ { ++ return 0; ++ } + _ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in @@ -10992,15 +10953,13 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_intptr_t" >&5 -$as_echo "$ac_cv_type_intptr_t" >&6; } -if test "x$ac_cv_type_intptr_t" = x""yes; then -- : --else - -cat >>confdefs.h <<_ACEOF --#define intptr_t long long +-#define HAVE_INTPTR_T 1 -_ACEOF - --fi - +-fi -{ $as_echo "$as_me:$LINENO: checking for uintptr_t" >&5 -$as_echo_n "checking for uintptr_t... " >&6; } -if test "${ac_cv_type_uintptr_t+set}" = set; then @@ -11096,15 +11055,13 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_uintptr_t" >&5 -$as_echo "$ac_cv_type_uintptr_t" >&6; } -if test "x$ac_cv_type_uintptr_t" = x""yes; then -- : --else - -cat >>confdefs.h <<_ACEOF --#define uintptr_t unsigned long long +-#define HAVE_UINTPTR_T 1 -_ACEOF - --fi - +-fi -{ $as_echo "$as_me:$LINENO: checking for ptrdiff_t" >&5 -$as_echo_n "checking for ptrdiff_t... " >&6; } -if test "${ac_cv_type_ptrdiff_t+set}" = set; then @@ -11200,13 +11157,12 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_ptrdiff_t" >&5 -$as_echo "$ac_cv_type_ptrdiff_t" >&6; } -if test "x$ac_cv_type_ptrdiff_t" = x""yes; then -- : --else - -cat >>confdefs.h <<_ACEOF --#define ptrdiff_t unsigned long long +-#define HAVE_PTRDIFF_T 1 -_ACEOF - +- -fi - - @@ -11302,979 +11258,6 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - - - --# Check whether --enable-external_libtalloc was given. --if test "${enable_external_libtalloc+set}" = set; then -- enableval=$enable_external_libtalloc; enable_external_libtalloc=$enableval --else -- enable_external_libtalloc=auto --fi -- -- --if test "x$enable_external_libtalloc" != xno --then -- -- --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 --{ $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 -- $as_echo_n "(cached) " >&6 --else -- case $PKG_CONFIG in -- [\\/]* | ?:[\\/]*) -- ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. -- ;; -- *) -- 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_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" -- $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 -- { $as_echo "$as_me:$LINENO: result: $PKG_CONFIG" >&5 --$as_echo "$PKG_CONFIG" >&6; } --else -- { $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 --{ $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 -- $as_echo_n "(cached) " >&6 --else -- case $ac_pt_PKG_CONFIG in -- [\\/]* | ?:[\\/]*) -- ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path. -- ;; -- *) -- 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_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" -- $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 -- { $as_echo "$as_me:$LINENO: result: $ac_pt_PKG_CONFIG" >&5 --$as_echo "$ac_pt_PKG_CONFIG" >&6; } --else -- { $as_echo "$as_me:$LINENO: result: no" >&5 --$as_echo "no" >&6; } --fi -- -- 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: using cross tools not prefixed with host triplet" >&5 --$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} --ac_tool_warned=yes ;; --esac -- PKG_CONFIG=$ac_pt_PKG_CONFIG -- fi --else -- PKG_CONFIG="$ac_cv_path_PKG_CONFIG" --fi -- --fi --if test -n "$PKG_CONFIG"; then -- _pkg_min_version=0.9.0 -- { $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 -- { $as_echo "$as_me:$LINENO: result: yes" >&5 --$as_echo "yes" >&6; } -- else -- { $as_echo "$as_me:$LINENO: result: no" >&5 --$as_echo "no" >&6; } -- PKG_CONFIG="" -- fi -- --fi -- --pkg_failed=no --{ $as_echo "$as_me:$LINENO: checking for TALLOC" >&5 --$as_echo_n "checking for TALLOC... " >&6; } -- --if test -n "$PKG_CONFIG"; then -- if test -n "$TALLOC_CFLAGS"; then -- pkg_cv_TALLOC_CFLAGS="$TALLOC_CFLAGS" -- else -- if test -n "$PKG_CONFIG" && \ -- { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"talloc >= 1.3.0\"") >&5 -- ($PKG_CONFIG --exists --print-errors "talloc >= 1.3.0") 2>&5 -- ac_status=$? -- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 -- (exit $ac_status); }; then -- pkg_cv_TALLOC_CFLAGS=`$PKG_CONFIG --cflags "talloc >= 1.3.0" 2>/dev/null` --else -- pkg_failed=yes --fi -- fi --else -- pkg_failed=untried --fi --if test -n "$PKG_CONFIG"; then -- if test -n "$TALLOC_LIBS"; then -- pkg_cv_TALLOC_LIBS="$TALLOC_LIBS" -- else -- if test -n "$PKG_CONFIG" && \ -- { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"talloc >= 1.3.0\"") >&5 -- ($PKG_CONFIG --exists --print-errors "talloc >= 1.3.0") 2>&5 -- ac_status=$? -- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 -- (exit $ac_status); }; then -- pkg_cv_TALLOC_LIBS=`$PKG_CONFIG --libs "talloc >= 1.3.0" 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 -- TALLOC_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "talloc >= 1.3.0"` -- else -- TALLOC_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "talloc >= 1.3.0"` -- fi -- # Put the nasty error message in config.log where it belongs -- echo "$TALLOC_PKG_ERRORS" >&5 -- -- { $as_echo "$as_me:$LINENO: result: no" >&5 --$as_echo "no" >&6; } -- if test "x$enable_external_libtalloc" = xyes; then -- { { $as_echo "$as_me:$LINENO: error: Unable to find libtalloc" >&5 --$as_echo "$as_me: error: Unable to find libtalloc" >&2;} -- { (exit 1); exit 1; }; } -- else -- enable_external_libtalloc=no -- fi -- --elif test $pkg_failed = untried; then -- if test "x$enable_external_libtalloc" = xyes; then -- { { $as_echo "$as_me:$LINENO: error: Unable to find libtalloc" >&5 --$as_echo "$as_me: error: Unable to find libtalloc" >&2;} -- { (exit 1); exit 1; }; } -- else -- enable_external_libtalloc=no -- fi -- --else -- TALLOC_CFLAGS=$pkg_cv_TALLOC_CFLAGS -- TALLOC_LIBS=$pkg_cv_TALLOC_LIBS -- { $as_echo "$as_me:$LINENO: result: yes" >&5 --$as_echo "yes" >&6; } -- enable_external_libtalloc=yes --fi --fi -- --if test "x$enable_external_libtalloc" != xyes --then -- tallocdir="" --tallocpaths=". lib/talloc talloc ../talloc ../lib/talloc" --for d in $tallocpaths; do -- if test -f "$srcdir/$d/talloc.c"; then -- tallocdir="$d" -- -- break; -- fi --done --if test x"$tallocdir" = "x"; then -- { { $as_echo "$as_me:$LINENO: error: cannot find talloc source in $tallocpaths" >&5 --$as_echo "$as_me: error: cannot find talloc source in $tallocpaths" >&2;} -- { (exit 1); exit 1; }; } --fi --TALLOC_OBJ="talloc.o" -- -- --TALLOC_CFLAGS="-I$srcdir/$tallocdir" -- -- --TALLOC_LIBS="" -- -- --# The cast to long int works around a bug in the HP C Compiler --# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects --# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. --# This bug is HP SR number 8606223364. --{ $as_echo "$as_me:$LINENO: checking size of size_t" >&5 --$as_echo_n "checking size of size_t... " >&6; } --if test "${ac_cv_sizeof_size_t+set}" = set; then -- $as_echo_n "(cached) " >&6 --else -- if test "$cross_compiling" = yes; then -- # Depending upon the size, compute the lo and hi bounds. --cat >conftest.$ac_ext <<_ACEOF --/* confdefs.h. */ --_ACEOF --cat confdefs.h >>conftest.$ac_ext --cat >>conftest.$ac_ext <<_ACEOF --/* end confdefs.h. */ --$ac_includes_default --int --main () --{ --static int test_array [1 - 2 * !(((long int) (sizeof (size_t))) >= 0)]; --test_array [0] = 0 -- -- ; -- 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_lo=0 ac_mid=0 -- while :; do -- cat >conftest.$ac_ext <<_ACEOF --/* confdefs.h. */ --_ACEOF --cat confdefs.h >>conftest.$ac_ext --cat >>conftest.$ac_ext <<_ACEOF --/* end confdefs.h. */ --$ac_includes_default --int --main () --{ --static int test_array [1 - 2 * !(((long int) (sizeof (size_t))) <= $ac_mid)]; --test_array [0] = 0 -- -- ; -- 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_hi=$ac_mid; break --else -- $as_echo "$as_me: failed program was:" >&5 --sed 's/^/| /' conftest.$ac_ext >&5 -- -- ac_lo=`expr $ac_mid + 1` -- if test $ac_lo -le $ac_mid; then -- ac_lo= ac_hi= -- break -- fi -- ac_mid=`expr 2 '*' $ac_mid + 1` --fi -- --rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -- done --else -- $as_echo "$as_me: failed program was:" >&5 --sed 's/^/| /' conftest.$ac_ext >&5 -- -- cat >conftest.$ac_ext <<_ACEOF --/* confdefs.h. */ --_ACEOF --cat confdefs.h >>conftest.$ac_ext --cat >>conftest.$ac_ext <<_ACEOF --/* end confdefs.h. */ --$ac_includes_default --int --main () --{ --static int test_array [1 - 2 * !(((long int) (sizeof (size_t))) < 0)]; --test_array [0] = 0 -- -- ; -- 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_hi=-1 ac_mid=-1 -- while :; do -- cat >conftest.$ac_ext <<_ACEOF --/* confdefs.h. */ --_ACEOF --cat confdefs.h >>conftest.$ac_ext --cat >>conftest.$ac_ext <<_ACEOF --/* end confdefs.h. */ --$ac_includes_default --int --main () --{ --static int test_array [1 - 2 * !(((long int) (sizeof (size_t))) >= $ac_mid)]; --test_array [0] = 0 -- -- ; -- 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_lo=$ac_mid; break --else -- $as_echo "$as_me: failed program was:" >&5 --sed 's/^/| /' conftest.$ac_ext >&5 -- -- ac_hi=`expr '(' $ac_mid ')' - 1` -- if test $ac_mid -le $ac_hi; then -- ac_lo= ac_hi= -- break -- fi -- ac_mid=`expr 2 '*' $ac_mid` --fi -- --rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -- done --else -- $as_echo "$as_me: failed program was:" >&5 --sed 's/^/| /' conftest.$ac_ext >&5 -- -- ac_lo= ac_hi= --fi -- --rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext --fi -- --rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext --# Binary search between lo and hi bounds. --while test "x$ac_lo" != "x$ac_hi"; do -- ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo` -- cat >conftest.$ac_ext <<_ACEOF --/* confdefs.h. */ --_ACEOF --cat confdefs.h >>conftest.$ac_ext --cat >>conftest.$ac_ext <<_ACEOF --/* end confdefs.h. */ --$ac_includes_default --int --main () --{ --static int test_array [1 - 2 * !(((long int) (sizeof (size_t))) <= $ac_mid)]; --test_array [0] = 0 -- -- ; -- 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_hi=$ac_mid --else -- $as_echo "$as_me: failed program was:" >&5 --sed 's/^/| /' conftest.$ac_ext >&5 -- -- ac_lo=`expr '(' $ac_mid ')' + 1` --fi -- --rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext --done --case $ac_lo in --?*) ac_cv_sizeof_size_t=$ac_lo;; --'') if test "$ac_cv_type_size_t" = yes; then -- { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 --$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} --{ { $as_echo "$as_me:$LINENO: error: cannot compute sizeof (size_t) --See \`config.log' for more details." >&5 --$as_echo "$as_me: error: cannot compute sizeof (size_t) --See \`config.log' for more details." >&2;} -- { (exit 77); exit 77; }; }; } -- else -- ac_cv_sizeof_size_t=0 -- fi ;; --esac --else -- cat >conftest.$ac_ext <<_ACEOF --/* confdefs.h. */ --_ACEOF --cat confdefs.h >>conftest.$ac_ext --cat >>conftest.$ac_ext <<_ACEOF --/* end confdefs.h. */ --$ac_includes_default --static long int longval () { return (long int) (sizeof (size_t)); } --static unsigned long int ulongval () { return (long int) (sizeof (size_t)); } --#include --#include --int --main () --{ -- -- FILE *f = fopen ("conftest.val", "w"); -- if (! f) -- return 1; -- if (((long int) (sizeof (size_t))) < 0) -- { -- long int i = longval (); -- if (i != ((long int) (sizeof (size_t)))) -- return 1; -- fprintf (f, "%ld", i); -- } -- else -- { -- unsigned long int i = ulongval (); -- if (i != ((long int) (sizeof (size_t)))) -- return 1; -- fprintf (f, "%lu", i); -- } -- /* Do not output a trailing newline, as this causes \r\n confusion -- on some platforms. */ -- return ferror (f) || fclose (f) != 0; -- -- ; -- return 0; --} --_ACEOF --rm -f conftest$ac_exeext --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=$? -- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 -- (exit $ac_status); } && { ac_try='./conftest$ac_exeext' -- { (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=$? -- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 -- (exit $ac_status); }; }; then -- ac_cv_sizeof_size_t=`cat conftest.val` --else -- $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 ) --if test "$ac_cv_type_size_t" = yes; then -- { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 --$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} --{ { $as_echo "$as_me:$LINENO: error: cannot compute sizeof (size_t) --See \`config.log' for more details." >&5 --$as_echo "$as_me: error: cannot compute sizeof (size_t) --See \`config.log' for more details." >&2;} -- { (exit 77); exit 77; }; }; } -- else -- ac_cv_sizeof_size_t=0 -- fi --fi --rm -rf conftest.dSYM --rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext --fi --rm -f conftest.val --fi --{ $as_echo "$as_me:$LINENO: result: $ac_cv_sizeof_size_t" >&5 --$as_echo "$ac_cv_sizeof_size_t" >&6; } -- -- -- --cat >>confdefs.h <<_ACEOF --#define SIZEOF_SIZE_T $ac_cv_sizeof_size_t --_ACEOF -- -- --# The cast to long int works around a bug in the HP C Compiler --# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects --# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. --# This bug is HP SR number 8606223364. --{ $as_echo "$as_me:$LINENO: checking size of void *" >&5 --$as_echo_n "checking size of void *... " >&6; } --if test "${ac_cv_sizeof_void_p+set}" = set; then -- $as_echo_n "(cached) " >&6 --else -- if test "$cross_compiling" = yes; then -- # Depending upon the size, compute the lo and hi bounds. --cat >conftest.$ac_ext <<_ACEOF --/* confdefs.h. */ --_ACEOF --cat confdefs.h >>conftest.$ac_ext --cat >>conftest.$ac_ext <<_ACEOF --/* end confdefs.h. */ --$ac_includes_default --int --main () --{ --static int test_array [1 - 2 * !(((long int) (sizeof (void *))) >= 0)]; --test_array [0] = 0 -- -- ; -- 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_lo=0 ac_mid=0 -- while :; do -- cat >conftest.$ac_ext <<_ACEOF --/* confdefs.h. */ --_ACEOF --cat confdefs.h >>conftest.$ac_ext --cat >>conftest.$ac_ext <<_ACEOF --/* end confdefs.h. */ --$ac_includes_default --int --main () --{ --static int test_array [1 - 2 * !(((long int) (sizeof (void *))) <= $ac_mid)]; --test_array [0] = 0 -- -- ; -- 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_hi=$ac_mid; break --else -- $as_echo "$as_me: failed program was:" >&5 --sed 's/^/| /' conftest.$ac_ext >&5 -- -- ac_lo=`expr $ac_mid + 1` -- if test $ac_lo -le $ac_mid; then -- ac_lo= ac_hi= -- break -- fi -- ac_mid=`expr 2 '*' $ac_mid + 1` --fi -- --rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -- done --else -- $as_echo "$as_me: failed program was:" >&5 --sed 's/^/| /' conftest.$ac_ext >&5 -- -- cat >conftest.$ac_ext <<_ACEOF --/* confdefs.h. */ --_ACEOF --cat confdefs.h >>conftest.$ac_ext --cat >>conftest.$ac_ext <<_ACEOF --/* end confdefs.h. */ --$ac_includes_default --int --main () --{ --static int test_array [1 - 2 * !(((long int) (sizeof (void *))) < 0)]; --test_array [0] = 0 -- -- ; -- 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_hi=-1 ac_mid=-1 -- while :; do -- cat >conftest.$ac_ext <<_ACEOF --/* confdefs.h. */ --_ACEOF --cat confdefs.h >>conftest.$ac_ext --cat >>conftest.$ac_ext <<_ACEOF --/* end confdefs.h. */ --$ac_includes_default --int --main () --{ --static int test_array [1 - 2 * !(((long int) (sizeof (void *))) >= $ac_mid)]; --test_array [0] = 0 -- -- ; -- 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_lo=$ac_mid; break --else -- $as_echo "$as_me: failed program was:" >&5 --sed 's/^/| /' conftest.$ac_ext >&5 -- -- ac_hi=`expr '(' $ac_mid ')' - 1` -- if test $ac_mid -le $ac_hi; then -- ac_lo= ac_hi= -- break -- fi -- ac_mid=`expr 2 '*' $ac_mid` --fi -- --rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -- done --else -- $as_echo "$as_me: failed program was:" >&5 --sed 's/^/| /' conftest.$ac_ext >&5 -- -- ac_lo= ac_hi= --fi -- --rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext --fi -- --rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext --# Binary search between lo and hi bounds. --while test "x$ac_lo" != "x$ac_hi"; do -- ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo` -- cat >conftest.$ac_ext <<_ACEOF --/* confdefs.h. */ --_ACEOF --cat confdefs.h >>conftest.$ac_ext --cat >>conftest.$ac_ext <<_ACEOF --/* end confdefs.h. */ --$ac_includes_default --int --main () --{ --static int test_array [1 - 2 * !(((long int) (sizeof (void *))) <= $ac_mid)]; --test_array [0] = 0 -- -- ; -- 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_hi=$ac_mid --else -- $as_echo "$as_me: failed program was:" >&5 --sed 's/^/| /' conftest.$ac_ext >&5 -- -- ac_lo=`expr '(' $ac_mid ')' + 1` --fi -- --rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext --done --case $ac_lo in --?*) ac_cv_sizeof_void_p=$ac_lo;; --'') if test "$ac_cv_type_void_p" = yes; then -- { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 --$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} --{ { $as_echo "$as_me:$LINENO: error: cannot compute sizeof (void *) --See \`config.log' for more details." >&5 --$as_echo "$as_me: error: cannot compute sizeof (void *) --See \`config.log' for more details." >&2;} -- { (exit 77); exit 77; }; }; } -- else -- ac_cv_sizeof_void_p=0 -- fi ;; --esac --else -- cat >conftest.$ac_ext <<_ACEOF --/* confdefs.h. */ --_ACEOF --cat confdefs.h >>conftest.$ac_ext --cat >>conftest.$ac_ext <<_ACEOF --/* end confdefs.h. */ --$ac_includes_default --static long int longval () { return (long int) (sizeof (void *)); } --static unsigned long int ulongval () { return (long int) (sizeof (void *)); } --#include --#include --int --main () --{ -- -- FILE *f = fopen ("conftest.val", "w"); -- if (! f) -- return 1; -- if (((long int) (sizeof (void *))) < 0) -- { -- long int i = longval (); -- if (i != ((long int) (sizeof (void *)))) -- return 1; -- fprintf (f, "%ld", i); -- } -- else -- { -- unsigned long int i = ulongval (); -- if (i != ((long int) (sizeof (void *)))) -- return 1; -- fprintf (f, "%lu", i); -- } -- /* Do not output a trailing newline, as this causes \r\n confusion -- on some platforms. */ -- return ferror (f) || fclose (f) != 0; -- -- ; -- return 0; --} --_ACEOF --rm -f conftest$ac_exeext --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=$? -- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 -- (exit $ac_status); } && { ac_try='./conftest$ac_exeext' -- { (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=$? -- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 -- (exit $ac_status); }; }; then -- ac_cv_sizeof_void_p=`cat conftest.val` --else -- $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 ) --if test "$ac_cv_type_void_p" = yes; then -- { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 --$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} --{ { $as_echo "$as_me:$LINENO: error: cannot compute sizeof (void *) --See \`config.log' for more details." >&5 --$as_echo "$as_me: error: cannot compute sizeof (void *) --See \`config.log' for more details." >&2;} -- { (exit 77); exit 77; }; }; } -- else -- ac_cv_sizeof_void_p=0 -- fi --fi --rm -rf conftest.dSYM --rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext --fi --rm -f conftest.val --fi --{ $as_echo "$as_me:$LINENO: result: $ac_cv_sizeof_void_p" >&5 --$as_echo "$ac_cv_sizeof_void_p" >&6; } -- -- -- --cat >>confdefs.h <<_ACEOF --#define SIZEOF_VOID_P $ac_cv_sizeof_void_p --_ACEOF -- -- -- --if test $ac_cv_sizeof_size_t -lt $ac_cv_sizeof_void_p; then -- { $as_echo "$as_me:$LINENO: WARNING: size_t cannot represent the amount of used memory of a process" >&5 --$as_echo "$as_me: WARNING: size_t cannot represent the amount of used memory of a process" >&2;} -- { $as_echo "$as_me:$LINENO: WARNING: please report this to " >&5 --$as_echo "$as_me: WARNING: please report this to " >&2;} -- { $as_echo "$as_me:$LINENO: WARNING: sizeof(size_t) = $ac_cv_sizeof_size_t" >&5 --$as_echo "$as_me: WARNING: sizeof(size_t) = $ac_cv_sizeof_size_t" >&2;} -- { $as_echo "$as_me:$LINENO: WARNING: sizeof(void *) = $ac_cv_sizeof_void_p" >&5 --$as_echo "$as_me: WARNING: sizeof(void *) = $ac_cv_sizeof_void_p" >&2;} -- { { $as_echo "$as_me:$LINENO: error: sizeof(size_t) < sizeof(void *)" >&5 --$as_echo "$as_me: error: sizeof(size_t) < sizeof(void *)" >&2;} -- { (exit 1); exit 1; }; } --fi -- --fi -- - - - @@ -12583,27 +11566,9 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - -LIBS="${LIBS} ${TEVENT_LIBS}" - --# TODO: These should come from m4_include(lib/tdb/libtdb.m4) --# but currently this fails: things have to get merged from s4. --tdbdir="../lib/tdb" -- --TDB_CFLAGS="-I${srcdir-.}/$tdbdir/include" -- -- --LIBTDB_OBJ0="" --for o in common/tdb.o common/dump.o common/transaction.o common/error.o \ -- common/traverse.o common/freelist.o common/freelistcheck.o \ -- common/io.o common/lock.o common/open.o; --do -- LIBTDB_OBJ0="$LIBTDB_OBJ0 $tdbdir/$o" --done -- -- -SAMBA_CPPFLAGS="-Iinclude -I${srcdir-.}/include -I. -I${srcdir-.}" -SAMBA_CPPFLAGS="${SAMBA_CPPFLAGS} -I${srcdir-.}/../lib/replace" --SAMBA_CPPFLAGS="${SAMBA_CPPFLAGS} ${TALLOC_CFLAGS}" -SAMBA_CPPFLAGS="${SAMBA_CPPFLAGS} ${TEVENT_CFLAGS}" --SAMBA_CPPFLAGS="${SAMBA_CPPFLAGS} ${TDB_CFLAGS}" -SAMBA_CPPFLAGS="${SAMBA_CPPFLAGS} -I${srcdir-.}/libaddns" -SAMBA_CPPFLAGS="${SAMBA_CPPFLAGS} -I${srcdir-.}/librpc" -SAMBA_CPPFLAGS="${SAMBA_CPPFLAGS} -I${srcdir-.}/.." @@ -12671,6 +11636,8 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - - - +- +- -# compile with optimization and without debugging by default, but -# allow people to set their own preference. -# do this here since AC_CACHE_CHECK apparently sets the CFLAGS to "-g -O2" @@ -12778,7 +11745,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - - - old_CFLAGS="$CFLAGS"; -- CFLAGS="-Wdeclaration-after-statement"; +- CFLAGS="$CFLAGS -Wdeclaration-after-statement"; - export CFLAGS; - old_CPPFLAGS="$CPPFLAGS"; - CPPFLAGS="$CPPFLAGS"; @@ -12865,7 +11832,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - - - old_CFLAGS="$CFLAGS"; -- CFLAGS="-Werror-implicit-function-declaration"; +- CFLAGS="$CFLAGS -Werror-implicit-function-declaration"; - export CFLAGS; - old_CPPFLAGS="$CPPFLAGS"; - CPPFLAGS="$CPPFLAGS"; @@ -12953,27 +11920,6 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - fi -fi - --# Check whether --enable-dmalloc was given. --if test "${enable_dmalloc+set}" = set; then -- enableval=$enable_dmalloc; --fi -- -- --if test "x$enable_dmalloc" = xyes --then -- --cat >>confdefs.h <<\_ACEOF --#define ENABLE_DMALLOC 1 --_ACEOF -- -- --cat >>confdefs.h <<\_ACEOF --#define DMALLOC_FUNC_CHECK 1 --_ACEOF -- -- LIBS="$LIBS -ldmalloc" --fi -- -################################################# -# check for a shared memory profiling support -{ $as_echo "$as_me:$LINENO: checking whether to use profiling" >&5 @@ -13611,7 +12557,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - - - old_CFLAGS="$CFLAGS"; -- CFLAGS="-Werror"; +- CFLAGS="$CFLAGS -Werror"; - export CFLAGS; - old_CPPFLAGS="$CPPFLAGS"; - CPPFLAGS="$CPPFLAGS"; @@ -13694,7 +12640,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - - - old_CFLAGS="$CFLAGS"; -- CFLAGS="-w2"; +- CFLAGS="$CFLAGS -w2"; - export CFLAGS; - old_CPPFLAGS="$CPPFLAGS"; - CPPFLAGS="$CPPFLAGS"; @@ -13777,7 +12723,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - - - old_CFLAGS="$CFLAGS"; -- CFLAGS="-errwarn=%all"; +- CFLAGS="$CFLAGS -errwarn=%all"; - export CFLAGS; - old_CPPFLAGS="$CPPFLAGS"; - CPPFLAGS="$CPPFLAGS"; @@ -14269,13 +13215,17 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - -DYNEXP= - +-LDSHFLAGS_Z_DEFS= +- +-LDSHFLAGS_Z_NODEFS= +- - -default_static_modules="pdb_smbpasswd pdb_tdbsam pdb_wbc_sam rpc_lsarpc rpc_samr rpc_winreg rpc_initshutdown rpc_dssetup rpc_wkssvc rpc_svcctl rpc_ntsvcs rpc_netlogon rpc_netdfs rpc_srvsvc rpc_spoolss rpc_eventlog auth_sam auth_unix auth_winbind auth_wbc auth_server auth_domain auth_builtin auth_netlogond vfs_default nss_info_template" - --default_shared_modules="vfs_recycle vfs_audit vfs_extd_audit vfs_full_audit vfs_netatalk vfs_fake_perms vfs_default_quota vfs_readonly vfs_cap vfs_expand_msdfs vfs_shadow_copy vfs_shadow_copy2 charset_CP850 charset_CP437 auth_script vfs_readahead vfs_xattr_tdb vfs_streams_xattr vfs_streams_depot vfs_acl_xattr vfs_acl_tdb vfs_smb_traffic_analyzer vfs_preopen" +-default_shared_modules="vfs_recycle vfs_audit vfs_extd_audit vfs_full_audit vfs_netatalk vfs_fake_perms vfs_default_quota vfs_readonly vfs_cap vfs_expand_msdfs vfs_shadow_copy vfs_shadow_copy2 charset_CP850 charset_CP437 auth_script vfs_readahead vfs_xattr_tdb vfs_streams_xattr vfs_streams_depot vfs_acl_xattr vfs_acl_tdb vfs_smb_traffic_analyzer vfs_preopen vfs_catia vfs_scannedonly" - -if test "x$developer" = xyes; then -- default_static_modules="$default_static_modules rpc_rpcecho" +- default_static_modules="$default_static_modules rpc_rpcecho pdb_ads" - default_shared_modules="$default_shared_modules charset_weird perfcount_test" -fi - @@ -14746,6 +13696,14 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - { $as_echo "$as_me:$LINENO: result: $GLIBC_LFS_SUPPORT" >&5 -$as_echo "$GLIBC_LFS_SUPPORT" >&6; } - ;; +- *qnx*) +- CPPFLAGS="-D_LARGEFILE64_SOURCE $CPPFLAGS" +- +-cat >>confdefs.h <<\_ACEOF +-#define _LARGEFILE64_SOURCE 1 +-_ACEOF +- +- ;; - -esac - @@ -14770,10 +13728,10 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - { (exit 1); exit 1; }; } -fi - --LIBREPLACEOBJ="replace.o" +-LIBREPLACEOBJ="$libreplacedir/replace.o" - - --LIBREPLACEOBJ="${LIBREPLACEOBJ} snprintf.o" +-LIBREPLACEOBJ="${LIBREPLACEOBJ} $libreplacedir/snprintf.o" - -{ $as_echo "$as_me:$LINENO: checking return type of signal handlers" >&5 -$as_echo_n "checking return type of signal handlers... " >&6; } @@ -17564,6 +16522,157 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -done - - +-for ac_header in unix.h +-do +-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? +-{ $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 +-cat confdefs.h >>conftest.$ac_ext +-cat >>conftest.$ac_ext <<_ACEOF +-/* end confdefs.h. */ +-$ac_includes_default +-#include <$ac_header> +-_ACEOF +-rm -f conftest.$ac_objext +-if { (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_header_compiler=yes +-else +- $as_echo "$as_me: failed program was:" >&5 +-sed 's/^/| /' conftest.$ac_ext >&5 +- +- ac_header_compiler=no +-fi +- +-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? +-{ $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 +-cat confdefs.h >>conftest.$ac_ext +-cat >>conftest.$ac_ext <<_ACEOF +-/* end confdefs.h. */ +-#include <$ac_header> +-_ACEOF +-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 +- $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 +- $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 +-{ $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: ) +- { $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:* ) +- { $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 samba-technical@samba.org ## +-## ---------------------------------------- ## +-_ASBOX +- ) | sed "s/^/$as_me: WARNING: /" >&2 +- ;; +-esac +-{ $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 +-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 +-as_val=`eval 'as_val=${'$as_ac_Header'} +- $as_echo "$as_val"'` +- if test "x$as_val" = x""yes; then +- cat >>confdefs.h <<_ACEOF +-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +-_ACEOF +- +-fi +- +-done +- +- - - - @@ -17783,7 +16892,8 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - - - --for ac_func in waitpid strlcpy strlcat initgroups memmove strdup +- +-for ac_func in waitpid wait4 strlcpy strlcat initgroups memmove strdup -do -as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 @@ -22336,10 +21446,112 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - - - +-for ac_func in getgrouplist +-do +-as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +-{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 +-$as_echo_n "checking for $ac_func... " >&6; } +-if { as_var=$as_ac_var; eval "test \"\${$as_var+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. */ +-/* Define $ac_func to an innocuous variant, in case declares $ac_func. +- For example, HP-UX 11i declares gettimeofday. */ +-#define $ac_func innocuous_$ac_func +- +-/* System header to define __stub macros and hopefully few prototypes, +- which can conflict with char $ac_func (); below. +- Prefer to if __STDC__ is defined, since +- exists even on freestanding compilers. */ +- +-#ifdef __STDC__ +-# include +-#else +-# include +-#endif +- +-#undef $ac_func +- +-/* 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 +-char $ac_func (); +-/* 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_$ac_func || defined __stub___$ac_func +-choke me +-#endif +- +-int +-main () +-{ +-return $ac_func (); +- ; +- return 0; +-} +-_ACEOF +-rm -f conftest.$ac_objext conftest$ac_exeext +-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 +- $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 +- eval "$as_ac_var=yes" +-else +- $as_echo "$as_me: failed program was:" >&5 +-sed 's/^/| /' conftest.$ac_ext >&5 +- +- eval "$as_ac_var=no" +-fi +- +-rm -rf conftest.dSYM +-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ +- conftest$ac_exeext conftest.$ac_ext +-fi +-ac_res=`eval 'as_val=${'$as_ac_var'} +- $as_echo "$as_val"'` +- { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +-$as_echo "$ac_res" >&6; } +-as_val=`eval 'as_val=${'$as_ac_var'} +- $as_echo "$as_val"'` +- if test "x$as_val" = x""yes; then +- cat >>confdefs.h <<_ACEOF +-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 +-_ACEOF +- +-fi +-done +- +- -# locale - - --for ac_header in ctype.h locale.h +- +-for ac_header in ctype.h locale.h langinfo.h -do -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 @@ -23721,7 +22933,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - - -if test x"${libreplace_cv_dlfcn}" = x"yes";then -- LIBREPLACEOBJ="${LIBREPLACEOBJ} dlfcn.o" +- LIBREPLACEOBJ="${LIBREPLACEOBJ} $libreplacedir/dlfcn.o" -fi - -LIBDL="$LIBS" @@ -23917,7 +23129,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -#define REPLACE_GETPASS 1 -_ACEOF - -- LIBREPLACEOBJ="${LIBREPLACEOBJ} getpass.o" +- LIBREPLACEOBJ="${LIBREPLACEOBJ} $libreplacedir/getpass.o" -else - -{ $as_echo "$as_me:$LINENO: checking whether getpass should be replaced" >&5 @@ -23985,7 +23197,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -#define REPLACE_GETPASS 1 -_ACEOF - -- LIBREPLACEOBJ="${LIBREPLACEOBJ} getpass.o" +- LIBREPLACEOBJ="${LIBREPLACEOBJ} $libreplacedir/getpass.o" -fi - -fi @@ -24056,7 +23268,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -#define REPLACE_STRPTIME 1 -_ACEOF - -- LIBREPLACEOBJ="${LIBREPLACEOBJ} strptime.o" +- LIBREPLACEOBJ="${LIBREPLACEOBJ} $libreplacedir/strptime.o" -fi - - @@ -24382,7 +23594,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -_ACEOF - -else -- LIBREPLACEOBJ="${LIBREPLACEOBJ} timegm.o" +- LIBREPLACEOBJ="${LIBREPLACEOBJ} $libreplacedir/timegm.o" -fi -done - @@ -24934,7 +24146,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -#define REPLACE_READDIR_GETDIRENTRIES 1 -_ACEOF - -- LIBREPLACEOBJ="${LIBREPLACEOBJ} repdir_getdirentries.o" +- LIBREPLACEOBJ="${LIBREPLACEOBJ} $libreplacedir/repdir_getdirentries.o" - libreplace_cv_READDIR_NEEDED=no -fi - @@ -25123,7 +24335,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -#define REPLACE_READDIR_GETDENTS 1 -_ACEOF - -- LIBREPLACEOBJ="${LIBREPLACEOBJ} repdir_getdents.o" +- LIBREPLACEOBJ="${LIBREPLACEOBJ} $libreplacedir/repdir_getdents.o" - libreplace_cv_READDIR_NEEDED=no -fi - @@ -25426,7 +24638,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -_ACEOF - -else -- LIBREPLACEOBJ="${LIBREPLACEOBJ} crypt.o" +- LIBREPLACEOBJ="${LIBREPLACEOBJ} $libreplacedir/crypt.o" -fi - - @@ -25434,8 +24646,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - - - -- --for ac_func in syslog printf memset memcpy +-for ac_func in printf memset memcpy -do -as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 @@ -25543,6 +24754,111 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -echo "LIBREPLACE_BROKEN_CHECKS: END" - - +-for ac_func in syslog +-do +-as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +-{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 +-$as_echo_n "checking for $ac_func... " >&6; } +-if { as_var=$as_ac_var; eval "test \"\${$as_var+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. */ +-/* Define $ac_func to an innocuous variant, in case declares $ac_func. +- For example, HP-UX 11i declares gettimeofday. */ +-#define $ac_func innocuous_$ac_func +- +-/* System header to define __stub macros and hopefully few prototypes, +- which can conflict with char $ac_func (); below. +- Prefer to if __STDC__ is defined, since +- exists even on freestanding compilers. */ +- +-#ifdef __STDC__ +-# include +-#else +-# include +-#endif +- +-#undef $ac_func +- +-/* 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 +-char $ac_func (); +-/* 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_$ac_func || defined __stub___$ac_func +-choke me +-#endif +- +-int +-main () +-{ +-return $ac_func (); +- ; +- return 0; +-} +-_ACEOF +-rm -f conftest.$ac_objext conftest$ac_exeext +-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 +- $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 +- eval "$as_ac_var=yes" +-else +- $as_echo "$as_me: failed program was:" >&5 +-sed 's/^/| /' conftest.$ac_ext >&5 +- +- eval "$as_ac_var=no" +-fi +- +-rm -rf conftest.dSYM +-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ +- conftest$ac_exeext conftest.$ac_ext +-fi +-ac_res=`eval 'as_val=${'$as_ac_var'} +- $as_echo "$as_val"'` +- { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +-$as_echo "$ac_res" >&6; } +-as_val=`eval 'as_val=${'$as_ac_var'} +- $as_echo "$as_val"'` +- if test "x$as_val" = x""yes; then +- cat >>confdefs.h <<_ACEOF +-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 +-_ACEOF +- +-else +- { { $as_echo "$as_me:$LINENO: error: Required function not found" >&5 +-$as_echo "$as_me: error: Required function not found" >&2;} +- { (exit 1); exit 1; }; } +-fi +-done +- +- -echo "LIBREPLACE_NETWORK_CHECKS: START" - - @@ -29088,7 +28404,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -_ACEOF - -else -- LIBREPLACE_NETWORK_OBJS="${LIBREPLACE_NETWORK_OBJS} socketpair.o" +- LIBREPLACE_NETWORK_OBJS="${LIBREPLACE_NETWORK_OBJS} $libreplacedir/socketpair.o" -fi -done - @@ -29270,7 +28586,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -#define REPLACE_INET_NTOA 1 -_ACEOF - -- LIBREPLACE_NETWORK_OBJS="${LIBREPLACE_NETWORK_OBJS} inet_ntoa.o" +- LIBREPLACE_NETWORK_OBJS="${LIBREPLACE_NETWORK_OBJS} $libreplacedir/inet_ntoa.o" -fi - - @@ -29372,7 +28688,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -_ACEOF - -else -- LIBREPLACE_NETWORK_OBJS="${LIBREPLACE_NETWORK_OBJS} inet_aton.o" +- LIBREPLACE_NETWORK_OBJS="${LIBREPLACE_NETWORK_OBJS} $libreplacedir/inet_aton.o" -fi -done - @@ -29476,7 +28792,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -_ACEOF - -else -- LIBREPLACE_NETWORK_OBJS="${LIBREPLACE_NETWORK_OBJS} inet_ntop.o" +- LIBREPLACE_NETWORK_OBJS="${LIBREPLACE_NETWORK_OBJS} $libreplacedir/inet_ntop.o" -fi -done - @@ -29580,7 +28896,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -_ACEOF - -else -- LIBREPLACE_NETWORK_OBJS="${LIBREPLACE_NETWORK_OBJS} inet_pton.o" +- LIBREPLACE_NETWORK_OBJS="${LIBREPLACE_NETWORK_OBJS} $libreplacedir/inet_pton.o" -fi -done - @@ -29682,7 +28998,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -_ACEOF - -else -- LIBREPLACE_NETWORK_OBJS="${LIBREPLACE_NETWORK_OBJS} getaddrinfo.o" +- LIBREPLACE_NETWORK_OBJS="${LIBREPLACE_NETWORK_OBJS} $libreplacedir/getaddrinfo.o" -fi - - @@ -30112,7 +29428,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -_ACEOF - -else -- LIBREPLACE_NETWORK_OBJS="${LIBREPLACE_NETWORK_OBJS} getifaddrs.o" +- LIBREPLACE_NETWORK_OBJS="${LIBREPLACE_NETWORK_OBJS} $libreplacedir/getifaddrs.o" -fi - - @@ -30444,10 +29760,11 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - -LIBREPLACE_DIR=`echo ${libreplacedir} | sed -e "s;${srcdir};;" -e "s;^/;;"` - --LIBREPLACE_OBJS="" --for obj in ${LIBREPLACEOBJ}; do -- LIBREPLACE_OBJS="${LIBREPLACE_OBJS} ${LIBREPLACE_DIR}/${obj}" --done +-LIBREPLACE_OBJS="${LIBREPLACEOBJ}" +- +- +-LIBREPLACE_LIBS="${LIBREPLACE_NETWORK_LIBS}" +- - - -# add -ldl to the global LIBS @@ -30770,8 +30087,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - - - -- --for ac_header in limits.h float.h pthread.h libintl.h +-for ac_header in limits.h float.h libintl.h -do -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 @@ -35548,18 +34864,8 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -+if test $ac_cv_sizeof_size_t -lt $ac_cv_sizeof_void_p; then -+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: size_t cannot represent the amount of used memory of a process" >&5 -+$as_echo "$as_me: WARNING: size_t cannot represent the amount of used memory of a process" >&2;} -+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: please report this to " >&5 -+$as_echo "$as_me: WARNING: please report this to " >&2;} -+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: sizeof(size_t) = $ac_cv_sizeof_size_t" >&5 -+$as_echo "$as_me: WARNING: sizeof(size_t) = $ac_cv_sizeof_size_t" >&2;} -+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: sizeof(void *) = $ac_cv_sizeof_void_p" >&5 -+$as_echo "$as_me: WARNING: sizeof(void *) = $ac_cv_sizeof_void_p" >&2;} -+ as_fn_error "sizeof(size_t) < sizeof(void *)" "$LINENO" 5 - fi - +-fi +- -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -# Binary search between lo and hi bounds. -while test "x$ac_lo" != "x$ac_hi"; do @@ -35605,8 +34911,8 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_lo=`expr '(' $ac_mid ')' + 1` - fi - +-fi +- -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -done -case $ac_lo in @@ -35638,7 +34944,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -int -main () -{ - +- - FILE *f = fopen ("conftest.val", "w"); - if (! f) - return 1; @@ -35659,7 +34965,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - /* Do not output a trailing newline, as this causes \r\n confusion - on some platforms. */ - return ferror (f) || fclose (f) != 0; - +- - ; - return 0; -} @@ -35687,11 +34993,13 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_sizeof_short=`cat conftest.val` --else ++if ac_fn_c_try_run "$LINENO"; then : ++ samba_cv_HAVE_Werror_implicit_function_declaration=yes + else - $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 ) -if test "$ac_cv_type_short" = yes; then - { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 @@ -35704,44 +35012,26 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - else - ac_cv_sizeof_short=0 - fi --fi ++ samba_cv_HAVE_Werror_implicit_function_declaration=no + fi -rm -rf conftest.dSYM -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext -fi -rm -f conftest.val -+if test x"$teventdir" = "x"; then -+ teventdir="" -+ teventpaths="$srcdir $srcdir/../lib/tevent $srcdir/tevent $srcdir/../tevent" -+ for d in $teventpaths; do -+ if test -f "$d/tevent.c"; then -+ teventdir="$d" -+ break; -+ fi -+ done -+ if test x"$teventdir" = "x"; then -+ as_fn_error "cannot find libtevent source in $teventpaths" "$LINENO" 5 -+ fi ++rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ ++ conftest.$ac_objext conftest.beam conftest.$ac_ext fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_sizeof_short" >&5 -$as_echo "$ac_cv_sizeof_short" >&6; } -+ -+TEVENT_OBJ="" -+TEVENT_CFLAGS="" -+TEVENT_LIBS="" - - - +- +- +- -cat >>confdefs.h <<_ACEOF -#define SIZEOF_SHORT $ac_cv_sizeof_short -_ACEOF - -+TEVENT_CFLAGS="-I$teventdir" - -+TEVENT_OBJ="tevent.o tevent_debug.o tevent_util.o" -+TEVENT_OBJ="$TEVENT_OBJ tevent_fd.o tevent_timed.o tevent_immediate.o tevent_signal.o" -+TEVENT_OBJ="$TEVENT_OBJ tevent_req.o tevent_wakeup.o tevent_queue.o" -+TEVENT_OBJ="$TEVENT_OBJ tevent_standard.o tevent_select.o" - +- +- +- -{ $as_echo "$as_me:$LINENO: checking for an ANSI C-conforming const" >&5 -$as_echo_n "checking for an ANSI C-conforming const... " >&6; } -if test "${ac_cv_c_const+set}" = set; then @@ -35749,17 +35039,11 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -+for ac_header in sys/epoll.h -+do : -+ ac_fn_c_check_header_mongrel "$LINENO" "sys/epoll.h" "ac_cv_header_sys_epoll_h" "$ac_includes_default" -+if test "x$ac_cv_header_sys_epoll_h" = x""yes; then : -+ cat >>confdefs.h <<_ACEOF -+#define HAVE_SYS_EPOLL_H 1 - _ACEOF +-_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - +- -int -main () -{ @@ -35787,8 +35071,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - { /* SCO 3.2v4 cc rejects this. */ - char *t; - char const *s = 0 ? (char *) 0 : (char const *) 0; -+fi - +- - *t++ = 0; - if (s) return 0; - } @@ -35813,18 +35096,11 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - } - return !cs[0] && !zero.x; -#endif -+done - ; - return 0; -} -+for ac_func in epoll_create -+do : -+ ac_fn_c_check_func "$LINENO" "epoll_create" "ac_cv_func_epoll_create" -+if test "x$ac_cv_func_epoll_create" = x""yes; then : -+ cat >>confdefs.h <<_ACEOF -+#define HAVE_EPOLL_CREATE 1 - _ACEOF +-_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in @@ -35847,28 +35123,42 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 ++ CFLAGS="$old_CFLAGS"; ++ old_CFLAGS=""; ++ export CFLAGS; ++ CPPFLAGS="$old_CPPFLAGS"; ++ old_CPPFLAGS=""; ++ export CPPFLAGS; ++ LDFLAGS="$old_LDFLAGS"; ++ old_LDFLAGS=""; ++ export LDFLAGS; - ac_cv_c_const=no - fi -+done -+ -+if test x"$ac_cv_header_sys_epoll_h" = x"yes" -a x"$ac_cv_func_epoll_create" = x"yes"; then -+ TEVENT_OBJ="$TEVENT_OBJ tevent_epoll.o" -+ -+$as_echo "#define HAVE_EPOLL 1" >>confdefs.h +-fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_c_const" >&5 -$as_echo "$ac_cv_c_const" >&6; } -if test $ac_cv_c_const = no; then ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $samba_cv_HAVE_Werror_implicit_function_declaration" >&5 ++$as_echo "$samba_cv_HAVE_Werror_implicit_function_declaration" >&6; } ++ if test x"$samba_cv_HAVE_Werror_implicit_function_declaration" = x"yes"; then ++ DEVELOPER_CFLAGS="${DEVELOPER_CFLAGS} -Werror-implicit-function-declaration" ++ fi -cat >>confdefs.h <<\_ACEOF -#define const /**/ -_ACEOF -+if test x"$VERSIONSCRIPT" != "x"; then -+ EXPORTSFILE=tevent.exports ++ # krb5developer is like developer, except we don't get ++ # -Wstrict-prototypes. ++ if test x"$krb5_developer" != x"$yes" ; then ++ DEVELOPER_CFLAGS="$DEVELOPER_CFLAGS -Wstrict-prototypes" ++ fi ++ if test x"$picky_developer" = x"yes"; then ++ DEVELOPER_CFLAGS="$DEVELOPER_CFLAGS -Werror" ++ fi fi -{ $as_echo "$as_me:$LINENO: checking for inline" >&5 @@ -35889,7 +35179,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -static $ac_kw foo_t static_foo () {return 0; } -$ac_kw foo_t foo () {return 0; } -#endif - +- -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" @@ -35913,47 +35203,36 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 ++################################################# ++# check for a shared memory profiling support ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to use profiling" >&5 ++$as_echo_n "checking whether to use profiling... " >&6; } -+LIBTEVENT_OBJ0="" -+for obj in ${TEVENT_OBJ}; do -+ LIBTEVENT_OBJ0="${LIBTEVENT_OBJ0} ${teventdir}/${obj}" -+done ++# Check whether --with-profiling-data was given. ++if test "${with_profiling_data+set}" = set; then : ++ withval=$with_profiling_data; case "$withval" in ++ yes) ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 ++$as_echo "yes" >&6; } -fi -+LIBS="${LIBS} ${TEVENT_LIBS}" ++$as_echo "#define WITH_PROFILE 1" >>confdefs.h -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - test "$ac_cv_c_inline" != no && break -+# TODO: These should come from m4_include(lib/tdb/libtdb.m4) -+# but currently this fails: things have to get merged from s4. -+tdbdir="../lib/tdb" -+ -+TDB_CFLAGS="-I${srcdir-.}/$tdbdir/include" -+ -+ -+LIBTDB_OBJ0="" -+for o in common/tdb.o common/dump.o common/transaction.o common/error.o \ -+ common/traverse.o common/freelist.o common/freelistcheck.o \ -+ common/io.o common/lock.o common/open.o; -+do -+ LIBTDB_OBJ0="$LIBTDB_OBJ0 $tdbdir/$o" - done +-done ++ samba_cv_WITH_PROFILE=yes ++ ;; ++ *) ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++$as_echo "no" >&6; } ++ samba_cv_WITH_PROFILE=no ++ ;; ++ esac ++else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++$as_echo "no" >&6; } -+ -+SAMBA_CPPFLAGS="-Iinclude -I${srcdir-.}/include -I. -I${srcdir-.}" -+SAMBA_CPPFLAGS="${SAMBA_CPPFLAGS} -I${srcdir-.}/../lib/replace" -+SAMBA_CPPFLAGS="${SAMBA_CPPFLAGS} ${TALLOC_CFLAGS}" -+SAMBA_CPPFLAGS="${SAMBA_CPPFLAGS} ${TEVENT_CFLAGS}" -+SAMBA_CPPFLAGS="${SAMBA_CPPFLAGS} ${TDB_CFLAGS}" -+SAMBA_CPPFLAGS="${SAMBA_CPPFLAGS} -I${srcdir-.}/libaddns" -+SAMBA_CPPFLAGS="${SAMBA_CPPFLAGS} -I${srcdir-.}/librpc" -+SAMBA_CPPFLAGS="${SAMBA_CPPFLAGS} -I${srcdir-.}/.." -+ -+SAMBA_CONFIGURE_CPPFLAGS="${SAMBA_CPPFLAGS} -I${srcdir-.}/../lib/popt" -+ -+## cleanup the $(srcdir) in the Makefile if we are outside of the tree -+if test "x${srcdir-.}" != "x."; then -+ SAMBA_CPPFLAGS=`echo ${SAMBA_CPPFLAGS} | sed -e "s;${srcdir};\$\(srcdir\);g"` fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_c_inline" >&5 -$as_echo "$ac_cv_c_inline" >&6; } @@ -35973,13 +35252,21 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -_ACEOF - ;; -esac ++merged_build_possible=yes - { $as_echo "$as_me:$LINENO: checking whether byte ordering is bigendian" >&5 -$as_echo_n "checking whether byte ordering is bigendian... " >&6; } -if test "${ac_cv_c_bigendian+set}" = set; then -- $as_echo_n "(cached) " >&6 --else ++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 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if test "${ac_cv_prog_AWK+set}" = set; then : + $as_echo_n "(cached) " >&6 + else - ac_cv_c_bigendian=unknown - # See if we're dealing with a universal compiler. - cat >conftest.$ac_ext <<_ACEOF @@ -35992,7 +35279,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - not a universal capable compiler - #endif - typedef int dummy; - +- -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" @@ -36012,6 +35299,23 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then ++ if test -n "$AWK"; then ++ ac_cv_prog_AWK="$AWK" # 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_AWK="$ac_prog" ++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++ done ++IFS=$as_save_IFS - # Check for potential -arch flags. It is not universal unless - # there are some -arch flags. Note that *ppc* also matches @@ -36019,12 +35323,23 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - case "${CC} ${CFLAGS} ${CPPFLAGS} ${LDFLAGS}" in #( - *-arch*ppc*|*-arch*i386*|*-arch*x86_64*) ac_cv_c_bigendian=universal;; - esac --else ++fi ++fi ++AWK=$ac_cv_prog_AWK ++if test -n "$AWK"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 ++$as_echo "$AWK" >&6; } + else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++$as_echo "no" >&6; } ++fi -fi ++ test -n "$AWK" && break ++done -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - if test $ac_cv_c_bigendian = unknown; then @@ -36037,6 +35352,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -/* end confdefs.h. */ -#include - #include ++# Check for GNU make -int -main () @@ -36117,12 +35433,49 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext --else ++for ac_prog in gmake make ++do ++ # Extract the first word of "$ac_prog", so it can be a program name with args. ++set dummy $ac_prog; ac_word=$2 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if test "${ac_cv_path_MAKE+set}" = set; then : ++ $as_echo_n "(cached) " >&6 + else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 +- ++ case $MAKE in ++ [\\/]* | ?:[\\/]*) ++ ac_cv_path_MAKE="$MAKE" # Let the user override the test with a path. ++ ;; ++ *) ++ 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_path_MAKE="$as_dir/$ac_word$ac_exec_ext" ++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++ done ++IFS=$as_save_IFS - --fi ++ ;; ++esac ++fi ++MAKE=$ac_cv_path_MAKE ++if test -n "$MAKE"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAKE" >&5 ++$as_echo "$MAKE" >&6; } ++else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++$as_echo "no" >&6; } + fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi @@ -36135,7 +35488,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include - +- -int -main () -{ @@ -36173,6 +35526,8 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include ++ test -n "$MAKE" && break ++done -int -main () @@ -36204,20 +35559,35 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_cv_c_bigendian=yes --else ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we have GNU make" >&5 ++$as_echo_n "checking whether we have GNU make... " >&6; } ++if test "${samba_cv_gnu_make+set}" = set; then : ++ $as_echo_n "(cached) " >&6 + else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - ac_cv_c_bigendian=no --fi ++if ! $ac_cv_path_MAKE --version | head -1 | grep GNU 2>/dev/null >/dev/null ++then ++ samba_cv_gnu_make=no ++else ++ samba_cv_gnu_make=yes + fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext --else ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $samba_cv_gnu_make" >&5 ++$as_echo "$samba_cv_gnu_make" >&6; } ++if test x$samba_cv_gnu_make = xyes; then ++ true + else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - --fi +- +- ++ merged_build_possible=no + fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi @@ -36287,6 +35657,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 ++# Check for perl -fi @@ -36340,21 +35711,100 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_c_bigendian=no --else ++case "$host_os" in ++ *irix*) ++ # On IRIX, we prefer Freeware or Nekoware Perl, because the ++ # system perl is so ancient. ++ # Extract the first word of "perl", so it can be a program name with args. ++set dummy perl; ac_word=$2 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if test "${ac_cv_path_PERL+set}" = set; then : ++ $as_echo_n "(cached) " >&6 + else - $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 ++ case $PERL in ++ [\\/]* | ?:[\\/]*) ++ ac_cv_path_PERL="$PERL" # Let the user override the test with a path. ++ ;; ++ *) ++ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++as_dummy=""/usr/freeware/bin:/usr/nekoware/bin:$PATH"" ++for as_dir in $as_dummy ++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_path_PERL="$as_dir/$ac_word$ac_exec_ext" ++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++ done ++IFS=$as_save_IFS -( exit $ac_status ) -ac_cv_c_bigendian=yes --fi ++ test -z "$ac_cv_path_PERL" && ac_cv_path_PERL="""" ++ ;; ++esac + fi -rm -rf conftest.dSYM -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext --fi ++PERL=$ac_cv_path_PERL ++if test -n "$PERL"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PERL" >&5 ++$as_echo "$PERL" >&6; } ++else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++$as_echo "no" >&6; } + fi - fi --fi ++ ;; ++ *) ++ # Extract the first word of "perl", so it can be a program name with args. ++set dummy perl; ac_word=$2 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if test "${ac_cv_path_PERL+set}" = set; then : ++ $as_echo_n "(cached) " >&6 ++else ++ case $PERL in ++ [\\/]* | ?:[\\/]*) ++ ac_cv_path_PERL="$PERL" # Let the user override the test with a path. ++ ;; ++ *) ++ 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_path_PERL="$as_dir/$ac_word$ac_exec_ext" ++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++ done ++IFS=$as_save_IFS ++ ++ ;; ++esac ++fi ++PERL=$ac_cv_path_PERL ++if test -n "$PERL"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PERL" >&5 ++$as_echo "$PERL" >&6; } ++else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++$as_echo "no" >&6; } + fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_c_bigendian" >&5 -$as_echo "$ac_cv_c_bigendian" >&6; } - case $ac_cv_c_bigendian in #( @@ -36379,13 +35829,33 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - presetting ac_cv_c_bigendian=no (or yes) will help" >&2;} - { (exit 1); exit 1; }; } ;; - esac ++ ;; ++esac ++ ++if test x"$PERL" = x""; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: No version of perl was found!" >&5 ++$as_echo "$as_me: WARNING: No version of perl was found!" >&2;} ++ merged_build_possible=no ++else ++ if test x"$debug" = x"yes";then ++ PERL="$PERL -W" ++ fi ++ export PERL ++ true ++fi -{ $as_echo "$as_me:$LINENO: checking whether char is unsigned" >&5 -$as_echo_n "checking whether char is unsigned... " >&6; } -if test "${ac_cv_c_char_unsigned+set}" = set; then -- $as_echo_n "(cached) " >&6 --else ++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 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if test "${ac_cv_prog_AR+set}" = set; then : + $as_echo_n "(cached) " >&6 + else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF @@ -36398,7 +35868,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -{ -static int test_array [1 - 2 * !(((char) -1) < 0)]; -test_array [0] = 0 - +- - ; - return 0; -} @@ -36422,30 +35892,61 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_cv_c_char_unsigned=no --else ++ if test -n "$AR"; then ++ ac_cv_prog_AR="$AR" # Let the user override the test. + else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 ++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_AR="${ac_tool_prefix}ar" ++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++ done ++IFS=$as_save_IFS - ac_cv_c_char_unsigned=yes --fi - + fi +- -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext --fi + fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_c_char_unsigned" >&5 -$as_echo "$ac_cv_c_char_unsigned" >&6; } -if test $ac_cv_c_char_unsigned = yes && test "$GCC" != yes; then - cat >>confdefs.h <<\_ACEOF -#define __CHAR_UNSIGNED__ 1 -_ACEOF - --fi +- ++AR=$ac_cv_prog_AR ++if test -n "$AR"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 ++$as_echo "$AR" >&6; } ++else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++$as_echo "no" >&6; } + fi -{ $as_echo "$as_me:$LINENO: checking return type of signal handlers" >&5 -$as_echo_n "checking return type of signal handlers... " >&6; } -if test "${ac_cv_type_signal+set}" = set; then -- $as_echo_n "(cached) " >&6 --else ++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 ++{ $as_echo "$as_me:${as_lineno-$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 : + $as_echo_n "(cached) " >&6 + else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF @@ -36454,7 +35955,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -/* end confdefs.h. */ -#include -#include - +- -int -main () -{ @@ -36482,28 +35983,70 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_cv_type_signal=int --else ++ if test -n "$ac_ct_AR"; then ++ ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. + else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 ++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_ac_ct_AR="ar" ++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++ done ++IFS=$as_save_IFS - ac_cv_type_signal=void --fi - + fi +- -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext --fi + fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_signal" >&5 -$as_echo "$ac_cv_type_signal" >&6; } ++ac_ct_AR=$ac_cv_prog_ac_ct_AR ++if test -n "$ac_ct_AR"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 ++$as_echo "$ac_ct_AR" >&6; } ++else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++$as_echo "no" >&6; } ++fi -cat >>confdefs.h <<_ACEOF -#define RETSIGTYPE $ac_cv_type_signal -_ACEOF ++ if test "x$ac_ct_AR" = x; then ++ AR="" ++ else ++ case $cross_compiling:$ac_tool_warned in ++yes:) ++{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 ++$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ++ac_tool_warned=yes ;; ++esac ++ AR=$ac_ct_AR ++ fi ++else ++ AR="$ac_cv_prog_AR" ++fi -{ $as_echo "$as_me:$LINENO: checking for uid_t in sys/types.h" >&5 -$as_echo_n "checking for uid_t in sys/types.h... " >&6; } -if test "${ac_cv_type_uid_t+set}" = set; then -- $as_echo_n "(cached) " >&6 --else ++LD=ld ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 ++$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } ++if test "${ac_cv_prog_gnu_ld+set}" = set; then : + $as_echo_n "(cached) " >&6 + else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF @@ -36511,95 +36054,130 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include - +- -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "uid_t" >/dev/null 2>&1; then - ac_cv_type_uid_t=yes --else ++ # I'd rather use --version here, but apparently some GNU ld's only accept -v. ++if $LD -v 2>&1 &5; then ++ ac_cv_prog_gnu_ld=yes + else - ac_cv_type_uid_t=no -+ -+ -+ -+ -+# compile with optimization and without debugging by default, but -+# allow people to set their own preference. -+# do this here since AC_CACHE_CHECK apparently sets the CFLAGS to "-g -O2" -+# if it has no value. This prevent *very* large debug binaries from occurring -+# by default. -+if test "x$debug" = "xyes" ; then -+ CFLAGS="${CFLAGS} -g" -+fi -+if test "x$CFLAGS" = x; then -+ CFLAGS="-O" -+fi -+ -+# Check whether --enable-socket-wrapper was given. -+if test "${enable_socket_wrapper+set}" = set; then : -+ enableval=$enable_socket_wrapper; ++ ac_cv_prog_gnu_ld=no fi -rm -f conftest* - -+ -+DEFAULT_TEST_OPTIONS= -+HAVE_SOCKET_WRAPPER=no -+ -+if eval "test x$developer = xyes"; then -+ enable_socket_wrapper=yes +- fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_uid_t" >&5 -$as_echo "$ac_cv_type_uid_t" >&6; } -if test $ac_cv_type_uid_t = no; then ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_gnu_ld" >&5 ++$as_echo "$ac_cv_prog_gnu_ld" >&6; } -cat >>confdefs.h <<\_ACEOF -#define uid_t int -_ACEOF -+if eval "test x$enable_socket_wrapper = xyes"; then ++ ++if test "$ac_cv_prog_gnu_ld" = "yes"; then ++ ac_cv_gnu_ld_version=`$LD -v 2>/dev/null | head -1` ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking GNU ld release date" >&5 ++$as_echo_n "checking GNU ld release date... " >&6; } ++ ac_cv_gnu_ld_date=`echo $ac_cv_gnu_ld_version | sed -n 's,^.*\([2-9][0-9][0-9][0-9]\)[-]*\([01][0-9]\)[-]*\([0-3][0-9]\).*$,\1\2\3,p'` ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${ac_cv_gnu_ld_date}" >&5 ++$as_echo "${ac_cv_gnu_ld_date}" >&6; } ++ if test -n "$ac_cv_gnu_ld_date"; then ++ if test "$ac_cv_gnu_ld_date" -lt 20030217; then ++ ac_cv_gnu_ld_no_default_allow_shlib_undefined=yes ++ fi ++ if test "$ac_cv_gnu_ld_date" -gt 20030101; then ++ ac_cv_gnu_ld_version_script=yes ++ fi ++ else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking GNU ld release version" >&5 ++$as_echo_n "checking GNU ld release version... " >&6; } ++ ac_cv_gnu_ld_vernr=`echo $ac_cv_gnu_ld_version | sed -n 's,^[^0-9]*\([1-9][0-9]*\.[0-9][0-9]*\).*$,\1,p'` ++ ac_cv_gnu_ld_vernr_major=`echo $ac_cv_gnu_ld_vernr | cut -d '.' -f 1` ++ ac_cv_gnu_ld_vernr_minor=`echo $ac_cv_gnu_ld_vernr | cut -d '.' -f 2` ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${ac_cv_gnu_ld_vernr}" >&5 ++$as_echo "${ac_cv_gnu_ld_vernr}" >&6; } ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking GNU ld release version major" >&5 ++$as_echo_n "checking GNU ld release version major... " >&6; } ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${ac_cv_gnu_ld_vernr_major}" >&5 ++$as_echo "${ac_cv_gnu_ld_vernr_major}" >&6; } ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking GNU ld release version minor" >&5 ++$as_echo_n "checking GNU ld release version minor... " >&6; } ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${ac_cv_gnu_ld_vernr_minor}" >&5 ++$as_echo "${ac_cv_gnu_ld_vernr_minor}" >&6; } ++ if test "$ac_cv_gnu_ld_vernr_major" -lt 2 || test "$ac_cv_gnu_ld_vernr_minor" -lt 14; then ++ ac_cv_gnu_ld_no_default_allow_shlib_undefined=yes ++ fi ++ if test "$ac_cv_gnu_ld_vernr_major" -gt 2 || test "$ac_cv_gnu_ld_vernr_major" = 2 && test "$ac_cv_gnu_ld_vernr_minor" -ge 12; then ++ ac_cv_gnu_ld_version_script=yes ++ fi ++ fi ++fi -+$as_echo "#define SOCKET_WRAPPER 1" >>confdefs.h -cat >>confdefs.h <<\_ACEOF -#define gid_t int -_ACEOF -+ DEFAULT_TEST_OPTIONS=--socket-wrapper -+ HAVE_SOCKET_WRAPPER=yes -+ # this is only used for samba3 -+ SOCKET_WRAPPER_OBJS="../lib/socket_wrapper/socket_wrapper.o" ++if test "x$CC" != xcc; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC and cc understand -c and -o together" >&5 ++$as_echo_n "checking whether $CC and cc understand -c and -o together... " >&6; } ++else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether cc understands -c and -o together" >&5 ++$as_echo_n "checking whether cc understands -c and -o together... " >&6; } fi - +- -{ $as_echo "$as_me:$LINENO: checking for mode_t" >&5 -$as_echo_n "checking for mode_t... " >&6; } -if test "${ac_cv_type_mode_t+set}" = set; then -- $as_echo_n "(cached) " >&6 --else ++set dummy $CC; ac_cc=`$as_echo "$2" | ++ sed 's/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/'` ++if { as_var=ac_cv_prog_cc_${ac_cc}_c_o; eval "test \"\${$as_var+set}\" = set"; }; then : + $as_echo_n "(cached) " >&6 + else - ac_cv_type_mode_t=no -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF --/* end confdefs.h. */ ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ -$ac_includes_default --int --main () --{ ++ + int + main () + { -if (sizeof (mode_t)) - return 0; -- ; -- return 0; --} --_ACEOF ++ + ; + 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 ++# Make sure it works both with $CC and with simple cc. ++# We do the test twice because some compilers refuse to overwrite an ++# existing .o file with -o, though they will create one. ++ac_try='$CC -c conftest.$ac_ext -o conftest2.$ac_objext >&5' ++rm -f conftest2.* ++if { { 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=$? ++eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" ++$as_echo "$ac_try_echo"; } >&5 ++ (eval "$ac_try") 2>&5 + ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 @@ -36627,13 +36205,19 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -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 ++ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 ++ test $ac_status = 0; } && ++ test -f conftest2.$ac_objext && { { 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=$? ++eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" ++$as_echo "$ac_try_echo"; } >&5 ++ (eval "$ac_try") 2>&5 + ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 @@ -36646,21 +36230,18 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - +- - ac_cv_type_mode_t=yes -fi - +- -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - -+# Check whether --enable-nss-wrapper was given. -+if test "${enable_nss_wrapper+set}" = set; then : -+ enableval=$enable_nss_wrapper; - fi - +- +- +-fi +- -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_mode_t" >&5 @@ -36668,16 +36249,13 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -if test "x$ac_cv_type_mode_t" = x""yes; then - : -else - +- -cat >>confdefs.h <<_ACEOF -#define mode_t int -_ACEOF -+HAVE_NSS_WRAPPER=no - -+if eval "test x$developer = xyes"; then -+ enable_nss_wrapper=yes - fi - +- +-fi +- -{ $as_echo "$as_me:$LINENO: checking for off_t" >&5 -$as_echo_n "checking for off_t... " >&6; } -if test "${ac_cv_type_off_t+set}" = set; then @@ -36703,13 +36281,24 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -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 ++ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 ++ test $ac_status = 0; }; ++then ++ eval ac_cv_prog_cc_${ac_cc}_c_o=yes ++ if test "x$CC" != xcc; then ++ # Test first that cc exists at all. ++ if { ac_try='cc -c conftest.$ac_ext >&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_compile") 2>conftest.er1 -- ac_status=$? ++eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" ++$as_echo "$ac_try_echo"; } >&5 ++ (eval "$ac_try") 2>&5 + ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 @@ -36737,13 +36326,31 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -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 ++ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 ++ test $ac_status = 0; }; }; then ++ ac_try='cc -c conftest.$ac_ext -o conftest2.$ac_objext >&5' ++ rm -f conftest2.* ++ if { { case "(($ac_try" in ++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; ++ *) ac_try_echo=$ac_try;; ++esac ++eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" ++$as_echo "$ac_try_echo"; } >&5 ++ (eval "$ac_try") 2>&5 ++ ac_status=$? ++ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 ++ test $ac_status = 0; } && ++ test -f conftest2.$ac_objext && { { 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=$? ++eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" ++$as_echo "$ac_try_echo"; } >&5 ++ (eval "$ac_try") 2>&5 + ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 @@ -36753,27 +36360,40 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - : --else ++ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 ++ test $ac_status = 0; }; ++ then ++ # cc works too. ++ : ++ else ++ # cc exists but doesn't like -o. ++ eval ac_cv_prog_cc_${ac_cc}_c_o=no ++ fi ++ fi ++ fi + else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 -+if eval "test x$enable_nss_wrapper = xyes"; then -+ -+$as_echo "#define NSS_WRAPPER 1" >>confdefs.h -+ -+ HAVE_NSS_WRAPPER=yes - +- - ac_cv_type_off_t=yes -+ # this is only used for samba3 -+ NSS_WRAPPER_OBJS="../lib/nss_wrapper/nss_wrapper.o" ++ eval ac_cv_prog_cc_${ac_cc}_c_o=no fi ++rm -f core conftest* -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext --else ++fi ++if eval test \$ac_cv_prog_cc_${ac_cc}_c_o = yes; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 ++$as_echo "yes" >&6; } + else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++$as_echo "no" >&6; } ++$as_echo "#define NO_MINUS_C_MINUS_O 1" >>confdefs.h --fi + fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi @@ -36781,19 +36401,26 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -$as_echo "$ac_cv_type_off_t" >&6; } -if test "x$ac_cv_type_off_t" = x""yes; then - : --else - ++if eval "test \"`echo '$ac_cv_prog_cc_'${ac_cc}_c_o`\" = no"; then ++ BROKEN_CC= + else +- -cat >>confdefs.h <<_ACEOF -#define off_t long int -_ACEOF - --fi +- ++ BROKEN_CC=# + fi -{ $as_echo "$as_me:$LINENO: checking for size_t" >&5 -$as_echo_n "checking for size_t... " >&6; } -if test "${ac_cv_type_size_t+set}" = set; then -- $as_echo_n "(cached) " >&6 --else ++ ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking that the C compiler understands -Werror" >&5 ++$as_echo_n "checking that the C compiler understands -Werror... " >&6; } ++if test "${samba_cv_HAVE_Werror+set}" = set; then : + $as_echo_n "(cached) " >&6 + else - ac_cv_type_size_t=no -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ @@ -36867,32 +36494,44 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 -+SWAT_SBIN_TARGETS='bin/swat$(EXEEXT)' -+SWAT_INSTALL_TARGETS=installswat -+ -+# Check whether --enable-swat was given. -+if test "${enable_swat+set}" = set; then : -+ enableval=$enable_swat; -+ case "$enable_swat" in -+ no) -+ SWAT_SBIN_TARGETS='' -+ SWAT_INSTALL_TARGETS='' -+ ;; -+ esac - ac_cv_type_size_t=yes - fi +-fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext --else ++ old_CFLAGS="$CFLAGS"; ++ CFLAGS="$CFLAGS -Werror"; ++ export CFLAGS; ++ old_CPPFLAGS="$CPPFLAGS"; ++ CPPFLAGS="$CPPFLAGS"; ++ export CPPFLAGS; ++ old_LDFLAGS="$LDFLAGS"; ++ LDFLAGS="$LDFLAGS"; ++ export LDFLAGS; ++ if test "$cross_compiling" = yes; then : ++ samba_cv_HAVE_Werror=cross + else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 +- ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ - --fi - ++ int main(void) ++ { ++ return 0; ++ } ++_ACEOF ++if ac_fn_c_try_run "$LINENO"; then : ++ samba_cv_HAVE_Werror=yes ++else ++ samba_cv_HAVE_Werror=no + fi +- -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext --fi ++rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ ++ conftest.$ac_objext conftest.beam conftest.$ac_ext + fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_size_t" >&5 -$as_echo "$ac_cv_type_size_t" >&6; } -if test "x$ac_cv_type_size_t" = x""yes; then @@ -36902,22 +36541,26 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -cat >>confdefs.h <<_ACEOF -#define size_t unsigned int -_ACEOF ++ CFLAGS="$old_CFLAGS"; ++ old_CFLAGS=""; ++ export CFLAGS; ++ CPPFLAGS="$old_CPPFLAGS"; ++ old_CPPFLAGS=""; ++ export CPPFLAGS; ++ LDFLAGS="$old_LDFLAGS"; ++ old_LDFLAGS=""; ++ export LDFLAGS; --fi - + fi +- -{ $as_echo "$as_me:$LINENO: checking for pid_t" >&5 -$as_echo_n "checking for pid_t... " >&6; } -if test "${ac_cv_type_pid_t+set}" = set; then -+# Probe the gcc version for extra CFLAGS. We always stash these in -+# DEVELOPER_CFLAGS, so that you can turn them on and off with a simple -+# Makefile edit, avoiding the need to re-run configure. -+if test x"$ac_cv_c_compiler_gnu" = x"yes" ; then -+ DEVELOPER_CFLAGS="-g -Wall -Wshadow -Wpointer-arith -Wcast-align -Wwrite-strings -DDEBUG_PASSWORD -DDEVELOPER" -+ # Add -Wdeclaration-after-statement if compiler supports it -+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking that the C compiler understands -Wdeclaration-after-statement" >&5 -+$as_echo_n "checking that the C compiler understands -Wdeclaration-after-statement... " >&6; } -+if test "${samba_cv_HAVE_Wdeclaration_after_statement+set}" = set; then : - $as_echo_n "(cached) " >&6 +- $as_echo_n "(cached) " >&6 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $samba_cv_HAVE_Werror" >&5 ++$as_echo "$samba_cv_HAVE_Werror" >&6; } ++if test x"$samba_cv_HAVE_Werror" = x"yes"; then ++ Werror_FLAGS="-Werror" else - ac_cv_type_pid_t=no -cat >conftest.$ac_ext <<_ACEOF @@ -36959,22 +36602,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -+ -+ -+ old_CFLAGS="$CFLAGS"; -+ CFLAGS="-Wdeclaration-after-statement"; -+ export CFLAGS; -+ old_CPPFLAGS="$CPPFLAGS"; -+ CPPFLAGS="$CPPFLAGS"; -+ export CPPFLAGS; -+ old_LDFLAGS="$LDFLAGS"; -+ LDFLAGS="$LDFLAGS"; -+ export LDFLAGS; -+ if test "$cross_compiling" = yes; then : -+ samba_cv_HAVE_Wdeclaration_after_statement=cross -+else -+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ +-/* end confdefs.h. */ -$ac_includes_default -int -main () @@ -36984,12 +36612,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - ; - return 0; -} -+ -+ int main(void) -+ { -+ return 0; -+ } - _ACEOF +-_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in @@ -37009,23 +36632,60 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - : -+if ac_fn_c_try_run "$LINENO"; then : -+ samba_cv_HAVE_Wdeclaration_after_statement=yes ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking that the C compiler understands -w2" >&5 ++$as_echo_n "checking that the C compiler understands -w2... " >&6; } ++if test "${samba_cv_HAVE_w2+set}" = set; then : ++ $as_echo_n "(cached) " >&6 + else +- $as_echo "$as_me: failed program was:" >&5 +-sed 's/^/| /' conftest.$ac_ext >&5 + +- ac_cv_type_pid_t=yes +-fi + +-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++ old_CFLAGS="$CFLAGS"; ++ CFLAGS="$CFLAGS -w2"; ++ export CFLAGS; ++ old_CPPFLAGS="$CPPFLAGS"; ++ CPPFLAGS="$CPPFLAGS"; ++ export CPPFLAGS; ++ old_LDFLAGS="$LDFLAGS"; ++ LDFLAGS="$LDFLAGS"; ++ export LDFLAGS; ++ if test "$cross_compiling" = yes; then : ++ samba_cv_HAVE_w2=cross else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -- ac_cv_type_pid_t=yes -+ samba_cv_HAVE_Wdeclaration_after_statement=no -+fi ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ + ++ int main(void) ++ { ++ return 0; ++ } ++_ACEOF ++if ac_fn_c_try_run "$LINENO"; then : ++ samba_cv_HAVE_w2=yes ++else ++ samba_cv_HAVE_w2=no + fi +- +-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext fi - --rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +-{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_pid_t" >&5 +-$as_echo "$ac_cv_type_pid_t" >&6; } +-if test "x$ac_cv_type_pid_t" = x""yes; then +- : -else -- $as_echo "$as_me: failed program was:" >&5 --sed 's/^/| /' conftest.$ac_ext >&5 + +-cat >>confdefs.h <<_ACEOF +-#define pid_t int +-_ACEOF + CFLAGS="$old_CFLAGS"; + old_CFLAGS=""; + export CFLAGS; @@ -37036,57 +36696,23 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure + old_LDFLAGS=""; + export LDFLAGS; - fi -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $samba_cv_HAVE_Wdeclaration_after_statement" >&5 -+$as_echo "$samba_cv_HAVE_Wdeclaration_after_statement" >&6; } - --rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext --fi --{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_pid_t" >&5 --$as_echo "$ac_cv_type_pid_t" >&6; } --if test "x$ac_cv_type_pid_t" = x""yes; then -- : --else -+ if test x"$samba_cv_HAVE_Wdeclaration_after_statement" = x"yes"; then -+ DEVELOPER_CFLAGS="${DEVELOPER_CFLAGS} -Wdeclaration-after-statement" -+ fi - --cat >>confdefs.h <<_ACEOF --#define pid_t int --_ACEOF -+ #-Werror-implicit-function-declaration -+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking that the C compiler understands -Werror-implicit-function-declaration" >&5 -+$as_echo_n "checking that the C compiler understands -Werror-implicit-function-declaration... " >&6; } -+if test "${samba_cv_HAVE_Werror_implicit_function_declaration+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else - --fi - +- -{ $as_echo "$as_me:$LINENO: checking for struct stat.st_rdev" >&5 -$as_echo_n "checking for struct stat.st_rdev... " >&6; } -if test "${ac_cv_member_struct_stat_st_rdev+set}" = set; then - $as_echo_n "(cached) " >&6 -+ old_CFLAGS="$CFLAGS"; -+ CFLAGS="-Werror-implicit-function-declaration"; -+ export CFLAGS; -+ old_CPPFLAGS="$CPPFLAGS"; -+ CPPFLAGS="$CPPFLAGS"; -+ export CPPFLAGS; -+ old_LDFLAGS="$LDFLAGS"; -+ LDFLAGS="$LDFLAGS"; -+ export LDFLAGS; -+ if test "$cross_compiling" = yes; then : -+ samba_cv_HAVE_Werror_implicit_function_declaration=cross ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $samba_cv_HAVE_w2" >&5 ++$as_echo "$samba_cv_HAVE_w2" >&6; } ++if test x"$samba_cv_HAVE_w2" = x"yes"; then ++ Werror_FLAGS="-w2" else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ +-/* end confdefs.h. */ -$ac_includes_default -int -main () @@ -37117,7 +36743,11 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_cv_member_struct_stat_st_rdev=yes --else ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking that the C compiler understands -errwarn" >&5 ++$as_echo_n "checking that the C compiler understands -errwarn... " >&6; } ++if test "${samba_cv_HAVE_errwarn+set}" = set; then : ++ $as_echo_n "(cached) " >&6 + else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 @@ -37126,7 +36756,21 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF --/* end confdefs.h. */ ++ ++ old_CFLAGS="$CFLAGS"; ++ CFLAGS="$CFLAGS -errwarn=%all"; ++ export CFLAGS; ++ old_CPPFLAGS="$CPPFLAGS"; ++ CPPFLAGS="$CPPFLAGS"; ++ export CPPFLAGS; ++ old_LDFLAGS="$LDFLAGS"; ++ LDFLAGS="$LDFLAGS"; ++ export LDFLAGS; ++ if test "$cross_compiling" = yes; then : ++ samba_cv_HAVE_errwarn=cross ++else ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ -$ac_includes_default -int -main () @@ -37137,10 +36781,11 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - ; - return 0; -} -+ int main(void) -+ { -+ return 0; -+ } ++ ++ int main(void) ++ { ++ return 0; ++ } _ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" @@ -37162,11 +36807,11 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - } && test -s conftest.$ac_objext; then - ac_cv_member_struct_stat_st_rdev=yes +if ac_fn_c_try_run "$LINENO"; then : -+ samba_cv_HAVE_Werror_implicit_function_declaration=yes ++ samba_cv_HAVE_errwarn=yes else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 -+ samba_cv_HAVE_Werror_implicit_function_declaration=no ++ samba_cv_HAVE_errwarn=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext @@ -37181,32 +36826,19 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure + LDFLAGS="$old_LDFLAGS"; + old_LDFLAGS=""; + export LDFLAGS; -+ - ac_cv_member_struct_stat_st_rdev=no fi -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $samba_cv_HAVE_Werror_implicit_function_declaration" >&5 -+$as_echo "$samba_cv_HAVE_Werror_implicit_function_declaration" >&6; } -+ if test x"$samba_cv_HAVE_Werror_implicit_function_declaration" = x"yes"; then -+ DEVELOPER_CFLAGS="${DEVELOPER_CFLAGS} -Werror-implicit-function-declaration" -+ fi - +- -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -+ # krb5developer is like developer, except we don't get -+ # -Wstrict-prototypes. -+ if test x"$krb5_developer" != x"$yes" ; then -+ DEVELOPER_CFLAGS="$DEVELOPER_CFLAGS -Wstrict-prototypes" -+ fi -+ -+ if test x"$picky_developer" = x"yes"; then -+ DEVELOPER_CFLAGS="$DEVELOPER_CFLAGS -Werror" -+ fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $samba_cv_HAVE_errwarn" >&5 ++$as_echo "$samba_cv_HAVE_errwarn" >&6; } ++if test x"$samba_cv_HAVE_errwarn" = x"yes"; then ++ Werror_FLAGS="-errwarn=%all" ++fi fi - +- -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -+# Check whether --enable-dmalloc was given. -+if test "${enable_dmalloc+set}" = set; then : -+ enableval=$enable_dmalloc; fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_member_struct_stat_st_rdev" >&5 -$as_echo "$ac_cv_member_struct_stat_st_rdev" >&6; } @@ -37215,32 +36847,65 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_STAT_ST_RDEV 1 -_ACEOF - -+if test "x$enable_dmalloc" = xyes -+then ++############################################ ++# check if the compiler can handle negative enum values ++# and don't truncate the values to INT_MAX ++# a runtime test is needed here + -+$as_echo "#define ENABLE_DMALLOC 1" >>confdefs.h ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking that the C compiler understands negative enum values" >&5 ++$as_echo_n "checking that the C compiler understands negative enum values... " >&6; } ++if test "${samba_cv_CC_NEGATIVE_ENUM_VALUES+set}" = set; then : ++ $as_echo_n "(cached) " >&6 ++else ++ ++ if test "$cross_compiling" = yes; then : ++ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 ++$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} ++as_fn_error "cannot run test program while cross compiling ++See \`config.log' for more details." "$LINENO" 5; } ++else ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++ ++ #include ++ enum negative_values { NEGATIVE_VALUE = 0xFFFFFFFF }; ++ int main(void) { ++ enum negative_values v1 = NEGATIVE_VALUE; ++ unsigned v2 = NEGATIVE_VALUE; ++ ++ if (v1 != 0xFFFFFFFF) { ++ printf("%u != 0xFFFFFFFF\n", v1); ++ return 1; ++ } ++ if (v2 != 0xFFFFFFFF) { ++ printf("%u != 0xFFFFFFFF\n", v2); ++ return 1; ++ } + ++ return 0; ++ } -cat >>confdefs.h <<\_ACEOF -#define HAVE_ST_RDEV 1 --_ACEOF + _ACEOF ++if ac_fn_c_try_run "$LINENO"; then : ++ samba_cv_CC_NEGATIVE_ENUM_VALUES=yes ++else ++ samba_cv__CC_NEGATIVE_ENUM_VALUES=no ++fi ++rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ ++ conftest.$ac_objext conftest.beam conftest.$ac_ext ++fi -+$as_echo "#define DMALLOC_FUNC_CHECK 1" >>confdefs.h -+ -+ LIBS="$LIBS -ldmalloc" fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $samba_cv_CC_NEGATIVE_ENUM_VALUES" >&5 ++$as_echo "$samba_cv_CC_NEGATIVE_ENUM_VALUES" >&6; } ++if test x"$samba_cv_CC_NEGATIVE_ENUM_VALUES" != x"yes"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using --uint-enums for pidl" >&5 ++$as_echo "$as_me: WARNING: using --uint-enums for pidl" >&2;} ++ PIDL_ARGS="$PIDL_ARGS --uint-enums" ++fi -+################################################# -+# check for a shared memory profiling support -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to use profiling" >&5 -+$as_echo_n "checking whether to use profiling... " >&6; } -+ -+# Check whether --with-profiling-data was given. -+if test "${with_profiling_data+set}" = set; then : -+ withval=$with_profiling_data; case "$withval" in -+ yes) -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -+$as_echo "yes" >&6; } -{ $as_echo "$as_me:$LINENO: checking for d_off in dirent" >&5 -$as_echo_n "checking for d_off in dirent... " >&6; } @@ -37253,19 +36918,30 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -+$as_echo "#define WITH_PROFILE 1" >>confdefs.h -#include -#include -#include --int --main () --{ ++saved_CFLAGS="$CFLAGS"; ++c99_init=no ++if test x"$c99_init" = x"no"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for C99 designated initializers" >&5 ++$as_echo_n "checking for C99 designated initializers... " >&6; } ++ CFLAGS="$saved_CFLAGS"; ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++#include + int + main () + { -struct dirent d; d.d_off; -- ; -- return 0; --} --_ACEOF ++ struct foo {int x;char y;}; ++ struct foo bar = { .y = 'X', .x = 1 }; ++ + ; + return 0; + } + _ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in @@ -37285,65 +36961,61 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_cv_dirent_d_off=yes -+ samba_cv_WITH_PROFILE=yes -+ ;; -+ *) -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -+$as_echo "no" >&6; } -+ samba_cv_WITH_PROFILE=no -+ ;; -+ esac ++if ac_fn_c_try_compile "$LINENO"; then : ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 ++$as_echo "yes" >&6; }; c99_init=yes else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 +- +- ac_cv_dirent_d_off=no + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } - -- ac_cv_dirent_d_off=no fi - --rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext --fi +- + rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_dirent_d_off" >&5 -$as_echo "$ac_cv_dirent_d_off" >&6; } -if test $ac_cv_dirent_d_off = yes; then - +- -cat >>confdefs.h <<\_ACEOF -#define HAVE_DIRENT_D_OFF 1 -_ACEOF -+merged_build_possible=yes - +- -fi - +- -{ $as_echo "$as_me:$LINENO: checking for ssize_t" >&5 -$as_echo_n "checking for ssize_t... " >&6; } -if test "${ac_cv_type_ssize_t+set}" = set; then -+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 -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -+$as_echo_n "checking for $ac_word... " >&6; } -+if test "${ac_cv_prog_AWK+set}" = set; then : - $as_echo_n "(cached) " >&6 - else +- $as_echo_n "(cached) " >&6 +-else - ac_cv_type_ssize_t=no -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF --/* end confdefs.h. */ ++if test x"$c99_init" = x"no"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for C99 designated initializers with -AC99" >&5 ++$as_echo_n "checking for C99 designated initializers with -AC99... " >&6; } ++ CFLAGS="$saved_CFLAGS -AC99"; ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ -$ac_includes_default --int --main () --{ ++#include + int + main () + { -if (sizeof (ssize_t)) - return 0; -- ; -- return 0; --} --_ACEOF ++ struct foo {int x;char y;}; ++ struct foo bar = { .y = 'X', .x = 1 }; ++ + ; + return 0; + } + _ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in @@ -37367,17 +37039,35 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF --/* end confdefs.h. */ ++if ac_fn_c_try_compile "$LINENO"; then : ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 ++$as_echo "yes" >&6; }; c99_init=yes ++else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++fi ++if test x"$c99_init" = x"no"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for C99 designated initializers with -qlanglvl=extc99" >&5 ++$as_echo_n "checking for C99 designated initializers with -qlanglvl=extc99... " >&6; } ++ CFLAGS="$saved_CFLAGS -qlanglvl=extc99"; ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ -$ac_includes_default --int --main () --{ ++#include + int + main () + { -if (sizeof ((ssize_t))) - return 0; -- ; -- return 0; --} --_ACEOF ++ struct foo {int x;char y;}; ++ struct foo bar = { .y = 'X', .x = 1 }; ++ + ; + return 0; + } + _ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in @@ -37397,87 +37087,17 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - : -+ if test -n "$AWK"; then -+ ac_cv_prog_AWK="$AWK" # 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_AWK="$ac_prog" -+ $as_echo "$as_me:${as_lineno-$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 -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 -+$as_echo "$AWK" >&6; } -+else -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -+$as_echo "no" >&6; } -+fi -+ -+ -+ test -n "$AWK" && break -+done -+ -+# Check for GNU make -+ -+ -+ -+ -+ -+ -+for ac_prog in gmake make -+do -+ # Extract the first word of "$ac_prog", so it can be a program name with args. -+set dummy $ac_prog; ac_word=$2 -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -+$as_echo_n "checking for $ac_word... " >&6; } -+if test "${ac_cv_path_MAKE+set}" = set; then : -+ $as_echo_n "(cached) " >&6 - else +-else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 -+ case $MAKE in -+ [\\/]* | ?:[\\/]*) -+ ac_cv_path_MAKE="$MAKE" # Let the user override the test with a path. -+ ;; -+ *) -+ 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_path_MAKE="$as_dir/$ac_word$ac_exec_ext" -+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 -+ break 2 -+ fi -+done -+ done -+IFS=$as_save_IFS - +- - ac_cv_type_ssize_t=yes -+ ;; -+esac - fi +-fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -+MAKE=$ac_cv_path_MAKE -+if test -n "$MAKE"; then -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAKE" >&5 -+$as_echo "$MAKE" >&6; } ++if ac_fn_c_try_compile "$LINENO"; then : ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 ++$as_echo "yes" >&6; }; c99_init=yes else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 @@ -37486,48 +37106,52 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi - --rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext --fi +- + rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_ssize_t" >&5 -$as_echo "$ac_cv_type_ssize_t" >&6; } -if test "x$ac_cv_type_ssize_t" = x""yes; then - : -else - +- -cat >>confdefs.h <<_ACEOF -#define ssize_t int -_ACEOF -+ test -n "$MAKE" && break -+done - +- -fi - +- -{ $as_echo "$as_me:$LINENO: checking for wchar_t" >&5 -$as_echo_n "checking for wchar_t... " >&6; } -if test "${ac_cv_type_wchar_t+set}" = set; then -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we have GNU make" >&5 -+$as_echo_n "checking whether we have GNU make... " >&6; } -+if test "${samba_cv_gnu_make+set}" = set; then : - $as_echo_n "(cached) " >&6 - else +- $as_echo_n "(cached) " >&6 +-else - ac_cv_type_wchar_t=no -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF --/* end confdefs.h. */ ++if test x"$c99_init" = x"no"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for C99 designated initializers with -qlanglvl=stdc99" >&5 ++$as_echo_n "checking for C99 designated initializers with -qlanglvl=stdc99... " >&6; } ++ CFLAGS="$saved_CFLAGS -qlanglvl=stdc99"; ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ -$ac_includes_default --int --main () --{ ++#include + int + main () + { -if (sizeof (wchar_t)) - return 0; -- ; -- return 0; --} --_ACEOF ++ struct foo {int x;char y;}; ++ struct foo bar = { .y = 'X', .x = 1 }; ++ + ; + return 0; + } + _ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in @@ -37551,17 +37175,35 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF --/* end confdefs.h. */ ++if ac_fn_c_try_compile "$LINENO"; then : ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 ++$as_echo "yes" >&6; }; c99_init=yes ++else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++fi ++if test x"$c99_init" = x"no"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for C99 designated initializers with -c99" >&5 ++$as_echo_n "checking for C99 designated initializers with -c99... " >&6; } ++ CFLAGS="$saved_CFLAGS -c99" ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ -$ac_includes_default --int --main () --{ ++#include + int + main () + { -if (sizeof ((wchar_t))) - return 0; -- ; -- return 0; --} --_ACEOF ++ struct foo {int x;char y;}; ++ struct foo bar = { .y = 'X', .x = 1 }; ++ + ; + return 0; + } + _ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in @@ -37581,36 +37223,35 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - 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_cv_type_wchar_t=yes -+if ! $ac_cv_path_MAKE --version | head -1 | grep GNU 2>/dev/null >/dev/null -+then -+ samba_cv_gnu_make=no -+else -+ samba_cv_gnu_make=yes - fi - --rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -+fi -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $samba_cv_gnu_make" >&5 -+$as_echo "$samba_cv_gnu_make" >&6; } -+if test x$samba_cv_gnu_make = xyes; then -+ true ++if ac_fn_c_try_compile "$LINENO"; then : ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 ++$as_echo "yes" >&6; }; c99_init=yes else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 -+ merged_build_possible=no -+fi - - --fi -+# Check for perl +- +- ac_cv_type_wchar_t=yes ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++$as_echo "no" >&6; } + fi +- + rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +-else +- $as_echo "$as_me: failed program was:" >&5 +-sed 's/^/| /' conftest.$ac_ext >&5 +- +- + fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext --fi ++if test "`uname`" = "HP-UX"; then ++ if test "$ac_cv_c_compiler_gnu" = no; then ++ # special override for broken HP-UX compiler - I can't find a way to test ++ # this properly (its a compiler bug) ++ CFLAGS="$CFLAGS -AC99"; ++ c99_init=yes; ++ fi + fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_wchar_t" >&5 -$as_echo "$ac_cv_type_wchar_t" >&6; } -if test "x$ac_cv_type_wchar_t" = x""yes; then @@ -37620,142 +37261,114 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -cat >>confdefs.h <<_ACEOF -#define wchar_t unsigned short -_ACEOF ++if test x"$c99_init" = x"yes"; then ++ saved_CFLAGS="" --fi ++else ++ CFLAGS="$saved_CFLAGS" ++ saved_CFLAGS="" ++ as_fn_error "c99 structure initializer are not supported" "$LINENO" 5 + fi -############################################ -# for cups support we need libcups, and a handful of header files -+case "$host_os" in -+ *irix*) -+ # On IRIX, we prefer Freeware or Nekoware Perl, because the -+ # system perl is so ancient. -+ # Extract the first word of "perl", so it can be a program name with args. -+set dummy perl; ac_word=$2 -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -+$as_echo_n "checking for $ac_word... " >&6; } -+if test "${ac_cv_path_PERL+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ case $PERL in -+ [\\/]* | ?:[\\/]*) -+ ac_cv_path_PERL="$PERL" # Let the user override the test with a path. -+ ;; -+ *) -+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -+as_dummy=""/usr/freeware/bin:/usr/nekoware/bin:$PATH"" -+for as_dir in $as_dummy -+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_path_PERL="$as_dir/$ac_word$ac_exec_ext" -+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 -+ break 2 -+ fi -+done -+ done -+IFS=$as_save_IFS ++UNAME_S=`(uname -s) 2>/dev/null` || UNAME_S="unknown" ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking uname -s" >&5 ++$as_echo_n "checking uname -s... " >&6; } ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${UNAME_S}" >&5 ++$as_echo "${UNAME_S}" >&6; } -# Check whether --enable-cups was given. -if test "${enable_cups+set}" = set; then - enableval=$enable_cups; -+ test -z "$ac_cv_path_PERL" && ac_cv_path_PERL="""" -+ ;; -+esac -+fi -+PERL=$ac_cv_path_PERL -+if test -n "$PERL"; then -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PERL" >&5 -+$as_echo "$PERL" >&6; } -+else -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -+$as_echo "no" >&6; } - fi +-fi ++UNAME_R=`(uname -r) 2>/dev/null` || UNAME_R="unknown" ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking uname -r" >&5 ++$as_echo_n "checking uname -r... " >&6; } ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${UNAME_R}" >&5 ++$as_echo "${UNAME_R}" >&6; } ++UNAME_M=`(uname -m) 2>/dev/null` || UNAME_M="unknown" ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking uname -m" >&5 ++$as_echo_n "checking uname -m... " >&6; } ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${UNAME_M}" >&5 ++$as_echo "${UNAME_M}" >&6; } -if test x$enable_cups != xno; then - # Extract the first word of "cups-config", so it can be a program name with args. -set dummy cups-config; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 -+ ;; -+ *) -+ # Extract the first word of "perl", so it can be a program name with args. -+set dummy perl; ac_word=$2 -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 - $as_echo_n "checking for $ac_word... " >&6; } +-$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_CUPS_CONFIG+set}" = set; then -+if test "${ac_cv_path_PERL+set}" = set; then : - $as_echo_n "(cached) " >&6 - else +- $as_echo_n "(cached) " >&6 +-else - case $CUPS_CONFIG in -+ case $PERL in - [\\/]* | ?:[\\/]*) +- [\\/]* | ?:[\\/]*) - ac_cv_path_CUPS_CONFIG="$CUPS_CONFIG" # Let the user override the test with a path. -+ ac_cv_path_PERL="$PERL" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -@@ -37361,2076 +7444,1344 @@ - do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. +- ;; +- *) +- 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 -+ 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 +- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_path_CUPS_CONFIG="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 -+ ac_cv_path_PERL="$as_dir/$ac_word$ac_exec_ext" -+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi - done +- break 2 +- fi -done -+ done - IFS=$as_save_IFS +-done +-IFS=$as_save_IFS ++UNAME_P=`(uname -p) 2>/dev/null` || UNAME_P="unknown" ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking uname -p" >&5 ++$as_echo_n "checking uname -p... " >&6; } ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${UNAME_P}" >&5 ++$as_echo "${UNAME_P}" >&6; } - ;; +- ;; ++UNAME_I=`(uname -i) 2>/dev/null` || UNAME_I="unknown" ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking uname -i" >&5 ++$as_echo_n "checking uname -i... " >&6; } ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${UNAME_I}" >&5 ++$as_echo "${UNAME_I}" >&6; } ++ ++ case "$host_os" in ++ *irix6*) ++ #TODO add to libreplace ++ if test x"$ac_cv_c_compiler_gnu" != x"yes" ; then ++ CFLAGS="$CFLAGS -diag_error 1035" ++ CFLAGS="$CFLAGS -woff 1209,1174,3201" ++ fi ++ ;; esac - fi +-fi -CUPS_CONFIG=$ac_cv_path_CUPS_CONFIG -if test -n "$CUPS_CONFIG"; then - { $as_echo "$as_me:$LINENO: result: $CUPS_CONFIG" >&5 -$as_echo "$CUPS_CONFIG" >&6; } -+PERL=$ac_cv_path_PERL -+if test -n "$PERL"; then -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PERL" >&5 -+$as_echo "$PERL" >&6; } - else +-else - { $as_echo "$as_me:$LINENO: result: no" >&5 -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 - $as_echo "no" >&6; } - fi +-$as_echo "no" >&6; } +-fi ++DYNEXP= -+ ;; -+esac ++LDSHFLAGS_Z_DEFS= - if test "x$CUPS_CONFIG" != x; then -- ++LDSHFLAGS_Z_NODEFS= + - ac_save_CFLAGS=$CFLAGS - ac_save_LDFLAGS=$LDFLAGS - ac_save_PRINT_LIBS=$PRINT_LIBS - CFLAGS="$CFLAGS `$CUPS_CONFIG --cflags`" - LDFLAGS="$LDFLAGS `$CUPS_CONFIG --ldflags`" -- PRINT_LIBS="$PRINT_LIBS `$CUPS_CONFIG --libs`" -+if test x"$PERL" = x""; then -+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: No version of perl was found!" >&5 -+$as_echo "$as_me: WARNING: No version of perl was found!" >&2;} -+ merged_build_possible=no -+else -+ if test x"$debug" = x"yes";then -+ PERL="$PERL -W" -+ fi -+ export PERL -+ true -+fi +- PRINT_LIBS="$PRINT_LIBS -lcups" ++default_static_modules="pdb_smbpasswd pdb_tdbsam pdb_wbc_sam rpc_lsarpc rpc_samr rpc_winreg rpc_initshutdown rpc_dssetup rpc_wkssvc rpc_svcctl rpc_ntsvcs rpc_netlogon rpc_netdfs rpc_srvsvc rpc_spoolss rpc_eventlog auth_sam auth_unix auth_winbind auth_wbc auth_server auth_domain auth_builtin auth_netlogond vfs_default nss_info_template" -for ac_header in cups/cups.h cups/language.h -do @@ -37764,19 +37377,13 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - { $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 -+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 -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -+$as_echo_n "checking for $ac_word... " >&6; } -+if test "${ac_cv_prog_AR+set}" = set; then : - $as_echo_n "(cached) " >&6 +- $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 +-else - # Is the header compilable? -{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5 -$as_echo_n "checking $ac_header usability... " >&6; } @@ -37808,33 +37415,35 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_header_compiler=yes -+ if test -n "$AR"; then -+ ac_cv_prog_AR="$AR" # Let the user override the test. - else +-else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 -+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_AR="${ac_tool_prefix}ar" -+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 -+ break 2 -+ fi -+done -+ done -+IFS=$as_save_IFS ++default_shared_modules="vfs_recycle vfs_audit vfs_extd_audit vfs_full_audit vfs_netatalk vfs_fake_perms vfs_default_quota vfs_readonly vfs_cap vfs_expand_msdfs vfs_shadow_copy vfs_shadow_copy2 charset_CP850 charset_CP437 auth_script vfs_readahead vfs_xattr_tdb vfs_streams_xattr vfs_streams_depot vfs_acl_xattr vfs_acl_tdb vfs_smb_traffic_analyzer vfs_preopen vfs_catia vfs_scannedonly" - ac_header_compiler=no ++if test "x$developer" = xyes; then ++ default_static_modules="$default_static_modules rpc_rpcecho pdb_ads" ++ default_shared_modules="$default_shared_modules charset_weird perfcount_test" fi -- + -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; } -- ++# ++# Config CPPFLAG settings for strange OS's that must be set ++# before other tests. Do NOT invoke AC_CHECK_HEADERS within this ++# case statement; its first reference must be unconditional. ++# ++case "$host_os" in ++ *hpux*) ++# ++# Defines needed for HPUX support. ++# HPUX has bigcrypt but (sometimes?) doesn't use it for ++# password hashing - hence the USE_BOTH_CRYPT_CALLS define. ++# ++ case `uname -r` in ++ *9*|*10*|*11) + -# Is the header present? -{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5 -$as_echo_n "checking $ac_header presence... " >&6; } @@ -37864,23 +37473,27 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - test ! -s conftest.err - }; then - ac_header_preproc=yes -+fi -+AR=$ac_cv_prog_AR -+if test -n "$AR"; then -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 -+$as_echo "$AR" >&6; } - else +-else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 -- ++$as_echo "#define USE_BOTH_CRYPT_CALLS 1" >>confdefs.h + - ac_header_preproc=no -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -+$as_echo "no" >&6; } - fi +-fi ++ ;; ++ esac ++ ;; -rm -f conftest.err conftest.$ac_ext -{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -$as_echo "$ac_header_preproc" >&6; } ++# ++# CRAY Unicos has broken const handling ++ *unicos*) ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: disabling const" >&5 ++$as_echo "disabling const" >&6; } ++ CPPFLAGS="$CPPFLAGS -Dconst=" ++ ;; -# So? What about this header? -case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in @@ -37915,97 +37528,266 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -{ $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 -+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 -+{ $as_echo "$as_me:${as_lineno-$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 : - $as_echo_n "(cached) " >&6 - else +- $as_echo_n "(cached) " >&6 +-else - eval "$as_ac_Header=\$ac_header_preproc" -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; } -+ if test -n "$ac_ct_AR"; then -+ ac_cv_prog_ac_ct_AR="$ac_ct_AR" # 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_ac_ct_AR="ar" -+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 -+ break 2 -+ fi -+done -+ done -+IFS=$as_save_IFS ++# ++# AIX4.x doesn't even admit to having large ++# files *at all* unless the -D_LARGE_FILE or -D_LARGE_FILE_API flags are set. ++# ++ *aix4*) ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: enabling large file support" >&5 ++$as_echo "enabling large file support" >&6; } ++ CPPFLAGS="$CPPFLAGS -D_LARGE_FILES" - fi +-fi -as_val=`eval 'as_val=${'$as_ac_Header'} - $as_echo "$as_val"'` - if test "x$as_val" = x""yes; then - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF -- -+fi -+ac_ct_AR=$ac_cv_prog_ac_ct_AR -+if test -n "$ac_ct_AR"; then -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 -+$as_echo "$ac_ct_AR" >&6; } -+else -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -+$as_echo "no" >&6; } - fi ++$as_echo "#define _LARGE_FILES 1" >>confdefs.h + +-fi ++ ;; ++# ++# Defines needed for Solaris 2.6/2.7 aka 7.0 to make it admit ++# to the existance of large files.. ++# Note that -D_LARGEFILE64_SOURCE is different from the Sun ++# recommendations on large file support, however it makes the ++# compile work using gcc 2.7 and 2.8, whereas using the Sun ++# recommendation makes the compile fail on gcc2.7. JRA. ++# ++# Solaris uses SYSV printing. Make sure to set that here. --jerry ++# ++ *solaris*) -done -+ if test "x$ac_ct_AR" = x; then -+ AR="" -+ else -+ case $cross_compiling:$ac_tool_warned in -+yes:) -+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -+ac_tool_warned=yes ;; -+esac -+ AR=$ac_ct_AR -+ fi -+else -+ AR="$ac_cv_prog_AR" -+fi ++$as_echo "#define SYSV 1" >>confdefs.h - if test x"$ac_cv_header_cups_cups_h" = xyes -a \ - x"$ac_cv_header_cups_language_h" = xyes; then ++ case `uname -r` in ++ 5.0|5.0.*|5.1|5.1.*|5.2|5.2.*|5.3|5.3.*|5.5|5.5.*) ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no large file support" >&5 ++$as_echo "no large file support" >&6; } ++ ;; ++ 5.*) ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: enabling large file support" >&5 ++$as_echo "enabling large file support" >&6; } ++ if test "$ac_cv_c_compiler_gnu" = yes; then ++ ${CC-cc} -v >conftest.c 2>&1 ++ ac_cv_gcc_compiler_version_number=`grep 'gcc version' conftest.c` ++ rm -fr conftest.c ++ case "$ac_cv_gcc_compiler_version_number" in ++ *"gcc version 2.6"*|*"gcc version 2.7"*) ++ CPPFLAGS="$CPPFLAGS -D_LARGEFILE64_SOURCE -D_REENTRANT" ++ LDFLAGS="$LDFLAGS -lthread" -cat >>confdefs.h <<\_ACEOF -#define HAVE_CUPS 1 -_ACEOF -+LD=ld -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 -+$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } -+if test "${ac_cv_prog_gnu_ld+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ # I'd rather use --version here, but apparently some GNU ld's only accept -v. -+if $LD -v 2>&1 &5; then -+ ac_cv_prog_gnu_ld=yes -+else -+ ac_cv_prog_gnu_ld=no -+fi -+fi -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_gnu_ld" >&5 -+$as_echo "$ac_cv_prog_gnu_ld" >&6; } ++$as_echo "#define _LARGEFILE64_SOURCE 1" >>confdefs.h - samba_cv_HAVE_CUPS=yes ++ ;; ++ *) ++ CPPFLAGS="$CPPFLAGS -D_LARGEFILE_SOURCE -D_REENTRANT -D_FILE_OFFSET_BITS=64" ++ LDFLAGS="$LDFLAGS -lthread" + ++$as_echo "#define _LARGEFILE64_SOURCE 1" >>confdefs.h + + +-ac_check_lib_ext_save_LIBS=$LIBS +-LIBS="-lcups $PRINT_LIBS $LIBS" ++$as_echo "#define _FILE_OFFSET_BITS 64" >>confdefs.h + ++ ;; ++ esac ++ else ++ CPPFLAGS="$CPPFLAGS -D_LARGEFILE_SOURCE -D_REENTRANT -D_FILE_OFFSET_BITS=64" ++ LDFLAGS="$LDFLAGS -lthread" + ++$as_echo "#define _LARGEFILE64_SOURCE 1" >>confdefs.h + + +- { $as_echo "$as_me:$LINENO: checking for httpConnectEncrypt in -lcups" >&5 +-$as_echo_n "checking for httpConnectEncrypt in -lcups... " >&6; } +-if test "${ac_cv_lib_ext_cups_httpConnectEncrypt+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. */ ++$as_echo "#define _FILE_OFFSET_BITS 64" >>confdefs.h + +-/* 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 +-char httpConnectEncrypt (); +-int +-main () +-{ +-return httpConnectEncrypt (); +- ; +- return 0; +-} +-_ACEOF +-rm -f conftest.$ac_objext conftest$ac_exeext +-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 +- $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_ext_cups_httpConnectEncrypt=yes; +- ac_cv_lib_ext_cups=yes +-else +- $as_echo "$as_me: failed program was:" >&5 +-sed 's/^/| /' conftest.$ac_ext >&5 ++ fi ++ ;; ++ esac ++ ;; ++# ++# IRIX uses SYSV printing. Make sure to set that here ++# ++ *irix*) + +- ac_cv_lib_ext_cups_httpConnectEncrypt=no; +- ac_cv_lib_ext_cups=no +-fi ++$as_echo "#define SYSV 1" >>confdefs.h ++ ++ ;; ++ *freebsd*|*dragonfly*) ++ ++$as_echo "#define FREEBSD 1" >>confdefs.h ++ ++ ;; ++# ++# VOS may need to have POSIX support and System V compatibility enabled. ++# ++ *vos*) ++ case "$CPPFLAGS" in ++ *-D_POSIX_C_SOURCE*) ++ ;; ++ *) ++ CPPFLAGS="$CPPFLAGS -D_POSIX_C_SOURCE=200112L" ++ ++$as_echo "#define _POSIX_C_SOURCE 200112L" >>confdefs.h ++ ++ ;; ++ esac ++ case "$CPPFLAGS" in ++ *-D_SYSV*|*-D_SVID_SOURCE*) ++ ;; ++ *) ++ CPPFLAGS="$CPPFLAGS -D_SYSV" + +-rm -rf conftest.dSYM +-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ +- conftest$ac_exeext conftest.$ac_ext ++$as_echo "#define _SYSV 1" >>confdefs.h ++ ++ esac ++ ;; ++# ++# Tests needed for SINIX large file support. ++# ++ *sysv4*) ++ if test $host = mips-sni-sysv4 ; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for LFS support" >&5 ++$as_echo_n "checking for LFS support... " >&6; } ++ old_CPPFLAGS="$CPPFLAGS" ++ CPPFLAGS="-D_LARGEFILE64_SOURCE $CPPFLAGS" ++ if test "$cross_compiling" = yes; then : ++ SINIX_LFS_SUPPORT=cross ++else ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ + +-fi +-{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_ext_cups_httpConnectEncrypt" >&5 +-$as_echo "$ac_cv_lib_ext_cups_httpConnectEncrypt" >&6; } +- if test $ac_cv_lib_ext_cups_httpConnectEncrypt = yes; then +- cat >>confdefs.h <<_ACEOF +-#define HAVE_HTTPCONNECTENCRYPT 1 ++#include ++main () { ++#if _LFS64_LARGEFILE == 1 ++exit(0); ++#else ++exit(1); ++#endif ++} + _ACEOF +- ++if ac_fn_c_try_run "$LINENO"; then : ++ SINIX_LFS_SUPPORT=yes ++else ++ SINIX_LFS_SUPPORT=no ++fi ++rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ ++ conftest.$ac_objext conftest.beam conftest.$ac_ext + fi + +-LIBS=$ac_check_lib_ext_save_LIBS +- +-if test $ac_cv_lib_ext_cups = yes; then +- cat >>confdefs.h <<_ACEOF +-#define HAVE_LIBCUPS 1 +-_ACEOF +- +- case "$PRINT_LIBS" in +- *-lcups*) +- ;; +- *) +- PRINT_LIBS="-lcups $PRINT_LIBS" +- ;; +- esac ++ CPPFLAGS="$old_CPPFLAGS" ++ if test x$SINIX_LFS_SUPPORT = xyes ; then ++ CPPFLAGS="-D_LARGEFILE64_SOURCE $CPPFLAGS" + ++$as_echo "#define _LARGEFILE64_SOURCE 1" >>confdefs.h + +-fi ++ CFLAGS="`getconf LFS64_CFLAGS` $CFLAGS" ++ LDFLAGS="`getconf LFS64_LDFLAGS` $LDFLAGS" ++ LIBS="`getconf LFS64_LIBS` $LIBS" ++ fi ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $SINIX_LFS_SUPPORT" >&5 ++$as_echo "$SINIX_LFS_SUPPORT" >&6; } ++ fi ++ ;; + - else - { $as_echo "$as_me:$LINENO: WARNING: cups-config around but cups-devel not installed" >&5 -$as_echo "$as_me: WARNING: cups-config around but cups-devel not installed" >&2;} @@ -38013,85 +37795,57 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - LDFLAGS=$ac_save_LDFLAGS - PRINT_LIBS=$ac_save_PRINT_LIBS - fi ++# Systems with LFS support. ++# ++ gnu* | k*bsd*-gnu | kopensolaris*-gnu) ++ CPPFLAGS="-D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE $CPPFLAGS" - elif test x"$enable_cups" = x"yes"; then - { { $as_echo "$as_me:$LINENO: error: Cups support required but cups-config not located. Make sure cups-devel related files are installed." >&5 -$as_echo "$as_me: error: Cups support required but cups-config not located. Make sure cups-devel related files are installed." >&2;} - { (exit 1); exit 1; }; } -+if test "$ac_cv_prog_gnu_ld" = "yes"; then -+ ac_cv_gnu_ld_version=`$LD -v 2>/dev/null | head -1` -+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking GNU ld release date" >&5 -+$as_echo_n "checking GNU ld release date... " >&6; } -+ ac_cv_gnu_ld_date=`echo $ac_cv_gnu_ld_version | sed -n 's,^.*\([2-9][0-9][0-9][0-9]\)[-]*\([01][0-9]\)[-]*\([0-3][0-9]\).*$,\1\2\3,p'` -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${ac_cv_gnu_ld_date}" >&5 -+$as_echo "${ac_cv_gnu_ld_date}" >&6; } -+ if test -n "$ac_cv_gnu_ld_date"; then -+ if test "$ac_cv_gnu_ld_date" -lt 20030217; then -+ ac_cv_gnu_ld_no_default_allow_shlib_undefined=yes -+ fi -+ if test "$ac_cv_gnu_ld_date" -gt 20030101; then -+ ac_cv_gnu_ld_version_script=yes -+ fi -+ else -+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking GNU ld release version" >&5 -+$as_echo_n "checking GNU ld release version... " >&6; } -+ ac_cv_gnu_ld_vernr=`echo $ac_cv_gnu_ld_version | sed -n 's,^[^0-9]*\([1-9][0-9]*\.[0-9][0-9]*\).*$,\1,p'` -+ ac_cv_gnu_ld_vernr_major=`echo $ac_cv_gnu_ld_vernr | cut -d '.' -f 1` -+ ac_cv_gnu_ld_vernr_minor=`echo $ac_cv_gnu_ld_vernr | cut -d '.' -f 2` -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${ac_cv_gnu_ld_vernr}" >&5 -+$as_echo "${ac_cv_gnu_ld_vernr}" >&6; } -+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking GNU ld release version major" >&5 -+$as_echo_n "checking GNU ld release version major... " >&6; } -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${ac_cv_gnu_ld_vernr_major}" >&5 -+$as_echo "${ac_cv_gnu_ld_vernr_major}" >&6; } -+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking GNU ld release version minor" >&5 -+$as_echo_n "checking GNU ld release version minor... " >&6; } -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${ac_cv_gnu_ld_vernr_minor}" >&5 -+$as_echo "${ac_cv_gnu_ld_vernr_minor}" >&6; } -+ if test "$ac_cv_gnu_ld_vernr_major" -lt 2 || test "$ac_cv_gnu_ld_vernr_minor" -lt 14; then -+ ac_cv_gnu_ld_no_default_allow_shlib_undefined=yes -+ fi -+ if test "$ac_cv_gnu_ld_vernr_major" -gt 2 || test "$ac_cv_gnu_ld_vernr_major" = 2 && test "$ac_cv_gnu_ld_vernr_minor" -ge 12; then -+ ac_cv_gnu_ld_version_script=yes -+ fi - fi - fi +- fi +-fi ++$as_echo "#define _LARGEFILE64_SOURCE 1" >>confdefs.h -# Check whether --enable-iprint was given. -if test "${enable_iprint+set}" = set; then - enableval=$enable_iprint; -fi -- -- + ++$as_echo "#define _FILE_OFFSET_BITS 64" >>confdefs.h + -if test x$enable_iprint != xno; then - if test x"$samba_cv_HAVE_CUPS" = xyes; then -cat >>confdefs.h <<\_ACEOF -#define HAVE_IPRINT 1 -_ACEOF ++$as_echo "#define _GNU_SOURCE 1" >>confdefs.h - elif test x"$enable_iprint" = x"yes"; then - { { $as_echo "$as_me:$LINENO: error: iPrint support required but cups not enabled. Make sure cups-devel related files are installed and that cups is enabled." >&5 -$as_echo "$as_me: error: iPrint support required but cups not enabled. Make sure cups-devel related files are installed and that cups is enabled." >&2;} - { (exit 1); exit 1; }; } - fi -+if test "x$CC" != xcc; then -+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC and cc understand -c and -o together" >&5 -+$as_echo_n "checking whether $CC and cc understand -c and -o together... " >&6; } -+else -+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether cc understands -c and -o together" >&5 -+$as_echo_n "checking whether cc understands -c and -o together... " >&6; } - fi -- +-fi ++ ;; + -############################################ -# check if the compiler will optimize out function calls -{ $as_echo "$as_me:$LINENO: checking if the compiler will optimize out function calls" >&5 -$as_echo_n "checking if the compiler will optimize out function calls... " >&6; } -if test "${samba_cv_optimize_out_funcation_calls+set}" = set; then -+set dummy $CC; ac_cc=`$as_echo "$2" | -+ sed 's/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/'` -+if { as_var=ac_cv_prog_cc_${ac_cc}_c_o; eval "test \"\${$as_var+set}\" = set"; }; then : - $as_echo_n "(cached) " >&6 +- $as_echo_n "(cached) " >&6 ++# Tests for linux LFS support. Need kernel 2.4 and glibc2.2 or greater support. ++# ++ *linux*) ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for LFS support" >&5 ++$as_echo_n "checking for LFS support... " >&6; } ++ old_CPPFLAGS="$CPPFLAGS" ++ CPPFLAGS="-D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE $CPPFLAGS" ++ if test "$cross_compiling" = yes; then : ++ LINUX_LFS_SUPPORT=cross else - - cat >conftest.$ac_ext <<_ACEOF @@ -38103,50 +37857,63 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ -#include - int - main () - { +-int +-main () +-{ ++#include ++#include ++#include ++#include ++main() { ++#if _LFS64_LARGEFILE == 1 ++ struct utsname uts; ++ char *release; ++ int major, minor; - if (0) { - this_function_does_not_exist(); - } else { - return 1; - } -- -- - ; - return 0; ++ /* Ensure this is glibc 2.2 or higher */ ++#if defined(__GLIBC__) && defined(__GLIBC_MINOR__) ++ int libc_major = __GLIBC__; ++ int libc_minor = __GLIBC_MINOR__; + ++ if (libc_major < 2) ++ exit(1); ++ if (libc_minor < 2) ++ exit(1); ++#endif + +- ; +- return 0; ++ /* Ensure this is kernel 2.4 or higher */ ++ ++ uname(&uts); ++ release = strdup(uts.release); ++ major = atoi(strsep(&release, ".")); ++ minor = atoi(strsep(&release, ".")); ++ ++ if (major > 2 || (major == 2 && minor > 3)) ++ exit(0); ++ exit(1); ++#else ++ exit(1); ++#endif } ++ _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in -+# Make sure it works both with $CC and with simple cc. -+# We do the test twice because some compilers refuse to overwrite an -+# existing .o file with -o, though they will create one. -+ac_try='$CC -c conftest.$ac_ext -o conftest2.$ac_objext >&5' -+rm -f conftest2.* -+if { { case "(($ac_try" in -+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; -+ *) ac_try_echo=$ac_try;; -+esac -+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -+$as_echo "$ac_try_echo"; } >&5 -+ (eval "$ac_try") 2>&5 -+ ac_status=$? -+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 -+ test $ac_status = 0; } && -+ test -f conftest2.$ac_objext && { { case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; - esac +- *\"* | *\`* | *\\*) 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 -+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -+$as_echo "$ac_try_echo"; } >&5 -+ (eval "$ac_try") 2>&5 - ac_status=$? +- ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 @@ -38159,81 +37926,21 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - $as_test_x conftest$ac_exeext - }; then - samba_cv_optimize_out_funcation_calls=yes -+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 -+ test $ac_status = 0; }; -+then -+ eval ac_cv_prog_cc_${ac_cc}_c_o=yes -+ if test "x$CC" != xcc; then -+ # Test first that cc exists at all. -+ if { ac_try='cc -c conftest.$ac_ext >&5' -+ { { case "(($ac_try" in -+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; -+ *) ac_try_echo=$ac_try;; -+esac -+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -+$as_echo "$ac_try_echo"; } >&5 -+ (eval "$ac_try") 2>&5 -+ ac_status=$? -+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 -+ test $ac_status = 0; }; }; then -+ ac_try='cc -c conftest.$ac_ext -o conftest2.$ac_objext >&5' -+ rm -f conftest2.* -+ if { { case "(($ac_try" in -+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; -+ *) ac_try_echo=$ac_try;; -+esac -+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -+$as_echo "$ac_try_echo"; } >&5 -+ (eval "$ac_try") 2>&5 -+ ac_status=$? -+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 -+ test $ac_status = 0; } && -+ test -f conftest2.$ac_objext && { { case "(($ac_try" in -+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; -+ *) ac_try_echo=$ac_try;; -+esac -+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -+$as_echo "$ac_try_echo"; } >&5 -+ (eval "$ac_try") 2>&5 -+ ac_status=$? -+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 -+ test $ac_status = 0; }; -+ then -+ # cc works too. -+ : -+ else -+ # cc exists but doesn't like -o. -+ eval ac_cv_prog_cc_${ac_cc}_c_o=no -+ fi -+ fi -+ fi ++if ac_fn_c_try_run "$LINENO"; then : ++ LINUX_LFS_SUPPORT=yes else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 -+ eval ac_cv_prog_cc_${ac_cc}_c_o=no -+fi -+rm -f core conftest* -+ -+fi -+if eval test \$ac_cv_prog_cc_${ac_cc}_c_o = yes; then -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -+$as_echo "yes" >&6; } -+else -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -+$as_echo "no" >&6; } -+ -+$as_echo "#define NO_MINUS_C_MINUS_O 1" >>confdefs.h - +- - samba_cv_optimize_out_funcation_calls=no ++ LINUX_LFS_SUPPORT=no fi - +- -rm -rf conftest.dSYM -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -+if eval "test \"`echo '$ac_cv_prog_cc_'${ac_cc}_c_o`\" = no"; then -+ BROKEN_CC= -+else -+ BROKEN_CC=# ++rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ ++ conftest.$ac_objext conftest.beam conftest.$ac_ext fi -{ $as_echo "$as_me:$LINENO: result: $samba_cv_optimize_out_funcation_calls" >&5 -$as_echo "$samba_cv_optimize_out_funcation_calls" >&6; } @@ -38242,91 +37949,28 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -cat >>confdefs.h <<\_ACEOF -#define HAVE_COMPILER_WILL_OPTIMIZE_OUT_FNS 1 -_ACEOF ++ CPPFLAGS="$old_CPPFLAGS" ++ if test x$LINUX_LFS_SUPPORT = xyes ; then ++ CPPFLAGS="-D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE $CPPFLAGS" -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking that the C compiler understands -Werror" >&5 -+$as_echo_n "checking that the C compiler understands -Werror... " >&6; } -+if test "${samba_cv_HAVE_Werror+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ -+ -+ old_CFLAGS="$CFLAGS"; -+ CFLAGS="-Werror"; -+ export CFLAGS; -+ old_CPPFLAGS="$CPPFLAGS"; -+ CPPFLAGS="$CPPFLAGS"; -+ export CPPFLAGS; -+ old_LDFLAGS="$LDFLAGS"; -+ LDFLAGS="$LDFLAGS"; -+ export LDFLAGS; -+ if test "$cross_compiling" = yes; then : -+ samba_cv_HAVE_Werror=cross -+else -+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext -+/* end confdefs.h. */ -+ -+ int main(void) -+ { -+ return 0; -+ } -+_ACEOF -+if ac_fn_c_try_run "$LINENO"; then : -+ samba_cv_HAVE_Werror=yes -+else -+ samba_cv_HAVE_Werror=no -+fi -+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ -+ conftest.$ac_objext conftest.beam conftest.$ac_ext - fi +-fi ++$as_echo "#define _LARGEFILE64_SOURCE 1" >>confdefs.h -############################################# -# check for fd passing struct via msg_control -{ $as_echo "$as_me:$LINENO: checking for fd passing via msg_control" >&5 -$as_echo_n "checking for fd passing via msg_control... " >&6; } -if test "${samba_cv_msghdr_msg_control+set}" = set; then -+ CFLAGS="$old_CFLAGS"; -+ old_CFLAGS=""; -+ export CFLAGS; -+ CPPFLAGS="$old_CPPFLAGS"; -+ old_CPPFLAGS=""; -+ export CPPFLAGS; -+ LDFLAGS="$old_LDFLAGS"; -+ old_LDFLAGS=""; -+ export LDFLAGS; -+ -+fi -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $samba_cv_HAVE_Werror" >&5 -+$as_echo "$samba_cv_HAVE_Werror" >&6; } -+if test x"$samba_cv_HAVE_Werror" = x"yes"; then -+ Werror_FLAGS="-Werror" -+else -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking that the C compiler understands -w2" >&5 -+$as_echo_n "checking that the C compiler understands -w2... " >&6; } -+if test "${samba_cv_HAVE_w2+set}" = set; then : - $as_echo_n "(cached) " >&6 - else -- +- $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 -+ -+ -+ old_CFLAGS="$CFLAGS"; -+ CFLAGS="-w2"; -+ export CFLAGS; -+ old_CPPFLAGS="$CPPFLAGS"; -+ CPPFLAGS="$CPPFLAGS"; -+ export CPPFLAGS; -+ old_LDFLAGS="$LDFLAGS"; -+ LDFLAGS="$LDFLAGS"; -+ export LDFLAGS; -+ if test "$cross_compiling" = yes; then : -+ samba_cv_HAVE_w2=cross -+else -+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ +-/* end confdefs.h. */ ++$as_echo "#define _FILE_OFFSET_BITS 64" >>confdefs.h -#include -#include @@ -38336,7 +37980,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -int -main () -{ -- + - struct msghdr msg; - union { - struct cmsghdr cm; @@ -38344,15 +37988,12 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - } control_un; - msg.msg_control = control_un.control; - msg.msg_controllen = sizeof(control_un.control); -- ++$as_echo "#define _GNU_SOURCE 1" >>confdefs.h + - ; - return 0; -} -+ int main(void) -+ { -+ return 0; -+ } - _ACEOF +-_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in @@ -38372,62 +38013,61 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - samba_cv_msghdr_msg_control=yes -+if ac_fn_c_try_run "$LINENO"; then : -+ samba_cv_HAVE_w2=yes - else +-else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 -- ++ fi ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LINUX_LFS_SUPPORT" >&5 ++$as_echo "$LINUX_LFS_SUPPORT" >&6; } ++ ;; + - samba_cv_msghdr_msg_control=no -+ samba_cv_HAVE_w2=no - fi -- +-fi ++# ++# MacOS X is the *only* system that uses compose character in utf8. This ++# is so horribly broken.... ++# ++ *darwin*) + -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ -+ conftest.$ac_objext conftest.beam conftest.$ac_ext - fi +-fi -{ $as_echo "$as_me:$LINENO: result: $samba_cv_msghdr_msg_control" >&5 -$as_echo "$samba_cv_msghdr_msg_control" >&6; } -if test x"$samba_cv_msghdr_msg_control" = x"yes"; then ++$as_echo "#define BROKEN_UNICODE_COMPOSE_CHARACTERS 1" >>confdefs.h -cat >>confdefs.h <<\_ACEOF -#define HAVE_MSGHDR_MSG_CONTROL 1 -_ACEOF -+ CFLAGS="$old_CFLAGS"; -+ old_CFLAGS=""; -+ export CFLAGS; -+ CPPFLAGS="$old_CPPFLAGS"; -+ old_CPPFLAGS=""; -+ export CPPFLAGS; -+ LDFLAGS="$old_LDFLAGS"; -+ old_LDFLAGS=""; -+ export LDFLAGS; - fi -- +-fi ++# Add a system specific charset module. ++ default_shared_modules="$default_shared_modules charset_macosxfs" + -############################################# -# check for fd passing struct via msg_acctrights -{ $as_echo "$as_me:$LINENO: checking for fd passing via msg_acctrights" >&5 -$as_echo_n "checking for fd passing via msg_acctrights... " >&6; } -if test "${samba_cv_msghdr_msg_acctrights+set}" = set; then -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $samba_cv_HAVE_w2" >&5 -+$as_echo "$samba_cv_HAVE_w2" >&6; } -+if test x"$samba_cv_HAVE_w2" = x"yes"; then -+ Werror_FLAGS="-w2" -+else -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking that the C compiler understands -errwarn" >&5 -+$as_echo_n "checking that the C compiler understands -errwarn... " >&6; } -+if test "${samba_cv_HAVE_errwarn+set}" = set; then : - $as_echo_n "(cached) " >&6 +- $as_echo_n "(cached) " >&6 ++ ;; ++ *hurd*) ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for LFS support" >&5 ++$as_echo_n "checking for LFS support... " >&6; } ++ old_CPPFLAGS="$CPPFLAGS" ++ CPPFLAGS="-D_LARGEFILE64_SOURCE -D_GNU_SOURCE $CPPFLAGS" ++ if test "$cross_compiling" = yes; then : ++ GLIBC_LFS_SUPPORT=cross else - +- - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF --/* end confdefs.h. */ -- ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + -#include -#include -#include @@ -38436,33 +38076,22 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -int -main () -{ - +- - struct msghdr msg; - int fd; - msg.msg_acctrights = (caddr_t) &fd; - msg.msg_acctrightslen = sizeof(fd); -+ old_CFLAGS="$CFLAGS"; -+ CFLAGS="-errwarn=%all"; -+ export CFLAGS; -+ old_CPPFLAGS="$CPPFLAGS"; -+ CPPFLAGS="$CPPFLAGS"; -+ export CPPFLAGS; -+ old_LDFLAGS="$LDFLAGS"; -+ LDFLAGS="$LDFLAGS"; -+ export LDFLAGS; -+ if test "$cross_compiling" = yes; then : -+ samba_cv_HAVE_errwarn=cross -+else -+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext -+/* end confdefs.h. */ - +- - ; - return 0; --} -+ int main(void) -+ { -+ return 0; -+ } ++#include ++main () { ++#if _LFS64_LARGEFILE == 1 ++exit(0); ++#else ++exit(1); ++#endif + } _ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" @@ -38484,13 +38113,13 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - } && test -s conftest.$ac_objext; then - samba_cv_msghdr_msg_acctrights=yes +if ac_fn_c_try_run "$LINENO"; then : -+ samba_cv_HAVE_errwarn=yes ++ GLIBC_LFS_SUPPORT=yes else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - samba_cv_msghdr_msg_acctrights=no -+ samba_cv_HAVE_errwarn=no ++ GLIBC_LFS_SUPPORT=no fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext @@ -38500,33 +38129,17 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -{ $as_echo "$as_me:$LINENO: result: $samba_cv_msghdr_msg_acctrights" >&5 -$as_echo "$samba_cv_msghdr_msg_acctrights" >&6; } -if test x"$samba_cv_msghdr_msg_acctrights" = x"yes"; then - +- -cat >>confdefs.h <<\_ACEOF -#define HAVE_MSGHDR_MSG_ACCTRIGHTS 1 -_ACEOF -+ CFLAGS="$old_CFLAGS"; -+ old_CFLAGS=""; -+ export CFLAGS; -+ CPPFLAGS="$old_CPPFLAGS"; -+ old_CPPFLAGS=""; -+ export CPPFLAGS; -+ LDFLAGS="$old_LDFLAGS"; -+ old_LDFLAGS=""; -+ export LDFLAGS; - fi -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $samba_cv_HAVE_errwarn" >&5 -+$as_echo "$samba_cv_HAVE_errwarn" >&6; } -+if test x"$samba_cv_HAVE_errwarn" = x"yes"; then -+ Werror_FLAGS="-errwarn=%all" -+fi -+fi -+fi +-fi ++ CPPFLAGS="$old_CPPFLAGS" ++ if test x$GLIBC_LFS_SUPPORT = xyes ; then ++ CPPFLAGS="-D_LARGEFILE64_SOURCE -D_GNU_SOURCE $CPPFLAGS" -+############################################ -+# check if the compiler can handle negative enum values -+# and don't truncate the values to INT_MAX -+# a runtime test is needed here ++$as_echo "#define _LARGEFILE64_SOURCE 1" >>confdefs.h -for ac_func in dirfd -do @@ -38534,11 +38147,8 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 -$as_echo_n "checking for $ac_func... " >&6; } -if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking that the C compiler understands negative enum values" >&5 -+$as_echo_n "checking that the C compiler understands negative enum values... " >&6; } -+if test "${samba_cv_CC_NEGATIVE_ENUM_VALUES+set}" = set; then : - $as_echo_n "(cached) " >&6 - else +- $as_echo_n "(cached) " >&6 +-else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF @@ -38553,35 +38163,22 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - which can conflict with char $ac_func (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ -+ if test "$cross_compiling" = yes; then : -+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -+as_fn_error "cannot run test program while cross compiling -+See \`config.log' for more details." "$LINENO" 5; } -+else -+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext -+/* end confdefs.h. */ ++$as_echo "#define _GNU_SOURCE 1" >>confdefs.h -#ifdef __STDC__ -# include -#else -# include -#endif -+ #include -+ enum negative_values { NEGATIVE_VALUE = 0xFFFFFFFF }; -+ int main(void) { -+ enum negative_values v1 = NEGATIVE_VALUE; -+ unsigned v2 = NEGATIVE_VALUE; ++ fi ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GLIBC_LFS_SUPPORT" >&5 ++$as_echo "$GLIBC_LFS_SUPPORT" >&6; } ++ ;; ++ *qnx*) ++ CPPFLAGS="-D_LARGEFILE64_SOURCE $CPPFLAGS" -#undef $ac_func -+ if (v1 != 0xFFFFFFFF) { -+ printf("%u != 0xFFFFFFFF\n", v1); -+ return 1; -+ } -+ if (v2 != 0xFFFFFFFF) { -+ printf("%u != 0xFFFFFFFF\n", v2); -+ return 1; -+ } ++$as_echo "#define _LARGEFILE64_SOURCE 1" >>confdefs.h -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC @@ -38596,8 +38193,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -#if defined __stub_$ac_func || defined __stub___$ac_func -choke me -#endif -+ return 0; -+ } ++ ;; -int -main () @@ -38606,13 +38202,13 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - ; - return 0; -} - _ACEOF +-_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; --esac + esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 @@ -38629,22 +38225,17 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - $as_test_x conftest$ac_exeext - }; then - eval "$as_ac_var=yes" -+if ac_fn_c_try_run "$LINENO"; then : -+ samba_cv_CC_NEGATIVE_ENUM_VALUES=yes - else +-else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 -- + - eval "$as_ac_var=no" -+ samba_cv__CC_NEGATIVE_ENUM_VALUES=no - fi +-fi - -rm -rf conftest.dSYM -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ -+ conftest.$ac_objext conftest.beam conftest.$ac_ext - fi +-fi -ac_res=`eval 'as_val=${'$as_ac_var'} - $as_echo "$as_val"'` - { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 @@ -38655,19 +38246,15 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF - - fi +- +-fi -done - -if test x"$ac_cv_func_dirfd" = x"yes"; then - default_shared_modules="$default_shared_modules vfs_syncops vfs_dirsort" -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $samba_cv_CC_NEGATIVE_ENUM_VALUES" >&5 -+$as_echo "$samba_cv_CC_NEGATIVE_ENUM_VALUES" >&6; } -+if test x"$samba_cv_CC_NEGATIVE_ENUM_VALUES" != x"yes"; then -+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using --uint-enums for pidl" >&5 -+$as_echo "$as_me: WARNING: using --uint-enums for pidl" >&2;} -+ PIDL_ARGS="$PIDL_ARGS --uint-enums" - fi +-fi ++SAVE_CPPFLAGS="${CPPFLAGS}" ++CPPFLAGS="${CPPFLAGS} ${SAMBA_CONFIGURE_CPPFLAGS}" -{ $as_echo "$as_me:$LINENO: checking for struct sigevent type" >&5 -$as_echo_n "checking for struct sigevent type... " >&6; } @@ -38681,6 +38268,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ ++echo "LIBREPLACE_BROKEN_CHECKS: START" -#include -#if STDC_HEADERS @@ -38688,26 +38276,14 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -#include -#endif -#include -+saved_CFLAGS="$CFLAGS"; -+c99_init=no -+if test x"$c99_init" = x"no"; then -+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for C99 designated initializers" >&5 -+$as_echo_n "checking for C99 designated initializers... " >&6; } -+ CFLAGS="$saved_CFLAGS"; -+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext -+/* end confdefs.h. */ -+#include - int - main () - { +-int +-main () +-{ -struct sigevent s; -+ struct foo {int x;char y;}; -+ struct foo bar = { .y = 'X', .x = 1 }; -+ - ; - return 0; - } - _ACEOF +- ; +- return 0; +-} +-_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in @@ -38727,28 +38303,34 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - samba_cv_struct_sigevent=yes -+if ac_fn_c_try_compile "$LINENO"; then : -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -+$as_echo "yes" >&6; }; c99_init=yes - else +-else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 -- ++libreplacedir="" ++libreplacepaths="$srcdir $srcdir/lib/replace $srcdir/libreplace $srcdir/../libreplace $srcdir/../replace $srcdir/../lib/replace $srcdir/../../../lib/replace" ++for d in $libreplacepaths; do ++ if test -f "$d/replace.c"; then ++ libreplacedir="$d" + - samba_cv_struct_sigevent=no -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -+$as_echo "no" >&6; } - fi -- - rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++ break; ++ fi ++done ++if test x"$libreplacedir" = "x"; then ++ as_fn_error "cannot find libreplace in $libreplacepaths" "$LINENO" 5 fi + +-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +-fi -{ $as_echo "$as_me:$LINENO: result: $samba_cv_struct_sigevent" >&5 -$as_echo "$samba_cv_struct_sigevent" >&6; } -if test x"$samba_cv_struct_sigevent" = x"yes"; then -- ++LIBREPLACEOBJ="$libreplacedir/replace.o" + -cat >>confdefs.h <<\_ACEOF -#define HAVE_STRUCT_SIGEVENT 1 -_ACEOF -- + - { $as_echo "$as_me:$LINENO: checking for struct sigevent.sigev_value.sival_ptr" >&5 -$as_echo_n "checking for struct sigevent.sigev_value.sival_ptr... " >&6; } -if test "${ac_cv_member_struct_sigevent_sigev_value_sival_ptr+set}" = set; then @@ -38759,28 +38341,20 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -+if test x"$c99_init" = x"no"; then -+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for C99 designated initializers with -AC99" >&5 -+$as_echo_n "checking for C99 designated initializers with -AC99... " >&6; } -+ CFLAGS="$saved_CFLAGS -AC99"; -+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ +-/* end confdefs.h. */ -#include -- -+#include - int - main () - { ++LIBREPLACEOBJ="${LIBREPLACEOBJ} $libreplacedir/snprintf.o" + +-int +-main () +-{ -static struct sigevent ac_aggr; -if (ac_aggr.sigev_value.sival_ptr) -return 0; -+ struct foo {int x;char y;}; -+ struct foo bar = { .y = 'X', .x = 1 }; -+ - ; - return 0; - } - _ACEOF +- ; +- return 0; +-} +-_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in @@ -38800,9 +38374,10 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_cv_member_struct_sigevent_sigev_value_sival_ptr=yes -+if ac_fn_c_try_compile "$LINENO"; then : -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -+$as_echo "yes" >&6; }; c99_init=yes ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking return type of signal handlers" >&5 ++$as_echo_n "checking return type of signal handlers... " >&6; } ++if test "${ac_cv_type_signal+set}" = set; then : ++ $as_echo_n "(cached) " >&6 else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 @@ -38812,29 +38387,18 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -+$as_echo "no" >&6; } -+fi -+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -+fi -+if test x"$c99_init" = x"no"; then -+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for C99 designated initializers with -qlanglvl=extc99" >&5 -+$as_echo_n "checking for C99 designated initializers with -qlanglvl=extc99... " >&6; } -+ CFLAGS="$saved_CFLAGS -qlanglvl=extc99"; -+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ --#include -- -+#include ++#include + #include + int main () { -static struct sigevent ac_aggr; -if (sizeof ac_aggr.sigev_value.sival_ptr) -return 0; -+ struct foo {int x;char y;}; -+ struct foo bar = { .y = 'X', .x = 1 }; -+ ++return *(signal (0, 0)) (0) == 1; ; return 0; } @@ -38859,8 +38423,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - } && test -s conftest.$ac_objext; then - ac_cv_member_struct_sigevent_sigev_value_sival_ptr=yes +if ac_fn_c_try_compile "$LINENO"; then : -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -+$as_echo "yes" >&6; }; c99_init=yes ++ ac_cv_type_signal=int else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 @@ -38869,8 +38432,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -+$as_echo "no" >&6; } ++ ac_cv_type_signal=void fi - rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext @@ -38878,45 +38440,42 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -{ $as_echo "$as_me:$LINENO: result: $ac_cv_member_struct_sigevent_sigev_value_sival_ptr" >&5 -$as_echo "$ac_cv_member_struct_sigevent_sigev_value_sival_ptr" >&6; } -if test "x$ac_cv_member_struct_sigevent_sigev_value_sival_ptr" = x""yes; then -- --cat >>confdefs.h <<_ACEOF ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_signal" >&5 ++$as_echo "$ac_cv_type_signal" >&6; } + + cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_SIGEVENT_SIGEV_VALUE_SIVAL_PTR 1 --_ACEOF -- -- ++#define RETSIGTYPE $ac_cv_type_signal + _ACEOF + + -fi -{ $as_echo "$as_me:$LINENO: checking for struct sigevent.sigev_value.sigval_ptr" >&5 -$as_echo_n "checking for struct sigevent.sigev_value.sigval_ptr... " >&6; } -if test "${ac_cv_member_struct_sigevent_sigev_value_sigval_ptr+set}" = set; then -- $as_echo_n "(cached) " >&6 --else ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for uid_t in sys/types.h" >&5 ++$as_echo_n "checking for uid_t in sys/types.h... " >&6; } ++if test "${ac_cv_type_uid_t+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 -+if test x"$c99_init" = x"no"; then -+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for C99 designated initializers with -qlanglvl=stdc99" >&5 -+$as_echo_n "checking for C99 designated initializers with -qlanglvl=stdc99... " >&6; } -+ CFLAGS="$saved_CFLAGS -qlanglvl=stdc99"; -+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ +-/* end confdefs.h. */ -#include - -+#include - int - main () - { +-int +-main () +-{ -static struct sigevent ac_aggr; -if (ac_aggr.sigev_value.sigval_ptr) -return 0; -+ struct foo {int x;char y;}; -+ struct foo bar = { .y = 'X', .x = 1 }; -+ - ; - return 0; - } - _ACEOF +- ; +- return 0; +-} +-_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in @@ -38936,10 +38495,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_cv_member_struct_sigevent_sigev_value_sigval_ptr=yes -+if ac_fn_c_try_compile "$LINENO"; then : -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -+$as_echo "yes" >&6; }; c99_init=yes - else +-else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - @@ -38948,32 +38504,20 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -+$as_echo "no" >&6; } -+fi -+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -+fi -+if test x"$c99_init" = x"no"; then -+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for C99 designated initializers with -c99" >&5 -+$as_echo_n "checking for C99 designated initializers with -c99... " >&6; } -+ CFLAGS="$saved_CFLAGS -c99" -+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#include -- -+#include - int - main () - { ++#include + +-int +-main () +-{ -static struct sigevent ac_aggr; -if (sizeof ac_aggr.sigev_value.sigval_ptr) -return 0; -+ struct foo {int x;char y;}; -+ struct foo bar = { .y = 'X', .x = 1 }; -+ - ; - return 0; - } +- ; +- return 0; +-} _ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" @@ -38994,59 +38538,48 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_cv_member_struct_sigevent_sigev_value_sigval_ptr=yes -+if ac_fn_c_try_compile "$LINENO"; then : -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -+$as_echo "yes" >&6; }; c99_init=yes ++if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | ++ $EGREP "uid_t" >/dev/null 2>&1; then : ++ ac_cv_type_uid_t=yes else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_member_struct_sigevent_sigev_value_sigval_ptr=no -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -+$as_echo "no" >&6; } - fi -- - rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++ ac_cv_type_uid_t=no fi ++rm -f conftest* -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -+if test "`uname`" = "HP-UX"; then -+ if test "$ac_cv_c_compiler_gnu" = no; then -+ # special override for broken HP-UX compiler - I can't find a way to test -+ # this properly (its a compiler bug) -+ CFLAGS="$CFLAGS -AC99"; -+ c99_init=yes; -+ fi fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_uid_t" >&5 ++$as_echo "$ac_cv_type_uid_t" >&6; } ++if test $ac_cv_type_uid_t = no; then + +-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +-fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_member_struct_sigevent_sigev_value_sigval_ptr" >&5 -$as_echo "$ac_cv_member_struct_sigevent_sigev_value_sigval_ptr" >&6; } -if test "x$ac_cv_member_struct_sigevent_sigev_value_sigval_ptr" = x""yes; then -- ++$as_echo "#define uid_t int" >>confdefs.h + -cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_SIGEVENT_SIGEV_VALUE_SIGVAL_PTR 1 -_ACEOF -+if test x"$c99_init" = x"yes"; then -+ saved_CFLAGS="" ++$as_echo "#define gid_t int" >>confdefs.h -+else -+ CFLAGS="$saved_CFLAGS" -+ saved_CFLAGS="" -+ as_fn_error "c99 structure initializer are not supported" "$LINENO" 5 fi -fi ++ac_fn_c_check_type "$LINENO" "mode_t" "ac_cv_type_mode_t" "$ac_includes_default" ++if test "x$ac_cv_type_mode_t" = x""yes; then : -{ $as_echo "$as_me:$LINENO: checking for struct timespec type" >&5 -$as_echo_n "checking for struct timespec type... " >&6; } -if test "${samba_cv_struct_timespec+set}" = set; then - $as_echo_n "(cached) " >&6 --else -+UNAME_S=`(uname -s) 2>/dev/null` || UNAME_S="unknown" -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking uname -s" >&5 -+$as_echo_n "checking uname -s... " >&6; } -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${UNAME_S}" >&5 -+$as_echo "${UNAME_S}" >&6; } + else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ @@ -39054,12 +38587,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -+UNAME_R=`(uname -r) 2>/dev/null` || UNAME_R="unknown" -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking uname -r" >&5 -+$as_echo_n "checking uname -r... " >&6; } -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${UNAME_R}" >&5 -+$as_echo "${UNAME_R}" >&6; } - +- -#include -#if STDC_HEADERS -#include @@ -39075,12 +38603,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -# include -# endif -#endif -+UNAME_M=`(uname -m) 2>/dev/null` || UNAME_M="unknown" -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking uname -m" >&5 -+$as_echo_n "checking uname -m... " >&6; } -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${UNAME_M}" >&5 -+$as_echo "${UNAME_M}" >&6; } - +- -int -main () -{ @@ -39094,27 +38617,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -+UNAME_P=`(uname -p) 2>/dev/null` || UNAME_P="unknown" -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking uname -p" >&5 -+$as_echo_n "checking uname -p... " >&6; } -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${UNAME_P}" >&5 -+$as_echo "${UNAME_P}" >&6; } -+ -+UNAME_I=`(uname -i) 2>/dev/null` || UNAME_I="unknown" -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking uname -i" >&5 -+$as_echo_n "checking uname -i... " >&6; } -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${UNAME_I}" >&5 -+$as_echo "${UNAME_I}" >&6; } -+ -+ case "$host_os" in -+ *irix6*) -+ #TODO add to libreplace -+ if test x"$ac_cv_c_compiler_gnu" != x"yes" ; then -+ CFLAGS="$CFLAGS -diag_error 1035" -+ CFLAGS="$CFLAGS -woff 1209,1174,3201" -+ fi -+ ;; - esac +-esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 @@ -39131,100 +38634,30 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 ++cat >>confdefs.h <<_ACEOF ++#define mode_t int ++_ACEOF - samba_cv_struct_timespec=no --fi -+DYNEXP= + fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -+ -+default_static_modules="pdb_smbpasswd pdb_tdbsam pdb_wbc_sam rpc_lsarpc rpc_samr rpc_winreg rpc_initshutdown rpc_dssetup rpc_wkssvc rpc_svcctl rpc_ntsvcs rpc_netlogon rpc_netdfs rpc_srvsvc rpc_spoolss rpc_eventlog auth_sam auth_unix auth_winbind auth_wbc auth_server auth_domain auth_builtin auth_netlogond vfs_default nss_info_template" -+ -+default_shared_modules="vfs_recycle vfs_audit vfs_extd_audit vfs_full_audit vfs_netatalk vfs_fake_perms vfs_default_quota vfs_readonly vfs_cap vfs_expand_msdfs vfs_shadow_copy vfs_shadow_copy2 charset_CP850 charset_CP437 auth_script vfs_readahead vfs_xattr_tdb vfs_streams_xattr vfs_streams_depot vfs_acl_xattr vfs_acl_tdb vfs_smb_traffic_analyzer vfs_preopen" -+ -+if test "x$developer" = xyes; then -+ default_static_modules="$default_static_modules rpc_rpcecho" -+ default_shared_modules="$default_shared_modules charset_weird perfcount_test" - fi +-fi -{ $as_echo "$as_me:$LINENO: result: $samba_cv_struct_timespec" >&5 -$as_echo "$samba_cv_struct_timespec" >&6; } -if test x"$samba_cv_struct_timespec" = x"yes"; then ++ac_fn_c_check_type "$LINENO" "off_t" "ac_cv_type_off_t" "$ac_includes_default" ++if test "x$ac_cv_type_off_t" = x""yes; then : ++ ++else -cat >>confdefs.h <<\_ACEOF -#define HAVE_STRUCT_TIMESPEC 1 --_ACEOF -+# -+# Config CPPFLAG settings for strange OS's that must be set -+# before other tests. Do NOT invoke AC_CHECK_HEADERS within this -+# case statement; its first reference must be unconditional. -+# -+case "$host_os" in -+ *hpux*) -+# -+# Defines needed for HPUX support. -+# HPUX has bigcrypt but (sometimes?) doesn't use it for -+# password hashing - hence the USE_BOTH_CRYPT_CALLS define. -+# -+ case `uname -r` in -+ *9*|*10*|*11) -+ -+$as_echo "#define USE_BOTH_CRYPT_CALLS 1" >>confdefs.h -+ -+ ;; -+ esac -+ ;; -+ -+# -+# CRAY Unicos has broken const handling -+ *unicos*) -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: disabling const" >&5 -+$as_echo "disabling const" >&6; } -+ CPPFLAGS="$CPPFLAGS -Dconst=" -+ ;; -+ -+# -+# AIX4.x doesn't even admit to having large -+# files *at all* unless the -D_LARGE_FILE or -D_LARGE_FILE_API flags are set. -+# -+ *aix4*) -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: enabling large file support" >&5 -+$as_echo "enabling large file support" >&6; } -+ CPPFLAGS="$CPPFLAGS -D_LARGE_FILES" -+ -+$as_echo "#define _LARGE_FILES 1" >>confdefs.h -+ -+ ;; -+# -+# Defines needed for Solaris 2.6/2.7 aka 7.0 to make it admit -+# to the existance of large files.. -+# Note that -D_LARGEFILE64_SOURCE is different from the Sun -+# recommendations on large file support, however it makes the -+# compile work using gcc 2.7 and 2.8, whereas using the Sun -+# recommendation makes the compile fail on gcc2.7. JRA. -+# -+# Solaris uses SYSV printing. Make sure to set that here. --jerry -+# -+ *solaris*) -+ -+$as_echo "#define SYSV 1" >>confdefs.h ++cat >>confdefs.h <<_ACEOF ++#define off_t long int + _ACEOF --fi -+ case `uname -r` in -+ 5.0|5.0.*|5.1|5.1.*|5.2|5.2.*|5.3|5.3.*|5.5|5.5.*) -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no large file support" >&5 -+$as_echo "no large file support" >&6; } -+ ;; -+ 5.*) -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: enabling large file support" >&5 -+$as_echo "enabling large file support" >&6; } -+ if test "$ac_cv_c_compiler_gnu" = yes; then -+ ${CC-cc} -v >conftest.c 2>&1 -+ ac_cv_gcc_compiler_version_number=`grep 'gcc version' conftest.c` -+ rm -fr conftest.c -+ case "$ac_cv_gcc_compiler_version_number" in -+ *"gcc version 2.6"*|*"gcc version 2.7"*) -+ CPPFLAGS="$CPPFLAGS -D_LARGEFILE64_SOURCE -D_REENTRANT" -+ LDFLAGS="$LDFLAGS -lthread" + fi -# and glibc has setresuid under linux but the function does -# nothing until kernel 2.1.44! very dumb. @@ -39233,11 +38666,12 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -if test "${samba_cv_have_setresuid+set}" = set; then - $as_echo_n "(cached) " >&6 -else -+$as_echo "#define _LARGEFILE64_SOURCE 1" >>confdefs.h ++ac_fn_c_check_type "$LINENO" "size_t" "ac_cv_type_size_t" "$ac_includes_default" ++if test "x$ac_cv_type_size_t" = x""yes; then : - if test "$cross_compiling" = yes; then - samba_cv_have_setresuid=cross --else + else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF @@ -39246,7 +38680,10 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -/* end confdefs.h. */ -#include -main() { setresuid(1,1,1); setresuid(2,2,2); exit(errno==EPERM?0:1);} --_ACEOF ++ ++cat >>confdefs.h <<_ACEOF ++#define size_t unsigned int + _ACEOF -rm -f conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in @@ -39274,59 +38711,56 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - $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 -+ ;; -+ *) -+ CPPFLAGS="$CPPFLAGS -D_LARGEFILE_SOURCE -D_REENTRANT -D_FILE_OFFSET_BITS=64" -+ LDFLAGS="$LDFLAGS -lthread" -( exit $ac_status ) -samba_cv_have_setresuid=no -fi -rm -rf conftest.dSYM -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext --fi -+$as_echo "#define _LARGEFILE64_SOURCE 1" >>confdefs.h + fi ++ac_fn_c_check_type "$LINENO" "pid_t" "ac_cv_type_pid_t" "$ac_includes_default" ++if test "x$ac_cv_type_pid_t" = x""yes; then : ++ ++else ++ ++cat >>confdefs.h <<_ACEOF ++#define pid_t int ++_ACEOF --fi + fi -{ $as_echo "$as_me:$LINENO: result: $samba_cv_have_setresuid" >&5 -$as_echo "$samba_cv_have_setresuid" >&6; } -if test x"$samba_cv_have_setresuid" = x"yes"; then -+$as_echo "#define _FILE_OFFSET_BITS 64" >>confdefs.h -cat >>confdefs.h <<\_ACEOF -#define HAVE_SETRESUID 1 --_ACEOF -+ ;; -+ esac -+ else -+ CPPFLAGS="$CPPFLAGS -D_LARGEFILE_SOURCE -D_REENTRANT -D_FILE_OFFSET_BITS=64" -+ LDFLAGS="$LDFLAGS -lthread" ++ac_fn_c_check_member "$LINENO" "struct stat" "st_rdev" "ac_cv_member_struct_stat_st_rdev" "$ac_includes_default" ++if test "x$ac_cv_member_struct_stat_st_rdev" = x""yes; then : ++ ++cat >>confdefs.h <<_ACEOF ++#define HAVE_STRUCT_STAT_ST_RDEV 1 + _ACEOF --fi -+$as_echo "#define _LARGEFILE64_SOURCE 1" >>confdefs.h ++ ++$as_echo "#define HAVE_ST_RDEV 1" >>confdefs.h ++ + fi -# Do the same check for setresguid... -+ -+$as_echo "#define _FILE_OFFSET_BITS 64" >>confdefs.h -+ -+ fi -+ ;; -+ esac -+ ;; - # +-# -{ $as_echo "$as_me:$LINENO: checking for real setresgid" >&5 -$as_echo_n "checking for real setresgid... " >&6; } -if test "${samba_cv_have_setresgid+set}" = set; then - $as_echo_n "(cached) " >&6 -else -+# IRIX uses SYSV printing. Make sure to set that here -+# -+ *irix*) - if test "$cross_compiling" = yes; then - samba_cv_have_setresgid=cross --else ++ac_fn_c_check_type "$LINENO" "ino_t" "ac_cv_type_ino_t" "$ac_includes_default" ++if test "x$ac_cv_type_ino_t" = x""yes; then : ++ + else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF @@ -39336,7 +38770,10 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -#include -#include -main() { errno = 0; setresgid(1,1,1); exit(errno != 0 ? (errno==EPERM ? 0 : 1) : 0);} --_ACEOF ++ ++cat >>confdefs.h <<_ACEOF ++#define ino_t unsigned + _ACEOF -rm -f conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in @@ -39364,70 +38801,52 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - $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 -+$as_echo "#define SYSV 1" >>confdefs.h -( exit $ac_status ) -samba_cv_have_setresgid=no -fi -rm -rf conftest.dSYM -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext --fi -+ ;; -+ *freebsd*|*dragonfly*) + fi -+$as_echo "#define FREEBSD 1" >>confdefs.h ++ac_fn_c_check_type "$LINENO" "loff_t" "ac_cv_type_loff_t" "$ac_includes_default" ++if test "x$ac_cv_type_loff_t" = x""yes; then : ++ ++else ++ ++cat >>confdefs.h <<_ACEOF ++#define loff_t off_t ++_ACEOF --fi + fi -{ $as_echo "$as_me:$LINENO: result: $samba_cv_have_setresgid" >&5 -$as_echo "$samba_cv_have_setresgid" >&6; } -if test x"$samba_cv_have_setresgid" = x"yes"; then -+ ;; -+# -+# VOS may need to have POSIX support and System V compatibility enabled. -+# -+ *vos*) -+ case "$CPPFLAGS" in -+ *-D_POSIX_C_SOURCE*) -+ ;; -+ *) -+ CPPFLAGS="$CPPFLAGS -D_POSIX_C_SOURCE=200112L" -cat >>confdefs.h <<\_ACEOF -#define HAVE_SETRESGID 1 --_ACEOF -+$as_echo "#define _POSIX_C_SOURCE 200112L" >>confdefs.h ++ac_fn_c_check_type "$LINENO" "offset_t" "ac_cv_type_offset_t" "$ac_includes_default" ++if test "x$ac_cv_type_offset_t" = x""yes; then : ++ ++else ++ ++cat >>confdefs.h <<_ACEOF ++#define offset_t loff_t + _ACEOF --fi -+ ;; -+ esac -+ case "$CPPFLAGS" in -+ *-D_SYSV*|*-D_SVID_SOURCE*) -+ ;; -+ *) -+ CPPFLAGS="$CPPFLAGS -D_SYSV" + fi -{ $as_echo "$as_me:$LINENO: checking for working memcmp" >&5 --$as_echo_n "checking for working memcmp... " >&6; } --if test "${ac_cv_func_memcmp_working+set}" = set; then -- $as_echo_n "(cached) " >&6 --else -- if test "$cross_compiling" = yes; then -- ac_cv_func_memcmp_working=no -+$as_echo "#define _SYSV 1" >>confdefs.h + -+ esac -+ ;; -+# -+# Tests needed for SINIX large file support. -+# -+ *sysv4*) -+ if test $host = mips-sni-sysv4 ; then -+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for LFS support" >&5 -+$as_echo_n "checking for LFS support... " >&6; } -+ old_CPPFLAGS="$CPPFLAGS" -+ CPPFLAGS="-D_LARGEFILE64_SOURCE $CPPFLAGS" -+ if test "$cross_compiling" = yes; then : -+ SINIX_LFS_SUPPORT=cross ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for working memcmp" >&5 + $as_echo_n "checking for working memcmp... " >&6; } +-if test "${ac_cv_func_memcmp_working+set}" = set; then ++if test "${ac_cv_func_memcmp_working+set}" = set; then : + $as_echo_n "(cached) " >&6 + else +- if test "$cross_compiling" = yes; then ++ if test "$cross_compiling" = yes; then : + ac_cv_func_memcmp_working=no else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ @@ -39436,44 +38855,10 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -cat >>conftest.$ac_ext <<_ACEOF + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ --$ac_includes_default --int --main () --{ -- -- /* Some versions of memcmp are not 8-bit clean. */ -- char c0 = '\100', c1 = '\200', c2 = '\201'; -- if (memcmp(&c0, &c2, 1) >= 0 || memcmp(&c1, &c2, 1) >= 0) -- return 1; -- -- /* The Next x86 OpenStep bug shows up only when comparing 16 bytes -- or more and with at least one buffer not starting on a 4-byte boundary. -- William Lewis provided this test program. */ -- { -- char foo[21]; -- char bar[21]; -- int i; -- for (i = 0; i < 4; i++) -- { -- char *a = foo + i; -- char *b = bar + i; -- strcpy (a, "--------01111111"); -- strcpy (b, "--------10000000"); -- if (memcmp (a, b, 16) >= 0) -- return 1; -- } -- return 0; -- } - -- ; -- return 0; -+#include -+main () { -+#if _LFS64_LARGEFILE == 1 -+exit(0); -+#else -+exit(1); -+#endif + $ac_includes_default + int +@@ -37950,44 +8436,17 @@ + return 0; } _ACEOF -rm -f conftest$ac_exeext @@ -39498,9 +38883,8 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then -- ac_cv_func_memcmp_working=yes +if ac_fn_c_try_run "$LINENO"; then : -+ SINIX_LFS_SUPPORT=yes + ac_cv_func_memcmp_working=yes else - $as_echo "$as_me: program exited with status $ac_status" >&5 -$as_echo "$as_me: failed program was:" >&5 @@ -39508,7 +38892,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - -( exit $ac_status ) -ac_cv_func_memcmp_working=no -+ SINIX_LFS_SUPPORT=no ++ ac_cv_func_memcmp_working=no fi -rm -rf conftest.dSYM -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext @@ -39516,56 +38900,35 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure + conftest.$ac_objext conftest.beam conftest.$ac_ext fi -+ CPPFLAGS="$old_CPPFLAGS" -+ if test x$SINIX_LFS_SUPPORT = xyes ; then -+ CPPFLAGS="-D_LARGEFILE64_SOURCE $CPPFLAGS" - --fi +- + fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_memcmp_working" >&5 --$as_echo "$ac_cv_func_memcmp_working" >&6; } --test $ac_cv_func_memcmp_working = no && case " $LIBOBJS " in -- *" memcmp.$ac_objext "* ) ;; -- *) LIBOBJS="$LIBOBJS memcmp.$ac_objext" -- ;; --esac -+$as_echo "#define _LARGEFILE64_SOURCE 1" >>confdefs.h ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_memcmp_working" >&5 + $as_echo "$ac_cv_func_memcmp_working" >&6; } + test $ac_cv_func_memcmp_working = no && case " $LIBOBJS " in + *" memcmp.$ac_objext "* ) ;; +@@ -37997,166 +8456,26 @@ -+ CFLAGS="`getconf LFS64_CFLAGS` $CFLAGS" -+ LDFLAGS="`getconf LFS64_LDFLAGS` $LDFLAGS" -+ LIBS="`getconf LFS64_LIBS` $LIBS" -+ fi -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $SINIX_LFS_SUPPORT" >&5 -+$as_echo "$SINIX_LFS_SUPPORT" >&6; } -+ fi -+ ;; -+# Systems with LFS support. -+# -+ gnu* | k*bsd*-gnu | kopensolaris*-gnu) -+ CPPFLAGS="-D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE $CPPFLAGS" -############################################### -# Readline included by default unless explicitly asked not to -test "${with_readline+set}" != "set" && with_readline=yes -+$as_echo "#define _LARGEFILE64_SOURCE 1" >>confdefs.h - +- -# test for where we get readline() from -{ $as_echo "$as_me:$LINENO: checking whether to use readline" >&5 -$as_echo_n "checking whether to use readline... " >&6; } - +- -# Check whether --with-readline was given. -if test "${with_readline+set}" = set; then - withval=$with_readline; case "$with_readline" in - yes) - { $as_echo "$as_me:$LINENO: result: yes" >&5 -$as_echo "yes" >&6; } -+$as_echo "#define _FILE_OFFSET_BITS 64" >>confdefs.h - - -+$as_echo "#define _GNU_SOURCE 1" >>confdefs.h - -+ ;; - +- +- +- +- -for ac_header in readline.h history.h readline/readline.h -do -as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` @@ -39579,208 +38942,6 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - $as_echo "$as_val"'` - { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -+# Tests for linux LFS support. Need kernel 2.4 and glibc2.2 or greater support. -+# -+ *linux*) -+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for LFS support" >&5 -+$as_echo_n "checking for LFS support... " >&6; } -+ old_CPPFLAGS="$CPPFLAGS" -+ CPPFLAGS="-D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE $CPPFLAGS" -+ if test "$cross_compiling" = yes; then : -+ LINUX_LFS_SUPPORT=cross - else -- # Is the header compilable? --{ $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 --cat confdefs.h >>conftest.$ac_ext --cat >>conftest.$ac_ext <<_ACEOF -+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ --$ac_includes_default --#include <$ac_header> --_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_header_compiler=yes --else -- $as_echo "$as_me: failed program was:" >&5 --sed 's/^/| /' conftest.$ac_ext >&5 - -- ac_header_compiler=no --fi -+#include -+#include -+#include -+#include -+main() { -+#if _LFS64_LARGEFILE == 1 -+ struct utsname uts; -+ char *release; -+ int major, minor; - --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; } -+ /* Ensure this is glibc 2.2 or higher */ -+#if defined(__GLIBC__) && defined(__GLIBC_MINOR__) -+ int libc_major = __GLIBC__; -+ int libc_minor = __GLIBC_MINOR__; - --# Is the header present? --{ $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 --cat confdefs.h >>conftest.$ac_ext --cat >>conftest.$ac_ext <<_ACEOF --/* end confdefs.h. */ --#include <$ac_header> --_ACEOF --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 -- $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 -- $as_echo "$as_me: failed program was:" >&5 --sed 's/^/| /' conftest.$ac_ext >&5 -+ if (libc_major < 2) -+ exit(1); -+ if (libc_minor < 2) -+ exit(1); -+#endif - -- ac_header_preproc=no --fi -+ /* Ensure this is kernel 2.4 or higher */ - --rm -f conftest.err conftest.$ac_ext --{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 --$as_echo "$ac_header_preproc" >&6; } -+ uname(&uts); -+ release = strdup(uts.release); -+ major = atoi(strsep(&release, ".")); -+ minor = atoi(strsep(&release, ".")); - --# So? What about this header? --case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in -- yes:no: ) -- { $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:* ) -- { $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 samba-technical@samba.org ## --## ---------------------------------------- ## --_ASBOX -- ) | sed "s/^/$as_me: WARNING: /" >&2 -- ;; --esac --{ $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 -+ if (major > 2 || (major == 2 && minor > 3)) -+ exit(0); -+ exit(1); -+#else -+ exit(1); -+#endif -+} -+ -+_ACEOF -+if ac_fn_c_try_run "$LINENO"; then : -+ LINUX_LFS_SUPPORT=yes - else -- eval "$as_ac_Header=\$ac_header_preproc" -+ LINUX_LFS_SUPPORT=no - 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; } -- -+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ -+ conftest.$ac_objext conftest.beam conftest.$ac_ext - fi --as_val=`eval 'as_val=${'$as_ac_Header'} -- $as_echo "$as_val"'` -- if test "x$as_val" = x""yes; then -- cat >>confdefs.h <<_ACEOF --#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 --_ACEOF - --fi -+ CPPFLAGS="$old_CPPFLAGS" -+ if test x$LINUX_LFS_SUPPORT = xyes ; then -+ CPPFLAGS="-D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE $CPPFLAGS" - --done -+$as_echo "#define _LARGEFILE64_SOURCE 1" >>confdefs.h - - --for ac_header in readline/history.h --do --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? -{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5 @@ -39816,625 +38977,14 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 -+$as_echo "#define _FILE_OFFSET_BITS 64" >>confdefs.h - -- ac_header_compiler=no --fi - --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; } -+$as_echo "#define _GNU_SOURCE 1" >>confdefs.h - --# Is the header present? --{ $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 --cat confdefs.h >>conftest.$ac_ext --cat >>conftest.$ac_ext <<_ACEOF --/* end confdefs.h. */ --#include <$ac_header> --_ACEOF --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 -- $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 -- $as_echo "$as_me: failed program was:" >&5 --sed 's/^/| /' conftest.$ac_ext >&5 -+ fi -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LINUX_LFS_SUPPORT" >&5 -+$as_echo "$LINUX_LFS_SUPPORT" >&6; } -+ ;; - -- ac_header_preproc=no --fi -+# -+# MacOS X is the *only* system that uses compose character in utf8. This -+# is so horribly broken.... -+# -+ *darwin*) - --rm -f conftest.err conftest.$ac_ext --{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 --$as_echo "$ac_header_preproc" >&6; } -+$as_echo "#define BROKEN_UNICODE_COMPOSE_CHARACTERS 1" >>confdefs.h - --# So? What about this header? --case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in -- yes:no: ) -- { $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:* ) -- { $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 samba-technical@samba.org ## --## ---------------------------------------- ## --_ASBOX -- ) | sed "s/^/$as_me: WARNING: /" >&2 -- ;; --esac --{ $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 -+ -+# Add a system specific charset module. -+ default_shared_modules="$default_shared_modules charset_macosxfs" -+ -+ ;; -+ *hurd*) -+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for LFS support" >&5 -+$as_echo_n "checking for LFS support... " >&6; } -+ old_CPPFLAGS="$CPPFLAGS" -+ CPPFLAGS="-D_LARGEFILE64_SOURCE -D_GNU_SOURCE $CPPFLAGS" -+ if test "$cross_compiling" = yes; then : -+ GLIBC_LFS_SUPPORT=cross - else -- eval "$as_ac_Header=\$ac_header_preproc" --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; } -+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext -+/* end confdefs.h. */ - --fi --as_val=`eval 'as_val=${'$as_ac_Header'} -- $as_echo "$as_val"'` -- if test "x$as_val" = x""yes; then -- cat >>confdefs.h <<_ACEOF --#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -+#include -+main () { -+#if _LFS64_LARGEFILE == 1 -+exit(0); -+#else -+exit(1); -+#endif -+} - _ACEOF - -+if ac_fn_c_try_run "$LINENO"; then : -+ GLIBC_LFS_SUPPORT=yes -+else -+ GLIBC_LFS_SUPPORT=no -+fi -+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ -+ conftest.$ac_objext conftest.beam conftest.$ac_ext - fi - --done -+ CPPFLAGS="$old_CPPFLAGS" -+ if test x$GLIBC_LFS_SUPPORT = xyes ; then -+ CPPFLAGS="-D_LARGEFILE64_SOURCE -D_GNU_SOURCE $CPPFLAGS" - -+$as_echo "#define _LARGEFILE64_SOURCE 1" >>confdefs.h - - -+$as_echo "#define _GNU_SOURCE 1" >>confdefs.h -+ -+ fi -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GLIBC_LFS_SUPPORT" >&5 -+$as_echo "$GLIBC_LFS_SUPPORT" >&6; } -+ ;; - --for ac_header in readline.h readline/readline.h --do --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? --{ $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 --cat confdefs.h >>conftest.$ac_ext --cat >>conftest.$ac_ext <<_ACEOF --/* end confdefs.h. */ --$ac_includes_default --#include <$ac_header> --_ACEOF --rm -f conftest.$ac_objext --if { (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_header_compiler=yes --else -- $as_echo "$as_me: failed program was:" >&5 --sed 's/^/| /' conftest.$ac_ext >&5 - - ac_header_compiler=no -fi -+SAVE_CPPFLAGS="${CPPFLAGS}" -+CPPFLAGS="${CPPFLAGS} ${SAMBA_CONFIGURE_CPPFLAGS}" - --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? --{ $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 --cat confdefs.h >>conftest.$ac_ext --cat >>conftest.$ac_ext <<_ACEOF --/* end confdefs.h. */ --#include <$ac_header> --_ACEOF --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 -- $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 -- $as_echo "$as_me: failed program was:" >&5 --sed 's/^/| /' conftest.$ac_ext >&5 -+echo "LIBREPLACE_BROKEN_CHECKS: START" - -- ac_header_preproc=no -+libreplacedir="" -+libreplacepaths="$srcdir $srcdir/lib/replace $srcdir/libreplace $srcdir/../libreplace $srcdir/../replace $srcdir/../lib/replace $srcdir/../../../lib/replace" -+for d in $libreplacepaths; do -+ if test -f "$d/replace.c"; then -+ libreplacedir="$d" -+ -+ break; -+ fi -+done -+if test x"$libreplacedir" = "x"; then -+ as_fn_error "cannot find libreplace in $libreplacepaths" "$LINENO" 5 - fi - --rm -f conftest.err conftest.$ac_ext --{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 --$as_echo "$ac_header_preproc" >&6; } -+LIBREPLACEOBJ="replace.o" - --# So? What about this header? --case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in -- yes:no: ) -- { $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:* ) -- { $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 samba-technical@samba.org ## --## ---------------------------------------- ## --_ASBOX -- ) | sed "s/^/$as_me: WARNING: /" >&2 -- ;; --esac --{ $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 --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 --as_val=`eval 'as_val=${'$as_ac_Header'} -- $as_echo "$as_val"'` -- if test "x$as_val" = x""yes; then -- cat >>confdefs.h <<_ACEOF --#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 --_ACEOF -+LIBREPLACEOBJ="${LIBREPLACEOBJ} snprintf.o" - -- for termlib in ncurses curses termcap terminfo termlib tinfo; do -- as_ac_Lib=`$as_echo "ac_cv_lib_${termlib}''_tgetent" | $as_tr_sh` --{ $as_echo "$as_me:$LINENO: checking for tgetent in -l${termlib}" >&5 --$as_echo_n "checking for tgetent in -l${termlib}... " >&6; } --if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then -- $as_echo_n "(cached) " >&6 --else -- ac_check_lib_save_LIBS=$LIBS --LIBS="-l${termlib} $LIBS" --cat >conftest.$ac_ext <<_ACEOF --/* confdefs.h. */ --_ACEOF --cat confdefs.h >>conftest.$ac_ext --cat >>conftest.$ac_ext <<_ACEOF -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking return type of signal handlers" >&5 -+$as_echo_n "checking return type of signal handlers... " >&6; } -+if test "${ac_cv_type_signal+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ -+#include -+#include - --/* 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 --char tgetent (); - int - main () - { --return tgetent (); -+return *(signal (0, 0)) (0) == 1; - ; - return 0; - } - _ACEOF --rm -f conftest.$ac_objext conftest$ac_exeext --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 -- $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 -- eval "$as_ac_Lib=yes" -+if ac_fn_c_try_compile "$LINENO"; then : -+ ac_cv_type_signal=int - else -- $as_echo "$as_me: failed program was:" >&5 --sed 's/^/| /' conftest.$ac_ext >&5 - -- eval "$as_ac_Lib=no" -+ ac_cv_type_signal=void - fi +-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; } - --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 --ac_res=`eval 'as_val=${'$as_ac_Lib'} -- $as_echo "$as_val"'` -- { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 --$as_echo "$ac_res" >&6; } --as_val=`eval 'as_val=${'$as_ac_Lib'} -- $as_echo "$as_val"'` -- if test "x$as_val" = x""yes; then -- TERMLIBS="-l${termlib}"; break -+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_signal" >&5 -+$as_echo "$ac_cv_type_signal" >&6; } - -- done -- { $as_echo "$as_me:$LINENO: checking for rl_callback_handler_install in -lreadline" >&5 --$as_echo_n "checking for rl_callback_handler_install in -lreadline... " >&6; } --if test "${ac_cv_lib_readline_rl_callback_handler_install+set}" = set; then -+cat >>confdefs.h <<_ACEOF -+#define RETSIGTYPE $ac_cv_type_signal -+_ACEOF -+ -+ -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for uid_t in sys/types.h" >&5 -+$as_echo_n "checking for uid_t in sys/types.h... " >&6; } -+if test "${ac_cv_type_uid_t+set}" = set; then : - $as_echo_n "(cached) " >&6 - else -- ac_check_lib_save_LIBS=$LIBS --LIBS="-lreadline $TERMLIBS $LIBS" --cat >conftest.$ac_ext <<_ACEOF --/* confdefs.h. */ --_ACEOF --cat confdefs.h >>conftest.$ac_ext --cat >>conftest.$ac_ext <<_ACEOF -+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ -+#include - --/* 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 --char rl_callback_handler_install (); --int --main () --{ --return rl_callback_handler_install (); -- ; -- return 0; --} - _ACEOF --rm -f conftest.$ac_objext conftest$ac_exeext --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 -- $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_readline_rl_callback_handler_install=yes -+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | -+ $EGREP "uid_t" >/dev/null 2>&1; then : -+ ac_cv_type_uid_t=yes - else -- $as_echo "$as_me: failed program was:" >&5 --sed 's/^/| /' conftest.$ac_ext >&5 -+ ac_cv_type_uid_t=no -+fi -+rm -f conftest* - -- ac_cv_lib_readline_rl_callback_handler_install=no - fi -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_uid_t" >&5 -+$as_echo "$ac_cv_type_uid_t" >&6; } -+if test $ac_cv_type_uid_t = no; then -+ -+$as_echo "#define uid_t int" >>confdefs.h -+ -+ -+$as_echo "#define gid_t int" >>confdefs.h - --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 --{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_readline_rl_callback_handler_install" >&5 --$as_echo "$ac_cv_lib_readline_rl_callback_handler_install" >&6; } --if test "x$ac_cv_lib_readline_rl_callback_handler_install" = x""yes; then -- TERMLIBS="-lreadline $TERMLIBS" - --cat >>confdefs.h <<\_ACEOF --#define HAVE_LIBREADLINE 1 --_ACEOF -+ac_fn_c_check_type "$LINENO" "mode_t" "ac_cv_type_mode_t" "$ac_includes_default" -+if test "x$ac_cv_type_mode_t" = x""yes; then : - -- break - else -- TERMLIBS= --fi -+ -+cat >>confdefs.h <<_ACEOF -+#define mode_t int -+_ACEOF - - fi - --done -+ac_fn_c_check_type "$LINENO" "off_t" "ac_cv_type_off_t" "$ac_includes_default" -+if test "x$ac_cv_type_off_t" = x""yes; then : - -- ;; -- no) -- { $as_echo "$as_me:$LINENO: result: no" >&5 --$as_echo "no" >&6; } -- ;; -- *) -- { $as_echo "$as_me:$LINENO: result: yes" >&5 --$as_echo "yes" >&6; } -+else - -- # Needed for AC_CHECK_HEADERS and AC_CHECK_LIB to look at -- # alternate readline path -- _ldflags=${LDFLAGS} -- _cppflags=${CPPFLAGS} -+cat >>confdefs.h <<_ACEOF -+#define off_t long int -+_ACEOF - -- # Add additional search path -- LDFLAGS="-L$with_readline/lib $LDFLAGS" -- CPPFLAGS="-I$with_readline/include $CPPFLAGS" -+fi - -+ac_fn_c_check_type "$LINENO" "size_t" "ac_cv_type_size_t" "$ac_includes_default" -+if test "x$ac_cv_type_size_t" = x""yes; then : - -+else - -+cat >>confdefs.h <<_ACEOF -+#define size_t unsigned int -+_ACEOF - --for ac_header in readline.h history.h readline/readline.h --do --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; } -+ -+ac_fn_c_check_type "$LINENO" "pid_t" "ac_cv_type_pid_t" "$ac_includes_default" -+if test "x$ac_cv_type_pid_t" = x""yes; then : -+ - else -- # Is the header compilable? --{ $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 --cat confdefs.h >>conftest.$ac_ext --cat >>conftest.$ac_ext <<_ACEOF --/* end confdefs.h. */ --$ac_includes_default --#include <$ac_header> -+ -+cat >>confdefs.h <<_ACEOF -+#define pid_t int - _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_header_compiler=yes --else -- $as_echo "$as_me: failed program was:" >&5 --sed 's/^/| /' conftest.$ac_ext >&5 - -- ac_header_compiler=no - fi - --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; } -+ac_fn_c_check_member "$LINENO" "struct stat" "st_rdev" "ac_cv_member_struct_stat_st_rdev" "$ac_includes_default" -+if test "x$ac_cv_member_struct_stat_st_rdev" = x""yes; then : - -# Is the header present? -{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5 -$as_echo_n "checking $ac_header presence... " >&6; } @@ -40445,240 +38995,6 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include <$ac_header> -+cat >>confdefs.h <<_ACEOF -+#define HAVE_STRUCT_STAT_ST_RDEV 1 - _ACEOF --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 -- $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 -- $as_echo "$as_me: failed program was:" >&5 --sed 's/^/| /' conftest.$ac_ext >&5 - -- ac_header_preproc=no -+ -+$as_echo "#define HAVE_ST_RDEV 1" >>confdefs.h -+ - fi - --rm -f conftest.err conftest.$ac_ext --{ $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: ) -- { $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:* ) -- { $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 samba-technical@samba.org ## --## ---------------------------------------- ## --_ASBOX -- ) | sed "s/^/$as_me: WARNING: /" >&2 -- ;; --esac --{ $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 -+ac_fn_c_check_type "$LINENO" "ino_t" "ac_cv_type_ino_t" "$ac_includes_default" -+if test "x$ac_cv_type_ino_t" = x""yes; then : -+ - else -- eval "$as_ac_Header=\$ac_header_preproc" --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; } - --fi --as_val=`eval 'as_val=${'$as_ac_Header'} -- $as_echo "$as_val"'` -- if test "x$as_val" = x""yes; then -- cat >>confdefs.h <<_ACEOF --#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -+cat >>confdefs.h <<_ACEOF -+#define ino_t unsigned - _ACEOF - - fi - --done -+ac_fn_c_check_type "$LINENO" "loff_t" "ac_cv_type_loff_t" "$ac_includes_default" -+if test "x$ac_cv_type_loff_t" = x""yes; then : - -+else -+ -+cat >>confdefs.h <<_ACEOF -+#define loff_t off_t -+_ACEOF - --for ac_header in readline/history.h --do --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; } -+ -+ac_fn_c_check_type "$LINENO" "offset_t" "ac_cv_type_offset_t" "$ac_includes_default" -+if test "x$ac_cv_type_offset_t" = x""yes; then : -+ - else -- # Is the header compilable? --{ $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. */ -+ -+cat >>confdefs.h <<_ACEOF -+#define offset_t loff_t - _ACEOF --cat confdefs.h >>conftest.$ac_ext --cat >>conftest.$ac_ext <<_ACEOF -+ -+fi -+ -+ -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for working memcmp" >&5 -+$as_echo_n "checking for working memcmp... " >&6; } -+if test "${ac_cv_func_memcmp_working+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ if test "$cross_compiling" = yes; then : -+ ac_cv_func_memcmp_working=no -+else -+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ - $ac_includes_default --#include <$ac_header> -+int -+main () -+{ -+ -+ /* Some versions of memcmp are not 8-bit clean. */ -+ char c0 = '\100', c1 = '\200', c2 = '\201'; -+ if (memcmp(&c0, &c2, 1) >= 0 || memcmp(&c1, &c2, 1) >= 0) -+ return 1; -+ -+ /* The Next x86 OpenStep bug shows up only when comparing 16 bytes -+ or more and with at least one buffer not starting on a 4-byte boundary. -+ William Lewis provided this test program. */ -+ { -+ char foo[21]; -+ char bar[21]; -+ int i; -+ for (i = 0; i < 4; i++) -+ { -+ char *a = foo + i; -+ char *b = bar + i; -+ strcpy (a, "--------01111111"); -+ strcpy (b, "--------10000000"); -+ if (memcmp (a, b, 16) >= 0) -+ return 1; -+ } -+ return 0; -+ } -+ -+ ; -+ 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_header_compiler=yes -+if ac_fn_c_try_run "$LINENO"; then : -+ ac_cv_func_memcmp_working=yes - else -- $as_echo "$as_me: failed program was:" >&5 --sed 's/^/| /' conftest.$ac_ext >&5 -+ ac_cv_func_memcmp_working=no -+fi -+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ -+ conftest.$ac_objext conftest.beam conftest.$ac_ext -+fi - -- ac_header_compiler=no - fi -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_memcmp_working" >&5 -+$as_echo "$ac_cv_func_memcmp_working" >&6; } -+test $ac_cv_func_memcmp_working = no && case " $LIBOBJS " in -+ *" memcmp.$ac_objext "* ) ;; -+ *) LIBOBJS="$LIBOBJS memcmp.$ac_objext" -+ ;; -+esac - --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? --{ $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 --cat confdefs.h >>conftest.$ac_ext --cat >>conftest.$ac_ext <<_ACEOF --/* end confdefs.h. */ --#include <$ac_header> -+ +for ac_func in pipe strftime srandom random srand rand usleep setbuffer lstat getpgrp utime utimes +do : + as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` @@ -40717,7 +39033,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -rm -f conftest.err conftest.$ac_ext -{ $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: ) @@ -40759,24 +39075,12 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - $as_echo "$as_val"'` - { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -+for ac_header in stdbool.h stdint.h sys/select.h -+do : -+ as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -+ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" -+eval as_val=\$$as_ac_Header -+ if test "x$as_val" = x""yes; then : -+ cat >>confdefs.h <<_ACEOF -+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -+_ACEOF - fi +-fi -as_val=`eval 'as_val=${'$as_ac_Header'} - $as_echo "$as_val"'` - if test "x$as_val" = x""yes; then -+ -+done -+ -+for ac_header in setjmp.h utime.h ++for ac_header in stdbool.h stdint.h sys/select.h +do : + as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" @@ -40785,19 +39089,12 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF -@@ -39440,732 +8791,430 @@ +@@ -38165,149 +8484,12 @@ + done - -+ac_fn_c_check_header_mongrel "$LINENO" "stdint.h" "ac_cv_header_stdint_h" "$ac_includes_default" -+if test "x$ac_cv_header_stdint_h" = x""yes; then : -+ ac_config_commands="$ac_config_commands rm-stdint.h" -+ -+else -+ ac_config_commands="$ac_config_commands mk-stdint.h" - - --for ac_header in readline.h readline/readline.h +- +-for ac_header in readline/history.h -do -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 @@ -40805,19 +39102,12 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -$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 +-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; } -+ -+ -+ -+ac_fn_c_check_header_mongrel "$LINENO" "stdbool.h" "ac_cv_header_stdbool_h" "$ac_includes_default" -+if test "x$ac_cv_header_stdbool_h" = x""yes; then : -+ ac_config_commands="$ac_config_commands rm-stdbool.h" -+ - else +-else - # Is the header compilable? -{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5 -$as_echo_n "checking $ac_header usability... " >&6; } @@ -40827,16 +39117,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -+ ac_config_commands="$ac_config_commands mk-stdbool.h" -+ -+ -+fi -+ -+ -+ -+ -+ac_fn_c_check_type "$LINENO" "bool" "ac_cv_type_bool" " - $ac_includes_default +-$ac_includes_default -#include <$ac_header> -_ACEOF -rm -f conftest.$ac_objext @@ -40861,21 +39142,174 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 -+#ifdef HAVE_STDBOOL_H -+#include -+#endif -+ -+" -+if test "x$ac_cv_type_bool" = x""yes; then : -+ -+$as_echo "#define HAVE_BOOL 1" >>confdefs.h - +- - ac_header_compiler=no - fi - +-fi +- -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? +-{ $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 +-cat confdefs.h >>conftest.$ac_ext +-cat >>conftest.$ac_ext <<_ACEOF +-/* end confdefs.h. */ +-#include <$ac_header> +-_ACEOF +-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 +- $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 +- $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 +-{ $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: ) +- { $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:* ) +- { $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 samba-technical@samba.org ## +-## ---------------------------------------- ## +-_ASBOX +- ) | sed "s/^/$as_me: WARNING: /" >&2 +- ;; +-esac +-{ $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 +-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 +-as_val=`eval 'as_val=${'$as_ac_Header'} +- $as_echo "$as_val"'` +- if test "x$as_val" = x""yes; then ++for ac_header in setjmp.h utime.h ++do : ++ as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ++ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" ++eval as_val=\$$as_ac_Header ++ if test "x$as_val" = x""yes; then : + cat >>confdefs.h <<_ACEOF + #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 + _ACEOF +@@ -38317,474 +8499,97 @@ + done + + ++ac_fn_c_check_header_mongrel "$LINENO" "stdint.h" "ac_cv_header_stdint_h" "$ac_includes_default" ++if test "x$ac_cv_header_stdint_h" = x""yes; then : ++ ac_config_commands="$ac_config_commands rm-stdint.h" + +- +-for ac_header in readline.h readline/readline.h +-do +-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? +-{ $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 +-cat confdefs.h >>conftest.$ac_ext +-cat >>conftest.$ac_ext <<_ACEOF +-/* end confdefs.h. */ +-$ac_includes_default +-#include <$ac_header> +-_ACEOF +-rm -f conftest.$ac_objext +-if { (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_header_compiler=yes + else +- $as_echo "$as_me: failed program was:" >&5 +-sed 's/^/| /' conftest.$ac_ext >&5 +- +- ac_header_compiler=no +-fi +- +-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; } ++ ac_config_commands="$ac_config_commands mk-stdint.h" -# Is the header present? -{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5 @@ -40909,16 +39343,6 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 -+ac_fn_c_check_type "$LINENO" "_Bool" "ac_cv_type__Bool" " -+$ac_includes_default -+#ifdef HAVE_STDBOOL_H -+#include -+#endif -+ -+" -+if test "x$ac_cv_type__Bool" = x""yes; then : -+ -+$as_echo "#define HAVE__Bool 1" >>confdefs.h - ac_header_preproc=no fi @@ -40926,6 +39350,753 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -rm -f conftest.err conftest.$ac_ext -{ $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: ) +- { $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:* ) +- { $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 samba-technical@samba.org ## +-## ---------------------------------------- ## +-_ASBOX +- ) | sed "s/^/$as_me: WARNING: /" >&2 +- ;; +-esac +-{ $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 +-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 +-as_val=`eval 'as_val=${'$as_ac_Header'} +- $as_echo "$as_val"'` +- if test "x$as_val" = x""yes; then +- cat >>confdefs.h <<_ACEOF +-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +-_ACEOF + +- for termlib in ncurses curses termcap terminfo termlib tinfo; do +- as_ac_Lib=`$as_echo "ac_cv_lib_${termlib}''_tgetent" | $as_tr_sh` +-{ $as_echo "$as_me:$LINENO: checking for tgetent in -l${termlib}" >&5 +-$as_echo_n "checking for tgetent in -l${termlib}... " >&6; } +-if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then +- $as_echo_n "(cached) " >&6 +-else +- ac_check_lib_save_LIBS=$LIBS +-LIBS="-l${termlib} $LIBS" +-cat >conftest.$ac_ext <<_ACEOF +-/* confdefs.h. */ +-_ACEOF +-cat confdefs.h >>conftest.$ac_ext +-cat >>conftest.$ac_ext <<_ACEOF +-/* end confdefs.h. */ ++ac_fn_c_check_header_mongrel "$LINENO" "stdbool.h" "ac_cv_header_stdbool_h" "$ac_includes_default" ++if test "x$ac_cv_header_stdbool_h" = x""yes; then : ++ ac_config_commands="$ac_config_commands rm-stdbool.h" + +-/* 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 +-char tgetent (); +-int +-main () +-{ +-return tgetent (); +- ; +- return 0; +-} +-_ACEOF +-rm -f conftest.$ac_objext conftest$ac_exeext +-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 +- $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 +- eval "$as_ac_Lib=yes" + else +- $as_echo "$as_me: failed program was:" >&5 +-sed 's/^/| /' conftest.$ac_ext >&5 ++ ac_config_commands="$ac_config_commands mk-stdbool.h" + +- eval "$as_ac_Lib=no" +-fi + +-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 +-ac_res=`eval 'as_val=${'$as_ac_Lib'} +- $as_echo "$as_val"'` +- { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +-$as_echo "$ac_res" >&6; } +-as_val=`eval 'as_val=${'$as_ac_Lib'} +- $as_echo "$as_val"'` +- if test "x$as_val" = x""yes; then +- TERMLIBS="-l${termlib}"; break + fi + +- done +- { $as_echo "$as_me:$LINENO: checking for rl_callback_handler_install in -lreadline" >&5 +-$as_echo_n "checking for rl_callback_handler_install in -lreadline... " >&6; } +-if test "${ac_cv_lib_readline_rl_callback_handler_install+set}" = set; then +- $as_echo_n "(cached) " >&6 +-else +- ac_check_lib_save_LIBS=$LIBS +-LIBS="-lreadline $TERMLIBS $LIBS" +-cat >conftest.$ac_ext <<_ACEOF +-/* confdefs.h. */ +-_ACEOF +-cat confdefs.h >>conftest.$ac_ext +-cat >>conftest.$ac_ext <<_ACEOF +-/* end confdefs.h. */ + +-/* Override any 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 +-char rl_callback_handler_install (); +-int +-main () +-{ +-return rl_callback_handler_install (); +- ; +- return 0; +-} +-_ACEOF +-rm -f conftest.$ac_objext conftest$ac_exeext +-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 +- $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_readline_rl_callback_handler_install=yes +-else +- $as_echo "$as_me: failed program was:" >&5 +-sed 's/^/| /' conftest.$ac_ext >&5 + +- ac_cv_lib_readline_rl_callback_handler_install=no +-fi + +-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 +-{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_readline_rl_callback_handler_install" >&5 +-$as_echo "$ac_cv_lib_readline_rl_callback_handler_install" >&6; } +-if test "x$ac_cv_lib_readline_rl_callback_handler_install" = x""yes; then +- TERMLIBS="-lreadline $TERMLIBS" ++ac_fn_c_check_type "$LINENO" "bool" "ac_cv_type_bool" " ++$ac_includes_default ++#ifdef HAVE_STDBOOL_H ++#include ++#endif + +-cat >>confdefs.h <<\_ACEOF +-#define HAVE_LIBREADLINE 1 +-_ACEOF ++" ++if test "x$ac_cv_type_bool" = x""yes; then : + +- break +-else +- TERMLIBS= +-fi ++$as_echo "#define HAVE_BOOL 1" >>confdefs.h + + fi + +-done +- +- ;; +- no) +- { $as_echo "$as_me:$LINENO: result: no" >&5 +-$as_echo "no" >&6; } +- ;; +- *) +- { $as_echo "$as_me:$LINENO: result: yes" >&5 +-$as_echo "yes" >&6; } + +- # Needed for AC_CHECK_HEADERS and AC_CHECK_LIB to look at +- # alternate readline path +- _ldflags=${LDFLAGS} +- _cppflags=${CPPFLAGS} ++ac_fn_c_check_type "$LINENO" "_Bool" "ac_cv_type__Bool" " ++$ac_includes_default ++#ifdef HAVE_STDBOOL_H ++#include ++#endif + +- # Add additional search path +- LDFLAGS="-L$with_readline/lib $LDFLAGS" +- CPPFLAGS="-I$with_readline/include $CPPFLAGS" ++" ++if test "x$ac_cv_type__Bool" = x""yes; then : + ++$as_echo "#define HAVE__Bool 1" >>confdefs.h + ++fi + + +-for ac_header in readline.h history.h readline/readline.h +-do +-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 "$as_me:${as_lineno-$LINENO}: checking for working mmap" >&5 ++$as_echo_n "checking for working mmap... " >&6; } ++if test "${libreplace_cv_HAVE_MMAP+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? +-{ $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 +-cat confdefs.h >>conftest.$ac_ext +-cat >>conftest.$ac_ext <<_ACEOF +-/* end confdefs.h. */ +-$ac_includes_default +-#include <$ac_header> +-_ACEOF +-rm -f conftest.$ac_objext +-if { (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_header_compiler=yes + else +- $as_echo "$as_me: failed program was:" >&5 +-sed 's/^/| /' conftest.$ac_ext >&5 +- +- ac_header_compiler=no +-fi +- +-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? +-{ $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 +-cat confdefs.h >>conftest.$ac_ext +-cat >>conftest.$ac_ext <<_ACEOF ++if test "$cross_compiling" = yes; then : ++ libreplace_cv_HAVE_MMAP=cross ++else ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ +-#include <$ac_header> ++#include "$libreplacedir/test/shared_mmap.c" + _ACEOF +-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 +- $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 +- $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 +-{ $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: ) +- { $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:* ) +- { $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 samba-technical@samba.org ## +-## ---------------------------------------- ## +-_ASBOX +- ) | sed "s/^/$as_me: WARNING: /" >&2 +- ;; +-esac +-{ $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 ++if ac_fn_c_try_run "$LINENO"; then : ++ libreplace_cv_HAVE_MMAP=yes + else +- eval "$as_ac_Header=\$ac_header_preproc" ++ libreplace_cv_HAVE_MMAP=no + 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; } ++rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ ++ conftest.$ac_objext conftest.beam conftest.$ac_ext ++fi ++ ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libreplace_cv_HAVE_MMAP" >&5 ++$as_echo "$libreplace_cv_HAVE_MMAP" >&6; } ++if test x"$libreplace_cv_HAVE_MMAP" = x"yes"; then ++ ++$as_echo "#define HAVE_MMAP 1" >>confdefs.h + + fi +-as_val=`eval 'as_val=${'$as_ac_Header'} +- $as_echo "$as_val"'` +- if test "x$as_val" = x""yes; then ++ ++ ++for ac_header in sys/syslog.h syslog.h ++do : ++ as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ++ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" ++eval as_val=\$$as_ac_Header ++ if test "x$as_val" = x""yes; then : + cat >>confdefs.h <<_ACEOF + #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 + _ACEOF +@@ -38793,149 +8598,40 @@ + + done + +- +-for ac_header in readline/history.h +-do +-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? +-{ $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 +-cat confdefs.h >>conftest.$ac_ext +-cat >>conftest.$ac_ext <<_ACEOF +-/* end confdefs.h. */ +-$ac_includes_default +-#include <$ac_header> ++for ac_header in sys/time.h time.h ++do : ++ as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ++ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" ++eval as_val=\$$as_ac_Header ++ if test "x$as_val" = x""yes; then : ++ cat >>confdefs.h <<_ACEOF ++#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 + _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_header_compiler=yes +-else +- $as_echo "$as_me: failed program was:" >&5 +-sed 's/^/| /' conftest.$ac_ext >&5 + +- ac_header_compiler=no + fi + +-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; } ++done + +-# Is the header present? +-{ $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 +-cat confdefs.h >>conftest.$ac_ext +-cat >>conftest.$ac_ext <<_ACEOF +-/* end confdefs.h. */ +-#include <$ac_header> ++for ac_header in stdarg.h vararg.h ++do : ++ as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ++ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" ++eval as_val=\$$as_ac_Header ++ if test "x$as_val" = x""yes; then : ++ cat >>confdefs.h <<_ACEOF ++#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 + _ACEOF +-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 +- $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 +- $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 +-{ $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: ) +- { $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:* ) +- { $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 samba-technical@samba.org ## +-## ---------------------------------------- ## +-_ASBOX +- ) | sed "s/^/$as_me: WARNING: /" >&2 +- ;; +-esac +-{ $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 +-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; } ++done + +-fi +-as_val=`eval 'as_val=${'$as_ac_Header'} +- $as_echo "$as_val"'` +- if test "x$as_val" = x""yes; then ++for ac_header in sys/mount.h mntent.h ++do : ++ as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ++ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" ++eval as_val=\$$as_ac_Header ++ if test "x$as_val" = x""yes; then : + cat >>confdefs.h <<_ACEOF + #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 + _ACEOF +@@ -38944,946 +8640,569 @@ + + done + ++for ac_header in stropts.h ++do : ++ ac_fn_c_check_header_mongrel "$LINENO" "stropts.h" "ac_cv_header_stropts_h" "$ac_includes_default" ++if test "x$ac_cv_header_stropts_h" = x""yes; then : ++ cat >>confdefs.h <<_ACEOF ++#define HAVE_STROPTS_H 1 ++_ACEOF + ++fi + ++done + +-for ac_header in readline.h readline/readline.h +-do +-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? +-{ $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 +-cat confdefs.h >>conftest.$ac_ext +-cat >>conftest.$ac_ext <<_ACEOF +-/* end confdefs.h. */ +-$ac_includes_default +-#include <$ac_header> ++for ac_header in unix.h ++do : ++ ac_fn_c_check_header_mongrel "$LINENO" "unix.h" "ac_cv_header_unix_h" "$ac_includes_default" ++if test "x$ac_cv_header_unix_h" = x""yes; then : ++ cat >>confdefs.h <<_ACEOF ++#define HAVE_UNIX_H 1 + _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_header_compiler=yes +-else +- $as_echo "$as_me: failed program was:" >&5 +-sed 's/^/| /' conftest.$ac_ext >&5 + +- ac_header_compiler=no + fi + +-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; } ++done + +-# Is the header present? +-{ $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. */ ++ ++for ac_func in seteuid setresuid setegid setresgid chroot bzero strerror ++do : ++ as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ++ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" ++eval as_val=\$$as_ac_var ++ if test "x$as_val" = x""yes; then : ++ cat >>confdefs.h <<_ACEOF ++#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 + _ACEOF +-cat confdefs.h >>conftest.$ac_ext +-cat >>conftest.$ac_ext <<_ACEOF +-/* end confdefs.h. */ +-#include <$ac_header> ++ ++fi ++done ++ ++for ac_func in vsyslog setlinebuf mktime ftruncate chsize rename ++do : ++ as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ++ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" ++eval as_val=\$$as_ac_var ++ if test "x$as_val" = x""yes; then : ++ cat >>confdefs.h <<_ACEOF ++#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 + _ACEOF +-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 +- $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 +- $as_echo "$as_me: failed program was:" >&5 +-sed 's/^/| /' conftest.$ac_ext >&5 + +- ac_header_preproc=no + fi ++done + +-rm -f conftest.err conftest.$ac_ext +-{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +-$as_echo "$ac_header_preproc" >&6; } ++for ac_func in waitpid wait4 strlcpy strlcat initgroups memmove strdup ++do : ++ as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ++ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" ++eval as_val=\$$as_ac_var ++ if test "x$as_val" = x""yes; then : ++ cat >>confdefs.h <<_ACEOF ++#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 ++_ACEOF -# So? What about this header? -case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in @@ -40960,54 +40131,41 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -{ $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 "$as_me:${as_lineno-$LINENO}: checking for working mmap" >&5 -+$as_echo_n "checking for working mmap... " >&6; } -+if test "${libreplace_cv_HAVE_MMAP+set}" = set; then : - $as_echo_n "(cached) " >&6 - else +- $as_echo_n "(cached) " >&6 +-else - eval "$as_ac_Header=\$ac_header_preproc" -+ -+if test "$cross_compiling" = yes; then : -+ libreplace_cv_HAVE_MMAP=cross -+else -+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext -+/* end confdefs.h. */ -+#include "$libreplacedir/test/shared_mmap.c" -+_ACEOF -+if ac_fn_c_try_run "$LINENO"; then : -+ libreplace_cv_HAVE_MMAP=yes -+else -+ libreplace_cv_HAVE_MMAP=no 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; } -+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ -+ conftest.$ac_objext conftest.beam conftest.$ac_ext -+fi ++done + -+fi -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libreplace_cv_HAVE_MMAP" >&5 -+$as_echo "$libreplace_cv_HAVE_MMAP" >&6; } -+if test x"$libreplace_cv_HAVE_MMAP" = x"yes"; then -+ -+$as_echo "#define HAVE_MMAP 1" >>confdefs.h ++for ac_func in pread pwrite strndup strcasestr strtok_r mkdtemp dup2 ++do : ++ as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ++ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" ++eval as_val=\$$as_ac_var ++ if test "x$as_val" = x""yes; then : ++ cat >>confdefs.h <<_ACEOF ++#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 ++_ACEOF fi -as_val=`eval 'as_val=${'$as_ac_Header'} - $as_echo "$as_val"'` - if test "x$as_val" = x""yes; then ++done + -+ -+for ac_header in sys/syslog.h syslog.h ++for ac_func in isatty chown lchown link readlink symlink realpath +do : -+ as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -+ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" -+eval as_val=\$$as_ac_Header ++ as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ++ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" ++eval as_val=\$$as_ac_var + if test "x$as_val" = x""yes; then : cat >>confdefs.h <<_ACEOF - #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 ++#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF - for termlib in ncurses curses termcap terminfo termlib; do @@ -41015,8 +40173,15 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -{ $as_echo "$as_me:$LINENO: checking for tgetent in -l${termlib}" >&5 -$as_echo_n "checking for tgetent in -l${termlib}... " >&6; } -if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then -- $as_echo_n "(cached) " >&6 --else ++fi ++done ++ ++ ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for setresuid declaration" >&5 ++$as_echo_n "checking for setresuid declaration... " >&6; } ++if test "${ac_cv_have_setresuid_decl+set}" = set; then : + $as_echo_n "(cached) " >&6 + else - ac_check_lib_save_LIBS=$LIBS -LIBS="-l${termlib} $LIBS" -cat >conftest.$ac_ext <<_ACEOF @@ -41025,7 +40190,6 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -+fi -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC @@ -41034,23 +40198,17 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -extern "C" -#endif -char tgetent (); --int --main () --{ ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++#include + int + main () + { -return tgetent (); -- ; -- return 0; --} -+done -+ -+for ac_header in sys/time.h time.h -+do : -+ as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -+ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" -+eval as_val=\$$as_ac_Header -+ if test "x$as_val" = x""yes; then : -+ cat >>confdefs.h <<_ACEOF -+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 ++int i = (int)setresuid + ; + return 0; + } _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" @@ -41074,18 +40232,21 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - $as_test_x conftest$ac_exeext - }; then - eval "$as_ac_Lib=yes" --else ++if ac_fn_c_try_compile "$LINENO"; then : ++ ac_cv_have_setresuid_decl=yes + else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - +- - eval "$as_ac_Lib=no" - fi - +-fi +- -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 ++ ac_cv_have_setresuid_decl=no + fi -ac_res=`eval 'as_val=${'$as_ac_Lib'} - $as_echo "$as_val"'` - { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 @@ -41094,41 +40255,31 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - $as_echo "$as_val"'` - if test "x$as_val" = x""yes; then - TERMLIBS="-l${termlib}"; break -+done -+ -+for ac_header in stdarg.h vararg.h -+do : -+ as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -+ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" -+eval as_val=\$$as_ac_Header -+ if test "x$as_val" = x""yes; then : -+ cat >>confdefs.h <<_ACEOF -+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -+_ACEOF -+ ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_have_setresuid_decl" >&5 ++$as_echo "$ac_cv_have_setresuid_decl" >&6; } ++ if test x"$ac_cv_have_setresuid_decl" = x"yes"; then - done - { $as_echo "$as_me:$LINENO: checking for rl_callback_handler_install in -lreadline" >&5 -$as_echo_n "checking for rl_callback_handler_install in -lreadline... " >&6; } -if test "${ac_cv_lib_readline_rl_callback_handler_install+set}" = set; then -- $as_echo_n "(cached) " >&6 --else ++$as_echo "#define HAVE_SETRESUID_DECL 1" >>confdefs.h ++ ++ fi ++ ++ ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for setresgid declaration" >&5 ++$as_echo_n "checking for setresgid declaration... " >&6; } ++if test "${ac_cv_have_setresgid_decl+set}" = set; then : + $as_echo_n "(cached) " >&6 + else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lreadline $TERMLIBS $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -+done -+ -+for ac_header in sys/mount.h mntent.h -+do : -+ as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -+ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" -+eval as_val=\$$as_ac_Header -+ if test "x$as_val" = x""yes; then : -+ cat >>confdefs.h <<_ACEOF -+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 - _ACEOF +-_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ @@ -41140,23 +40291,17 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -extern "C" -#endif -char rl_callback_handler_install (); --int --main () --{ ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++#include + int + main () + { -return rl_callback_handler_install (); -- ; -- return 0; --} -+fi -+ -+done -+ -+for ac_header in stropts.h -+do : -+ ac_fn_c_check_header_mongrel "$LINENO" "stropts.h" "ac_cv_header_stropts_h" "$ac_includes_default" -+if test "x$ac_cv_header_stropts_h" = x""yes; then : -+ cat >>confdefs.h <<_ACEOF -+#define HAVE_STROPTS_H 1 ++int i = (int)setresgid + ; + return 0; + } _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" @@ -41183,28 +40328,15 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - +- - ac_cv_lib_readline_rl_callback_handler_install=no - fi - +-fi +- -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 -+done -+ -+ -+for ac_func in seteuid setresuid setegid setresgid chroot bzero strerror -+do : -+ as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -+ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" -+eval as_val=\$$as_ac_var -+ if test "x$as_val" = x""yes; then : -+ cat >>confdefs.h <<_ACEOF -+#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 -+_ACEOF -+ - fi +-fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_readline_rl_callback_handler_install" >&5 -$as_echo "$ac_cv_lib_readline_rl_callback_handler_install" >&6; } -if test "x$ac_cv_lib_readline_rl_callback_handler_install" = x""yes; then @@ -41212,40 +40344,23 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - TERMCPPFLAGS="-I$with_readline/include" - CPPFLAGS="-I$with_readline/include $CPPFLAGS" - TERMLIBS="-lreadline $TERMLIBS" -+done - +- -cat >>confdefs.h <<\_ACEOF -#define HAVE_LIBREADLINE 1 -+for ac_func in vsyslog setlinebuf mktime ftruncate chsize rename -+do : -+ as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -+ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" -+eval as_val=\$$as_ac_var -+ if test "x$as_val" = x""yes; then : -+ cat >>confdefs.h <<_ACEOF -+#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 - _ACEOF - +-_ACEOF +- - break --else ++if ac_fn_c_try_compile "$LINENO"; then : ++ ac_cv_have_setresgid_decl=yes + else - TERMLIBS= CPPFLAGS=$_cppflags - fi -+done - -fi -+for ac_func in waitpid strlcpy strlcat initgroups memmove strdup -+do : -+ as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -+ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" -+eval as_val=\$$as_ac_var -+ if test "x$as_val" = x""yes; then : -+ cat >>confdefs.h <<_ACEOF -+#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 -+_ACEOF - -+fi - done - +- ++ ac_cv_have_setresgid_decl=no + fi +- +-done +- - - LDFLAGS=$_ldflags - ;; @@ -41253,31 +40368,16 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -else - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } -+for ac_func in pread pwrite strndup strcasestr strtok_r mkdtemp dup2 -+do : -+ as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -+ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" -+eval as_val=\$$as_ac_var -+ if test "x$as_val" = x""yes; then : -+ cat >>confdefs.h <<_ACEOF -+#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 -+_ACEOF - +- ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -+done ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_have_setresgid_decl" >&5 ++$as_echo "$ac_cv_have_setresgid_decl" >&6; } ++ if test x"$ac_cv_have_setresgid_decl" = x"yes"; then -+for ac_func in isatty chown lchown link readlink symlink realpath -+do : -+ as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -+ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" -+eval as_val=\$$as_ac_var -+ if test "x$as_val" = x""yes; then : -+ cat >>confdefs.h <<_ACEOF -+#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 -+_ACEOF ++$as_echo "#define HAVE_SETRESGID_DECL 1" >>confdefs.h -+fi -+done ++ fi -# The readline API changed slightly from readline3 to readline4, so @@ -41286,9 +40386,9 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -{ $as_echo "$as_me:$LINENO: checking for rl_completion_matches in -lreadline" >&5 -$as_echo_n "checking for rl_completion_matches in -lreadline... " >&6; } -if test "${ac_cv_lib_readline_rl_completion_matches+set}" = set; then -+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for setresuid declaration" >&5 -+$as_echo_n "checking for setresuid declaration... " >&6; } -+if test "${ac_cv_have_setresuid_decl+set}" = set; then : ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno declaration" >&5 ++$as_echo_n "checking for errno declaration... " >&6; } ++if test "${ac_cv_have_errno_decl+set}" = set; then : $as_echo_n "(cached) " >&6 else - ac_check_lib_save_LIBS=$LIBS @@ -41309,12 +40409,12 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -char rl_completion_matches (); + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ -+#include ++#include int main () { -return rl_completion_matches (); -+int i = (int)setresuid ++int i = (int)errno ; return 0; } @@ -41342,13 +40442,13 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - }; then - ac_cv_lib_readline_rl_completion_matches=yes +if ac_fn_c_try_compile "$LINENO"; then : -+ ac_cv_have_setresuid_decl=yes ++ ac_cv_have_errno_decl=yes else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_lib_readline_rl_completion_matches=no -+ ac_cv_have_setresuid_decl=no ++ ac_cv_have_errno_decl=no fi - -rm -rf conftest.dSYM @@ -41360,14 +40460,14 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_readline_rl_completion_matches" >&5 -$as_echo "$ac_cv_lib_readline_rl_completion_matches" >&6; } -if test "x$ac_cv_lib_readline_rl_completion_matches" = x""yes; then -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_have_setresuid_decl" >&5 -+$as_echo "$ac_cv_have_setresuid_decl" >&6; } -+ if test x"$ac_cv_have_setresuid_decl" = x"yes"; then ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_have_errno_decl" >&5 ++$as_echo "$ac_cv_have_errno_decl" >&6; } ++ if test x"$ac_cv_have_errno_decl" = x"yes"; then -cat >>confdefs.h <<\_ACEOF -#define HAVE_NEW_LIBREADLINE 1 -_ACEOF -+$as_echo "#define HAVE_SETRESUID_DECL 1" >>confdefs.h ++$as_echo "#define HAVE_ERRNO_DECL 1" >>confdefs.h -fi + fi @@ -41377,9 +40477,9 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -{ $as_echo "$as_me:$LINENO: checking whether rl_event_hook is declared" >&5 -$as_echo_n "checking whether rl_event_hook is declared... " >&6; } -if test "${ac_cv_have_decl_rl_event_hook+set}" = set; then -+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for setresgid declaration" >&5 -+$as_echo_n "checking for setresgid declaration... " >&6; } -+if test "${ac_cv_have_setresgid_decl+set}" = set; then : ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for secure mkstemp" >&5 ++$as_echo_n "checking for secure mkstemp... " >&6; } ++if test "${libreplace_cv_HAVE_SECURE_MKSTEMP+set}" = set; then : $as_echo_n "(cached) " >&6 else - cat >conftest.$ac_ext <<_ACEOF @@ -41389,20 +40489,34 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include - -+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext -+/* end confdefs.h. */ -+#include - int - main () - { +- +-int +-main () +-{ -#ifndef rl_event_hook - (void) rl_event_hook; -#endif -- -+int i = (int)setresgid - ; - return 0; + +- ; +- return 0; ++if test "$cross_compiling" = yes; then : ++ libreplace_cv_HAVE_SECURE_MKSTEMP=cross ++else ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++#include ++#include ++#include ++#include ++main() { ++ struct stat st; ++ char tpl[20]="/tmp/test.XXXXXX"; ++ int fd = mkstemp(tpl); ++ if (fd == -1) exit(1); ++ unlink(tpl); ++ if (fstat(fd, &st) != 0) exit(1); ++ if ((st.st_mode & 0777) != 0600) exit(1); ++ exit(0); } _ACEOF -rm -f conftest.$ac_objext @@ -41424,48 +40538,59 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_cv_have_decl_rl_event_hook=yes -+if ac_fn_c_try_compile "$LINENO"; then : -+ ac_cv_have_setresgid_decl=yes ++if ac_fn_c_try_run "$LINENO"; then : ++ libreplace_cv_HAVE_SECURE_MKSTEMP=yes else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_have_decl_rl_event_hook=no -+ ac_cv_have_setresgid_decl=no ++ libreplace_cv_HAVE_SECURE_MKSTEMP=no ++fi ++rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ ++ conftest.$ac_objext conftest.beam conftest.$ac_ext fi -- - rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_rl_event_hook" >&5 -$as_echo "$ac_cv_have_decl_rl_event_hook" >&6; } -if test "x$ac_cv_have_decl_rl_event_hook" = x""yes; then -- ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libreplace_cv_HAVE_SECURE_MKSTEMP" >&5 ++$as_echo "$libreplace_cv_HAVE_SECURE_MKSTEMP" >&6; } ++if test x"$libreplace_cv_HAVE_SECURE_MKSTEMP" = x"yes"; then + -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_RL_EVENT_HOOK 1 -_ACEOF -- -- ++$as_echo "#define HAVE_SECURE_MKSTEMP 1" >>confdefs.h + ++fi + -else -- cat >>confdefs.h <<_ACEOF ++for ac_header in stdio.h strings.h ++do : ++ as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ++ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" ++eval as_val=\$$as_ac_Header ++ if test "x$as_val" = x""yes; then : + cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_RL_EVENT_HOOK 0 --_ACEOF -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_have_setresgid_decl" >&5 -+$as_echo "$ac_cv_have_setresgid_decl" >&6; } -+ if test x"$ac_cv_have_setresgid_decl" = x"yes"; then ++#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 + _ACEOF -+$as_echo "#define HAVE_SETRESGID_DECL 1" >>confdefs.h - --fi -+ fi +- + fi ++done -{ $as_echo "$as_me:$LINENO: checking for history_list in -lreadline" >&5 -$as_echo_n "checking for history_list in -lreadline... " >&6; } -if test "${ac_cv_lib_readline_history_list+set}" = set; then -+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno declaration" >&5 -+$as_echo_n "checking for errno declaration... " >&6; } -+if test "${ac_cv_have_errno_decl+set}" = set; then : - $as_echo_n "(cached) " >&6 +- $as_echo_n "(cached) " >&6 ++ac_fn_c_check_decl "$LINENO" "snprintf" "ac_cv_have_decl_snprintf" "$ac_includes_default" ++if test "x$ac_cv_have_decl_snprintf" = x""yes; then : ++ ac_have_decl=1 else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lreadline $TERMLIBS $LIBS" @@ -41475,6 +40600,8 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ ++ ac_have_decl=0 ++fi -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC @@ -41483,17 +40610,15 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -extern "C" -#endif -char history_list (); -+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext -+/* end confdefs.h. */ -+#include - int - main () - { +-int +-main () +-{ -return history_list (); -+int i = (int)errno - ; - return 0; - } +- ; +- return 0; +-} ++cat >>confdefs.h <<_ACEOF ++#define HAVE_DECL_SNPRINTF $ac_have_decl _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" @@ -41517,36 +40642,61 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - $as_test_x conftest$ac_exeext - }; then - ac_cv_lib_readline_history_list=yes -+if ac_fn_c_try_compile "$LINENO"; then : -+ ac_cv_have_errno_decl=yes ++ac_fn_c_check_decl "$LINENO" "vsnprintf" "ac_cv_have_decl_vsnprintf" "$ac_includes_default" ++if test "x$ac_cv_have_decl_vsnprintf" = x""yes; then : ++ ac_have_decl=1 else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 -- ++ ac_have_decl=0 ++fi + - ac_cv_lib_readline_history_list=no -+ ac_cv_have_errno_decl=no ++cat >>confdefs.h <<_ACEOF ++#define HAVE_DECL_VSNPRINTF $ac_have_decl ++_ACEOF ++ac_fn_c_check_decl "$LINENO" "asprintf" "ac_cv_have_decl_asprintf" "$ac_includes_default" ++if test "x$ac_cv_have_decl_asprintf" = x""yes; then : ++ ac_have_decl=1 ++else ++ ac_have_decl=0 fi -- + -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 -+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++cat >>confdefs.h <<_ACEOF ++#define HAVE_DECL_ASPRINTF $ac_have_decl ++_ACEOF ++ac_fn_c_check_decl "$LINENO" "vasprintf" "ac_cv_have_decl_vasprintf" "$ac_includes_default" ++if test "x$ac_cv_have_decl_vasprintf" = x""yes; then : ++ ac_have_decl=1 ++else ++ ac_have_decl=0 fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_readline_history_list" >&5 -$as_echo "$ac_cv_lib_readline_history_list" >&6; } -if test "x$ac_cv_lib_readline_history_list" = x""yes; then -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_have_errno_decl" >&5 -+$as_echo "$ac_cv_have_errno_decl" >&6; } -+ if test x"$ac_cv_have_errno_decl" = x"yes"; then -cat >>confdefs.h <<\_ACEOF -#define HAVE_HISTORY_LIST 1 --_ACEOF -+$as_echo "#define HAVE_ERRNO_DECL 1" >>confdefs.h ++cat >>confdefs.h <<_ACEOF ++#define HAVE_DECL_VASPRINTF $ac_have_decl ++_ACEOF ++ ++for ac_func in snprintf vsnprintf asprintf vasprintf ++do : ++ as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ++ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" ++eval as_val=\$$as_ac_var ++ if test "x$as_val" = x""yes; then : ++ cat >>confdefs.h <<_ACEOF ++#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 + _ACEOF --fi -+ fi + fi ++done -############################################### @@ -41554,9 +40704,9 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -{ $as_echo "$as_me:$LINENO: checking for library containing yp_get_default_domain" >&5 -$as_echo_n "checking for library containing yp_get_default_domain... " >&6; } -if test "${ac_cv_search_yp_get_default_domain+set}" = set; then -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for secure mkstemp" >&5 -+$as_echo_n "checking for secure mkstemp... " >&6; } -+if test "${libreplace_cv_HAVE_SECURE_MKSTEMP+set}" = set; then : ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C99 vsnprintf" >&5 ++$as_echo_n "checking for C99 vsnprintf... " >&6; } ++if test "${libreplace_cv_HAVE_C99_VSNPRINTF+set}" = set; then : $as_echo_n "(cached) " >&6 else - ac_func_search_save_LIBS=$LIBS @@ -41580,26 +40730,8 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -return yp_get_default_domain (); - ; - return 0; -+if test "$cross_compiling" = yes; then : -+ libreplace_cv_HAVE_SECURE_MKSTEMP=cross -+else -+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext -+/* end confdefs.h. */ -+#include -+#include -+#include -+#include -+main() { -+ struct stat st; -+ char tpl[20]="/tmp/test.XXXXXX"; -+ int fd = mkstemp(tpl); -+ if (fd == -1) exit(1); -+ unlink(tpl); -+ if (fstat(fd, &st) != 0) exit(1); -+ if ((st.st_mode & 0777) != 0600) exit(1); -+ exit(0); - } - _ACEOF +-} +-_ACEOF -for ac_lib in '' nsl; do - if test -z "$ac_lib"; then - ac_res="none required" @@ -41629,230 +40761,14 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - $as_test_x conftest$ac_exeext - }; then - ac_cv_search_yp_get_default_domain=$ac_res --else -- $as_echo "$as_me: failed program was:" >&5 --sed 's/^/| /' conftest.$ac_ext >&5 -- -- --fi -- --rm -rf conftest.dSYM --rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ -- conftest$ac_exeext -- if test "${ac_cv_search_yp_get_default_domain+set}" = set; then -- break --fi --done --if test "${ac_cv_search_yp_get_default_domain+set}" = set; then -- : -+if ac_fn_c_try_run "$LINENO"; then : -+ libreplace_cv_HAVE_SECURE_MKSTEMP=yes - else -- ac_cv_search_yp_get_default_domain=no -+ libreplace_cv_HAVE_SECURE_MKSTEMP=no - fi --rm conftest.$ac_ext --LIBS=$ac_func_search_save_LIBS -+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ -+ conftest.$ac_objext conftest.beam conftest.$ac_ext - fi --{ $as_echo "$as_me:$LINENO: result: $ac_cv_search_yp_get_default_domain" >&5 --$as_echo "$ac_cv_search_yp_get_default_domain" >&6; } --ac_res=$ac_cv_search_yp_get_default_domain --if test "$ac_res" != no; then -- test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - - fi -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libreplace_cv_HAVE_SECURE_MKSTEMP" >&5 -+$as_echo "$libreplace_cv_HAVE_SECURE_MKSTEMP" >&6; } -+if test x"$libreplace_cv_HAVE_SECURE_MKSTEMP" = x"yes"; then - -+$as_echo "#define HAVE_SECURE_MKSTEMP 1" >>confdefs.h - --for ac_func in yp_get_default_domain --do --as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` --{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 --$as_echo_n "checking for $ac_func... " >&6; } --if { as_var=$as_ac_var; eval "test \"\${$as_var+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. */ --/* Define $ac_func to an innocuous variant, in case declares $ac_func. -- For example, HP-UX 11i declares gettimeofday. */ --#define $ac_func innocuous_$ac_func -+fi - --/* System header to define __stub macros and hopefully few prototypes, -- which can conflict with char $ac_func (); below. -- Prefer to if __STDC__ is defined, since -- exists even on freestanding compilers. */ -+for ac_header in stdio.h strings.h -+do : -+ as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -+ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" -+eval as_val=\$$as_ac_Header -+ if test "x$as_val" = x""yes; then : -+ cat >>confdefs.h <<_ACEOF -+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -+_ACEOF - --#ifdef __STDC__ --# include --#else --# include --#endif -+fi - --#undef $ac_func -+done - --/* 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 --char $ac_func (); --/* 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_$ac_func || defined __stub___$ac_func --choke me --#endif -+ac_fn_c_check_decl "$LINENO" "snprintf" "ac_cv_have_decl_snprintf" "$ac_includes_default" -+if test "x$ac_cv_have_decl_snprintf" = x""yes; then : -+ ac_have_decl=1 -+else -+ ac_have_decl=0 -+fi - --int --main () --{ --return $ac_func (); -- ; -- return 0; --} -+cat >>confdefs.h <<_ACEOF -+#define HAVE_DECL_SNPRINTF $ac_have_decl - _ACEOF --rm -f conftest.$ac_objext conftest$ac_exeext --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 -- $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 -- eval "$as_ac_var=yes" -+ac_fn_c_check_decl "$LINENO" "vsnprintf" "ac_cv_have_decl_vsnprintf" "$ac_includes_default" -+if test "x$ac_cv_have_decl_vsnprintf" = x""yes; then : -+ ac_have_decl=1 - else -- $as_echo "$as_me: failed program was:" >&5 --sed 's/^/| /' conftest.$ac_ext >&5 -+ ac_have_decl=0 -+fi - -- eval "$as_ac_var=no" -+cat >>confdefs.h <<_ACEOF -+#define HAVE_DECL_VSNPRINTF $ac_have_decl -+_ACEOF -+ac_fn_c_check_decl "$LINENO" "asprintf" "ac_cv_have_decl_asprintf" "$ac_includes_default" -+if test "x$ac_cv_have_decl_asprintf" = x""yes; then : -+ ac_have_decl=1 -+else -+ ac_have_decl=0 - fi - --rm -rf conftest.dSYM --rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ -- conftest$ac_exeext conftest.$ac_ext -+cat >>confdefs.h <<_ACEOF -+#define HAVE_DECL_ASPRINTF $ac_have_decl -+_ACEOF -+ac_fn_c_check_decl "$LINENO" "vasprintf" "ac_cv_have_decl_vasprintf" "$ac_includes_default" -+if test "x$ac_cv_have_decl_vasprintf" = x""yes; then : -+ ac_have_decl=1 -+else -+ ac_have_decl=0 - fi --ac_res=`eval 'as_val=${'$as_ac_var'} -- $as_echo "$as_val"'` -- { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 --$as_echo "$ac_res" >&6; } --as_val=`eval 'as_val=${'$as_ac_var'} -- $as_echo "$as_val"'` -- if test "x$as_val" = x""yes; then -+ -+cat >>confdefs.h <<_ACEOF -+#define HAVE_DECL_VASPRINTF $ac_have_decl -+_ACEOF -+ -+for ac_func in snprintf vsnprintf asprintf vasprintf -+do : -+ as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -+ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" -+eval as_val=\$$as_ac_var -+ if test "x$as_val" = x""yes; then : - cat >>confdefs.h <<_ACEOF - #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 - _ACEOF -@@ -40174,414 +9223,266 @@ - done - - --# Check if we have execl, if not we need to compile smbrun. -- --for ac_func in execl --do --as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` --{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 --$as_echo_n "checking for $ac_func... " >&6; } --if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C99 vsnprintf" >&5 -+$as_echo_n "checking for C99 vsnprintf... " >&6; } -+if test "${libreplace_cv_HAVE_C99_VSNPRINTF+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 -+ +if test "$cross_compiling" = yes; then : + libreplace_cv_HAVE_C99_VSNPRINTF=cross -+else + else +- $as_echo "$as_me: failed program was:" >&5 +-sed 's/^/| /' conftest.$ac_ext >&5 + cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ --/* Define $ac_func to an innocuous variant, in case declares $ac_func. -- For example, HP-UX 11i declares gettimeofday. */ --#define $ac_func innocuous_$ac_func ++/* end confdefs.h. */ --/* System header to define __stub macros and hopefully few prototypes, -- which can conflict with char $ac_func (); below. -- Prefer to if __STDC__ is defined, since -- exists even on freestanding compilers. */ +#include +#include +#include @@ -41864,121 +40780,66 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure + long long l = 1234567890; + l *= 100; --#ifdef __STDC__ --# include --#else --# include --#endif +-fi + va_start(ap, format); + len = vsnprintf(buf, 0, format, ap); + va_end(ap); + if (len != 5) exit(1); --#undef $ac_func +-rm -rf conftest.dSYM +-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ +- conftest$ac_exeext +- if test "${ac_cv_search_yp_get_default_domain+set}" = set; then +- break +-fi +-done +-if test "${ac_cv_search_yp_get_default_domain+set}" = set; then +- : + va_start(ap, format); + len = vsnprintf(0, 0, format, ap); + va_end(ap); + if (len != 5) exit(2); - --/* 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 --char $ac_func (); --/* 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_$ac_func || defined __stub___$ac_func --choke me --#endif ++ + if (snprintf(buf, 3, "hello") != 5 || strcmp(buf, "he") != 0) exit(3); - --int --main () --{ --return $ac_func (); -- ; -- return 0; ++ + if (snprintf(buf, 20, "%lld", l) != 12 || strcmp(buf, "123456789000") != 0) exit(4); + if (snprintf(buf, 20, "%zu", 123456789) != 9 || strcmp(buf, "123456789") != 0) exit(5); + if (snprintf(buf, 20, "%2\$d %1\$d", 3, 4) != 3 || strcmp(buf, "4 3") != 0) exit(6); + if (snprintf(buf, 20, "%s", 0) < 3) exit(7); + + exit(0); - } ++} +main() { foo("hello"); } + - _ACEOF --rm -f conftest.$ac_objext conftest$ac_exeext --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 -- $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 -- eval "$as_ac_var=yes" ++_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + libreplace_cv_HAVE_C99_VSNPRINTF=yes else -- $as_echo "$as_me: failed program was:" >&5 --sed 's/^/| /' conftest.$ac_ext >&5 -- -- eval "$as_ac_var=no" +- ac_cv_search_yp_get_default_domain=no + libreplace_cv_HAVE_C99_VSNPRINTF=no fi -- --rm -rf conftest.dSYM --rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ -- conftest$ac_exeext conftest.$ac_ext --fi --ac_res=`eval 'as_val=${'$as_ac_var'} -- $as_echo "$as_val"'` -- { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 --$as_echo "$ac_res" >&6; } --as_val=`eval 'as_val=${'$as_ac_var'} -- $as_echo "$as_val"'` -- if test "x$as_val" = x""yes; then -- cat >>confdefs.h <<_ACEOF --#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 --_ACEOF -- +-rm conftest.$ac_ext +-LIBS=$ac_func_search_save_LIBS +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext fi --done - --if test x"$ac_cv_func_execl" = x"no"; then -- EXTRA_BIN_PROGS="$EXTRA_BIN_PROGS bin/smbrun\$(EXEEXT)" - fi +-{ $as_echo "$as_me:$LINENO: result: $ac_cv_search_yp_get_default_domain" >&5 +-$as_echo "$ac_cv_search_yp_get_default_domain" >&6; } +-ac_res=$ac_cv_search_yp_get_default_domain +-if test "$ac_res" != no; then +- test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" ++ ++fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libreplace_cv_HAVE_C99_VSNPRINTF" >&5 +$as_echo "$libreplace_cv_HAVE_C99_VSNPRINTF" >&6; } +if test x"$libreplace_cv_HAVE_C99_VSNPRINTF" = x"yes"; then - ++ +$as_echo "#define HAVE_C99_VSNPRINTF 1" >>confdefs.h -+fi + fi -- -- -- --for ac_func in getcwd fchown chmod fchmod mknod mknod64 +-for ac_func in yp_get_default_domain -do -as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 @@ -42105,9 +40966,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -rm -rf conftest.dSYM -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -+rm -f core conftest.err conftest.$ac_objext \ -+ conftest$ac_exeext conftest.$ac_ext - fi +-fi -ac_res=`eval 'as_val=${'$as_ac_var'} - $as_echo "$as_val"'` - { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 @@ -42118,18 +40977,22 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF +- ++rm -f core conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi +-done +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libreplace_cv_HAVE___VA_COPY" >&5 +$as_echo "$libreplace_cv_HAVE___VA_COPY" >&6; } +if test x"$libreplace_cv_HAVE___VA_COPY" = x"yes"; then --fi --done +$as_echo "#define HAVE___VA_COPY 1" >>confdefs.h +-# Check if we have execl, if not we need to compile smbrun. +fi +fi --for ac_func in strtol +-for ac_func in execl -do -as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 @@ -42247,18 +41110,18 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - - eval "$as_ac_var=no" + libreplace_cv_HAVE_func_MACRO=no - fi -+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libreplace_cv_HAVE_func_MACRO" >&5 +$as_echo "$libreplace_cv_HAVE_func_MACRO" >&6; } + if test x"$libreplace_cv_HAVE_func_MACRO" = x"yes"; then ++ ++$as_echo "#define HAVE_func_MACRO 1" >>confdefs.h -rm -rf conftest.dSYM -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -+$as_echo "#define HAVE_func_MACRO 1" >>confdefs.h -+ + fi fi -ac_res=`eval 'as_val=${'$as_ac_var'} @@ -42281,21 +41144,34 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure _ACEOF fi -+ - done +-done + +-if test x"$ac_cv_func_execl" = x"no"; then +- EXTRA_BIN_PROGS="$EXTRA_BIN_PROGS bin/smbrun\$(EXEEXT)" +-fi ++done +ac_fn_c_check_type "$LINENO" "comparison_fn_t" "ac_cv_type_comparison_fn_t" "$ac_includes_default" +if test "x$ac_cv_type_comparison_fn_t" = x""yes; then : --for ac_func in strchr chflags ++$as_echo "#define HAVE_COMPARISON_FN_T 1" >>confdefs.h + ++fi + + + +-for ac_func in getcwd fchown chmod fchmod mknod mknod64 -do -as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 -$as_echo_n "checking for $ac_func... " >&6; } -if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then -- $as_echo_n "(cached) " >&6 --else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for setenv declaration" >&5 ++$as_echo_n "checking for setenv declaration... " >&6; } ++if test "${ac_cv_have_setenv_decl+set}" = set; then : + $as_echo_n "(cached) " >&6 + else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF @@ -42305,22 +41181,20 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -/* Define $ac_func to an innocuous variant, in case declares $ac_func. - For example, HP-UX 11i declares gettimeofday. */ -#define $ac_func innocuous_$ac_func -+$as_echo "#define HAVE_COMPARISON_FN_T 1" >>confdefs.h - +- -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char $ac_func (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ -+fi - +- -#ifdef __STDC__ -# include -#else -# include -#endif - +- -#undef $ac_func - +- -/* 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. */ @@ -42334,11 +41208,6 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -#if defined __stub_$ac_func || defined __stub___$ac_func -choke me -#endif -+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for setenv declaration" >&5 -+$as_echo_n "checking for setenv declaration... " >&6; } -+if test "${ac_cv_have_setenv_decl+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ @@ -42413,14 +41282,11 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF -@@ -40590,102 +9491,56 @@ +@@ -39892,99 +9211,56 @@ done -- -- -- --for ac_func in getrlimit fsync fdatasync setpgid +-for ac_func in strtol -do -as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 @@ -42510,9 +41376,9 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - - eval "$as_ac_var=no" + ac_cv_have_environ_decl=no -+fi -+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_have_environ_decl" >&5 +$as_echo "$ac_cv_have_environ_decl" >&6; } + if test x"$ac_cv_have_environ_decl" = x"yes"; then @@ -42552,23 +41418,18 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF -@@ -40694,255 +9549,183 @@ +@@ -39993,354 +9269,183 @@ done +# this test disabled as we don't actually need __VA_ARGS__ yet +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ - ++ +#define eprintf(...) fprintf(stderr, __VA_ARGS__) +eprintf("bla", "bar"); -+_ACEOF -+if ac_fn_c_try_cpp "$LINENO"; then : - -+$as_echo "#define HAVE__VA_ARGS__MACRO 1" >>confdefs.h - --for ac_func in setsid glob strpbrk crypt16 getauthuid +-for ac_func in strchr chflags -do -as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 @@ -42578,35 +41439,30 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ --_ACEOF + _ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define $ac_func to an innocuous variant, in case declares $ac_func. - For example, HP-UX 11i declares gettimeofday. */ -#define $ac_func innocuous_$ac_func -+fi -+rm -f conftest.err conftest.$ac_ext ++if ac_fn_c_try_cpp "$LINENO"; then : -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char $ac_func (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ ++$as_echo "#define HAVE__VA_ARGS__MACRO 1" >>confdefs.h -#ifdef __STDC__ -# include -#else -# include -#endif -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sig_atomic_t type" >&5 -+$as_echo_n "checking for sig_atomic_t type... " >&6; } -+if test "${libreplace_cv_sig_atomic_t+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else ++fi ++rm -f conftest.err conftest.$ac_ext -#undef $ac_func -+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext -+/* end confdefs.h. */ -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC @@ -42620,12 +41476,21 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - something starting with __ and the normal name is an alias. */ -#if defined __stub_$ac_func || defined __stub___$ac_func -choke me +-#endif ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sig_atomic_t type" >&5 ++$as_echo_n "checking for sig_atomic_t type... " >&6; } ++if test "${libreplace_cv_sig_atomic_t+set}" = set; then : ++ $as_echo_n "(cached) " >&6 ++else ++ ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ + +#include +#if STDC_HEADERS +#include +#include - #endif -- ++#endif +#include int main () @@ -42665,8 +41530,130 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -sed 's/^/| /' conftest.$ac_ext >&5 - - eval "$as_ac_var=no" +-fi +- +-rm -rf conftest.dSYM +-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ +- conftest$ac_exeext conftest.$ac_ext + libreplace_cv_sig_atomic_t=no fi +-ac_res=`eval 'as_val=${'$as_ac_var'} +- $as_echo "$as_val"'` +- { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +-$as_echo "$ac_res" >&6; } +-as_val=`eval 'as_val=${'$as_ac_var'} +- $as_echo "$as_val"'` +- if test "x$as_val" = x""yes; then +- cat >>confdefs.h <<_ACEOF +-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 +-_ACEOF +- ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + fi +-done +- ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libreplace_cv_sig_atomic_t" >&5 ++$as_echo "$libreplace_cv_sig_atomic_t" >&6; } ++if test x"$libreplace_cv_sig_atomic_t" = x"yes"; then + ++$as_echo "#define HAVE_SIG_ATOMIC_T_TYPE 1" >>confdefs.h + ++fi + + +-for ac_func in getrlimit fsync fdatasync setpgid +-do +-as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +-{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 +-$as_echo_n "checking for $ac_func... " >&6; } +-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for O_DIRECT flag to open(2)" >&5 ++$as_echo_n "checking for O_DIRECT flag to open(2)... " >&6; } ++if test "${libreplace_cv_HAVE_OPEN_O_DIRECT+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. */ +-/* Define $ac_func to an innocuous variant, in case declares $ac_func. +- For example, HP-UX 11i declares gettimeofday. */ +-#define $ac_func innocuous_$ac_func +- +-/* System header to define __stub macros and hopefully few prototypes, +- which can conflict with char $ac_func (); below. +- Prefer to if __STDC__ is defined, since +- exists even on freestanding compilers. */ +- +-#ifdef __STDC__ +-# include +-#else +-# include +-#endif + +-#undef $ac_func ++cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ + +-/* 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 +-char $ac_func (); +-/* 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_$ac_func || defined __stub___$ac_func +-choke me ++#include ++#ifdef HAVE_FCNTL_H ++#include + #endif +- + int + main () + { +-return $ac_func (); ++int fd = open("/dev/null", O_DIRECT); + ; + return 0; + } + _ACEOF +-rm -f conftest.$ac_objext conftest$ac_exeext +-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 +- $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 +- eval "$as_ac_var=yes" ++if ac_fn_c_try_compile "$LINENO"; then : ++ libreplace_cv_HAVE_OPEN_O_DIRECT=yes + else +- $as_echo "$as_me: failed program was:" >&5 +-sed 's/^/| /' conftest.$ac_ext >&5 +- +- eval "$as_ac_var=no" ++ libreplace_cv_HAVE_OPEN_O_DIRECT=no + fi - -rm -rf conftest.dSYM -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ @@ -42683,79 +41670,22 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libreplace_cv_sig_atomic_t" >&5 -+$as_echo "$libreplace_cv_sig_atomic_t" >&6; } -+if test x"$libreplace_cv_sig_atomic_t" = x"yes"; then - --fi --done -+$as_echo "#define HAVE_SIG_ATOMIC_T_TYPE 1" >>confdefs.h - -+fi - - -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for O_DIRECT flag to open(2)" >&5 -+$as_echo_n "checking for O_DIRECT flag to open(2)... " >&6; } -+if test "${libreplace_cv_HAVE_OPEN_O_DIRECT+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else - -+cat confdefs.h - <<_ACEOF >conftest.$ac_ext -+/* end confdefs.h. */ - -+#include -+#ifdef HAVE_FCNTL_H -+#include -+#endif -+int -+main () -+{ -+int fd = open("/dev/null", O_DIRECT); -+ ; -+ return 0; -+} -+_ACEOF -+if ac_fn_c_try_compile "$LINENO"; then : -+ libreplace_cv_HAVE_OPEN_O_DIRECT=yes -+else -+ libreplace_cv_HAVE_OPEN_O_DIRECT=no -+fi -+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -+fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libreplace_cv_HAVE_OPEN_O_DIRECT" >&5 +$as_echo "$libreplace_cv_HAVE_OPEN_O_DIRECT" >&6; } +if test x"$libreplace_cv_HAVE_OPEN_O_DIRECT" = x"yes"; then - ++ +$as_echo "#define HAVE_OPEN_O_DIRECT 1" >>confdefs.h -+fi + fi +-done --for ac_func in sigprocmask sigblock sigaction sigset innetgr setnetgrent getnetgrent endnetgrent --do --as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` --{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 --$as_echo_n "checking for $ac_func... " >&6; } --if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking that the C compiler understands volatile" >&5 +$as_echo_n "checking that the C compiler understands volatile... " >&6; } +if test "${libreplace_cv_volatile+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. */ --/* Define $ac_func to an innocuous variant, in case declares $ac_func. -- For example, HP-UX 11i declares gettimeofday. */ --#define $ac_func innocuous_$ac_func ++ $as_echo_n "(cached) " >&6 ++else --/* System header to define __stub macros and hopefully few prototypes, -- which can conflict with char $ac_func (); below. -- Prefer to if __STDC__ is defined, since -- exists even on freestanding compilers. */ + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include @@ -42778,16 +41708,49 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure +$as_echo "$libreplace_cv_volatile" >&6; } +if test x"$libreplace_cv_volatile" = x"yes"; then ++$as_echo "#define HAVE_VOLATILE 1" >>confdefs.h + ++fi + +-for ac_func in setsid glob strpbrk crypt16 getauthuid +-do +-as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +-{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 +-$as_echo_n "checking for $ac_func... " >&6; } +-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then ++# filesys ++ac_header_dirent=no ++for ac_hdr in dirent.h sys/ndir.h sys/dir.h ndir.h; do ++ as_ac_Header=`$as_echo "ac_cv_header_dirent_$ac_hdr" | $as_tr_sh` ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_hdr that defines DIR" >&5 ++$as_echo_n "checking for $ac_hdr that defines DIR... " >&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. */ +-_ACEOF +-cat confdefs.h >>conftest.$ac_ext +-cat >>conftest.$ac_ext <<_ACEOF ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ +-/* Define $ac_func to an innocuous variant, in case declares $ac_func. +- For example, HP-UX 11i declares gettimeofday. */ +-#define $ac_func innocuous_$ac_func +- +-/* System header to define __stub macros and hopefully few prototypes, +- which can conflict with char $ac_func (); below. +- Prefer to if __STDC__ is defined, since +- exists even on freestanding compilers. */ +- -#ifdef __STDC__ -# include -#else -# include -#endif -+$as_echo "#define HAVE_VOLATILE 1" >>confdefs.h - +- -#undef $ac_func -+fi - +- -/* 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. */ @@ -42801,17 +41764,6 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -#if defined __stub_$ac_func || defined __stub___$ac_func -choke me -#endif -+# filesys -+ac_header_dirent=no -+for ac_hdr in dirent.h sys/ndir.h sys/dir.h ndir.h; do -+ as_ac_Header=`$as_echo "ac_cv_header_dirent_$ac_hdr" | $as_tr_sh` -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_hdr that defines DIR" >&5 -+$as_echo_n "checking for $ac_hdr that defines DIR... " >&6; } -+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then : -+ $as_echo_n "(cached) " >&6 -+else -+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext -+/* end confdefs.h. */ +#include +#include <$ac_hdr> @@ -42884,33 +41836,26 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - - - - - - - - --for ac_func in initgroups select poll rdchk getgrnam getgrent pathconf +- +- +-for ac_func in sigprocmask sigblock sigaction sigset innetgr setnetgrent getnetgrent endnetgrent -do -as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 -$as_echo_n "checking for $ac_func... " >&6; } -if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then -+done -+# Two versions of opendir et al. are in -ldir and -lx on SCO Xenix. -+if test $ac_header_dirent = dirent.h; then -+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing opendir" >&5 -+$as_echo_n "checking for library containing opendir... " >&6; } -+if test "${ac_cv_search_opendir+set}" = set; then : - $as_echo_n "(cached) " >&6 - else +- $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 -+ ac_func_search_save_LIBS=$LIBS -+cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ +-/* end confdefs.h. */ -/* Define $ac_func to an innocuous variant, in case declares $ac_func. - For example, HP-UX 11i declares gettimeofday. */ -#define $ac_func innocuous_$ac_func @@ -42919,7 +41864,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - which can conflict with char $ac_func (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ -- + -#ifdef __STDC__ -# include -#else @@ -42927,10 +41872,21 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -#endif - -#undef $ac_func ++done ++# Two versions of opendir et al. are in -ldir and -lx on SCO Xenix. ++if test $ac_header_dirent = dirent.h; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing opendir" >&5 ++$as_echo_n "checking for library containing opendir... " >&6; } ++if test "${ac_cv_search_opendir+set}" = set; then : ++ $as_echo_n "(cached) " >&6 ++else ++ ac_func_search_save_LIBS=$LIBS ++cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC -@@ -40950,106 +9733,56 @@ +@@ -40348,106 +9453,56 @@ #ifdef __cplusplus extern "C" #endif @@ -43032,7 +41988,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - - - --for ac_func in setpriv setgidx setuidx setgroups sysconf stat64 fstat64 +-for ac_func in initgroups select poll rdchk getgrnam getgrent pathconf -do -as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 @@ -43071,7 +42027,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC -@@ -41057,168 +9790,148 @@ +@@ -40455,169 +9510,148 @@ #ifdef __cplusplus extern "C" #endif @@ -43186,7 +42142,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF - ++ +fi +done @@ -43203,7 +42159,10 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure +fi --for ac_func in lstat64 fopen64 atexit grantpt lseek64 ftruncate64 ++done + + +-for ac_func in setpriv setgidx setuidx setgroups sysconf stat64 fstat64 -do -as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 @@ -43213,15 +42172,23 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ --_ACEOF ++# time ++for ac_header in sys/time.h utime.h ++do : ++ as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ++ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" ++eval as_val=\$$as_ac_Header ++ if test "x$as_val" = x""yes; then : ++ cat >>confdefs.h <<_ACEOF ++#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 + _ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define $ac_func to an innocuous variant, in case declares $ac_func. - For example, HP-UX 11i declares gettimeofday. */ -#define $ac_func innocuous_$ac_func -+done - +- -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char $ac_func (); below. - Prefer to if __STDC__ is defined, since @@ -43232,19 +42199,10 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -#else -# include -#endif -+# time -+for ac_header in sys/time.h utime.h -+do : -+ as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -+ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" -+eval as_val=\$$as_ac_Header -+ if test "x$as_val" = x""yes; then : -+ cat >>confdefs.h <<_ACEOF -+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -+_ACEOF ++fi -#undef $ac_func -+fi ++done -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC @@ -43259,8 +42217,6 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -#if defined __stub_$ac_func || defined __stub___$ac_func -choke me -#endif -+done -+ +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether time.h and sys/time.h may both be included" >&5 +$as_echo_n "checking whether time.h and sys/time.h may both be included... " >&6; } +if test "${ac_cv_header_time+set}" = set; then : @@ -43312,9 +42268,9 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - - eval "$as_ac_var=no" + ac_cv_header_time=no -+fi -+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_time" >&5 +$as_echo "$ac_cv_header_time" >&6; } +if test $ac_cv_header_time = yes; then @@ -43342,7 +42298,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF -@@ -41227,210 +9940,170 @@ +@@ -40626,212 +9660,170 @@ done @@ -43351,7 +42307,9 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - - - --for ac_func in fseek64 fseeko64 ftell64 ftello64 setluid getpwanam +- +- +-for ac_func in lstat64 fopen64 atexit grantpt lseek64 ftruncate64 posix_fallocate posix_fallocate64 -do -as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 @@ -43509,7 +42467,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure + int i; --for ac_func in opendir64 readdir64 seekdir64 telldir64 rewinddir64 closedir64 +-for ac_func in fseek64 fseeko64 ftell64 ftello64 setluid getpwanam -do -as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 @@ -43670,19 +42628,54 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF -@@ -41439,200 +10112,139 @@ +@@ -40840,205 +9832,139 @@ done --for ac_func in getpwent_r ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for getpwent_r declaration" >&5 ++$as_echo_n "checking for getpwent_r declaration... " >&6; } ++if test "${ac_cv_have_getpwent_r_decl+set}" = set; then : ++ $as_echo_n "(cached) " >&6 ++else ++ ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ + ++ #include ++ #include + ++int ++main () ++{ ++int i = (int)getpwent_r ++ ; ++ return 0; ++} ++_ACEOF ++if ac_fn_c_try_compile "$LINENO"; then : ++ ac_cv_have_getpwent_r_decl=yes ++else ++ ac_cv_have_getpwent_r_decl=no ++fi ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_have_getpwent_r_decl" >&5 ++$as_echo "$ac_cv_have_getpwent_r_decl" >&6; } ++ if test x"$ac_cv_have_getpwent_r_decl" = x"yes"; then + ++$as_echo "#define HAVE_GETPWENT_R_DECL 1" >>confdefs.h + ++ fi + +-for ac_func in opendir64 readdir64 seekdir64 telldir64 rewinddir64 closedir64 -do -as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 -$as_echo_n "checking for $ac_func... " >&6; } -if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then -+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for getpwent_r declaration" >&5 -+$as_echo_n "checking for getpwent_r declaration... " >&6; } -+if test "${ac_cv_have_getpwent_r_decl+set}" = set; then : ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for prototype struct passwd *getpwent_r(struct passwd *src, char *buf, int buflen)" >&5 ++$as_echo_n "checking for prototype struct passwd *getpwent_r(struct passwd *src, char *buf, int buflen)... " >&6; } ++if test "${ac_cv_c_prototype_struct_passwd_pgetpwent_r_struct_passwd_psrc__char_pbuf__int_buflen_+set}" = set; then : $as_echo_n "(cached) " >&6 else - cat >conftest.$ac_ext <<_ACEOF @@ -43690,25 +42683,29 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF --/* end confdefs.h. */ ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ -/* Define $ac_func to an innocuous variant, in case declares $ac_func. - For example, HP-UX 11i declares gettimeofday. */ -#define $ac_func innocuous_$ac_func -- + -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char $ac_func (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ -- ++ $ac_includes_default + -#ifdef __STDC__ -# include -#else -# include -#endif ++ #include ++ #include -#undef $ac_func -+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext -+/* end confdefs.h. */ ++ struct passwd *getpwent_r(struct passwd *src, char *buf, int buflen) ++ { -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC @@ -43723,17 +42720,20 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -#if defined __stub_$ac_func || defined __stub___$ac_func -choke me -#endif -+ #include -+ #include ++ #ifndef HAVE_GETPWENT_R_DECL ++ #error missing getpwent_r prototype ++ #endif ++ return NULL; ++ ++ } - int - main () - { +-int +-main () +-{ -return $ac_func (); -+int i = (int)getpwent_r - ; - return 0; - } +- ; +- return 0; +-} _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" @@ -43758,19 +42758,20 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - }; then - eval "$as_ac_var=yes" +if ac_fn_c_try_compile "$LINENO"; then : -+ ac_cv_have_getpwent_r_decl=yes ++ ++ ac_cv_c_prototype_struct_passwd_pgetpwent_r_struct_passwd_psrc__char_pbuf__int_buflen_=yes ++ else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 -- + - eval "$as_ac_var=no" -+ ac_cv_have_getpwent_r_decl=no - fi -- +-fi ++ ac_cv_c_prototype_struct_passwd_pgetpwent_r_struct_passwd_psrc__char_pbuf__int_buflen_=no + -rm -rf conftest.dSYM -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -ac_res=`eval 'as_val=${'$as_ac_var'} - $as_echo "$as_val"'` @@ -43781,62 +42782,22 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - if test "x$as_val" = x""yes; then - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_have_getpwent_r_decl" >&5 -+$as_echo "$ac_cv_have_getpwent_r_decl" >&6; } -+ if test x"$ac_cv_have_getpwent_r_decl" = x"yes"; then -+ -+$as_echo "#define HAVE_GETPWENT_R_DECL 1" >>confdefs.h -+ -+ fi -+ -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for prototype struct passwd *getpwent_r(struct passwd *src, char *buf, int buflen)" >&5 -+$as_echo_n "checking for prototype struct passwd *getpwent_r(struct passwd *src, char *buf, int buflen)... " >&6; } -+if test "${ac_cv_c_prototype_struct_passwd_pgetpwent_r_struct_passwd_psrc__char_pbuf__int_buflen_+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext -+/* end confdefs.h. */ -+ -+ $ac_includes_default -+ -+ #include -+ #include -+ -+ struct passwd *getpwent_r(struct passwd *src, char *buf, int buflen) -+ { -+ -+ #ifndef HAVE_GETPWENT_R_DECL -+ #error missing getpwent_r prototype -+ #endif -+ return NULL; -+ -+ } -+ - _ACEOF -+if ac_fn_c_try_compile "$LINENO"; then : -+ -+ ac_cv_c_prototype_struct_passwd_pgetpwent_r_struct_passwd_psrc__char_pbuf__int_buflen_=yes -+ -+else -+ -+ ac_cv_c_prototype_struct_passwd_pgetpwent_r_struct_passwd_psrc__char_pbuf__int_buflen_=no +-_ACEOF ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -done -+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -+fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_prototype_struct_passwd_pgetpwent_r_struct_passwd_psrc__char_pbuf__int_buflen_" >&5 +$as_echo "$ac_cv_c_prototype_struct_passwd_pgetpwent_r_struct_passwd_psrc__char_pbuf__int_buflen_" >&6; } +if test $ac_cv_c_prototype_struct_passwd_pgetpwent_r_struct_passwd_psrc__char_pbuf__int_buflen_ = yes; then : --for ac_func in getdents64 + +-for ac_func in getpwent_r -do -as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 -$as_echo_n "checking for $ac_func... " >&6; } -if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then -+ +$as_echo "#define SOLARIS_GETPWENT_R 1" >>confdefs.h + + @@ -43970,14 +42931,11 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF -@@ -41641,244 +10253,210 @@ +@@ -41047,345 +9973,221 @@ done -- -- -- --for ac_func in setenv strcasecmp fcvt fcvtl +-for ac_func in getdents64 -do -as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 @@ -44127,7 +43085,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure fi -done +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -+ + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_prototype_struct_group_pgetgrent_r_struct_group_psrc__char_pbuf__int_buflen_" >&5 +$as_echo "$ac_cv_c_prototype_struct_group_pgetgrent_r_struct_group_psrc__char_pbuf__int_buflen_" >&6; } @@ -44137,7 +43095,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure +$as_echo "#define SOLARIS_GETGRENT_R 1" >>confdefs.h --for ac_func in syslog vsyslog timegm +-for ac_func in setenv strcasecmp fcvt fcvtl -do -as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 @@ -44240,36 +43198,13 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - eval "$as_ac_var=no" + ac_cv_c_prototype_struct_group_pgetgrent_r_struct_group_psrc__char_pbuf__size_t_buflen_=no -+ -+fi -+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -+ -+fi -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_prototype_struct_group_pgetgrent_r_struct_group_psrc__char_pbuf__size_t_buflen_" >&5 -+$as_echo "$ac_cv_c_prototype_struct_group_pgetgrent_r_struct_group_psrc__char_pbuf__size_t_buflen_" >&6; } -+if test $ac_cv_c_prototype_struct_group_pgetgrent_r_struct_group_psrc__char_pbuf__size_t_buflen_ = yes; then : -+ -+ -+$as_echo "#define SOLARIS_GETGRENT_R 1" >>confdefs.h -+ + fi ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -rm -rf conftest.dSYM -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -+ -+# locale -+for ac_header in ctype.h locale.h -+do : -+ as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -+ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" -+eval as_val=\$$as_ac_Header -+ if test "x$as_val" = x""yes; then : -+ cat >>confdefs.h <<_ACEOF -+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -+_ACEOF -+ fi -ac_res=`eval 'as_val=${'$as_ac_var'} - $as_echo "$as_val"'` @@ -44278,27 +43213,31 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -as_val=`eval 'as_val=${'$as_ac_var'} - $as_echo "$as_val"'` - if test "x$as_val" = x""yes; then -+ -+done ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_prototype_struct_group_pgetgrent_r_struct_group_psrc__char_pbuf__size_t_buflen_" >&5 ++$as_echo "$ac_cv_c_prototype_struct_group_pgetgrent_r_struct_group_psrc__char_pbuf__size_t_buflen_" >&6; } ++if test $ac_cv_c_prototype_struct_group_pgetgrent_r_struct_group_psrc__char_pbuf__size_t_buflen_ = yes; then : + + -+# glob -+for ac_header in fnmatch.h ++$as_echo "#define SOLARIS_GETGRENT_R 1" >>confdefs.h ++ ++ ++fi ++ ++for ac_func in getgrouplist +do : -+ ac_fn_c_check_header_mongrel "$LINENO" "fnmatch.h" "ac_cv_header_fnmatch_h" "$ac_includes_default" -+if test "x$ac_cv_header_fnmatch_h" = x""yes; then : ++ ac_fn_c_check_func "$LINENO" "getgrouplist" "ac_cv_func_getgrouplist" ++if test "x$ac_cv_func_getgrouplist" = x""yes; then : cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 -+#define HAVE_FNMATCH_H 1 ++#define HAVE_GETGROUPLIST 1 _ACEOF fi -+ done -+# shmem -+for ac_header in sys/ipc.h sys/mman.h sys/shm.h ++# locale ++for ac_header in ctype.h locale.h langinfo.h +do : + as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" @@ -44308,7 +43247,9 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF --for ac_func in setlocale nl_langinfo ++fi + +-for ac_func in syslog vsyslog timegm -do -as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 @@ -44318,8 +43259,110 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ +-_ACEOF +-cat confdefs.h >>conftest.$ac_ext +-cat >>conftest.$ac_ext <<_ACEOF +-/* end confdefs.h. */ +-/* Define $ac_func to an innocuous variant, in case declares $ac_func. +- For example, HP-UX 11i declares gettimeofday. */ +-#define $ac_func innocuous_$ac_func ++done + +-/* System header to define __stub macros and hopefully few prototypes, +- which can conflict with char $ac_func (); below. +- Prefer to if __STDC__ is defined, since +- exists even on freestanding compilers. */ + +-#ifdef __STDC__ +-# include +-#else +-# include +-#endif ++# glob ++for ac_header in fnmatch.h ++do : ++ ac_fn_c_check_header_mongrel "$LINENO" "fnmatch.h" "ac_cv_header_fnmatch_h" "$ac_includes_default" ++if test "x$ac_cv_header_fnmatch_h" = x""yes; then : ++ cat >>confdefs.h <<_ACEOF ++#define HAVE_FNMATCH_H 1 ++_ACEOF + +-#undef $ac_func +fi + +-/* 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 +-char $ac_func (); +-/* 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_$ac_func || defined __stub___$ac_func +-choke me +-#endif ++done + +-int +-main () +-{ +-return $ac_func (); +- ; +- return 0; +-} + ++# shmem ++for ac_header in sys/ipc.h sys/mman.h sys/shm.h ++do : ++ as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ++ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" ++eval as_val=\$$as_ac_Header ++ if test "x$as_val" = x""yes; then : ++ cat >>confdefs.h <<_ACEOF ++#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 + _ACEOF +-rm -f conftest.$ac_objext conftest$ac_exeext +-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 +- $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 +- eval "$as_ac_var=yes" +-else +- $as_echo "$as_me: failed program was:" >&5 +-sed 's/^/| /' conftest.$ac_ext >&5 + +- eval "$as_ac_var=no" + fi + +-rm -rf conftest.dSYM +-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ +- conftest$ac_exeext conftest.$ac_ext +-fi +-ac_res=`eval 'as_val=${'$as_ac_var'} +- $as_echo "$as_val"'` +- { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +-$as_echo "$ac_res" >&6; } +-as_val=`eval 'as_val=${'$as_ac_var'} +- $as_echo "$as_val"'` +- if test "x$as_val" = x""yes; then +done + + @@ -44330,32 +43373,23 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure +ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" +eval as_val=\$$as_ac_Header + if test "x$as_val" = x""yes; then : -+ cat >>confdefs.h <<_ACEOF + cat >>confdefs.h <<_ACEOF +-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF --cat confdefs.h >>conftest.$ac_ext --cat >>conftest.$ac_ext <<_ACEOF --/* end confdefs.h. */ --/* Define $ac_func to an innocuous variant, in case declares $ac_func. -- For example, HP-UX 11i declares gettimeofday. */ --#define $ac_func innocuous_$ac_func --/* System header to define __stub macros and hopefully few prototypes, -- which can conflict with char $ac_func (); below. -- Prefer to if __STDC__ is defined, since -- exists even on freestanding compilers. */ -+fi -+ -+done + fi + + done --#ifdef __STDC__ --# include --#else --# include --#endif --#undef $ac_func + +-for ac_func in setlocale nl_langinfo +-do +-as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +-{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 +-$as_echo_n "checking for $ac_func... " >&6; } +-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then +save_LIBS="$LIBS" +LIBS="" + @@ -44363,15 +43397,36 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing dlopen" >&5 +$as_echo_n "checking for library containing dlopen... " >&6; } +if test "${ac_cv_search_dlopen+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else + $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 + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext -+/* end confdefs.h. */ + /* end confdefs.h. */ +-/* Define $ac_func to an innocuous variant, in case declares $ac_func. +- For example, HP-UX 11i declares gettimeofday. */ +-#define $ac_func innocuous_$ac_func +- +-/* System header to define __stub macros and hopefully few prototypes, +- which can conflict with char $ac_func (); below. +- Prefer to if __STDC__ is defined, since +- exists even on freestanding compilers. */ +- +-#ifdef __STDC__ +-# include +-#else +-# include +-#endif +- +-#undef $ac_func /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC -@@ -41886,100 +10464,85 @@ +@@ -41393,100 +10195,85 @@ #ifdef __cplusplus extern "C" #endif @@ -44528,7 +43583,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC -@@ -41987,1000 +10550,611 @@ +@@ -41494,966 +10281,612 @@ #ifdef __cplusplus extern "C" #endif @@ -44643,7 +43698,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure + libreplace_cv_shl=yes +fi +done -+ + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for prototype void *dlopen(const char* filename, unsigned int flags)" >&5 +$as_echo_n "checking for prototype void *dlopen(const char* filename, unsigned int flags)... " >&6; } @@ -44653,10 +43708,10 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ -+ $ac_includes_default - -ac_check_lib_ext_save_LIBS=$LIBS -LIBS="-lrt $LIBS $LIBS" ++ $ac_includes_default + + #include + void *dlopen(const char* filename, unsigned int flags) @@ -44664,8 +43719,6 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure + return 0; -+ } - - { $as_echo "$as_me:$LINENO: checking for nanosleep in -lrt" >&5 -$as_echo_n "checking for nanosleep in -lrt... " >&6; } -if test "${ac_cv_lib_ext_rt_nanosleep+set}" = set; then @@ -44673,13 +43726,11 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ - _ACEOF +-_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -+if ac_fn_c_try_compile "$LINENO"; then : -+ -+ ac_cv_c_prototype_void_pdlopen_const_charp_filename__unsigned_int_flags_=yes ++ } -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC @@ -44695,7 +43746,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - ; - return 0; -} --_ACEOF + _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in @@ -44719,6 +43770,10 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - }; then - ac_cv_lib_ext_rt_nanosleep=yes; - ac_cv_lib_ext_rt=yes ++if ac_fn_c_try_compile "$LINENO"; then : ++ ++ ac_cv_c_prototype_void_pdlopen_const_charp_filename__unsigned_int_flags_=yes ++ else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 @@ -44758,7 +43813,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -#define HAVE_LIBRT 1 -_ACEOF +if test x"${libreplace_cv_dlfcn}" = x"yes";then -+ LIBREPLACEOBJ="${LIBREPLACEOBJ} dlfcn.o" ++ LIBREPLACEOBJ="${LIBREPLACEOBJ} $libreplacedir/dlfcn.o" +fi - case "$LIBS" in @@ -44785,20 +43840,14 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure +if test x"$libreplace_cv_HAVE_GETPASS" = x"yes" -a x"$libreplace_cv_HAVE_GETPASSPHRASE" = x"yes"; then -+$as_echo "#define REPLACE_GETPASS_BY_GETPASSPHRASE 1" >>confdefs.h - - -+$as_echo "#define REPLACE_GETPASS 1" >>confdefs.h - --for ac_func in mlock munlock mlockall munlockall +-for ac_func in utimensat -do -as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 -$as_echo_n "checking for $ac_func... " >&6; } -if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then - $as_echo_n "(cached) " >&6 -+ LIBREPLACEOBJ="${LIBREPLACEOBJ} getpass.o" - else +-else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF @@ -44808,7 +43857,8 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -/* Define $ac_func to an innocuous variant, in case declares $ac_func. - For example, HP-UX 11i declares gettimeofday. */ -#define $ac_func innocuous_$ac_func -- ++$as_echo "#define REPLACE_GETPASS_BY_GETPASSPHRASE 1" >>confdefs.h + -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char $ac_func (); below. - Prefer to if __STDC__ is defined, since @@ -44819,17 +43869,11 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -#else -# include -#endif -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether getpass should be replaced" >&5 -+$as_echo_n "checking whether getpass should be replaced... " >&6; } -+if test "${libreplace_cv_REPLACE_GETPASS+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else ++$as_echo "#define REPLACE_GETPASS 1" >>confdefs.h -#undef $ac_func -+SAVE_CPPFLAGS="$CPPFLAGS" -+CPPFLAGS="$CPPFLAGS -I$libreplacedir/" -+cat confdefs.h - <<_ACEOF >conftest.$ac_ext -+/* end confdefs.h. */ ++ LIBREPLACEOBJ="${LIBREPLACEOBJ} $libreplacedir/getpass.o" ++else -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC @@ -44844,6 +43888,17 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -#if defined __stub_$ac_func || defined __stub___$ac_func -choke me -#endif ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether getpass should be replaced" >&5 ++$as_echo_n "checking whether getpass should be replaced... " >&6; } ++if test "${libreplace_cv_REPLACE_GETPASS+set}" = set; then : ++ $as_echo_n "(cached) " >&6 ++else ++ ++SAVE_CPPFLAGS="$CPPFLAGS" ++CPPFLAGS="$CPPFLAGS -I$libreplacedir/" ++cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++ +#include "confdefs.h" +#define NO_CONFIG_H +#include "$libreplacedir/getpass.c" @@ -44886,12 +43941,14 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -sed 's/^/| /' conftest.$ac_ext >&5 - - eval "$as_ac_var=no" --fi -- ++ libreplace_cv_REPLACE_GETPASS=no + fi ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++CPPFLAGS="$SAVE_CPPFLAGS" + -rm -rf conftest.dSYM -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -+ libreplace_cv_REPLACE_GETPASS=no fi -ac_res=`eval 'as_val=${'$as_ac_var'} - $as_echo "$as_val"'` @@ -44903,60 +43960,93 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF -+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -+CPPFLAGS="$SAVE_CPPFLAGS" - - fi --done +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libreplace_cv_REPLACE_GETPASS" >&5 +$as_echo "$libreplace_cv_REPLACE_GETPASS" >&6; } +if test x"$libreplace_cv_REPLACE_GETPASS" = x"yes"; then +$as_echo "#define REPLACE_GETPASS 1" >>confdefs.h - -+ LIBREPLACEOBJ="${LIBREPLACEOBJ} getpass.o" -+fi ++ ++ LIBREPLACEOBJ="${LIBREPLACEOBJ} $libreplacedir/getpass.o" + fi +-done +fi --for ac_func in memalign posix_memalign hstrerror ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether strptime is available and works" >&5 ++$as_echo_n "checking whether strptime is available and works... " >&6; } ++if test "${libreplace_cv_STRPTIME_OK+set}" = set; then : ++ $as_echo_n "(cached) " >&6 ++else + ++ if test "$cross_compiling" = yes; then : ++ libreplace_cv_STRPTIME_OK="assuming not" ++else ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ + ++ #define LIBREPLACE_CONFIGURE_TEST_STRPTIME ++ #include "$libreplacedir/test/strptime.c" + +-for ac_func in mlock munlock mlockall munlockall -do -as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 -$as_echo_n "checking for $ac_func... " >&6; } -if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether strptime is available and works" >&5 -+$as_echo_n "checking whether strptime is available and works... " >&6; } -+if test "${libreplace_cv_STRPTIME_OK+set}" = set; then : - $as_echo_n "(cached) " >&6 +- $as_echo_n "(cached) " >&6 ++_ACEOF ++if ac_fn_c_try_run "$LINENO"; then : ++ libreplace_cv_STRPTIME_OK=yes else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ --_ACEOF ++ libreplace_cv_STRPTIME_OK=no ++fi ++rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ ++ conftest.$ac_objext conftest.beam conftest.$ac_ext ++fi ++ ++ ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libreplace_cv_STRPTIME_OK" >&5 ++$as_echo "$libreplace_cv_STRPTIME_OK" >&6; } ++if test x"$libreplace_cv_STRPTIME_OK" != x"yes"; then ++ ++$as_echo "#define REPLACE_STRPTIME 1" >>confdefs.h ++ ++ LIBREPLACEOBJ="${LIBREPLACEOBJ} $libreplacedir/strptime.o" ++fi ++ ++for ac_header in direct.h windows.h winsock2.h ws2tcpip.h ++do : ++ as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ++ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" ++eval as_val=\$$as_ac_Header ++ if test "x$as_val" = x""yes; then : ++ cat >>confdefs.h <<_ACEOF ++#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 + _ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define $ac_func to an innocuous variant, in case declares $ac_func. - For example, HP-UX 11i declares gettimeofday. */ -#define $ac_func innocuous_$ac_func -- + -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char $ac_func (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ -- ++fi + -#ifdef __STDC__ -# include -#else -# include -#endif ++done -#undef $ac_func -+ if test "$cross_compiling" = yes; then : -+ libreplace_cv_STRPTIME_OK="assuming not" -+else -+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext -+/* end confdefs.h. */ -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC @@ -44971,16 +44061,31 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -#if defined __stub_$ac_func || defined __stub___$ac_func -choke me -#endif -+ #define LIBREPLACE_CONFIGURE_TEST_STRPTIME -+ #include "$libreplacedir/test/strptime.c" ++####################################### ++# Check for mkdir mode ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mkdir supports mode" >&5 ++$as_echo_n "checking whether mkdir supports mode... " >&6; } ++if test "${libreplace_cv_mkdir_has_mode+set}" = set; then : ++ $as_echo_n "(cached) " >&6 ++else ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ --int --main () --{ ++ #include ++ #ifdef HAVE_DIRECT_H ++ #include ++ #endif + int + main () + { -return $ac_func (); -- ; -- return 0; --} ++ ++ mkdir("foo",0777); ++ return 0; ++ + ; + return 0; + } _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" @@ -45004,30 +44109,28 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - $as_test_x conftest$ac_exeext - }; then - eval "$as_ac_var=yes" -+if ac_fn_c_try_run "$LINENO"; then : -+ libreplace_cv_STRPTIME_OK=yes ++if ac_fn_c_try_compile "$LINENO"; then : ++ libreplace_cv_mkdir_has_mode="yes" else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 -+ libreplace_cv_STRPTIME_OK=no -+fi -+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ -+ conftest.$ac_objext conftest.beam conftest.$ac_ext -+fi -+ - +- - eval "$as_ac_var=no" ++ libreplace_cv_mkdir_has_mode="no" ++fi ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libreplace_cv_STRPTIME_OK" >&5 -+$as_echo "$libreplace_cv_STRPTIME_OK" >&6; } -+if test x"$libreplace_cv_STRPTIME_OK" != x"yes"; then ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libreplace_cv_mkdir_has_mode" >&5 ++$as_echo "$libreplace_cv_mkdir_has_mode" >&6; } + -+$as_echo "#define REPLACE_STRPTIME 1" >>confdefs.h ++if test "$libreplace_cv_mkdir_has_mode" = "yes" ++then ++ ++$as_echo "#define HAVE_MKDIR_MODE 1" >>confdefs.h -rm -rf conftest.dSYM -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -+ LIBREPLACEOBJ="${LIBREPLACEOBJ} strptime.o" fi -ac_res=`eval 'as_val=${'$as_ac_var'} - $as_echo "$as_val"'` @@ -45037,212 +44140,24 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - $as_echo "$as_val"'` - if test "x$as_val" = x""yes; then + -+for ac_header in direct.h windows.h winsock2.h ws2tcpip.h -+do : -+ as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -+ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" -+eval as_val=\$$as_ac_Header -+ if test "x$as_val" = x""yes; then : - cat >>confdefs.h <<_ACEOF --#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 -+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 - _ACEOF - - fi -+ - done - - --for ac_header in sys/mman.h --do --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 -+####################################### -+# Check for mkdir mode -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mkdir supports mode" >&5 -+$as_echo_n "checking whether mkdir supports mode... " >&6; } -+if test "${libreplace_cv_mkdir_has_mode+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? --{ $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 --cat confdefs.h >>conftest.$ac_ext --cat >>conftest.$ac_ext <<_ACEOF -+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ --$ac_includes_default --#include <$ac_header> --_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_header_compiler=yes --else -- $as_echo "$as_me: failed program was:" >&5 --sed 's/^/| /' conftest.$ac_ext >&5 - -- ac_header_compiler=no --fi -+ #include -+ #ifdef HAVE_DIRECT_H -+ #include -+ #endif -+int -+main () -+{ - --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; } -+ mkdir("foo",0777); -+ return 0; - --# Is the header present? --{ $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 --cat confdefs.h >>conftest.$ac_ext --cat >>conftest.$ac_ext <<_ACEOF --/* end confdefs.h. */ --#include <$ac_header> -+ ; -+ return 0; -+} - _ACEOF --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 -- $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 -+if ac_fn_c_try_compile "$LINENO"; then : -+ libreplace_cv_mkdir_has_mode="yes" - else -- $as_echo "$as_me: failed program was:" >&5 --sed 's/^/| /' conftest.$ac_ext >&5 -- -- ac_header_preproc=no -+ libreplace_cv_mkdir_has_mode="no" - fi -+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -+fi -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libreplace_cv_mkdir_has_mode" >&5 -+$as_echo "$libreplace_cv_mkdir_has_mode" >&6; } - --rm -f conftest.err conftest.$ac_ext --{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 --$as_echo "$ac_header_preproc" >&6; } -+if test "$libreplace_cv_mkdir_has_mode" = "yes" -+then - --# So? What about this header? --case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in -- yes:no: ) -- { $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:* ) -- { $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 samba-technical@samba.org ## --## ---------------------------------------- ## --_ASBOX -- ) | sed "s/^/$as_me: WARNING: /" >&2 -- ;; --esac --{ $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 --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; } -+$as_echo "#define HAVE_MKDIR_MODE 1" >>confdefs.h - - fi --as_val=`eval 'as_val=${'$as_ac_Header'} -- $as_echo "$as_val"'` -- if test "x$as_val" = x""yes; then -+ +for ac_func in timegm +do : + ac_fn_c_check_func "$LINENO" "timegm" "ac_cv_func_timegm" +if test "x$ac_cv_func_timegm" = x""yes; then : cat >>confdefs.h <<_ACEOF --#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 +#define HAVE_TIMEGM 1 _ACEOF +else -+ LIBREPLACEOBJ="${LIBREPLACEOBJ} timegm.o" ++ LIBREPLACEOBJ="${LIBREPLACEOBJ} $libreplacedir/timegm.o" fi -- done --# setbuffer, shmget, shm_open are needed for smbtorture -- --for ac_func in shmget shm_open +- +- +-for ac_func in memalign posix_memalign hstrerror -do -as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 @@ -45408,80 +44323,45 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure done - -- --for ac_func in gettext dgettext +-for ac_header in sys/mman.h -do --as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` --{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 --$as_echo_n "checking for $ac_func... " >&6; } --if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then +-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 "$as_me:${as_lineno-$LINENO}: checking for prototype long telldir(const DIR *dir)" >&5 +$as_echo_n "checking for prototype long telldir(const DIR *dir)... " >&6; } +if test "${ac_cv_c_prototype_long_telldir_const_DIR_pdir_+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 -- cat >conftest.$ac_ext <<_ACEOF +- # Is the header compilable? +-{ $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 -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ --/* Define $ac_func to an innocuous variant, in case declares $ac_func. -- For example, HP-UX 11i declares gettimeofday. */ --#define $ac_func innocuous_$ac_func - --/* System header to define __stub macros and hopefully few prototypes, -- which can conflict with char $ac_func (); below. -- Prefer to if __STDC__ is defined, since -- exists even on freestanding compilers. */ -+ $ac_includes_default - --#ifdef __STDC__ --# include --#else --# include --#endif -+ #include - --#undef $ac_func -+ long telldir(const DIR *dir) -+ { - --/* 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 --char $ac_func (); --/* 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_$ac_func || defined __stub___$ac_func --choke me --#endif -+ return 0; -+ -+ } - --int --main () --{ --return $ac_func (); -- ; -- return 0; --} - _ACEOF --rm -f conftest.$ac_objext conftest$ac_exeext --if { (ac_try="$ac_link" +-$ac_includes_default +-#include <$ac_header> +-_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_link") 2>conftest.er1 +- (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 @@ -45490,57 +44370,143 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - (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 -- eval "$as_ac_var=yes" -+if ac_fn_c_try_compile "$LINENO"; then : -+ -+ ac_cv_c_prototype_long_telldir_const_DIR_pdir_=yes -+ - else +- } && test -s conftest.$ac_objext; then +- ac_header_compiler=yes +-else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 -- eval "$as_ac_var=no" -+ ac_cv_c_prototype_long_telldir_const_DIR_pdir_=no -+ - fi -+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +- ac_header_compiler=no +-fi ++ $ac_includes_default --rm -rf conftest.dSYM --rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ -- conftest$ac_exeext conftest.$ac_ext - fi --ac_res=`eval 'as_val=${'$as_ac_var'} +-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; } ++ #include + +-# Is the header present? +-{ $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 +-cat confdefs.h >>conftest.$ac_ext +-cat >>conftest.$ac_ext <<_ACEOF +-/* end confdefs.h. */ +-#include <$ac_header> +-_ACEOF +-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 +- $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 +- $as_echo "$as_me: failed program was:" >&5 +-sed 's/^/| /' conftest.$ac_ext >&5 ++ long telldir(const DIR *dir) ++ { + +- ac_header_preproc=no +-fi ++ return 0; + +-rm -f conftest.err conftest.$ac_ext +-{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +-$as_echo "$ac_header_preproc" >&6; } ++ } ++ ++_ACEOF ++if ac_fn_c_try_compile "$LINENO"; then : ++ ++ ac_cv_c_prototype_long_telldir_const_DIR_pdir_=yes + +-# So? What about this header? +-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in +- yes:no: ) +- { $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:* ) +- { $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 samba-technical@samba.org ## +-## ---------------------------------------- ## +-_ASBOX +- ) | sed "s/^/$as_me: WARNING: /" >&2 +- ;; +-esac +-{ $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 +-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; } --as_val=`eval 'as_val=${'$as_ac_var'} ++ ++ ac_cv_c_prototype_long_telldir_const_DIR_pdir_=no + + fi +-as_val=`eval 'as_val=${'$as_ac_Header'} - $as_echo "$as_val"'` - if test "x$as_val" = x""yes; then - cat >>confdefs.h <<_ACEOF --#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 +-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + + fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_prototype_long_telldir_const_DIR_pdir_" >&5 +$as_echo "$ac_cv_c_prototype_long_telldir_const_DIR_pdir_" >&6; } +if test $ac_cv_c_prototype_long_telldir_const_DIR_pdir_ = yes; then : -+ -+ -+$as_echo "#define TELLDIR_TAKES_CONST_DIR 1" >>confdefs.h -+ - fi -done +-# setbuffer, shmget, shm_open are needed for smbtorture ++$as_echo "#define TELLDIR_TAKES_CONST_DIR 1" >>confdefs.h --for ac_func in strupr + +-for ac_func in shmget shm_open -do -as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 -$as_echo_n "checking for $ac_func... " >&6; } -if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then ++fi ++ ++ +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for prototype int seekdir(DIR *dir, long ofs)" >&5 +$as_echo_n "checking for prototype int seekdir(DIR *dir, long ofs)... " >&6; } +if test "${ac_cv_c_prototype_int_seekdir_DIR_pdir__long_ofs_+set}" = set; then : @@ -45656,33 +44622,23 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure +if test $ac_cv_c_prototype_int_seekdir_DIR_pdir__long_ofs_ = yes; then : --# Find a method of generating a stack trace +$as_echo "#define SEEKDIR_RETURNS_INT 1" >>confdefs.h - -+fi - --for ac_header in execinfo.h libexc.h libunwind.h +-for ac_func in gettext dgettext -do --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_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +-{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 +-$as_echo_n "checking for $ac_func... " >&6; } +-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then ++ ++fi ++ +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for replacing readdir using getdirentries()" >&5 +$as_echo_n "checking for replacing readdir using getdirentries()... " >&6; } +if test "${libreplace_cv_READDIR_GETDIRENTRIES+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? --{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5 --$as_echo_n "checking $ac_header usability... " >&6; } --cat >conftest.$ac_ext <<_ACEOF +- cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext @@ -45696,272 +44652,65 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ --$ac_includes_default --#include <$ac_header> -+ +-/* Define $ac_func to an innocuous variant, in case declares $ac_func. +- For example, HP-UX 11i declares gettimeofday. */ +-#define $ac_func innocuous_$ac_func + +-/* System header to define __stub macros and hopefully few prototypes, +- which can conflict with char $ac_func (); below. +- Prefer to if __STDC__ is defined, since +- exists even on freestanding compilers. */ +#define _LIBREPLACE_REPLACE_H +#include "$libreplacedir/repdir_getdirentries.c" +#define test_readdir_os2_delete main +#include "$libreplacedir/test/os2_delete.c" - _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_header_compiler=yes ++_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + libreplace_cv_READDIR_GETDIRENTRIES=yes - else -- $as_echo "$as_me: failed program was:" >&5 --sed 's/^/| /' conftest.$ac_ext >&5 ++else + libreplace_cv_READDIR_GETDIRENTRIES=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi -- ac_header_compiler=no -+ +-#ifdef __STDC__ +-# include +-#else +-# include +-#endif + +-#undef $ac_func +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libreplace_cv_READDIR_GETDIRENTRIES" >&5 +$as_echo "$libreplace_cv_READDIR_GETDIRENTRIES" >&6; } - fi ++fi +if test x"$libreplace_cv_READDIR_GETDIRENTRIES" = x"yes"; then --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; } +-/* 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 +-char $ac_func (); +-/* 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_$ac_func || defined __stub___$ac_func +-choke me +-#endif +$as_echo "#define REPLACE_READDIR 1" >>confdefs.h --# Is the header present? --{ $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. */ -+ -+$as_echo "#define REPLACE_READDIR_GETDIRENTRIES 1" >>confdefs.h -+ -+ LIBREPLACEOBJ="${LIBREPLACEOBJ} repdir_getdirentries.o" -+ libreplace_cv_READDIR_NEEDED=no -+fi -+ -+# -+# try to replace with getdents() if needed -+# -+if test x"$libreplace_cv_READDIR_NEEDED" = x"yes"; then -+for ac_func in getdents -+do : -+ ac_fn_c_check_func "$LINENO" "getdents" "ac_cv_func_getdents" -+if test "x$ac_cv_func_getdents" = x""yes; then : -+ cat >>confdefs.h <<_ACEOF -+#define HAVE_GETDENTS 1 - _ACEOF --cat confdefs.h >>conftest.$ac_ext --cat >>conftest.$ac_ext <<_ACEOF -+ -+fi -+done -+ -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for replacing readdir using getdents()" >&5 -+$as_echo_n "checking for replacing readdir using getdents()... " >&6; } -+if test "${libreplace_cv_READDIR_GETDENTS+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ -+ if test "$cross_compiling" = yes; then : -+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -+as_fn_error "cannot run test program while cross compiling -+See \`config.log' for more details." "$LINENO" 5; } -+else -+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ --#include <$ac_header> -+ -+#define _LIBREPLACE_REPLACE_H -+#error _donot_use_getdents_replacement_anymore -+#include "$libreplacedir/repdir_getdents.c" -+#define test_readdir_os2_delete main -+#include "$libreplacedir/test/os2_delete.c" - _ACEOF --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 -- $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 -+if ac_fn_c_try_run "$LINENO"; then : -+ libreplace_cv_READDIR_GETDENTS=yes - else -- $as_echo "$as_me: failed program was:" >&5 --sed 's/^/| /' conftest.$ac_ext >&5 -+ libreplace_cv_READDIR_GETDENTS=no -+fi -+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ -+ conftest.$ac_objext conftest.beam conftest.$ac_ext -+fi - -- ac_header_preproc=no -+ -+fi -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libreplace_cv_READDIR_GETDENTS" >&5 -+$as_echo "$libreplace_cv_READDIR_GETDENTS" >&6; } - fi -+if test x"$libreplace_cv_READDIR_GETDENTS" = x"yes"; then - --rm -f conftest.err conftest.$ac_ext --{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 --$as_echo "$ac_header_preproc" >&6; } -+$as_echo "#define REPLACE_READDIR 1" >>confdefs.h - --# So? What about this header? --case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in -- yes:no: ) -- { $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:* ) -- { $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 samba-technical@samba.org ## --## ---------------------------------------- ## --_ASBOX -- ) | sed "s/^/$as_me: WARNING: /" >&2 -- ;; --esac --{ $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" -+ -+$as_echo "#define REPLACE_READDIR_GETDENTS 1" >>confdefs.h -+ -+ LIBREPLACEOBJ="${LIBREPLACEOBJ} repdir_getdents.o" -+ libreplace_cv_READDIR_NEEDED=no - 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; } - -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking a usable readdir()" >&5 -+$as_echo_n "checking a usable readdir()... " >&6; } -+if test x"$libreplace_cv_READDIR_NEEDED" = x"yes"; then -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -+$as_echo "no" >&6; } -+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: the provided readdir() is broken" >&5 -+$as_echo "$as_me: WARNING: the provided readdir() is broken" >&2;} -+else -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -+$as_echo "yes" >&6; } - fi --as_val=`eval 'as_val=${'$as_ac_Header'} -- $as_echo "$as_val"'` -- if test "x$as_val" = x""yes; then -+ -+############################################### -+# test for where we get crypt() from -+for ac_header in crypt.h -+do : -+ ac_fn_c_check_header_mongrel "$LINENO" "crypt.h" "ac_cv_header_crypt_h" "$ac_includes_default" -+if test "x$ac_cv_header_crypt_h" = x""yes; then : - cat >>confdefs.h <<_ACEOF --#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -+#define HAVE_CRYPT_H 1 - _ACEOF - - fi - - done - --# libexecinfo provides backtrace_symbols on FreeBSD --{ $as_echo "$as_me:$LINENO: checking for library containing backtrace_symbols" >&5 --$as_echo_n "checking for library containing backtrace_symbols... " >&6; } --if test "${ac_cv_search_backtrace_symbols+set}" = set; then -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing crypt" >&5 -+$as_echo_n "checking for library containing crypt... " >&6; } -+if test "${ac_cv_search_ext_crypt+set}" = set; then : - $as_echo_n "(cached) " >&6 - else -- ac_func_search_save_LIBS=$LIBS --cat >conftest.$ac_ext <<_ACEOF --/* confdefs.h. */ +-int +-main () +-{ +-return $ac_func (); +- ; +- return 0; +-} -_ACEOF --cat confdefs.h >>conftest.$ac_ext --cat >>conftest.$ac_ext <<_ACEOF -+ -+ac_func_search_ext_save_LIBS=$LIBS -+ac_cv_search_ext_crypt=no -+cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ - - /* Override any GCC internal prototype to avoid an error. -@@ -42989,105 +11163,25 @@ - #ifdef __cplusplus - extern "C" - #endif --char backtrace_symbols (); -+char crypt (); - int - main () - { --return backtrace_symbols (); -+return crypt (); - ; - return 0; - } - _ACEOF --for ac_lib in '' execinfo; do -- if test -z "$ac_lib"; then -- ac_res="none required" -- else -- ac_res=-l$ac_lib -- LIBS="-l$ac_lib $ac_func_search_save_LIBS" -- fi -- rm -f conftest.$ac_objext conftest$ac_exeext +-rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; @@ -45982,63 +44731,222 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - test "$cross_compiling" = yes || - $as_test_x conftest$ac_exeext - }; then -- ac_cv_search_backtrace_symbols=$ac_res +- eval "$as_ac_var=yes" -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 -- -- + +- eval "$as_ac_var=no" -fi -- ++$as_echo "#define REPLACE_READDIR_GETDIRENTRIES 1" >>confdefs.h + -rm -rf conftest.dSYM -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ -- conftest$ac_exeext -- if test "${ac_cv_search_backtrace_symbols+set}" = set; then -- break --fi --done --if test "${ac_cv_search_backtrace_symbols+set}" = set; then -- : --else -- ac_cv_search_backtrace_symbols=no --fi --rm conftest.$ac_ext --LIBS=$ac_func_search_save_LIBS --fi --{ $as_echo "$as_me:$LINENO: result: $ac_cv_search_backtrace_symbols" >&5 --$as_echo "$ac_cv_search_backtrace_symbols" >&6; } --ac_res=$ac_cv_search_backtrace_symbols --if test "$ac_res" != no; then -- test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" -- -+if ac_fn_c_try_link "$LINENO"; then : -+ ac_cv_search_ext_crypt="none required" +- conftest$ac_exeext conftest.$ac_ext ++ LIBREPLACEOBJ="${LIBREPLACEOBJ} $libreplacedir/repdir_getdirentries.o" ++ libreplace_cv_READDIR_NEEDED=no fi +-ac_res=`eval 'as_val=${'$as_ac_var'} +- $as_echo "$as_val"'` +- { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +-$as_echo "$ac_res" >&6; } +-as_val=`eval 'as_val=${'$as_ac_var'} +- $as_echo "$as_val"'` +- if test "x$as_val" = x""yes; then ++ ++# ++# try to replace with getdents() if needed ++# ++if test x"$libreplace_cv_READDIR_NEEDED" = x"yes"; then ++for ac_func in getdents ++do : ++ ac_fn_c_check_func "$LINENO" "getdents" "ac_cv_func_getdents" ++if test "x$ac_cv_func_getdents" = x""yes; then : + cat >>confdefs.h <<_ACEOF +-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 ++#define HAVE_GETDENTS 1 + _ACEOF + + fi + done + - - --for ac_func in backtrace_symbols +-for ac_func in bindtextdomain textdomain -do -as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 -$as_echo_n "checking for $ac_func... " >&6; } -if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then -- $as_echo_n "(cached) " >&6 --else ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for replacing readdir using getdents()" >&5 ++$as_echo_n "checking for replacing readdir using getdents()... " >&6; } ++if test "${libreplace_cv_READDIR_GETDENTS+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 -+rm -f core conftest.err conftest.$ac_objext \ -+ conftest$ac_exeext conftest.$ac_ext -+if test "$ac_cv_search_ext_crypt" = no; then -+ for ac_lib in crypt; do -+ LIBS="-l$ac_lib $CRYPT_LIBS $ac_func_search_save_ext_LIBS" -+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++ ++ if test "$cross_compiling" = yes; then : ++ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 ++$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} ++as_fn_error "cannot run test program while cross compiling ++See \`config.log' for more details." "$LINENO" 5; } ++else ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -/* Define $ac_func to an innocuous variant, in case declares $ac_func. - For example, HP-UX 11i declares gettimeofday. */ -#define $ac_func innocuous_$ac_func + +-/* System header to define __stub macros and hopefully few prototypes, +- which can conflict with char $ac_func (); below. +- Prefer to if __STDC__ is defined, since +- exists even on freestanding compilers. */ ++#define _LIBREPLACE_REPLACE_H ++#error _donot_use_getdents_replacement_anymore ++#include "$libreplacedir/repdir_getdents.c" ++#define test_readdir_os2_delete main ++#include "$libreplacedir/test/os2_delete.c" ++_ACEOF ++if ac_fn_c_try_run "$LINENO"; then : ++ libreplace_cv_READDIR_GETDENTS=yes ++else ++ libreplace_cv_READDIR_GETDENTS=no ++fi ++rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ ++ conftest.$ac_objext conftest.beam conftest.$ac_ext ++fi + +-#ifdef __STDC__ +-# include +-#else +-# include +-#endif + +-#undef $ac_func ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libreplace_cv_READDIR_GETDENTS" >&5 ++$as_echo "$libreplace_cv_READDIR_GETDENTS" >&6; } ++fi ++if test x"$libreplace_cv_READDIR_GETDENTS" = x"yes"; then ++ ++$as_echo "#define REPLACE_READDIR 1" >>confdefs.h + +-/* 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 +-char $ac_func (); +-/* 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_$ac_func || defined __stub___$ac_func +-choke me +-#endif + +-int +-main () +-{ +-return $ac_func (); +- ; +- return 0; +-} +-_ACEOF +-rm -f conftest.$ac_objext conftest$ac_exeext +-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 +- $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 +- eval "$as_ac_var=yes" +-else +- $as_echo "$as_me: failed program was:" >&5 +-sed 's/^/| /' conftest.$ac_ext >&5 ++$as_echo "#define REPLACE_READDIR_GETDENTS 1" >>confdefs.h + +- eval "$as_ac_var=no" ++ LIBREPLACEOBJ="${LIBREPLACEOBJ} $libreplacedir/repdir_getdents.o" ++ libreplace_cv_READDIR_NEEDED=no + fi + +-rm -rf conftest.dSYM +-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ +- conftest$ac_exeext conftest.$ac_ext ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking a usable readdir()" >&5 ++$as_echo_n "checking a usable readdir()... " >&6; } ++if test x"$libreplace_cv_READDIR_NEEDED" = x"yes"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++$as_echo "no" >&6; } ++ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: the provided readdir() is broken" >&5 ++$as_echo "$as_me: WARNING: the provided readdir() is broken" >&2;} ++else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 ++$as_echo "yes" >&6; } + fi +-ac_res=`eval 'as_val=${'$as_ac_var'} +- $as_echo "$as_val"'` +- { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +-$as_echo "$ac_res" >&6; } +-as_val=`eval 'as_val=${'$as_ac_var'} +- $as_echo "$as_val"'` +- if test "x$as_val" = x""yes; then ++ ++############################################### ++# test for where we get crypt() from ++for ac_header in crypt.h ++do : ++ ac_fn_c_check_header_mongrel "$LINENO" "crypt.h" "ac_cv_header_crypt_h" "$ac_includes_default" ++if test "x$ac_cv_header_crypt_h" = x""yes; then : + cat >>confdefs.h <<_ACEOF +-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 ++#define HAVE_CRYPT_H 1 + _ACEOF + + fi +-done + ++done + +-for ac_func in strupr +-do +-as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +-{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 +-$as_echo_n "checking for $ac_func... " >&6; } +-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing crypt" >&5 ++$as_echo_n "checking for library containing crypt... " >&6; } ++if test "${ac_cv_search_ext_crypt+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. */ +-/* Define $ac_func to an innocuous variant, in case declares $ac_func. +- For example, HP-UX 11i declares gettimeofday. */ +-#define $ac_func innocuous_$ac_func - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char $ac_func (); below. @@ -46050,12 +44958,16 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -#else -# include -#endif -- + -#undef $ac_func ++ac_func_search_ext_save_LIBS=$LIBS ++ac_cv_search_ext_crypt=no ++cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC -@@ -43095,1082 +11189,653 @@ +@@ -42461,216 +10894,170 @@ #ifdef __cplusplus extern "C" #endif @@ -46102,8 +45014,33 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 -- ++if ac_fn_c_try_link "$LINENO"; then : ++ ac_cv_search_ext_crypt="none required" ++fi ++rm -f core conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext ++if test "$ac_cv_search_ext_crypt" = no; then ++ for ac_lib in crypt; do ++ LIBS="-l$ac_lib $CRYPT_LIBS $ac_func_search_save_ext_LIBS" ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ + - eval "$as_ac_var=no" ++/* 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 ++char crypt (); ++int ++main () ++{ ++return crypt (); ++ ; ++ return 0; ++} ++_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_ext_crypt="-l$ac_lib" +break @@ -46125,7 +45062,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext +else -+ LIBREPLACEOBJ="${LIBREPLACEOBJ} crypt.o" ++ LIBREPLACEOBJ="${LIBREPLACEOBJ} $libreplacedir/crypt.o" fi -ac_res=`eval 'as_val=${'$as_ac_var'} - $as_echo "$as_val"'` @@ -46136,7 +45073,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - if test "x$as_val" = x""yes; then + + -+for ac_func in syslog printf memset memcpy ++for ac_func in printf memset memcpy +do : + as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" @@ -46152,16 +45089,46 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure done --{ $as_echo "$as_me:$LINENO: checking for trace_back_stack in -lexc" >&5 --$as_echo_n "checking for trace_back_stack in -lexc... " >&6; } --if test "${ac_cv_lib_exc_trace_back_stack+set}" = set; then +-# Find a method of generating a stack trace +- ++echo "LIBREPLACE_BROKEN_CHECKS: END" + ++for ac_func in syslog ++do : ++ ac_fn_c_check_func "$LINENO" "syslog" "ac_cv_func_syslog" ++if test "x$ac_cv_func_syslog" = x""yes; then : ++ cat >>confdefs.h <<_ACEOF ++#define HAVE_SYSLOG 1 ++_ACEOF + +-for ac_header in execinfo.h libexc.h libunwind.h +-do +-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 --else -- ac_check_lib_save_LIBS=$LIBS --LIBS="-lexc $LIBS" +-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? +-{ $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. */ -+echo "LIBREPLACE_BROKEN_CHECKS: END" +-_ACEOF +-cat confdefs.h >>conftest.$ac_ext +-cat >>conftest.$ac_ext <<_ACEOF +-/* end confdefs.h. */ +-$ac_includes_default +-#include <$ac_header> ++ as_fn_error "Required function not found" "$LINENO" 5 ++fi ++done + + +echo "LIBREPLACE_NETWORK_CHECKS: START" @@ -46181,28 +45148,47 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _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_header_compiler=yes +-else +- $as_echo "$as_me: failed program was:" >&5 +-sed 's/^/| /' conftest.$ac_ext >&5 + +- ac_header_compiler=no + fi + +-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; } ++done + +-# Is the header present? +-{ $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 -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - --/* 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 --char trace_back_stack (); --int --main () --{ --return trace_back_stack (); -- ; -- return 0; --} -+fi -+ -+done -+ +-#include <$ac_header> +for ac_header in netinet/in_systm.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "netinet/in_systm.h" "ac_cv_header_netinet_in_systm_h" "$ac_includes_default" @@ -46210,7 +45196,188 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure + cat >>confdefs.h <<_ACEOF +#define HAVE_NETINET_IN_SYSTM_H 1 _ACEOF --rm -f conftest.$ac_objext conftest$ac_exeext +-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 +- $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 +- $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 +-{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +-$as_echo "$ac_header_preproc" >&6; } ++done ++ ++for ac_header in netinet/ip.h ++do : ++ ac_fn_c_check_header_compile "$LINENO" "netinet/ip.h" "ac_cv_header_netinet_ip_h" " ++ #include ++ #ifdef HAVE_NETINET_IN_H ++ #include ++ #endif ++ #ifdef HAVE_NETINET_IN_SYSTM_H ++ #include ++ #endif ++ ++" ++if test "x$ac_cv_header_netinet_ip_h" = x""yes; then : ++ cat >>confdefs.h <<_ACEOF ++#define HAVE_NETINET_IP_H 1 ++_ACEOF + +-# So? What about this header? +-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in +- yes:no: ) +- { $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:* ) +- { $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 samba-technical@samba.org ## +-## ---------------------------------------- ## +-_ASBOX +- ) | sed "s/^/$as_me: WARNING: /" >&2 +- ;; +-esac +-{ $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 +-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; } ++ ++done ++ ++for ac_header in netinet/tcp.h netinet/in_ip.h ++do : ++ as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ++ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" ++eval as_val=\$$as_ac_Header ++ if test "x$as_val" = x""yes; then : ++ cat >>confdefs.h <<_ACEOF ++#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 ++_ACEOF + + fi +-as_val=`eval 'as_val=${'$as_ac_Header'} +- $as_echo "$as_val"'` +- if test "x$as_val" = x""yes; then ++ ++done ++ ++for ac_header in sys/sockio.h sys/un.h ++do : ++ as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ++ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" ++eval as_val=\$$as_ac_Header ++ if test "x$as_val" = x""yes; then : + cat >>confdefs.h <<_ACEOF + #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 + _ACEOF +@@ -42679,857 +11066,519 @@ + + done + +-# libexecinfo provides backtrace_symbols on FreeBSD +-{ $as_echo "$as_me:$LINENO: checking for library containing backtrace_symbols" >&5 +-$as_echo_n "checking for library containing backtrace_symbols... " >&6; } +-if test "${ac_cv_search_backtrace_symbols+set}" = set; then ++for ac_header in sys/uio.h ++do : ++ ac_fn_c_check_header_mongrel "$LINENO" "sys/uio.h" "ac_cv_header_sys_uio_h" "$ac_includes_default" ++if test "x$ac_cv_header_sys_uio_h" = x""yes; then : ++ cat >>confdefs.h <<_ACEOF ++#define HAVE_SYS_UIO_H 1 ++_ACEOF ++ ++fi ++ ++done ++ ++ ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for usable net/if.h" >&5 ++$as_echo_n "checking for usable net/if.h... " >&6; } ++if test "${libreplace_cv_USABLE_NET_IF_H+set}" = set; then : + $as_echo_n "(cached) " >&6 + else +- ac_func_search_save_LIBS=$LIBS +-cat >conftest.$ac_ext <<_ACEOF +-/* confdefs.h. */ +-_ACEOF +-cat confdefs.h >>conftest.$ac_ext +-cat >>conftest.$ac_ext <<_ACEOF ++ ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + +-/* 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 +-char backtrace_symbols (); +-int +-main () +-{ +-return backtrace_symbols (); +- ; +- return 0; +-} ++ $ac_includes_default ++ #if HAVE_SYS_SOCKET_H ++ # include ++ #endif ++ #include ++ int main(void) {return 0;} + _ACEOF +-for ac_lib in '' execinfo; do +- if test -z "$ac_lib"; then +- ac_res="none required" +- else +- ac_res=-l$ac_lib +- LIBS="-l$ac_lib $ac_func_search_save_LIBS" +- fi +- rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; @@ -46231,97 +45398,58 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - test "$cross_compiling" = yes || - $as_test_x conftest$ac_exeext - }; then -- ac_cv_lib_exc_trace_back_stack=yes --else +- ac_cv_search_backtrace_symbols=$ac_res ++if ac_fn_c_try_compile "$LINENO"; then : ++ libreplace_cv_USABLE_NET_IF_H=yes + else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 +- ++ libreplace_cv_USABLE_NET_IF_H=no -- ac_cv_lib_exc_trace_back_stack=no fi ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -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 -+done -+ -+for ac_header in netinet/ip.h -+do : -+ ac_fn_c_check_header_compile "$LINENO" "netinet/ip.h" "ac_cv_header_netinet_ip_h" " -+ #include -+ #ifdef HAVE_NETINET_IN_H -+ #include -+ #endif -+ #ifdef HAVE_NETINET_IN_SYSTM_H -+ #include -+ #endif -+ -+" -+if test "x$ac_cv_header_netinet_ip_h" = x""yes; then : -+ cat >>confdefs.h <<_ACEOF -+#define HAVE_NETINET_IP_H 1 -+_ACEOF -+ +- conftest$ac_exeext +- if test "${ac_cv_search_backtrace_symbols+set}" = set; then +- break +-fi +-done +-if test "${ac_cv_search_backtrace_symbols+set}" = set; then +- : +-else +- ac_cv_search_backtrace_symbols=no +-fi +-rm conftest.$ac_ext +-LIBS=$ac_func_search_save_LIBS fi --{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_exc_trace_back_stack" >&5 --$as_echo "$ac_cv_lib_exc_trace_back_stack" >&6; } --if test "x$ac_cv_lib_exc_trace_back_stack" = x""yes; then +-{ $as_echo "$as_me:$LINENO: result: $ac_cv_search_backtrace_symbols" >&5 +-$as_echo "$ac_cv_search_backtrace_symbols" >&6; } +-ac_res=$ac_cv_search_backtrace_symbols +-if test "$ac_res" != no; then +- test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libreplace_cv_USABLE_NET_IF_H" >&5 ++$as_echo "$libreplace_cv_USABLE_NET_IF_H" >&6; } ++if test x"$libreplace_cv_USABLE_NET_IF_H" = x"yes";then + -+done -+ -+for ac_header in netinet/tcp.h netinet/in_ip.h -+do : -+ as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -+ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" -+eval as_val=\$$as_ac_Header -+ if test "x$as_val" = x""yes; then : - cat >>confdefs.h <<_ACEOF --#define HAVE_LIBEXC 1 -+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 - _ACEOF - -- LIBS="-lexc $LIBS" -+fi -+ -+done -+ -+for ac_header in sys/sockio.h sys/un.h -+do : -+ as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -+ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" -+eval as_val=\$$as_ac_Header -+ if test "x$as_val" = x""yes; then : -+ cat >>confdefs.h <<_ACEOF -+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -+_ACEOF ++$as_echo "#define HAVE_NET_IF_H 1" >>confdefs.h fi -+done --# check for sysctlbyname for BSD systems -+for ac_header in sys/uio.h -+do : -+ ac_fn_c_check_header_mongrel "$LINENO" "sys/uio.h" "ac_cv_header_sys_uio_h" "$ac_includes_default" -+if test "x$ac_cv_header_sys_uio_h" = x""yes; then : -+ cat >>confdefs.h <<_ACEOF -+#define HAVE_SYS_UIO_H 1 -+_ACEOF - --for ac_func in sysctlbyname +-for ac_func in backtrace_symbols -do -as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 -$as_echo_n "checking for $ac_func... " >&6; } -if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then -+fi + -+done -+ -+ -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for usable net/if.h" >&5 -+$as_echo_n "checking for usable net/if.h... " >&6; } -+if test "${libreplace_cv_USABLE_NET_IF_H+set}" = set; then : ++cv=`echo "socklen_t" | sed 'y%./+- %__p__%'` ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for socklen_t" >&5 ++$as_echo_n "checking for socklen_t... " >&6; } ++if { as_var=ac_cv_type_$cv; eval "test \"\${$as_var+set}\" = set"; }; then : $as_echo_n "(cached) " >&6 else - cat >conftest.$ac_ext <<_ACEOF @@ -46329,48 +45457,25 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -+ -+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -/* Define $ac_func to an innocuous variant, in case declares $ac_func. - For example, HP-UX 11i declares gettimeofday. */ -#define $ac_func innocuous_$ac_func - +- -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char $ac_func (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ -+ $ac_includes_default -+ #if HAVE_SYS_SOCKET_H -+ # include -+ #endif -+ #include -+ int main(void) {return 0;} -+_ACEOF -+if ac_fn_c_try_compile "$LINENO"; then : -+ libreplace_cv_USABLE_NET_IF_H=yes -+else -+ libreplace_cv_USABLE_NET_IF_H=no -+ -+fi -+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -+ -+fi -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libreplace_cv_USABLE_NET_IF_H" >&5 -+$as_echo "$libreplace_cv_USABLE_NET_IF_H" >&6; } -+if test x"$libreplace_cv_USABLE_NET_IF_H" = x"yes";then -+ -+$as_echo "#define HAVE_NET_IF_H 1" >>confdefs.h - +- -#ifdef __STDC__ -# include -#else -# include -#endif -+fi - +- -#undef $ac_func - +- -/* 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. */ @@ -46385,15 +45490,6 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -choke me -#endif -+cv=`echo "socklen_t" | sed 'y%./+- %__p__%'` -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for socklen_t" >&5 -+$as_echo_n "checking for socklen_t... " >&6; } -+if { as_var=ac_cv_type_$cv; eval "test \"\${$as_var+set}\" = set"; }; then : -+ $as_echo_n "(cached) " >&6 -+else -+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext -+/* end confdefs.h. */ -+ +$ac_includes_default +#include int @@ -46475,6 +45571,245 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -done +-{ $as_echo "$as_me:$LINENO: checking for trace_back_stack in -lexc" >&5 +-$as_echo_n "checking for trace_back_stack in -lexc... " >&6; } +-if test "${ac_cv_lib_exc_trace_back_stack+set}" = set; then ++ ++cv=`echo "sa_family_t" | sed 'y%./+- %__p__%'` ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sa_family_t" >&5 ++$as_echo_n "checking for sa_family_t... " >&6; } ++if { as_var=ac_cv_type_$cv; eval "test \"\${$as_var+set}\" = set"; }; then : + $as_echo_n "(cached) " >&6 + else +- ac_check_lib_save_LIBS=$LIBS +-LIBS="-lexc $LIBS" +-cat >conftest.$ac_ext <<_ACEOF +-/* confdefs.h. */ +-_ACEOF +-cat confdefs.h >>conftest.$ac_ext +-cat >>conftest.$ac_ext <<_ACEOF ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + +-/* 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 +-char trace_back_stack (); ++$ac_includes_default ++#include + int + main () + { +-return trace_back_stack (); ++sa_family_t foo; + ; + return 0; + } + _ACEOF +-rm -f conftest.$ac_objext conftest$ac_exeext +-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 +- $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_exc_trace_back_stack=yes ++if ac_fn_c_try_compile "$LINENO"; then : ++ eval "ac_cv_type_$cv=yes" + else +- $as_echo "$as_me: failed program was:" >&5 +-sed 's/^/| /' conftest.$ac_ext >&5 +- +- ac_cv_lib_exc_trace_back_stack=no ++ eval "ac_cv_type_$cv=no" + fi +- +-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 ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + fi +-{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_exc_trace_back_stack" >&5 +-$as_echo "$ac_cv_lib_exc_trace_back_stack" >&6; } +-if test "x$ac_cv_lib_exc_trace_back_stack" = x""yes; then +- cat >>confdefs.h <<_ACEOF +-#define HAVE_LIBEXC 1 ++ac_foo=`eval echo \\$ac_cv_type_$cv` ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_foo" >&5 ++$as_echo "$ac_foo" >&6; } ++if test "$ac_foo" = yes; then ++ ac_tr_hdr=HAVE_`echo sa_family_t | sed 'y%abcdefghijklmnopqrstuvwxyz./- %ABCDEFGHIJKLMNOPQRSTUVWXYZ____%'` ++if false; then ++ ac_fn_c_check_type "$LINENO" "sa_family_t" "ac_cv_type_sa_family_t" "$ac_includes_default" ++if test "x$ac_cv_type_sa_family_t" = x""yes; then : ++ ++cat >>confdefs.h <<_ACEOF ++#define HAVE_SA_FAMILY_T 1 + _ACEOF + +- LIBS="-lexc $LIBS" + + fi + ++fi + +-# check for sysctlbyname for BSD systems +- +-for ac_func in sysctlbyname +-do +-as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +-{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 +-$as_echo_n "checking for $ac_func... " >&6; } +-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then +- $as_echo_n "(cached) " >&6 +-else +- cat >conftest.$ac_ext <<_ACEOF +-/* confdefs.h. */ ++cat >>confdefs.h <<_ACEOF ++#define $ac_tr_hdr 1 + _ACEOF +-cat confdefs.h >>conftest.$ac_ext +-cat >>conftest.$ac_ext <<_ACEOF +-/* end confdefs.h. */ +-/* Define $ac_func to an innocuous variant, in case declares $ac_func. +- For example, HP-UX 11i declares gettimeofday. */ +-#define $ac_func innocuous_$ac_func + +-/* System header to define __stub macros and hopefully few prototypes, +- which can conflict with char $ac_func (); below. +- Prefer to if __STDC__ is defined, since +- exists even on freestanding compilers. */ ++fi + +-#ifdef __STDC__ +-# include +-#else +-# include +-#endif + +-#undef $ac_func + +-/* 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 +-char $ac_func (); +-/* 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_$ac_func || defined __stub___$ac_func +-choke me +-#endif ++cv=`echo "struct addrinfo" | sed 'y%./+- %__p__%'` ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for struct addrinfo" >&5 ++$as_echo_n "checking for struct addrinfo... " >&6; } ++if { as_var=ac_cv_type_$cv; eval "test \"\${$as_var+set}\" = set"; }; then : ++ $as_echo_n "(cached) " >&6 ++else ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ + ++$ac_includes_default ++#include + int + main () + { +-return $ac_func (); ++struct addrinfo foo; + ; + return 0; + } + _ACEOF +-rm -f conftest.$ac_objext conftest$ac_exeext +-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 +- $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 +- eval "$as_ac_var=yes" ++if ac_fn_c_try_compile "$LINENO"; then : ++ eval "ac_cv_type_$cv=yes" + else +- $as_echo "$as_me: failed program was:" >&5 +-sed 's/^/| /' conftest.$ac_ext >&5 ++ eval "ac_cv_type_$cv=no" ++fi ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++fi ++ac_foo=`eval echo \\$ac_cv_type_$cv` ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_foo" >&5 ++$as_echo "$ac_foo" >&6; } ++if test "$ac_foo" = yes; then ++ ac_tr_hdr=HAVE_`echo struct addrinfo | sed 'y%abcdefghijklmnopqrstuvwxyz./- %ABCDEFGHIJKLMNOPQRSTUVWXYZ____%'` ++if false; then ++ ac_fn_c_check_type "$LINENO" "struct addrinfo" "ac_cv_type_struct_addrinfo" "$ac_includes_default" ++if test "x$ac_cv_type_struct_addrinfo" = x""yes; then : ++ ++cat >>confdefs.h <<_ACEOF ++#define HAVE_STRUCT_ADDRINFO 1 ++_ACEOF ++ + +- eval "$as_ac_var=no" + fi + +-rm -rf conftest.dSYM +-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ +- conftest$ac_exeext conftest.$ac_ext + fi +-ac_res=`eval 'as_val=${'$as_ac_var'} +- $as_echo "$as_val"'` +- { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +-$as_echo "$ac_res" >&6; } +-as_val=`eval 'as_val=${'$as_ac_var'} +- $as_echo "$as_val"'` +- if test "x$as_val" = x""yes; then +- cat >>confdefs.h <<_ACEOF +-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 ++ ++cat >>confdefs.h <<_ACEOF ++#define $ac_tr_hdr 1 + _ACEOF + + fi +-done + + -############################# -# check if building with gpfs @@ -46485,9 +45820,9 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - { $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 -+cv=`echo "sa_family_t" | sed 'y%./+- %__p__%'` -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sa_family_t" >&5 -+$as_echo_n "checking for sa_family_t... " >&6; } ++cv=`echo "struct sockaddr" | sed 'y%./+- %__p__%'` ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for struct sockaddr" >&5 ++$as_echo_n "checking for struct sockaddr... " >&6; } +if { as_var=ac_cv_type_$cv; eval "test \"\${$as_var+set}\" = set"; }; then : $as_echo_n "(cached) " >&6 -fi @@ -46513,7 +45848,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure +int +main () +{ -+sa_family_t foo; ++struct sockaddr foo; + ; + return 0; +} @@ -46555,23 +45890,31 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_foo" >&5 +$as_echo "$ac_foo" >&6; } +if test "$ac_foo" = yes; then -+ ac_tr_hdr=HAVE_`echo sa_family_t | sed 'y%abcdefghijklmnopqrstuvwxyz./- %ABCDEFGHIJKLMNOPQRSTUVWXYZ____%'` ++ ac_tr_hdr=HAVE_`echo struct sockaddr | sed 'y%abcdefghijklmnopqrstuvwxyz./- %ABCDEFGHIJKLMNOPQRSTUVWXYZ____%'` +if false; then -+ ac_fn_c_check_type "$LINENO" "sa_family_t" "ac_cv_type_sa_family_t" "$ac_includes_default" -+if test "x$ac_cv_type_sa_family_t" = x""yes; then : ++ ac_fn_c_check_type "$LINENO" "struct sockaddr" "ac_cv_type_struct_sockaddr" "$ac_includes_default" ++if test "x$ac_cv_type_struct_sockaddr" = x""yes; then : -# Is the header present? -{ $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 ++cat >>confdefs.h <<_ACEOF ++#define HAVE_STRUCT_SOCKADDR 1 + _ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include <$ac_header> ++ ++ ++fi ++ ++fi ++ +cat >>confdefs.h <<_ACEOF -+#define HAVE_SA_FAMILY_T 1 ++#define $ac_tr_hdr 1 _ACEOF -if { (ac_try="$ac_cpp conftest.$ac_ext" -case "(($ac_try" in @@ -46596,8 +45939,8 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -sed 's/^/| /' conftest.$ac_ext >&5 - ac_header_preproc=no --fi -- + fi + -rm -f conftest.err conftest.$ac_ext -{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -$as_echo "$ac_header_preproc" >&6; } @@ -46635,38 +45978,77 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -{ $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 ++ ++cv=`echo "struct sockaddr_storage" | sed 'y%./+- %__p__%'` ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for struct sockaddr_storage" >&5 ++$as_echo_n "checking for struct sockaddr_storage... " >&6; } ++if { as_var=ac_cv_type_$cv; eval "test \"\${$as_var+set}\" = set"; }; then : + $as_echo_n "(cached) " >&6 + else - eval "$as_ac_Header=\$ac_header_preproc" ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++ ++$ac_includes_default ++ ++#include ++#include ++#include ++ ++int ++main () ++{ ++struct sockaddr_storage foo; ++ ; ++ return 0; ++} ++_ACEOF ++if ac_fn_c_try_compile "$LINENO"; then : ++ eval "ac_cv_type_$cv=yes" ++else ++ eval "ac_cv_type_$cv=no" 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; } - +- ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -as_val=`eval 'as_val=${'$as_ac_Header'} - $as_echo "$as_val"'` - if test "x$as_val" = x""yes; then - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 ++ac_foo=`eval echo \\$ac_cv_type_$cv` ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_foo" >&5 ++$as_echo "$ac_foo" >&6; } ++if test "$ac_foo" = yes; then ++ ac_tr_hdr=HAVE_`echo struct sockaddr_storage | sed 'y%abcdefghijklmnopqrstuvwxyz./- %ABCDEFGHIJKLMNOPQRSTUVWXYZ____%'` ++if false; then ++ ac_fn_c_check_type "$LINENO" "struct sockaddr_storage" "ac_cv_type_struct_sockaddr_storage" "$ac_includes_default" ++if test "x$ac_cv_type_struct_sockaddr_storage" = x""yes; then : + +cat >>confdefs.h <<_ACEOF ++#define HAVE_STRUCT_SOCKADDR_STORAGE 1 + _ACEOF + +-fi + +-done ++fi + +-if test x"$ac_cv_header_gpfs_gpl_h" = x"yes"; then ++fi + +-cat >>confdefs.h <<\_ACEOF +-#define HAVE_GPFS 1 ++cat >>confdefs.h <<_ACEOF +#define $ac_tr_hdr 1 _ACEOF - fi - --done -- --if test x"$ac_cv_header_gpfs_gpl_h" = x"yes"; then -- --cat >>confdefs.h <<\_ACEOF --#define HAVE_GPFS 1 --_ACEOF - - default_shared_modules="$default_shared_modules vfs_gpfs" --fi + fi -############################################# -# check if building on Isilon OneFS @@ -46678,9 +46060,11 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -+cv=`echo "struct addrinfo" | sed 'y%./+- %__p__%'` -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for struct addrinfo" >&5 -+$as_echo_n "checking for struct addrinfo... " >&6; } ++ ++ ++cv=`echo "struct sockaddr_in6" | sed 'y%./+- %__p__%'` ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for struct sockaddr_in6" >&5 ++$as_echo_n "checking for struct sockaddr_in6... " >&6; } +if { as_var=ac_cv_type_$cv; eval "test \"\${$as_var+set}\" = set"; }; then : + $as_echo_n "(cached) " >&6 +else @@ -46689,12 +46073,16 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -#include + +$ac_includes_default -+#include ++ ++#include ++#include ++#include ++ int main () { -get_isilon_copyright() -+struct addrinfo foo; ++struct sockaddr_in6 foo; ; return 0; } @@ -46726,31 +46114,38 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 -- -- samba_cv_HAVE_ONEFS=no + eval "ac_cv_type_$cv=no" - fi ++fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +ac_foo=`eval echo \\$ac_cv_type_$cv` +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_foo" >&5 +$as_echo "$ac_foo" >&6; } +if test "$ac_foo" = yes; then -+ ac_tr_hdr=HAVE_`echo struct addrinfo | sed 'y%abcdefghijklmnopqrstuvwxyz./- %ABCDEFGHIJKLMNOPQRSTUVWXYZ____%'` ++ ac_tr_hdr=HAVE_`echo struct sockaddr_in6 | sed 'y%abcdefghijklmnopqrstuvwxyz./- %ABCDEFGHIJKLMNOPQRSTUVWXYZ____%'` +if false; then -+ ac_fn_c_check_type "$LINENO" "struct addrinfo" "ac_cv_type_struct_addrinfo" "$ac_includes_default" -+if test "x$ac_cv_type_struct_addrinfo" = x""yes; then : ++ ac_fn_c_check_type "$LINENO" "struct sockaddr_in6" "ac_cv_type_struct_sockaddr_in6" "$ac_includes_default" ++if test "x$ac_cv_type_struct_sockaddr_in6" = x""yes; then : ++ ++cat >>confdefs.h <<_ACEOF ++#define HAVE_STRUCT_SOCKADDR_IN6 1 ++_ACEOF ++ + +- samba_cv_HAVE_ONEFS=no + fi -rm -rf conftest.dSYM -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -echo $samba_cv_HAVE_ONEFS -if test x"$samba_cv_HAVE_ONEFS" = x"yes"; then -- ++fi + -cat >>confdefs.h <<\_ACEOF -#define HAVE_ONEFS 1 +cat >>confdefs.h <<_ACEOF -+#define HAVE_STRUCT_ADDRINFO 1 ++#define $ac_tr_hdr 1 _ACEOF - default_shared_modules="$default_shared_modules vfs_onefs vfs_onefs_shadow_copy perfcount_onefs" @@ -46758,11 +46153,9 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - ONEFS_LIBS="-lisi_acl -lisi_ecs -lisi_event -lisi_util" - # Need to also add general libs for oplocks support - save_LIBS="$save_LIBS -lisi_ecs -lisi_event -lisi_util -ldevstat" -+ fi -LIBS="$save_LIBS" -+fi -# Note that all the libunwind symbols in the API are defined to internal -# platform-specific version, so we must include libunwind.h before checking @@ -46770,9 +46163,16 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -{ $as_echo "$as_me:$LINENO: checking for libunwind" >&5 -$as_echo_n "checking for libunwind... " >&6; } -save_LIBS=$LIBS -+cat >>confdefs.h <<_ACEOF -+#define $ac_tr_hdr 1 -+_ACEOF ++if test x"$ac_cv_type_struct_sockaddr_storage" = x"yes"; then ++ac_fn_c_check_member "$LINENO" "struct sockaddr_storage" "ss_family" "ac_cv_member_struct_sockaddr_storage_ss_family" " ++#include ++#include ++#include ++ ++" ++if test "x$ac_cv_member_struct_sockaddr_storage_ss_family" = x""yes; then : ++ ++$as_echo "#define HAVE_SS_FAMILY 1" >>confdefs.h -UNWIND_ARCH="unknown" -if test x"$UNAME_I" != x"unknown"; then @@ -46805,422 +46205,6 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF --/* end confdefs.h. */ - --#ifdef HAVE_LIBUNWIND_H --#include --#endif -+cv=`echo "struct sockaddr" | sed 'y%./+- %__p__%'` -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for struct sockaddr" >&5 -+$as_echo_n "checking for struct sockaddr... " >&6; } -+if { as_var=ac_cv_type_$cv; eval "test \"\${$as_var+set}\" = set"; }; then : -+ $as_echo_n "(cached) " >&6 -+else -+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext -+/* end confdefs.h. */ - -+$ac_includes_default -+#include - int - main () - { -- -- unw_context_t ctx; unw_cursor_t cur; -- char buf[256]; unw_word_t off; -- unw_getcontext(&ctx); unw_init_local(&cur, &ctx); -- unw_get_proc_name(&cur, buf, sizeof(buf), &off); -- -+struct sockaddr foo; - ; - return 0; - } - _ACEOF --rm -f conftest.$ac_objext conftest$ac_exeext --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 -- $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 -+if ac_fn_c_try_compile "$LINENO"; then : -+ eval "ac_cv_type_$cv=yes" -+else -+ eval "ac_cv_type_$cv=no" -+fi -+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -+fi -+ac_foo=`eval echo \\$ac_cv_type_$cv` -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_foo" >&5 -+$as_echo "$ac_foo" >&6; } -+if test "$ac_foo" = yes; then -+ ac_tr_hdr=HAVE_`echo struct sockaddr | sed 'y%abcdefghijklmnopqrstuvwxyz./- %ABCDEFGHIJKLMNOPQRSTUVWXYZ____%'` -+if false; then -+ ac_fn_c_check_type "$LINENO" "struct sockaddr" "ac_cv_type_struct_sockaddr" "$ac_includes_default" -+if test "x$ac_cv_type_struct_sockaddr" = x""yes; then : - -- { $as_echo "$as_me:$LINENO: result: yes" >&5 --$as_echo "yes" >&6; } -+cat >>confdefs.h <<_ACEOF -+#define HAVE_STRUCT_SOCKADDR 1 -+_ACEOF -+ -+ -+fi -+ -+fi - --cat >>confdefs.h <<\_ACEOF --#define HAVE_LIBUNWIND 1 -+cat >>confdefs.h <<_ACEOF -+#define $ac_tr_hdr 1 - _ACEOF - -+fi - -- # If we have libunwind, test whether we also have libunwind-ptrace -- # which would let us unwind arbitrary processes. -- save_LIBS=$LIBS - --for ac_header in libunwind-ptrace.h --do --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 -+ -+cv=`echo "struct sockaddr_storage" | sed 'y%./+- %__p__%'` -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for struct sockaddr_storage" >&5 -+$as_echo_n "checking for struct sockaddr_storage... " >&6; } -+if { as_var=ac_cv_type_$cv; 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? --{ $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 --cat confdefs.h >>conftest.$ac_ext --cat >>conftest.$ac_ext <<_ACEOF -+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ -+ - $ac_includes_default --#include <$ac_header> -+ -+#include -+#include -+#include -+ -+int -+main () -+{ -+struct sockaddr_storage foo; -+ ; -+ 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_header_compiler=yes -+if ac_fn_c_try_compile "$LINENO"; then : -+ eval "ac_cv_type_$cv=yes" - else -- $as_echo "$as_me: failed program was:" >&5 --sed 's/^/| /' conftest.$ac_ext >&5 -- -- ac_header_compiler=no -+ eval "ac_cv_type_$cv=no" - fi -- - 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; } -+fi -+ac_foo=`eval echo \\$ac_cv_type_$cv` -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_foo" >&5 -+$as_echo "$ac_foo" >&6; } -+if test "$ac_foo" = yes; then -+ ac_tr_hdr=HAVE_`echo struct sockaddr_storage | sed 'y%abcdefghijklmnopqrstuvwxyz./- %ABCDEFGHIJKLMNOPQRSTUVWXYZ____%'` -+if false; then -+ ac_fn_c_check_type "$LINENO" "struct sockaddr_storage" "ac_cv_type_struct_sockaddr_storage" "$ac_includes_default" -+if test "x$ac_cv_type_struct_sockaddr_storage" = x""yes; then : - --# Is the header present? --{ $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 --cat confdefs.h >>conftest.$ac_ext --cat >>conftest.$ac_ext <<_ACEOF --/* end confdefs.h. */ --#include <$ac_header> -+cat >>confdefs.h <<_ACEOF -+#define HAVE_STRUCT_SOCKADDR_STORAGE 1 - _ACEOF --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 -- $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 -- $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 --{ $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: ) -- { $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:* ) -- { $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 samba-technical@samba.org ## --## ---------------------------------------- ## --_ASBOX -- ) | sed "s/^/$as_me: WARNING: /" >&2 -- ;; --esac --{ $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 --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 --as_val=`eval 'as_val=${'$as_ac_Header'} -- $as_echo "$as_val"'` -- if test "x$as_val" = x""yes; then -- cat >>confdefs.h <<_ACEOF --#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -+ -+cat >>confdefs.h <<_ACEOF -+#define $ac_tr_hdr 1 - _ACEOF - - fi - --done - -- { $as_echo "$as_me:$LINENO: checking for _UPT_create in -lunwind-ptrace" >&5 --$as_echo_n "checking for _UPT_create in -lunwind-ptrace... " >&6; } --if test "${ac_cv_lib_unwind_ptrace__UPT_create+set}" = set; then -+ -+cv=`echo "struct sockaddr_in6" | sed 'y%./+- %__p__%'` -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for struct sockaddr_in6" >&5 -+$as_echo_n "checking for struct sockaddr_in6... " >&6; } -+if { as_var=ac_cv_type_$cv; eval "test \"\${$as_var+set}\" = set"; }; then : - $as_echo_n "(cached) " >&6 - else -- ac_check_lib_save_LIBS=$LIBS --LIBS="-lunwind-ptrace $LIBS" --cat >conftest.$ac_ext <<_ACEOF --/* confdefs.h. */ --_ACEOF --cat confdefs.h >>conftest.$ac_ext --cat >>conftest.$ac_ext <<_ACEOF -+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ - --/* 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 --char _UPT_create (); -+$ac_includes_default -+ -+#include -+#include -+#include -+ - int - main () - { --return _UPT_create (); -+struct sockaddr_in6 foo; - ; - return 0; - } - _ACEOF --rm -f conftest.$ac_objext conftest$ac_exeext --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 -- $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_unwind_ptrace__UPT_create=yes -+if ac_fn_c_try_compile "$LINENO"; then : -+ eval "ac_cv_type_$cv=yes" - else -- $as_echo "$as_me: failed program was:" >&5 --sed 's/^/| /' conftest.$ac_ext >&5 -- -- ac_cv_lib_unwind_ptrace__UPT_create=no -+ eval "ac_cv_type_$cv=no" - fi -- --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 -+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi --{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_unwind_ptrace__UPT_create" >&5 --$as_echo "$ac_cv_lib_unwind_ptrace__UPT_create" >&6; } --if test "x$ac_cv_lib_unwind_ptrace__UPT_create" = x""yes; then -- -- LIBUNWIND_PTRACE="-lunwind-ptrace"; -+ac_foo=`eval echo \\$ac_cv_type_$cv` -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_foo" >&5 -+$as_echo "$ac_foo" >&6; } -+if test "$ac_foo" = yes; then -+ ac_tr_hdr=HAVE_`echo struct sockaddr_in6 | sed 'y%abcdefghijklmnopqrstuvwxyz./- %ABCDEFGHIJKLMNOPQRSTUVWXYZ____%'` -+if false; then -+ ac_fn_c_check_type "$LINENO" "struct sockaddr_in6" "ac_cv_type_struct_sockaddr_in6" "$ac_includes_default" -+if test "x$ac_cv_type_struct_sockaddr_in6" = x""yes; then : - --cat >>confdefs.h <<\_ACEOF --#define HAVE_LIBUNWIND_PTRACE 1 -+cat >>confdefs.h <<_ACEOF -+#define HAVE_STRUCT_SOCKADDR_IN6 1 - _ACEOF - - --else -- LIBUNWIND_PTRACE="" - fi - -+fi - -- LIBS=$save_LIBS -+cat >>confdefs.h <<_ACEOF -+#define $ac_tr_hdr 1 -+_ACEOF - --else -- $as_echo "$as_me: failed program was:" >&5 --sed 's/^/| /' conftest.$ac_ext >&5 -+fi - - -- { $as_echo "$as_me:$LINENO: result: no" >&5 --$as_echo "no" >&6; } -- LIBS=$save_LIBS -+if test x"$ac_cv_type_struct_sockaddr_storage" = x"yes"; then -+ac_fn_c_check_member "$LINENO" "struct sockaddr_storage" "ss_family" "ac_cv_member_struct_sockaddr_storage_ss_family" " -+#include -+#include -+#include -+ -+" -+if test "x$ac_cv_member_struct_sockaddr_storage_ss_family" = x""yes; then : -+ -+$as_echo "#define HAVE_SS_FAMILY 1" >>confdefs.h - - fi - --rm -rf conftest.dSYM --rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ -- conftest$ac_exeext conftest.$ac_ext - --# To use libunwind-ptrace, we also need to make some ptrace system calls. --if test x"$LIBUNWIND_PTRACE" != x"" ; then +if test x"$ac_cv_member_struct_sockaddr_storage_ss_family" != x"yes"; then +ac_fn_c_check_member "$LINENO" "struct sockaddr_storage" "__ss_family" "ac_cv_member_struct_sockaddr_storage___ss_family" " +#include @@ -47231,8 +46215,83 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure +if test "x$ac_cv_member_struct_sockaddr_storage___ss_family" = x""yes; then : + +$as_echo "#define HAVE___SS_FAMILY 1" >>confdefs.h ++ ++fi ++ ++fi ++fi ++ ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sin_len in sock" >&5 ++$as_echo_n "checking for sin_len in sock... " >&6; } ++if test "${libreplace_cv_HAVE_SOCK_SIN_LEN+set}" = set; then : ++ $as_echo_n "(cached) " >&6 ++else ++ ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ --for ac_header in sys/ptrace.h +-#ifdef HAVE_LIBUNWIND_H +-#include +-#endif ++#include ++#include ++#include + + int + main () + { + +- unw_context_t ctx; unw_cursor_t cur; +- char buf[256]; unw_word_t off; +- unw_getcontext(&ctx); unw_init_local(&cur, &ctx); +- unw_get_proc_name(&cur, buf, sizeof(buf), &off); ++struct sockaddr_in sock; sock.sin_len = sizeof(sock); + + ; + return 0; + } + _ACEOF +-rm -f conftest.$ac_objext conftest$ac_exeext +-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 +- $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 ++if ac_fn_c_try_compile "$LINENO"; then : + +- { $as_echo "$as_me:$LINENO: result: yes" >&5 +-$as_echo "yes" >&6; } ++ libreplace_cv_HAVE_SOCK_SIN_LEN=yes + +-cat >>confdefs.h <<\_ACEOF +-#define HAVE_LIBUNWIND 1 +-_ACEOF ++else + ++ libreplace_cv_HAVE_SOCK_SIN_LEN=no + +- # If we have libunwind, test whether we also have libunwind-ptrace +- # which would let us unwind arbitrary processes. +- save_LIBS=$LIBS ++fi ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +-for ac_header in libunwind-ptrace.h -do -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 @@ -47280,17 +46339,23 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libreplace_cv_HAVE_SOCK_SIN_LEN" >&5 ++$as_echo "$libreplace_cv_HAVE_SOCK_SIN_LEN" >&6; } ++if test x"$libreplace_cv_HAVE_SOCK_SIN_LEN" = x"yes"; then ++ ++$as_echo "#define HAVE_SOCK_SIN_LEN 1" >>confdefs.h - ac_header_compiler=no -+fi fi -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; } -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sin_len in sock" >&5 -+$as_echo_n "checking for sin_len in sock... " >&6; } -+if test "${libreplace_cv_HAVE_SOCK_SIN_LEN+set}" = set; then : ++############################################ ++# check for unix domain sockets ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for unix domain sockets" >&5 ++$as_echo_n "checking for unix domain sockets... " >&6; } ++if test "${libreplace_cv_HAVE_UNIXSOCKET+set}" = set; then : + $as_echo_n "(cached) " >&6 +else @@ -47305,7 +46370,24 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#include <$ac_header> --_ACEOF ++ ++#include ++#include ++#include ++#include ++#include ++ ++int ++main () ++{ ++ ++struct sockaddr_un sunaddr; ++sunaddr.sun_family = AF_UNIX; ++ ++ ; ++ return 0; ++} + _ACEOF -if { (ac_try="$ac_cpp conftest.$ac_ext" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; @@ -47324,32 +46406,23 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - test ! -s conftest.err - }; then - ac_header_preproc=yes --else ++if ac_fn_c_try_compile "$LINENO"; then : ++ ++ libreplace_cv_HAVE_UNIXSOCKET=yes ++ + else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - ac_header_preproc=no -fi -+#include -+#include -+#include ++ libreplace_cv_HAVE_UNIXSOCKET=no -rm -f conftest.err conftest.$ac_ext -{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -$as_echo "$ac_header_preproc" >&6; } -+int -+main () -+{ -+ -+struct sockaddr_in sock; sock.sin_len = sizeof(sock); -+ -+ ; -+ return 0; -+} -+_ACEOF -+if ac_fn_c_try_compile "$LINENO"; then : -+ -+ libreplace_cv_HAVE_SOCK_SIN_LEN=yes ++fi ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -# So? What about this header? -case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in @@ -47385,41 +46458,372 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -$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 +-else - eval "$as_ac_Header=\$ac_header_preproc" -+ -+ libreplace_cv_HAVE_SOCK_SIN_LEN=no -+ 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; } -+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libreplace_cv_HAVE_UNIXSOCKET" >&5 ++$as_echo "$libreplace_cv_HAVE_UNIXSOCKET" >&6; } ++if test x"$libreplace_cv_HAVE_UNIXSOCKET" = x"yes"; then ++ ++$as_echo "#define HAVE_UNIXSOCKET 1" >>confdefs.h fi -as_val=`eval 'as_val=${'$as_ac_Header'} - $as_echo "$as_val"'` - if test "x$as_val" = x""yes; then ++ ++for ac_func in connect ++do : ++ ac_fn_c_check_func "$LINENO" "connect" "ac_cv_func_connect" ++if test "x$ac_cv_func_connect" = x""yes; then : + cat >>confdefs.h <<_ACEOF +-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 ++#define HAVE_CONNECT 1 + _ACEOF + + fi +- + done + +- { $as_echo "$as_me:$LINENO: checking for _UPT_create in -lunwind-ptrace" >&5 +-$as_echo_n "checking for _UPT_create in -lunwind-ptrace... " >&6; } +-if test "${ac_cv_lib_unwind_ptrace__UPT_create+set}" = set; then ++if test x"$ac_cv_func_connect" = x"no"; then ++ ++ ++ac_check_lib_ext_save_LIBS=$LIBS ++LIBS="-lnsl_s $LIBREPLACE_NETWORK_LIBS $LIBS" ++ ++ ++ ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for connect in -lnsl_s" >&5 ++$as_echo_n "checking for connect in -lnsl_s... " >&6; } ++if test "${ac_cv_lib_ext_nsl_s_connect+set}" = set; then : + $as_echo_n "(cached) " >&6 + else +- ac_check_lib_save_LIBS=$LIBS +-LIBS="-lunwind-ptrace $LIBS" +-cat >conftest.$ac_ext <<_ACEOF +-/* confdefs.h. */ +-_ACEOF +-cat confdefs.h >>conftest.$ac_ext +-cat >>conftest.$ac_ext <<_ACEOF ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + + /* Override any GCC internal prototype to avoid an error. +@@ -43538,349 +11587,197 @@ + #ifdef __cplusplus + extern "C" + #endif +-char _UPT_create (); ++char connect (); + int + main () + { +-return _UPT_create (); ++return connect (); + ; + return 0; + } + _ACEOF +-rm -f conftest.$ac_objext conftest$ac_exeext +-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 +- $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_unwind_ptrace__UPT_create=yes ++if ac_fn_c_try_link "$LINENO"; then : ++ ac_cv_lib_ext_nsl_s_connect=yes; ++ ac_cv_lib_ext_nsl_s=yes + else +- $as_echo "$as_me: failed program was:" >&5 +-sed 's/^/| /' conftest.$ac_ext >&5 +- +- ac_cv_lib_unwind_ptrace__UPT_create=no ++ ac_cv_lib_ext_nsl_s_connect=no; ++ ac_cv_lib_ext_nsl_s=no + fi ++rm -f core conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + +-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 +-{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_unwind_ptrace__UPT_create" >&5 +-$as_echo "$ac_cv_lib_unwind_ptrace__UPT_create" >&6; } +-if test "x$ac_cv_lib_unwind_ptrace__UPT_create" = x""yes; then +- +- LIBUNWIND_PTRACE="-lunwind-ptrace"; +- +-cat >>confdefs.h <<\_ACEOF +-#define HAVE_LIBUNWIND_PTRACE 1 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ext_nsl_s_connect" >&5 ++$as_echo "$ac_cv_lib_ext_nsl_s_connect" >&6; } ++ if test $ac_cv_lib_ext_nsl_s_connect = yes; then : ++ cat >>confdefs.h <<_ACEOF ++#define HAVE_CONNECT 1 + _ACEOF + +- +-else +- LIBUNWIND_PTRACE="" + fi ++LIBS=$ac_check_lib_ext_save_LIBS + ++if test $ac_cv_lib_ext_nsl_s = yes; then : ++ cat >>confdefs.h <<_ACEOF ++#define HAVE_LIBNSL_S 1 ++_ACEOF + +- LIBS=$save_LIBS ++ case "$LIBREPLACE_NETWORK_LIBS" in ++ *-lnsl_s*) ++ ;; ++ *) ++ LIBREPLACE_NETWORK_LIBS="-lnsl_s $LIBREPLACE_NETWORK_LIBS" ++ ;; ++ esac + +-else +- $as_echo "$as_me: failed program was:" >&5 +-sed 's/^/| /' conftest.$ac_ext >&5 + ++fi + +- { $as_echo "$as_me:$LINENO: result: no" >&5 +-$as_echo "no" >&6; } +- LIBS=$save_LIBS + +-fi ++ac_check_lib_ext_save_LIBS=$LIBS ++LIBS="-lnsl $LIBREPLACE_NETWORK_LIBS $LIBS" + +-rm -rf conftest.dSYM +-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ +- conftest$ac_exeext conftest.$ac_ext + +-# To use libunwind-ptrace, we also need to make some ptrace system calls. +-if test x"$LIBUNWIND_PTRACE" != x"" ; then + +-for ac_header in sys/ptrace.h +-do +-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 "$as_me:${as_lineno-$LINENO}: checking for connect in -lnsl" >&5 ++$as_echo_n "checking for connect in -lnsl... " >&6; } ++if test "${ac_cv_lib_ext_nsl_connect+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? +-{ $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 +-cat confdefs.h >>conftest.$ac_ext +-cat >>conftest.$ac_ext <<_ACEOF ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ +-$ac_includes_default +-#include <$ac_header> ++ ++/* 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 ++char connect (); ++int ++main () ++{ ++return connect (); ++ ; ++ 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_header_compiler=yes ++if ac_fn_c_try_link "$LINENO"; then : ++ ac_cv_lib_ext_nsl_connect=yes; ++ ac_cv_lib_ext_nsl=yes + else +- $as_echo "$as_me: failed program was:" >&5 +-sed 's/^/| /' conftest.$ac_ext >&5 ++ ac_cv_lib_ext_nsl_connect=no; ++ ac_cv_lib_ext_nsl=no ++fi ++rm -f core conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + +- ac_header_compiler=no + fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ext_nsl_connect" >&5 ++$as_echo "$ac_cv_lib_ext_nsl_connect" >&6; } ++ if test $ac_cv_lib_ext_nsl_connect = yes; then : ++ cat >>confdefs.h <<_ACEOF ++#define HAVE_CONNECT 1 ++_ACEOF + +-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; } ++fi ++LIBS=$ac_check_lib_ext_save_LIBS + +-# Is the header present? +-{ $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 +-cat confdefs.h >>conftest.$ac_ext +-cat >>conftest.$ac_ext <<_ACEOF +-/* end confdefs.h. */ +-#include <$ac_header> ++if test $ac_cv_lib_ext_nsl = yes; then : ++ cat >>confdefs.h <<_ACEOF ++#define HAVE_LIBNSL 1 + _ACEOF +-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 +- $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 +- $as_echo "$as_me: failed program was:" >&5 +-sed 's/^/| /' conftest.$ac_ext >&5 + +- ac_header_preproc=no +-fi ++ case "$LIBREPLACE_NETWORK_LIBS" in ++ *-lnsl*) ++ ;; ++ *) ++ LIBREPLACE_NETWORK_LIBS="-lnsl $LIBREPLACE_NETWORK_LIBS" ++ ;; ++ esac + +-rm -f conftest.err conftest.$ac_ext +-{ $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: ) +- { $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:* ) +- { $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 samba-technical@samba.org ## +-## ---------------------------------------- ## +-_ASBOX +- ) | sed "s/^/$as_me: WARNING: /" >&2 +- ;; +-esac +-{ $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 +-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 +-as_val=`eval 'as_val=${'$as_ac_Header'} +- $as_echo "$as_val"'` +- if test "x$as_val" = x""yes; then - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libreplace_cv_HAVE_SOCK_SIN_LEN" >&5 -+$as_echo "$libreplace_cv_HAVE_SOCK_SIN_LEN" >&6; } -+if test x"$libreplace_cv_HAVE_SOCK_SIN_LEN" = x"yes"; then -+ -+$as_echo "#define HAVE_SOCK_SIN_LEN 1" >>confdefs.h - fi +-fi ++ac_check_lib_ext_save_LIBS=$LIBS ++LIBS="-lsocket $LIBREPLACE_NETWORK_LIBS $LIBS" -done -+############################################ -+# check for unix domain sockets -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for unix domain sockets" >&5 -+$as_echo_n "checking for unix domain sockets... " >&6; } -+if test "${libreplace_cv_HAVE_UNIXSOCKET+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else - { $as_echo "$as_me:$LINENO: checking for the Linux ptrace(2) interface" >&5 -$as_echo_n "checking for the Linux ptrace(2) interface... " >&6; } @@ -47428,31 +46832,38 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++ ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for connect in -lsocket" >&5 ++$as_echo_n "checking for connect in -lsocket... " >&6; } ++if test "${ac_cv_lib_ext_socket_connect+set}" = set; then : ++ $as_echo_n "(cached) " >&6 ++else ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#if HAVE_SYS_TYPES_H - #include +-#include -#endif -#if HAVE_SYS_PTRACE_H -#include --#endif -+#include -+#include -+#include -+#include - ++/* 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 +- ++char connect (); int main () { - +- - pid_t me = (pid_t)-1; - ptrace(PTRACE_ATTACH, me, 0, 0); - ptrace(PTRACE_DETACH, me, 0, 0); - return 0; -+struct sockaddr_un sunaddr; -+sunaddr.sun_family = AF_UNIX; - +- ++return connect (); ; return 0; } @@ -47485,427 +46896,29 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -cat >>confdefs.h <<\_ACEOF -#define HAVE_LINUX_PTRACE 1 -_ACEOF -+if ac_fn_c_try_compile "$LINENO"; then : - -+ libreplace_cv_HAVE_UNIXSOCKET=yes - - else -- $as_echo "$as_me: failed program was:" >&5 --sed 's/^/| /' conftest.$ac_ext >&5 - - -- { $as_echo "$as_me:$LINENO: result: no" >&5 --$as_echo "no" >&6; } -- LIBUNWIND_PTRACE="" -+ libreplace_cv_HAVE_UNIXSOCKET=no - - fi -+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - --rm -rf conftest.dSYM --rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ -- conftest$ac_exeext conftest.$ac_ext - fi -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libreplace_cv_HAVE_UNIXSOCKET" >&5 -+$as_echo "$libreplace_cv_HAVE_UNIXSOCKET" >&6; } -+if test x"$libreplace_cv_HAVE_UNIXSOCKET" = x"yes"; then - -+$as_echo "#define HAVE_UNIXSOCKET 1" >>confdefs.h - -+fi - -+for ac_func in connect -+do : -+ ac_fn_c_check_func "$LINENO" "connect" "ac_cv_func_connect" -+if test "x$ac_cv_func_connect" = x""yes; then : -+ cat >>confdefs.h <<_ACEOF -+#define HAVE_CONNECT 1 -+_ACEOF - -+fi -+done - -+if test x"$ac_cv_func_connect" = x"no"; then - - -+ac_check_lib_ext_save_LIBS=$LIBS -+LIBS="-lnsl_s $LIBREPLACE_NETWORK_LIBS $LIBS" - - - --for ac_func in _dup _dup2 _opendir _readdir _seekdir _telldir _closedir --do --as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` --{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 --$as_echo_n "checking for $ac_func... " >&6; } --if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then -+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for connect in -lnsl_s" >&5 -+$as_echo_n "checking for connect in -lnsl_s... " >&6; } -+if test "${ac_cv_lib_ext_nsl_s_connect+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 -+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ --/* Define $ac_func to an innocuous variant, in case declares $ac_func. -- For example, HP-UX 11i declares gettimeofday. */ --#define $ac_func innocuous_$ac_func - --/* System header to define __stub macros and hopefully few prototypes, -- which can conflict with char $ac_func (); below. -- Prefer to if __STDC__ is defined, since -- exists even on freestanding compilers. */ -- --#ifdef __STDC__ --# include --#else --# include --#endif -- --#undef $ac_func - - /* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC -@@ -44178,106 +11843,65 @@ - #ifdef __cplusplus - extern "C" - #endif --char $ac_func (); --/* 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_$ac_func || defined __stub___$ac_func --choke me --#endif -- -+char connect (); - int - main () - { --return $ac_func (); -+return connect (); - ; - return 0; - } - _ACEOF --rm -f conftest.$ac_objext conftest$ac_exeext --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 -- $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 -- eval "$as_ac_var=yes" -+if ac_fn_c_try_link "$LINENO"; then : -+ ac_cv_lib_ext_nsl_s_connect=yes; -+ ac_cv_lib_ext_nsl_s=yes - else -- $as_echo "$as_me: failed program was:" >&5 --sed 's/^/| /' conftest.$ac_ext >&5 -- -- eval "$as_ac_var=no" -+ ac_cv_lib_ext_nsl_s_connect=no; -+ ac_cv_lib_ext_nsl_s=no - fi -+rm -f core conftest.err conftest.$ac_objext \ -+ conftest$ac_exeext conftest.$ac_ext - --rm -rf conftest.dSYM --rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ -- conftest$ac_exeext conftest.$ac_ext - fi --ac_res=`eval 'as_val=${'$as_ac_var'} -- $as_echo "$as_val"'` -- { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 --$as_echo "$ac_res" >&6; } --as_val=`eval 'as_val=${'$as_ac_var'} -- $as_echo "$as_val"'` -- if test "x$as_val" = x""yes; then -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ext_nsl_s_connect" >&5 -+$as_echo "$ac_cv_lib_ext_nsl_s_connect" >&6; } -+ if test $ac_cv_lib_ext_nsl_s_connect = yes; then : - cat >>confdefs.h <<_ACEOF --#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 -+#define HAVE_CONNECT 1 - _ACEOF - - fi --done -+LIBS=$ac_check_lib_ext_save_LIBS -+ -+if test $ac_cv_lib_ext_nsl_s = yes; then : -+ cat >>confdefs.h <<_ACEOF -+#define HAVE_LIBNSL_S 1 -+_ACEOF - -+ case "$LIBREPLACE_NETWORK_LIBS" in -+ *-lnsl_s*) -+ ;; -+ *) -+ LIBREPLACE_NETWORK_LIBS="-lnsl_s $LIBREPLACE_NETWORK_LIBS" -+ ;; -+ esac - - -+fi - - -+ac_check_lib_ext_save_LIBS=$LIBS -+LIBS="-lnsl $LIBREPLACE_NETWORK_LIBS $LIBS" - - - --for ac_func in __dup __dup2 __opendir __readdir __seekdir __telldir __closedir --do --as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` --{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 --$as_echo_n "checking for $ac_func... " >&6; } --if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then -+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for connect in -lnsl" >&5 -+$as_echo_n "checking for connect in -lnsl... " >&6; } -+if test "${ac_cv_lib_ext_nsl_connect+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 -+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ --/* Define $ac_func to an innocuous variant, in case declares $ac_func. -- For example, HP-UX 11i declares gettimeofday. */ --#define $ac_func innocuous_$ac_func -- --/* System header to define __stub macros and hopefully few prototypes, -- which can conflict with char $ac_func (); below. -- Prefer to if __STDC__ is defined, since -- exists even on freestanding compilers. */ -- --#ifdef __STDC__ --# include --#else --# include --#endif -- --#undef $ac_func - - /* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC -@@ -44285,101 +11909,65 @@ - #ifdef __cplusplus - extern "C" - #endif --char $ac_func (); --/* 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_$ac_func || defined __stub___$ac_func --choke me --#endif -- -+char connect (); - int - main () - { --return $ac_func (); -+return connect (); - ; - return 0; - } - _ACEOF --rm -f conftest.$ac_objext conftest$ac_exeext --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 -- $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 -- eval "$as_ac_var=yes" -+if ac_fn_c_try_link "$LINENO"; then : -+ ac_cv_lib_ext_nsl_connect=yes; -+ ac_cv_lib_ext_nsl=yes - else -- $as_echo "$as_me: failed program was:" >&5 --sed 's/^/| /' conftest.$ac_ext >&5 -+ ac_cv_lib_ext_nsl_connect=no; -+ ac_cv_lib_ext_nsl=no -+fi -+rm -f core conftest.err conftest.$ac_objext \ -+ conftest$ac_exeext conftest.$ac_ext - -- eval "$as_ac_var=no" - fi -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ext_nsl_connect" >&5 -+$as_echo "$ac_cv_lib_ext_nsl_connect" >&6; } -+ if test $ac_cv_lib_ext_nsl_connect = yes; then : -+ cat >>confdefs.h <<_ACEOF -+#define HAVE_CONNECT 1 -+_ACEOF - --rm -rf conftest.dSYM --rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ -- conftest$ac_exeext conftest.$ac_ext - fi --ac_res=`eval 'as_val=${'$as_ac_var'} -- $as_echo "$as_val"'` -- { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 --$as_echo "$ac_res" >&6; } --as_val=`eval 'as_val=${'$as_ac_var'} -- $as_echo "$as_val"'` -- if test "x$as_val" = x""yes; then -+LIBS=$ac_check_lib_ext_save_LIBS -+ -+if test $ac_cv_lib_ext_nsl = yes; then : - cat >>confdefs.h <<_ACEOF --#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 -+#define HAVE_LIBNSL 1 - _ACEOF - -+ case "$LIBREPLACE_NETWORK_LIBS" in -+ *-lnsl*) -+ ;; -+ *) -+ LIBREPLACE_NETWORK_LIBS="-lnsl $LIBREPLACE_NETWORK_LIBS" -+ ;; -+ esac -+ -+ - fi --done -+ -+ -+ac_check_lib_ext_save_LIBS=$LIBS -+LIBS="-lsocket $LIBREPLACE_NETWORK_LIBS $LIBS" - - - --for ac_func in __getcwd _getcwd --do --as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` --{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 --$as_echo_n "checking for $ac_func... " >&6; } --if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then -+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for connect in -lsocket" >&5 -+$as_echo_n "checking for connect in -lsocket... " >&6; } -+if test "${ac_cv_lib_ext_socket_connect+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 -+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ --/* Define $ac_func to an innocuous variant, in case declares $ac_func. -- For example, HP-UX 11i declares gettimeofday. */ --#define $ac_func innocuous_$ac_func -- --/* System header to define __stub macros and hopefully few prototypes, -- which can conflict with char $ac_func (); below. -- Prefer to if __STDC__ is defined, since -- exists even on freestanding compilers. */ -- --#ifdef __STDC__ --# include --#else --# include --#endif -- --#undef $ac_func - - /* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC -@@ -44387,102 +11975,65 @@ - #ifdef __cplusplus - extern "C" - #endif --char $ac_func (); --/* 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_$ac_func || defined __stub___$ac_func --choke me --#endif -- -+char connect (); - int - main () - { --return $ac_func (); -+return connect (); - ; - return 0; - } - _ACEOF --rm -f conftest.$ac_objext conftest$ac_exeext --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 -- $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 -- eval "$as_ac_var=yes" +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_ext_socket_connect=yes; + ac_cv_lib_ext_socket=yes else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 +- +- +- { $as_echo "$as_me:$LINENO: result: no" >&5 +-$as_echo "no" >&6; } +- LIBUNWIND_PTRACE="" +- + ac_cv_lib_ext_socket_connect=no; + ac_cv_lib_ext_socket=no -+fi + fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext -- eval "$as_ac_var=no" +-rm -rf conftest.dSYM +-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ +- conftest$ac_exeext conftest.$ac_ext fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ext_socket_connect" >&5 +$as_echo "$ac_cv_lib_ext_socket_connect" >&6; } @@ -47914,24 +46927,13 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure +#define HAVE_CONNECT 1 +_ACEOF --rm -rf conftest.dSYM --rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ -- conftest$ac_exeext conftest.$ac_ext - fi --ac_res=`eval 'as_val=${'$as_ac_var'} -- $as_echo "$as_val"'` -- { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 --$as_echo "$ac_res" >&6; } --as_val=`eval 'as_val=${'$as_ac_var'} -- $as_echo "$as_val"'` -- if test "x$as_val" = x""yes; then ++fi +LIBS=$ac_check_lib_ext_save_LIBS -+ + +if test $ac_cv_lib_ext_socket = yes; then : - cat >>confdefs.h <<_ACEOF --#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 ++ cat >>confdefs.h <<_ACEOF +#define HAVE_LIBSOCKET 1 - _ACEOF ++_ACEOF + case "$LIBREPLACE_NETWORK_LIBS" in + *-lsocket*) @@ -47940,35 +46942,32 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure + LIBREPLACE_NETWORK_LIBS="-lsocket $LIBREPLACE_NETWORK_LIBS" + ;; + esac -+ -+ - fi --done ++fi ++ ++ +ac_check_lib_ext_save_LIBS=$LIBS +LIBS="-linet $LIBREPLACE_NETWORK_LIBS $LIBS" --for ac_func in __xstat __fxstat __lxstat + +- +- +-for ac_func in _dup _dup2 _opendir _readdir _seekdir _telldir _closedir -do -as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 -$as_echo_n "checking for $ac_func... " >&6; } -if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then -+ -+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for connect in -linet" >&5 -+$as_echo_n "checking for connect in -linet... " >&6; } -+if test "${ac_cv_lib_ext_inet_connect+set}" = set; then : - $as_echo_n "(cached) " >&6 - else +- $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 -+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ +-/* end confdefs.h. */ -/* Define $ac_func to an innocuous variant, in case declares $ac_func. - For example, HP-UX 11i declares gettimeofday. */ -#define $ac_func innocuous_$ac_func @@ -47985,10 +46984,17 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -#endif - -#undef $ac_func ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for connect in -linet" >&5 ++$as_echo_n "checking for connect in -linet... " >&6; } ++if test "${ac_cv_lib_ext_inet_connect+set}" = set; then : ++ $as_echo_n "(cached) " >&6 ++else ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC -@@ -44490,105 +12041,88 @@ +@@ -43888,106 +11785,88 @@ #ifdef __cplusplus extern "C" #endif @@ -48038,14 +47044,21 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 -- -- eval "$as_ac_var=no" + ac_cv_lib_ext_inet_connect=no; + ac_cv_lib_ext_inet=no - fi ++fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +- eval "$as_ac_var=no" + fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ext_inet_connect" >&5 ++$as_echo "$ac_cv_lib_ext_inet_connect" >&6; } ++ if test $ac_cv_lib_ext_inet_connect = yes; then : ++ cat >>confdefs.h <<_ACEOF ++#define HAVE_CONNECT 1 ++_ACEOF + -rm -rf conftest.dSYM -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext @@ -48057,22 +47070,13 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -as_val=`eval 'as_val=${'$as_ac_var'} - $as_echo "$as_val"'` - if test "x$as_val" = x""yes; then -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ext_inet_connect" >&5 -+$as_echo "$ac_cv_lib_ext_inet_connect" >&6; } -+ if test $ac_cv_lib_ext_inet_connect = yes; then : ++LIBS=$ac_check_lib_ext_save_LIBS ++ ++if test $ac_cv_lib_ext_inet = yes; then : cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 -+#define HAVE_CONNECT 1 - _ACEOF - - fi --done -+LIBS=$ac_check_lib_ext_save_LIBS - -+if test $ac_cv_lib_ext_inet = yes; then : -+ cat >>confdefs.h <<_ACEOF +#define HAVE_LIBINET 1 -+_ACEOF + _ACEOF + case "$LIBREPLACE_NETWORK_LIBS" in + *-linet*) @@ -48081,9 +47085,10 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure + LIBREPLACE_NETWORK_LIBS="-linet $LIBREPLACE_NETWORK_LIBS" + ;; + esac - - -+fi ++ ++ + fi +-done + if test x"$ac_cv_lib_ext_nsl_s_connect" = x"yes" || + test x"$ac_cv_lib_ext_nsl_connect" = x"yes" || + test x"$ac_cv_lib_ext_socket_connect" = x"yes" || @@ -48091,66 +47096,67 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure + then +$as_echo "#define HAVE_CONNECT 1" >>confdefs.h - ++ + fi +fi - --for ac_func in _stat _lstat _fstat __stat __lstat __fstat --do --as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` --{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 --$as_echo_n "checking for $ac_func... " >&6; } --if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then -- $as_echo_n "(cached) " >&6 --else -- cat >conftest.$ac_ext <<_ACEOF --/* confdefs.h. */ ++ +for ac_func in gethostbyname +do : + ac_fn_c_check_func "$LINENO" "gethostbyname" "ac_cv_func_gethostbyname" +if test "x$ac_cv_func_gethostbyname" = x""yes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_GETHOSTBYNAME 1 - _ACEOF ++_ACEOF + ++fi ++done + ++if test x"$ac_cv_func_gethostbyname" = x"no"; then + + ++ac_check_lib_ext_save_LIBS=$LIBS ++LIBS="-lnsl_s $LIBREPLACE_NETWORK_LIBS $LIBS" + + + +-for ac_func in __dup __dup2 __opendir __readdir __seekdir __telldir __closedir +-do +-as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +-{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 +-$as_echo_n "checking for $ac_func... " >&6; } +-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gethostbyname in -lnsl_s" >&5 ++$as_echo_n "checking for gethostbyname in -lnsl_s... " >&6; } ++if test "${ac_cv_lib_ext_nsl_s_gethostbyname+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. */ ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ -/* Define $ac_func to an innocuous variant, in case declares $ac_func. - For example, HP-UX 11i declares gettimeofday. */ -#define $ac_func innocuous_$ac_func - +- -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char $ac_func (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ -+fi -+done - +- -#ifdef __STDC__ -# include -#else -# include -#endif -+if test x"$ac_cv_func_gethostbyname" = x"no"; then - +- -#undef $ac_func -+ -+ac_check_lib_ext_save_LIBS=$LIBS -+LIBS="-lnsl_s $LIBREPLACE_NETWORK_LIBS $LIBS" -+ -+ -+ -+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gethostbyname in -lnsl_s" >&5 -+$as_echo_n "checking for gethostbyname in -lnsl_s... " >&6; } -+if test "${ac_cv_lib_ext_nsl_s_gethostbyname+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext -+/* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC -@@ -44596,107 +12130,131 @@ +@@ -43995,101 +11874,65 @@ #ifdef __cplusplus extern "C" #endif @@ -48200,14 +47206,21 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 -- -- eval "$as_ac_var=no" + ac_cv_lib_ext_nsl_s_gethostbyname=no; + ac_cv_lib_ext_nsl_s=no - fi ++fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +- eval "$as_ac_var=no" + fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ext_nsl_s_gethostbyname" >&5 ++$as_echo "$ac_cv_lib_ext_nsl_s_gethostbyname" >&6; } ++ if test $ac_cv_lib_ext_nsl_s_gethostbyname = yes; then : ++ cat >>confdefs.h <<_ACEOF ++#define HAVE_GETHOSTBYNAME 1 ++_ACEOF + -rm -rf conftest.dSYM -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext @@ -48219,22 +47232,13 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -as_val=`eval 'as_val=${'$as_ac_var'} - $as_echo "$as_val"'` - if test "x$as_val" = x""yes; then -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ext_nsl_s_gethostbyname" >&5 -+$as_echo "$ac_cv_lib_ext_nsl_s_gethostbyname" >&6; } -+ if test $ac_cv_lib_ext_nsl_s_gethostbyname = yes; then : ++LIBS=$ac_check_lib_ext_save_LIBS ++ ++if test $ac_cv_lib_ext_nsl_s = yes; then : cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 -+#define HAVE_GETHOSTBYNAME 1 - _ACEOF - - fi --done -+LIBS=$ac_check_lib_ext_save_LIBS - -+if test $ac_cv_lib_ext_nsl_s = yes; then : -+ cat >>confdefs.h <<_ACEOF +#define HAVE_LIBNSL_S 1 -+_ACEOF + _ACEOF + case "$LIBREPLACE_NETWORK_LIBS" in + *-lnsl_s*) @@ -48243,22 +47247,23 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure + LIBREPLACE_NETWORK_LIBS="-lnsl_s $LIBREPLACE_NETWORK_LIBS" + ;; + esac - - -+fi ++ ++ + fi +-done +ac_check_lib_ext_save_LIBS=$LIBS +LIBS="-lnsl $LIBREPLACE_NETWORK_LIBS $LIBS" - - --for ac_func in _acl __acl _facl __facl _open __open _chdir __chdir +-for ac_func in __getcwd _getcwd -do -as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 -$as_echo_n "checking for $ac_func... " >&6; } -if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then ++ ++ + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gethostbyname in -lnsl" >&5 +$as_echo_n "checking for gethostbyname in -lnsl... " >&6; } +if test "${ac_cv_lib_ext_nsl_gethostbyname+set}" = set; then : @@ -48279,52 +47284,101 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - which can conflict with char $ac_func (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - +- -#ifdef __STDC__ -# include -#else -# include -+/* 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 +- +-#undef $ac_func + + /* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC +@@ -44097,102 +11940,65 @@ + #ifdef __cplusplus + extern "C" #endif +-char $ac_func (); +-/* 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_$ac_func || defined __stub___$ac_func +-choke me +-#endif +- +char gethostbyname (); -+int -+main () -+{ + int + main () + { +-return $ac_func (); +return gethostbyname (); -+ ; -+ return 0; -+} -+_ACEOF + ; + return 0; + } + _ACEOF +-rm -f conftest.$ac_objext conftest$ac_exeext +-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 +- $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 +- eval "$as_ac_var=yes" +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_ext_nsl_gethostbyname=yes; + ac_cv_lib_ext_nsl=yes -+else + else +- $as_echo "$as_me: failed program was:" >&5 +-sed 's/^/| /' conftest.$ac_ext >&5 + ac_cv_lib_ext_nsl_gethostbyname=no; + ac_cv_lib_ext_nsl=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext -+ -+fi + +- eval "$as_ac_var=no" + fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ext_nsl_gethostbyname" >&5 +$as_echo "$ac_cv_lib_ext_nsl_gethostbyname" >&6; } + if test $ac_cv_lib_ext_nsl_gethostbyname = yes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_GETHOSTBYNAME 1 +_ACEOF -+ -+fi + +-rm -rf conftest.dSYM +-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ +- conftest$ac_exeext conftest.$ac_ext + fi +-ac_res=`eval 'as_val=${'$as_ac_var'} +- $as_echo "$as_val"'` +- { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +-$as_echo "$ac_res" >&6; } +-as_val=`eval 'as_val=${'$as_ac_var'} +- $as_echo "$as_val"'` +- if test "x$as_val" = x""yes; then +LIBS=$ac_check_lib_ext_save_LIBS + +if test $ac_cv_lib_ext_nsl = yes; then : -+ cat >>confdefs.h <<_ACEOF + cat >>confdefs.h <<_ACEOF +-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 +#define HAVE_LIBNSL 1 -+_ACEOF -+ + _ACEOF + + case "$LIBREPLACE_NETWORK_LIBS" in + *-lnsl*) + ;; @@ -48334,26 +47388,53 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure + esac + + -+fi -+ -+ + fi +-done + + +ac_check_lib_ext_save_LIBS=$LIBS +LIBS="-lsocket $LIBREPLACE_NETWORK_LIBS $LIBS" + --#undef $ac_func -+ + +-for ac_func in __xstat __fxstat __lxstat +-do +-as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +-{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 +-$as_echo_n "checking for $ac_func... " >&6; } +-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gethostbyname in -lsocket" >&5 +$as_echo_n "checking for gethostbyname in -lsocket... " >&6; } +if test "${ac_cv_lib_ext_socket_gethostbyname+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else + $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 + cat confdefs.h - <<_ACEOF >conftest.$ac_ext -+/* end confdefs.h. */ + /* end confdefs.h. */ +-/* Define $ac_func to an innocuous variant, in case declares $ac_func. +- For example, HP-UX 11i declares gettimeofday. */ +-#define $ac_func innocuous_$ac_func +- +-/* System header to define __stub macros and hopefully few prototypes, +- which can conflict with char $ac_func (); below. +- Prefer to if __STDC__ is defined, since +- exists even on freestanding compilers. */ +- +-#ifdef __STDC__ +-# include +-#else +-# include +-#endif +- +-#undef $ac_func /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC -@@ -44704,105 +12262,87 @@ +@@ -44200,105 +12006,87 @@ #ifdef __cplusplus extern "C" #endif @@ -48403,51 +47484,17 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 +- +- eval "$as_ac_var=no" + ac_cv_lib_ext_socket_gethostbyname=no; + ac_cv_lib_ext_socket=no -+fi + fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext -+ -+fi -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ext_socket_gethostbyname" >&5 -+$as_echo "$ac_cv_lib_ext_socket_gethostbyname" >&6; } -+ if test $ac_cv_lib_ext_socket_gethostbyname = yes; then : -+ cat >>confdefs.h <<_ACEOF -+#define HAVE_GETHOSTBYNAME 1 -+_ACEOF -+ -+fi -+LIBS=$ac_check_lib_ext_save_LIBS -+ -+if test $ac_cv_lib_ext_socket = yes; then : -+ cat >>confdefs.h <<_ACEOF -+#define HAVE_LIBSOCKET 1 -+_ACEOF -+ -+ case "$LIBREPLACE_NETWORK_LIBS" in -+ *-lsocket*) -+ ;; -+ *) -+ LIBREPLACE_NETWORK_LIBS="-lsocket $LIBREPLACE_NETWORK_LIBS" -+ ;; -+ esac -+ -+ -+fi -+ if test x"$ac_cv_lib_ext_nsl_s_gethostbyname" = x"yes" || -+ test x"$ac_cv_lib_ext_nsl_gethostbyname" = x"yes" || -+ test x"$ac_cv_lib_ext_socket_gethostbyname" = x"yes" -+ then - -- eval "$as_ac_var=no" --fi -+$as_echo "#define HAVE_GETHOSTBYNAME 1" >>confdefs.h -rm -rf conftest.dSYM -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -+ fi fi -ac_res=`eval 'as_val=${'$as_ac_var'} - $as_echo "$as_val"'` @@ -48456,66 +47503,99 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -as_val=`eval 'as_val=${'$as_ac_var'} - $as_echo "$as_val"'` - if test "x$as_val" = x""yes; then -+ -+for ac_func in if_nametoindex -+do : -+ ac_fn_c_check_func "$LINENO" "if_nametoindex" "ac_cv_func_if_nametoindex" -+if test "x$ac_cv_func_if_nametoindex" = x""yes; then : ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ext_socket_gethostbyname" >&5 ++$as_echo "$ac_cv_lib_ext_socket_gethostbyname" >&6; } ++ if test $ac_cv_lib_ext_socket_gethostbyname = yes; then : cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 -+#define HAVE_IF_NAMETOINDEX 1 ++#define HAVE_GETHOSTBYNAME 1 _ACEOF fi - done +-done ++LIBS=$ac_check_lib_ext_save_LIBS -+if test x"$ac_cv_func_if_nametoindex" = x"no"; then ++if test $ac_cv_lib_ext_socket = yes; then : ++ cat >>confdefs.h <<_ACEOF ++#define HAVE_LIBSOCKET 1 ++_ACEOF + ++ case "$LIBREPLACE_NETWORK_LIBS" in ++ *-lsocket*) ++ ;; ++ *) ++ LIBREPLACE_NETWORK_LIBS="-lsocket $LIBREPLACE_NETWORK_LIBS" ++ ;; ++ esac -+ac_check_lib_ext_save_LIBS=$LIBS -+LIBS="-lipv6 $LIBREPLACE_NETWORK_LIBS $LIBS" ++fi ++ if test x"$ac_cv_lib_ext_nsl_s_gethostbyname" = x"yes" || ++ test x"$ac_cv_lib_ext_nsl_gethostbyname" = x"yes" || ++ test x"$ac_cv_lib_ext_socket_gethostbyname" = x"yes" ++ then ++$as_echo "#define HAVE_GETHOSTBYNAME 1" >>confdefs.h ++ fi ++fi -- --for ac_func in _close __close _fchdir __fchdir _fcntl __fcntl +-for ac_func in _stat _lstat _fstat __stat __lstat __fstat -do -as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 -$as_echo_n "checking for $ac_func... " >&6; } -if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then -+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for if_nametoindex in -lipv6" >&5 -+$as_echo_n "checking for if_nametoindex in -lipv6... " >&6; } -+if test "${ac_cv_lib_ext_ipv6_if_nametoindex+set}" = set; then : - $as_echo_n "(cached) " >&6 - else +- $as_echo_n "(cached) " >&6 +-else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ --_ACEOF ++for ac_func in if_nametoindex ++do : ++ ac_fn_c_check_func "$LINENO" "if_nametoindex" "ac_cv_func_if_nametoindex" ++if test "x$ac_cv_func_if_nametoindex" = x""yes; then : ++ cat >>confdefs.h <<_ACEOF ++#define HAVE_IF_NAMETOINDEX 1 + _ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ +-/* end confdefs.h. */ -/* Define $ac_func to an innocuous variant, in case declares $ac_func. - For example, HP-UX 11i declares gettimeofday. */ -#define $ac_func innocuous_$ac_func -- + -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char $ac_func (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ -- ++fi ++done ++ ++if test x"$ac_cv_func_if_nametoindex" = x"no"; then ++ ++ ++ac_check_lib_ext_save_LIBS=$LIBS ++LIBS="-lipv6 $LIBREPLACE_NETWORK_LIBS $LIBS" + -#ifdef __STDC__ -# include -#else -# include -#endif -- + -#undef $ac_func ++ ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for if_nametoindex in -lipv6" >&5 ++$as_echo_n "checking for if_nametoindex in -lipv6... " >&6; } ++if test "${ac_cv_lib_ext_ipv6_if_nametoindex+set}" = set; then : ++ $as_echo_n "(cached) " >&6 ++else ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC -@@ -44810,2967 +12350,2216 @@ +@@ -44306,2754 +12094,2283 @@ #ifdef __cplusplus extern "C" #endif @@ -48565,21 +47645,14 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 +- +- eval "$as_ac_var=no" + ac_cv_lib_ext_ipv6_if_nametoindex=no; + ac_cv_lib_ext_ipv6=no -+fi + fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext -- eval "$as_ac_var=no" - fi -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ext_ipv6_if_nametoindex" >&5 -+$as_echo "$ac_cv_lib_ext_ipv6_if_nametoindex" >&6; } -+ if test $ac_cv_lib_ext_ipv6_if_nametoindex = yes; then : -+ cat >>confdefs.h <<_ACEOF -+#define HAVE_IF_NAMETOINDEX 1 -+_ACEOF - -rm -rf conftest.dSYM -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext @@ -48591,14 +47664,23 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -as_val=`eval 'as_val=${'$as_ac_var'} - $as_echo "$as_val"'` - if test "x$as_val" = x""yes; then -+LIBS=$ac_check_lib_ext_save_LIBS -+ -+if test $ac_cv_lib_ext_ipv6 = yes; then : ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ext_ipv6_if_nametoindex" >&5 ++$as_echo "$ac_cv_lib_ext_ipv6_if_nametoindex" >&6; } ++ if test $ac_cv_lib_ext_ipv6_if_nametoindex = yes; then : cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 -+#define HAVE_LIBIPV6 1 ++#define HAVE_IF_NAMETOINDEX 1 _ACEOF + fi +-done ++LIBS=$ac_check_lib_ext_save_LIBS + ++if test $ac_cv_lib_ext_ipv6 = yes; then : ++ cat >>confdefs.h <<_ACEOF ++#define HAVE_LIBIPV6 1 ++_ACEOF + + case "$LIBREPLACE_NETWORK_LIBS" in + *-lipv6*) + ;; @@ -48606,10 +47688,9 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure + LIBREPLACE_NETWORK_LIBS="-lipv6 $LIBREPLACE_NETWORK_LIBS" + ;; + esac -+ -+ - fi --done + + ++fi + if test x"$ac_cv_lib_ext_ipv6_if_nametoindex" = x"yes" + then @@ -48632,22 +47713,13 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure +#define HAVE_SOCKETPAIR 1 +_ACEOF -+else -+ LIBREPLACE_NETWORK_OBJS="${LIBREPLACE_NETWORK_OBJS} socketpair.o" -+fi -+done - - --for ac_func in getdents __getdents _lseek __lseek _read __read +-for ac_func in _acl __acl _facl __facl _open __open _chdir __chdir -do -as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 -$as_echo_n "checking for $ac_func... " >&6; } -if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for broken inet_ntoa" >&5 -+$as_echo_n "checking for broken inet_ntoa... " >&6; } -+if test "${libreplace_cv_REPLACE_INET_NTOA+set}" = set; then : - $as_echo_n "(cached) " >&6 +- $as_echo_n "(cached) " >&6 else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ @@ -48658,44 +47730,33 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -/* Define $ac_func to an innocuous variant, in case declares $ac_func. - For example, HP-UX 11i declares gettimeofday. */ -#define $ac_func innocuous_$ac_func ++ LIBREPLACE_NETWORK_OBJS="${LIBREPLACE_NETWORK_OBJS} $libreplacedir/socketpair.o" ++fi ++done -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char $ac_func (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ + +-#ifdef __STDC__ +-# include +-#else +-# include +-#endif ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for broken inet_ntoa" >&5 ++$as_echo_n "checking for broken inet_ntoa... " >&6; } ++if test "${libreplace_cv_REPLACE_INET_NTOA+set}" = set; then : ++ $as_echo_n "(cached) " >&6 ++else + +-#undef $ac_func +if test "$cross_compiling" = yes; then : + libreplace_cv_REPLACE_INET_NTOA=cross +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ --#ifdef __STDC__ --# include --#else --# include -+#include -+#include -+#include -+#include -+#ifdef HAVE_ARPA_INET_H -+#include - #endif -+main() { struct in_addr ip; ip.s_addr = 0x12345678; -+if (strcmp(inet_ntoa(ip),"18.52.86.120") && -+ strcmp(inet_ntoa(ip),"120.86.52.18")) { exit(0); } -+exit(1);} -+_ACEOF -+if ac_fn_c_try_run "$LINENO"; then : -+ libreplace_cv_REPLACE_INET_NTOA=yes -+else -+ libreplace_cv_REPLACE_INET_NTOA=no -+fi -+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ -+ conftest.$ac_objext conftest.beam conftest.$ac_ext -+fi - --#undef $ac_func -- -/* 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. */ @@ -48708,11 +47769,14 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - something starting with __ and the normal name is an alias. */ -#if defined __stub_$ac_func || defined __stub___$ac_func -choke me --#endif -+fi -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libreplace_cv_REPLACE_INET_NTOA" >&5 -+$as_echo "$libreplace_cv_REPLACE_INET_NTOA" >&6; } - ++#include ++#include ++#include ++#include ++#ifdef HAVE_ARPA_INET_H ++#include + #endif +- -int -main () -{ @@ -48720,12 +47784,10 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - ; - return 0; -} -+for ac_func in inet_ntoa -+do : -+ ac_fn_c_check_func "$LINENO" "inet_ntoa" "ac_cv_func_inet_ntoa" -+if test "x$ac_cv_func_inet_ntoa" = x""yes; then : -+ cat >>confdefs.h <<_ACEOF -+#define HAVE_INET_NTOA 1 ++main() { struct in_addr ip; ip.s_addr = 0x12345678; ++if (strcmp(inet_ntoa(ip),"18.52.86.120") && ++ strcmp(inet_ntoa(ip),"120.86.52.18")) { exit(0); } ++exit(1);} _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" @@ -48749,24 +47811,22 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - $as_test_x conftest$ac_exeext - }; then - eval "$as_ac_var=yes" --else ++if ac_fn_c_try_run "$LINENO"; then : ++ libreplace_cv_REPLACE_INET_NTOA=yes + else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - +- - eval "$as_ac_var=no" -+else -+ libreplace_cv_REPLACE_INET_NTOA=yes ++ libreplace_cv_REPLACE_INET_NTOA=no ++fi ++rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ ++ conftest.$ac_objext conftest.beam conftest.$ac_ext fi -+done -+ -+if test x"$libreplace_cv_REPLACE_INET_NTOA" = x"yes"; then -rm -rf conftest.dSYM -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -+$as_echo "#define REPLACE_INET_NTOA 1" >>confdefs.h -+ -+ LIBREPLACE_NETWORK_OBJS="${LIBREPLACE_NETWORK_OBJS} inet_ntoa.o" fi -ac_res=`eval 'as_val=${'$as_ac_var'} - $as_echo "$as_val"'` @@ -48775,20 +47835,42 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -as_val=`eval 'as_val=${'$as_ac_var'} - $as_echo "$as_val"'` - if test "x$as_val" = x""yes; then ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libreplace_cv_REPLACE_INET_NTOA" >&5 ++$as_echo "$libreplace_cv_REPLACE_INET_NTOA" >&6; } + ++for ac_func in inet_ntoa ++do : ++ ac_fn_c_check_func "$LINENO" "inet_ntoa" "ac_cv_func_inet_ntoa" ++if test "x$ac_cv_func_inet_ntoa" = x""yes; then : + cat >>confdefs.h <<_ACEOF +-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 ++#define HAVE_INET_NTOA 1 + _ACEOF + ++else ++ libreplace_cv_REPLACE_INET_NTOA=yes + fi + done + ++if test x"$libreplace_cv_REPLACE_INET_NTOA" = x"yes"; then ++ ++$as_echo "#define REPLACE_INET_NTOA 1" >>confdefs.h + ++ LIBREPLACE_NETWORK_OBJS="${LIBREPLACE_NETWORK_OBJS} $libreplacedir/inet_ntoa.o" ++fi + +for ac_func in inet_aton +do : + ac_fn_c_check_func "$LINENO" "inet_aton" "ac_cv_func_inet_aton" +if test "x$ac_cv_func_inet_aton" = x""yes; then : - cat >>confdefs.h <<_ACEOF --#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 ++ cat >>confdefs.h <<_ACEOF +#define HAVE_INET_ATON 1 - _ACEOF ++_ACEOF +else -+ LIBREPLACE_NETWORK_OBJS="${LIBREPLACE_NETWORK_OBJS} inet_aton.o" - fi - done ++ LIBREPLACE_NETWORK_OBJS="${LIBREPLACE_NETWORK_OBJS} $libreplacedir/inet_aton.o" ++fi ++done +for ac_func in inet_ntop @@ -48799,21 +47881,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure +#define HAVE_INET_NTOP 1 +_ACEOF -+else -+ LIBREPLACE_NETWORK_OBJS="${LIBREPLACE_NETWORK_OBJS} inet_ntop.o" -+fi -+done - - -+for ac_func in inet_pton -+do : -+ ac_fn_c_check_func "$LINENO" "inet_pton" "ac_cv_func_inet_pton" -+if test "x$ac_cv_func_inet_pton" = x""yes; then : -+ cat >>confdefs.h <<_ACEOF -+#define HAVE_INET_PTON 1 -+_ACEOF - --for ac_func in getdirentries _write __write _fork __fork +-for ac_func in _close __close _fchdir __fchdir _fcntl __fcntl -do -as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 @@ -48823,37 +47891,47 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ --_ACEOF ++ LIBREPLACE_NETWORK_OBJS="${LIBREPLACE_NETWORK_OBJS} $libreplacedir/inet_ntop.o" ++fi ++done ++ ++ ++for ac_func in inet_pton ++do : ++ ac_fn_c_check_func "$LINENO" "inet_pton" "ac_cv_func_inet_pton" ++if test "x$ac_cv_func_inet_pton" = x""yes; then : ++ cat >>confdefs.h <<_ACEOF ++#define HAVE_INET_PTON 1 + _ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define $ac_func to an innocuous variant, in case declares $ac_func. - For example, HP-UX 11i declares gettimeofday. */ -#define $ac_func innocuous_$ac_func -+ LIBREPLACE_NETWORK_OBJS="${LIBREPLACE_NETWORK_OBJS} inet_pton.o" -+fi -+done -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char $ac_func (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ ++else ++ LIBREPLACE_NETWORK_OBJS="${LIBREPLACE_NETWORK_OBJS} $libreplacedir/inet_pton.o" ++fi ++done -#ifdef __STDC__ -# include -#else -# include -#endif + +-#undef $ac_func +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for getaddrinfo" >&5 +$as_echo_n "checking for getaddrinfo... " >&6; } +if test "${libreplace_cv_HAVE_GETADDRINFO+set}" = set; then : + $as_echo_n "(cached) " >&6 +else --#undef $ac_func -+cat confdefs.h - <<_ACEOF >conftest.$ac_ext -+/* end confdefs.h. */ - -/* 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. */ @@ -48866,12 +47944,15 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - something starting with __ and the normal name is an alias. */ -#if defined __stub_$ac_func || defined __stub___$ac_func -choke me +-#endif ++cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ + +#include +#if STDC_HEADERS +#include +#include - #endif -- ++#endif +#include +#include int @@ -48948,7 +48029,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure +$as_echo "#define HAVE_GAI_STRERROR 1" >>confdefs.h + +else -+ LIBREPLACE_NETWORK_OBJS="${LIBREPLACE_NETWORK_OBJS} getaddrinfo.o" ++ LIBREPLACE_NETWORK_OBJS="${LIBREPLACE_NETWORK_OBJS} $libreplacedir/getaddrinfo.o" fi -ac_res=`eval 'as_val=${'$as_ac_var'} - $as_echo "$as_val"'` @@ -48986,7 +48067,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure +fi --for ac_func in _stat64 __stat64 _fstat64 __fstat64 _lstat64 __lstat64 +-for ac_func in getdents __getdents _lseek __lseek _read __read -do -as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 @@ -49087,12 +48168,14 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -sed 's/^/| /' conftest.$ac_ext >&5 - - eval "$as_ac_var=no" --fi ++ libreplace_cv_HAVE_GETIFADDRS=no + fi - -rm -rf conftest.dSYM -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -+ libreplace_cv_HAVE_GETIFADDRS=no ++rm -f core conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext fi -ac_res=`eval 'as_val=${'$as_ac_var'} - $as_echo "$as_val"'` @@ -49104,16 +48187,12 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF -- -+rm -f core conftest.err conftest.$ac_objext \ -+ conftest$ac_exeext conftest.$ac_ext - fi --done -- +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libreplace_cv_HAVE_GETIFADDRS" >&5 +$as_echo "$libreplace_cv_HAVE_GETIFADDRS" >&6; } +if test x"$libreplace_cv_HAVE_GETIFADDRS" = x"yes"; then +-fi +-done +$as_echo "#define HAVE_GETIFADDRS 1" >>confdefs.h @@ -49124,7 +48203,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure +fi --for ac_func in __sys_llseek llseek _llseek __llseek readdir64 _readdir64 __readdir64 +-for ac_func in getdirentries _write __write _fork __fork -do -as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 @@ -49191,7 +48270,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -#undef $ac_func +else -+ LIBREPLACE_NETWORK_OBJS="${LIBREPLACE_NETWORK_OBJS} getifaddrs.o" ++ LIBREPLACE_NETWORK_OBJS="${LIBREPLACE_NETWORK_OBJS} $libreplacedir/getifaddrs.o" +fi -/* Override any GCC internal prototype to avoid an error. @@ -49343,7 +48422,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure +fi +fi --for ac_func in pread _pread __pread pread64 _pread64 __pread64 +-for ac_func in _stat64 __stat64 _fstat64 __fstat64 _lstat64 __lstat64 -do -as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 @@ -49360,7 +48439,12 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF --/* end confdefs.h. */ ++ ++if test "$cross_compiling" = yes; then : ++ libreplace_cv_HAVE_IFACE_IFREQ=cross ++else ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ -/* Define $ac_func to an innocuous variant, in case declares $ac_func. - For example, HP-UX 11i declares gettimeofday. */ -#define $ac_func innocuous_$ac_func @@ -49369,17 +48453,6 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - which can conflict with char $ac_func (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ -+if test "$cross_compiling" = yes; then : -+ libreplace_cv_HAVE_IFACE_IFREQ=cross -+else -+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext -+/* end confdefs.h. */ - --#ifdef __STDC__ --# include --#else --# include --#endif +#define HAVE_IFACE_IFREQ 1 +#define NO_CONFIG_H 1 +#define AUTOCONF_TEST 1 @@ -49400,7 +48473,11 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi --#undef $ac_func +-#ifdef __STDC__ +-# include +-#else +-# include +-#endif +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libreplace_cv_HAVE_IFACE_IFREQ" >&5 +$as_echo "$libreplace_cv_HAVE_IFACE_IFREQ" >&6; } @@ -49408,6 +48485,10 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure + iface=yes; +$as_echo "#define HAVE_IFACE_IFREQ 1" >>confdefs.h +-#undef $ac_func ++fi ++fi + -/* 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. */ @@ -49421,9 +48502,6 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -#if defined __stub_$ac_func || defined __stub___$ac_func -choke me -#endif -+fi -+fi -+ +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ipv6 support" >&5 +$as_echo_n "checking for ipv6 support... " >&6; } +if test "${libreplace_cv_HAVE_IPV6+set}" = set; then : @@ -49528,7 +48606,9 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure +echo "LIBREPLACE_NETWORK_CHECKS: END" --for ac_func in pwrite _pwrite __pwrite pwrite64 _pwrite64 __pwrite64 ++CPPFLAGS="${SAVE_CPPFLAGS}" + +-for ac_func in __sys_llseek llseek _llseek __llseek readdir64 _readdir64 __readdir64 -do -as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 @@ -49545,25 +48625,22 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -/* Define $ac_func to an innocuous variant, in case declares $ac_func. - For example, HP-UX 11i declares gettimeofday. */ -#define $ac_func innocuous_$ac_func -+CPPFLAGS="${SAVE_CPPFLAGS}" ++LIBREPLACE_DIR=`echo ${libreplacedir} | sed -e "s;${srcdir};;" -e "s;^/;;"` -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char $ac_func (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ -+LIBREPLACE_DIR=`echo ${libreplacedir} | sed -e "s;${srcdir};;" -e "s;^/;;"` ++LIBREPLACE_OBJS="${LIBREPLACEOBJ}" -#ifdef __STDC__ -# include -#else -# include -#endif -+LIBREPLACE_OBJS="" -+for obj in ${LIBREPLACEOBJ}; do -+ LIBREPLACE_OBJS="${LIBREPLACE_OBJS} ${LIBREPLACE_DIR}/${obj}" -+done -#undef $ac_func ++LIBREPLACE_LIBS="${LIBREPLACE_NETWORK_LIBS}" -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC @@ -49578,9 +48655,6 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -#if defined __stub_$ac_func || defined __stub___$ac_func -choke me -#endif -+# add -ldl to the global LIBS -+LIBS="${LIBS} ${LIBDL} ${LIBREPLACE_NETWORK_LIBS}" -+AUTH_LIBS="${AUTH_LIBS} ${CRYPT_LIBS}" -int -main () @@ -49589,16 +48663,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - ; - return 0; -} -+ -+for ac_header in aio.h sys/fcntl.h sys/select.h fcntl.h sys/time.h sys/unistd.h rpc/nettype.h -+do : -+ as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -+ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" -+eval as_val=\$$as_ac_Header -+ if test "x$as_val" = x""yes; then : -+ cat >>confdefs.h <<_ACEOF -+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 - _ACEOF +-_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in @@ -49626,7 +48691,10 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -sed 's/^/| /' conftest.$ac_ext >&5 - eval "$as_ac_var=no" - fi +-fi ++# add -ldl to the global LIBS ++LIBS="${LIBS} ${LIBDL} ${LIBREPLACE_NETWORK_LIBS}" ++AUTH_LIBS="${AUTH_LIBS} ${CRYPT_LIBS}" -rm -rf conftest.dSYM -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ @@ -49639,9 +48707,8 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -as_val=`eval 'as_val=${'$as_ac_var'} - $as_echo "$as_val"'` - if test "x$as_val" = x""yes; then -+done + -+for ac_header in unistd.h grp.h sys/id.h memory.h alloca.h ++for ac_header in aio.h sys/fcntl.h sys/select.h fcntl.h sys/time.h sys/unistd.h rpc/nettype.h +do : + as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" @@ -49653,11 +48720,10 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure _ACEOF fi --done ++ + done -+done - -+for ac_header in limits.h float.h pthread.h libintl.h ++for ac_header in unistd.h grp.h sys/id.h memory.h alloca.h +do : + as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" @@ -49671,7 +48737,21 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure +done --for ac_func in open64 _open64 __open64 creat64 ++for ac_header in limits.h float.h libintl.h ++do : ++ as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ++ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" ++eval as_val=\$$as_ac_Header ++ if test "x$as_val" = x""yes; then : ++ cat >>confdefs.h <<_ACEOF ++#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 ++_ACEOF + ++fi + ++done + +-for ac_func in pread _pread __pread pread64 _pread64 __pread64 -do -as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 @@ -49696,30 +48776,20 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -/* Define $ac_func to an innocuous variant, in case declares $ac_func. - For example, HP-UX 11i declares gettimeofday. */ -#define $ac_func innocuous_$ac_func - +- -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char $ac_func (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ -+fi - +- -#ifdef __STDC__ -# include -#else -# include -#endif -+done -#undef $ac_func -+for ac_header in sys/param.h ctype.h sys/wait.h sys/resource.h sys/ioctl.h sys/ipc.h sys/prctl.h sys/sysctl.h -+do : -+ as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -+ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" -+eval as_val=\$$as_ac_Header -+ if test "x$as_val" = x""yes; then : -+ cat >>confdefs.h <<_ACEOF -+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -+_ACEOF ++fi -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC @@ -49734,7 +48804,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -#if defined __stub_$ac_func || defined __stub___$ac_func -choke me -#endif -+fi ++done -int -main () @@ -49743,9 +48813,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - ; - return 0; -} -+done -+ -+for ac_header in sys/mman.h sys/filio.h sys/priv.h sys/shm.h string.h strings.h stdlib.h ++for ac_header in sys/param.h ctype.h sys/wait.h sys/resource.h sys/ioctl.h sys/ipc.h sys/prctl.h sys/sysctl.h +do : + as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" @@ -49796,7 +48864,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - if test "x$as_val" = x""yes; then +done + -+for ac_header in sys/mount.h sys/vfs.h sys/fs/s5param.h sys/filsys.h termios.h termio.h ++for ac_header in sys/mman.h sys/filio.h sys/priv.h sys/shm.h string.h strings.h stdlib.h +do : + as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" @@ -49808,11 +48876,38 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure _ACEOF fi --done ++ + done + ++for ac_header in sys/mount.h sys/vfs.h sys/fs/s5param.h sys/filsys.h termios.h termio.h ++do : ++ as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ++ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" ++eval as_val=\$$as_ac_Header ++ if test "x$as_val" = x""yes; then : ++ cat >>confdefs.h <<_ACEOF ++#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 ++_ACEOF + ++fi +done --for ac_func in prctl ++for ac_header in sys/termio.h sys/statfs.h sys/dustat.h sys/statvfs.h stdarg.h ++do : ++ as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ++ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" ++eval as_val=\$$as_ac_Header ++ if test "x$as_val" = x""yes; then : ++ cat >>confdefs.h <<_ACEOF ++#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 ++_ACEOF + ++fi + ++done + +-for ac_func in pwrite _pwrite __pwrite pwrite64 _pwrite64 __pwrite64 -do -as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 @@ -49822,14 +48917,12 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -+for ac_header in sys/termio.h sys/statfs.h sys/dustat.h sys/statvfs.h stdarg.h ++for ac_header in sys/sysmacros.h +do : -+ as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -+ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" -+eval as_val=\$$as_ac_Header -+ if test "x$as_val" = x""yes; then : ++ ac_fn_c_check_header_mongrel "$LINENO" "sys/sysmacros.h" "ac_cv_header_sys_sysmacros_h" "$ac_includes_default" ++if test "x$ac_cv_header_sys_sysmacros_h" = x""yes; then : + cat >>confdefs.h <<_ACEOF -+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 ++#define HAVE_SYS_SYSMACROS_H 1 _ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF @@ -49837,28 +48930,20 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -/* Define $ac_func to an innocuous variant, in case declares $ac_func. - For example, HP-UX 11i declares gettimeofday. */ -#define $ac_func innocuous_$ac_func - +- -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char $ac_func (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ -+fi - +- -#ifdef __STDC__ -# include -#else -# include -#endif -+done -#undef $ac_func -+for ac_header in sys/sysmacros.h -+do : -+ ac_fn_c_check_header_mongrel "$LINENO" "sys/sysmacros.h" "ac_cv_header_sys_sysmacros_h" "$ac_includes_default" -+if test "x$ac_cv_header_sys_sysmacros_h" = x""yes; then : -+ cat >>confdefs.h <<_ACEOF -+#define HAVE_SYS_SYSMACROS_H 1 -+_ACEOF ++fi -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC @@ -49873,7 +48958,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -#if defined __stub_$ac_func || defined __stub___$ac_func -choke me -#endif -+fi ++done -int -main () @@ -49882,8 +48967,6 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - ; - return 0; -} -+done -+ +for ac_header in sys/syslog.h syslog.h +do : + as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` @@ -49951,14 +49034,323 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure +done --cat >conftest.$ac_ext <<_ACEOF --/* confdefs.h. */ +for ac_header in xfs/libxfs.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "xfs/libxfs.h" "ac_cv_header_xfs_libxfs_h" "$ac_includes_default" +if test "x$ac_cv_header_xfs_libxfs_h" = x""yes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_XFS_LIBXFS_H 1 ++_ACEOF + ++fi + ++done + +-for ac_func in open64 _open64 __open64 creat64 +-do +-as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +-{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 +-$as_echo_n "checking for $ac_func... " >&6; } +-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then +- $as_echo_n "(cached) " >&6 +-else +- cat >conftest.$ac_ext <<_ACEOF +-/* confdefs.h. */ ++for ac_header in netgroup.h ++do : ++ ac_fn_c_check_header_mongrel "$LINENO" "netgroup.h" "ac_cv_header_netgroup_h" "$ac_includes_default" ++if test "x$ac_cv_header_netgroup_h" = x""yes; then : ++ cat >>confdefs.h <<_ACEOF ++#define HAVE_NETGROUP_H 1 + _ACEOF +-cat confdefs.h >>conftest.$ac_ext +-cat >>conftest.$ac_ext <<_ACEOF +-/* end confdefs.h. */ +-/* Define $ac_func to an innocuous variant, in case declares $ac_func. +- For example, HP-UX 11i declares gettimeofday. */ +-#define $ac_func innocuous_$ac_func + +-/* System header to define __stub macros and hopefully few prototypes, +- which can conflict with char $ac_func (); below. +- Prefer to if __STDC__ is defined, since +- exists even on freestanding compilers. */ ++fi + +-#ifdef __STDC__ +-# include +-#else +-# include +-#endif ++done + +-#undef $ac_func + +-/* 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 +-char $ac_func (); +-/* 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_$ac_func || defined __stub___$ac_func +-choke me ++for ac_header in rpcsvc/yp_prot.h ++do : ++ ac_fn_c_check_header_compile "$LINENO" "rpcsvc/yp_prot.h" "ac_cv_header_rpcsvc_yp_prot_h" " ++#if HAVE_RPC_RPC_H ++#include + #endif + +-int +-main () +-{ +-return $ac_func (); +- ; +- return 0; +-} ++" ++if test "x$ac_cv_header_rpcsvc_yp_prot_h" = x""yes; then : ++ cat >>confdefs.h <<_ACEOF ++#define HAVE_RPCSVC_YP_PROT_H 1 + _ACEOF +-rm -f conftest.$ac_objext conftest$ac_exeext +-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 +- $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 +- eval "$as_ac_var=yes" +-else +- $as_echo "$as_me: failed program was:" >&5 +-sed 's/^/| /' conftest.$ac_ext >&5 + +- eval "$as_ac_var=no" + fi + +-rm -rf conftest.dSYM +-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ +- conftest$ac_exeext conftest.$ac_ext +-fi +-ac_res=`eval 'as_val=${'$as_ac_var'} +- $as_echo "$as_val"'` +- { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +-$as_echo "$ac_res" >&6; } +-as_val=`eval 'as_val=${'$as_ac_var'} +- $as_echo "$as_val"'` +- if test "x$as_val" = x""yes; then ++done ++ ++ ++## These fail to compile on IRIX so just check for their presence ++for ac_header in sys/mode.h ++do : ++ ac_fn_c_check_header_mongrel "$LINENO" "sys/mode.h" "ac_cv_header_sys_mode_h" "$ac_includes_default" ++if test "x$ac_cv_header_sys_mode_h" = x""yes; then : + cat >>confdefs.h <<_ACEOF +-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 ++#define HAVE_SYS_MODE_H 1 + _ACEOF + + fi ++ + done + + +-for ac_func in prctl +-do +-as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +-{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 +-$as_echo_n "checking for $ac_func... " >&6; } +-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then +- $as_echo_n "(cached) " >&6 ++# Look for Darwin headers ++old_CPPFLAGS="$CPPFLAGS" ++CPPFLAGS="-Iinclude $CPPFLAGS" ++for ac_header in CoreFoundation/CFStringEncodingConverter.h ++do : ++ ac_fn_c_check_header_mongrel "$LINENO" "CoreFoundation/CFStringEncodingConverter.h" "ac_cv_header_CoreFoundation_CFStringEncodingConverter_h" "$ac_includes_default" ++if test "x$ac_cv_header_CoreFoundation_CFStringEncodingConverter_h" = x""yes; then : ++ cat >>confdefs.h <<_ACEOF ++#define HAVE_COREFOUNDATION_CFSTRINGENCODINGCONVERTER_H 1 ++_ACEOF ++ + else +- cat >conftest.$ac_ext <<_ACEOF +-/* confdefs.h. */ ++ for ac_header in CFStringEncodingConverter.h ++do : ++ ac_fn_c_check_header_mongrel "$LINENO" "CFStringEncodingConverter.h" "ac_cv_header_CFStringEncodingConverter_h" "$ac_includes_default" ++if test "x$ac_cv_header_CFStringEncodingConverter_h" = x""yes; then : ++ cat >>confdefs.h <<_ACEOF ++#define HAVE_CFSTRINGENCODINGCONVERTER_H 1 + _ACEOF +-cat confdefs.h >>conftest.$ac_ext +-cat >>conftest.$ac_ext <<_ACEOF +-/* end confdefs.h. */ +-/* Define $ac_func to an innocuous variant, in case declares $ac_func. +- For example, HP-UX 11i declares gettimeofday. */ +-#define $ac_func innocuous_$ac_func + +-/* System header to define __stub macros and hopefully few prototypes, +- which can conflict with char $ac_func (); below. +- Prefer to if __STDC__ is defined, since +- exists even on freestanding compilers. */ ++fi + +-#ifdef __STDC__ +-# include +-#else +-# include +-#endif ++done + +-#undef $ac_func ++fi ++ ++done ++ ++CPPFLAGS="$old_CPPFLAGS" ++ ++# In valgrind 1.0.x, it's just valgrind.h. In 1.9.x+ there's a ++# subdirectory of headers. ++for ac_header in valgrind.h valgrind/valgrind.h valgrind/memcheck.h ++do : ++ as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ++ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" ++eval as_val=\$$as_ac_Header ++ if test "x$as_val" = x""yes; then : ++ cat >>confdefs.h <<_ACEOF ++#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 ++_ACEOF ++ ++fi ++ ++done + +-/* 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 +-char $ac_func (); +-/* 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_$ac_func || defined __stub___$ac_func +-choke me +-#endif + ++# ++# HPUX has a bug in that including shadow.h causes a re-definition of MAXINT. ++# This causes configure to fail to detect it. Check for shadow separately on HPUX. ++# ++case "$host_os" in ++ *hpux*) ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++#include + int + main () + { +-return $ac_func (); ++struct spwd testme + ; + return 0; + } + _ACEOF +-rm -f conftest.$ac_objext conftest$ac_exeext +-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 +- $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 +- eval "$as_ac_var=yes" ++if ac_fn_c_try_compile "$LINENO"; then : ++ ac_cv_header_shadow_h=yes + else +- $as_echo "$as_me: failed program was:" >&5 +-sed 's/^/| /' conftest.$ac_ext >&5 +- +- eval "$as_ac_var=no" ++ ac_cv_header_shadow_h=no + fi ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++ if test x"$ac_cv_header_shadow_h" = x"yes"; then + +-rm -rf conftest.dSYM +-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ +- conftest$ac_exeext conftest.$ac_ext +-fi +-ac_res=`eval 'as_val=${'$as_ac_var'} +- $as_echo "$as_val"'` +- { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +-$as_echo "$ac_res" >&6; } +-as_val=`eval 'as_val=${'$as_ac_var'} +- $as_echo "$as_val"'` +- if test "x$as_val" = x""yes; then ++$as_echo "#define HAVE_SHADOW_H 1" >>confdefs.h ++ ++ fi ++ ;; ++esac ++for ac_header in shadow.h ++do : ++ ac_fn_c_check_header_mongrel "$LINENO" "shadow.h" "ac_cv_header_shadow_h" "$ac_includes_default" ++if test "x$ac_cv_header_shadow_h" = x""yes; then : + cat >>confdefs.h <<_ACEOF +-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 ++#define HAVE_SHADOW_H 1 + _ACEOF + + fi +-done + ++done + +-cat >conftest.$ac_ext <<_ACEOF +-/* confdefs.h. */ ++for ac_header in nss.h nss_common.h nsswitch.h ns_api.h sys/security.h ++do : ++ as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ++ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" ++eval as_val=\$$as_ac_Header ++ if test "x$as_val" = x""yes; then : ++ cat >>confdefs.h <<_ACEOF ++#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF @@ -49999,12 +49391,14 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -cat >>confdefs.h <<\_ACEOF -#define HAVE_PRCTL 1 -+for ac_header in netgroup.h ++for ac_header in syscall.h sys/syscall.h +do : -+ ac_fn_c_check_header_mongrel "$LINENO" "netgroup.h" "ac_cv_header_netgroup_h" "$ac_includes_default" -+if test "x$ac_cv_header_netgroup_h" = x""yes; then : ++ as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ++ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" ++eval as_val=\$$as_ac_Header ++ if test "x$as_val" = x""yes; then : + cat >>confdefs.h <<_ACEOF -+#define HAVE_NETGROUP_H 1 ++#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF -else @@ -50013,16 +49407,22 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure +fi +done ++ ++ ++for ac_header in sys/attributes.h attr/xattr.h sys/xattr.h sys/extattr.h sys/uio.h ++do : ++ as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ++ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" ++eval as_val=\$$as_ac_Header ++ if test "x$as_val" = x""yes; then : ++ cat >>confdefs.h <<_ACEOF ++#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 ++_ACEOF --fi + fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -+for ac_header in rpcsvc/yp_prot.h -+do : -+ ac_fn_c_check_header_compile "$LINENO" "rpcsvc/yp_prot.h" "ac_cv_header_rpcsvc_yp_prot_h" " -+#if HAVE_RPC_RPC_H -+#include -+#endif ++done -# -# @@ -50030,21 +49430,24 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -case "$host_os" in - *linux* | gnu* | k*bsd*-gnu | kopensolaris*-gnu) - # glibc <= 2.3.2 has a broken getgrouplist -- if test "$cross_compiling" = yes; then -- { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 --$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} --{ { $as_echo "$as_me:$LINENO: error: cannot run test program while cross compiling --See \`config.log' for more details." >&5 --$as_echo "$as_me: error: cannot run test program while cross compiling --See \`config.log' for more details." >&2;} -- { (exit 1); exit 1; }; }; } +- { $as_echo "$as_me:$LINENO: checking for good getgrouplist" >&5 +-$as_echo_n "checking for good getgrouplist... " >&6; } +-if test "${samba_cv_linux_getgrouplist_ok+set}" = set; then +- $as_echo_n "(cached) " >&6 +-else +- if test "$cross_compiling" = yes; then +- samba_cv_linux_getgrouplist_ok=cross -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -+" -+if test "x$ac_cv_header_rpcsvc_yp_prot_h" = x""yes; then : ++for ac_header in sys/ea.h sys/proplist.h ++do : ++ as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ++ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" ++eval as_val=\$$as_ac_Header ++ if test "x$as_val" = x""yes; then : + cat >>confdefs.h <<_ACEOF -+#define HAVE_RPCSVC_YP_PROT_H 1 ++#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF @@ -50069,13 +49472,14 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - exit(0); -} -+## These fail to compile on IRIX so just check for their presence -+for ac_header in sys/mode.h ++for ac_header in sys/cdefs.h glob.h +do : -+ ac_fn_c_check_header_mongrel "$LINENO" "sys/mode.h" "ac_cv_header_sys_mode_h" "$ac_includes_default" -+if test "x$ac_cv_header_sys_mode_h" = x""yes; then : ++ as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ++ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" ++eval as_val=\$$as_ac_Header ++ if test "x$as_val" = x""yes; then : + cat >>confdefs.h <<_ACEOF -+#define HAVE_SYS_MODE_H 1 ++#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF -rm -f conftest$ac_exeext -if { (ac_try="$ac_link" @@ -50099,14 +49503,14 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then -- linux_getgrouplist_ok=yes +- samba_cv_linux_getgrouplist_ok=yes -else - $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 ) --linux_getgrouplist_ok=no +-samba_cv_linux_getgrouplist_ok=no -fi -rm -rf conftest.dSYM -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext @@ -50114,53 +49518,73 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure +done -- if test x"$linux_getgrouplist_ok" = x"yes"; then +-fi +-{ $as_echo "$as_me:$LINENO: result: $samba_cv_linux_getgrouplist_ok" >&5 +-$as_echo "$samba_cv_linux_getgrouplist_ok" >&6; } +- if test x"$samba_cv_linux_getgrouplist_ok" = x"yes"; then -cat >>confdefs.h <<\_ACEOF -#define HAVE_GETGROUPLIST 1 -+# Look for Darwin headers -+old_CPPFLAGS="$CPPFLAGS" -+CPPFLAGS="-Iinclude $CPPFLAGS" -+for ac_header in CoreFoundation/CFStringEncodingConverter.h ++# For experimental utmp support (lastlog on some BSD-like systems) ++for ac_header in utmp.h utmpx.h lastlog.h +do : -+ ac_fn_c_check_header_mongrel "$LINENO" "CoreFoundation/CFStringEncodingConverter.h" "ac_cv_header_CoreFoundation_CFStringEncodingConverter_h" "$ac_includes_default" -+if test "x$ac_cv_header_CoreFoundation_CFStringEncodingConverter_h" = x""yes; then : ++ as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ++ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" ++eval as_val=\$$as_ac_Header ++ if test "x$as_val" = x""yes; then : + cat >>confdefs.h <<_ACEOF -+#define HAVE_COREFOUNDATION_CFSTRINGENCODINGCONVERTER_H 1 ++#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF - fi - ;; - *) -- ++fi + -for ac_func in getgrouplist -do -as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 -$as_echo_n "checking for $ac_func... " >&6; } -if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then -- $as_echo_n "(cached) " >&6 ++done ++ ++ ++# The cast to long int works around a bug in the HP C Compiler ++# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects ++# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. ++# This bug is HP SR number 8606223364. ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of int" >&5 ++$as_echo_n "checking size of int... " >&6; } ++if test "${ac_cv_sizeof_int+set}" = set; then : + $as_echo_n "(cached) " >&6 else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -+ for ac_header in CFStringEncodingConverter.h -+do : -+ ac_fn_c_check_header_mongrel "$LINENO" "CFStringEncodingConverter.h" "ac_cv_header_CFStringEncodingConverter_h" "$ac_includes_default" -+if test "x$ac_cv_header_CFStringEncodingConverter_h" = x""yes; then : -+ cat >>confdefs.h <<_ACEOF -+#define HAVE_CFSTRINGENCODINGCONVERTER_H 1 - _ACEOF +-_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define $ac_func to an innocuous variant, in case declares $ac_func. - For example, HP-UX 11i declares gettimeofday. */ -#define $ac_func innocuous_$ac_func -- ++ if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (int))" "ac_cv_sizeof_int" "$ac_includes_default"; then : + -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char $ac_func (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ ++else ++ if test "$ac_cv_type_int" = yes; then ++ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 ++$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} ++{ as_fn_set_status 77 ++as_fn_error "cannot compute sizeof (int) ++See \`config.log' for more details." "$LINENO" 5; }; } ++ else ++ ac_cv_sizeof_int=0 ++ fi ++fi -#ifdef __STDC__ -# include @@ -50168,9 +49592,10 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -# include -#endif +fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_int" >&5 ++$as_echo "$ac_cv_sizeof_int" >&6; } -#undef $ac_func -+done -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC @@ -50185,7 +49610,6 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -#if defined __stub_$ac_func || defined __stub___$ac_func -choke me -#endif -+fi -int -main () @@ -50194,7 +49618,9 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - ; - return 0; -} --_ACEOF ++cat >>confdefs.h <<_ACEOF ++#define SIZEOF_INT $ac_cv_sizeof_int + _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in @@ -50220,16 +49646,35 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 -+done - eval "$as_ac_var=no" -fi -+CPPFLAGS="$old_CPPFLAGS" -rm -rf conftest.dSYM -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext --fi ++# The cast to long int works around a bug in the HP C Compiler ++# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects ++# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. ++# This bug is HP SR number 8606223364. ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of long" >&5 ++$as_echo_n "checking size of long... " >&6; } ++if test "${ac_cv_sizeof_long+set}" = set; then : ++ $as_echo_n "(cached) " >&6 ++else ++ if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (long))" "ac_cv_sizeof_long" "$ac_includes_default"; then : ++ ++else ++ if test "$ac_cv_type_long" = yes; then ++ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 ++$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} ++{ as_fn_set_status 77 ++as_fn_error "cannot compute sizeof (long) ++See \`config.log' for more details." "$LINENO" 5; }; } ++ else ++ ac_cv_sizeof_long=0 ++ fi + fi -ac_res=`eval 'as_val=${'$as_ac_var'} - $as_echo "$as_val"'` - { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 @@ -50237,60 +49682,47 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -as_val=`eval 'as_val=${'$as_ac_var'} - $as_echo "$as_val"'` - if test "x$as_val" = x""yes; then -+# In valgrind 1.0.x, it's just valgrind.h. In 1.9.x+ there's a -+# subdirectory of headers. -+for ac_header in valgrind.h valgrind/valgrind.h valgrind/memcheck.h -+do : -+ as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -+ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" -+eval as_val=\$$as_ac_Header -+ if test "x$as_val" = x""yes; then : - cat >>confdefs.h <<_ACEOF +- cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 -+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 - _ACEOF +-_ACEOF fi -+ - done +-done ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_long" >&5 ++$as_echo "$ac_cv_sizeof_long" >&6; } - ;; -esac - # +-# -# stat64 family may need on some systems, notably ReliantUNIX -+# HPUX has a bug in that including shadow.h causes a re-definition of MAXINT. -+# This causes configure to fail to detect it. Check for shadow separately on HPUX. - # -- +-# + -if test x$ac_cv_func_stat64 = xno ; then - { $as_echo "$as_me:$LINENO: checking for stat64 in " >&5 -$as_echo_n "checking for stat64 in ... " >&6; } - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ --_ACEOF ++cat >>confdefs.h <<_ACEOF ++#define SIZEOF_LONG $ac_cv_sizeof_long + _ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -+case "$host_os" in -+ *hpux*) -+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ -- +-/* end confdefs.h. */ + -#if defined(HAVE_UNISTD_H) -#include -#endif -#include -- -+#include - int - main () - { + +-int +-main () +-{ -struct stat64 st64; exit(stat64(".",&st64)); -+struct spwd testme - ; - return 0; - } - _ACEOF +- ; +- return 0; +-} +-_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in @@ -50313,29 +49745,30 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - $as_test_x conftest$ac_exeext - }; then - ac_cv_func_stat64=yes -+if ac_fn_c_try_compile "$LINENO"; then : -+ ac_cv_header_shadow_h=yes ++# The cast to long int works around a bug in the HP C Compiler ++# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects ++# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. ++# This bug is HP SR number 8606223364. ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of long long" >&5 ++$as_echo_n "checking size of long long... " >&6; } ++if test "${ac_cv_sizeof_long_long+set}" = set; then : ++ $as_echo_n "(cached) " >&6 else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 -+ ac_cv_header_shadow_h=no -+fi -+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -+ if test x"$ac_cv_header_shadow_h" = x"yes"; then -+ -+$as_echo "#define HAVE_SHADOW_H 1" >>confdefs.h - -+ fi -+ ;; -+esac -+for ac_header in shadow.h -+do : -+ ac_fn_c_check_header_mongrel "$LINENO" "shadow.h" "ac_cv_header_shadow_h" "$ac_includes_default" -+if test "x$ac_cv_header_shadow_h" = x""yes; then : -+ cat >>confdefs.h <<_ACEOF -+#define HAVE_SHADOW_H 1 -+_ACEOF +- ++ if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (long long))" "ac_cv_sizeof_long_long" "$ac_includes_default"; then : ++else ++ if test "$ac_cv_type_long_long" = yes; then ++ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 ++$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} ++{ as_fn_set_status 77 ++as_fn_error "cannot compute sizeof (long long) ++See \`config.log' for more details." "$LINENO" 5; }; } ++ else ++ ac_cv_sizeof_long_long=0 ++ fi fi -rm -rf conftest.dSYM @@ -50344,38 +49777,24 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - { $as_echo "$as_me:$LINENO: result: $ac_cv_func_stat64" >&5 -$as_echo "$ac_cv_func_stat64" >&6; } - if test x$ac_cv_func_stat64 = xyes ; then -+done ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_long_long" >&5 ++$as_echo "$ac_cv_sizeof_long_long" >&6; } -cat >>confdefs.h <<\_ACEOF -#define HAVE_STAT64 1 -+for ac_header in nss.h nss_common.h nsswitch.h ns_api.h sys/security.h -+do : -+ as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -+ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" -+eval as_val=\$$as_ac_Header -+ if test "x$as_val" = x""yes; then : -+ cat >>confdefs.h <<_ACEOF -+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 - _ACEOF +-_ACEOF - fi - fi +-fi -if test x$ac_cv_func_lstat64 = xno ; then - { $as_echo "$as_me:$LINENO: checking for lstat64 in " >&5 -$as_echo_n "checking for lstat64 in ... " >&6; } - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -+done -+ -+for ac_header in syscall.h sys/syscall.h -+do : -+ as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -+ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" -+eval as_val=\$$as_ac_Header -+ if test "x$as_val" = x""yes; then : -+ cat >>confdefs.h <<_ACEOF -+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 ++cat >>confdefs.h <<_ACEOF ++#define SIZEOF_LONG_LONG $ac_cv_sizeof_long_long _ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF @@ -50385,7 +49804,6 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -#include -#endif -#include -+fi -int -main () @@ -50417,407 +49835,6 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - $as_test_x conftest$ac_exeext - }; then - ac_cv_func_lstat64=yes --else -- $as_echo "$as_me: failed program was:" >&5 --sed 's/^/| /' conftest.$ac_ext >&5 -+done - - -+for ac_header in sys/attributes.h attr/xattr.h sys/xattr.h sys/extattr.h sys/uio.h -+do : -+ as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -+ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" -+eval as_val=\$$as_ac_Header -+ if test "x$as_val" = x""yes; then : -+ cat >>confdefs.h <<_ACEOF -+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -+_ACEOF -+ - fi - --rm -rf conftest.dSYM --rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ -- conftest$ac_exeext conftest.$ac_ext -- { $as_echo "$as_me:$LINENO: result: $ac_cv_func_lstat64" >&5 --$as_echo "$ac_cv_func_lstat64" >&6; } -- if test x$ac_cv_func_lstat64 = xyes ; then -- cat >>confdefs.h <<\_ACEOF --#define HAVE_LSTAT64 Whether lstat64() is available -+done -+ -+for ac_header in sys/ea.h sys/proplist.h -+do : -+ as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -+ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" -+eval as_val=\$$as_ac_Header -+ if test "x$as_val" = x""yes; then : -+ cat >>confdefs.h <<_ACEOF -+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 - _ACEOF - -- fi - fi - --if test x$ac_cv_func_fstat64 = xno ; then -- { $as_echo "$as_me:$LINENO: checking for fstat64 in " >&5 --$as_echo_n "checking for fstat64 in ... " >&6; } -- cat >conftest.$ac_ext <<_ACEOF --/* confdefs.h. */ --_ACEOF --cat confdefs.h >>conftest.$ac_ext --cat >>conftest.$ac_ext <<_ACEOF --/* end confdefs.h. */ -+done - --#if defined(HAVE_UNISTD_H) --#include --#endif --#include - --int --main () --{ --struct stat64 st64; exit(fstat64(0,&st64)); -- ; -- return 0; --} -+for ac_header in sys/cdefs.h glob.h -+do : -+ as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -+ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" -+eval as_val=\$$as_ac_Header -+ if test "x$as_val" = x""yes; then : -+ cat >>confdefs.h <<_ACEOF -+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 - _ACEOF --rm -f conftest.$ac_objext conftest$ac_exeext --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 -- $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_fstat64=yes --else -- $as_echo "$as_me: failed program was:" >&5 --sed 's/^/| /' conftest.$ac_ext >&5 -- - - fi - --rm -rf conftest.dSYM --rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ -- conftest$ac_exeext conftest.$ac_ext -- { $as_echo "$as_me:$LINENO: result: $ac_cv_func_fstat64" >&5 --$as_echo "$ac_cv_func_fstat64" >&6; } -- if test x$ac_cv_func_fstat64 = xyes ; then -+done - --cat >>confdefs.h <<\_ACEOF --#define HAVE_FSTAT64 1 -+ -+# For experimental utmp support (lastlog on some BSD-like systems) -+for ac_header in utmp.h utmpx.h lastlog.h -+do : -+ as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -+ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" -+eval as_val=\$$as_ac_Header -+ if test "x$as_val" = x""yes; then : -+ cat >>confdefs.h <<_ACEOF -+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 - _ACEOF - -- fi - fi - --################################################# --# Check whether struct stat has timestamps with sub-second resolution. --# -+done - --samba_cv_stat_hires=no --{ $as_echo "$as_me:$LINENO: checking for struct stat.st_mtim.tv_nsec" >&5 --$as_echo_n "checking for struct stat.st_mtim.tv_nsec... " >&6; } --if test "${ac_cv_member_struct_stat_st_mtim_tv_nsec+set}" = set; then -+ -+# The cast to long int works around a bug in the HP C Compiler -+# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects -+# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. -+# This bug is HP SR number 8606223364. -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of int" >&5 -+$as_echo_n "checking size of int... " >&6; } -+if test "${ac_cv_sizeof_int+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. */ --$ac_includes_default --int --main () --{ --static struct stat ac_aggr; --if (ac_aggr.st_mtim.tv_nsec) --return 0; -- ; -- 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_member_struct_stat_st_mtim_tv_nsec=yes -+ if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (int))" "ac_cv_sizeof_int" "$ac_includes_default"; then : -+ - else -- $as_echo "$as_me: failed program was:" >&5 --sed 's/^/| /' conftest.$ac_ext >&5 -+ if test "$ac_cv_type_int" = yes; then -+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -+{ as_fn_set_status 77 -+as_fn_error "cannot compute sizeof (int) -+See \`config.log' for more details." "$LINENO" 5; }; } -+ else -+ ac_cv_sizeof_int=0 -+ fi -+fi - -- cat >conftest.$ac_ext <<_ACEOF --/* confdefs.h. */ --_ACEOF --cat confdefs.h >>conftest.$ac_ext --cat >>conftest.$ac_ext <<_ACEOF --/* end confdefs.h. */ --$ac_includes_default --int --main () --{ --static struct stat ac_aggr; --if (sizeof ac_aggr.st_mtim.tv_nsec) --return 0; -- ; -- return 0; --} -+fi -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_int" >&5 -+$as_echo "$ac_cv_sizeof_int" >&6; } -+ -+ -+ -+cat >>confdefs.h <<_ACEOF -+#define SIZEOF_INT $ac_cv_sizeof_int - _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_member_struct_stat_st_mtim_tv_nsec=yes -+ -+ -+# The cast to long int works around a bug in the HP C Compiler -+# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects -+# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. -+# This bug is HP SR number 8606223364. -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of long" >&5 -+$as_echo_n "checking size of long... " >&6; } -+if test "${ac_cv_sizeof_long+set}" = set; then : -+ $as_echo_n "(cached) " >&6 - else -- $as_echo "$as_me: failed program was:" >&5 --sed 's/^/| /' conftest.$ac_ext >&5 -+ if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (long))" "ac_cv_sizeof_long" "$ac_includes_default"; then : - -- ac_cv_member_struct_stat_st_mtim_tv_nsec=no -+else -+ if test "$ac_cv_type_long" = yes; then -+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -+{ as_fn_set_status 77 -+as_fn_error "cannot compute sizeof (long) -+See \`config.log' for more details." "$LINENO" 5; }; } -+ else -+ ac_cv_sizeof_long=0 -+ fi - fi - --rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_long" >&5 -+$as_echo "$ac_cv_sizeof_long" >&6; } -+ - --rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext --fi --{ $as_echo "$as_me:$LINENO: result: $ac_cv_member_struct_stat_st_mtim_tv_nsec" >&5 --$as_echo "$ac_cv_member_struct_stat_st_mtim_tv_nsec" >&6; } --if test "x$ac_cv_member_struct_stat_st_mtim_tv_nsec" = x""yes; then - - cat >>confdefs.h <<_ACEOF --#define HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC 1 -+#define SIZEOF_LONG $ac_cv_sizeof_long - _ACEOF - --# Linux, Solaris -- samba_cv_stat_hires=yes --fi - --{ $as_echo "$as_me:$LINENO: checking for struct stat.st_mtimensec" >&5 --$as_echo_n "checking for struct stat.st_mtimensec... " >&6; } --if test "${ac_cv_member_struct_stat_st_mtimensec+set}" = set; then -+# The cast to long int works around a bug in the HP C Compiler -+# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects -+# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. -+# This bug is HP SR number 8606223364. -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of long long" >&5 -+$as_echo_n "checking size of long long... " >&6; } -+if test "${ac_cv_sizeof_long_long+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. */ --$ac_includes_default --int --main () --{ --static struct stat ac_aggr; --if (ac_aggr.st_mtimensec) --return 0; -- ; -- 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_member_struct_stat_st_mtimensec=yes -+ if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (long long))" "ac_cv_sizeof_long_long" "$ac_includes_default"; then : -+ - else -- $as_echo "$as_me: failed program was:" >&5 --sed 's/^/| /' conftest.$ac_ext >&5 -+ if test "$ac_cv_type_long_long" = yes; then -+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -+{ as_fn_set_status 77 -+as_fn_error "cannot compute sizeof (long long) -+See \`config.log' for more details." "$LINENO" 5; }; } -+ else -+ ac_cv_sizeof_long_long=0 -+ fi -+fi - -- cat >conftest.$ac_ext <<_ACEOF --/* confdefs.h. */ --_ACEOF --cat confdefs.h >>conftest.$ac_ext --cat >>conftest.$ac_ext <<_ACEOF --/* end confdefs.h. */ --$ac_includes_default --int --main () --{ --static struct stat ac_aggr; --if (sizeof ac_aggr.st_mtimensec) --return 0; -- ; -- return 0; --} -+fi -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_long_long" >&5 -+$as_echo "$ac_cv_sizeof_long_long" >&6; } -+ -+ -+ -+cat >>confdefs.h <<_ACEOF -+#define SIZEOF_LONG_LONG $ac_cv_sizeof_long_long - _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_member_struct_stat_st_mtimensec=yes -+ -+ +# The cast to long int works around a bug in the HP C Compiler +# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects +# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. @@ -50831,7 +49848,6 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -sed 's/^/| /' conftest.$ac_ext >&5 + if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (short))" "ac_cv_sizeof_short" "$ac_includes_default"; then : -- ac_cv_member_struct_stat_st_mtimensec=no +else + if test "$ac_cv_type_short" = yes; then + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 @@ -50842,92 +49858,55 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure + else + ac_cv_sizeof_short=0 + fi - fi ++fi --rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_short" >&5 +$as_echo "$ac_cv_sizeof_short" >&6; } -+ --rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +-rm -rf conftest.dSYM +-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ +- conftest$ac_exeext conftest.$ac_ext +- { $as_echo "$as_me:$LINENO: result: $ac_cv_func_lstat64" >&5 +-$as_echo "$ac_cv_func_lstat64" >&6; } +- if test x$ac_cv_func_lstat64 = xyes ; then +- cat >>confdefs.h <<\_ACEOF +-#define HAVE_LSTAT64 Whether lstat64() is available +-_ACEOF + +- fi -fi --{ $as_echo "$as_me:$LINENO: result: $ac_cv_member_struct_stat_st_mtimensec" >&5 --$as_echo "$ac_cv_member_struct_stat_st_mtimensec" >&6; } --if test "x$ac_cv_member_struct_stat_st_mtimensec" = x""yes; then - cat >>confdefs.h <<_ACEOF --#define HAVE_STRUCT_STAT_ST_MTIMENSEC 1 +-if test x$ac_cv_func_fstat64 = xno ; then +- { $as_echo "$as_me:$LINENO: checking for fstat64 in " >&5 +-$as_echo_n "checking for fstat64 in ... " >&6; } +- cat >conftest.$ac_ext <<_ACEOF +-/* confdefs.h. */ ++cat >>confdefs.h <<_ACEOF +#define SIZEOF_SHORT $ac_cv_sizeof_short _ACEOF +-cat confdefs.h >>conftest.$ac_ext +-cat >>conftest.$ac_ext <<_ACEOF +-/* end confdefs.h. */ --# BSD, if defined _POSIX_SOURCE -- samba_cv_stat_hires=yes --fi - --{ $as_echo "$as_me:$LINENO: checking for struct stat.st_mtimespec.tv_nsec" >&5 --$as_echo_n "checking for struct stat.st_mtimespec.tv_nsec... " >&6; } --if test "${ac_cv_member_struct_stat_st_mtimespec_tv_nsec+set}" = set; then +-#if defined(HAVE_UNISTD_H) +-#include +-#endif +-#include ++ + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for an ANSI C-conforming const" >&5 +$as_echo_n "checking for an ANSI C-conforming const... " >&6; } +if test "${ac_cv_c_const+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 ++ $as_echo_n "(cached) " >&6 ++else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ --$ac_includes_default --int --main () --{ --static struct stat ac_aggr; --if (ac_aggr.st_mtimespec.tv_nsec) --return 0; -- ; -- 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_member_struct_stat_st_mtimespec_tv_nsec=yes --else -- $as_echo "$as_me: failed program was:" >&5 --sed 's/^/| /' conftest.$ac_ext >&5 ++/* end confdefs.h. */ -- cat >conftest.$ac_ext <<_ACEOF --/* confdefs.h. */ --_ACEOF --cat confdefs.h >>conftest.$ac_ext --cat >>conftest.$ac_ext <<_ACEOF --/* end confdefs.h. */ --$ac_includes_default int main () { --static struct stat ac_aggr; --if (sizeof ac_aggr.st_mtimespec.tv_nsec) --return 0; +-struct stat64 st64; exit(fstat64(0,&st64)); +/* FIXME: Include the comments suggested by Paul. */ +#ifndef __cplusplus + /* Ultrix mips cc rejects this. */ @@ -50982,15 +49961,15 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure return 0; } _ACEOF --rm -f conftest.$ac_objext --if { (ac_try="$ac_compile" +-rm -f conftest.$ac_objext conftest$ac_exeext +-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_compile") 2>conftest.er1 +- (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 @@ -50999,34 +49978,34 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err -- } && test -s conftest.$ac_objext; then -- ac_cv_member_struct_stat_st_mtimespec_tv_nsec=yes +- } && test -s conftest$ac_exeext && { +- test "$cross_compiling" = yes || +- $as_test_x conftest$ac_exeext +- }; then +- ac_cv_func_fstat64=yes +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_c_const=yes else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 -- -- ac_cv_member_struct_stat_st_mtimespec_tv_nsec=no + ac_cv_c_const=no - fi -- - rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi ++fi ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_const" >&5 +$as_echo "$ac_cv_c_const" >&6; } +if test $ac_cv_c_const = no; then -+ + +$as_echo "#define const /**/" >>confdefs.h --rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi --{ $as_echo "$as_me:$LINENO: result: $ac_cv_member_struct_stat_st_mtimespec_tv_nsec" >&5 --$as_echo "$ac_cv_member_struct_stat_st_mtimespec_tv_nsec" >&6; } --if test "x$ac_cv_member_struct_stat_st_mtimespec_tv_nsec" = x""yes; then --cat >>confdefs.h <<_ACEOF --#define HAVE_STRUCT_STAT_ST_MTIMESPEC_TV_NSEC 1 +-rm -rf conftest.dSYM +-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ +- conftest$ac_exeext conftest.$ac_ext +- { $as_echo "$as_me:$LINENO: result: $ac_cv_func_fstat64" >&5 +-$as_echo "$ac_cv_func_fstat64" >&6; } +- if test x$ac_cv_func_fstat64 = xyes ; then +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for inline" >&5 +$as_echo_n "checking for inline... " >&6; } +if test "${ac_cv_c_inline+set}" = set; then : @@ -51041,7 +50020,9 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure +static $ac_kw foo_t static_foo () {return 0; } +$ac_kw foo_t foo () {return 0; } +#endif -+ + +-cat >>confdefs.h <<\_ACEOF +-#define HAVE_FSTAT64 1 _ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_c_inline=$ac_kw @@ -51050,12 +50031,14 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure + test "$ac_cv_c_inline" != no && break +done --# BSD, if not defined _POSIX_SOURCE -- samba_cv_stat_hires=yes +- fi fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_inline" >&5 +$as_echo "$ac_cv_c_inline" >&6; } -+ + +-################################################# +-# Check whether struct stat has timestamps with sub-second resolution. +-# +case $ac_cv_c_inline in + inline | yes) ;; + *) @@ -51071,9 +50054,10 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure + ;; +esac --{ $as_echo "$as_me:$LINENO: checking for struct stat.st_mtime_n" >&5 --$as_echo_n "checking for struct stat.st_mtime_n... " >&6; } --if test "${ac_cv_member_struct_stat_st_mtime_n+set}" = set; then +-samba_cv_stat_hires=no +-{ $as_echo "$as_me:$LINENO: checking for struct stat.st_mtim.tv_nsec" >&5 +-$as_echo_n "checking for struct stat.st_mtim.tv_nsec... " >&6; } +-if test "${ac_cv_member_struct_stat_st_mtim_tv_nsec+set}" = set; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether byte ordering is bigendian" >&5 +$as_echo_n "checking whether byte ordering is bigendian... " >&6; } +if test "${ac_cv_c_bigendian+set}" = set; then : @@ -51130,7 +50114,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure main () { -static struct stat ac_aggr; --if (ac_aggr.st_mtime_n) +-if (ac_aggr.st_mtim.tv_nsec) -return 0; +#if ! (defined BYTE_ORDER && defined BIG_ENDIAN \ + && defined LITTLE_ENDIAN && BYTE_ORDER && BIG_ENDIAN \ @@ -51160,7 +50144,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then -- ac_cv_member_struct_stat_st_mtime_n=yes +- ac_cv_member_struct_stat_st_mtim_tv_nsec=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 @@ -51182,7 +50166,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure main () { -static struct stat ac_aggr; --if (sizeof ac_aggr.st_mtime_n) +-if (sizeof ac_aggr.st_mtim.tv_nsec) -return 0; +#if BYTE_ORDER != BIG_ENDIAN + not big endian @@ -51210,14 +50194,14 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then -- ac_cv_member_struct_stat_st_mtime_n=yes +- ac_cv_member_struct_stat_st_mtim_tv_nsec=yes +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_c_bigendian=yes else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -- ac_cv_member_struct_stat_st_mtime_n=no +- ac_cv_member_struct_stat_st_mtim_tv_nsec=no + ac_cv_c_bigendian=no fi - @@ -51226,21 +50210,21 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi --{ $as_echo "$as_me:$LINENO: result: $ac_cv_member_struct_stat_st_mtime_n" >&5 --$as_echo "$ac_cv_member_struct_stat_st_mtime_n" >&6; } --if test "x$ac_cv_member_struct_stat_st_mtime_n" = x""yes; then +-{ $as_echo "$as_me:$LINENO: result: $ac_cv_member_struct_stat_st_mtim_tv_nsec" >&5 +-$as_echo "$ac_cv_member_struct_stat_st_mtim_tv_nsec" >&6; } +-if test "x$ac_cv_member_struct_stat_st_mtim_tv_nsec" = x""yes; then - -cat >>confdefs.h <<_ACEOF --#define HAVE_STRUCT_STAT_ST_MTIME_N 1 +-#define HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC 1 -_ACEOF - --# AIX +-# Linux, Solaris - samba_cv_stat_hires=yes -fi - --{ $as_echo "$as_me:$LINENO: checking for struct stat.st_umtime" >&5 --$as_echo_n "checking for struct stat.st_umtime... " >&6; } --if test "${ac_cv_member_struct_stat_st_umtime+set}" = set; then +-{ $as_echo "$as_me:$LINENO: checking for struct stat.st_mtimensec" >&5 +-$as_echo_n "checking for struct stat.st_mtimensec... " >&6; } +-if test "${ac_cv_member_struct_stat_st_mtimensec+set}" = set; then - $as_echo_n "(cached) " >&6 -else - cat >conftest.$ac_ext <<_ACEOF @@ -51260,7 +50244,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure main () { -static struct stat ac_aggr; --if (ac_aggr.st_umtime) +-if (ac_aggr.st_mtimensec) -return 0; +#if ! (defined _LITTLE_ENDIAN || defined _BIG_ENDIAN) + bogus endian macros @@ -51288,7 +50272,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then -- ac_cv_member_struct_stat_st_umtime=yes +- ac_cv_member_struct_stat_st_mtimensec=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 @@ -51309,7 +50293,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure main () { -static struct stat ac_aggr; --if (sizeof ac_aggr.st_umtime) +-if (sizeof ac_aggr.st_mtimensec) -return 0; +#ifndef _BIG_ENDIAN + not big endian @@ -51337,14 +50321,14 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then -- ac_cv_member_struct_stat_st_umtime=yes +- ac_cv_member_struct_stat_st_mtimensec=yes +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_c_bigendian=yes else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -- ac_cv_member_struct_stat_st_umtime=no +- ac_cv_member_struct_stat_st_mtimensec=no + ac_cv_c_bigendian=no fi - @@ -51353,27 +50337,36 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi --{ $as_echo "$as_me:$LINENO: result: $ac_cv_member_struct_stat_st_umtime" >&5 --$as_echo "$ac_cv_member_struct_stat_st_umtime" >&6; } --if test "x$ac_cv_member_struct_stat_st_umtime" = x""yes; then +-{ $as_echo "$as_me:$LINENO: result: $ac_cv_member_struct_stat_st_mtimensec" >&5 +-$as_echo "$ac_cv_member_struct_stat_st_mtimensec" >&6; } +-if test "x$ac_cv_member_struct_stat_st_mtimensec" = x""yes; then - -cat >>confdefs.h <<_ACEOF --#define HAVE_STRUCT_STAT_ST_UMTIME 1 +-#define HAVE_STRUCT_STAT_ST_MTIMENSEC 1 -_ACEOF - --# Tru64 +-# BSD, if defined _POSIX_SOURCE - samba_cv_stat_hires=yes -fi - -- --if test x"$samba_cv_stat_hires" = x"yes" ; then +-{ $as_echo "$as_me:$LINENO: checking for struct stat.st_mtimespec.tv_nsec" >&5 +-$as_echo_n "checking for struct stat.st_mtimespec.tv_nsec... " >&6; } +-if test "${ac_cv_member_struct_stat_st_mtimespec_tv_nsec+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 + fi + if test $ac_cv_c_bigendian = unknown; then + # Compile a test program. + if test "$cross_compiling" = yes; then : + # Try to guess by grepping values from an object file. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext -+/* end confdefs.h. */ + /* end confdefs.h. */ +-$ac_includes_default +short int ascii_mm[] = + { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 }; + short int ascii_ii[] = @@ -51389,18 +50382,37 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure + return ebcdic_mm[i] + ebcdic_ii[i]; + } + extern int foo; - --cat >>confdefs.h <<\_ACEOF --#define HAVE_STAT_HIRES_TIMESTAMPS 1 -+int -+main () -+{ ++ + int + main () + { +-static struct stat ac_aggr; +-if (ac_aggr.st_mtimespec.tv_nsec) +-return 0; +return use_ascii (foo) == use_ebcdic (foo); -+ ; -+ return 0; -+} + ; + 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_member_struct_stat_st_mtimespec_tv_nsec=yes +if ac_fn_c_try_compile "$LINENO"; then : + if grep BIGenDianSyS conftest.$ac_objext >/dev/null; then + ac_cv_c_bigendian=yes @@ -51413,16 +50425,13 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure + ac_cv_c_bigendian=unknown + fi + fi - fi -- --# recent FreeBSD, NetBSD have creation timestamps called birthtime: --{ $as_echo "$as_me:$LINENO: checking for struct stat.st_birthtimespec.tv_nsec" >&5 --$as_echo_n "checking for struct stat.st_birthtimespec.tv_nsec... " >&6; } --if test "${ac_cv_member_struct_stat_st_birthtimespec_tv_nsec+set}" = set; then -- $as_echo_n "(cached) " >&6 ++fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext else -- cat >conftest.$ac_ext <<_ACEOF +- $as_echo "$as_me: failed program was:" >&5 +-sed 's/^/| /' conftest.$ac_ext >&5 +- +- cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext @@ -51434,7 +50443,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure main () { -static struct stat ac_aggr; --if (ac_aggr.st_birthtimespec.tv_nsec) +-if (sizeof ac_aggr.st_mtimespec.tv_nsec) -return 0; + + /* Are we little or big endian? From Harbison&Steele. */ @@ -51468,25 +50477,28 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then -- ac_cv_member_struct_stat_st_birthtimespec_tv_nsec=yes +- ac_cv_member_struct_stat_st_mtimespec_tv_nsec=yes +if ac_fn_c_try_run "$LINENO"; then : + ac_cv_c_bigendian=no else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 +- +- ac_cv_member_struct_stat_st_mtimespec_tv_nsec=no + ac_cv_c_bigendian=yes -+fi + fi +- +-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext -+fi + fi -- cat >conftest.$ac_ext <<_ACEOF --/* confdefs.h. */ --_ACEOF --cat confdefs.h >>conftest.$ac_ext --cat >>conftest.$ac_ext <<_ACEOF +-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + fi -+fi + fi +-{ $as_echo "$as_me:$LINENO: result: $ac_cv_member_struct_stat_st_mtimespec_tv_nsec" >&5 +-$as_echo "$ac_cv_member_struct_stat_st_mtimespec_tv_nsec" >&6; } +-if test "x$ac_cv_member_struct_stat_st_mtimespec_tv_nsec" = x""yes; then +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_bigendian" >&5 +$as_echo "$ac_cv_c_bigendian" >&6; } + case $ac_cv_c_bigendian in #( @@ -51496,20 +50508,34 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure + no) + ;; #( + universal) -+ + +-cat >>confdefs.h <<_ACEOF +-#define HAVE_STRUCT_STAT_ST_MTIMESPEC_TV_NSEC 1 +-_ACEOF +$as_echo "#define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h -+ + +-# BSD, if not defined _POSIX_SOURCE +- samba_cv_stat_hires=yes +-fi + ;; #( + *) + as_fn_error "unknown endianness + presetting ac_cv_c_bigendian=no (or yes) will help" "$LINENO" 5 ;; + esac -+ + +-{ $as_echo "$as_me:$LINENO: checking for struct stat.st_mtime_n" >&5 +-$as_echo_n "checking for struct stat.st_mtime_n... " >&6; } +-if test "${ac_cv_member_struct_stat_st_mtime_n+set}" = set; then +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether char is unsigned" >&5 +$as_echo_n "checking whether char is unsigned... " >&6; } +if test "${ac_cv_c_char_unsigned+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else + $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 + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default @@ -51517,7 +50543,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure main () { -static struct stat ac_aggr; --if (sizeof ac_aggr.st_birthtimespec.tv_nsec) +-if (ac_aggr.st_mtime_n) -return 0; +static int test_array [1 - 2 * !(((char) -1) < 0)]; +test_array [0] = 0 @@ -51544,50 +50570,34 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then -- ac_cv_member_struct_stat_st_birthtimespec_tv_nsec=yes +- ac_cv_member_struct_stat_st_mtime_n=yes +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_c_char_unsigned=no else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 -- -- ac_cv_member_struct_stat_st_birthtimespec_tv_nsec=no + ac_cv_c_char_unsigned=yes - fi -- - rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi ++fi ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_char_unsigned" >&5 +$as_echo "$ac_cv_c_char_unsigned" >&6; } +if test $ac_cv_c_char_unsigned = yes && test "$GCC" != yes; then + $as_echo "#define __CHAR_UNSIGNED__ 1" >>confdefs.h --rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi --{ $as_echo "$as_me:$LINENO: result: $ac_cv_member_struct_stat_st_birthtimespec_tv_nsec" >&5 --$as_echo "$ac_cv_member_struct_stat_st_birthtimespec_tv_nsec" >&6; } --if test "x$ac_cv_member_struct_stat_st_birthtimespec_tv_nsec" = x""yes; then -- --cat >>confdefs.h <<_ACEOF --#define HAVE_STRUCT_STAT_ST_BIRTHTIMESPEC_TV_NSEC 1 --_ACEOF -- - --fi - --{ $as_echo "$as_me:$LINENO: checking for struct stat.st_birthtime" >&5 --$as_echo_n "checking for struct stat.st_birthtime... " >&6; } --if test "${ac_cv_member_struct_stat_st_birthtime+set}" = set; then -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking return type of signal handlers" >&5 -+$as_echo_n "checking return type of signal handlers... " >&6; } -+if test "${ac_cv_type_signal+set}" = set; then : - $as_echo_n "(cached) " >&6 - else -- cat >conftest.$ac_ext <<_ACEOF +- cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF ++fi ++ ++ ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking return type of signal handlers" >&5 ++$as_echo_n "checking return type of signal handlers... " >&6; } ++if test "${ac_cv_type_signal+set}" = set; then : ++ $as_echo_n "(cached) " >&6 ++else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -$ac_includes_default @@ -51598,7 +50608,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure main () { -static struct stat ac_aggr; --if (ac_aggr.st_birthtime) +-if (sizeof ac_aggr.st_mtime_n) -return 0; +return *(signal (0, 0)) (0) == 1; ; @@ -51623,7 +50633,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then -- ac_cv_member_struct_stat_st_birthtime=yes +- ac_cv_member_struct_stat_st_mtime_n=yes +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_type_signal=int else @@ -51635,14 +50645,10 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_signal" >&5 +$as_echo "$ac_cv_type_signal" >&6; } - -- cat >conftest.$ac_ext <<_ACEOF --/* confdefs.h. */ ++ +cat >>confdefs.h <<_ACEOF +#define RETSIGTYPE $ac_cv_type_signal - _ACEOF --cat confdefs.h >>conftest.$ac_ext --cat >>conftest.$ac_ext <<_ACEOF ++_ACEOF + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for uid_t in sys/types.h" >&5 @@ -51651,47 +50657,15 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ --$ac_includes_default --int --main () --{ --static struct stat ac_aggr; --if (sizeof ac_aggr.st_birthtime) --return 0; -- ; -- return 0; --} ++/* end confdefs.h. */ +#include -+ - _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_member_struct_stat_st_birthtime=yes + +- ac_cv_member_struct_stat_st_mtime_n=no ++_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "uid_t" >/dev/null 2>&1; then : + ac_cv_type_uid_t=yes - else -- $as_echo "$as_me: failed program was:" >&5 --sed 's/^/| /' conftest.$ac_ext >&5 -- -- ac_cv_member_struct_stat_st_birthtime=no ++else + ac_cv_type_uid_t=no fi +rm -f conftest* @@ -51709,9 +50683,9 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi --{ $as_echo "$as_me:$LINENO: result: $ac_cv_member_struct_stat_st_birthtime" >&5 --$as_echo "$ac_cv_member_struct_stat_st_birthtime" >&6; } --if test "x$ac_cv_member_struct_stat_st_birthtime" = x""yes; then +-{ $as_echo "$as_me:$LINENO: result: $ac_cv_member_struct_stat_st_mtime_n" >&5 +-$as_echo "$ac_cv_member_struct_stat_st_mtime_n" >&6; } +-if test "x$ac_cv_member_struct_stat_st_mtime_n" = x""yes; then + +ac_fn_c_check_type "$LINENO" "mode_t" "ac_cv_type_mode_t" "$ac_includes_default" +if test "x$ac_cv_type_mode_t" = x""yes; then : @@ -51719,23 +50693,28 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure +else cat >>confdefs.h <<_ACEOF --#define HAVE_STRUCT_STAT_ST_BIRTHTIME 1 +-#define HAVE_STRUCT_STAT_ST_MTIME_N 1 +#define mode_t int _ACEOF --{ $as_echo "$as_me:$LINENO: checking for struct stat.st_birthtimensec" >&5 --$as_echo_n "checking for struct stat.st_birthtimensec... " >&6; } --if test "${ac_cv_member_struct_stat_st_birthtimensec+set}" = set; then +-# AIX +- samba_cv_stat_hires=yes + fi + +-{ $as_echo "$as_me:$LINENO: checking for struct stat.st_umtime" >&5 +-$as_echo_n "checking for struct stat.st_umtime... " >&6; } +-if test "${ac_cv_member_struct_stat_st_umtime+set}" = set; then - $as_echo_n "(cached) " >&6 -+fi -+ +ac_fn_c_check_type "$LINENO" "off_t" "ac_cv_type_off_t" "$ac_includes_default" +if test "x$ac_cv_type_off_t" = x""yes; then : + else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ --_ACEOF ++ ++cat >>confdefs.h <<_ACEOF ++#define off_t long int + _ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ @@ -51744,14 +50723,21 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -main () -{ -static struct stat ac_aggr; --if (ac_aggr.st_birthtimensec) +-if (ac_aggr.st_umtime) -return 0; - ; - return 0; -} + ++fi ++ ++ac_fn_c_check_type "$LINENO" "size_t" "ac_cv_type_size_t" "$ac_includes_default" ++if test "x$ac_cv_type_size_t" = x""yes; then : ++ ++else ++ +cat >>confdefs.h <<_ACEOF -+#define off_t long int ++#define size_t unsigned int _ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" @@ -51771,12 +50757,12 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then -- ac_cv_member_struct_stat_st_birthtimensec=yes +- ac_cv_member_struct_stat_st_umtime=yes + +fi + -+ac_fn_c_check_type "$LINENO" "size_t" "ac_cv_type_size_t" "$ac_includes_default" -+if test "x$ac_cv_type_size_t" = x""yes; then : ++ac_fn_c_check_type "$LINENO" "pid_t" "ac_cv_type_pid_t" "$ac_includes_default" ++if test "x$ac_cv_type_pid_t" = x""yes; then : + else - $as_echo "$as_me: failed program was:" >&5 @@ -51784,6 +50770,553 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ ++cat >>confdefs.h <<_ACEOF ++#define pid_t int ++_ACEOF ++ ++fi ++ ++ac_fn_c_check_member "$LINENO" "struct stat" "st_rdev" "ac_cv_member_struct_stat_st_rdev" "$ac_includes_default" ++if test "x$ac_cv_member_struct_stat_st_rdev" = x""yes; then : ++ ++cat >>confdefs.h <<_ACEOF ++#define HAVE_STRUCT_STAT_ST_RDEV 1 + _ACEOF +-cat confdefs.h >>conftest.$ac_ext +-cat >>conftest.$ac_ext <<_ACEOF ++ ++ ++$as_echo "#define HAVE_ST_RDEV 1" >>confdefs.h ++ ++fi ++ ++ ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for d_off in dirent" >&5 ++$as_echo_n "checking for d_off in dirent... " >&6; } ++if test "${ac_cv_dirent_d_off+set}" = set; then : ++ $as_echo_n "(cached) " >&6 ++else ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ +-$ac_includes_default ++ ++#include ++#include ++#include + int + main () + { +-static struct stat ac_aggr; +-if (sizeof ac_aggr.st_umtime) +-return 0; ++struct dirent d; d.d_off; + ; + 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_member_struct_stat_st_umtime=yes ++if ac_fn_c_try_compile "$LINENO"; then : ++ ac_cv_dirent_d_off=yes + else +- $as_echo "$as_me: failed program was:" >&5 +-sed 's/^/| /' conftest.$ac_ext >&5 +- +- ac_cv_member_struct_stat_st_umtime=no ++ ac_cv_dirent_d_off=no + fi +- + rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_dirent_d_off" >&5 ++$as_echo "$ac_cv_dirent_d_off" >&6; } ++if test $ac_cv_dirent_d_off = yes; then ++ ++$as_echo "#define HAVE_DIRENT_D_OFF 1" >>confdefs.h + +-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + fi +-{ $as_echo "$as_me:$LINENO: result: $ac_cv_member_struct_stat_st_umtime" >&5 +-$as_echo "$ac_cv_member_struct_stat_st_umtime" >&6; } +-if test "x$ac_cv_member_struct_stat_st_umtime" = x""yes; then ++ ++ac_fn_c_check_type "$LINENO" "ssize_t" "ac_cv_type_ssize_t" "$ac_includes_default" ++if test "x$ac_cv_type_ssize_t" = x""yes; then : ++ ++else + + cat >>confdefs.h <<_ACEOF +-#define HAVE_STRUCT_STAT_ST_UMTIME 1 ++#define ssize_t int + _ACEOF + +-# Tru64 +- samba_cv_stat_hires=yes + fi + ++ac_fn_c_check_type "$LINENO" "wchar_t" "ac_cv_type_wchar_t" "$ac_includes_default" ++if test "x$ac_cv_type_wchar_t" = x""yes; then : + +-if test x"$samba_cv_stat_hires" = x"yes" ; then ++else ++ ++cat >>confdefs.h <<_ACEOF ++#define wchar_t unsigned short ++_ACEOF ++ ++fi ++ ++ ++############################################ ++# for cups support we need libcups, and a handful of header files ++ ++# Check whether --enable-cups was given. ++if test "${enable_cups+set}" = set; then : ++ enableval=$enable_cups; ++fi ++ ++ ++if test x$enable_cups != xno; then ++ # Extract the first word of "cups-config", so it can be a program name with args. ++set dummy cups-config; ac_word=$2 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if test "${ac_cv_path_CUPS_CONFIG+set}" = set; then : ++ $as_echo_n "(cached) " >&6 ++else ++ case $CUPS_CONFIG in ++ [\\/]* | ?:[\\/]*) ++ ac_cv_path_CUPS_CONFIG="$CUPS_CONFIG" # Let the user override the test with a path. ++ ;; ++ *) ++ 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_path_CUPS_CONFIG="$as_dir/$ac_word$ac_exec_ext" ++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++ done ++IFS=$as_save_IFS ++ ++ ;; ++esac ++fi ++CUPS_CONFIG=$ac_cv_path_CUPS_CONFIG ++if test -n "$CUPS_CONFIG"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CUPS_CONFIG" >&5 ++$as_echo "$CUPS_CONFIG" >&6; } ++else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++ ++ ++ if test "x$CUPS_CONFIG" != x; then + +-cat >>confdefs.h <<\_ACEOF +-#define HAVE_STAT_HIRES_TIMESTAMPS 1 ++ ac_save_CFLAGS=$CFLAGS ++ ac_save_LDFLAGS=$LDFLAGS ++ ac_save_PRINT_LIBS=$PRINT_LIBS ++ CFLAGS="$CFLAGS `$CUPS_CONFIG --cflags`" ++ LDFLAGS="$LDFLAGS `$CUPS_CONFIG --ldflags`" ++ PRINT_LIBS="$PRINT_LIBS -lcups" ++ for ac_header in cups/cups.h cups/language.h ++do : ++ as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ++ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" ++eval as_val=\$$as_ac_Header ++ if test "x$as_val" = x""yes; then : ++ cat >>confdefs.h <<_ACEOF ++#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 + _ACEOF + +-fi ++fi ++ ++done ++ ++ if test x"$ac_cv_header_cups_cups_h" = xyes -a \ ++ x"$ac_cv_header_cups_language_h" = xyes; then ++ ++$as_echo "#define HAVE_CUPS 1" >>confdefs.h ++ ++ samba_cv_HAVE_CUPS=yes ++ ++ ++ac_check_lib_ext_save_LIBS=$LIBS ++LIBS="-lcups $PRINT_LIBS $LIBS" ++ ++ + +-# recent FreeBSD, NetBSD have creation timestamps called birthtime: +-{ $as_echo "$as_me:$LINENO: checking for struct stat.st_birthtimespec.tv_nsec" >&5 +-$as_echo_n "checking for struct stat.st_birthtimespec.tv_nsec... " >&6; } +-if test "${ac_cv_member_struct_stat_st_birthtimespec_tv_nsec+set}" = set; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for httpConnectEncrypt in -lcups" >&5 ++$as_echo_n "checking for httpConnectEncrypt in -lcups... " >&6; } ++if test "${ac_cv_lib_ext_cups_httpConnectEncrypt+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 ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ +-$ac_includes_default ++ ++/* 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 ++char httpConnectEncrypt (); + int + main () + { +-static struct stat ac_aggr; +-if (ac_aggr.st_birthtimespec.tv_nsec) +-return 0; ++return httpConnectEncrypt (); + ; + 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_member_struct_stat_st_birthtimespec_tv_nsec=yes ++if ac_fn_c_try_link "$LINENO"; then : ++ ac_cv_lib_ext_cups_httpConnectEncrypt=yes; ++ ac_cv_lib_ext_cups=yes + else +- $as_echo "$as_me: failed program was:" >&5 +-sed 's/^/| /' conftest.$ac_ext >&5 ++ ac_cv_lib_ext_cups_httpConnectEncrypt=no; ++ ac_cv_lib_ext_cups=no ++fi ++rm -f core conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + +- cat >conftest.$ac_ext <<_ACEOF +-/* confdefs.h. */ ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ext_cups_httpConnectEncrypt" >&5 ++$as_echo "$ac_cv_lib_ext_cups_httpConnectEncrypt" >&6; } ++ if test $ac_cv_lib_ext_cups_httpConnectEncrypt = yes; then : ++ cat >>confdefs.h <<_ACEOF ++#define HAVE_HTTPCONNECTENCRYPT 1 + _ACEOF +-cat confdefs.h >>conftest.$ac_ext +-cat >>conftest.$ac_ext <<_ACEOF +-/* end confdefs.h. */ +-$ac_includes_default +-int +-main () +-{ +-static struct stat ac_aggr; +-if (sizeof ac_aggr.st_birthtimespec.tv_nsec) +-return 0; +- ; +- return 0; +-} ++ ++fi ++LIBS=$ac_check_lib_ext_save_LIBS ++ ++if test $ac_cv_lib_ext_cups = yes; then : ++ cat >>confdefs.h <<_ACEOF ++#define HAVE_LIBCUPS 1 + _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_member_struct_stat_st_birthtimespec_tv_nsec=yes +-else +- $as_echo "$as_me: failed program was:" >&5 +-sed 's/^/| /' conftest.$ac_ext >&5 + +- ac_cv_member_struct_stat_st_birthtimespec_tv_nsec=no ++ case "$PRINT_LIBS" in ++ *-lcups*) ++ ;; ++ *) ++ PRINT_LIBS="-lcups $PRINT_LIBS" ++ ;; ++ esac ++ ++ + fi ++ else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cups-config around but cups-devel not installed" >&5 ++$as_echo "$as_me: WARNING: cups-config around but cups-devel not installed" >&2;} ++ CFLAGS=$ac_save_CFLAGS ++ LDFLAGS=$ac_save_LDFLAGS ++ PRINT_LIBS=$ac_save_PRINT_LIBS ++ fi + +-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++ elif test x"$enable_cups" = x"yes"; then ++ as_fn_error "Cups support required but cups-config not located. Make sure cups-devel related files are installed." "$LINENO" 5 ++ fi + fi + +-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++# Check whether --enable-iprint was given. ++if test "${enable_iprint+set}" = set; then : ++ enableval=$enable_iprint; + fi +-{ $as_echo "$as_me:$LINENO: result: $ac_cv_member_struct_stat_st_birthtimespec_tv_nsec" >&5 +-$as_echo "$ac_cv_member_struct_stat_st_birthtimespec_tv_nsec" >&6; } +-if test "x$ac_cv_member_struct_stat_st_birthtimespec_tv_nsec" = x""yes; then + +-cat >>confdefs.h <<_ACEOF +-#define HAVE_STRUCT_STAT_ST_BIRTHTIMESPEC_TV_NSEC 1 +-_ACEOF + ++if test x$enable_iprint != xno; then ++ if test x"$samba_cv_HAVE_CUPS" = xyes; then ++ ++$as_echo "#define HAVE_IPRINT 1" >>confdefs.h + ++ elif test x"$enable_iprint" = x"yes"; then ++ as_fn_error "iPrint support required but cups not enabled. Make sure cups-devel related files are installed and that cups is enabled." "$LINENO" 5 ++ fi + fi + +-{ $as_echo "$as_me:$LINENO: checking for struct stat.st_birthtime" >&5 +-$as_echo_n "checking for struct stat.st_birthtime... " >&6; } +-if test "${ac_cv_member_struct_stat_st_birthtime+set}" = set; then ++############################################ ++# check if the compiler will optimize out function calls ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the compiler will optimize out function calls" >&5 ++$as_echo_n "checking if the compiler will optimize out function calls... " >&6; } ++if test "${samba_cv_optimize_out_funcation_calls+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 ++ ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ +-$ac_includes_default ++ ++#include + int + main () + { +-static struct stat ac_aggr; +-if (ac_aggr.st_birthtime) +-return 0; ++ ++ if (0) { ++ this_function_does_not_exist(); ++ } else { ++ return 1; ++ } ++ ++ + ; + 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_member_struct_stat_st_birthtime=yes ++if ac_fn_c_try_link "$LINENO"; then : ++ samba_cv_optimize_out_funcation_calls=yes + else +- $as_echo "$as_me: failed program was:" >&5 +-sed 's/^/| /' conftest.$ac_ext >&5 ++ samba_cv_optimize_out_funcation_calls=no ++fi ++rm -f core conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $samba_cv_optimize_out_funcation_calls" >&5 ++$as_echo "$samba_cv_optimize_out_funcation_calls" >&6; } ++if test x"$samba_cv_optimize_out_funcation_calls" = x"yes"; then + +- cat >conftest.$ac_ext <<_ACEOF +-/* confdefs.h. */ +-_ACEOF +-cat confdefs.h >>conftest.$ac_ext +-cat >>conftest.$ac_ext <<_ACEOF ++$as_echo "#define HAVE_COMPILER_WILL_OPTIMIZE_OUT_FNS 1" >>confdefs.h ++ ++fi ++ ++############################################# ++# check for fd passing struct via msg_control ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for fd passing via msg_control" >&5 ++$as_echo_n "checking for fd passing via msg_control... " >&6; } ++if test "${samba_cv_msghdr_msg_control+set}" = set; then : ++ $as_echo_n "(cached) " >&6 ++else ++ ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ +-$ac_includes_default ++ ++#include ++#include ++#include ++#include ++#include + int + main () + { +-static struct stat ac_aggr; +-if (sizeof ac_aggr.st_birthtime) +-return 0; ++ ++ struct msghdr msg; ++ union { ++ struct cmsghdr cm; ++ char control[CMSG_SPACE(sizeof(int))]; ++ } control_un; ++ msg.msg_control = control_un.control; ++ msg.msg_controllen = sizeof(control_un.control); ++ + ; + 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_member_struct_stat_st_birthtime=yes ++if ac_fn_c_try_compile "$LINENO"; then : ++ samba_cv_msghdr_msg_control=yes + else +- $as_echo "$as_me: failed program was:" >&5 +-sed 's/^/| /' conftest.$ac_ext >&5 +- +- ac_cv_member_struct_stat_st_birthtime=no ++ samba_cv_msghdr_msg_control=no + fi +- + rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $samba_cv_msghdr_msg_control" >&5 ++$as_echo "$samba_cv_msghdr_msg_control" >&6; } ++if test x"$samba_cv_msghdr_msg_control" = x"yes"; then + +-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +-fi +-{ $as_echo "$as_me:$LINENO: result: $ac_cv_member_struct_stat_st_birthtime" >&5 +-$as_echo "$ac_cv_member_struct_stat_st_birthtime" >&6; } +-if test "x$ac_cv_member_struct_stat_st_birthtime" = x""yes; then ++$as_echo "#define HAVE_MSGHDR_MSG_CONTROL 1" >>confdefs.h + +-cat >>confdefs.h <<_ACEOF +-#define HAVE_STRUCT_STAT_ST_BIRTHTIME 1 +-_ACEOF ++fi + +-{ $as_echo "$as_me:$LINENO: checking for struct stat.st_birthtimensec" >&5 +-$as_echo_n "checking for struct stat.st_birthtimensec... " >&6; } +-if test "${ac_cv_member_struct_stat_st_birthtimensec+set}" = set; then ++############################################# ++# check for fd passing struct via msg_acctrights ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for fd passing via msg_acctrights" >&5 ++$as_echo_n "checking for fd passing via msg_acctrights... " >&6; } ++if test "${samba_cv_msghdr_msg_acctrights+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 @@ -51793,14 +51326,12 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -main () -{ -static struct stat ac_aggr; --if (sizeof ac_aggr.st_birthtimensec) +-if (ac_aggr.st_birthtimensec) -return 0; - ; - return 0; -} -+cat >>confdefs.h <<_ACEOF -+#define size_t unsigned int - _ACEOF +-_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in @@ -51824,63 +51355,123 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 +- cat >conftest.$ac_ext <<_ACEOF +-/* confdefs.h. */ +-_ACEOF +-cat confdefs.h >>conftest.$ac_ext +-cat >>conftest.$ac_ext <<_ACEOF ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ +-$ac_includes_default ++ ++#include ++#include ++#include ++#include ++#include + int + main () + { +-static struct stat ac_aggr; +-if (sizeof ac_aggr.st_birthtimensec) +-return 0; ++ ++ struct msghdr msg; ++ int fd; ++ msg.msg_acctrights = (caddr_t) &fd; ++ msg.msg_acctrightslen = sizeof(fd); ++ + ; + 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_member_struct_stat_st_birthtimensec=yes ++if ac_fn_c_try_compile "$LINENO"; then : ++ samba_cv_msghdr_msg_acctrights=yes + else +- $as_echo "$as_me: failed program was:" >&5 +-sed 's/^/| /' conftest.$ac_ext >&5 +- - ac_cv_member_struct_stat_st_birthtimensec=no ++ samba_cv_msghdr_msg_acctrights=no fi - --rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext --fi -+ac_fn_c_check_type "$LINENO" "pid_t" "ac_cv_type_pid_t" "$ac_includes_default" -+if test "x$ac_cv_type_pid_t" = x""yes; then : +- + rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $samba_cv_msghdr_msg_acctrights" >&5 ++$as_echo "$samba_cv_msghdr_msg_acctrights" >&6; } ++if test x"$samba_cv_msghdr_msg_acctrights" = x"yes"; then + -+else -+ -+cat >>confdefs.h <<_ACEOF -+#define pid_t int -+_ACEOF ++$as_echo "#define HAVE_MSGHDR_MSG_ACCTRIGHTS 1" >>confdefs.h -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_member_struct_stat_st_birthtimensec" >&5 -$as_echo "$ac_cv_member_struct_stat_st_birthtimensec" >&6; } -if test "x$ac_cv_member_struct_stat_st_birthtimensec" = x""yes; then -+ -+ac_fn_c_check_member "$LINENO" "struct stat" "st_rdev" "ac_cv_member_struct_stat_st_rdev" "$ac_includes_default" -+if test "x$ac_cv_member_struct_stat_st_rdev" = x""yes; then : - cat >>confdefs.h <<_ACEOF +-cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_STAT_ST_BIRTHTIMENSEC 1 -+#define HAVE_STRUCT_STAT_ST_RDEV 1 ++for ac_func in dirfd ++do : ++ ac_fn_c_check_func "$LINENO" "dirfd" "ac_cv_func_dirfd" ++if test "x$ac_cv_func_dirfd" = x""yes; then : ++ cat >>confdefs.h <<_ACEOF ++#define HAVE_DIRFD 1 _ACEOF +- + fi ++done --fi -+$as_echo "#define HAVE_ST_RDEV 1" >>confdefs.h - ++if test x"$ac_cv_func_dirfd" = x"yes"; then ++ default_shared_modules="$default_shared_modules vfs_syncops vfs_dirsort" fi - +- - -{ $as_echo "$as_me:$LINENO: checking whether there is DOS flags support in the stat struct" >&5 -$as_echo_n "checking whether there is DOS flags support in the stat struct... " >&6; } -if test "${samba_cv_stat_dos_flags+set}" = set; then -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for d_off in dirent" >&5 -+$as_echo_n "checking for d_off in dirent... " >&6; } -+if test "${ac_cv_dirent_d_off+set}" = set; then : ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for struct sigevent type" >&5 ++$as_echo_n "checking for struct sigevent type... " >&6; } ++if test "${samba_cv_struct_sigevent+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 -+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#include + -+#include +#include -+#include ++#if STDC_HEADERS ++#include ++#include ++#endif ++#include int main () { @@ -51892,7 +51483,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - int i = UF_DOS_NOINDEX; - int f = UF_DOS_FLAGS; - -+struct dirent d; d.d_off; ++struct sigevent s; ; return 0; } @@ -51917,753 +51508,72 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - } && test -s conftest.$ac_objext; then - samba_cv_stat_dos_flags=yes +if ac_fn_c_try_compile "$LINENO"; then : -+ ac_cv_dirent_d_off=yes - else -- $as_echo "$as_me: failed program was:" >&5 --sed 's/^/| /' conftest.$ac_ext >&5 -+ ac_cv_dirent_d_off=no -+fi -+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -+fi -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_dirent_d_off" >&5 -+$as_echo "$ac_cv_dirent_d_off" >&6; } -+if test $ac_cv_dirent_d_off = yes; then -+ -+$as_echo "#define HAVE_DIRENT_D_OFF 1" >>confdefs.h - -- samba_cv_stat_dos_flags=no - fi - --rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -+ac_fn_c_check_type "$LINENO" "ssize_t" "ac_cv_type_ssize_t" "$ac_includes_default" -+if test "x$ac_cv_type_ssize_t" = x""yes; then : -+ -+else -+ -+cat >>confdefs.h <<_ACEOF -+#define ssize_t int -+_ACEOF - - fi --{ $as_echo "$as_me:$LINENO: result: $samba_cv_stat_dos_flags" >&5 --$as_echo "$samba_cv_stat_dos_flags" >&6; } - --if test x"$samba_cv_stat_dos_flags" = x"yes" ; then -+ac_fn_c_check_type "$LINENO" "wchar_t" "ac_cv_type_wchar_t" "$ac_includes_default" -+if test "x$ac_cv_type_wchar_t" = x""yes; then : - --cat >>confdefs.h <<\_ACEOF --#define HAVE_STAT_DOS_FLAGS 1 -+else -+ -+cat >>confdefs.h <<_ACEOF -+#define wchar_t unsigned short - _ACEOF - - fi - --##################################### --# needed for SRV lookups - --{ $as_echo "$as_me:$LINENO: checking for dn_expand in -lresolv" >&5 --$as_echo_n "checking for dn_expand in -lresolv... " >&6; } --if test "${ac_cv_lib_resolv_dn_expand+set}" = set; then -+############################################ -+# for cups support we need libcups, and a handful of header files -+ -+# Check whether --enable-cups was given. -+if test "${enable_cups+set}" = set; then : -+ enableval=$enable_cups; -+fi -+ -+ -+if test x$enable_cups != xno; then -+ # Extract the first word of "cups-config", so it can be a program name with args. -+set dummy cups-config; ac_word=$2 -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -+$as_echo_n "checking for $ac_word... " >&6; } -+if test "${ac_cv_path_CUPS_CONFIG+set}" = set; then : - $as_echo_n "(cached) " >&6 - else -- ac_check_lib_save_LIBS=$LIBS --LIBS="-lresolv $LIBS" --cat >conftest.$ac_ext <<_ACEOF --/* confdefs.h. */ --_ACEOF --cat confdefs.h >>conftest.$ac_ext --cat >>conftest.$ac_ext <<_ACEOF --/* end confdefs.h. */ -+ case $CUPS_CONFIG in -+ [\\/]* | ?:[\\/]*) -+ ac_cv_path_CUPS_CONFIG="$CUPS_CONFIG" # Let the user override the test with a path. -+ ;; -+ *) -+ 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_path_CUPS_CONFIG="$as_dir/$ac_word$ac_exec_ext" -+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 -+ break 2 -+ fi -+done -+ done -+IFS=$as_save_IFS - --/* 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 --char dn_expand (); --int --main () --{ --return dn_expand (); -- ; -- return 0; --} --_ACEOF --rm -f conftest.$ac_objext conftest$ac_exeext --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 -- $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_resolv_dn_expand=yes -+fi -+CUPS_CONFIG=$ac_cv_path_CUPS_CONFIG -+if test -n "$CUPS_CONFIG"; then -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CUPS_CONFIG" >&5 -+$as_echo "$CUPS_CONFIG" >&6; } - else -- $as_echo "$as_me: failed program was:" >&5 --sed 's/^/| /' conftest.$ac_ext >&5 -- -- ac_cv_lib_resolv_dn_expand=no -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -+$as_echo "no" >&6; } - fi - --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 --{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_resolv_dn_expand" >&5 --$as_echo "$ac_cv_lib_resolv_dn_expand" >&6; } --if test "x$ac_cv_lib_resolv_dn_expand" = x""yes; then -+ -+ -+ if test "x$CUPS_CONFIG" != x; then -+ -+ ac_save_CFLAGS=$CFLAGS -+ ac_save_LDFLAGS=$LDFLAGS -+ ac_save_PRINT_LIBS=$PRINT_LIBS -+ CFLAGS="$CFLAGS `$CUPS_CONFIG --cflags`" -+ LDFLAGS="$LDFLAGS `$CUPS_CONFIG --ldflags`" -+ PRINT_LIBS="$PRINT_LIBS `$CUPS_CONFIG --libs`" -+ for ac_header in cups/cups.h cups/language.h -+do : -+ as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -+ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" -+eval as_val=\$$as_ac_Header -+ if test "x$as_val" = x""yes; then : - cat >>confdefs.h <<_ACEOF --#define HAVE_LIBRESOLV 1 -+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 - _ACEOF - -- LIBS="-lresolv $LIBS" -+fi -+ -+done -+ -+ if test x"$ac_cv_header_cups_cups_h" = xyes -a \ -+ x"$ac_cv_header_cups_language_h" = xyes; then -+ -+$as_echo "#define HAVE_CUPS 1" >>confdefs.h -+ -+ samba_cv_HAVE_CUPS=yes -+ else -+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cups-config around but cups-devel not installed" >&5 -+$as_echo "$as_me: WARNING: cups-config around but cups-devel not installed" >&2;} -+ CFLAGS=$ac_save_CFLAGS -+ LDFLAGS=$ac_save_LDFLAGS -+ PRINT_LIBS=$ac_save_PRINT_LIBS -+ fi - -+ elif test x"$enable_cups" = x"yes"; then -+ as_fn_error "Cups support required but cups-config not located. Make sure cups-devel related files are installed." "$LINENO" 5 -+ fi - fi - -+# Check whether --enable-iprint was given. -+if test "${enable_iprint+set}" = set; then : -+ enableval=$enable_iprint; -+fi - --{ $as_echo "$as_me:$LINENO: checking for _dn_expand in -lresolv" >&5 --$as_echo_n "checking for _dn_expand in -lresolv... " >&6; } --if test "${ac_cv_lib_resolv__dn_expand+set}" = set; then -+ -+if test x$enable_iprint != xno; then -+ if test x"$samba_cv_HAVE_CUPS" = xyes; then -+ -+$as_echo "#define HAVE_IPRINT 1" >>confdefs.h -+ -+ elif test x"$enable_iprint" = x"yes"; then -+ as_fn_error "iPrint support required but cups not enabled. Make sure cups-devel related files are installed and that cups is enabled." "$LINENO" 5 -+ fi -+fi -+ -+############################################ -+# check if the compiler will optimize out function calls -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the compiler will optimize out function calls" >&5 -+$as_echo_n "checking if the compiler will optimize out function calls... " >&6; } -+if test "${samba_cv_optimize_out_funcation_calls+set}" = set; then : - $as_echo_n "(cached) " >&6 - else -- ac_check_lib_save_LIBS=$LIBS --LIBS="-lresolv $LIBS" --cat >conftest.$ac_ext <<_ACEOF --/* confdefs.h. */ --_ACEOF --cat confdefs.h >>conftest.$ac_ext --cat >>conftest.$ac_ext <<_ACEOF -+ -+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ - --/* 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 --char _dn_expand (); -+#include - int - main () - { --return _dn_expand (); -+ -+ if (0) { -+ this_function_does_not_exist(); -+ } else { -+ return 1; -+ } -+ -+ - ; - return 0; - } - _ACEOF --rm -f conftest.$ac_objext conftest$ac_exeext --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 -- $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_resolv__dn_expand=yes -+if ac_fn_c_try_link "$LINENO"; then : -+ samba_cv_optimize_out_funcation_calls=yes - else -- $as_echo "$as_me: failed program was:" >&5 --sed 's/^/| /' conftest.$ac_ext >&5 -- -- ac_cv_lib_resolv__dn_expand=no -+ samba_cv_optimize_out_funcation_calls=no - fi -- --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 -+rm -f core conftest.err conftest.$ac_objext \ -+ conftest$ac_exeext conftest.$ac_ext - fi --{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_resolv__dn_expand" >&5 --$as_echo "$ac_cv_lib_resolv__dn_expand" >&6; } --if test "x$ac_cv_lib_resolv__dn_expand" = x""yes; then -- cat >>confdefs.h <<_ACEOF --#define HAVE_LIBRESOLV 1 --_ACEOF -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $samba_cv_optimize_out_funcation_calls" >&5 -+$as_echo "$samba_cv_optimize_out_funcation_calls" >&6; } -+if test x"$samba_cv_optimize_out_funcation_calls" = x"yes"; then - -- LIBS="-lresolv $LIBS" -+$as_echo "#define HAVE_COMPILER_WILL_OPTIMIZE_OUT_FNS 1" >>confdefs.h - - fi - -- --{ $as_echo "$as_me:$LINENO: checking for __dn_expand in -lresolv" >&5 --$as_echo_n "checking for __dn_expand in -lresolv... " >&6; } --if test "${ac_cv_lib_resolv___dn_expand+set}" = set; then -+############################################# -+# check for fd passing struct via msg_control -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for fd passing via msg_control" >&5 -+$as_echo_n "checking for fd passing via msg_control... " >&6; } -+if test "${samba_cv_msghdr_msg_control+set}" = set; then : - $as_echo_n "(cached) " >&6 - else -- ac_check_lib_save_LIBS=$LIBS --LIBS="-lresolv $LIBS" --cat >conftest.$ac_ext <<_ACEOF --/* confdefs.h. */ --_ACEOF --cat confdefs.h >>conftest.$ac_ext --cat >>conftest.$ac_ext <<_ACEOF -+ -+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ - --/* 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 --char __dn_expand (); -+#include -+#include -+#include -+#include -+#include - int - main () - { --return __dn_expand (); -+ -+ struct msghdr msg; -+ union { -+ struct cmsghdr cm; -+ char control[CMSG_SPACE(sizeof(int))]; -+ } control_un; -+ msg.msg_control = control_un.control; -+ msg.msg_controllen = sizeof(control_un.control); -+ - ; - return 0; - } - _ACEOF --rm -f conftest.$ac_objext conftest$ac_exeext --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 -- $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_resolv___dn_expand=yes -+if ac_fn_c_try_compile "$LINENO"; then : -+ samba_cv_msghdr_msg_control=yes - else -- $as_echo "$as_me: failed program was:" >&5 --sed 's/^/| /' conftest.$ac_ext >&5 -- -- ac_cv_lib_resolv___dn_expand=no -+ samba_cv_msghdr_msg_control=no - fi -- --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 -+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi --{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_resolv___dn_expand" >&5 --$as_echo "$ac_cv_lib_resolv___dn_expand" >&6; } --if test "x$ac_cv_lib_resolv___dn_expand" = x""yes; then -- cat >>confdefs.h <<_ACEOF --#define HAVE_LIBRESOLV 1 --_ACEOF -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $samba_cv_msghdr_msg_control" >&5 -+$as_echo "$samba_cv_msghdr_msg_control" >&6; } -+if test x"$samba_cv_msghdr_msg_control" = x"yes"; then - -- LIBS="-lresolv $LIBS" -+$as_echo "#define HAVE_MSGHDR_MSG_CONTROL 1" >>confdefs.h - - fi - -- --# --# Check for the functions putprpwnam, set_auth_parameters, --# getspnam, bigcrypt and getprpwnam in -lsec and -lsecurity --# Needed for OSF1 and HPUX. --# -- -- -- --for ac_func in putprpwnam --do --as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` --{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 --$as_echo_n "checking for $ac_func... " >&6; } --if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then -+############################################# -+# check for fd passing struct via msg_acctrights -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for fd passing via msg_acctrights" >&5 -+$as_echo_n "checking for fd passing via msg_acctrights... " >&6; } -+if test "${samba_cv_msghdr_msg_acctrights+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. */ --/* Define $ac_func to an innocuous variant, in case declares $ac_func. -- For example, HP-UX 11i declares gettimeofday. */ --#define $ac_func innocuous_$ac_func -- --/* System header to define __stub macros and hopefully few prototypes, -- which can conflict with char $ac_func (); below. -- Prefer to if __STDC__ is defined, since -- exists even on freestanding compilers. */ -- --#ifdef __STDC__ --# include --#else --# include --#endif -- --#undef $ac_func - --/* 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 --char $ac_func (); --/* 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_$ac_func || defined __stub___$ac_func --choke me --#endif -+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext -+/* end confdefs.h. */ - -+#include -+#include -+#include -+#include -+#include - int - main () - { --return $ac_func (); -+ -+ struct msghdr msg; -+ int fd; -+ msg.msg_acctrights = (caddr_t) &fd; -+ msg.msg_acctrightslen = sizeof(fd); -+ - ; - return 0; - } - _ACEOF --rm -f conftest.$ac_objext conftest$ac_exeext --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 -- $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 -- eval "$as_ac_var=yes" -+if ac_fn_c_try_compile "$LINENO"; then : -+ samba_cv_msghdr_msg_acctrights=yes - else -- $as_echo "$as_me: failed program was:" >&5 --sed 's/^/| /' conftest.$ac_ext >&5 -- -- eval "$as_ac_var=no" -+ samba_cv_msghdr_msg_acctrights=no - fi -- --rm -rf conftest.dSYM --rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ -- conftest$ac_exeext conftest.$ac_ext -+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi --ac_res=`eval 'as_val=${'$as_ac_var'} -- $as_echo "$as_val"'` -- { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 --$as_echo "$ac_res" >&6; } --as_val=`eval 'as_val=${'$as_ac_var'} -- $as_echo "$as_val"'` -- if test "x$as_val" = x""yes; then -- cat >>confdefs.h <<_ACEOF --#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 --_ACEOF -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $samba_cv_msghdr_msg_acctrights" >&5 -+$as_echo "$samba_cv_msghdr_msg_acctrights" >&6; } -+if test x"$samba_cv_msghdr_msg_acctrights" = x"yes"; then - -- # putprpwnam was found in libc or existing $LIBS -+$as_echo "#define HAVE_MSGHDR_MSG_ACCTRIGHTS 1" >>confdefs.h - -+fi - --cat >>confdefs.h <<\_ACEOF --#define HAVE_PUTPRPWNAM 1 -+for ac_func in dirfd -+do : -+ ac_fn_c_check_func "$LINENO" "dirfd" "ac_cv_func_dirfd" -+if test "x$ac_cv_func_dirfd" = x""yes; then : -+ cat >>confdefs.h <<_ACEOF -+#define HAVE_DIRFD 1 - _ACEOF - -+fi -+done - -+if test x"$ac_cv_func_dirfd" = x"yes"; then -+ default_shared_modules="$default_shared_modules vfs_syncops vfs_dirsort" -+fi - --else -- -- # putprpwnam was not found, try adding libsecurity -- case " $LIBS " in -- *\ -lsecurity\ *) -- -- # putprpwnam was not found and we already had libsecurity -- # nothing to do here by default -- true -- -- ;; -- *) -- # putprpwnam was not found, try adding libsecurity -- { $as_echo "$as_me:$LINENO: checking for putprpwnam in -lsecurity" >&5 --$as_echo_n "checking for putprpwnam in -lsecurity... " >&6; } --if test "${ac_cv_lib_security_putprpwnam+set}" = set; then -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for struct sigevent type" >&5 -+$as_echo_n "checking for struct sigevent type... " >&6; } -+if test "${samba_cv_struct_sigevent+set}" = set; then : - $as_echo_n "(cached) " >&6 - else -- ac_check_lib_save_LIBS=$LIBS --LIBS="-lsecurity $LIBS" --cat >conftest.$ac_ext <<_ACEOF --/* confdefs.h. */ --_ACEOF --cat confdefs.h >>conftest.$ac_ext --cat >>conftest.$ac_ext <<_ACEOF -+ -+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ - --/* 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" -+#include -+#if STDC_HEADERS -+#include -+#include - #endif --char putprpwnam (); -+#include - int - main () - { --return putprpwnam (); -+struct sigevent s; - ; - return 0; - } - _ACEOF --rm -f conftest.$ac_objext conftest$ac_exeext --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 -- $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_security_putprpwnam=yes -+if ac_fn_c_try_compile "$LINENO"; then : + samba_cv_struct_sigevent=yes else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -- ac_cv_lib_security_putprpwnam=no +- samba_cv_stat_dos_flags=no + samba_cv_struct_sigevent=no fi - --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 -+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +- fi --{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_security_putprpwnam" >&5 --$as_echo "$ac_cv_lib_security_putprpwnam" >&6; } --if test "x$ac_cv_lib_security_putprpwnam" = x""yes; then +-{ $as_echo "$as_me:$LINENO: result: $samba_cv_stat_dos_flags" >&5 +-$as_echo "$samba_cv_stat_dos_flags" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $samba_cv_struct_sigevent" >&5 +$as_echo "$samba_cv_struct_sigevent" >&6; } +if test x"$samba_cv_struct_sigevent" = x"yes"; then -- LIBS="-lsecurity $LIBS" +-if test x"$samba_cv_stat_dos_flags" = x"yes" ; then +$as_echo "#define HAVE_STRUCT_SIGEVENT 1" >>confdefs.h - ++ + ac_fn_c_check_member "$LINENO" "struct sigevent" "sigev_value.sival_ptr" "ac_cv_member_struct_sigevent_sigev_value_sival_ptr" "#include +" +if test "x$ac_cv_member_struct_sigevent_sigev_value_sival_ptr" = x""yes; then : - --cat >>confdefs.h <<\_ACEOF --#define HAVE_PUTPRPWNAM 1 ++ +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_SIGEVENT_SIGEV_VALUE_SIVAL_PTR 1 - _ACEOF - - ++_ACEOF ++ ++ +fi +ac_fn_c_check_member "$LINENO" "struct sigevent" "sigev_value.sigval_ptr" "ac_cv_member_struct_sigevent_sigev_value_sigval_ptr" "#include +" +if test "x$ac_cv_member_struct_sigevent_sigev_value_sigval_ptr" = x""yes; then : --else -- -- -- # putprpwnam was not found in libsecurity -- # nothing to do here by default -- true +-cat >>confdefs.h <<\_ACEOF +-#define HAVE_STAT_DOS_FLAGS 1 +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_SIGEVENT_SIGEV_VALUE_SIGVAL_PTR 1 -+_ACEOF - + _ACEOF ++ fi -- ;; -- esac -- - fi --done +-##################################### +-# needed for SRV lookups ++fi -- -- -- --for ac_func in putprpwnam --do --as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` --{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 --$as_echo_n "checking for $ac_func... " >&6; } --if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then +-{ $as_echo "$as_me:$LINENO: checking for dn_expand in -lresolv" >&5 +-$as_echo_n "checking for dn_expand in -lresolv... " >&6; } +-if test "${ac_cv_lib_resolv_dn_expand+set}" = set; then +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for struct timespec type" >&5 +$as_echo_n "checking for struct timespec type... " >&6; } +if test "${samba_cv_struct_timespec+set}" = set; then : $as_echo_n "(cached) " >&6 else -- cat >conftest.$ac_ext <<_ACEOF +- ac_check_lib_save_LIBS=$LIBS +-LIBS="-lresolv $LIBS" +-cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF --/* end confdefs.h. */ --/* Define $ac_func to an innocuous variant, in case declares $ac_func. -- For example, HP-UX 11i declares gettimeofday. */ --#define $ac_func innocuous_$ac_func -- --/* System header to define __stub macros and hopefully few prototypes, -- which can conflict with char $ac_func (); below. -- Prefer to if __STDC__ is defined, since -- exists even on freestanding compilers. */ - --#ifdef __STDC__ --# include --#else --# include --#endif -- --#undef $ac_func ++ + cat confdefs.h - <<_ACEOF >conftest.$ac_ext -+/* end confdefs.h. */ + /* end confdefs.h. */ -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC @@ -52675,12 +51585,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure +#include +#include #endif --char $ac_func (); --/* 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_$ac_func || defined __stub___$ac_func --choke me +-char dn_expand (); +#if TIME_WITH_SYS_TIME +# include +# include @@ -52690,12 +51595,12 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure +# else +# include +# endif - #endif - ++#endif ++ int main () { --return $ac_func (); +-return dn_expand (); +struct timespec ts; ; return 0; @@ -52722,51 +51627,72 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - test "$cross_compiling" = yes || - $as_test_x conftest$ac_exeext - }; then -- eval "$as_ac_var=yes" +- ac_cv_lib_resolv_dn_expand=yes +if ac_fn_c_try_compile "$LINENO"; then : + samba_cv_struct_timespec=yes else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -- eval "$as_ac_var=no" +- ac_cv_lib_resolv_dn_expand=no + samba_cv_struct_timespec=no fi - -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 +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi --ac_res=`eval 'as_val=${'$as_ac_var'} -- $as_echo "$as_val"'` -- { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 --$as_echo "$ac_res" >&6; } --as_val=`eval 'as_val=${'$as_ac_var'} -- $as_echo "$as_val"'` -- if test "x$as_val" = x""yes; then +-{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_resolv_dn_expand" >&5 +-$as_echo "$ac_cv_lib_resolv_dn_expand" >&6; } +-if test "x$ac_cv_lib_resolv_dn_expand" = x""yes; then - cat >>confdefs.h <<_ACEOF --#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 +-#define HAVE_LIBRESOLV 1 -_ACEOF +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $samba_cv_struct_timespec" >&5 +$as_echo "$samba_cv_struct_timespec" >&6; } +if test x"$samba_cv_struct_timespec" = x"yes"; then -- # putprpwnam was found in libc or existing $LIBS +- LIBS="-lresolv $LIBS" +$as_echo "#define HAVE_STRUCT_TIMESPEC 1" >>confdefs.h -+fi + fi --cat >>confdefs.h <<\_ACEOF --#define HAVE_PUTPRPWNAM 1 +- +-{ $as_echo "$as_me:$LINENO: checking for _dn_expand in -lresolv" >&5 +-$as_echo_n "checking for _dn_expand in -lresolv... " >&6; } +-if test "${ac_cv_lib_resolv__dn_expand+set}" = set; then +# and glibc has setresuid under linux but the function does +# nothing until kernel 2.1.44! very dumb. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for real setresuid" >&5 +$as_echo_n "checking for real setresuid... " >&6; } +if test "${samba_cv_have_setresuid+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ + $as_echo_n "(cached) " >&6 + else +- ac_check_lib_save_LIBS=$LIBS +-LIBS="-lresolv $LIBS" +-cat >conftest.$ac_ext <<_ACEOF +-/* confdefs.h. */ +-_ACEOF +-cat confdefs.h >>conftest.$ac_ext +-cat >>conftest.$ac_ext <<_ACEOF +-/* end confdefs.h. */ + +-/* Override any 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 +-char _dn_expand (); +-int +-main () +-{ +-return _dn_expand (); +- ; +- return 0; +-} + if test "$cross_compiling" = yes; then : + samba_cv_have_setresuid=cross +else @@ -52775,35 +51701,68 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure +#include +main() { setresuid(1,1,1); setresuid(2,2,2); exit(errno==EPERM?0:1);} _ACEOF +-rm -f conftest.$ac_objext conftest$ac_exeext +-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 +- $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_resolv__dn_expand=yes +if ac_fn_c_try_run "$LINENO"; then : + samba_cv_have_setresuid=yes -+else + else +- $as_echo "$as_me: failed program was:" >&5 +-sed 's/^/| /' conftest.$ac_ext >&5 + samba_cv_have_setresuid=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi -+ -+fi + +- ac_cv_lib_resolv__dn_expand=no + fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $samba_cv_have_setresuid" >&5 +$as_echo "$samba_cv_have_setresuid" >&6; } +if test x"$samba_cv_have_setresuid" = x"yes"; then - ++ +$as_echo "#define HAVE_SETRESUID 1" >>confdefs.h -+fi +-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 +-{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_resolv__dn_expand" >&5 +-$as_echo "$ac_cv_lib_resolv__dn_expand" >&6; } +-if test "x$ac_cv_lib_resolv__dn_expand" = x""yes; then +- cat >>confdefs.h <<_ACEOF +-#define HAVE_LIBRESOLV 1 +-_ACEOF +- LIBS="-lresolv $LIBS" +# Do the same check for setresguid... +# +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for real setresgid" >&5 +$as_echo_n "checking for real setresgid... " >&6; } +if test "${samba_cv_have_setresgid+set}" = set; then : + $as_echo_n "(cached) " >&6 - else - -- # putprpwnam was not found, try adding libsec -- case " $LIBS " in -- *\ -lsec\ *) ++else ++ + if test "$cross_compiling" = yes; then : + samba_cv_have_setresgid=cross +else @@ -52822,22 +51781,16 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi -- # putprpwnam was not found and we already had libsec -- # nothing to do here by default -- true -+fi + fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $samba_cv_have_setresgid" >&5 +$as_echo "$samba_cv_have_setresgid" >&6; } +if test x"$samba_cv_have_setresgid" = x"yes"; then -- ;; -- *) -- # putprpwnam was not found, try adding libsec -- { $as_echo "$as_me:$LINENO: checking for putprpwnam in -lsec" >&5 --$as_echo_n "checking for putprpwnam in -lsec... " >&6; } --if test "${ac_cv_lib_sec_putprpwnam+set}" = set; then +$as_echo "#define HAVE_SETRESGID 1" >>confdefs.h -+ + +-{ $as_echo "$as_me:$LINENO: checking for __dn_expand in -lresolv" >&5 +-$as_echo_n "checking for __dn_expand in -lresolv... " >&6; } +-if test "${ac_cv_lib_resolv___dn_expand+set}" = set; then +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for working memcmp" >&5 @@ -52846,7 +51799,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo_n "(cached) " >&6 else - ac_check_lib_save_LIBS=$LIBS --LIBS="-lsec $LIBS" +-LIBS="-lresolv $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF @@ -52864,12 +51817,12 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -#ifdef __cplusplus -extern "C" -#endif --char putprpwnam (); +-char __dn_expand (); +$ac_includes_default int main () { --return putprpwnam (); +-return __dn_expand (); + + /* Some versions of memcmp are not 8-bit clean. */ + char c0 = '\100', c1 = '\200', c2 = '\201'; @@ -52920,14 +51873,14 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - test "$cross_compiling" = yes || - $as_test_x conftest$ac_exeext - }; then -- ac_cv_lib_sec_putprpwnam=yes +- ac_cv_lib_resolv___dn_expand=yes +if ac_fn_c_try_run "$LINENO"; then : + ac_cv_func_memcmp_working=yes else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -- ac_cv_lib_sec_putprpwnam=no +- ac_cv_lib_resolv___dn_expand=no + ac_cv_func_memcmp_working=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ @@ -52939,9 +51892,9 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS fi --{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_sec_putprpwnam" >&5 --$as_echo "$ac_cv_lib_sec_putprpwnam" >&6; } --if test "x$ac_cv_lib_sec_putprpwnam" = x""yes; then +-{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_resolv___dn_expand" >&5 +-$as_echo "$ac_cv_lib_resolv___dn_expand" >&6; } +-if test "x$ac_cv_lib_resolv___dn_expand" = x""yes; then +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_memcmp_working" >&5 +$as_echo "$ac_cv_func_memcmp_working" >&6; } +test $ac_cv_func_memcmp_working = no && case " $LIBOBJS " in @@ -52949,46 +51902,46 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure + *) LIBOBJS="$LIBOBJS memcmp.$ac_objext" + ;; +esac - -- LIBS="-lsec $LIBS" - - --cat >>confdefs.h <<\_ACEOF --#define HAVE_PUTPRPWNAM 1 --_ACEOF ++ ++ ++ +############################################### +# Readline included by default unless explicitly asked not to +test "${with_readline+set}" != "set" && with_readline=yes - ++ +# test for where we get readline() from +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to use readline" >&5 +$as_echo_n "checking whether to use readline... " >&6; } - ++ +# Check whether --with-readline was given. +if test "${with_readline+set}" = set; then : + withval=$with_readline; case "$with_readline" in + yes) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } - --else ++ + for ac_header in readline.h history.h readline/readline.h +do : + as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" +eval as_val=\$$as_ac_Header + if test "x$as_val" = x""yes; then : -+ cat >>confdefs.h <<_ACEOF + cat >>confdefs.h <<_ACEOF +-#define HAVE_LIBRESOLV 1 +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -+_ACEOF + _ACEOF -+fi +- LIBS="-lresolv $LIBS" +- + fi -- # putprpwnam was not found in libsec -- # nothing to do here by default -- true +done +-# +-# Check for the functions putprpwnam, set_auth_parameters, +-# getspnam, bigcrypt and getprpwnam in -lsec and -lsecurity +-# Needed for OSF1 and HPUX. +-# + for ac_header in readline/history.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "readline/history.h" "ac_cv_header_readline_history_h" "$ac_includes_default" @@ -52996,14 +51949,10 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure + cat >>confdefs.h <<_ACEOF +#define HAVE_READLINE_HISTORY_H 1 +_ACEOF - - fi - -- ;; -- esac -- --fi - done ++ ++fi ++ ++done + for ac_header in readline.h readline/readline.h @@ -53016,9 +51965,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF -- -- --for ac_func in set_auth_parameters +-for ac_func in putprpwnam -do -as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 @@ -53059,7 +52006,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC -@@ -47778,100 +14567,41 @@ +@@ -47061,100 +14378,41 @@ #ifdef __cplusplus extern "C" #endif @@ -53133,22 +52080,22 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF - -- # set_auth_parameters was found in libc or existing $LIBS +- # putprpwnam was found in libc or existing $LIBS - - -cat >>confdefs.h <<\_ACEOF --#define HAVE_SET_AUTH_PARAMETERS 1 +-#define HAVE_PUTPRPWNAM 1 -_ACEOF - - - -else - -- # set_auth_parameters was not found, try adding libsecurity +- # putprpwnam was not found, try adding libsecurity - case " $LIBS " in - *\ -lsecurity\ *) - -- # set_auth_parameters was not found and we already had libsecurity +- # putprpwnam was not found and we already had libsecurity - # nothing to do here by default - true +eval as_val=\$$as_ac_Lib @@ -53158,10 +52105,10 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - ;; - *) -- # set_auth_parameters was not found, try adding libsecurity -- { $as_echo "$as_me:$LINENO: checking for set_auth_parameters in -lsecurity" >&5 --$as_echo_n "checking for set_auth_parameters in -lsecurity... " >&6; } --if test "${ac_cv_lib_security_set_auth_parameters+set}" = set; then +- # putprpwnam was not found, try adding libsecurity +- { $as_echo "$as_me:$LINENO: checking for putprpwnam in -lsecurity" >&5 +-$as_echo_n "checking for putprpwnam in -lsecurity... " >&6; } +-if test "${ac_cv_lib_security_putprpwnam+set}" = set; then + done + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for rl_callback_handler_install in -lreadline" >&5 +$as_echo_n "checking for rl_callback_handler_install in -lreadline... " >&6; } @@ -53180,16 +52127,16 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. -@@ -47880,111 +14610,149 @@ +@@ -47163,111 +14421,106 @@ #ifdef __cplusplus extern "C" #endif --char set_auth_parameters (); +-char putprpwnam (); +char rl_callback_handler_install (); int main () { --return set_auth_parameters (); +-return putprpwnam (); +return rl_callback_handler_install (); ; return 0; @@ -53216,14 +52163,14 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - test "$cross_compiling" = yes || - $as_test_x conftest$ac_exeext - }; then -- ac_cv_lib_security_set_auth_parameters=yes +- ac_cv_lib_security_putprpwnam=yes +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_readline_rl_callback_handler_install=yes else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -- ac_cv_lib_security_set_auth_parameters=no +- ac_cv_lib_security_putprpwnam=no + ac_cv_lib_readline_rl_callback_handler_install=no fi - @@ -53234,9 +52181,9 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure + conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi --{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_security_set_auth_parameters" >&5 --$as_echo "$ac_cv_lib_security_set_auth_parameters" >&6; } --if test "x$ac_cv_lib_security_set_auth_parameters" = x""yes; then +-{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_security_putprpwnam" >&5 +-$as_echo "$ac_cv_lib_security_putprpwnam" >&6; } +-if test "x$ac_cv_lib_security_putprpwnam" = x""yes; then - - LIBS="-lsecurity $LIBS" +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_readline_rl_callback_handler_install" >&5 @@ -53247,7 +52194,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure +$as_echo "#define HAVE_LIBREADLINE 1" >>confdefs.h -cat >>confdefs.h <<\_ACEOF --#define HAVE_SET_AUTH_PARAMETERS 1 +-#define HAVE_PUTPRPWNAM 1 -_ACEOF + break +else @@ -53273,7 +52220,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure + _ldflags=${LDFLAGS} + _cppflags=${CPPFLAGS} -- # set_auth_parameters was not found in libsecurity +- # putprpwnam was not found in libsecurity - # nothing to do here by default - true + # Add additional search path @@ -53320,7 +52267,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF --for ac_func in set_auth_parameters +-for ac_func in putprpwnam -do -as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 @@ -53350,58 +52297,18 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - which can conflict with char $ac_func (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - +- -#ifdef __STDC__ -# include -#else -# include -+/* 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 -+char tgetent (); -+int -+main () -+{ -+return tgetent (); -+ ; -+ return 0; -+} -+_ACEOF -+if ac_fn_c_try_link "$LINENO"; then : -+ eval "$as_ac_Lib=yes" -+else -+ eval "$as_ac_Lib=no" -+fi -+rm -f core conftest.err conftest.$ac_objext \ -+ conftest$ac_exeext conftest.$ac_ext -+LIBS=$ac_check_lib_save_LIBS -+fi -+eval ac_res=\$$as_ac_Lib -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -+$as_echo "$ac_res" >&6; } -+eval as_val=\$$as_ac_Lib -+ if test "x$as_val" = x""yes; then : -+ TERMLIBS="-l${termlib}"; break -+fi - +-#endif +- -#undef $ac_func -+ done -+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for rl_callback_handler_install in -lreadline" >&5 -+$as_echo_n "checking for rl_callback_handler_install in -lreadline... " >&6; } -+if test "${ac_cv_lib_readline_rl_callback_handler_install+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ ac_check_lib_save_LIBS=$LIBS -+LIBS="-lreadline $TERMLIBS $LIBS" -+cat confdefs.h - <<_ACEOF >conftest.$ac_ext -+/* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC -@@ -47992,100 +14760,67 @@ +@@ -47275,100 +14528,41 @@ #ifdef __cplusplus extern "C" #endif @@ -53413,11 +52320,125 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -choke me -#endif - -+char rl_callback_handler_install (); ++char tgetent (); int main () { -return $ac_func (); ++return tgetent (); + ; + return 0; + } + _ACEOF +-rm -f conftest.$ac_objext conftest$ac_exeext +-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 +- $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 +- eval "$as_ac_var=yes" ++if ac_fn_c_try_link "$LINENO"; then : ++ eval "$as_ac_Lib=yes" + else +- $as_echo "$as_me: failed program was:" >&5 +-sed 's/^/| /' conftest.$ac_ext >&5 +- +- eval "$as_ac_var=no" ++ eval "$as_ac_Lib=no" + fi +- +-rm -rf conftest.dSYM +-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ +- conftest$ac_exeext conftest.$ac_ext ++rm -f core conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext ++LIBS=$ac_check_lib_save_LIBS + fi +-ac_res=`eval 'as_val=${'$as_ac_var'} +- $as_echo "$as_val"'` +- { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 ++eval ac_res=\$$as_ac_Lib ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 + $as_echo "$ac_res" >&6; } +-as_val=`eval 'as_val=${'$as_ac_var'} +- $as_echo "$as_val"'` +- if test "x$as_val" = x""yes; then +- cat >>confdefs.h <<_ACEOF +-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 +-_ACEOF +- +- # putprpwnam was found in libc or existing $LIBS +- +- +-cat >>confdefs.h <<\_ACEOF +-#define HAVE_PUTPRPWNAM 1 +-_ACEOF +- +- +- +-else +- +- # putprpwnam was not found, try adding libsec +- case " $LIBS " in +- *\ -lsec\ *) +- +- # putprpwnam was not found and we already had libsec +- # nothing to do here by default +- true ++eval as_val=\$$as_ac_Lib ++ if test "x$as_val" = x""yes; then : ++ TERMLIBS="-l${termlib}"; break ++fi + +- ;; +- *) +- # putprpwnam was not found, try adding libsec +- { $as_echo "$as_me:$LINENO: checking for putprpwnam in -lsec" >&5 +-$as_echo_n "checking for putprpwnam in -lsec... " >&6; } +-if test "${ac_cv_lib_sec_putprpwnam+set}" = set; then ++ done ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for rl_callback_handler_install in -lreadline" >&5 ++$as_echo_n "checking for rl_callback_handler_install in -lreadline... " >&6; } ++if test "${ac_cv_lib_readline_rl_callback_handler_install+set}" = set; then : + $as_echo_n "(cached) " >&6 + else + ac_check_lib_save_LIBS=$LIBS +-LIBS="-lsec $LIBS" +-cat >conftest.$ac_ext <<_ACEOF +-/* confdefs.h. */ +-_ACEOF +-cat confdefs.h >>conftest.$ac_ext +-cat >>conftest.$ac_ext <<_ACEOF ++LIBS="-lreadline $TERMLIBS $LIBS" ++cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + + /* Override any GCC internal prototype to avoid an error. +@@ -47377,112 +14571,68 @@ + #ifdef __cplusplus + extern "C" + #endif +-char putprpwnam (); ++char rl_callback_handler_install (); + int + main () + { +-return putprpwnam (); +return rl_callback_handler_install (); ; return 0; @@ -53444,14 +52465,14 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - test "$cross_compiling" = yes || - $as_test_x conftest$ac_exeext - }; then -- eval "$as_ac_var=yes" +- ac_cv_lib_sec_putprpwnam=yes +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_readline_rl_callback_handler_install=yes else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -- eval "$as_ac_var=no" +- ac_cv_lib_sec_putprpwnam=no + ac_cv_lib_readline_rl_callback_handler_install=no fi - @@ -53459,198 +52480,73 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext \ -+ conftest$ac_exeext conftest.$ac_ext -+LIBS=$ac_check_lib_save_LIBS - fi --ac_res=`eval 'as_val=${'$as_ac_var'} -- $as_echo "$as_val"'` -- { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 --$as_echo "$ac_res" >&6; } --as_val=`eval 'as_val=${'$as_ac_var'} -- $as_echo "$as_val"'` -- if test "x$as_val" = x""yes; then -- cat >>confdefs.h <<_ACEOF --#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 --_ACEOF -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_readline_rl_callback_handler_install" >&5 -+$as_echo "$ac_cv_lib_readline_rl_callback_handler_install" >&6; } -+if test "x$ac_cv_lib_readline_rl_callback_handler_install" = x""yes; then : -+ TERMLDFLAGS="-L$with_readline/lib" -+ TERMCPPFLAGS="-I$with_readline/include" -+ CPPFLAGS="-I$with_readline/include $CPPFLAGS" -+ TERMLIBS="-lreadline $TERMLIBS" - -- # set_auth_parameters was found in libc or existing $LIBS -+$as_echo "#define HAVE_LIBREADLINE 1" >>confdefs.h - -+ break -+else -+ TERMLIBS= CPPFLAGS=$_cppflags -+fi - --cat >>confdefs.h <<\_ACEOF --#define HAVE_SET_AUTH_PARAMETERS 1 --_ACEOF -+fi - -+done - - -+ LDFLAGS=$_ldflags -+ ;; -+ esac - else -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -+$as_echo "no" >&6; } - -- # set_auth_parameters was not found, try adding libsec -- case " $LIBS " in -- *\ -lsec\ *) -+fi - -- # set_auth_parameters was not found and we already had libsec -- # nothing to do here by default -- true - -- ;; -- *) -- # set_auth_parameters was not found, try adding libsec -- { $as_echo "$as_me:$LINENO: checking for set_auth_parameters in -lsec" >&5 --$as_echo_n "checking for set_auth_parameters in -lsec... " >&6; } --if test "${ac_cv_lib_sec_set_auth_parameters+set}" = set; then -+ -+ -+# The readline API changed slightly from readline3 to readline4, so -+# code will generate warnings on one of them unless we have a few -+# special cases. -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for rl_completion_matches in -lreadline" >&5 -+$as_echo_n "checking for rl_completion_matches in -lreadline... " >&6; } -+if test "${ac_cv_lib_readline_rl_completion_matches+set}" = set; then : - $as_echo_n "(cached) " >&6 - else - ac_check_lib_save_LIBS=$LIBS --LIBS="-lsec $LIBS" --cat >conftest.$ac_ext <<_ACEOF --/* confdefs.h. */ --_ACEOF --cat confdefs.h >>conftest.$ac_ext --cat >>conftest.$ac_ext <<_ACEOF -+LIBS="-lreadline $TERMLIBS $LIBS" -+cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ - - /* Override any GCC internal prototype to avoid an error. -@@ -48094,113 +14829,55 @@ - #ifdef __cplusplus - extern "C" - #endif --char set_auth_parameters (); -+char rl_completion_matches (); - int - main () - { --return set_auth_parameters (); -+return rl_completion_matches (); - ; - return 0; - } - _ACEOF --rm -f conftest.$ac_objext conftest$ac_exeext --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 -- $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_sec_set_auth_parameters=yes -+if ac_fn_c_try_link "$LINENO"; then : -+ ac_cv_lib_readline_rl_completion_matches=yes - else -- $as_echo "$as_me: failed program was:" >&5 --sed 's/^/| /' conftest.$ac_ext >&5 -- -- ac_cv_lib_sec_set_auth_parameters=no -+ ac_cv_lib_readline_rl_completion_matches=no - fi -- --rm -rf conftest.dSYM --rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ -- conftest$ac_exeext conftest.$ac_ext -+rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi --{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_sec_set_auth_parameters" >&5 --$as_echo "$ac_cv_lib_sec_set_auth_parameters" >&6; } --if test "x$ac_cv_lib_sec_set_auth_parameters" = x""yes; then +-{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_sec_putprpwnam" >&5 +-$as_echo "$ac_cv_lib_sec_putprpwnam" >&6; } +-if test "x$ac_cv_lib_sec_putprpwnam" = x""yes; then - - LIBS="-lsec $LIBS" - - -cat >>confdefs.h <<\_ACEOF --#define HAVE_SET_AUTH_PARAMETERS 1 +-#define HAVE_PUTPRPWNAM 1 -_ACEOF - -- -- --else -- -- -- # set_auth_parameters was not found in libsec ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_readline_rl_callback_handler_install" >&5 ++$as_echo "$ac_cv_lib_readline_rl_callback_handler_install" >&6; } ++if test "x$ac_cv_lib_readline_rl_callback_handler_install" = x""yes; then : ++ TERMLDFLAGS="-L$with_readline/lib" ++ TERMCPPFLAGS="-I$with_readline/include" ++ CPPFLAGS="-I$with_readline/include $CPPFLAGS" ++ TERMLIBS="-lreadline $TERMLIBS" + ++$as_echo "#define HAVE_LIBREADLINE 1" >>confdefs.h + ++ break + else ++ TERMLIBS= CPPFLAGS=$_cppflags ++fi + ++fi + +- # putprpwnam was not found in libsec - # nothing to do here by default - true -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_readline_rl_completion_matches" >&5 -+$as_echo "$ac_cv_lib_readline_rl_completion_matches" >&6; } -+if test "x$ac_cv_lib_readline_rl_completion_matches" = x""yes; then : +- ++done -+$as_echo "#define HAVE_NEW_LIBREADLINE 1" >>confdefs.h - - fi +-fi - ;; - esac - -+# not all readline libs have rl_event_hook or history_list -+ac_fn_c_check_decl "$LINENO" "rl_event_hook" "ac_cv_have_decl_rl_event_hook" "#include -+" -+if test "x$ac_cv_have_decl_rl_event_hook" = x""yes; then : -+ ac_have_decl=1 ++ LDFLAGS=$_ldflags ++ ;; ++ esac +else -+ ac_have_decl=0 ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++$as_echo "no" >&6; } + fi -done - -- -- --# UnixWare 7.x has its getspnam in -lgen -+cat >>confdefs.h <<_ACEOF -+#define HAVE_DECL_RL_EVENT_HOOK $ac_have_decl -+_ACEOF --for ac_func in getspnam + + +-for ac_func in set_auth_parameters -do -as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 -$as_echo_n "checking for $ac_func... " >&6; } -if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for history_list in -lreadline" >&5 -+$as_echo_n "checking for history_list in -lreadline... " >&6; } -+if test "${ac_cv_lib_readline_history_list+set}" = set; then : ++# The readline API changed slightly from readline3 to readline4, so ++# code will generate warnings on one of them unless we have a few ++# special cases. ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for rl_completion_matches in -lreadline" >&5 ++$as_echo_n "checking for rl_completion_matches in -lreadline... " >&6; } ++if test "${ac_cv_lib_readline_rl_completion_matches+set}" = set; then : $as_echo_n "(cached) " >&6 else - cat >conftest.$ac_ext <<_ACEOF @@ -53681,7 +52577,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC -@@ -48208,100 +14885,42 @@ +@@ -47490,100 +14640,54 @@ #ifdef __cplusplus extern "C" #endif @@ -53693,12 +52589,12 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -choke me -#endif - -+char history_list (); ++char rl_completion_matches (); int main () { -return $ac_func (); -+return history_list (); ++return rl_completion_matches (); ; return 0; } @@ -53726,13 +52622,13 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - }; then - eval "$as_ac_var=yes" +if ac_fn_c_try_link "$LINENO"; then : -+ ac_cv_lib_readline_history_list=yes ++ ac_cv_lib_readline_rl_completion_matches=yes else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - eval "$as_ac_var=no" -+ ac_cv_lib_readline_history_list=no ++ ac_cv_lib_readline_rl_completion_matches=no fi - -rm -rf conftest.dSYM @@ -53753,36 +52649,159 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF - -- # getspnam was found in libc or existing $LIBS +- # set_auth_parameters was found in libc or existing $LIBS +- ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_readline_rl_completion_matches" >&5 ++$as_echo "$ac_cv_lib_readline_rl_completion_matches" >&6; } ++if test "x$ac_cv_lib_readline_rl_completion_matches" = x""yes; then : + +-cat >>confdefs.h <<\_ACEOF +-#define HAVE_SET_AUTH_PARAMETERS 1 +-_ACEOF ++$as_echo "#define HAVE_NEW_LIBREADLINE 1" >>confdefs.h + ++fi + + ++# not all readline libs have rl_event_hook or history_list ++ac_fn_c_check_decl "$LINENO" "rl_event_hook" "ac_cv_have_decl_rl_event_hook" "#include ++" ++if test "x$ac_cv_have_decl_rl_event_hook" = x""yes; then : ++ ac_have_decl=1 + else ++ ac_have_decl=0 ++fi + +- # set_auth_parameters was not found, try adding libsecurity +- case " $LIBS " in +- *\ -lsecurity\ *) +- +- # set_auth_parameters was not found and we already had libsecurity +- # nothing to do here by default +- true ++cat >>confdefs.h <<_ACEOF ++#define HAVE_DECL_RL_EVENT_HOOK $ac_have_decl ++_ACEOF + +- ;; +- *) +- # set_auth_parameters was not found, try adding libsecurity +- { $as_echo "$as_me:$LINENO: checking for set_auth_parameters in -lsecurity" >&5 +-$as_echo_n "checking for set_auth_parameters in -lsecurity... " >&6; } +-if test "${ac_cv_lib_security_set_auth_parameters+set}" = set; then ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for history_list in -lreadline" >&5 ++$as_echo_n "checking for history_list in -lreadline... " >&6; } ++if test "${ac_cv_lib_readline_history_list+set}" = set; then : + $as_echo_n "(cached) " >&6 + else + ac_check_lib_save_LIBS=$LIBS +-LIBS="-lsecurity $LIBS" +-cat >conftest.$ac_ext <<_ACEOF +-/* confdefs.h. */ +-_ACEOF +-cat confdefs.h >>conftest.$ac_ext +-cat >>conftest.$ac_ext <<_ACEOF ++LIBS="-lreadline $TERMLIBS $LIBS" ++cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + + /* Override any GCC internal prototype to avoid an error. +@@ -47592,111 +14696,43 @@ + #ifdef __cplusplus + extern "C" + #endif +-char set_auth_parameters (); ++char history_list (); + int + main () + { +-return set_auth_parameters (); ++return history_list (); + ; + return 0; + } + _ACEOF +-rm -f conftest.$ac_objext conftest$ac_exeext +-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 +- $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_security_set_auth_parameters=yes ++if ac_fn_c_try_link "$LINENO"; then : ++ ac_cv_lib_readline_history_list=yes + else +- $as_echo "$as_me: failed program was:" >&5 +-sed 's/^/| /' conftest.$ac_ext >&5 +- +- ac_cv_lib_security_set_auth_parameters=no ++ ac_cv_lib_readline_history_list=no + fi +- +-rm -rf conftest.dSYM +-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ +- conftest$ac_exeext conftest.$ac_ext ++rm -f core conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + LIBS=$ac_check_lib_save_LIBS + fi +-{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_security_set_auth_parameters" >&5 +-$as_echo "$ac_cv_lib_security_set_auth_parameters" >&6; } +-if test "x$ac_cv_lib_security_set_auth_parameters" = x""yes; then +- +- LIBS="-lsecurity $LIBS" - - -cat >>confdefs.h <<\_ACEOF --#define HAVE_GETSPNAM 1 +-#define HAVE_SET_AUTH_PARAMETERS 1 -_ACEOF - - +- +-else +- +- +- # set_auth_parameters was not found in libsecurity +- # nothing to do here by default +- true +- +- +-fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_readline_history_list" >&5 +$as_echo "$ac_cv_lib_readline_history_list" >&6; } +if test "x$ac_cv_lib_readline_history_list" = x""yes; then : --else +- ;; +- esac +$as_echo "#define HAVE_HISTORY_LIST 1" >>confdefs.h -- # getspnam was not found, try adding libgen -- case " $LIBS " in -- *\ -lgen\ *) -+fi + fi +-done -- # getspnam was not found and we already had libgen -- # nothing to do here by default -- true -- ;; -- *) -- # getspnam was not found, try adding libgen -- { $as_echo "$as_me:$LINENO: checking for getspnam in -lgen" >&5 --$as_echo_n "checking for getspnam in -lgen... " >&6; } --if test "${ac_cv_lib_gen_getspnam+set}" = set; then +- +- +-for ac_func in set_auth_parameters +-do +-as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +-{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 +-$as_echo_n "checking for $ac_func... " >&6; } +-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then +############################################### +# test for where we get yp_get_default_domain() from +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing yp_get_default_domain" >&5 @@ -53790,9 +52809,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure +if test "${ac_cv_search_yp_get_default_domain+set}" = set; then : $as_echo_n "(cached) " >&6 else -- ac_check_lib_save_LIBS=$LIBS --LIBS="-lgen $LIBS" --cat >conftest.$ac_ext <<_ACEOF +- cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext @@ -53800,18 +52817,42 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ +-/* Define $ac_func to an innocuous variant, in case declares $ac_func. +- For example, HP-UX 11i declares gettimeofday. */ +-#define $ac_func innocuous_$ac_func +- +-/* System header to define __stub macros and hopefully few prototypes, +- which can conflict with char $ac_func (); below. +- Prefer to if __STDC__ is defined, since +- exists even on freestanding compilers. */ +- +-#ifdef __STDC__ +-# include +-#else +-# include +-#endif +- +-#undef $ac_func /* Override any GCC internal prototype to avoid an error. -@@ -48310,213 +14929,299 @@ + Use char because int might match the return type of a GCC +@@ -47704,316 +14740,299 @@ #ifdef __cplusplus extern "C" #endif --char getspnam (); +-char $ac_func (); +-/* 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_$ac_func || defined __stub___$ac_func +-choke me +-#endif +- +char yp_get_default_domain (); int main () { --return getspnam (); +-return $ac_func (); +return yp_get_default_domain (); ; return 0; @@ -53838,7 +52879,10 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - test "$cross_compiling" = yes || - $as_test_x conftest$ac_exeext - }; then -- ac_cv_lib_gen_getspnam=yes +- eval "$as_ac_var=yes" +-else +- $as_echo "$as_me: failed program was:" >&5 +-sed 's/^/| /' conftest.$ac_ext >&5 +for ac_lib in '' nsl; do + if test -z "$ac_lib"; then + ac_res="none required" @@ -53856,44 +52900,48 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure +fi +done +if test "${ac_cv_search_yp_get_default_domain+set}" = set; then : -+ - else -- $as_echo "$as_me: failed program was:" >&5 --sed 's/^/| /' conftest.$ac_ext >&5 + +- eval "$as_ac_var=no" ++else + ac_cv_search_yp_get_default_domain=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS -+fi + fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_yp_get_default_domain" >&5 +$as_echo "$ac_cv_search_yp_get_default_domain" >&6; } +ac_res=$ac_cv_search_yp_get_default_domain +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" -- ac_cv_lib_gen_getspnam=no - fi - -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 +-ac_res=`eval 'as_val=${'$as_ac_var'} +- $as_echo "$as_val"'` +- { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +-$as_echo "$ac_res" >&6; } +-as_val=`eval 'as_val=${'$as_ac_var'} +- $as_echo "$as_val"'` +- if test "x$as_val" = x""yes; then ++ +for ac_func in yp_get_default_domain +do : + ac_fn_c_check_func "$LINENO" "yp_get_default_domain" "ac_cv_func_yp_get_default_domain" +if test "x$ac_cv_func_yp_get_default_domain" = x""yes; then : -+ cat >>confdefs.h <<_ACEOF + cat >>confdefs.h <<_ACEOF +-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 +#define HAVE_YP_GET_DEFAULT_DOMAIN 1 -+_ACEOF -+ - fi --{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_gen_getspnam" >&5 --$as_echo "$ac_cv_lib_gen_getspnam" >&6; } --if test "x$ac_cv_lib_gen_getspnam" = x""yes; then + _ACEOF + +- # set_auth_parameters was found in libc or existing $LIBS ++fi +done -- LIBS="-lgen $LIBS" +-cat >>confdefs.h <<\_ACEOF +-#define HAVE_SET_AUTH_PARAMETERS 1 +# Check if we have execl, if not we need to compile smbrun. +for ac_func in execl +do : @@ -53901,17 +52949,82 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure +if test "x$ac_cv_func_execl" = x""yes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_EXECL 1 -+_ACEOF -+ + _ACEOF + +fi +done --cat >>confdefs.h <<\_ACEOF --#define HAVE_GETSPNAM 1 +if test x"$ac_cv_func_execl" = x"no"; then + EXTRA_BIN_PROGS="$EXTRA_BIN_PROGS bin/smbrun\$(EXEEXT)" +fi -+ + +-else +- +- # set_auth_parameters was not found, try adding libsec +- case " $LIBS " in +- *\ -lsec\ *) +- +- # set_auth_parameters was not found and we already had libsec +- # nothing to do here by default +- true +- +- ;; +- *) +- # set_auth_parameters was not found, try adding libsec +- { $as_echo "$as_me:$LINENO: checking for set_auth_parameters in -lsec" >&5 +-$as_echo_n "checking for set_auth_parameters in -lsec... " >&6; } +-if test "${ac_cv_lib_sec_set_auth_parameters+set}" = set; then +- $as_echo_n "(cached) " >&6 +-else +- ac_check_lib_save_LIBS=$LIBS +-LIBS="-lsec $LIBS" +-cat >conftest.$ac_ext <<_ACEOF +-/* confdefs.h. */ +-_ACEOF +-cat confdefs.h >>conftest.$ac_ext +-cat >>conftest.$ac_ext <<_ACEOF +-/* end confdefs.h. */ +- +-/* Override any 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 +-char set_auth_parameters (); +-int +-main () +-{ +-return set_auth_parameters (); +- ; +- return 0; +-} +-_ACEOF +-rm -f conftest.$ac_objext conftest$ac_exeext +-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 +- $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_sec_set_auth_parameters=yes +-else +- $as_echo "$as_me: failed program was:" >&5 +-sed 's/^/| /' conftest.$ac_ext >&5 +for ac_func in getcwd fchown chmod fchmod mknod mknod64 +do : + as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` @@ -53921,8 +53034,9 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF -+ -+fi + +- ac_cv_lib_sec_set_auth_parameters=no + fi +done + +for ac_func in strtol @@ -53931,12 +53045,48 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure +if test "x$ac_cv_func_strtol" = x""yes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_STRTOL 1 ++_ACEOF + +-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 +-{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_sec_set_auth_parameters" >&5 +-$as_echo "$ac_cv_lib_sec_set_auth_parameters" >&6; } +-if test "x$ac_cv_lib_sec_set_auth_parameters" = x""yes; then ++done + +- LIBS="-lsec $LIBS" ++for ac_func in strchr chflags ++do : ++ as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ++ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" ++eval as_val=\$$as_ac_var ++ if test "x$as_val" = x""yes; then : ++ cat >>confdefs.h <<_ACEOF ++#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 ++_ACEOF + ++fi ++done + +-cat >>confdefs.h <<\_ACEOF +-#define HAVE_SET_AUTH_PARAMETERS 1 ++for ac_func in getrlimit fsync fdatasync setpgid ++do : ++ as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ++ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" ++eval as_val=\$$as_ac_var ++ if test "x$as_val" = x""yes; then : ++ cat >>confdefs.h <<_ACEOF ++#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF +fi +done -+for ac_func in strchr chflags ++for ac_func in setsid glob strpbrk crypt16 getauthuid +do : + as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" @@ -53950,7 +53100,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure +fi +done -+for ac_func in getrlimit fsync fdatasync setpgid ++for ac_func in sigprocmask sigblock sigaction sigset innetgr setnetgrent getnetgrent endnetgrent +do : + as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" @@ -53960,13 +53110,13 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure +#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF -- # getspnam was not found in libgen +- # set_auth_parameters was not found in libsec - # nothing to do here by default - true +fi +done -+for ac_func in setsid glob strpbrk crypt16 getauthuid ++for ac_func in initgroups select poll rdchk getgrnam getgrent pathconf +do : + as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" @@ -53981,7 +53131,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - ;; - esac -+for ac_func in sigprocmask sigblock sigaction sigset innetgr setnetgrent getnetgrent endnetgrent ++for ac_func in setpriv setgidx setuidx setgroups sysconf stat64 fstat64 +do : + as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" @@ -53994,7 +53144,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure fi done -+for ac_func in initgroups select poll rdchk getgrnam getgrent pathconf ++for ac_func in lstat64 fopen64 atexit grantpt lseek64 ftruncate64 posix_fallocate posix_fallocate64 +do : + as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" @@ -54007,7 +53157,8 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure +fi +done -+for ac_func in setpriv setgidx setuidx setgroups sysconf stat64 fstat64 +-# UnixWare 7.x has its getspnam in -lgen ++for ac_func in fseek64 fseeko64 ftell64 ftello64 setluid getpwanam +do : + as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" @@ -54030,7 +53181,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -+for ac_func in lstat64 fopen64 atexit grantpt lseek64 ftruncate64 ++for ac_func in opendir64 readdir64 seekdir64 telldir64 rewinddir64 closedir64 +do : + as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" @@ -54050,28 +53201,24 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - which can conflict with char $ac_func (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ -+fi -+done - +- -#ifdef __STDC__ -# include -#else -# include -#endif -+for ac_func in fseek64 fseeko64 ftell64 ftello64 setluid getpwanam -+do : -+ as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -+ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" -+eval as_val=\$$as_ac_var -+ if test "x$as_val" = x""yes; then : -+ cat >>confdefs.h <<_ACEOF -+#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 -+_ACEOF - --#undef $ac_func +fi +done +-#undef $ac_func ++for ac_func in getpwent_r ++do : ++ ac_fn_c_check_func "$LINENO" "getpwent_r" "ac_cv_func_getpwent_r" ++if test "x$ac_cv_func_getpwent_r" = x""yes; then : ++ cat >>confdefs.h <<_ACEOF ++#define HAVE_GETPWENT_R 1 ++_ACEOF + -/* 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. */ @@ -54085,15 +53232,8 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -#if defined __stub_$ac_func || defined __stub___$ac_func -choke me -#endif -+for ac_func in opendir64 readdir64 seekdir64 telldir64 rewinddir64 closedir64 -+do : -+ as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -+ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" -+eval as_val=\$$as_ac_var -+ if test "x$as_val" = x""yes; then : -+ cat >>confdefs.h <<_ACEOF -+#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 -+_ACEOF ++fi ++done -int -main () @@ -54102,15 +53242,12 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - ; - return 0; -} -+fi -+done -+ -+for ac_func in getpwent_r ++for ac_func in getdents64 +do : -+ ac_fn_c_check_func "$LINENO" "getpwent_r" "ac_cv_func_getpwent_r" -+if test "x$ac_cv_func_getpwent_r" = x""yes; then : ++ ac_fn_c_check_func "$LINENO" "getdents64" "ac_cv_func_getdents64" ++if test "x$ac_cv_func_getdents64" = x""yes; then : + cat >>confdefs.h <<_ACEOF -+#define HAVE_GETPWENT_R 1 ++#define HAVE_GETDENTS64 1 _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" @@ -54141,19 +53278,11 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - eval "$as_ac_var=no" fi +done -+ -+for ac_func in getdents64 -+do : -+ ac_fn_c_check_func "$LINENO" "getdents64" "ac_cv_func_getdents64" -+if test "x$ac_cv_func_getdents64" = x""yes; then : -+ cat >>confdefs.h <<_ACEOF -+#define HAVE_GETDENTS64 1 -+_ACEOF -rm -rf conftest.dSYM -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext - fi +-fi -ac_res=`eval 'as_val=${'$as_ac_var'} - $as_echo "$as_val"'` - { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 @@ -54161,8 +53290,6 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -as_val=`eval 'as_val=${'$as_ac_var'} - $as_echo "$as_val"'` - if test "x$as_val" = x""yes; then -+done -+ +for ac_func in setenv strcasecmp fcvt fcvtl +do : + as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` @@ -54176,7 +53303,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - # getspnam was found in libc or existing $LIBS +fi +done - ++ +for ac_func in syslog vsyslog timegm +do : + as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` @@ -54187,11 +53314,11 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure +#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF --cat >>confdefs.h <<\_ACEOF --#define HAVE_GETSPNAM 1 +fi +done -+ + +-cat >>confdefs.h <<\_ACEOF +-#define HAVE_GETSPNAM 1 +for ac_func in setlocale nl_langinfo +do : + as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` @@ -54215,11 +53342,11 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure else -- # getspnam was not found, try adding libsecurity +- # getspnam was not found, try adding libgen - case " $LIBS " in -- *\ -lsecurity\ *) +- *\ -lgen\ *) -- # getspnam was not found and we already had libsecurity +- # getspnam was not found and we already had libgen - # nothing to do here by default - true +ac_check_lib_ext_save_LIBS=$LIBS @@ -54227,10 +53354,10 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - ;; - *) -- # getspnam was not found, try adding libsecurity -- { $as_echo "$as_me:$LINENO: checking for getspnam in -lsecurity" >&5 --$as_echo_n "checking for getspnam in -lsecurity... " >&6; } --if test "${ac_cv_lib_security_getspnam+set}" = set; then +- # getspnam was not found, try adding libgen +- { $as_echo "$as_me:$LINENO: checking for getspnam in -lgen" >&5 +-$as_echo_n "checking for getspnam in -lgen... " >&6; } +-if test "${ac_cv_lib_gen_getspnam+set}" = set; then + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for nanosleep in -lrt" >&5 @@ -54239,7 +53366,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo_n "(cached) " >&6 else - ac_check_lib_save_LIBS=$LIBS --LIBS="-lsecurity $LIBS" +-LIBS="-lgen $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF @@ -54249,7 +53376,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. -@@ -48525,111 +15230,155 @@ +@@ -48022,112 +15041,179 @@ #ifdef __cplusplus extern "C" #endif @@ -54285,31 +53412,21 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - test "$cross_compiling" = yes || - $as_test_x conftest$ac_exeext - }; then -- ac_cv_lib_security_getspnam=yes +- ac_cv_lib_gen_getspnam=yes +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_ext_rt_nanosleep=yes; + ac_cv_lib_ext_rt=yes else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 -- -- ac_cv_lib_security_getspnam=no + ac_cv_lib_ext_rt_nanosleep=no; + ac_cv_lib_ext_rt=no - fi ++fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext --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 +- ac_cv_lib_gen_getspnam=no fi --{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_security_getspnam" >&5 --$as_echo "$ac_cv_lib_security_getspnam" >&6; } --if test "x$ac_cv_lib_security_getspnam" = x""yes; then -- -- LIBS="-lsecurity $LIBS" +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ext_rt_nanosleep" >&5 +$as_echo "$ac_cv_lib_ext_rt_nanosleep" >&6; } + if test $ac_cv_lib_ext_rt_nanosleep = yes; then : @@ -54317,16 +53434,22 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure +#define HAVE_NANOSLEEP 1 +_ACEOF -+fi +-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 +-{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_gen_getspnam" >&5 +-$as_echo "$ac_cv_lib_gen_getspnam" >&6; } +-if test "x$ac_cv_lib_gen_getspnam" = x""yes; then +LIBS=$ac_check_lib_ext_save_LIBS --cat >>confdefs.h <<\_ACEOF --#define HAVE_GETSPNAM 1 +- LIBS="-lgen $LIBS" +if test $ac_cv_lib_ext_rt = yes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBRT 1 - _ACEOF - ++_ACEOF ++ + case "$LIBS" in + *-lrt*) + ;; @@ -54336,10 +53459,22 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure + esac --else +-cat >>confdefs.h <<\_ACEOF +-#define HAVE_GETSPNAM 1 +fi +fi +done ++ ++for ac_func in utimensat ++do : ++ ac_fn_c_check_func "$LINENO" "utimensat" "ac_cv_func_utimensat" ++if test "x$ac_cv_func_utimensat" = x""yes; then : ++ cat >>confdefs.h <<_ACEOF ++#define HAVE_UTIMENSAT 1 + _ACEOF + ++fi ++done +for ac_func in mlock munlock mlockall munlockall +do : @@ -54351,9 +53486,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure +#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF -- # getspnam was not found in libsecurity -- # nothing to do here by default -- true +-else +fi +done @@ -54367,11 +53500,12 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure +#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF - fi +- # getspnam was not found in libgen +- # nothing to do here by default +- true ++fi +done -- ;; -- esac +for ac_header in sys/mman.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "sys/mman.h" "ac_cv_header_sys_mman_h" "$ac_includes_default" @@ -54381,9 +53515,11 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure +_ACEOF fi -+ - done +- ;; +- esac ++done ++ +# setbuffer, shmget, shm_open are needed for smbtorture +for ac_func in shmget shm_open +do : @@ -54394,11 +53530,24 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF -+ + + fi + done + ++for ac_func in gettext dgettext ++do : ++ as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ++ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" ++eval as_val=\$$as_ac_var ++ if test "x$as_val" = x""yes; then : ++ cat >>confdefs.h <<_ACEOF ++#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 ++_ACEOF + +fi +done -+for ac_func in gettext dgettext ++for ac_func in bindtextdomain textdomain +do : + as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" @@ -54476,7 +53625,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC -@@ -48637,100 +15386,66 @@ +@@ -48135,100 +15221,66 @@ #ifdef __cplusplus extern "C" #endif @@ -54588,27 +53737,27 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - -else - -- # getspnam was not found, try adding libsec +- # getspnam was not found, try adding libsecurity - case " $LIBS " in -- *\ -lsec\ *) +- *\ -lsecurity\ *) - -- # getspnam was not found and we already had libsec +- # getspnam was not found and we already had libsecurity - # nothing to do here by default - true - - ;; - *) -- # getspnam was not found, try adding libsec -- { $as_echo "$as_me:$LINENO: checking for getspnam in -lsec" >&5 --$as_echo_n "checking for getspnam in -lsec... " >&6; } --if test "${ac_cv_lib_sec_getspnam+set}" = set; then +- # getspnam was not found, try adding libsecurity +- { $as_echo "$as_me:$LINENO: checking for getspnam in -lsecurity" >&5 +-$as_echo_n "checking for getspnam in -lsecurity... " >&6; } +-if test "${ac_cv_lib_security_getspnam+set}" = set; then +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for trace_back_stack in -lexc" >&5 +$as_echo_n "checking for trace_back_stack in -lexc... " >&6; } +if test "${ac_cv_lib_exc_trace_back_stack+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS --LIBS="-lsec $LIBS" +-LIBS="-lsecurity $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF @@ -54619,7 +53768,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. -@@ -48739,213 +15454,191 @@ +@@ -48237,212 +15289,191 @@ #ifdef __cplusplus extern "C" #endif @@ -54655,14 +53804,14 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - test "$cross_compiling" = yes || - $as_test_x conftest$ac_exeext - }; then -- ac_cv_lib_sec_getspnam=yes +- ac_cv_lib_security_getspnam=yes +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_exc_trace_back_stack=yes else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -- ac_cv_lib_sec_getspnam=no +- ac_cv_lib_security_getspnam=no + ac_cv_lib_exc_trace_back_stack=no fi - @@ -54673,25 +53822,38 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure + conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi --{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_sec_getspnam" >&5 --$as_echo "$ac_cv_lib_sec_getspnam" >&6; } --if test "x$ac_cv_lib_sec_getspnam" = x""yes; then +-{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_security_getspnam" >&5 +-$as_echo "$ac_cv_lib_security_getspnam" >&6; } +-if test "x$ac_cv_lib_security_getspnam" = x""yes; then +- +- LIBS="-lsecurity $LIBS" +- +- +-cat >>confdefs.h <<\_ACEOF +-#define HAVE_GETSPNAM 1 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_exc_trace_back_stack" >&5 +$as_echo "$ac_cv_lib_exc_trace_back_stack" >&6; } +if test "x$ac_cv_lib_exc_trace_back_stack" = x""yes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBEXC 1 -+_ACEOF + _ACEOF -- LIBS="-lsec $LIBS" +- +- +-else +- +- +- # getspnam was not found in libsecurity +- # nothing to do here by default +- true +- + LIBS="-lexc $LIBS" -+fi - --cat >>confdefs.h <<\_ACEOF --#define HAVE_GETSPNAM 1 --_ACEOF + fi +- ;; +- esac ++ +# check for sysctlbyname for BSD systems +for ac_func in sysctlbyname +do : @@ -54701,77 +53863,13 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure +#define HAVE_SYSCTLBYNAME 1 +_ACEOF -+fi -+done - --else - -+############################# -+# check if building with gpfs -+for ac_header in gpfs_gpl.h -+do : -+ ac_fn_c_check_header_mongrel "$LINENO" "gpfs_gpl.h" "ac_cv_header_gpfs_gpl_h" "$ac_includes_default" -+if test "x$ac_cv_header_gpfs_gpl_h" = x""yes; then : -+ cat >>confdefs.h <<_ACEOF -+#define HAVE_GPFS_GPL_H 1 -+_ACEOF - -- # getspnam was not found in libsec -- # nothing to do here by default -- true -+fi - -+done - --fi -+if test x"$ac_cv_header_gpfs_gpl_h" = x"yes"; then - -- ;; -- esac -+$as_echo "#define HAVE_GPFS 1" >>confdefs.h - -+ default_shared_modules="$default_shared_modules vfs_gpfs" fi --done + done -+############################################# -+# check if building on Isilon OneFS -+printf "%s" "checking for Isilon OneFS... " -+save_LIBS="$LIBS" -+LIBS="$LIBS -lisi_version" -+cat confdefs.h - <<_ACEOF >conftest.$ac_ext -+/* end confdefs.h. */ -+#include -+int -+main () -+{ -+get_isilon_copyright() -+ ; -+ return 0; -+} -+_ACEOF -+if ac_fn_c_try_link "$LINENO"; then : -+ samba_cv_HAVE_ONEFS=yes -+else -+ samba_cv_HAVE_ONEFS=no -+fi -+rm -f core conftest.err conftest.$ac_objext \ -+ conftest$ac_exeext conftest.$ac_ext -+echo $samba_cv_HAVE_ONEFS -+if test x"$samba_cv_HAVE_ONEFS" = x"yes"; then -+$as_echo "#define HAVE_ONEFS 1" >>confdefs.h - -+ default_shared_modules="$default_shared_modules vfs_onefs vfs_onefs_shadow_copy perfcount_onefs" -+ default_static_modules="$default_static_modules" -+ ONEFS_LIBS="-lisi_acl -lisi_ecs -lisi_event -lisi_util" -+ # Need to also add general libs for oplocks support -+ save_LIBS="$save_LIBS -lisi_ecs -lisi_event -lisi_util -ldevstat" -+fi - -+LIBS="$save_LIBS" - --for ac_func in bigcrypt +- +- +-for ac_func in getspnam -do -as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 @@ -54781,31 +53879,26 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ --_ACEOF ++############################# ++# check if building with gpfs ++for ac_header in gpfs_gpl.h ++do : ++ ac_fn_c_check_header_mongrel "$LINENO" "gpfs_gpl.h" "ac_cv_header_gpfs_gpl_h" "$ac_includes_default" ++if test "x$ac_cv_header_gpfs_gpl_h" = x""yes; then : ++ cat >>confdefs.h <<_ACEOF ++#define HAVE_GPFS_GPL_H 1 + _ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define $ac_func to an innocuous variant, in case declares $ac_func. - For example, HP-UX 11i declares gettimeofday. */ -#define $ac_func innocuous_$ac_func -+# Note that all the libunwind symbols in the API are defined to internal -+# platform-specific version, so we must include libunwind.h before checking -+# any of them. -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for libunwind" >&5 -+$as_echo_n "checking for libunwind... " >&6; } -+save_LIBS=$LIBS -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char $ac_func (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ -+UNWIND_ARCH="unknown" -+if test x"$UNAME_I" != x"unknown"; then -+ UNWIND_ARCH="$UNAME_I" -+elif test x"$UNAME_M" != x"unknown"; then -+ UNWIND_ARCH="$UNAME_M" -+elif test x"$UNAME_P" != x"unknown"; then -+ UNWIND_ARCH="$UNAME_P" +fi -#ifdef __STDC__ @@ -54813,26 +53906,10 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -#else -# include -#endif -+case "$UNWIND_ARCH" in -+ unknown) -+ # This probably won't link without -+ # the platform-specific libunwind. -+ LIBS="$LIBS -lunwind" -+ ;; -+ i386|i586|i686) -+ # Add the platform-specific libunwind module. -+ LIBS="$LIBS -lunwind -lunwind-x86" -+ ;; -+ *) -+ # Add the platform-specific libunwind module. -+ # based on uname -i, uname -m or uname -p -+ LIBS="$LIBS -lunwind -lunwind-$UNWIND_ARCH" -+ ;; -+esac ++done -#undef $ac_func -+cat confdefs.h - <<_ACEOF >conftest.$ac_ext -+/* end confdefs.h. */ ++if test x"$ac_cv_header_gpfs_gpl_h" = x"yes"; then -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC @@ -54846,20 +53923,25 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - something starting with __ and the normal name is an alias. */ -#if defined __stub_$ac_func || defined __stub___$ac_func -choke me -+#ifdef HAVE_LIBUNWIND_H -+#include - #endif +-#endif ++$as_echo "#define HAVE_GPFS 1" >>confdefs.h ++ ++ default_shared_modules="$default_shared_modules vfs_gpfs" ++fi ++############################################# ++# check if building on Isilon OneFS ++printf "%s" "checking for Isilon OneFS... " ++save_LIBS="$LIBS" ++LIBS="$LIBS -lisi_version" ++cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++#include int main () { -return $ac_func (); -+ -+ unw_context_t ctx; unw_cursor_t cur; -+ char buf[256]; unw_word_t off; -+ unw_getcontext(&ctx); unw_init_local(&cur, &ctx); -+ unw_get_proc_name(&cur, buf, sizeof(buf), &off); -+ ++get_isilon_copyright() ; return 0; } @@ -54886,18 +53968,48 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - $as_test_x conftest$ac_exeext - }; then - eval "$as_ac_var=yes" --else ++if ac_fn_c_try_link "$LINENO"; then : ++ samba_cv_HAVE_ONEFS=yes + else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 -- ++ samba_cv_HAVE_ONEFS=no ++fi ++rm -f core conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext ++echo $samba_cv_HAVE_ONEFS ++if test x"$samba_cv_HAVE_ONEFS" = x"yes"; then + - eval "$as_ac_var=no" --fi -+if ac_fn_c_try_link "$LINENO"; then : ++$as_echo "#define HAVE_ONEFS 1" >>confdefs.h ++ ++ default_shared_modules="$default_shared_modules vfs_onefs vfs_onefs_shadow_copy perfcount_onefs" ++ default_static_modules="$default_static_modules" ++ ONEFS_LIBS="-lisi_acl -lisi_ecs -lisi_event -lisi_util" ++ # Need to also add general libs for oplocks support ++ save_LIBS="$save_LIBS -lisi_ecs -lisi_event -lisi_util -ldevstat" + fi -rm -rf conftest.dSYM -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext --fi ++LIBS="$save_LIBS" ++ ++# Note that all the libunwind symbols in the API are defined to internal ++# platform-specific version, so we must include libunwind.h before checking ++# any of them. ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for libunwind" >&5 ++$as_echo_n "checking for libunwind... " >&6; } ++save_LIBS=$LIBS ++ ++UNWIND_ARCH="unknown" ++if test x"$UNAME_I" != x"unknown"; then ++ UNWIND_ARCH="$UNAME_I" ++elif test x"$UNAME_M" != x"unknown"; then ++ UNWIND_ARCH="$UNAME_M" ++elif test x"$UNAME_P" != x"unknown"; then ++ UNWIND_ARCH="$UNAME_P" + fi -ac_res=`eval 'as_val=${'$as_ac_var'} - $as_echo "$as_val"'` - { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 @@ -54908,15 +54020,59 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF + +- # getspnam was found in libc or existing $LIBS ++case "$UNWIND_ARCH" in ++ unknown) ++ # This probably won't link without ++ # the platform-specific libunwind. ++ LIBS="$LIBS -lunwind" ++ ;; ++ i386|i586|i686) ++ # Add the platform-specific libunwind module. ++ LIBS="$LIBS -lunwind -lunwind-x86" ++ ;; ++ *) ++ # Add the platform-specific libunwind module. ++ # based on uname -i, uname -m or uname -p ++ LIBS="$LIBS -lunwind -lunwind-$UNWIND_ARCH" ++ ;; ++esac ++ ++cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++ ++#ifdef HAVE_LIBUNWIND_H ++#include ++#endif ++ ++int ++main () ++{ + ++ unw_context_t ctx; unw_cursor_t cur; ++ char buf[256]; unw_word_t off; ++ unw_getcontext(&ctx); unw_init_local(&cur, &ctx); ++ unw_get_proc_name(&cur, buf, sizeof(buf), &off); + +-cat >>confdefs.h <<\_ACEOF +-#define HAVE_GETSPNAM 1 ++ ; ++ return 0; ++} + _ACEOF ++if ac_fn_c_try_link "$LINENO"; then : + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } -- # bigcrypt was found in libc or existing $LIBS +$as_echo "#define HAVE_LIBUNWIND 1" >>confdefs.h +-else --cat >>confdefs.h <<\_ACEOF --#define HAVE_BIGCRYPT 1 +- # getspnam was not found, try adding libsec +- case " $LIBS " in +- *\ -lsec\ *) + # If we have libunwind, test whether we also have libunwind-ptrace + # which would let us unwind arbitrary processes. + save_LIBS=$LIBS @@ -54926,35 +54082,28 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure +if test "x$ac_cv_header_libunwind_ptrace_h" = x""yes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBUNWIND_PTRACE_H 1 - _ACEOF ++_ACEOF -+fi - -+done - --else -- -- # bigcrypt was not found, try adding libsecurity -- case " $LIBS " in -- *\ -lsecurity\ *) -- -- # bigcrypt was not found and we already had libsecurity +- # getspnam was not found and we already had libsec - # nothing to do here by default - true -- ++fi + - ;; - *) -- # bigcrypt was not found, try adding libsecurity -- { $as_echo "$as_me:$LINENO: checking for bigcrypt in -lsecurity" >&5 --$as_echo_n "checking for bigcrypt in -lsecurity... " >&6; } --if test "${ac_cv_lib_security_bigcrypt+set}" = set; then +- # getspnam was not found, try adding libsec +- { $as_echo "$as_me:$LINENO: checking for getspnam in -lsec" >&5 +-$as_echo_n "checking for getspnam in -lsec... " >&6; } +-if test "${ac_cv_lib_sec_getspnam+set}" = set; then ++done ++ + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _UPT_create in -lunwind-ptrace" >&5 +$as_echo_n "checking for _UPT_create in -lunwind-ptrace... " >&6; } +if test "${ac_cv_lib_unwind_ptrace__UPT_create+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS --LIBS="-lsecurity $LIBS" +-LIBS="-lsec $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF @@ -54965,16 +54114,16 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. -@@ -48954,754 +15647,594 @@ +@@ -48451,969 +15482,594 @@ #ifdef __cplusplus extern "C" #endif --char bigcrypt (); +-char getspnam (); +char _UPT_create (); int main () { --return bigcrypt (); +-return getspnam (); +return _UPT_create (); ; return 0; @@ -55001,14 +54150,14 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - test "$cross_compiling" = yes || - $as_test_x conftest$ac_exeext - }; then -- ac_cv_lib_security_bigcrypt=yes +- ac_cv_lib_sec_getspnam=yes +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_unwind_ptrace__UPT_create=yes else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -- ac_cv_lib_security_bigcrypt=no +- ac_cv_lib_sec_getspnam=no + ac_cv_lib_unwind_ptrace__UPT_create=no fi - @@ -55019,18 +54168,18 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure + conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi --{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_security_bigcrypt" >&5 --$as_echo "$ac_cv_lib_security_bigcrypt" >&6; } --if test "x$ac_cv_lib_security_bigcrypt" = x""yes; then +-{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_sec_getspnam" >&5 +-$as_echo "$ac_cv_lib_sec_getspnam" >&6; } +-if test "x$ac_cv_lib_sec_getspnam" = x""yes; then - -- LIBS="-lsecurity $LIBS" +- LIBS="-lsec $LIBS" - +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_unwind_ptrace__UPT_create" >&5 +$as_echo "$ac_cv_lib_unwind_ptrace__UPT_create" >&6; } +if test "x$ac_cv_lib_unwind_ptrace__UPT_create" = x""yes; then : -cat >>confdefs.h <<\_ACEOF --#define HAVE_BIGCRYPT 1 +-#define HAVE_GETSPNAM 1 -_ACEOF + LIBUNWIND_PTRACE="-lunwind-ptrace"; @@ -55040,7 +54189,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure else - - -- # bigcrypt was not found in libsecurity +- # getspnam was not found in libsec - # nothing to do here by default - true - @@ -55050,9 +54199,10 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - ;; - esac - +- -fi -done + + LIBS=$save_LIBS +else @@ -55193,19 +54343,30 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -as_val=`eval 'as_val=${'$as_ac_var'} - $as_echo "$as_val"'` - if test "x$as_val" = x""yes; then -- cat >>confdefs.h <<_ACEOF --#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 --_ACEOF +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi ++ ++ ++ ++for ac_func in _dup _dup2 _opendir _readdir _seekdir _telldir _closedir ++do : ++ as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ++ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" ++eval as_val=\$$as_ac_var ++ if test "x$as_val" = x""yes; then : + cat >>confdefs.h <<_ACEOF + #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 + _ACEOF - # bigcrypt was found in libc or existing $LIBS - +- ++fi ++done -cat >>confdefs.h <<\_ACEOF -#define HAVE_BIGCRYPT 1 -+for ac_func in _dup _dup2 _opendir _readdir _seekdir _telldir _closedir ++for ac_func in __dup __dup2 __opendir __readdir __seekdir __telldir __closedir +do : + as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" @@ -55218,23 +54379,6 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure +fi +done -+for ac_func in __dup __dup2 __opendir __readdir __seekdir __telldir __closedir -+do : -+ as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -+ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" -+eval as_val=\$$as_ac_var -+ if test "x$as_val" = x""yes; then : -+ cat >>confdefs.h <<_ACEOF -+#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 -+_ACEOF - --else -+fi -+done - -- # bigcrypt was not found, try adding libsec -- case " $LIBS " in -- *\ -lsec\ *) +for ac_func in __getcwd _getcwd +do : + as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` @@ -55245,7 +54389,24 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure +#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF -- # bigcrypt was not found and we already had libsec +-else ++fi ++done + +- # bigcrypt was not found, try adding libsecurity +- case " $LIBS " in +- *\ -lsecurity\ *) ++for ac_func in __xstat __fxstat __lxstat ++do : ++ as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ++ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" ++eval as_val=\$$as_ac_var ++ if test "x$as_val" = x""yes; then : ++ cat >>confdefs.h <<_ACEOF ++#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 ++_ACEOF + +- # bigcrypt was not found and we already had libsecurity - # nothing to do here by default - true +fi @@ -55253,17 +54414,17 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - ;; - *) -- # bigcrypt was not found, try adding libsec -- { $as_echo "$as_me:$LINENO: checking for bigcrypt in -lsec" >&5 --$as_echo_n "checking for bigcrypt in -lsec... " >&6; } --if test "${ac_cv_lib_sec_bigcrypt+set}" = set; then +- # bigcrypt was not found, try adding libsecurity +- { $as_echo "$as_me:$LINENO: checking for bigcrypt in -lsecurity" >&5 +-$as_echo_n "checking for bigcrypt in -lsecurity... " >&6; } +-if test "${ac_cv_lib_security_bigcrypt+set}" = set; then - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS --LIBS="-lsec $LIBS" +-LIBS="-lsecurity $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -+for ac_func in __xstat __fxstat __lxstat ++for ac_func in _stat _lstat _fstat __stat __lstat __fstat +do : + as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" @@ -55293,7 +54454,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure +fi +done + -+for ac_func in _stat _lstat _fstat __stat __lstat __fstat ++for ac_func in _acl __acl _facl __facl _open __open _chdir __chdir +do : + as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" @@ -55323,16 +54484,16 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - test "$cross_compiling" = yes || - $as_test_x conftest$ac_exeext - }; then -- ac_cv_lib_sec_bigcrypt=yes +- ac_cv_lib_security_bigcrypt=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 -- ac_cv_lib_sec_bigcrypt=no +- ac_cv_lib_security_bigcrypt=no fi +done + -+for ac_func in _acl __acl _facl __facl _open __open _chdir __chdir ++for ac_func in _close __close _fchdir __fchdir _fcntl __fcntl +do : + as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" @@ -55347,13 +54508,13 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS fi --{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_sec_bigcrypt" >&5 --$as_echo "$ac_cv_lib_sec_bigcrypt" >&6; } --if test "x$ac_cv_lib_sec_bigcrypt" = x""yes; then +-{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_security_bigcrypt" >&5 +-$as_echo "$ac_cv_lib_security_bigcrypt" >&6; } +-if test "x$ac_cv_lib_security_bigcrypt" = x""yes; then +done -- LIBS="-lsec $LIBS" -+for ac_func in _close __close _fchdir __fchdir _fcntl __fcntl +- LIBS="-lsecurity $LIBS" ++for ac_func in getdents __getdents _lseek __lseek _read __read +do : + as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" @@ -55368,7 +54529,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -cat >>confdefs.h <<\_ACEOF -#define HAVE_BIGCRYPT 1 -+for ac_func in getdents __getdents _lseek __lseek _read __read ++for ac_func in getdirentries _write __write _fork __fork +do : + as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" @@ -55381,20 +54542,6 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure +fi +done -+for ac_func in getdirentries _write __write _fork __fork -+do : -+ as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -+ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" -+eval as_val=\$$as_ac_var -+ if test "x$as_val" = x""yes; then : -+ cat >>confdefs.h <<_ACEOF -+#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 -+_ACEOF - --else -+fi -+done - +for ac_func in _stat64 __stat64 _fstat64 __fstat64 _lstat64 __lstat64 +do : + as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` @@ -55405,13 +54552,27 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure +#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF -- # bigcrypt was not found in libsec +-else ++fi ++done + ++for ac_func in __sys_llseek llseek _llseek __llseek readdir64 _readdir64 __readdir64 ++do : ++ as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ++ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" ++eval as_val=\$$as_ac_var ++ if test "x$as_val" = x""yes; then : ++ cat >>confdefs.h <<_ACEOF ++#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 ++_ACEOF + +- # bigcrypt was not found in libsecurity - # nothing to do here by default - true +fi +done -+for ac_func in __sys_llseek llseek _llseek __llseek readdir64 _readdir64 __readdir64 ++for ac_func in pread _pread __pread pread64 _pread64 __pread64 +do : + as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" @@ -55426,7 +54587,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - ;; - esac -+for ac_func in pread _pread __pread pread64 _pread64 __pread64 ++for ac_func in pwrite _pwrite __pwrite pwrite64 _pwrite64 __pwrite64 +do : + as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" @@ -55439,19 +54600,6 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure fi done -+for ac_func in pwrite _pwrite __pwrite pwrite64 _pwrite64 __pwrite64 -+do : -+ as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -+ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" -+eval as_val=\$$as_ac_var -+ if test "x$as_val" = x""yes; then : -+ cat >>confdefs.h <<_ACEOF -+#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 -+_ACEOF - -+fi -+done - +for ac_func in open64 _open64 __open64 creat64 +do : + as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` @@ -55465,7 +54613,8 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure +fi +done --for ac_func in getprpwnam +- +-for ac_func in bigcrypt -do -as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 @@ -55573,8 +54722,16 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -as_val=`eval 'as_val=${'$as_ac_var'} - $as_echo "$as_val"'` - if test "x$as_val" = x""yes; then +- cat >>confdefs.h <<_ACEOF +-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 +-_ACEOF +- +- # bigcrypt was found in libc or existing $LIBS +- +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -+ + +-cat >>confdefs.h <<\_ACEOF +-#define HAVE_BIGCRYPT 1 +# +# +# @@ -55582,63 +54739,277 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure +do : + ac_fn_c_check_func "$LINENO" "getgrouplist" "ac_cv_func_getgrouplist" +if test "x$ac_cv_func_getgrouplist" = x""yes; then : - cat >>confdefs.h <<_ACEOF --#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 ++ cat >>confdefs.h <<_ACEOF +#define HAVE_GETGROUPLIST 1 _ACEOF -- # getprpwnam was found in libc or existing $LIBS +fi +done --cat >>confdefs.h <<\_ACEOF --#define HAVE_GETPRPWNAM 1 --_ACEOF +-else +- +- # bigcrypt was not found, try adding libsec +- case " $LIBS " in +- *\ -lsec\ *) +- +- # bigcrypt was not found and we already had libsec +- # nothing to do here by default +- true +# +# stat64 family may need on some systems, notably ReliantUNIX +# +- ;; +- *) +- # bigcrypt was not found, try adding libsec +- { $as_echo "$as_me:$LINENO: checking for bigcrypt in -lsec" >&5 +-$as_echo_n "checking for bigcrypt in -lsec... " >&6; } +-if test "${ac_cv_lib_sec_bigcrypt+set}" = set; then +- $as_echo_n "(cached) " >&6 +-else +- ac_check_lib_save_LIBS=$LIBS +-LIBS="-lsec $LIBS" +-cat >conftest.$ac_ext <<_ACEOF +-/* confdefs.h. */ +-_ACEOF +-cat confdefs.h >>conftest.$ac_ext +-cat >>conftest.$ac_ext <<_ACEOF +if test x$ac_cv_func_stat64 = xno ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for stat64 in " >&5 +$as_echo_n "checking for stat64 in ... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext -+/* end confdefs.h. */ + /* end confdefs.h. */ +-/* 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" +#if defined(HAVE_UNISTD_H) +#include -+#endif + #endif +-char bigcrypt (); +#include - --else -+int -+main () -+{ ++ + int + main () + { +-return bigcrypt (); +struct stat64 st64; exit(stat64(".",&st64)); -+ ; -+ return 0; -+} -+_ACEOF + ; + return 0; + } + _ACEOF +-rm -f conftest.$ac_objext conftest$ac_exeext +-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 +- $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_sec_bigcrypt=yes +-else +- $as_echo "$as_me: failed program was:" >&5 +-sed 's/^/| /' conftest.$ac_ext >&5 +- +- ac_cv_lib_sec_bigcrypt=no +-fi +- +-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 +-{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_sec_bigcrypt" >&5 +-$as_echo "$ac_cv_lib_sec_bigcrypt" >&6; } +-if test "x$ac_cv_lib_sec_bigcrypt" = x""yes; then +- +- LIBS="-lsec $LIBS" +- +- +-cat >>confdefs.h <<\_ACEOF +-#define HAVE_BIGCRYPT 1 +-_ACEOF +- +- +- +-else +- +- +- # bigcrypt was not found in libsec +- # nothing to do here by default +- true +- +- +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_func_stat64=yes -+fi + fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_stat64" >&5 +$as_echo "$ac_cv_func_stat64" >&6; } + if test x$ac_cv_func_stat64 = xyes ; then +- ;; +- esac ++$as_echo "#define HAVE_STAT64 1" >>confdefs.h + ++ fi + fi +-done +- +- + +- +- +-for ac_func in getprpwnam +-do +-as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +-{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 +-$as_echo_n "checking for $ac_func... " >&6; } +-if { as_var=$as_ac_var; eval "test \"\${$as_var+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 ++if test x$ac_cv_func_lstat64 = xno ; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for lstat64 in " >&5 ++$as_echo_n "checking for lstat64 in ... " >&6; } ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ +-/* Define $ac_func to an innocuous variant, in case declares $ac_func. +- For example, HP-UX 11i declares gettimeofday. */ +-#define $ac_func innocuous_$ac_func +- +-/* System header to define __stub macros and hopefully few prototypes, +- which can conflict with char $ac_func (); below. +- Prefer to if __STDC__ is defined, since +- exists even on freestanding compilers. */ +- +-#ifdef __STDC__ +-# include +-#else +-# include +-#endif +- +-#undef $ac_func + +-/* 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 +-char $ac_func (); +-/* 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_$ac_func || defined __stub___$ac_func +-choke me ++#if defined(HAVE_UNISTD_H) ++#include + #endif ++#include + + int + main () + { +-return $ac_func (); ++struct stat64 st64; exit(lstat64(".",&st64)); + ; + return 0; + } + _ACEOF +-rm -f conftest.$ac_objext conftest$ac_exeext +-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 +- $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 +- eval "$as_ac_var=yes" +-else +- $as_echo "$as_me: failed program was:" >&5 +-sed 's/^/| /' conftest.$ac_ext >&5 +- +- eval "$as_ac_var=no" ++if ac_fn_c_try_link "$LINENO"; then : ++ ac_cv_func_lstat64=yes + fi ++rm -f core conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_lstat64" >&5 ++$as_echo "$ac_cv_func_lstat64" >&6; } ++ if test x$ac_cv_func_lstat64 = xyes ; then ++ $as_echo "#define HAVE_LSTAT64 Whether lstat64() is available" >>confdefs.h + +-rm -rf conftest.dSYM +-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ +- conftest$ac_exeext conftest.$ac_ext ++ fi + fi +-ac_res=`eval 'as_val=${'$as_ac_var'} +- $as_echo "$as_val"'` +- { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +-$as_echo "$ac_res" >&6; } +-as_val=`eval 'as_val=${'$as_ac_var'} +- $as_echo "$as_val"'` +- if test "x$as_val" = x""yes; then +- cat >>confdefs.h <<_ACEOF +-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 +-_ACEOF +- +- # getprpwnam was found in libc or existing $LIBS +- +- +-cat >>confdefs.h <<\_ACEOF +-#define HAVE_GETPRPWNAM 1 +-_ACEOF +- +- +- +-else +- - # getprpwnam was not found, try adding libsecurity - case " $LIBS " in - *\ -lsecurity\ *) -+$as_echo "#define HAVE_STAT64 1" >>confdefs.h - +- - # getprpwnam was not found and we already had libsecurity - # nothing to do here by default - true -+ fi -+fi - +- - ;; - *) - # getprpwnam was not found, try adding libsecurity @@ -55654,17 +55025,19 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -+if test x$ac_cv_func_lstat64 = xno ; then -+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for lstat64 in " >&5 -+$as_echo_n "checking for lstat64 in ... " >&6; } -+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ +-/* end confdefs.h. */ -/* 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" ++if test x$ac_cv_func_fstat64 = xno ; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for fstat64 in " >&5 ++$as_echo_n "checking for fstat64 in ... " >&6; } ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++ +#if defined(HAVE_UNISTD_H) +#include #endif @@ -55675,7 +55048,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure main () { -return getprpwnam (); -+struct stat64 st64; exit(lstat64(".",&st64)); ++struct stat64 st64; exit(fstat64(0,&st64)); ; return 0; } @@ -55708,19 +55081,20 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - - ac_cv_lib_security_getprpwnam=no +if ac_fn_c_try_link "$LINENO"; then : -+ ac_cv_func_lstat64=yes ++ ac_cv_func_fstat64=yes fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_lstat64" >&5 -+$as_echo "$ac_cv_func_lstat64" >&6; } -+ if test x$ac_cv_func_lstat64 = xyes ; then -+ $as_echo "#define HAVE_LSTAT64 Whether lstat64() is available" >>confdefs.h ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_fstat64" >&5 ++$as_echo "$ac_cv_func_fstat64" >&6; } ++ if test x$ac_cv_func_fstat64 = xyes ; then -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 ++$as_echo "#define HAVE_FSTAT64 1" >>confdefs.h ++ + fi fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_security_getprpwnam" >&5 @@ -55728,42 +55102,6 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -if test "x$ac_cv_lib_security_getprpwnam" = x""yes; then - LIBS="-lsecurity $LIBS" -+if test x$ac_cv_func_fstat64 = xno ; then -+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for fstat64 in " >&5 -+$as_echo_n "checking for fstat64 in ... " >&6; } -+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext -+/* end confdefs.h. */ - -+#if defined(HAVE_UNISTD_H) -+#include -+#endif -+#include - --cat >>confdefs.h <<\_ACEOF --#define HAVE_GETPRPWNAM 1 -+int -+main () -+{ -+struct stat64 st64; exit(fstat64(0,&st64)); -+ ; -+ return 0; -+} - _ACEOF -+if ac_fn_c_try_link "$LINENO"; then : -+ ac_cv_func_fstat64=yes -+fi -+rm -f core conftest.err conftest.$ac_objext \ -+ conftest$ac_exeext conftest.$ac_ext -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_fstat64" >&5 -+$as_echo "$ac_cv_func_fstat64" >&6; } -+ if test x$ac_cv_func_fstat64 = xyes ; then - -+$as_echo "#define HAVE_FSTAT64 1" >>confdefs.h - -+ fi -+fi - --else +################################################# +# Check whether struct stat has timestamps with sub-second resolution. +# @@ -55772,33 +55110,34 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure +ac_fn_c_check_member "$LINENO" "struct stat" "st_mtim.tv_nsec" "ac_cv_member_struct_stat_st_mtim_tv_nsec" "$ac_includes_default" +if test "x$ac_cv_member_struct_stat_st_mtim_tv_nsec" = x""yes; then : -- # getprpwnam was not found in libsecurity -- # nothing to do here by default -- true +-cat >>confdefs.h <<\_ACEOF +-#define HAVE_GETPRPWNAM 1 +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC 1 -+_ACEOF -+ + _ACEOF + +# Linux, Solaris + samba_cv_stat_hires=yes +fi +ac_fn_c_check_member "$LINENO" "struct stat" "st_mtimensec" "ac_cv_member_struct_stat_st_mtimensec" "$ac_includes_default" +if test "x$ac_cv_member_struct_stat_st_mtimensec" = x""yes; then : -+ + +-else +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_STAT_ST_MTIMENSEC 1 +_ACEOF +# BSD, if defined _POSIX_SOURCE + samba_cv_stat_hires=yes - fi ++fi -- ;; -- esac +- # getprpwnam was not found in libsecurity +- # nothing to do here by default +- true +ac_fn_c_check_member "$LINENO" "struct stat" "st_mtimespec.tv_nsec" "ac_cv_member_struct_stat_st_mtimespec_tv_nsec" "$ac_includes_default" +if test "x$ac_cv_member_struct_stat_st_mtimespec_tv_nsec" = x""yes; then : -+ + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_STAT_ST_MTIMESPEC_TV_NSEC 1 +_ACEOF @@ -55806,8 +55145,9 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure +# BSD, if not defined _POSIX_SOURCE + samba_cv_stat_hires=yes fi --done +- ;; +- esac +ac_fn_c_check_member "$LINENO" "struct stat" "st_mtime_n" "ac_cv_member_struct_stat_st_mtime_n" "$ac_includes_default" +if test "x$ac_cv_member_struct_stat_st_mtime_n" = x""yes; then : + @@ -55817,11 +55157,20 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure +# AIX + samba_cv_stat_hires=yes -+fi + fi +-done +ac_fn_c_check_member "$LINENO" "struct stat" "st_umtime" "ac_cv_member_struct_stat_st_umtime" "$ac_includes_default" +if test "x$ac_cv_member_struct_stat_st_umtime" = x""yes; then : ++cat >>confdefs.h <<_ACEOF ++#define HAVE_STRUCT_STAT_ST_UMTIME 1 ++_ACEOF + ++# Tru64 ++ samba_cv_stat_hires=yes ++fi + -for ac_func in getprpwnam -do -as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` @@ -55832,9 +55181,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -+cat >>confdefs.h <<_ACEOF -+#define HAVE_STRUCT_STAT_ST_UMTIME 1 - _ACEOF +-_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ @@ -55846,18 +55193,17 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - which can conflict with char $ac_func (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ -+# Tru64 -+ samba_cv_stat_hires=yes -+fi ++if test x"$samba_cv_stat_hires" = x"yes" ; then -#ifdef __STDC__ -# include -#else -# include -#endif ++$as_echo "#define HAVE_STAT_HIRES_TIMESTAMPS 1" >>confdefs.h -#undef $ac_func -+if test x"$samba_cv_stat_hires" = x"yes" ; then ++fi -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC @@ -55872,7 +55218,9 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -#if defined __stub_$ac_func || defined __stub___$ac_func -choke me -#endif -+$as_echo "#define HAVE_STAT_HIRES_TIMESTAMPS 1" >>confdefs.h ++# recent FreeBSD, NetBSD have creation timestamps called birthtime: ++ac_fn_c_check_member "$LINENO" "struct stat" "st_birthtimespec.tv_nsec" "ac_cv_member_struct_stat_st_birthtimespec_tv_nsec" "$ac_includes_default" ++if test "x$ac_cv_member_struct_stat_st_birthtimespec_tv_nsec" = x""yes; then : -int -main () @@ -55881,12 +55229,6 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - ; - return 0; -} -+fi -+ -+# recent FreeBSD, NetBSD have creation timestamps called birthtime: -+ac_fn_c_check_member "$LINENO" "struct stat" "st_birthtimespec.tv_nsec" "ac_cv_member_struct_stat_st_birthtimespec_tv_nsec" "$ac_includes_default" -+if test "x$ac_cv_member_struct_stat_st_birthtimespec_tv_nsec" = x""yes; then : -+ +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_STAT_ST_BIRTHTIMESPEC_TV_NSEC 1 _ACEOF @@ -56081,9 +55423,9 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure fi -done +- +- -- -- - -for ac_func in strsignal -do @@ -56126,7 +55468,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC -@@ -49709,85 +16242,43 @@ +@@ -49421,85 +16077,43 @@ #ifdef __cplusplus extern "C" #endif @@ -56232,7 +55574,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. -@@ -49796,108 +16287,44 @@ +@@ -49508,108 +16122,44 @@ #ifdef __cplusplus extern "C" #endif @@ -56363,7 +55705,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC -@@ -49905,103 +16332,80 @@ +@@ -49617,103 +16167,80 @@ #ifdef __cplusplus extern "C" #endif @@ -56412,28 +55754,18 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 -+ ac_cv_lib_resolv___dn_expand=no -+fi -+rm -f core conftest.err conftest.$ac_objext \ -+ conftest$ac_exeext conftest.$ac_ext -+LIBS=$ac_check_lib_save_LIBS -+fi -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_resolv___dn_expand" >&5 -+$as_echo "$ac_cv_lib_resolv___dn_expand" >&6; } -+if test "x$ac_cv_lib_resolv___dn_expand" = x""yes; then : -+ cat >>confdefs.h <<_ACEOF -+#define HAVE_LIBRESOLV 1 -+_ACEOF -+ -+ LIBS="-lresolv $LIBS" - +- - eval "$as_ac_var=no" ++ ac_cv_lib_resolv___dn_expand=no fi - +- -rm -rf conftest.dSYM -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext --fi ++rm -f core conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext ++LIBS=$ac_check_lib_save_LIBS + fi -ac_res=`eval 'as_val=${'$as_ac_var'} - $as_echo "$as_val"'` - { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 @@ -56441,7 +55773,20 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -as_val=`eval 'as_val=${'$as_ac_var'} - $as_echo "$as_val"'` - if test "x$as_val" = x""yes; then ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_resolv___dn_expand" >&5 ++$as_echo "$ac_cv_lib_resolv___dn_expand" >&6; } ++if test "x$ac_cv_lib_resolv___dn_expand" = x""yes; then : + cat >>confdefs.h <<_ACEOF +-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 ++#define HAVE_LIBRESOLV 1 + _ACEOF + ++ LIBS="-lresolv $LIBS" + + fi +-done + + +# +# Check for the functions putprpwnam, set_auth_parameters, +# getspnam, bigcrypt and getprpwnam in -lsec and -lsecurity @@ -56453,16 +55798,13 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure +do : + ac_fn_c_check_func "$LINENO" "putprpwnam" "ac_cv_func_putprpwnam" +if test "x$ac_cv_func_putprpwnam" = x""yes; then : - cat >>confdefs.h <<_ACEOF --#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 ++ cat >>confdefs.h <<_ACEOF +#define HAVE_PUTPRPWNAM 1 - _ACEOF - --fi --done ++_ACEOF ++ + # putprpwnam was found in libc or existing $LIBS - - ++ ++ +$as_echo "#define HAVE_PUTPRPWNAM 1" >>confdefs.h @@ -56518,7 +55860,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC -@@ -50009,100 +16413,90 @@ +@@ -49721,183 +16248,89 @@ #ifdef __cplusplus extern "C" #endif @@ -56567,12 +55909,14 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 +- +- eval "$as_ac_var=no" + ac_cv_lib_security_putprpwnam=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS -+fi + fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_security_putprpwnam" >&5 +$as_echo "$ac_cv_lib_security_putprpwnam" >&6; } +if test "x$ac_cv_lib_security_putprpwnam" = x""yes; then : @@ -56592,15 +55936,9 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure + true + -- eval "$as_ac_var=no" - fi - -rm -rf conftest.dSYM -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -+ ;; -+ esac -+ fi -ac_res=`eval 'as_val=${'$as_ac_var'} - $as_echo "$as_val"'` @@ -56609,26 +55947,15 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -as_val=`eval 'as_val=${'$as_ac_var'} - $as_echo "$as_val"'` - if test "x$as_val" = x""yes; then -+done -+ -+ -+ -+ for ac_func in putprpwnam -+do : -+ ac_fn_c_check_func "$LINENO" "putprpwnam" "ac_cv_func_putprpwnam" -+if test "x$ac_cv_func_putprpwnam" = x""yes; then : - cat >>confdefs.h <<_ACEOF +- cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 -+#define HAVE_PUTPRPWNAM 1 - _ACEOF +-_ACEOF ++ ++ ;; ++ esac --fi --done -+ # putprpwnam was found in libc or existing $LIBS -+ -+ -+$as_echo "#define HAVE_PUTPRPWNAM 1" >>confdefs.h -+ + fi + done -for ac_func in sizeof_proplist_entry @@ -56638,10 +55965,17 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -$as_echo_n "checking for $ac_func... " >&6; } -if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then - $as_echo_n "(cached) " >&6 - else +-else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ --_ACEOF ++ ++ for ac_func in putprpwnam ++do : ++ ac_fn_c_check_func "$LINENO" "putprpwnam" "ac_cv_func_putprpwnam" ++if test "x$ac_cv_func_putprpwnam" = x""yes; then : ++ cat >>confdefs.h <<_ACEOF ++#define HAVE_PUTPRPWNAM 1 + _ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ @@ -56653,39 +55987,23 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - which can conflict with char $ac_func (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ -+ # putprpwnam was not found, try adding libsec -+ case " $LIBS " in -+ *\ -lsec\ *) ++ # putprpwnam was found in libc or existing $LIBS -#ifdef __STDC__ -# include -#else -# include -#endif -+ # putprpwnam was not found and we already had libsec -+ # nothing to do here by default -+ true -#undef $ac_func -+ ;; -+ *) -+ # putprpwnam was not found, try adding libsec -+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for putprpwnam in -lsec" >&5 -+$as_echo_n "checking for putprpwnam in -lsec... " >&6; } -+if test "${ac_cv_lib_sec_putprpwnam+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ ac_check_lib_save_LIBS=$LIBS -+LIBS="-lsec $LIBS" -+cat confdefs.h - <<_ACEOF >conftest.$ac_ext -+/* end confdefs.h. */ ++$as_echo "#define HAVE_PUTPRPWNAM 1" >>confdefs.h - /* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC -@@ -50110,82 +16504,90 @@ - #ifdef __cplusplus - extern "C" - #endif +-/* 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 -char $ac_func (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named @@ -56693,17 +56011,15 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -#if defined __stub_$ac_func || defined __stub___$ac_func -choke me -#endif -- -+char putprpwnam (); - int - main () - { + +-int +-main () +-{ -return $ac_func (); -+return putprpwnam (); - ; - return 0; - } - _ACEOF +- ; +- return 0; +-} +-_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in @@ -56726,46 +56042,18 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - $as_test_x conftest$ac_exeext - }; then - eval "$as_ac_var=yes" -+if ac_fn_c_try_link "$LINENO"; then : -+ ac_cv_lib_sec_putprpwnam=yes - else +-else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 -+ ac_cv_lib_sec_putprpwnam=no -+fi -+rm -f core conftest.err conftest.$ac_objext \ -+ conftest$ac_exeext conftest.$ac_ext -+LIBS=$ac_check_lib_save_LIBS -+fi -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_sec_putprpwnam" >&5 -+$as_echo "$ac_cv_lib_sec_putprpwnam" >&6; } -+if test "x$ac_cv_lib_sec_putprpwnam" = x""yes; then : -+ -+ LIBS="-lsec $LIBS" -+ -+ -+$as_echo "#define HAVE_PUTPRPWNAM 1" >>confdefs.h -+ -+ -+ -+else -+ -+ -+ # putprpwnam was not found in libsec -+ # nothing to do here by default -+ true -+ - eval "$as_ac_var=no" - fi +-fi ++else -rm -rf conftest.dSYM -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -+ ;; -+ esac -+ - fi +-fi -ac_res=`eval 'as_val=${'$as_ac_var'} - $as_echo "$as_val"'` - { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 @@ -56773,50 +56061,30 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -as_val=`eval 'as_val=${'$as_ac_var'} - $as_echo "$as_val"'` - if test "x$as_val" = x""yes; then -+done -+ -+ -+ -+ -+ for ac_func in set_auth_parameters -+do : -+ ac_fn_c_check_func "$LINENO" "set_auth_parameters" "ac_cv_func_set_auth_parameters" -+if test "x$ac_cv_func_set_auth_parameters" = x""yes; then : - cat >>confdefs.h <<_ACEOF +- cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 -+#define HAVE_SET_AUTH_PARAMETERS 1 - _ACEOF +-_ACEOF ++ # putprpwnam was not found, try adding libsec ++ case " $LIBS " in ++ *\ -lsec\ *) -fi -done -+ # set_auth_parameters was found in libc or existing $LIBS ++ # putprpwnam was not found and we already had libsec ++ # nothing to do here by default ++ true - ;; - *) - { $as_echo "$as_me:$LINENO: checking for library containing getxattr" >&5 -$as_echo_n "checking for library containing getxattr... " >&6; } -if test "${ac_cv_search_getxattr+set}" = set; then -+ -+$as_echo "#define HAVE_SET_AUTH_PARAMETERS 1" >>confdefs.h -+ -+ -+ -+else -+ -+ # set_auth_parameters was not found, try adding libsecurity -+ case " $LIBS " in -+ *\ -lsecurity\ *) -+ -+ # set_auth_parameters was not found and we already had libsecurity -+ # nothing to do here by default -+ true -+ + ;; + *) -+ # set_auth_parameters was not found, try adding libsecurity -+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for set_auth_parameters in -lsecurity" >&5 -+$as_echo_n "checking for set_auth_parameters in -lsecurity... " >&6; } -+if test "${ac_cv_lib_security_set_auth_parameters+set}" = set; then : ++ # putprpwnam was not found, try adding libsec ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for putprpwnam in -lsec" >&5 ++$as_echo_n "checking for putprpwnam in -lsec... " >&6; } ++if test "${ac_cv_lib_sec_putprpwnam+set}" = set; then : $as_echo_n "(cached) " >&6 else - ac_func_search_save_LIBS=$LIBS @@ -56826,22 +56094,22 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + ac_check_lib_save_LIBS=$LIBS -+LIBS="-lsecurity $LIBS" ++LIBS="-lsec $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. -@@ -50194,109 +16596,90 @@ +@@ -49906,109 +16339,91 @@ #ifdef __cplusplus extern "C" #endif -char getxattr (); -+char set_auth_parameters (); ++char putprpwnam (); int main () { -return getxattr (); -+return set_auth_parameters (); ++return putprpwnam (); ; return 0; } @@ -56876,24 +56144,24 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - }; then - ac_cv_search_getxattr=$ac_res +if ac_fn_c_try_link "$LINENO"; then : -+ ac_cv_lib_security_set_auth_parameters=yes ++ ac_cv_lib_sec_putprpwnam=yes else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 -+ ac_cv_lib_security_set_auth_parameters=no ++ ac_cv_lib_sec_putprpwnam=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_security_set_auth_parameters" >&5 -+$as_echo "$ac_cv_lib_security_set_auth_parameters" >&6; } -+if test "x$ac_cv_lib_security_set_auth_parameters" = x""yes; then : ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_sec_putprpwnam" >&5 ++$as_echo "$ac_cv_lib_sec_putprpwnam" >&6; } ++if test "x$ac_cv_lib_sec_putprpwnam" = x""yes; then : + -+ LIBS="-lsecurity $LIBS" ++ LIBS="-lsec $LIBS" + + -+$as_echo "#define HAVE_SET_AUTH_PARAMETERS 1" >>confdefs.h ++$as_echo "#define HAVE_PUTPRPWNAM 1" >>confdefs.h -fi @@ -56914,7 +56182,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -LIBS=$ac_func_search_save_LIBS + + -+ # set_auth_parameters was not found in libsecurity ++ # putprpwnam was not found in libsec + # nothing to do here by default + true + @@ -56931,9 +56199,10 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure fi +done -+ -+ -+ + + + + + for ac_func in set_auth_parameters +do : + ac_fn_c_check_func "$LINENO" "set_auth_parameters" "ac_cv_func_set_auth_parameters" @@ -56941,15 +56210,180 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure + cat >>confdefs.h <<_ACEOF +#define HAVE_SET_AUTH_PARAMETERS 1 +_ACEOF - ++ + # set_auth_parameters was found in libc or existing $LIBS ++ ++ ++$as_echo "#define HAVE_SET_AUTH_PARAMETERS 1" >>confdefs.h ++ +-for ac_func in getxattr lgetxattr fgetxattr listxattr llistxattr +-do +-as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +-{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 +-$as_echo_n "checking for $ac_func... " >&6; } +-if { as_var=$as_ac_var; eval "test \"\${$as_var+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. */ +-/* Define $ac_func to an innocuous variant, in case declares $ac_func. +- For example, HP-UX 11i declares gettimeofday. */ +-#define $ac_func innocuous_$ac_func + +-/* System header to define __stub macros and hopefully few prototypes, +- which can conflict with char $ac_func (); below. +- Prefer to if __STDC__ is defined, since +- exists even on freestanding compilers. */ ++ # set_auth_parameters was not found, try adding libsecurity ++ case " $LIBS " in ++ *\ -lsecurity\ *) + +-#ifdef __STDC__ +-# include +-#else +-# include +-#endif ++ # set_auth_parameters was not found and we already had libsecurity ++ # nothing to do here by default ++ true + +-#undef $ac_func ++ ;; ++ *) ++ # set_auth_parameters was not found, try adding libsecurity ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for set_auth_parameters in -lsecurity" >&5 ++$as_echo_n "checking for set_auth_parameters in -lsecurity... " >&6; } ++if test "${ac_cv_lib_security_set_auth_parameters+set}" = set; then : ++ $as_echo_n "(cached) " >&6 ++else ++ ac_check_lib_save_LIBS=$LIBS ++LIBS="-lsecurity $LIBS" ++cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ + + /* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC +@@ -50016,105 +16431,90 @@ + #ifdef __cplusplus + extern "C" + #endif +-char $ac_func (); +-/* 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_$ac_func || defined __stub___$ac_func +-choke me +-#endif +- ++char set_auth_parameters (); + int + main () + { +-return $ac_func (); ++return set_auth_parameters (); + ; + return 0; + } + _ACEOF +-rm -f conftest.$ac_objext conftest$ac_exeext +-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 +- $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 +- eval "$as_ac_var=yes" ++if ac_fn_c_try_link "$LINENO"; then : ++ ac_cv_lib_security_set_auth_parameters=yes + else +- $as_echo "$as_me: failed program was:" >&5 +-sed 's/^/| /' conftest.$ac_ext >&5 +- +- eval "$as_ac_var=no" ++ ac_cv_lib_security_set_auth_parameters=no + fi ++rm -f core conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext ++LIBS=$ac_check_lib_save_LIBS ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_security_set_auth_parameters" >&5 ++$as_echo "$ac_cv_lib_security_set_auth_parameters" >&6; } ++if test "x$ac_cv_lib_security_set_auth_parameters" = x""yes; then : ++ ++ LIBS="-lsecurity $LIBS" ++ ++ ++$as_echo "#define HAVE_SET_AUTH_PARAMETERS 1" >>confdefs.h ++ ++ ++ ++else ++ ++ ++ # set_auth_parameters was not found in libsecurity ++ # nothing to do here by default ++ true ++ + +-rm -rf conftest.dSYM +-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ +- conftest$ac_exeext conftest.$ac_ext + fi +-ac_res=`eval 'as_val=${'$as_ac_var'} +- $as_echo "$as_val"'` +- { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +-$as_echo "$ac_res" >&6; } +-as_val=`eval 'as_val=${'$as_ac_var'} +- $as_echo "$as_val"'` +- if test "x$as_val" = x""yes; then +- cat >>confdefs.h <<_ACEOF +-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 +-_ACEOF ++ ++ ;; ++ esac + + fi + done + + + ++ for ac_func in set_auth_parameters ++do : ++ ac_fn_c_check_func "$LINENO" "set_auth_parameters" "ac_cv_func_set_auth_parameters" ++if test "x$ac_cv_func_set_auth_parameters" = x""yes; then : ++ cat >>confdefs.h <<_ACEOF ++#define HAVE_SET_AUTH_PARAMETERS 1 ++_ACEOF ++ ++ # set_auth_parameters was found in libc or existing $LIBS ++ + +$as_echo "#define HAVE_SET_AUTH_PARAMETERS 1" >>confdefs.h --for ac_func in getxattr lgetxattr fgetxattr listxattr llistxattr +-for ac_func in getea fgetea lgetea listea flistea llistea -do -as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 @@ -57000,7 +56434,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC -@@ -50304,105 +16687,92 @@ +@@ -50122,105 +16522,92 @@ #ifdef __cplusplus extern "C" #endif @@ -57052,11 +56486,11 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - - eval "$as_ac_var=no" + ac_cv_lib_sec_set_auth_parameters=no -+fi + fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS - fi ++fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_sec_set_auth_parameters" >&5 +$as_echo "$ac_cv_lib_sec_set_auth_parameters" >&6; } +if test "x$ac_cv_lib_sec_set_auth_parameters" = x""yes; then : @@ -57116,7 +56550,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure --for ac_func in getea fgetea lgetea listea flistea llistea +-for ac_func in removeea fremoveea lremoveea setea fsetea lsetea -do -as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 @@ -57167,7 +56601,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC -@@ -50410,65 +16780,47 @@ +@@ -50228,103 +16615,91 @@ #ifdef __cplusplus extern "C" #endif @@ -57216,10 +56650,8 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 -- -- eval "$as_ac_var=no" + ac_cv_lib_gen_getspnam=no - fi ++fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS @@ -57243,9 +56675,15 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure + true + +- eval "$as_ac_var=no" + fi + -rm -rf conftest.dSYM -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext ++ ;; ++ esac ++ fi -ac_res=`eval 'as_val=${'$as_ac_var'} - $as_echo "$as_val"'` @@ -57254,35 +56692,30 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -as_val=`eval 'as_val=${'$as_ac_var'} - $as_echo "$as_val"'` - if test "x$as_val" = x""yes; then -- cat >>confdefs.h <<_ACEOF --#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 --_ACEOF ++done ++ ++ ++ + -+ ;; -+ esac - - fi - done -@@ -50476,39 +16828,43 @@ - - - + for ac_func in getspnam +do : + ac_fn_c_check_func "$LINENO" "getspnam" "ac_cv_func_getspnam" +if test "x$ac_cv_func_getspnam" = x""yes; then : -+ cat >>confdefs.h <<_ACEOF + cat >>confdefs.h <<_ACEOF +-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 +#define HAVE_GETSPNAM 1 -+_ACEOF -+ + _ACEOF + +-fi +-done + # getspnam was found in libc or existing $LIBS -+ -+ + + +$as_echo "#define HAVE_GETSPNAM 1" >>confdefs.h --for ac_func in removeea fremoveea lremoveea setea fsetea lsetea +-for ac_func in flistxattr removexattr lremovexattr fremovexattr -do -as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 @@ -57333,7 +56766,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC -@@ -50516,103 +16872,90 @@ +@@ -50332,102 +16707,90 @@ #ifdef __cplusplus extern "C" #endif @@ -57440,65 +56873,64 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -fi -done + # getspnam was found in libc or existing $LIBS -+ + +$as_echo "#define HAVE_GETSPNAM 1" >>confdefs.h - - - -+else + -+ # getspnam was not found, try adding libsec -+ case " $LIBS " in -+ *\ -lsec\ *) -+ -+ # getspnam was not found and we already had libsec -+ # nothing to do here by default -+ true --for ac_func in flistxattr removexattr lremovexattr fremovexattr + +-for ac_func in setxattr lsetxattr fsetxattr -do -as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 -$as_echo_n "checking for $ac_func... " >&6; } -if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then -+ ;; -+ *) -+ # getspnam was not found, try adding libsec -+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for getspnam in -lsec" >&5 -+$as_echo_n "checking for getspnam in -lsec... " >&6; } -+if test "${ac_cv_lib_sec_getspnam+set}" = set; then : - $as_echo_n "(cached) " >&6 +- $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 -+ ac_check_lib_save_LIBS=$LIBS -+LIBS="-lsec $LIBS" -+cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ +-/* end confdefs.h. */ -/* Define $ac_func to an innocuous variant, in case declares $ac_func. - For example, HP-UX 11i declares gettimeofday. */ -#define $ac_func innocuous_$ac_func -- + -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char $ac_func (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ -- ++ # getspnam was not found, try adding libsec ++ case " $LIBS " in ++ *\ -lsec\ *) + -#ifdef __STDC__ -# include -#else -# include -#endif -- ++ # getspnam was not found and we already had libsec ++ # nothing to do here by default ++ true + -#undef $ac_func ++ ;; ++ *) ++ # getspnam was not found, try adding libsec ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for getspnam in -lsec" >&5 ++$as_echo_n "checking for getspnam in -lsec... " >&6; } ++if test "${ac_cv_lib_sec_getspnam+set}" = set; then : ++ $as_echo_n "(cached) " >&6 ++else ++ ac_check_lib_save_LIBS=$LIBS ++LIBS="-lsec $LIBS" ++cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC -@@ -50620,102 +16963,91 @@ +@@ -50435,103 +16798,91 @@ #ifdef __cplusplus extern "C" #endif @@ -57609,10 +57041,10 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure +$as_echo "#define HAVE_BIGCRYPT 1" >>confdefs.h -+ --for ac_func in setxattr lsetxattr fsetxattr + +-for ac_func in attr_get attr_list attr_set attr_remove -do -as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 @@ -57629,25 +57061,26 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -/* Define $ac_func to an innocuous variant, in case declares $ac_func. - For example, HP-UX 11i declares gettimeofday. */ -#define $ac_func innocuous_$ac_func - +- -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char $ac_func (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ -+ # bigcrypt was not found, try adding libsecurity -+ case " $LIBS " in -+ *\ -lsecurity\ *) -#ifdef __STDC__ -# include -#else -# include -#endif ++ # bigcrypt was not found, try adding libsecurity ++ case " $LIBS " in ++ *\ -lsecurity\ *) + +-#undef $ac_func + # bigcrypt was not found and we already had libsecurity + # nothing to do here by default + true - --#undef $ac_func ++ + ;; + *) + # bigcrypt was not found, try adding libsecurity @@ -57663,7 +57096,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC -@@ -50723,103 +17055,90 @@ +@@ -50539,103 +16890,90 @@ #ifdef __cplusplus extern "C" #endif @@ -57776,7 +57209,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure --for ac_func in attr_get attr_list attr_set attr_remove +-for ac_func in attr_getf attr_listf attr_setf attr_removef -do -as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 @@ -57827,7 +57260,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC -@@ -50827,103 +17146,91 @@ +@@ -50643,107 +16981,91 @@ #ifdef __cplusplus extern "C" #endif @@ -57935,13 +57368,19 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -fi -done + # getprpwnam was found in libc or existing $LIBS - - ++ ++ +$as_echo "#define HAVE_GETPRPWNAM 1" >>confdefs.h +- ;; +-esac +-######################################################## +-# Check if attropen() is present if this is Solaris +-case "$host_os" in +- *solaris*) --for ac_func in attr_getf attr_listf attr_setf attr_removef +-for ac_func in attropen -do -as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 @@ -57992,7 +57431,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC -@@ -50931,107 +17238,90 @@ +@@ -50751,190 +17073,90 @@ #ifdef __cplusplus extern "C" #endif @@ -58041,185 +57480,15 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 +- +- eval "$as_ac_var=no" + ac_cv_lib_security_getprpwnam=no -+fi -+rm -f core conftest.err conftest.$ac_objext \ -+ conftest$ac_exeext conftest.$ac_ext -+LIBS=$ac_check_lib_save_LIBS -+fi -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_security_getprpwnam" >&5 -+$as_echo "$ac_cv_lib_security_getprpwnam" >&6; } -+if test "x$ac_cv_lib_security_getprpwnam" = x""yes; then : -+ -+ LIBS="-lsecurity $LIBS" -+ -+ -+$as_echo "#define HAVE_GETPRPWNAM 1" >>confdefs.h -+ -+ -+ -+else -+ -+ -+ # getprpwnam was not found in libsecurity -+ # nothing to do here by default -+ true -+ - -- eval "$as_ac_var=no" fi - --rm -rf conftest.dSYM --rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ -- conftest$ac_exeext conftest.$ac_ext -+ ;; -+ esac -+ - fi --ac_res=`eval 'as_val=${'$as_ac_var'} -- $as_echo "$as_val"'` -- { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 --$as_echo "$ac_res" >&6; } --as_val=`eval 'as_val=${'$as_ac_var'} -- $as_echo "$as_val"'` -- if test "x$as_val" = x""yes; then -+done -+ -+ -+ -+ for ac_func in getprpwnam -+do : -+ ac_fn_c_check_func "$LINENO" "getprpwnam" "ac_cv_func_getprpwnam" -+if test "x$ac_cv_func_getprpwnam" = x""yes; then : - cat >>confdefs.h <<_ACEOF --#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 -+#define HAVE_GETPRPWNAM 1 - _ACEOF - --fi --done -+ # getprpwnam was found in libc or existing $LIBS -+ -+ -+$as_echo "#define HAVE_GETPRPWNAM 1" >>confdefs.h - -- ;; --esac - --######################################################## --# Check if attropen() is present if this is Solaris --case "$host_os" in -- *solaris*) - --for ac_func in attropen --do --as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` --{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 --$as_echo_n "checking for $ac_func... " >&6; } --if { as_var=$as_ac_var; eval "test \"\${$as_var+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. */ --/* Define $ac_func to an innocuous variant, in case declares $ac_func. -- For example, HP-UX 11i declares gettimeofday. */ --#define $ac_func innocuous_$ac_func - --/* System header to define __stub macros and hopefully few prototypes, -- which can conflict with char $ac_func (); below. -- Prefer to if __STDC__ is defined, since -- exists even on freestanding compilers. */ -+ # getprpwnam was not found, try adding libsec -+ case " $LIBS " in -+ *\ -lsec\ *) - --#ifdef __STDC__ --# include --#else --# include --#endif -+ # getprpwnam was not found and we already had libsec -+ # nothing to do here by default -+ true - --#undef $ac_func -+ ;; -+ *) -+ # getprpwnam was not found, try adding libsec -+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for getprpwnam in -lsec" >&5 -+$as_echo_n "checking for getprpwnam in -lsec... " >&6; } -+if test "${ac_cv_lib_sec_getprpwnam+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ ac_check_lib_save_LIBS=$LIBS -+LIBS="-lsec $LIBS" -+cat confdefs.h - <<_ACEOF >conftest.$ac_ext -+/* end confdefs.h. */ - - /* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC -@@ -51039,190 +17329,77 @@ - #ifdef __cplusplus - extern "C" - #endif --char $ac_func (); --/* 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_$ac_func || defined __stub___$ac_func --choke me --#endif -- -+char getprpwnam (); - int - main () - { --return $ac_func (); -+return getprpwnam (); - ; - return 0; - } - _ACEOF --rm -f conftest.$ac_objext conftest$ac_exeext --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 -- $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 -- eval "$as_ac_var=yes" -+if ac_fn_c_try_link "$LINENO"; then : -+ ac_cv_lib_sec_getprpwnam=yes - else -- $as_echo "$as_me: failed program was:" >&5 --sed 's/^/| /' conftest.$ac_ext >&5 -- -- eval "$as_ac_var=no" --fi - -rm -rf conftest.dSYM -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -+ ac_cv_lib_sec_getprpwnam=no - fi +-fi -ac_res=`eval 'as_val=${'$as_ac_var'} - $as_echo "$as_val"'` - { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 @@ -58239,9 +57508,9 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - - ;; -esac -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_sec_getprpwnam" >&5 -+$as_echo "$ac_cv_lib_sec_getprpwnam" >&6; } -+if test "x$ac_cv_lib_sec_getprpwnam" = x""yes; then : ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_security_getprpwnam" >&5 ++$as_echo "$ac_cv_lib_security_getprpwnam" >&6; } ++if test "x$ac_cv_lib_security_getprpwnam" = x""yes; then : -######################################################## -# Do xattr functions take additional options like on Darwin? @@ -58251,7 +57520,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -if test "${smb_attr_cv_xattr_add_opt+set}" = set; then - $as_echo_n "(cached) " >&6 -else -+ LIBS="-lsec $LIBS" ++ LIBS="-lsecurity $LIBS" - old_LIBS=$LIBS - LIBS="$LIBS $ACL_LIBS" @@ -58307,7 +57576,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -+ # getprpwnam was not found in libsec ++ # getprpwnam was not found in libsecurity + # nothing to do here by default + true + @@ -58333,23 +57602,186 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -cat >>confdefs.h <<\_ACEOF -#define BROKEN_EXTATTR 1 --_ACEOF ++ ++ for ac_func in getprpwnam ++do : ++ ac_fn_c_check_func "$LINENO" "getprpwnam" "ac_cv_func_getprpwnam" ++if test "x$ac_cv_func_getprpwnam" = x""yes; then : ++ cat >>confdefs.h <<_ACEOF ++#define HAVE_GETPRPWNAM 1 + _ACEOF - ;; - *) ++ # getprpwnam was found in libc or existing $LIBS ++ ++ ++$as_echo "#define HAVE_GETPRPWNAM 1" >>confdefs.h + + + +-for ac_func in extattr_delete_fd extattr_delete_file extattr_delete_link +-do +-as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +-{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 +-$as_echo_n "checking for $ac_func... " >&6; } +-if { as_var=$as_ac_var; eval "test \"\${$as_var+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. */ +-/* Define $ac_func to an innocuous variant, in case declares $ac_func. +- For example, HP-UX 11i declares gettimeofday. */ +-#define $ac_func innocuous_$ac_func + +-/* System header to define __stub macros and hopefully few prototypes, +- which can conflict with char $ac_func (); below. +- Prefer to if __STDC__ is defined, since +- exists even on freestanding compilers. */ ++ # getprpwnam was not found, try adding libsec ++ case " $LIBS " in ++ *\ -lsec\ *) + +-#ifdef __STDC__ +-# include +-#else +-# include +-#endif ++ # getprpwnam was not found and we already had libsec ++ # nothing to do here by default ++ true + +-#undef $ac_func ++ ;; ++ *) ++ # getprpwnam was not found, try adding libsec ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for getprpwnam in -lsec" >&5 ++$as_echo_n "checking for getprpwnam in -lsec... " >&6; } ++if test "${ac_cv_lib_sec_getprpwnam+set}" = set; then : ++ $as_echo_n "(cached) " >&6 ++else ++ ac_check_lib_save_LIBS=$LIBS ++LIBS="-lsec $LIBS" ++cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ + + /* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC +@@ -50942,102 +17164,77 @@ + #ifdef __cplusplus + extern "C" + #endif +-char $ac_func (); +-/* 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_$ac_func || defined __stub___$ac_func +-choke me +-#endif +- ++char getprpwnam (); + int + main () + { +-return $ac_func (); ++return getprpwnam (); + ; + return 0; + } + _ACEOF +-rm -f conftest.$ac_objext conftest$ac_exeext +-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 +- $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 +- eval "$as_ac_var=yes" ++if ac_fn_c_try_link "$LINENO"; then : ++ ac_cv_lib_sec_getprpwnam=yes + else +- $as_echo "$as_me: failed program was:" >&5 +-sed 's/^/| /' conftest.$ac_ext >&5 ++ ac_cv_lib_sec_getprpwnam=no ++fi ++rm -f core conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext ++LIBS=$ac_check_lib_save_LIBS ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_sec_getprpwnam" >&5 ++$as_echo "$ac_cv_lib_sec_getprpwnam" >&6; } ++if test "x$ac_cv_lib_sec_getprpwnam" = x""yes; then : ++ ++ LIBS="-lsec $LIBS" ++ ++ ++$as_echo "#define HAVE_GETPRPWNAM 1" >>confdefs.h ++ ++ ++ ++else ++ ++ ++ # getprpwnam was not found in libsec ++ # nothing to do here by default ++ true ++ + +- eval "$as_ac_var=no" + fi + +-rm -rf conftest.dSYM +-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ +- conftest$ac_exeext conftest.$ac_ext ++ ;; ++ esac ++ + fi +-ac_res=`eval 'as_val=${'$as_ac_var'} +- $as_echo "$as_val"'` +- { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +-$as_echo "$ac_res" >&6; } +-as_val=`eval 'as_val=${'$as_ac_var'} +- $as_echo "$as_val"'` +- if test "x$as_val" = x""yes; then ++done ++ ++ ++ +for ac_func in strsignal +do : + ac_fn_c_check_func "$LINENO" "strsignal" "ac_cv_func_strsignal" +if test "x$ac_cv_func_strsignal" = x""yes; then : -+ cat >>confdefs.h <<_ACEOF + cat >>confdefs.h <<_ACEOF +-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 +#define HAVE_STRSIGNAL 1 -+_ACEOF + _ACEOF -+fi -+done + fi + done --for ac_func in extattr_delete_fd extattr_delete_file extattr_delete_link +- +- +-for ac_func in extattr_get_fd extattr_get_file extattr_get_link -do -as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 @@ -58391,7 +57823,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC -@@ -51230,62 +17407,66 @@ +@@ -51045,62 +17242,53 @@ #ifdef __cplusplus extern "C" #endif @@ -58435,6 +57867,9 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - $as_test_x conftest$ac_exeext - }; then - eval "$as_ac_var=yes" +-else +- $as_echo "$as_me: failed program was:" >&5 +-sed 's/^/| /' conftest.$ac_ext >&5 +for ac_lib in '' proplist; do + if test -z "$ac_lib"; then + ac_res="none required" @@ -58452,41 +57887,24 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure +fi +done +if test "${ac_cv_search_getproplist+set}" = set; then : -+ - else -- $as_echo "$as_me: failed program was:" >&5 --sed 's/^/| /' conftest.$ac_ext >&5 + +- eval "$as_ac_var=no" ++else + ac_cv_search_getproplist=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS -+fi + fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_getproplist" >&5 +$as_echo "$ac_cv_search_getproplist" >&6; } +ac_res=$ac_cv_search_getproplist +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" -+ -+fi -+ -+ for ac_func in getproplist fgetproplist setproplist fsetproplist -+do : -+ as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -+ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" -+eval as_val=\$$as_ac_var -+ if test "x$as_val" = x""yes; then : -+ cat >>confdefs.h <<_ACEOF -+#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 -+_ACEOF - -- eval "$as_ac_var=no" - fi -+done -rm -rf conftest.dSYM -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext --fi + fi -ac_res=`eval 'as_val=${'$as_ac_var'} - $as_echo "$as_val"'` - { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 @@ -58494,7 +57912,8 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -as_val=`eval 'as_val=${'$as_ac_var'} - $as_echo "$as_val"'` - if test "x$as_val" = x""yes; then -+ for ac_func in delproplist fdelproplist add_proplist_entry get_proplist_entry ++ ++ for ac_func in getproplist fgetproplist setproplist fsetproplist +do : + as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" @@ -58503,10 +57922,23 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF -@@ -51293,39 +17474,27 @@ +@@ -51108,39 +17296,40 @@ fi done ++ for ac_func in delproplist fdelproplist add_proplist_entry get_proplist_entry ++do : ++ as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ++ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" ++eval as_val=\$$as_ac_var ++ if test "x$as_val" = x""yes; then : ++ cat >>confdefs.h <<_ACEOF ++#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 ++_ACEOF ++ ++fi ++done + + for ac_func in sizeof_proplist_entry +do : + ac_fn_c_check_func "$LINENO" "sizeof_proplist_entry" "ac_cv_func_sizeof_proplist_entry" @@ -58518,8 +57950,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure +fi +done -- --for ac_func in extattr_get_fd extattr_get_file extattr_get_link +-for ac_func in extattr_list_fd extattr_list_file extattr_list_link -do -as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 @@ -58559,7 +57990,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC -@@ -51333,62 +17502,53 @@ +@@ -51148,62 +17337,118 @@ #ifdef __cplusplus extern "C" #endif @@ -58603,9 +58034,6 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - $as_test_x conftest$ac_exeext - }; then - eval "$as_ac_var=yes" --else -- $as_echo "$as_me: failed program was:" >&5 --sed 's/^/| /' conftest.$ac_ext >&5 +for ac_lib in '' attr; do + if test -z "$ac_lib"; then + ac_res="none required" @@ -58623,31 +58051,22 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure +fi +done +if test "${ac_cv_search_getxattr+set}" = set; then : - -- eval "$as_ac_var=no" -+else ++ + else +- $as_echo "$as_me: failed program was:" >&5 +-sed 's/^/| /' conftest.$ac_ext >&5 + ac_cv_search_getxattr=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS - fi ++fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_getxattr" >&5 +$as_echo "$ac_cv_search_getxattr" >&6; } +ac_res=$ac_cv_search_getxattr +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - --rm -rf conftest.dSYM --rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ -- conftest$ac_exeext conftest.$ac_ext - fi --ac_res=`eval 'as_val=${'$as_ac_var'} -- $as_echo "$as_val"'` -- { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 --$as_echo "$ac_res" >&6; } --as_val=`eval 'as_val=${'$as_ac_var'} -- $as_echo "$as_val"'` -- if test "x$as_val" = x""yes; then ++ ++fi + + for ac_func in getxattr lgetxattr fgetxattr listxattr llistxattr +do : @@ -58655,13 +58074,13 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure +ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" +eval as_val=\$$as_ac_var + if test "x$as_val" = x""yes; then : - cat >>confdefs.h <<_ACEOF - #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 - _ACEOF -@@ -51396,102 +17556,64 @@ - fi - done - ++ cat >>confdefs.h <<_ACEOF ++#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 ++_ACEOF ++ ++fi ++done ++ + for ac_func in getea fgetea lgetea listea flistea llistea +do : + as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` @@ -58671,21 +58090,10 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF - ++ +fi +done - -- --for ac_func in extattr_list_fd extattr_list_file extattr_list_link --do --as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` --{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 --$as_echo_n "checking for $ac_func... " >&6; } --if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then -- $as_echo_n "(cached) " >&6 --else -- cat >conftest.$ac_ext <<_ACEOF --/* confdefs.h. */ ++ + for ac_func in removeea fremoveea lremoveea setea fsetea lsetea +do : + as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` @@ -58694,28 +58102,11 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure + if test "x$as_val" = x""yes; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 - _ACEOF --cat confdefs.h >>conftest.$ac_ext --cat >>conftest.$ac_ext <<_ACEOF --/* end confdefs.h. */ --/* Define $ac_func to an innocuous variant, in case declares $ac_func. -- For example, HP-UX 11i declares gettimeofday. */ --#define $ac_func innocuous_$ac_func -- --/* System header to define __stub macros and hopefully few prototypes, -- which can conflict with char $ac_func (); below. -- Prefer to if __STDC__ is defined, since -- exists even on freestanding compilers. */ - --#ifdef __STDC__ --# include --#else --# include --#endif ++_ACEOF ++ +fi +done - --#undef $ac_func ++ + for ac_func in flistxattr removexattr lremovexattr fremovexattr +do : + as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` @@ -58726,29 +58117,10 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure +#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF --/* 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 --char $ac_func (); --/* 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_$ac_func || defined __stub___$ac_func --choke me --#endif -+fi +- eval "$as_ac_var=no" + fi +done - --int --main () --{ --return $ac_func (); -- ; -- return 0; --} ++ + for ac_func in setxattr lsetxattr fsetxattr +do : + as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` @@ -58757,41 +58129,12 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure + if test "x$as_val" = x""yes; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 - _ACEOF --rm -f conftest.$ac_objext conftest$ac_exeext --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 -- $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 -- eval "$as_ac_var=yes" --else -- $as_echo "$as_me: failed program was:" >&5 --sed 's/^/| /' conftest.$ac_ext >&5 - -- eval "$as_ac_var=no" - fi -+done ++_ACEOF -rm -rf conftest.dSYM -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext --fi + fi -ac_res=`eval 'as_val=${'$as_ac_var'} - $as_echo "$as_val"'` - { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 @@ -58799,6 +58142,8 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -as_val=`eval 'as_val=${'$as_ac_var'} - $as_echo "$as_val"'` - if test "x$as_val" = x""yes; then ++done ++ + for ac_func in attr_get attr_list attr_set attr_remove +do : + as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` @@ -58808,7 +58153,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF -@@ -51499,102 +17621,141 @@ +@@ -51211,102 +17456,141 @@ fi done @@ -59025,7 +58370,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF -@@ -51606,7 +17767,7 @@ +@@ -51318,7 +17602,7 @@ esac # Check whether --enable-static was given. @@ -59034,7 +58379,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure enableval=$enable_static; p=${PACKAGE-default} case $enableval in yes) enable_static=yes ;; -@@ -51628,7 +17789,7 @@ +@@ -51340,7 +17624,7 @@ fi # Check whether --enable-shared was given. @@ -59043,7 +58388,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure enableval=$enable_shared; p=${PACKAGE-default} case $enableval in yes) enable_shared=yes ;; -@@ -51655,16 +17816,16 @@ +@@ -51367,16 +17651,16 @@ PIE_CFLAGS="" PIE_LDFLAGS="" # Check whether --enable-pie was given. @@ -59063,7 +58408,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo_n "(cached) " >&6 else -@@ -51673,11 +17834,11 @@ +@@ -51385,11 +17669,11 @@ main () { return 0;} EOF if { ac_try='${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS -pie -fPIE -o conftest conftest.c 1>&5' @@ -59078,7 +58423,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure then samba_cv_fpie=yes else -@@ -51686,7 +17847,7 @@ +@@ -51398,7 +17682,7 @@ rm -f conftest* fi @@ -59087,7 +58432,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "$samba_cv_fpie" >&6; } if test x"${samba_cv_fpie}" = x"yes" then -@@ -51698,16 +17859,16 @@ +@@ -51410,16 +17694,16 @@ # Set defaults RELRO_LDFLAGS="" # Check whether --enable-relro was given. @@ -59107,7 +58452,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo_n "(cached) " >&6 else -@@ -51716,11 +17877,11 @@ +@@ -51428,11 +17712,11 @@ main () { return 0;} EOF if { ac_try='${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS -Wl,-z,relro -o conftest conftest.c 1>&5' @@ -59122,7 +58467,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure then samba_cv_relro=yes else -@@ -51729,7 +17890,7 @@ +@@ -51441,7 +17725,7 @@ rm -f conftest* fi @@ -59131,7 +58476,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "$samba_cv_relro" >&6; } if test x"${samba_cv_relro}" = x"yes" then -@@ -51758,7 +17919,7 @@ +@@ -51470,7 +17754,7 @@ # You need to specify how to create a shared library and # how to compile C code to produce PIC object files @@ -59140,7 +58485,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo_n "checking ability to build shared libraries... " >&6; } # and these are for particular systems -@@ -51766,14 +17927,10 @@ +@@ -51478,14 +17762,10 @@ *linux* | gnu* | k*bsd*-gnu | kopensolaris*-gnu | *qnx*) case "$host_os" in *linux*) @@ -59157,7 +58502,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure ;; esac BLDSHARED="true" -@@ -51785,15 +17942,11 @@ +@@ -51496,15 +17776,11 @@ DYNEXP="-Wl,--export-dynamic" PICFLAG="-fPIC" SONAMEFLAG="-Wl,-soname=" @@ -59175,7 +58520,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure BLDSHARED="true" LDSHFLAGS="-G" -@@ -51811,33 +17964,23 @@ +@@ -51522,33 +17798,23 @@ LDSHFLAGS="-G \${CFLAGS}" fi @@ -59214,7 +58559,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure ;; *netbsd* | *freebsd* | *dragonfly* ) -@@ -51847,14 +17990,10 @@ +@@ -51558,14 +17824,10 @@ SONAMEFLAG="-Wl,-soname," PICFLAG="-fPIC -DPIC" @@ -59231,7 +58576,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure ;; *openbsd*) BLDSHARED="true" -@@ -51863,26 +18002,18 @@ +@@ -51574,26 +17836,18 @@ SONAMEFLAG="-Wl,-soname," PICFLAG="-fPIC" @@ -59262,7 +58607,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure ;; esac -@@ -51896,15 +18027,11 @@ +@@ -51607,15 +17861,11 @@ PICFLAG="-KPIC" fi @@ -59280,7 +58625,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure BLDSHARED="true" # use expfull to export underscored symbols -@@ -51920,25 +18047,17 @@ +@@ -51631,25 +17881,17 @@ fi @@ -59310,7 +58655,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure # Use special PIC flags for the native HP-UX compiler. BLDSHARED="true" -@@ -51960,74 +18079,52 @@ +@@ -51671,74 +17913,52 @@ DYNEXP="-Wl,-E,+b/usr/local/lib:/usr/lib" fi @@ -59398,7 +58743,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo_n "(cached) " >&6 else if test -n "$ROFF"; then -@@ -52038,91 +18135,71 @@ +@@ -51749,91 +17969,71 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. @@ -59505,7 +58850,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure BLDSHARED="true" LDSHFLAGS="-dynamiclib -flat_namespace -undefined suppress" -@@ -52136,16 +18213,12 @@ +@@ -51847,16 +18047,12 @@ # actually support the PIE stuff. PIE_LDFLAGS= PIE_CFLAGS= @@ -59524,7 +58869,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure ;; esac -@@ -52162,53 +18235,53 @@ +@@ -51873,19 +18069,15 @@ LDFLAGS="$LDFLAGS -L./bin" fi @@ -59532,6 +58877,141 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $BLDSHARED" >&5 $as_echo "$BLDSHARED" >&6; } + for flags in "-Wl,--as-needed" "-Wl,-z,ignore" "-z ignore" ; do + saved_ldflags="$LDFLAGS" +- { $as_echo "$as_me:$LINENO: checking if $flags works" >&5 ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $flags works" >&5 + $as_echo_n "checking if $flags works... " >&6; } + LDFLAGS="$flags $saved_ldflags" +- cat >conftest.$ac_ext <<_ACEOF +-/* confdefs.h. */ +-_ACEOF +-cat confdefs.h >>conftest.$ac_ext +-cat >>conftest.$ac_ext <<_ACEOF ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + + int +@@ -51896,42 +18088,17 @@ + return 0; + } + _ACEOF +-rm -f conftest.$ac_objext conftest$ac_exeext +-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 +- $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 +- { $as_echo "$as_me:$LINENO: result: yes" >&5 ++if ac_fn_c_try_link "$LINENO"; then : ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 + $as_echo "yes" >&6; } + LD_AS_NEEDED_FLAG=$flags + ld_as_needed_flag_found=yes + else +- $as_echo "$as_me: failed program was:" >&5 +-sed 's/^/| /' conftest.$ac_ext >&5 +- +- { $as_echo "$as_me:$LINENO: result: no" >&5 ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + $as_echo "no" >&6; } + fi +- +-rm -rf conftest.dSYM +-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ +- conftest$ac_exeext conftest.$ac_ext ++rm -f core conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + LDFLAGS="$LD_AS_NEEDED_FLAG $saved_ldflags" + test x"$ld_as_needed_flag_found" = xyes && break + done +@@ -51944,14 +18111,10 @@ + + for flags in "-Wl,-z,defs" "-error_unresolved" "-Wl,-error_unresolved" ; do + saved_ldflags="$LDFLAGS" +- { $as_echo "$as_me:$LINENO: checking if $flags works" >&5 ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $flags works" >&5 + $as_echo_n "checking if $flags works... " >&6; } + LDFLAGS="$flags $saved_ldflags" +- cat >conftest.$ac_ext <<_ACEOF +-/* confdefs.h. */ +-_ACEOF +-cat confdefs.h >>conftest.$ac_ext +-cat >>conftest.$ac_ext <<_ACEOF ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + + int +@@ -51962,94 +18125,69 @@ + return 0; + } + _ACEOF +-rm -f conftest.$ac_objext conftest$ac_exeext +-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 +- $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 +- { $as_echo "$as_me:$LINENO: result: yes" >&5 ++if ac_fn_c_try_link "$LINENO"; then : ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 + $as_echo "yes" >&6; } + LDSHFLAGS_Z_DEFS=$flags + ldshflags_z_defs_found=yes + else +- $as_echo "$as_me: failed program was:" >&5 +-sed 's/^/| /' conftest.$ac_ext >&5 +- +- { $as_echo "$as_me:$LINENO: result: no" >&5 ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + $as_echo "no" >&6; } + fi +- +-rm -rf conftest.dSYM +-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ +- conftest$ac_exeext conftest.$ac_ext ++rm -f core conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + LDFLAGS=$saved_ldflags + test x"$ldshflags_z_defs_found" = xyes && break + done + +-{ $as_echo "$as_me:$LINENO: checking LDSHFLAGS_Z_DEFS" >&5 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking LDSHFLAGS_Z_DEFS" >&5 + $as_echo_n "checking LDSHFLAGS_Z_DEFS... " >&6; } +-{ $as_echo "$as_me:$LINENO: result: $LDSHFLAGS_Z_DEFS" >&5 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $LDSHFLAGS_Z_DEFS" >&5 + $as_echo "$LDSHFLAGS_Z_DEFS" >&6; } -{ $as_echo "$as_me:$LINENO: checking LDFLAGS" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking LDFLAGS" >&5 $as_echo_n "checking LDFLAGS... " >&6; } @@ -59597,7 +59077,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo_n "(cached) " >&6 else -@@ -52224,7 +18297,7 @@ +@@ -52065,7 +18203,7 @@ fi @@ -59606,8 +59086,8 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "$ac_cv_shlib_works" >&6; } if test $ac_cv_shlib_works = no; then BLDSHARED=false -@@ -52240,9 +18313,9 @@ - SHLIBEXT="shared_libraries_disabled" +@@ -52082,9 +18220,9 @@ + merged_build_possible=no fi -{ $as_echo "$as_me:$LINENO: checking used PICFLAG" >&5 @@ -59618,7 +59098,1842 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "$PICFLAG" >&6; } -@@ -52284,165 +18357,39 @@ +@@ -52156,10 +18294,10 @@ + USESHARED=false + + +-{ $as_echo "$as_me:$LINENO: checking whether to use shared libraries internally" >&5 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to use shared libraries internally" >&5 + $as_echo_n "checking whether to use shared libraries internally... " >&6; } + # Check whether --enable-shared-libs was given. +-if test "${enable_shared_libs+set}" = set; then ++if test "${enable_shared_libs+set}" = set; then : + enableval=$enable_shared_libs; enable_shared_libs=$enableval + else + enable_shared_libs=yes +@@ -52170,11 +18308,11 @@ + USESHARED=$BLDSHARED + fi + +-{ $as_echo "$as_me:$LINENO: result: $USESHARED" >&5 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $USESHARED" >&5 + $as_echo "$USESHARED" >&6; } + + if test x"$enable_shared_libs" = x"yes" -a x"$BLDSHARED" != x"true" ; then +- { $as_echo "$as_me:$LINENO: WARNING: --enable-shared-libs: no support for shared libraries" >&5 ++ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: --enable-shared-libs: no support for shared libraries" >&5 + $as_echo "$as_me: WARNING: --enable-shared-libs: no support for shared libraries" >&2;} + fi + +@@ -52202,14 +18340,13 @@ + + + # Check whether --with-static-libs was given. +-if test "${with_static_libs+set}" = set; then +- withval=$with_static_libs; if test $withval; then ++if test "${with_static_libs+set}" = set; then : ++ withval=$with_static_libs; if test $withval; then : + for lib in `echo $withval | sed -e 's/,/ /g'` ; do + lib=`echo $lib | tr '[a-z]' '[A-Z]'` + eval LINK_$lib=STATIC + done + fi +- + fi + + +@@ -52231,7 +18368,7 @@ + # be extracted from their respective source directories + # + # Check whether --enable-external_libtalloc was given. +-if test "${enable_external_libtalloc+set}" = set; then ++if test "${enable_external_libtalloc+set}" = set; then : + enableval=$enable_external_libtalloc; enable_external_libtalloc=$enableval + else + enable_external_libtalloc=auto +@@ -52246,9 +18383,9 @@ + 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 +-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 + $as_echo_n "checking for $ac_word... " >&6; } +-if test "${ac_cv_path_PKG_CONFIG+set}" = set; then ++if test "${ac_cv_path_PKG_CONFIG+set}" = set; then : + $as_echo_n "(cached) " >&6 + else + case $PKG_CONFIG in +@@ -52261,14 +18398,14 @@ + do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. +- for ac_exec_ext in '' $ac_executable_extensions; do ++ 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_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" +- $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi + done +-done ++ done + IFS=$as_save_IFS + + ;; +@@ -52276,10 +18413,10 @@ + fi + PKG_CONFIG=$ac_cv_path_PKG_CONFIG + if test -n "$PKG_CONFIG"; then +- { $as_echo "$as_me:$LINENO: result: $PKG_CONFIG" >&5 ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5 + $as_echo "$PKG_CONFIG" >&6; } + else +- { $as_echo "$as_me:$LINENO: result: no" >&5 ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + $as_echo "no" >&6; } + fi + +@@ -52289,9 +18426,9 @@ + 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 +-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 ++{ $as_echo "$as_me:${as_lineno-$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 ++if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then : + $as_echo_n "(cached) " >&6 + else + case $ac_pt_PKG_CONFIG in +@@ -52304,14 +18441,14 @@ + do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. +- for ac_exec_ext in '' $ac_executable_extensions; do ++ 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_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" +- $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi + done +-done ++ done + IFS=$as_save_IFS + + ;; +@@ -52319,10 +18456,10 @@ + fi + ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG + if test -n "$ac_pt_PKG_CONFIG"; then +- { $as_echo "$as_me:$LINENO: result: $ac_pt_PKG_CONFIG" >&5 ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5 + $as_echo "$ac_pt_PKG_CONFIG" >&6; } + else +- { $as_echo "$as_me:$LINENO: result: no" >&5 ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + $as_echo "no" >&6; } + fi + +@@ -52331,7 +18468,7 @@ + else + case $cross_compiling:$ac_tool_warned in + yes:) +-{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 + $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} + ac_tool_warned=yes ;; + esac +@@ -52344,13 +18481,13 @@ + fi + if test -n "$PKG_CONFIG"; then + _pkg_min_version=0.9.0 +- { $as_echo "$as_me:$LINENO: checking pkg-config is at least version $_pkg_min_version" >&5 ++ { $as_echo "$as_me:${as_lineno-$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 +- { $as_echo "$as_me:$LINENO: result: yes" >&5 ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 + $as_echo "yes" >&6; } + else +- { $as_echo "$as_me:$LINENO: result: no" >&5 ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + $as_echo "no" >&6; } + PKG_CONFIG="" + fi +@@ -52358,7 +18495,7 @@ + fi + + pkg_failed=no +-{ $as_echo "$as_me:$LINENO: checking for LIBTALLOC" >&5 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for LIBTALLOC" >&5 + $as_echo_n "checking for LIBTALLOC... " >&6; } + + if test -n "$PKG_CONFIG"; then +@@ -52366,11 +18503,11 @@ + pkg_cv_LIBTALLOC_CFLAGS="$LIBTALLOC_CFLAGS" + else + if test -n "$PKG_CONFIG" && \ +- { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"talloc >= 2.0.1\"") >&5 ++ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"talloc >= 2.0.1\""; } >&5 + ($PKG_CONFIG --exists --print-errors "talloc >= 2.0.1") 2>&5 + ac_status=$? +- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 +- (exit $ac_status); }; then ++ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 ++ test $ac_status = 0; }; then + pkg_cv_LIBTALLOC_CFLAGS=`$PKG_CONFIG --cflags "talloc >= 2.0.1" 2>/dev/null` + else + pkg_failed=yes +@@ -52384,11 +18521,11 @@ + pkg_cv_LIBTALLOC_LIBS="$LIBTALLOC_LIBS" + else + if test -n "$PKG_CONFIG" && \ +- { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"talloc >= 2.0.1\"") >&5 ++ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"talloc >= 2.0.1\""; } >&5 + ($PKG_CONFIG --exists --print-errors "talloc >= 2.0.1") 2>&5 + ac_status=$? +- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 +- (exit $ac_status); }; then ++ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 ++ test $ac_status = 0; }; then + pkg_cv_LIBTALLOC_LIBS=`$PKG_CONFIG --libs "talloc >= 2.0.1" 2>/dev/null` + else + pkg_failed=yes +@@ -52415,768 +18552,112 @@ + # Put the nasty error message in config.log where it belongs + echo "$LIBTALLOC_PKG_ERRORS" >&5 + +- { $as_echo "$as_me:$LINENO: result: no" >&5 ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + $as_echo "no" >&6; } + if test x$enable_external_libtalloc = xyes; then +- { { $as_echo "$as_me:$LINENO: error: Unable to find libtalloc" >&5 +-$as_echo "$as_me: error: Unable to find libtalloc" >&2;} +- { (exit 1); exit 1; }; } ++ as_fn_error "Unable to find libtalloc" "$LINENO" 5 + else + enable_external_libtalloc=no + fi + + elif test $pkg_failed = untried; then + if test x$enable_external_libtalloc = xyes; then +- { { $as_echo "$as_me:$LINENO: error: Unable to find libtalloc" >&5 +-$as_echo "$as_me: error: Unable to find libtalloc" >&2;} +- { (exit 1); exit 1; }; } +- else +- enable_external_libtalloc=no +- fi +- +-else +- LIBTALLOC_CFLAGS=$pkg_cv_LIBTALLOC_CFLAGS +- LIBTALLOC_LIBS=$pkg_cv_LIBTALLOC_LIBS +- { $as_echo "$as_me:$LINENO: result: yes" >&5 +-$as_echo "yes" >&6; } +- enable_external_libtalloc=yes +-fi +-fi +- +-if test "x$enable_external_libtalloc" = xno +-then +- tallocdir="" +-tallocpaths=". lib/talloc talloc ../talloc ../lib/talloc" +-for d in $tallocpaths; do +- if test -f "$srcdir/$d/talloc.c"; then +- tallocdir="$d" +- +- break; +- fi +-done +-if test x"$tallocdir" = "x"; then +- { { $as_echo "$as_me:$LINENO: error: cannot find talloc source in $tallocpaths" >&5 +-$as_echo "$as_me: error: cannot find talloc source in $tallocpaths" >&2;} +- { (exit 1); exit 1; }; } +-fi +-TALLOC_OBJ="talloc.o" +- +- +-TALLOC_CFLAGS="-I$srcdir/$tallocdir" +- +- +-TALLOC_LIBS="" +- +- +-# The cast to long int works around a bug in the HP C Compiler +-# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects +-# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. +-# This bug is HP SR number 8606223364. +-{ $as_echo "$as_me:$LINENO: checking size of size_t" >&5 +-$as_echo_n "checking size of size_t... " >&6; } +-if test "${ac_cv_sizeof_size_t+set}" = set; then +- $as_echo_n "(cached) " >&6 +-else +- if test "$cross_compiling" = yes; then +- # Depending upon the size, compute the lo and hi bounds. +-cat >conftest.$ac_ext <<_ACEOF +-/* confdefs.h. */ +-_ACEOF +-cat confdefs.h >>conftest.$ac_ext +-cat >>conftest.$ac_ext <<_ACEOF +-/* end confdefs.h. */ +-$ac_includes_default +-int +-main () +-{ +-static int test_array [1 - 2 * !(((long int) (sizeof (size_t))) >= 0)]; +-test_array [0] = 0 +- +- ; +- 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_lo=0 ac_mid=0 +- while :; do +- cat >conftest.$ac_ext <<_ACEOF +-/* confdefs.h. */ +-_ACEOF +-cat confdefs.h >>conftest.$ac_ext +-cat >>conftest.$ac_ext <<_ACEOF +-/* end confdefs.h. */ +-$ac_includes_default +-int +-main () +-{ +-static int test_array [1 - 2 * !(((long int) (sizeof (size_t))) <= $ac_mid)]; +-test_array [0] = 0 +- +- ; +- 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_hi=$ac_mid; break +-else +- $as_echo "$as_me: failed program was:" >&5 +-sed 's/^/| /' conftest.$ac_ext >&5 +- +- ac_lo=`expr $ac_mid + 1` +- if test $ac_lo -le $ac_mid; then +- ac_lo= ac_hi= +- break +- fi +- ac_mid=`expr 2 '*' $ac_mid + 1` +-fi +- +-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +- done +-else +- $as_echo "$as_me: failed program was:" >&5 +-sed 's/^/| /' conftest.$ac_ext >&5 +- +- cat >conftest.$ac_ext <<_ACEOF +-/* confdefs.h. */ +-_ACEOF +-cat confdefs.h >>conftest.$ac_ext +-cat >>conftest.$ac_ext <<_ACEOF +-/* end confdefs.h. */ +-$ac_includes_default +-int +-main () +-{ +-static int test_array [1 - 2 * !(((long int) (sizeof (size_t))) < 0)]; +-test_array [0] = 0 +- +- ; +- 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_hi=-1 ac_mid=-1 +- while :; do +- cat >conftest.$ac_ext <<_ACEOF +-/* confdefs.h. */ +-_ACEOF +-cat confdefs.h >>conftest.$ac_ext +-cat >>conftest.$ac_ext <<_ACEOF +-/* end confdefs.h. */ +-$ac_includes_default +-int +-main () +-{ +-static int test_array [1 - 2 * !(((long int) (sizeof (size_t))) >= $ac_mid)]; +-test_array [0] = 0 +- +- ; +- 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_lo=$ac_mid; break +-else +- $as_echo "$as_me: failed program was:" >&5 +-sed 's/^/| /' conftest.$ac_ext >&5 +- +- ac_hi=`expr '(' $ac_mid ')' - 1` +- if test $ac_mid -le $ac_hi; then +- ac_lo= ac_hi= +- break +- fi +- ac_mid=`expr 2 '*' $ac_mid` +-fi +- +-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +- done +-else +- $as_echo "$as_me: failed program was:" >&5 +-sed 's/^/| /' conftest.$ac_ext >&5 +- +- ac_lo= ac_hi= +-fi +- +-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +-fi +- +-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +-# Binary search between lo and hi bounds. +-while test "x$ac_lo" != "x$ac_hi"; do +- ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo` +- cat >conftest.$ac_ext <<_ACEOF +-/* confdefs.h. */ +-_ACEOF +-cat confdefs.h >>conftest.$ac_ext +-cat >>conftest.$ac_ext <<_ACEOF +-/* end confdefs.h. */ +-$ac_includes_default +-int +-main () +-{ +-static int test_array [1 - 2 * !(((long int) (sizeof (size_t))) <= $ac_mid)]; +-test_array [0] = 0 +- +- ; +- 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_hi=$ac_mid +-else +- $as_echo "$as_me: failed program was:" >&5 +-sed 's/^/| /' conftest.$ac_ext >&5 +- +- ac_lo=`expr '(' $ac_mid ')' + 1` +-fi +- +-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +-done +-case $ac_lo in +-?*) ac_cv_sizeof_size_t=$ac_lo;; +-'') if test "$ac_cv_type_size_t" = yes; then +- { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 +-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +-{ { $as_echo "$as_me:$LINENO: error: cannot compute sizeof (size_t) +-See \`config.log' for more details." >&5 +-$as_echo "$as_me: error: cannot compute sizeof (size_t) +-See \`config.log' for more details." >&2;} +- { (exit 77); exit 77; }; }; } +- else +- ac_cv_sizeof_size_t=0 +- fi ;; +-esac +-else +- cat >conftest.$ac_ext <<_ACEOF +-/* confdefs.h. */ +-_ACEOF +-cat confdefs.h >>conftest.$ac_ext +-cat >>conftest.$ac_ext <<_ACEOF +-/* end confdefs.h. */ +-$ac_includes_default +-static long int longval () { return (long int) (sizeof (size_t)); } +-static unsigned long int ulongval () { return (long int) (sizeof (size_t)); } +-#include +-#include +-int +-main () +-{ +- +- FILE *f = fopen ("conftest.val", "w"); +- if (! f) +- return 1; +- if (((long int) (sizeof (size_t))) < 0) +- { +- long int i = longval (); +- if (i != ((long int) (sizeof (size_t)))) +- return 1; +- fprintf (f, "%ld", i); +- } +- else +- { +- unsigned long int i = ulongval (); +- if (i != ((long int) (sizeof (size_t)))) +- return 1; +- fprintf (f, "%lu", i); +- } +- /* Do not output a trailing newline, as this causes \r\n confusion +- on some platforms. */ +- return ferror (f) || fclose (f) != 0; +- +- ; +- return 0; +-} +-_ACEOF +-rm -f conftest$ac_exeext +-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=$? +- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 +- (exit $ac_status); } && { ac_try='./conftest$ac_exeext' +- { (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=$? +- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 +- (exit $ac_status); }; }; then +- ac_cv_sizeof_size_t=`cat conftest.val` +-else +- $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 ) +-if test "$ac_cv_type_size_t" = yes; then +- { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 +-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +-{ { $as_echo "$as_me:$LINENO: error: cannot compute sizeof (size_t) +-See \`config.log' for more details." >&5 +-$as_echo "$as_me: error: cannot compute sizeof (size_t) +-See \`config.log' for more details." >&2;} +- { (exit 77); exit 77; }; }; } +- else +- ac_cv_sizeof_size_t=0 +- fi +-fi +-rm -rf conftest.dSYM +-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +-fi +-rm -f conftest.val +-fi +-{ $as_echo "$as_me:$LINENO: result: $ac_cv_sizeof_size_t" >&5 +-$as_echo "$ac_cv_sizeof_size_t" >&6; } +- +- +- +-cat >>confdefs.h <<_ACEOF +-#define SIZEOF_SIZE_T $ac_cv_sizeof_size_t +-_ACEOF +- +- +-# The cast to long int works around a bug in the HP C Compiler +-# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects +-# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. +-# This bug is HP SR number 8606223364. +-{ $as_echo "$as_me:$LINENO: checking size of void *" >&5 +-$as_echo_n "checking size of void *... " >&6; } +-if test "${ac_cv_sizeof_void_p+set}" = set; then +- $as_echo_n "(cached) " >&6 +-else +- if test "$cross_compiling" = yes; then +- # Depending upon the size, compute the lo and hi bounds. +-cat >conftest.$ac_ext <<_ACEOF +-/* confdefs.h. */ +-_ACEOF +-cat confdefs.h >>conftest.$ac_ext +-cat >>conftest.$ac_ext <<_ACEOF +-/* end confdefs.h. */ +-$ac_includes_default +-int +-main () +-{ +-static int test_array [1 - 2 * !(((long int) (sizeof (void *))) >= 0)]; +-test_array [0] = 0 +- +- ; +- 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_lo=0 ac_mid=0 +- while :; do +- cat >conftest.$ac_ext <<_ACEOF +-/* confdefs.h. */ +-_ACEOF +-cat confdefs.h >>conftest.$ac_ext +-cat >>conftest.$ac_ext <<_ACEOF +-/* end confdefs.h. */ +-$ac_includes_default +-int +-main () +-{ +-static int test_array [1 - 2 * !(((long int) (sizeof (void *))) <= $ac_mid)]; +-test_array [0] = 0 +- +- ; +- 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_hi=$ac_mid; break ++ as_fn_error "Unable to find libtalloc" "$LINENO" 5 ++ else ++ enable_external_libtalloc=no ++ fi ++ + else +- $as_echo "$as_me: failed program was:" >&5 +-sed 's/^/| /' conftest.$ac_ext >&5 ++ LIBTALLOC_CFLAGS=$pkg_cv_LIBTALLOC_CFLAGS ++ LIBTALLOC_LIBS=$pkg_cv_LIBTALLOC_LIBS ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 ++$as_echo "yes" >&6; } ++ enable_external_libtalloc=yes ++fi ++fi + +- ac_lo=`expr $ac_mid + 1` +- if test $ac_lo -le $ac_mid; then +- ac_lo= ac_hi= +- break +- fi +- ac_mid=`expr 2 '*' $ac_mid + 1` ++if test "x$enable_external_libtalloc" = xno ++then ++ tallocdir="" ++tallocpaths=". lib/talloc talloc ../talloc ../lib/talloc" ++for d in $tallocpaths; do ++ if test -f "$srcdir/$d/talloc.c"; then ++ tallocdir="$d" ++ ++ break; ++ fi ++done ++if test x"$tallocdir" = "x"; then ++ as_fn_error "cannot find talloc source in $tallocpaths" "$LINENO" 5 + fi ++TALLOC_OBJ="talloc.o" + +-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +- done +-else +- $as_echo "$as_me: failed program was:" >&5 +-sed 's/^/| /' conftest.$ac_ext >&5 + +- cat >conftest.$ac_ext <<_ACEOF +-/* confdefs.h. */ +-_ACEOF +-cat confdefs.h >>conftest.$ac_ext +-cat >>conftest.$ac_ext <<_ACEOF +-/* end confdefs.h. */ +-$ac_includes_default +-int +-main () +-{ +-static int test_array [1 - 2 * !(((long int) (sizeof (void *))) < 0)]; +-test_array [0] = 0 ++TALLOC_CFLAGS="-I$srcdir/$tallocdir" + +- ; +- 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_hi=-1 ac_mid=-1 +- while :; do +- cat >conftest.$ac_ext <<_ACEOF +-/* confdefs.h. */ +-_ACEOF +-cat confdefs.h >>conftest.$ac_ext +-cat >>conftest.$ac_ext <<_ACEOF +-/* end confdefs.h. */ +-$ac_includes_default +-int +-main () +-{ +-static int test_array [1 - 2 * !(((long int) (sizeof (void *))) >= $ac_mid)]; +-test_array [0] = 0 + +- ; +- 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_lo=$ac_mid; break +-else +- $as_echo "$as_me: failed program was:" >&5 +-sed 's/^/| /' conftest.$ac_ext >&5 ++TALLOC_LIBS="" + +- ac_hi=`expr '(' $ac_mid ')' - 1` +- if test $ac_mid -le $ac_hi; then +- ac_lo= ac_hi= +- break +- fi +- ac_mid=`expr 2 '*' $ac_mid` +-fi + +-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +- done ++# The cast to long int works around a bug in the HP C Compiler ++# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects ++# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. ++# This bug is HP SR number 8606223364. ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of size_t" >&5 ++$as_echo_n "checking size of size_t... " >&6; } ++if test "${ac_cv_sizeof_size_t+set}" = set; then : ++ $as_echo_n "(cached) " >&6 + else +- $as_echo "$as_me: failed program was:" >&5 +-sed 's/^/| /' conftest.$ac_ext >&5 ++ if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (size_t))" "ac_cv_sizeof_size_t" "$ac_includes_default"; then : + +- ac_lo= ac_hi= ++else ++ if test "$ac_cv_type_size_t" = yes; then ++ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 ++$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} ++{ as_fn_set_status 77 ++as_fn_error "cannot compute sizeof (size_t) ++See \`config.log' for more details." "$LINENO" 5; }; } ++ else ++ ac_cv_sizeof_size_t=0 ++ fi + fi + +-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_size_t" >&5 ++$as_echo "$ac_cv_sizeof_size_t" >&6; } + +-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +-# Binary search between lo and hi bounds. +-while test "x$ac_lo" != "x$ac_hi"; do +- ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo` +- cat >conftest.$ac_ext <<_ACEOF +-/* confdefs.h. */ +-_ACEOF +-cat confdefs.h >>conftest.$ac_ext +-cat >>conftest.$ac_ext <<_ACEOF +-/* end confdefs.h. */ +-$ac_includes_default +-int +-main () +-{ +-static int test_array [1 - 2 * !(((long int) (sizeof (void *))) <= $ac_mid)]; +-test_array [0] = 0 +- +- ; +- 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_hi=$ac_mid +-else +- $as_echo "$as_me: failed program was:" >&5 +-sed 's/^/| /' conftest.$ac_ext >&5 + +- ac_lo=`expr '(' $ac_mid ')' + 1` +-fi + +-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +-done +-case $ac_lo in +-?*) ac_cv_sizeof_void_p=$ac_lo;; +-'') if test "$ac_cv_type_void_p" = yes; then +- { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 +-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +-{ { $as_echo "$as_me:$LINENO: error: cannot compute sizeof (void *) +-See \`config.log' for more details." >&5 +-$as_echo "$as_me: error: cannot compute sizeof (void *) +-See \`config.log' for more details." >&2;} +- { (exit 77); exit 77; }; }; } +- else +- ac_cv_sizeof_void_p=0 +- fi ;; +-esac +-else +- cat >conftest.$ac_ext <<_ACEOF +-/* confdefs.h. */ ++cat >>confdefs.h <<_ACEOF ++#define SIZEOF_SIZE_T $ac_cv_sizeof_size_t + _ACEOF +-cat confdefs.h >>conftest.$ac_ext +-cat >>conftest.$ac_ext <<_ACEOF +-/* end confdefs.h. */ +-$ac_includes_default +-static long int longval () { return (long int) (sizeof (void *)); } +-static unsigned long int ulongval () { return (long int) (sizeof (void *)); } +-#include +-#include +-int +-main () +-{ + +- FILE *f = fopen ("conftest.val", "w"); +- if (! f) +- return 1; +- if (((long int) (sizeof (void *))) < 0) +- { +- long int i = longval (); +- if (i != ((long int) (sizeof (void *)))) +- return 1; +- fprintf (f, "%ld", i); +- } +- else +- { +- unsigned long int i = ulongval (); +- if (i != ((long int) (sizeof (void *)))) +- return 1; +- fprintf (f, "%lu", i); +- } +- /* Do not output a trailing newline, as this causes \r\n confusion +- on some platforms. */ +- return ferror (f) || fclose (f) != 0; + +- ; +- return 0; +-} +-_ACEOF +-rm -f conftest$ac_exeext +-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=$? +- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 +- (exit $ac_status); } && { ac_try='./conftest$ac_exeext' +- { (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=$? +- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 +- (exit $ac_status); }; }; then +- ac_cv_sizeof_void_p=`cat conftest.val` ++# The cast to long int works around a bug in the HP C Compiler ++# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects ++# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. ++# This bug is HP SR number 8606223364. ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of void *" >&5 ++$as_echo_n "checking size of void *... " >&6; } ++if test "${ac_cv_sizeof_void_p+set}" = set; then : ++ $as_echo_n "(cached) " >&6 + else +- $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 ++ if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (void *))" "ac_cv_sizeof_void_p" "$ac_includes_default"; then : + +-( exit $ac_status ) +-if test "$ac_cv_type_void_p" = yes; then +- { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 ++else ++ if test "$ac_cv_type_void_p" = yes; then ++ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 + $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +-{ { $as_echo "$as_me:$LINENO: error: cannot compute sizeof (void *) +-See \`config.log' for more details." >&5 +-$as_echo "$as_me: error: cannot compute sizeof (void *) +-See \`config.log' for more details." >&2;} +- { (exit 77); exit 77; }; }; } ++{ as_fn_set_status 77 ++as_fn_error "cannot compute sizeof (void *) ++See \`config.log' for more details." "$LINENO" 5; }; } + else + ac_cv_sizeof_void_p=0 + fi + fi +-rm -rf conftest.dSYM +-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +-fi +-rm -f conftest.val ++ + fi +-{ $as_echo "$as_me:$LINENO: result: $ac_cv_sizeof_void_p" >&5 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_void_p" >&5 + $as_echo "$ac_cv_sizeof_void_p" >&6; } + + +@@ -53188,17 +18669,15 @@ + + + if test $ac_cv_sizeof_size_t -lt $ac_cv_sizeof_void_p; then +- { $as_echo "$as_me:$LINENO: WARNING: size_t cannot represent the amount of used memory of a process" >&5 ++ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: size_t cannot represent the amount of used memory of a process" >&5 + $as_echo "$as_me: WARNING: size_t cannot represent the amount of used memory of a process" >&2;} +- { $as_echo "$as_me:$LINENO: WARNING: please report this to " >&5 ++ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: please report this to " >&5 + $as_echo "$as_me: WARNING: please report this to " >&2;} +- { $as_echo "$as_me:$LINENO: WARNING: sizeof(size_t) = $ac_cv_sizeof_size_t" >&5 ++ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: sizeof(size_t) = $ac_cv_sizeof_size_t" >&5 + $as_echo "$as_me: WARNING: sizeof(size_t) = $ac_cv_sizeof_size_t" >&2;} +- { $as_echo "$as_me:$LINENO: WARNING: sizeof(void *) = $ac_cv_sizeof_void_p" >&5 ++ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: sizeof(void *) = $ac_cv_sizeof_void_p" >&5 + $as_echo "$as_me: WARNING: sizeof(void *) = $ac_cv_sizeof_void_p" >&2;} +- { { $as_echo "$as_me:$LINENO: error: sizeof(size_t) < sizeof(void *)" >&5 +-$as_echo "$as_me: error: sizeof(size_t) < sizeof(void *)" >&2;} +- { (exit 1); exit 1; }; } ++ as_fn_error "sizeof(size_t) < sizeof(void *)" "$LINENO" 5 + fi + + if test x"$VERSIONSCRIPT" != "x"; then +@@ -53233,16 +18712,16 @@ + + + +-{ $as_echo "$as_me:$LINENO: checking whether to build the libtalloc shared library" >&5 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build the libtalloc shared library" >&5 + $as_echo_n "checking whether to build the libtalloc shared library... " >&6; } + + + # Check whether --with-libtalloc was given. +-if test "${with_libtalloc+set}" = set; then ++if test "${with_libtalloc+set}" = set; then : + withval=$with_libtalloc; + case "$withval" in + no) +- { $as_echo "$as_me:$LINENO: result: no" >&5 ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + $as_echo "no" >&6; } + build_lib=no + ;; +@@ -53268,7 +18747,7 @@ + if eval $BLDSHARED = true; then + LIBTALLOC_SHARED=$LIBTALLOC_SHARED_TARGET + LIBTALLOC_TARGET=$LIBTALLOC_SHARED_TARGET +- { $as_echo "$as_me:$LINENO: result: yes" >&5 ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 + $as_echo "yes" >&6; } + if test x"$USESHARED" != x"true" -o x"$LINK_LIBTALLOC" = "xSTATIC" ; then + enable_static=yes +@@ -53281,12 +18760,12 @@ + enable_static=yes + LIBTALLOC_TARGET=$LIBTALLOC_STATIC_TARGET + LIBTALLOC_LIBS=$LIBTALLOC_STATIC_TARGET +- { $as_echo "$as_me:$LINENO: result: no shared library support -- will supply static library" >&5 ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no shared library support -- will supply static library" >&5 + $as_echo "no shared library support -- will supply static library" >&6; } + fi + else + enable_static=yes +- { $as_echo "$as_me:$LINENO: result: shared library not selected" >&5 ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: shared library not selected" >&5 + $as_echo "shared library not selected" >&6; } + fi + if test $enable_static = yes; then +@@ -53312,7 +18791,7 @@ + + + # Check whether --enable-external_libtdb was given. +-if test "${enable_external_libtdb+set}" = set; then ++if test "${enable_external_libtdb+set}" = set; then : + enableval=$enable_external_libtdb; enable_external_libtalloc=$enableval + else + enable_external_libtalloc=auto +@@ -53323,7 +18802,7 @@ + then + + pkg_failed=no +-{ $as_echo "$as_me:$LINENO: checking for LIBTDB" >&5 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for LIBTDB" >&5 + $as_echo_n "checking for LIBTDB... " >&6; } + + if test -n "$PKG_CONFIG"; then +@@ -53331,11 +18810,11 @@ + pkg_cv_LIBTDB_CFLAGS="$LIBTDB_CFLAGS" + else + if test -n "$PKG_CONFIG" && \ +- { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"tdb >= 1.2.1\"") >&5 ++ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"tdb >= 1.2.1\""; } >&5 + ($PKG_CONFIG --exists --print-errors "tdb >= 1.2.1") 2>&5 + ac_status=$? +- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 +- (exit $ac_status); }; then ++ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 ++ test $ac_status = 0; }; then + pkg_cv_LIBTDB_CFLAGS=`$PKG_CONFIG --cflags "tdb >= 1.2.1" 2>/dev/null` + else + pkg_failed=yes +@@ -53349,11 +18828,11 @@ + pkg_cv_LIBTDB_LIBS="$LIBTDB_LIBS" + else + if test -n "$PKG_CONFIG" && \ +- { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"tdb >= 1.2.1\"") >&5 ++ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"tdb >= 1.2.1\""; } >&5 + ($PKG_CONFIG --exists --print-errors "tdb >= 1.2.1") 2>&5 + ac_status=$? +- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 +- (exit $ac_status); }; then ++ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 ++ test $ac_status = 0; }; then + pkg_cv_LIBTDB_LIBS=`$PKG_CONFIG --libs "tdb >= 1.2.1" 2>/dev/null` + else + pkg_failed=yes +@@ -53380,13 +18859,11 @@ + # Put the nasty error message in config.log where it belongs + echo "$LIBTDB_PKG_ERRORS" >&5 + +- { $as_echo "$as_me:$LINENO: result: no" >&5 ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + $as_echo "no" >&6; } + + if test x$enable_external_libtdb = xyes; then +- { { $as_echo "$as_me:$LINENO: error: Unable to find libtdb" >&5 +-$as_echo "$as_me: error: Unable to find libtdb" >&2;} +- { (exit 1); exit 1; }; } ++ as_fn_error "Unable to find libtdb" "$LINENO" 5 + else + enable_external_libtdb=no + fi +@@ -53394,9 +18871,7 @@ + elif test $pkg_failed = untried; then + + if test x$enable_external_libtdb = xyes; then +- { { $as_echo "$as_me:$LINENO: error: Unable to find libtdb" >&5 +-$as_echo "$as_me: error: Unable to find libtdb" >&2;} +- { (exit 1); exit 1; }; } ++ as_fn_error "Unable to find libtdb" "$LINENO" 5 + else + enable_external_libtdb=no + fi +@@ -53404,7 +18879,7 @@ + else + LIBTDB_CFLAGS=$pkg_cv_LIBTDB_CFLAGS + LIBTDB_LIBS=$pkg_cv_LIBTDB_LIBS +- { $as_echo "$as_me:$LINENO: result: yes" >&5 ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 + $as_echo "yes" >&6; } + enable_external_libtdb=yes + fi +@@ -53423,9 +18898,7 @@ + fi + done + if test x"$tdbdir" = "x"; then +- { { $as_echo "$as_me:$LINENO: error: cannot find tdb source in $tdbpaths" >&5 +-$as_echo "$as_me: error: cannot find tdb source in $tdbpaths" >&2;} +- { (exit 1); exit 1; }; } ++ as_fn_error "cannot find tdb source in $tdbpaths" "$LINENO" 5 + fi + TDB_OBJ="common/tdb.o common/dump.o common/transaction.o common/error.o common/traverse.o" + TDB_OBJ="$TDB_OBJ common/freelist.o common/freelistcheck.o common/io.o common/lock.o common/open.o common/check.o" +@@ -53438,104 +18911,12 @@ + TDB_CFLAGS="-I$tdbdir/include" + + +- +- +- +- +- + for ac_func in mmap pread pwrite getpagesize utime +-do +-as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +-{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 +-$as_echo_n "checking for $ac_func... " >&6; } +-if { as_var=$as_ac_var; eval "test \"\${$as_var+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. */ +-/* Define $ac_func to an innocuous variant, in case declares $ac_func. +- For example, HP-UX 11i declares gettimeofday. */ +-#define $ac_func innocuous_$ac_func +- +-/* System header to define __stub macros and hopefully few prototypes, +- which can conflict with char $ac_func (); below. +- Prefer to if __STDC__ is defined, since +- exists even on freestanding compilers. */ +- +-#ifdef __STDC__ +-# include +-#else +-# include +-#endif +- +-#undef $ac_func +- +-/* 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 +-char $ac_func (); +-/* 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_$ac_func || defined __stub___$ac_func +-choke me +-#endif +- +-int +-main () +-{ +-return $ac_func (); +- ; +- return 0; +-} +-_ACEOF +-rm -f conftest.$ac_objext conftest$ac_exeext +-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 +- $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 +- eval "$as_ac_var=yes" +-else +- $as_echo "$as_me: failed program was:" >&5 +-sed 's/^/| /' conftest.$ac_ext >&5 +- +- eval "$as_ac_var=no" +-fi +- +-rm -rf conftest.dSYM +-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ +- conftest$ac_exeext conftest.$ac_ext +-fi +-ac_res=`eval 'as_val=${'$as_ac_var'} +- $as_echo "$as_val"'` +- { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +-$as_echo "$ac_res" >&6; } +-as_val=`eval 'as_val=${'$as_ac_var'} +- $as_echo "$as_val"'` +- if test "x$as_val" = x""yes; then ++do : ++ as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ++ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" ++eval as_val=\$$as_ac_var ++ if test "x$as_val" = x""yes; then : + cat >>confdefs.h <<_ACEOF + #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 + _ACEOF +@@ -53543,151 +18924,12 @@ + fi + done + +- +- +- + for ac_header in getopt.h sys/select.h sys/time.h +-do +-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? +-{ $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 +-cat confdefs.h >>conftest.$ac_ext +-cat >>conftest.$ac_ext <<_ACEOF +-/* end confdefs.h. */ +-$ac_includes_default +-#include <$ac_header> +-_ACEOF +-rm -f conftest.$ac_objext +-if { (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_header_compiler=yes +-else +- $as_echo "$as_me: failed program was:" >&5 +-sed 's/^/| /' conftest.$ac_ext >&5 +- +- ac_header_compiler=no +-fi +- +-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? +-{ $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 +-cat confdefs.h >>conftest.$ac_ext +-cat >>conftest.$ac_ext <<_ACEOF +-/* end confdefs.h. */ +-#include <$ac_header> +-_ACEOF +-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 +- $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 +- $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 +-{ $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: ) +- { $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:* ) +- { $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 samba-technical@samba.org ## +-## ---------------------------------------- ## +-_ASBOX +- ) | sed "s/^/$as_me: WARNING: /" >&2 +- ;; +-esac +-{ $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 +-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 +-as_val=`eval 'as_val=${'$as_ac_Header'} +- $as_echo "$as_val"'` +- if test "x$as_val" = x""yes; then ++do : ++ as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ++ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" ++eval as_val=\$$as_ac_Header ++ if test "x$as_val" = x""yes; then : + cat >>confdefs.h <<_ACEOF + #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 + _ACEOF +@@ -53698,17 +18940,13 @@ + + + +- { $as_echo "$as_me:$LINENO: checking for pread declaration" >&5 ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pread declaration" >&5 + $as_echo_n "checking for pread declaration... " >&6; } +-if test "${ac_cv_have_pread_decl+set}" = set; then ++if test "${ac_cv_have_pread_decl+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 ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + #include + int +@@ -53719,56 +18957,29 @@ + 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 ++if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_have_pread_decl=yes + else +- $as_echo "$as_me: failed program was:" >&5 +-sed 's/^/| /' conftest.$ac_ext >&5 +- +- ac_cv_have_pread_decl=no ++ ac_cv_have_pread_decl=no + fi +- + rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + fi +-{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_pread_decl" >&5 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_have_pread_decl" >&5 + $as_echo "$ac_cv_have_pread_decl" >&6; } + if test x"$ac_cv_have_pread_decl" = x"yes"; then + +-cat >>confdefs.h <<\_ACEOF +-#define HAVE_PREAD_DECL 1 +-_ACEOF ++$as_echo "#define HAVE_PREAD_DECL 1" >>confdefs.h + + fi + + +- { $as_echo "$as_me:$LINENO: checking for pwrite declaration" >&5 ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pwrite declaration" >&5 + $as_echo_n "checking for pwrite declaration... " >&6; } +-if test "${ac_cv_have_pwrite_decl+set}" = set; then ++if test "${ac_cv_have_pwrite_decl+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 ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + #include + int +@@ -53779,41 +18990,18 @@ + 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 ++if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_have_pwrite_decl=yes + else +- $as_echo "$as_me: failed program was:" >&5 +-sed 's/^/| /' conftest.$ac_ext >&5 +- +- ac_cv_have_pwrite_decl=no ++ ac_cv_have_pwrite_decl=no + fi +- + rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + fi +-{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_pwrite_decl" >&5 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_have_pwrite_decl" >&5 + $as_echo "$ac_cv_have_pwrite_decl" >&6; } + if test x"$ac_cv_have_pwrite_decl" = x"yes"; then + +-cat >>confdefs.h <<\_ACEOF +-#define HAVE_PWRITE_DECL 1 +-_ACEOF ++$as_echo "#define HAVE_PWRITE_DECL 1" >>confdefs.h + + fi + +@@ -53850,16 +19038,16 @@ + + + +-{ $as_echo "$as_me:$LINENO: checking whether to build the libtdb shared library" >&5 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build the libtdb shared library" >&5 + $as_echo_n "checking whether to build the libtdb shared library... " >&6; } + + + # Check whether --with-libtdb was given. +-if test "${with_libtdb+set}" = set; then ++if test "${with_libtdb+set}" = set; then : + withval=$with_libtdb; + case "$withval" in + no) +- { $as_echo "$as_me:$LINENO: result: no" >&5 ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + $as_echo "no" >&6; } + build_lib=no + ;; +@@ -53885,7 +19073,7 @@ + if eval $BLDSHARED = true; then + LIBTDB_SHARED=$LIBTDB_SHARED_TARGET + LIBTDB_TARGET=$LIBTDB_SHARED_TARGET +- { $as_echo "$as_me:$LINENO: result: yes" >&5 ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 + $as_echo "yes" >&6; } + if test x"$USESHARED" != x"true" -o x"$LINK_LIBTDB" = "xSTATIC" ; then + enable_static=yes +@@ -53898,12 +19086,12 @@ + enable_static=yes + LIBTDB_TARGET=$LIBTDB_STATIC_TARGET + LIBTDB_LIBS=$LIBTDB_STATIC_TARGET +- { $as_echo "$as_me:$LINENO: result: no shared library support -- will supply static library" >&5 ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no shared library support -- will supply static library" >&5 + $as_echo "no shared library support -- will supply static library" >&6; } + fi + else + enable_static=yes +- { $as_echo "$as_me:$LINENO: result: shared library not selected" >&5 ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: shared library not selected" >&5 + $as_echo "shared library not selected" >&6; } + fi + if test $enable_static = yes; then +@@ -53959,16 +19147,16 @@ + + + +-{ $as_echo "$as_me:$LINENO: checking whether to build the libnetapi shared library" >&5 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build the libnetapi shared library" >&5 + $as_echo_n "checking whether to build the libnetapi shared library... " >&6; } + + + # Check whether --with-libnetapi was given. +-if test "${with_libnetapi+set}" = set; then ++if test "${with_libnetapi+set}" = set; then : + withval=$with_libnetapi; + case "$withval" in + no) +- { $as_echo "$as_me:$LINENO: result: no" >&5 ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + $as_echo "no" >&6; } + build_lib=no + ;; +@@ -53994,7 +19182,7 @@ + if eval $BLDSHARED = true; then + LIBNETAPI_SHARED=$LIBNETAPI_SHARED_TARGET + LIBNETAPI_TARGET=$LIBNETAPI_SHARED_TARGET +- { $as_echo "$as_me:$LINENO: result: yes" >&5 ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 + $as_echo "yes" >&6; } + if test x"$USESHARED" != x"true" -o x"$LINK_LIBNETAPI" = "xSTATIC" ; then + enable_static=yes +@@ -54007,12 +19195,12 @@ + enable_static=yes + LIBNETAPI_TARGET=$LIBNETAPI_STATIC_TARGET + LIBNETAPI_LIBS=$LIBNETAPI_STATIC_TARGET +- { $as_echo "$as_me:$LINENO: result: no shared library support -- will supply static library" >&5 ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no shared library support -- will supply static library" >&5 + $as_echo "no shared library support -- will supply static library" >&6; } + fi + else + enable_static=yes +- { $as_echo "$as_me:$LINENO: result: shared library not selected" >&5 ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: shared library not selected" >&5 + $as_echo "shared library not selected" >&6; } + fi + if test $enable_static = yes; then +@@ -54050,16 +19238,16 @@ + + + +-{ $as_echo "$as_me:$LINENO: checking whether to build the libsmbclient shared library" >&5 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build the libsmbclient shared library" >&5 + $as_echo_n "checking whether to build the libsmbclient shared library... " >&6; } + + + # Check whether --with-libsmbclient was given. +-if test "${with_libsmbclient+set}" = set; then ++if test "${with_libsmbclient+set}" = set; then : + withval=$with_libsmbclient; + case "$withval" in + no) +- { $as_echo "$as_me:$LINENO: result: no" >&5 ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + $as_echo "no" >&6; } + build_lib=no + ;; +@@ -54085,7 +19273,7 @@ + if eval $BLDSHARED = true; then + LIBSMBCLIENT_SHARED=$LIBSMBCLIENT_SHARED_TARGET + LIBSMBCLIENT_TARGET=$LIBSMBCLIENT_SHARED_TARGET +- { $as_echo "$as_me:$LINENO: result: yes" >&5 ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 + $as_echo "yes" >&6; } + if test x"$USESHARED" != x"true" -o x"$LINK_LIBSMBCLIENT" = "xSTATIC" ; then + enable_static=yes +@@ -54098,12 +19286,12 @@ + enable_static=yes + LIBSMBCLIENT_TARGET=$LIBSMBCLIENT_STATIC_TARGET + LIBSMBCLIENT_LIBS=$LIBSMBCLIENT_STATIC_TARGET +- { $as_echo "$as_me:$LINENO: result: no shared library support -- will supply static library" >&5 ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no shared library support -- will supply static library" >&5 + $as_echo "no shared library support -- will supply static library" >&6; } + fi + else + enable_static=yes +- { $as_echo "$as_me:$LINENO: result: shared library not selected" >&5 ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: shared library not selected" >&5 + $as_echo "shared library not selected" >&6; } + fi + if test $enable_static = yes; then +@@ -54141,16 +19329,16 @@ + + + +-{ $as_echo "$as_me:$LINENO: checking whether to build the libsmbsharemodes shared library" >&5 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build the libsmbsharemodes shared library" >&5 + $as_echo_n "checking whether to build the libsmbsharemodes shared library... " >&6; } + + + # Check whether --with-libsmbsharemodes was given. +-if test "${with_libsmbsharemodes+set}" = set; then ++if test "${with_libsmbsharemodes+set}" = set; then : + withval=$with_libsmbsharemodes; + case "$withval" in + no) +- { $as_echo "$as_me:$LINENO: result: no" >&5 ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + $as_echo "no" >&6; } + build_lib=no + ;; +@@ -54176,7 +19364,7 @@ + if eval $BLDSHARED = true; then + LIBSMBSHAREMODES_SHARED=$LIBSMBSHAREMODES_SHARED_TARGET + LIBSMBSHAREMODES_TARGET=$LIBSMBSHAREMODES_SHARED_TARGET +- { $as_echo "$as_me:$LINENO: result: yes" >&5 ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 + $as_echo "yes" >&6; } + if test x"$USESHARED" != x"true" -o x"$LINK_LIBSMBSHAREMODES" = "xSTATIC" ; then + enable_static=yes +@@ -54189,12 +19377,12 @@ + enable_static=yes + LIBSMBSHAREMODES_TARGET=$LIBSMBSHAREMODES_STATIC_TARGET + LIBSMBSHAREMODES_LIBS=$LIBSMBSHAREMODES_STATIC_TARGET +- { $as_echo "$as_me:$LINENO: result: no shared library support -- will supply static library" >&5 ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no shared library support -- will supply static library" >&5 + $as_echo "no shared library support -- will supply static library" >&6; } + fi + else + enable_static=yes +- { $as_echo "$as_me:$LINENO: result: shared library not selected" >&5 ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: shared library not selected" >&5 + $as_echo "shared library not selected" >&6; } + fi + if test $enable_static = yes; then +@@ -54232,19 +19420,19 @@ + + + +-{ $as_echo "$as_me:$LINENO: checking whether to build the libaddns shared library" >&5 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build the libaddns shared library" >&5 + $as_echo_n "checking whether to build the libaddns shared library... " >&6; } + + + # Check whether --with-libaddns was given. +-if test "${with_libaddns+set}" = set; then ++if test "${with_libaddns+set}" = set; then : + withval=$with_libaddns; + case "$withval" in + yes) + build_lib=yes + ;; + *) +- { $as_echo "$as_me:$LINENO: result: no" >&5 ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + $as_echo "no" >&6; } + build_lib=no + ;; +@@ -54253,7 +19441,7 @@ + else + + # if unspecified, default is not to build +-{ $as_echo "$as_me:$LINENO: result: no" >&5 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + $as_echo "no" >&6; } + build_lib=no + +@@ -54269,7 +19457,7 @@ + if eval $BLDSHARED = true; then + LIBADDNS_SHARED=$LIBADDNS_SHARED_TARGET + LIBADDNS_TARGET=$LIBADDNS_SHARED_TARGET +- { $as_echo "$as_me:$LINENO: result: yes" >&5 ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 + $as_echo "yes" >&6; } + if test x"$USESHARED" != x"true" -o x"$LINK_LIBADDNS" = "xSTATIC" ; then + enable_static=yes +@@ -54282,12 +19470,12 @@ + enable_static=yes + LIBADDNS_TARGET=$LIBADDNS_STATIC_TARGET + LIBADDNS_LIBS=$LIBADDNS_STATIC_TARGET +- { $as_echo "$as_me:$LINENO: result: no shared library support -- will supply static library" >&5 ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no shared library support -- will supply static library" >&5 + $as_echo "no shared library support -- will supply static library" >&6; } + fi + else + enable_static=yes +- { $as_echo "$as_me:$LINENO: result: shared library not selected" >&5 ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: shared library not selected" >&5 + $as_echo "shared library not selected" >&6; } + fi + if test $enable_static = yes; then +@@ -54304,165 +19492,39 @@ ################ @@ -59796,7 +61111,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure else cat >>confdefs.h <<_ACEOF -@@ -52452,102 +18399,9 @@ +@@ -54472,102 +19534,9 @@ fi else @@ -59887,11 +61202,11 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - +- +-fi + ac_fn_c_check_type "$LINENO" "intptr_t" "ac_cv_type_intptr_t" "$ac_includes_default" +if test "x$ac_cv_type_intptr_t" = x""yes; then : --fi -- -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_intptr_t" >&5 @@ -59901,7 +61216,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure else cat >>confdefs.h <<_ACEOF -@@ -52562,17 +18416,13 @@ +@@ -54582,17 +19551,13 @@ # Check if the compiler supports the LL prefix on long long integers. # AIX needs this. @@ -59922,7 +61237,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #include int -@@ -52583,190 +18433,97 @@ +@@ -54603,190 +19568,97 @@ return 0; } _ACEOF @@ -60065,8 +61380,8 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #include #include - main() { exit((sizeof(off_t) == 8) ? 0 : 1); } - _ACEOF +-main() { exit((sizeof(off_t) == 8) ? 0 : 1); } +-_ACEOF -rm -f conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in @@ -60089,6 +61404,8 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then ++main() { exit((sizeof(off_t) == 8) ? 0 : 1); } ++_ACEOF +if ac_fn_c_try_run "$LINENO"; then : samba_cv_SIZEOF_OFF_T=yes else @@ -60141,7 +61458,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #if defined(HAVE_UNISTD_H) -@@ -52776,67 +18533,34 @@ +@@ -54796,67 +19668,34 @@ #include main() { struct stat64 st; off64_t s; if (sizeof(off_t) == sizeof(off64_t)) exit(1); exit((lstat64("/dev/null", &st)==0)?0:1); } _ACEOF @@ -60219,7 +61536,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #if defined(HAVE_UNISTD_H) -@@ -52846,67 +18570,34 @@ +@@ -54866,67 +19705,34 @@ #include main() { exit((sizeof(ino_t) == 8) ? 0 : 1); } _ACEOF @@ -60297,12 +61614,10 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #if defined(HAVE_UNISTD_H) -@@ -52914,69 +18605,36 @@ - #endif - #include +@@ -54936,67 +19742,34 @@ #include --main() { struct stat64 st; ino64_t s; if (sizeof(ino_t) == sizeof(ino64_t)) exit(1); exit((lstat64("/dev/null", &st)==0)?0:1); } --_ACEOF + main() { struct stat64 st; ino64_t s; if (sizeof(ino_t) == sizeof(ino64_t)) exit(1); exit((lstat64("/dev/null", &st)==0)?0:1); } + _ACEOF -rm -f conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in @@ -60325,8 +61640,6 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then -+main() { struct stat64 st; ino64_t s; if (sizeof(ino_t) == sizeof(ino64_t)) exit(1); exit((lstat64("/dev/null", &st)==0)?0:1); } -+_ACEOF +if ac_fn_c_try_run "$LINENO"; then : samba_cv_HAVE_INO64_T=yes else @@ -60379,7 +61692,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #if defined(HAVE_UNISTD_H) -@@ -52986,67 +18644,34 @@ +@@ -55006,67 +19779,34 @@ #include main() { exit((sizeof(dev_t) == 8) ? 0 : 1); } _ACEOF @@ -60457,7 +61770,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #if defined(HAVE_UNISTD_H) -@@ -53056,64 +18681,31 @@ +@@ -55076,64 +19816,31 @@ #include main() { struct stat64 st; dev64_t s; if (sizeof(dev_t) == sizeof(dev64_t)) exit(1); exit((lstat64("/dev/null", &st)==0)?0:1); } _ACEOF @@ -60531,7 +61844,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #if defined(HAVE_UNISTD_H) -@@ -53129,55 +18721,28 @@ +@@ -55149,55 +19856,28 @@ return 0; } _ACEOF @@ -60594,7 +61907,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #if defined(HAVE_UNISTD_H) -@@ -53193,58 +18758,31 @@ +@@ -55213,58 +19893,31 @@ return 0; } _ACEOF @@ -60661,7 +61974,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #if defined(HAVE_UNISTD_H) -@@ -53253,67 +18791,34 @@ +@@ -55273,67 +19926,34 @@ #include main() { dev_t dev; int i = major(dev); return 0; } _ACEOF @@ -60739,7 +62052,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #if defined(HAVE_UNISTD_H) -@@ -53322,67 +18827,34 @@ +@@ -55342,67 +19962,34 @@ #include main() { dev_t dev; int i = minor(dev); return 0; } _ACEOF @@ -60817,7 +62130,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #if defined(HAVE_UNISTD_H) -@@ -53391,129 +18863,63 @@ +@@ -55411,129 +19998,63 @@ #include main() { dev_t dev = makedev(1,2); return 0; } _ACEOF @@ -60966,7 +62279,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #include #include -@@ -53526,55 +18932,28 @@ +@@ -55546,55 +20067,28 @@ return 0; } _ACEOF @@ -61029,7 +62342,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #include int -@@ -53585,55 +18964,28 @@ +@@ -55605,55 +20099,28 @@ return 0; } _ACEOF @@ -61092,7 +62405,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #include -@@ -53646,46 +18998,19 @@ +@@ -55666,46 +20133,19 @@ return 0; } _ACEOF @@ -61145,7 +62458,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure fi -@@ -53697,120 +19022,24 @@ +@@ -55717,120 +20157,24 @@ # which rely on signals. @@ -61274,7 +62587,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #if TIME_WITH_SYS_TIME -@@ -53834,58 +19063,27 @@ +@@ -55854,58 +20198,27 @@ return 0; } _ACEOF @@ -61341,7 +62654,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #if TIME_WITH_SYS_TIME -@@ -53909,58 +19107,27 @@ +@@ -55929,58 +20242,27 @@ return 0; } _ACEOF @@ -61408,7 +62721,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #if TIME_WITH_SYS_TIME -@@ -53984,49 +19151,22 @@ +@@ -56004,49 +20286,22 @@ return 0; } _ACEOF @@ -61464,7 +62777,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -@@ -54044,18 +19184,14 @@ +@@ -56064,18 +20319,14 @@ ;; *) # clock_gettime was not found, try adding librt @@ -61486,7 +62799,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. -@@ -54073,60 +19209,29 @@ +@@ -56093,60 +20344,29 @@ return 0; } _ACEOF @@ -61556,7 +62869,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #if TIME_WITH_SYS_TIME -@@ -54150,58 +19255,27 @@ +@@ -56170,58 +20390,27 @@ return 0; } _ACEOF @@ -61623,7 +62936,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #if TIME_WITH_SYS_TIME -@@ -54225,58 +19299,27 @@ +@@ -56245,58 +20434,27 @@ return 0; } _ACEOF @@ -61690,7 +63003,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #if TIME_WITH_SYS_TIME -@@ -54300,49 +19343,22 @@ +@@ -56320,49 +20478,22 @@ return 0; } _ACEOF @@ -61746,7 +63059,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -@@ -54367,20 +19383,16 @@ +@@ -56387,20 +20518,16 @@ fi @@ -61771,7 +63084,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #include #include -@@ -54388,64 +19400,31 @@ +@@ -56408,216 +20535,67 @@ if (di && di->d_name[-2] == '.' && di->d_name[-1] == 0 && di->d_name[0] == 0) exit(0); exit(1);} _ACEOF @@ -61824,31 +63137,31 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -cat >>confdefs.h <<\_ACEOF -#define HAVE_BROKEN_READDIR_NAME 1 -_ACEOF -+$as_echo "#define HAVE_BROKEN_READDIR_NAME 1" >>confdefs.h - - fi - +- +-fi +- -{ $as_echo "$as_me:$LINENO: checking for utimbuf" >&5 -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for utimbuf" >&5 - $as_echo_n "checking for utimbuf... " >&6; } +-$as_echo_n "checking for utimbuf... " >&6; } -if test "${samba_cv_HAVE_UTIMBUF+set}" = set; then -+if test "${samba_cv_HAVE_UTIMBUF+set}" = set; then : - $as_echo_n "(cached) " >&6 - else - +- $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 -+cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ - #include - #include -@@ -54457,41 +19436,18 @@ - return 0; - } - _ACEOF +-/* end confdefs.h. */ +-#include +-#include +-int +-main () +-{ +-struct utimbuf tbuf; tbuf.actime = 0; tbuf.modtime = 1; exit(utime("foo.c",&tbuf)); +- ; +- return 0; +-} +-_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in @@ -61867,40 +63180,37 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then -+if ac_fn_c_try_compile "$LINENO"; then : - samba_cv_HAVE_UTIMBUF=yes - else +- samba_cv_HAVE_UTIMBUF=yes +-else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - samba_cv_HAVE_UTIMBUF=no -+ samba_cv_HAVE_UTIMBUF=no - fi +-fi - - rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi +-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +-fi -{ $as_echo "$as_me:$LINENO: result: $samba_cv_HAVE_UTIMBUF" >&5 -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $samba_cv_HAVE_UTIMBUF" >&5 - $as_echo "$samba_cv_HAVE_UTIMBUF" >&6; } - if test x"$samba_cv_HAVE_UTIMBUF" = x"yes"; then - +-$as_echo "$samba_cv_HAVE_UTIMBUF" >&6; } +-if test x"$samba_cv_HAVE_UTIMBUF" = x"yes"; then +- -cat >>confdefs.h <<\_ACEOF -#define HAVE_UTIMBUF 1 -_ACEOF -+$as_echo "#define HAVE_UTIMBUF 1" >>confdefs.h - - fi - -@@ -54499,104 +19455,12 @@ - # Check utmp details, but only if our OS offers utmp.h - if test x"$ac_cv_header_utmp_h" = x"yes"; then - +- +-fi +- +-############## +-# Check utmp details, but only if our OS offers utmp.h +-if test x"$ac_cv_header_utmp_h" = x"yes"; then - - - - - - for ac_func in pututline pututxline updwtmp updwtmpx getutmpx +- +- +-for ac_func in pututline pututxline updwtmp updwtmpx getutmpx getutxent -do -as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 @@ -61945,14 +63255,29 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -choke me -#endif - --int --main () --{ ++$as_echo "#define HAVE_BROKEN_READDIR_NAME 1" >>confdefs.h ++ ++fi ++ ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for utimbuf" >&5 ++$as_echo_n "checking for utimbuf... " >&6; } ++if test "${samba_cv_HAVE_UTIMBUF+set}" = set; then : ++ $as_echo_n "(cached) " >&6 ++else ++ ++cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++#include ++#include + int + main () + { -return $ac_func (); -- ; -- return 0; --} --_ACEOF ++struct utimbuf tbuf; tbuf.actime = 0; tbuf.modtime = 1; exit(utime("foo.c",&tbuf)); + ; + return 0; + } + _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in @@ -61975,17 +63300,27 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - $as_test_x conftest$ac_exeext - }; then - eval "$as_ac_var=yes" --else ++if ac_fn_c_try_compile "$LINENO"; then : ++ samba_cv_HAVE_UTIMBUF=yes + else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - eval "$as_ac_var=no" --fi -- ++ samba_cv_HAVE_UTIMBUF=no ++fi ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $samba_cv_HAVE_UTIMBUF" >&5 ++$as_echo "$samba_cv_HAVE_UTIMBUF" >&6; } ++if test x"$samba_cv_HAVE_UTIMBUF" = x"yes"; then ++ ++$as_echo "#define HAVE_UTIMBUF 1" >>confdefs.h + -rm -rf conftest.dSYM -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext --fi + fi -ac_res=`eval 'as_val=${'$as_ac_var'} - $as_echo "$as_val"'` - { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 @@ -61993,6 +63328,12 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -as_val=`eval 'as_val=${'$as_ac_var'} - $as_echo "$as_val"'` - if test "x$as_val" = x""yes; then ++ ++############## ++# Check utmp details, but only if our OS offers utmp.h ++if test x"$ac_cv_header_utmp_h" = x"yes"; then ++ ++for ac_func in pututline pututxline updwtmp updwtmpx getutmpx getutxent +do : + as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" @@ -62001,7 +63342,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF -@@ -54605,17 +19469,13 @@ +@@ -56626,17 +20604,13 @@ done @@ -62022,7 +63363,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #include #include -@@ -54627,55 +19487,28 @@ +@@ -56648,55 +20622,28 @@ return 0; } _ACEOF @@ -62085,7 +63426,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #include #include -@@ -54687,55 +19520,28 @@ +@@ -56708,55 +20655,28 @@ return 0; } _ACEOF @@ -62148,7 +63489,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #include #include -@@ -54747,55 +19553,28 @@ +@@ -56768,55 +20688,28 @@ return 0; } _ACEOF @@ -62211,7 +63552,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #include #include -@@ -54807,55 +19586,28 @@ +@@ -56828,55 +20721,28 @@ return 0; } _ACEOF @@ -62274,14 +63615,10 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #include #include -@@ -54863,59 +19615,32 @@ - main () - { - struct utmp ut; time_t t; ut.ut_time = t; -- ; -- return 0; --} --_ACEOF +@@ -56888,55 +20754,28 @@ + return 0; + } + _ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in @@ -62300,10 +63637,6 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then -+ ; -+ return 0; -+} -+_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : samba_cv_HAVE_UT_UT_TIME=yes else @@ -62345,7 +63678,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #include #include -@@ -54927,55 +19652,28 @@ +@@ -56948,55 +20787,28 @@ return 0; } _ACEOF @@ -62408,7 +63741,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #include #include -@@ -54987,55 +19685,28 @@ +@@ -57008,55 +20820,28 @@ return 0; } _ACEOF @@ -62471,7 +63804,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #include #include -@@ -55047,55 +19718,28 @@ +@@ -57068,55 +20853,28 @@ return 0; } _ACEOF @@ -62534,7 +63867,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #include #include -@@ -55107,55 +19751,28 @@ +@@ -57128,55 +20886,28 @@ return 0; } _ACEOF @@ -62597,7 +63930,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #include #include -@@ -55167,55 +19784,28 @@ +@@ -57188,55 +20919,28 @@ return 0; } _ACEOF @@ -62660,7 +63993,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #include #include -@@ -55227,56 +19817,29 @@ +@@ -57248,56 +20952,29 @@ return 0; } _ACEOF @@ -62724,7 +64057,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #include #include -@@ -55288,56 +19851,29 @@ +@@ -57309,56 +20986,29 @@ return 0; } _ACEOF @@ -62788,7 +64121,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #include #include -@@ -55349,41 +19885,18 @@ +@@ -57370,41 +21020,18 @@ return 0; } _ACEOF @@ -62834,7 +64167,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure fi -@@ -55394,12 +19907,10 @@ +@@ -57415,12 +21042,10 @@ ICONV_LOOK_DIRS="/usr /usr/local /sw /opt" # Check whether --with-libiconv was given. @@ -62849,7 +64182,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure else if test "$withval" != "yes" ; then ICONV_PATH_SPEC=yes -@@ -55445,7 +19956,7 @@ +@@ -57466,7 +21091,7 @@ export LDFLAGS LIBS CPPFLAGS # Try to find iconv(3) @@ -62858,7 +64191,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo_n "checking for iconv in $i/$l... " >&6; } jm_cv_func_iconv="no" jm_cv_lib_iconv="" -@@ -55453,11 +19964,7 @@ +@@ -57474,11 +21099,7 @@ jm_save_LIBS="$LIBS" if test "$jm_cv_func_iconv" != yes; then @@ -62871,7 +64204,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #include #include -@@ -55471,48 +19978,17 @@ +@@ -57492,48 +21113,17 @@ return 0; } _ACEOF @@ -62924,7 +64257,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #include #include -@@ -55526,49 +20002,18 @@ +@@ -57547,49 +21137,18 @@ return 0; } _ACEOF @@ -62978,7 +64311,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #include #include -@@ -55582,53 +20027,22 @@ +@@ -57603,53 +21162,22 @@ return 0; } _ACEOF @@ -63036,7 +64369,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #include #include -@@ -55642,50 +20056,19 @@ +@@ -57663,50 +21191,19 @@ return 0; } _ACEOF @@ -63091,7 +64424,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #include #include -@@ -55699,42 +20082,15 @@ +@@ -57720,42 +21217,15 @@ return 0; } _ACEOF @@ -63137,7 +64470,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure LIBS="$jm_save_LIBS" fi -@@ -55745,36 +20101,30 @@ +@@ -57766,36 +21236,30 @@ if test "$jm_cv_func_iconv" = yes; then if test "$jm_cv_giconv" = yes; then @@ -63181,7 +64514,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "no" >&6; } fi -@@ -55812,16 +20162,12 @@ +@@ -57833,16 +21297,12 @@ # check for default dos charset name for j in CP850 IBM850 ; do @@ -63201,7 +64534,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #include <$jm_cv_include> -@@ -55834,43 +20180,16 @@ +@@ -57855,43 +21315,16 @@ } _ACEOF @@ -63250,7 +64583,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "$ICONV_CHARSET" >&6; } default_dos_charset="$ICONV_CHARSET" -@@ -55882,16 +20201,12 @@ +@@ -57903,16 +21336,12 @@ # check for default display charset name for j in ASCII 646 ; do @@ -63270,7 +64603,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #include <$jm_cv_include> -@@ -55904,43 +20219,16 @@ +@@ -57925,43 +21354,16 @@ } _ACEOF @@ -63319,7 +64652,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "$ICONV_CHARSET" >&6; } default_display_charset="$ICONV_CHARSET" -@@ -55952,16 +20240,12 @@ +@@ -57973,16 +21375,12 @@ # check for default unix charset name for j in UTF-8 UTF8 ; do @@ -63339,7 +64672,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #include <$jm_cv_include> -@@ -55974,43 +20258,16 @@ +@@ -57995,43 +21393,16 @@ } _ACEOF @@ -63388,7 +64721,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "$ICONV_CHARSET" >&6; } default_unix_charset="$ICONV_CHARSET" -@@ -56049,9 +20306,9 @@ +@@ -58070,9 +21441,9 @@ default_display_charset="ASCII" default_unix_charset="UTF-8" samba_cv_HAVE_NATIVE_ICONV=yes @@ -63400,7 +64733,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "$as_me: WARNING: $default_dos_charset, $default_display_charset and $default_unix_charset to UCS-16LE" >&2;} fi -@@ -56075,9 +20332,7 @@ +@@ -58096,9 +21467,7 @@ default_unix_charset="\"$default_unix_charset\"" @@ -63411,7 +64744,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure cat >>confdefs.h <<_ACEOF -@@ -56111,7 +20366,7 @@ +@@ -58132,7 +21501,7 @@ if test x"$ICONV_FOUND" = x"no" -o x"$samba_cv_HAVE_NATIVE_ICONV" != x"yes" ; then @@ -63420,7 +64753,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure Install libiconv from http://freshmeat.net/projects/libiconv/ for better charset compatibility!" >&5 $as_echo "$as_me: WARNING: Sufficient support for iconv function was not found. Install libiconv from http://freshmeat.net/projects/libiconv/ for better charset compatibility!" >&2;} -@@ -56133,20 +20388,16 @@ +@@ -58154,20 +21523,16 @@ fi @@ -63445,7 +64778,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #include -@@ -56160,67 +20411,34 @@ +@@ -58181,67 +21546,34 @@ } _ACEOF @@ -63523,7 +64856,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #include -@@ -56234,204 +20452,36 @@ +@@ -58255,204 +21587,36 @@ } _ACEOF @@ -63741,12 +65074,13 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF -@@ -56440,119 +20490,25 @@ +@@ -58460,120 +21624,26 @@ + fi done - - - for ac_func in inotify_init +- +-for ac_func in inotify_init -do -as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 @@ -63839,6 +65173,8 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -as_val=`eval 'as_val=${'$as_ac_var'} - $as_echo "$as_val"'` - if test "x$as_val" = x""yes; then ++ ++for ac_func in inotify_init +do : + ac_fn_c_check_func "$LINENO" "inotify_init" "ac_cv_func_inotify_init" +if test "x$ac_cv_func_inotify_init" = x""yes; then : @@ -63868,7 +65204,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #include int -@@ -56563,54 +20519,29 @@ +@@ -58584,54 +21654,29 @@ return 0; } _ACEOF @@ -63929,7 +65265,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure fi -@@ -56619,157 +20550,18 @@ +@@ -58640,157 +21685,18 @@ # http://oss.sgi.com/projects/fam/ # http://savannah.nongnu.org/projects/fam/ # Check whether --enable-fam was given. @@ -64093,7 +65429,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure _ACEOF samba_cv_HAVE_FAM_H=yes else -@@ -56781,18 +20573,14 @@ +@@ -58802,18 +21708,14 @@ if test x"$samba_cv_HAVE_FAM_H" = x"yes"; then # On IRIX, libfam requires libC, but other FAM implementations # might not need it. @@ -64115,11 +65451,10 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. -@@ -56809,44 +20597,19 @@ - ; +@@ -58831,43 +21733,18 @@ return 0; } --_ACEOF + _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in @@ -64141,7 +65476,6 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - test "$cross_compiling" = yes || - $as_test_x conftest$ac_exeext - }; then -+_ACEOF +if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_fam_FAMOpen2=yes else @@ -64167,7 +65501,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure samba_cv_HAVE_LIBFAM=yes; SMB_FAM_LIBS="-lfam" else samba_cv_HAVE_LIBFAM=no -@@ -56857,23 +20620,17 @@ +@@ -58878,23 +21755,17 @@ samba_fam_xtra=-lC @@ -64194,7 +65528,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. -@@ -56891,72 +20648,41 @@ +@@ -58912,72 +21783,41 @@ return 0; } _ACEOF @@ -64275,7 +65609,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #include int -@@ -56967,43 +20693,16 @@ +@@ -58988,43 +21828,16 @@ return 0; } _ACEOF @@ -64322,7 +65656,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure fi fi -@@ -57016,18 +20715,14 @@ +@@ -59037,18 +21850,14 @@ samba_dmapi_libs="" if test x"$samba_dmapi_libs" = x"" ; then @@ -64344,7 +65678,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. -@@ -57045,61 +20740,32 @@ +@@ -59066,61 +21875,32 @@ return 0; } _ACEOF @@ -64415,7 +65749,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. -@@ -57117,61 +20783,32 @@ +@@ -59138,61 +21918,32 @@ return 0; } _ACEOF @@ -64467,77 +65801,6 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure fi - if test x"$samba_dmapi_libs" = x"" ; then -- { $as_echo "$as_me:$LINENO: checking for dm_get_eventlist in -lxdsm" >&5 -+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dm_get_eventlist in -lxdsm" >&5 - $as_echo_n "checking for dm_get_eventlist in -lxdsm... " >&6; } --if test "${ac_cv_lib_xdsm_dm_get_eventlist+set}" = set; then -+if test "${ac_cv_lib_xdsm_dm_get_eventlist+set}" = set; then : - $as_echo_n "(cached) " >&6 - else - ac_check_lib_save_LIBS=$LIBS - LIBS="-lxdsm $LIBS" --cat >conftest.$ac_ext <<_ACEOF --/* confdefs.h. */ --_ACEOF --cat confdefs.h >>conftest.$ac_ext --cat >>conftest.$ac_ext <<_ACEOF -+cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ - - /* Override any GCC internal prototype to avoid an error. -@@ -57189,61 +20826,32 @@ - return 0; - } - _ACEOF --rm -f conftest.$ac_objext conftest$ac_exeext --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 -- $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 -+if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_xdsm_dm_get_eventlist=yes - else -- $as_echo "$as_me: failed program was:" >&5 --sed 's/^/| /' conftest.$ac_ext >&5 -- -- ac_cv_lib_xdsm_dm_get_eventlist=no -+ ac_cv_lib_xdsm_dm_get_eventlist=no - fi -- --rm -rf conftest.dSYM --rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ -- conftest$ac_exeext conftest.$ac_ext -+rm -f core conftest.err conftest.$ac_objext \ -+ conftest$ac_exeext conftest.$ac_ext - LIBS=$ac_check_lib_save_LIBS - fi --{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_xdsm_dm_get_eventlist" >&5 -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_xdsm_dm_get_eventlist" >&5 - $as_echo "$ac_cv_lib_xdsm_dm_get_eventlist" >&6; } --if test "x$ac_cv_lib_xdsm_dm_get_eventlist" = x""yes; then -+if test "x$ac_cv_lib_xdsm_dm_get_eventlist" = x""yes; then : - samba_dmapi_libs="-lxdsm" - fi - - fi - if test x"$samba_dmapi_libs" = x"" ; then - { $as_echo "$as_me:$LINENO: checking for dm_get_eventlist in -ldmapi" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dm_get_eventlist in -ldmapi" >&5 @@ -64557,7 +65820,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. -@@ -57261,43 +20869,18 @@ +@@ -59210,61 +21961,32 @@ return 0; } _ACEOF @@ -64607,7 +65870,78 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure samba_dmapi_libs="-ldmapi" fi -@@ -57306,153 +20889,12 @@ + fi + + if test x"$samba_dmapi_libs" = x"" ; then +- { $as_echo "$as_me:$LINENO: checking for dm_get_eventlist in -lxdsm" >&5 ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dm_get_eventlist in -lxdsm" >&5 + $as_echo_n "checking for dm_get_eventlist in -lxdsm... " >&6; } +-if test "${ac_cv_lib_xdsm_dm_get_eventlist+set}" = set; then ++if test "${ac_cv_lib_xdsm_dm_get_eventlist+set}" = set; then : + $as_echo_n "(cached) " >&6 + else + ac_check_lib_save_LIBS=$LIBS + LIBS="-lxdsm $LIBS" +-cat >conftest.$ac_ext <<_ACEOF +-/* confdefs.h. */ +-_ACEOF +-cat confdefs.h >>conftest.$ac_ext +-cat >>conftest.$ac_ext <<_ACEOF ++cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + + /* Override any GCC internal prototype to avoid an error. +@@ -59282,43 +22004,18 @@ + return 0; + } + _ACEOF +-rm -f conftest.$ac_objext conftest$ac_exeext +-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 +- $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 ++if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_xdsm_dm_get_eventlist=yes + else +- $as_echo "$as_me: failed program was:" >&5 +-sed 's/^/| /' conftest.$ac_ext >&5 +- +- ac_cv_lib_xdsm_dm_get_eventlist=no ++ ac_cv_lib_xdsm_dm_get_eventlist=no + fi +- +-rm -rf conftest.dSYM +-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ +- conftest$ac_exeext conftest.$ac_ext ++rm -f core conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + LIBS=$ac_check_lib_save_LIBS + fi +-{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_xdsm_dm_get_eventlist" >&5 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_xdsm_dm_get_eventlist" >&5 + $as_echo "$ac_cv_lib_xdsm_dm_get_eventlist" >&6; } +-if test "x$ac_cv_lib_xdsm_dm_get_eventlist" = x""yes; then ++if test "x$ac_cv_lib_xdsm_dm_get_eventlist" = x""yes; then : + samba_dmapi_libs="-lxdsm" + fi + +@@ -59327,153 +22024,12 @@ # Only bother to test ehaders if we have a candidate DMAPI library if test x"$samba_dmapi_libs" != x"" ; then @@ -64767,7 +66101,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF -@@ -57466,11 +20908,7 @@ +@@ -59487,11 +22043,7 @@ if test x"$samba_dmapi_libs" != x"" ; then samba_dmapi_save_LIBS="$LIBS" LIBS="$LIBS $samba_dmapi_libs" @@ -64780,7 +66114,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #include /* needed by Tru64 */ -@@ -57505,50 +20943,25 @@ +@@ -59526,50 +22078,25 @@ return 0; } _ACEOF @@ -64835,7 +66169,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "$as_me: DMAPI support not present" >&6;} # DMAPI detection failure actions end -@@ -57556,11 +20969,9 @@ +@@ -59577,11 +22104,9 @@ # DMAPI detection success actions start @@ -64849,7 +66183,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "$as_me: Found DMAPI support in $samba_dmapi_libs" >&6;} # DMAPI detection success actions end -@@ -57574,20 +20985,16 @@ +@@ -59595,20 +22120,16 @@ default_shared_modules="$default_shared_modules vfs_tsmsm" fi @@ -64874,7 +66208,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #include -@@ -57603,65 +21010,32 @@ +@@ -59624,65 +22145,32 @@ } _ACEOF @@ -64949,7 +66283,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #include #include -@@ -57673,185 +21047,29 @@ +@@ -59694,185 +22182,29 @@ return 0; } _ACEOF @@ -65142,7 +66476,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure fi -@@ -57861,110 +21079,18 @@ +@@ -59882,110 +22214,18 @@ ac_save_LIBS=$LIBS @@ -65259,7 +66593,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -@@ -57981,18 +21107,14 @@ +@@ -60002,18 +22242,14 @@ ;; *) # cap_get_proc was not found, try adding libcap @@ -65281,7 +66615,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. -@@ -58010,50 +21132,23 @@ +@@ -60031,50 +22267,23 @@ return 0; } _ACEOF @@ -65339,7 +66673,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -@@ -58075,20 +21170,16 @@ +@@ -60096,20 +22305,16 @@ @@ -65364,7 +66698,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #include -@@ -58104,52 +21195,23 @@ +@@ -60125,52 +22330,23 @@ exit(0); } _ACEOF @@ -65423,7 +66757,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure else LIBS=$ac_save_LIBS -@@ -58162,17 +21224,13 @@ +@@ -60183,17 +22359,13 @@ # This is *really* broken but some systems (DEC OSF1) do this.... JRA. # @@ -65444,7 +66778,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #include #if defined(HAVE_RPC_RPC_H) -@@ -58186,55 +21244,28 @@ +@@ -60207,55 +22379,28 @@ return 0; } _ACEOF @@ -65507,7 +66841,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #include #if defined(HAVE_RPC_RPC_H) -@@ -58248,55 +21279,28 @@ +@@ -60269,55 +22414,28 @@ return 0; } _ACEOF @@ -65570,7 +66904,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #include #if defined(HAVE_RPC_RPC_H) -@@ -58310,55 +21314,28 @@ +@@ -60331,55 +22449,28 @@ return 0; } _ACEOF @@ -65594,11 +66928,12 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - } && test -s conftest.$ac_objext; then +if ac_fn_c_try_compile "$LINENO"; then : samba_cv_HAVE_INT32_FROM_RPC_RPC_H=yes - else +-else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - samba_cv_HAVE_INT32_FROM_RPC_RPC_H=no ++else + samba_cv_HAVE_INT32_FROM_RPC_RPC_H=no fi - @@ -65633,7 +66968,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #include #if defined(HAVE_RPC_RPC_H) -@@ -58372,56 +21349,29 @@ +@@ -60393,56 +22484,29 @@ return 0; } _ACEOF @@ -65697,7 +67032,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #include #ifdef HAVE_SYS_SECURITY_H -@@ -58439,238 +21389,112 @@ +@@ -60460,238 +22524,112 @@ return 0; } _ACEOF @@ -65972,7 +67307,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #include int -@@ -58681,63 +21505,32 @@ +@@ -60702,63 +22640,32 @@ return 0; } _ACEOF @@ -65999,12 +67334,11 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - }; then +if ac_fn_c_try_link "$LINENO"; then : samba_cv_SYSCONF_SC_NGROUPS_MAX=yes --else + else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - samba_cv_SYSCONF_SC_NGROUPS_MAX=no -+else + samba_cv_SYSCONF_SC_NGROUPS_MAX=no fi - @@ -66046,7 +67380,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #include int -@@ -58748,63 +21541,32 @@ +@@ -60769,63 +22676,32 @@ return 0; } _ACEOF @@ -66119,7 +67453,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #include int -@@ -58815,63 +21577,32 @@ +@@ -60836,63 +22712,32 @@ return 0; } _ACEOF @@ -66192,7 +67526,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #include int -@@ -58882,147 +21613,30 @@ +@@ -60903,147 +22748,30 @@ return 0; } _ACEOF @@ -66350,7 +67684,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure _ACEOF fi -@@ -59034,20 +21648,16 @@ +@@ -61055,20 +22783,16 @@ seteuid=no; if test $seteuid = no; then @@ -66375,7 +67709,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #define AUTOCONF_TEST 1 -@@ -59055,50 +21665,21 @@ +@@ -61076,50 +22800,21 @@ #include "confdefs.h" #include "${srcdir-.}/lib/util_sec.c" _ACEOF @@ -66432,7 +67766,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure fi fi -@@ -59106,20 +21687,16 @@ +@@ -61127,20 +22822,16 @@ # we check for setresuid second as it conflicts with AIO on Linux. # see http://samba.org/~tridge/junkcode/aio_uid.c if test $seteuid = no; then @@ -66457,7 +67791,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #define AUTOCONF_TEST 1 -@@ -59127,69 +21704,36 @@ +@@ -61148,69 +22839,36 @@ #include "confdefs.h" #include "${srcdir-.}/lib/util_sec.c" _ACEOF @@ -66537,7 +67871,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #define AUTOCONF_TEST 1 -@@ -59197,69 +21741,36 @@ +@@ -61218,69 +22876,36 @@ #include "confdefs.h" #include "${srcdir-.}/lib/util_sec.c" _ACEOF @@ -66617,7 +67951,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #define AUTOCONF_TEST 1 -@@ -59267,64 +21778,31 @@ +@@ -61288,64 +22913,31 @@ #include "confdefs.h" #include "${srcdir-.}/lib/util_sec.c" _ACEOF @@ -66691,7 +68025,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #include -@@ -59338,195 +21816,98 @@ +@@ -61359,195 +22951,98 @@ return 0; } _ACEOF @@ -66917,7 +68251,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #if defined(HAVE_UNISTD_H) -@@ -59550,66 +21931,33 @@ +@@ -61571,67 +23066,34 @@ #endif } _ACEOF @@ -66976,6 +68310,71 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure fi fi + # glibc up to 2.3.6 had dangerously broken posix_fallocate(). DON'T USE IT. +-{ $as_echo "$as_me:$LINENO: checking for broken posix_fallocate" >&5 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for broken posix_fallocate" >&5 + $as_echo_n "checking for broken posix_fallocate... " >&6; } +-if test "${samba_cv_HAVE_BROKEN_POSIX_FALLOCATE+set}" = set; then ++if test "${samba_cv_HAVE_BROKEN_POSIX_FALLOCATE+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 ++cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + + #define _XOPEN_SOURCE 600 +@@ -61649,56 +23111,29 @@ + 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 ++if ac_fn_c_try_compile "$LINENO"; then : + samba_cv_HAVE_BROKEN_POSIX_FALLOCATE=no + else +- $as_echo "$as_me: failed program was:" >&5 +-sed 's/^/| /' conftest.$ac_ext >&5 +- +- samba_cv_HAVE_BROKEN_POSIX_FALLOCATE=yes ++ samba_cv_HAVE_BROKEN_POSIX_FALLOCATE=yes + fi +- + rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + fi +-{ $as_echo "$as_me:$LINENO: result: $samba_cv_HAVE_BROKEN_POSIX_FALLOCATE" >&5 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $samba_cv_HAVE_BROKEN_POSIX_FALLOCATE" >&5 + $as_echo "$samba_cv_HAVE_BROKEN_POSIX_FALLOCATE" >&6; } + if test x"$samba_cv_HAVE_BROKEN_POSIX_FALLOCATE" = xyes; then + +-cat >>confdefs.h <<\_ACEOF +-#define HAVE_BROKEN_POSIX_FALLOCATE /**/ +-_ACEOF ++$as_echo "#define HAVE_BROKEN_POSIX_FALLOCATE /**/" >>confdefs.h + + fi + + -{ $as_echo "$as_me:$LINENO: checking for st_blocks in struct stat" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for st_blocks in struct stat" >&5 $as_echo_n "checking for st_blocks in struct stat... " >&6; } @@ -66993,7 +68392,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #include #include -@@ -59622,55 +21970,28 @@ +@@ -61711,141 +23146,24 @@ return 0; } _ACEOF @@ -67035,10 +68434,224 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -cat >>confdefs.h <<\_ACEOF -#define HAVE_STAT_ST_BLOCKS 1 -_ACEOF +- +-fi +- +-{ $as_echo "$as_me:$LINENO: checking for blksize_t" >&5 +-$as_echo_n "checking for blksize_t... " >&6; } +-if test "${ac_cv_type_blksize_t+set}" = set; then +- $as_echo_n "(cached) " >&6 +-else +- ac_cv_type_blksize_t=no +-cat >conftest.$ac_ext <<_ACEOF +-/* confdefs.h. */ +-_ACEOF +-cat confdefs.h >>conftest.$ac_ext +-cat >>conftest.$ac_ext <<_ACEOF +-/* end confdefs.h. */ +-#include +- +-int +-main () +-{ +-if (sizeof (blksize_t)) +- return 0; +- ; +- 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 +- cat >conftest.$ac_ext <<_ACEOF +-/* confdefs.h. */ +-_ACEOF +-cat confdefs.h >>conftest.$ac_ext +-cat >>conftest.$ac_ext <<_ACEOF +-/* end confdefs.h. */ +-#include +- +-int +-main () +-{ +-if (sizeof ((blksize_t))) +- return 0; +- ; +- 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 +- : +-else +- $as_echo "$as_me: failed program was:" >&5 +-sed 's/^/| /' conftest.$ac_ext >&5 +- +- ac_cv_type_blksize_t=yes +-fi +- +-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +-else +- $as_echo "$as_me: failed program was:" >&5 +-sed 's/^/| /' conftest.$ac_ext >&5 +- +$as_echo "#define HAVE_STAT_ST_BLOCKS 1" >>confdefs.h fi +-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +-fi +-{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_blksize_t" >&5 +-$as_echo "$ac_cv_type_blksize_t" >&6; } +-if test "x$ac_cv_type_blksize_t" = x""yes; then ++ac_fn_c_check_type "$LINENO" "blksize_t" "ac_cv_type_blksize_t" "#include ++" ++if test "x$ac_cv_type_blksize_t" = x""yes; then : + + cat >>confdefs.h <<_ACEOF + #define HAVE_BLKSIZE_T 1 +@@ -61853,103 +23171,9 @@ + + + fi +-{ $as_echo "$as_me:$LINENO: checking for blkcnt_t" >&5 +-$as_echo_n "checking for blkcnt_t... " >&6; } +-if test "${ac_cv_type_blkcnt_t+set}" = set; then +- $as_echo_n "(cached) " >&6 +-else +- ac_cv_type_blkcnt_t=no +-cat >conftest.$ac_ext <<_ACEOF +-/* confdefs.h. */ +-_ACEOF +-cat confdefs.h >>conftest.$ac_ext +-cat >>conftest.$ac_ext <<_ACEOF +-/* end confdefs.h. */ +-#include +- +-int +-main () +-{ +-if (sizeof (blkcnt_t)) +- return 0; +- ; +- 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 +- cat >conftest.$ac_ext <<_ACEOF +-/* confdefs.h. */ +-_ACEOF +-cat confdefs.h >>conftest.$ac_ext +-cat >>conftest.$ac_ext <<_ACEOF +-/* end confdefs.h. */ +-#include +- +-int +-main () +-{ +-if (sizeof ((blkcnt_t))) +- return 0; +- ; +- 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 +- : +-else +- $as_echo "$as_me: failed program was:" >&5 +-sed 's/^/| /' conftest.$ac_ext >&5 +- +- ac_cv_type_blkcnt_t=yes +-fi +- +-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +-else +- $as_echo "$as_me: failed program was:" >&5 +-sed 's/^/| /' conftest.$ac_ext >&5 +- +- +-fi +- +-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +-fi +-{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_blkcnt_t" >&5 +-$as_echo "$ac_cv_type_blkcnt_t" >&6; } +-if test "x$ac_cv_type_blkcnt_t" = x""yes; then ++ac_fn_c_check_type "$LINENO" "blkcnt_t" "ac_cv_type_blkcnt_t" "#include ++" ++if test "x$ac_cv_type_blkcnt_t" = x""yes; then : + + cat >>confdefs.h <<_ACEOF + #define HAVE_BLKCNT_T 1 +@@ -61959,17 +23183,13 @@ + fi + + -{ $as_echo "$as_me:$LINENO: checking for st_blksize in struct stat" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for st_blksize in struct stat" >&5 $as_echo_n "checking for st_blksize in struct stat... " >&6; } @@ -67056,7 +68669,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #include #include -@@ -59683,55 +22004,28 @@ +@@ -61982,55 +23202,28 @@ return 0; } _ACEOF @@ -67119,7 +68732,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #include #include -@@ -59744,57 +22038,30 @@ +@@ -62043,57 +23236,30 @@ return 0; } _ACEOF @@ -67184,7 +68797,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #include -@@ -59810,58 +22077,31 @@ +@@ -62109,58 +23275,31 @@ return 0; } _ACEOF @@ -67251,7 +68864,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #include -@@ -59880,74 +22120,45 @@ +@@ -62179,74 +23318,45 @@ } _ACEOF @@ -67337,7 +68950,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "no" >&6; } fi -@@ -59956,24 +22167,24 @@ +@@ -62255,24 +23365,24 @@ #################################################### # check for Linux-specific AFS fake-kaserver support samba_cv_WITH_FAKE_KASERVER=no @@ -67367,7 +68980,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "no" >&6; } fi -@@ -59985,18 +22196,14 @@ +@@ -62284,18 +23394,14 @@ test x"$samba_cv_WITH_FAKE_KASERVER" != x"no"; then # see if this box has the OpenSSL DES libraries @@ -67389,7 +69002,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. -@@ -60014,208 +22221,43 @@ +@@ -62313,208 +23419,43 @@ return 0; } _ACEOF @@ -67614,7 +69227,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF -@@ -60227,12 +22269,10 @@ +@@ -62526,12 +23467,10 @@ if test x"$ac_cv_header_afs_h" = x"no" && test x"$ac_cv_header_afs_afs_h" = x"no"; then if test x"$samba_cv_WITH_FAKE_KASERVER" = x"auto" || test x"$samba_cv_WITH_AFS" = x"auto"; then @@ -67629,7 +69242,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure fi else have_afs_headers=yes -@@ -60242,9 +22282,7 @@ +@@ -62541,9 +23480,7 @@ FAKE_KASERVER_OBJ="" if test x"$samba_cv_WITH_FAKE_KASERVER" != x"no" && test x"$have_afs_headers" = x"yes"; then @@ -67640,7 +69253,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure FAKE_KASERVER_OBJ="utils/net_afs.o" fi -@@ -60253,24 +22291,24 @@ +@@ -62552,24 +23489,24 @@ ################################################# # check whether to compile AFS/NT ACL mapping module samba_cv_WITH_VFS_AFSACL=no @@ -67670,80 +69283,78 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "no" >&6; } fi -@@ -60280,220 +22318,78 @@ - default_shared_modules="$default_shared_modules vfs_afsacl" - fi +@@ -62581,36 +23518,32 @@ + + if test x"$samba_cv_WITH_AFS" != x"no" && test x"$have_afs_headers" = x"yes"; then --if test x"$samba_cv_WITH_AFS" != x"no" && test x"$have_afs_headers" = x"yes"; then -- -cat >>confdefs.h <<\_ACEOF -#define WITH_AFS 1 -_ACEOF -- --fi -- --################################################# --# check for the DFS clear-text auth system ++$as_echo "#define WITH_AFS 1" >>confdefs.h + + fi + + ################################################# + # check for the DFS clear-text auth system -{ $as_echo "$as_me:$LINENO: checking whether to use DFS clear-text auth" >&5 --$as_echo_n "checking whether to use DFS clear-text auth... " >&6; } -- --# Check whether --with-dfs was given. ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to use DFS clear-text auth" >&5 + $as_echo_n "checking whether to use DFS clear-text auth... " >&6; } + + # Check whether --with-dfs was given. -if test "${with_dfs+set}" = set; then -- withval=$with_dfs; case "$withval" in -- yes) ++if test "${with_dfs+set}" = set; then : + withval=$with_dfs; case "$withval" in + yes) - { $as_echo "$as_me:$LINENO: result: yes" >&5 --$as_echo "yes" >&6; } -- ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 + $as_echo "yes" >&6; } + -cat >>confdefs.h <<\_ACEOF -#define WITH_DFS 1 -_ACEOF -- -- ;; -- *) ++$as_echo "#define WITH_DFS 1" >>confdefs.h + + ;; + *) - { $as_echo "$as_me:$LINENO: result: no" >&5 --$as_echo "no" >&6; } -- ;; -- esac --else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + $as_echo "no" >&6; } + ;; + esac + else - { $as_echo "$as_me:$LINENO: result: no" >&5 --$as_echo "no" >&6; } -- --fi -- -- --######################################################## --# Compile with LDAP support? -- --with_ldap_support=auto ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + $as_echo "no" >&6; } + + fi +@@ -62620,12 +23553,12 @@ + # Compile with LDAP support? + + with_ldap_support=auto -{ $as_echo "$as_me:$LINENO: checking for LDAP support" >&5 --$as_echo_n "checking for LDAP support... " >&6; } -- -- --# Check whether --with-ldap was given. ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for LDAP support" >&5 + $as_echo_n "checking for LDAP support... " >&6; } + + + # Check whether --with-ldap was given. -if test "${with_ldap+set}" = set; then -- withval=$with_ldap; case "$withval" in -- yes|no) -- with_ldap_support=$withval -- ;; -- esac --fi -- -- ++if test "${with_ldap+set}" = set; then : + withval=$with_ldap; case "$withval" in + yes|no) + with_ldap_support=$withval +@@ -62634,7 +23567,7 @@ + fi + + -{ $as_echo "$as_me:$LINENO: result: $with_ldap_support" >&5 --$as_echo "$with_ldap_support" >&6; } -- --SMBLDAP="" -- --SMBLDAPUTIL="" -- --LDBLDAP="" -- -- --if test x"$with_ldap_support" != x"no"; then -- -- ################################################################## -- # first test for ldap.h and lber.h -- # (ldap.h is required for this test) ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_ldap_support" >&5 + $as_echo "$with_ldap_support" >&6; } + + SMBLDAP="" +@@ -62649,150 +23582,12 @@ + ################################################################## + # first test for ldap.h and lber.h + # (ldap.h is required for this test) - - -for ac_header in ldap.h lber.h @@ -67836,29 +69447,12 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_header_preproc=no -+if test x"$samba_cv_WITH_AFS" != x"no" && test x"$have_afs_headers" = x"yes"; then -+ -+$as_echo "#define WITH_AFS 1" >>confdefs.h -+ - fi - +-fi +- -rm -f conftest.err conftest.$ac_ext -{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -$as_echo "$ac_header_preproc" >&6; } -+################################################# -+# check for the DFS clear-text auth system -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to use DFS clear-text auth" >&5 -+$as_echo_n "checking whether to use DFS clear-text auth... " >&6; } -+ -+# Check whether --with-dfs was given. -+if test "${with_dfs+set}" = set; then : -+ withval=$with_dfs; case "$withval" in -+ yes) -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -+$as_echo "yes" >&6; } -+ -+$as_echo "#define WITH_DFS 1" >>confdefs.h - +- -# So? What about this header? -case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in - yes:no: ) @@ -67867,7 +69461,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - { $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:* ) - { $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;} @@ -67887,64 +69481,24 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -## ---------------------------------------- ## -_ASBOX - ) | sed "s/^/$as_me: WARNING: /" >&2 -+ *) -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -+$as_echo "no" >&6; } - ;; +- ;; -esac -{ $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 -+ esac - else +-else - eval "$as_ac_Header=\$ac_header_preproc" -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -+$as_echo "no" >&6; } -+ - fi +-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; } - -+ -+######################################################## -+# Compile with LDAP support? -+ -+with_ldap_support=auto -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for LDAP support" >&5 -+$as_echo_n "checking for LDAP support... " >&6; } -+ -+ -+# Check whether --with-ldap was given. -+if test "${with_ldap+set}" = set; then : -+ withval=$with_ldap; case "$withval" in -+ yes|no) -+ with_ldap_support=$withval -+ ;; -+ esac - fi +- +-fi -as_val=`eval 'as_val=${'$as_ac_Header'} - $as_echo "$as_val"'` - if test "x$as_val" = x""yes; then -+ -+ -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_ldap_support" >&5 -+$as_echo "$with_ldap_support" >&6; } -+ -+SMBLDAP="" -+ -+SMBLDAPUTIL="" -+ -+LDBLDAP="" -+ -+ -+if test x"$with_ldap_support" != x"no"; then -+ -+ ################################################################## -+ # first test for ldap.h and lber.h -+ # (ldap.h is required for this test) + for ac_header in ldap.h lber.h +do : + as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` @@ -67954,7 +69508,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF -@@ -60505,11 +22401,9 @@ +@@ -62804,11 +23599,9 @@ if test x"$ac_cv_header_ldap_h" != x"yes"; then if test x"$with_ldap_support" = x"yes"; then @@ -67968,7 +69522,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "$as_me: WARNING: ldap.h is needed for LDAP support" >&2;} fi -@@ -60521,117 +22415,24 @@ +@@ -62820,117 +23613,24 @@ # unsigned int in include/includes.h case $host_os in *hpux*) @@ -68093,7 +69647,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "$as_me: WARNING: ber_tag_t is needed for LDAP support" >&2;} fi with_ldap_support=no -@@ -60648,23 +22449,17 @@ +@@ -62947,23 +23647,17 @@ # this test must be before the libldap test @@ -68120,7 +69674,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. -@@ -60682,54 +22477,28 @@ +@@ -62981,54 +23675,28 @@ return 0; } _ACEOF @@ -68182,7 +69736,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure cat >>confdefs.h <<_ACEOF #define HAVE_LIBLBER 1 _ACEOF -@@ -60745,25 +22514,19 @@ +@@ -63044,25 +23712,19 @@ fi @@ -68211,7 +69765,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ /* Define ber_sockbuf_add_io to an innocuous variant, in case declares ber_sockbuf_add_io. For example, HP-UX 11i declares gettimeofday. */ -@@ -60804,61 +22567,31 @@ +@@ -63103,61 +23765,31 @@ return 0; } _ACEOF @@ -68282,7 +69836,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #include int -@@ -60869,59 +22602,32 @@ +@@ -63168,59 +23800,32 @@ return 0; } _ACEOF @@ -68349,7 +69903,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #include int -@@ -60932,42 +22638,19 @@ +@@ -63231,42 +23836,19 @@ return 0; } _ACEOF @@ -68396,7 +69950,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure fi -@@ -60975,23 +22658,17 @@ +@@ -63274,23 +23856,17 @@ # now see if we can find the ldap libs in standard paths @@ -68423,7 +69977,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. -@@ -61009,54 +22686,28 @@ +@@ -63308,54 +23884,28 @@ return 0; } _ACEOF @@ -68485,7 +70039,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure cat >>confdefs.h <<_ACEOF #define HAVE_LIBLDAP 1 _ACEOF -@@ -61072,25 +22723,19 @@ +@@ -63371,25 +23921,19 @@ fi @@ -68514,7 +70068,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ /* Define ldap_set_rebind_proc to an innocuous variant, in case declares ldap_set_rebind_proc. For example, HP-UX 11i declares gettimeofday. */ -@@ -61131,62 +22776,32 @@ +@@ -63430,62 +23974,32 @@ return 0; } _ACEOF @@ -68586,7 +70140,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #include -@@ -61199,37 +22814,16 @@ +@@ -63498,37 +24012,16 @@ return 0; } _ACEOF @@ -68627,7 +70181,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "$smb_ldap_cv_ldap_set_rebind_proc" >&6; } -@@ -61240,19 +22834,14 @@ +@@ -63539,19 +24032,14 @@ @@ -68650,7 +70204,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ /* Define ldap_initialize to an innocuous variant, in case declares ldap_initialize. For example, HP-UX 11i declares gettimeofday. */ -@@ -61293,55 +22882,27 @@ +@@ -63592,55 +24080,27 @@ return 0; } _ACEOF @@ -68713,7 +70267,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure CPPFLAGS="$CPPFLAGS -DLDAP_DEPRECATED" default_static_modules="$default_static_modules pdb_ldap idmap_ldap"; -@@ -61349,17 +22910,15 @@ +@@ -63648,17 +24108,15 @@ SMBLDAP="lib/smbldap.o" SMBLDAPUTIL="lib/smbldap_util.o" with_ldap_support=yes @@ -68735,7 +70289,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "$as_me: WARNING: libldap is needed for LDAP support" >&2;} fi -@@ -61374,12 +22933,12 @@ +@@ -63673,12 +24131,12 @@ # active directory support with_ads_support=auto @@ -68750,7 +70304,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure withval=$with_ads; case "$withval" in yes|no) with_ads_support="$withval" -@@ -61388,7 +22947,7 @@ +@@ -63687,7 +24145,7 @@ fi @@ -68759,7 +70313,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "$with_ads_support" >&6; } FOUND_KRB5=no -@@ -61397,11 +22956,9 @@ +@@ -63696,11 +24154,9 @@ if test x"$with_ldap_support" != x"yes"; then if test x"$with_ads_support" = x"yes"; then @@ -68773,7 +70327,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "$as_me: WARNING: Disabling Active Directory support (requires LDAP support)" >&2;} with_ads_support=no fi -@@ -61416,19 +22973,14 @@ +@@ -63715,19 +24171,14 @@ *hpux*) @@ -68796,7 +70350,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ /* Define ldap_init to an innocuous variant, in case declares ldap_init. For example, HP-UX 11i declares gettimeofday. */ -@@ -61469,57 +23021,29 @@ +@@ -63768,57 +24219,29 @@ return 0; } _ACEOF @@ -68862,7 +70416,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "$as_me: WARNING: Disabling Active Directory support (requires ldap_init on HPUX)" >&2;} with_ads_support=no fi -@@ -61528,19 +23052,14 @@ +@@ -63827,19 +24250,14 @@ *) @@ -68885,7 +70439,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ /* Define ldap_initialize to an innocuous variant, in case declares ldap_initialize. For example, HP-UX 11i declares gettimeofday. */ -@@ -61581,57 +23100,29 @@ +@@ -63880,57 +24298,29 @@ return 0; } _ACEOF @@ -68951,7 +70505,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "$as_me: WARNING: Disabling Active Directory support (requires ldap_initialize)" >&2;} with_ads_support=no fi -@@ -61642,19 +23133,14 @@ +@@ -63941,19 +24331,14 @@ @@ -68974,7 +70528,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ /* Define ldap_add_result_entry to an innocuous variant, in case declares ldap_add_result_entry. For example, HP-UX 11i declares gettimeofday. */ -@@ -61695,57 +23181,29 @@ +@@ -63994,57 +24379,29 @@ return 0; } _ACEOF @@ -69040,7 +70594,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "$as_me: WARNING: Disabling Active Directory support (requires ldap_add_result_entry)" >&2;} with_ads_support=no fi -@@ -61761,23 +23219,23 @@ +@@ -64060,23 +24417,23 @@ if test x$FOUND_KRB5 = x"no"; then ################################################# # check for location of Kerberos 5 install @@ -69069,7 +70623,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "$withval" >&6; } KRB5_CFLAGS="-I$withval/include" KRB5_CPPFLAGS="-I$withval/include" -@@ -61789,7 +23247,7 @@ +@@ -64088,7 +24445,7 @@ ;; esac else @@ -69078,7 +70632,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "no krb5-path given" >&6; } fi -@@ -61800,9 +23258,9 @@ +@@ -64099,9 +24456,9 @@ # check for krb5-config from recent MIT and Heimdal kerberos 5 # Extract the first word of "krb5-config", so it can be a program name with args. set dummy krb5-config; ac_word=$2 @@ -69090,7 +70644,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo_n "(cached) " >&6 else case $KRB5CONFIG in -@@ -61815,14 +23273,14 @@ +@@ -64114,14 +24471,14 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. @@ -69108,7 +70662,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure IFS=$as_save_IFS ;; -@@ -61830,15 +23288,15 @@ +@@ -64129,15 +24486,15 @@ fi KRB5CONFIG=$ac_cv_path_KRB5CONFIG if test -n "$KRB5CONFIG"; then @@ -69127,7 +70681,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo_n "checking for working krb5-config... " >&6; } if test -x "$KRB5CONFIG" && $KRB5CONFIG --libs gssapi > /dev/null ; then ac_save_CFLAGS=$CFLAGS -@@ -61852,17 +23310,17 @@ +@@ -64151,17 +24508,17 @@ CFLAGS=$ac_save_CFLAGS;export CFLAGS LDFLAGS=$ac_save_LDFLAGS;export LDFLAGS FOUND_KRB5=yes @@ -69148,7 +70702,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo_n "checking for /usr/include/heimdal... " >&6; } if test -d /usr/include/heimdal; then if test -f /usr/lib/heimdal/lib/libkrb5.a; then -@@ -61870,17 +23328,17 @@ +@@ -64169,17 +24526,17 @@ KRB5_CPPFLAGS="-I/usr/include/heimdal" KRB5_LDFLAGS="-L/usr/lib/heimdal/lib" FOUND_KRB5=yes @@ -69169,7 +70723,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "no" >&6; } fi fi -@@ -61888,17 +23346,17 @@ +@@ -64187,17 +24544,17 @@ if test x$FOUND_KRB5 = x"no"; then ################################################# # see if this box has the RedHat location for kerberos @@ -69190,7 +70744,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "no" >&6; } fi fi -@@ -61906,16 +23364,16 @@ +@@ -64205,16 +24562,16 @@ if test x$FOUND_KRB5 = x"no"; then ################################################# # see if this box has the OpenBSD location for heimdal krb5 @@ -69210,10 +70764,52 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "no" >&6; } fi fi -@@ -62002,151 +23460,12 @@ - # now check for krb5.h. Some systems have the libraries without the headers! - # note that this check is done here to allow for different kerberos - # include paths +@@ -64259,193 +24616,54 @@ + KRB5_LIBS=$ac_new_flags + + +- ac_new_flags="" +- l="" +- for i in $KRB5_LDFLAGS; do +- case $l$i in +- -L/usr/lib) ;; +- -L/usr/lib/) ;; +- -L/usr/lib64) ;; +- -L/usr/lib64/) ;; +- -Wl,-rpath,/usr/lib) l="";; +- -Wl,-rpath,/usr/lib/) l="";; +- -Wl,-rpath,/usr/lib64) l="";; +- -Wl,-rpath,/usr/lib64/) l="";; +- -Wl,-rpath) l=$i;; +- -Wl,-rpath-Wl,/usr/lib) l="";; +- -Wl,-rpath-Wl,/usr/lib/) l="";; +- -Wl,-rpath-Wl,/usr/lib64) l="";; +- -Wl,-rpath-Wl,/usr/lib64/) l="";; +- *) +- s=" " +- if test x"$ac_new_flags" = x""; then +- s=""; +- fi +- if test x"$l" = x""; then +- ac_new_flags="$ac_new_flags$s$i"; +- else +- ac_new_flags="$ac_new_flags$s$l $i"; +- fi +- l="" +- ;; +- esac +- done +- KRB5_LDFLAGS=$ac_new_flags +- +- CFLAGS="$KRB5_CFLAGS $CFLAGS" +- CPPFLAGS="$KRB5_CPPFLAGS $CPPFLAGS" +- LDFLAGS="$KRB5_LDFLAGS $LDFLAGS" +- +- KRB5_LIBS="$KRB5_LDFLAGS $KRB5_LIBS" +- +- # now check for krb5.h. Some systems have the libraries without the headers! +- # note that this check is done here to allow for different kerberos +- # include paths - -for ac_header in krb5.h -do @@ -69310,7 +70906,39 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -rm -f conftest.err conftest.$ac_ext -{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -$as_echo "$ac_header_preproc" >&6; } -- ++ ac_new_flags="" ++ l="" ++ for i in $KRB5_LDFLAGS; do ++ case $l$i in ++ -L/usr/lib) ;; ++ -L/usr/lib/) ;; ++ -L/usr/lib64) ;; ++ -L/usr/lib64/) ;; ++ -Wl,-rpath,/usr/lib) l="";; ++ -Wl,-rpath,/usr/lib/) l="";; ++ -Wl,-rpath,/usr/lib64) l="";; ++ -Wl,-rpath,/usr/lib64/) l="";; ++ -Wl,-rpath) l=$i;; ++ -Wl,-rpath-Wl,/usr/lib) l="";; ++ -Wl,-rpath-Wl,/usr/lib/) l="";; ++ -Wl,-rpath-Wl,/usr/lib64) l="";; ++ -Wl,-rpath-Wl,/usr/lib64/) l="";; ++ *) ++ s=" " ++ if test x"$ac_new_flags" = x""; then ++ s=""; ++ fi ++ if test x"$l" = x""; then ++ ac_new_flags="$ac_new_flags$s$i"; ++ else ++ ac_new_flags="$ac_new_flags$s$l $i"; ++ fi ++ l="" ++ ;; ++ esac ++ done ++ KRB5_LDFLAGS=$ac_new_flags + -# So? What about this header? -case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in - yes:no: ) @@ -69352,11 +70980,19 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - $as_echo "$as_val"'` - { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -- ++ CFLAGS="$KRB5_CFLAGS $CFLAGS" ++ CPPFLAGS="$KRB5_CPPFLAGS $CPPFLAGS" ++ LDFLAGS="$KRB5_LDFLAGS $LDFLAGS" + -fi -as_val=`eval 'as_val=${'$as_ac_Header'} - $as_echo "$as_val"'` - if test "x$as_val" = x""yes; then ++ KRB5_LIBS="$KRB5_LDFLAGS $KRB5_LIBS" ++ ++ # now check for krb5.h. Some systems have the libraries without the headers! ++ # note that this check is done here to allow for different kerberos ++ # include paths + for ac_header in krb5.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "krb5.h" "ac_cv_header_krb5_h" "$ac_includes_default" @@ -69367,7 +71003,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure _ACEOF fi -@@ -62160,11 +23479,9 @@ +@@ -64459,11 +24677,9 @@ # i.e with_ads_support = auto, otherwise die with an error. if test x"$with_ads_support" = x"yes"; then @@ -69381,7 +71017,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "$as_me: WARNING: Active Directory cannot be supported without krb5.h" >&2;} fi -@@ -62176,65 +23493,16 @@ +@@ -64475,65 +24691,16 @@ CPPFLAGS=$ac_save_CPPFLAGS LDFLAGS=$ac_save_LDFLAGS fi @@ -69453,7 +71089,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure _ACEOF fi -@@ -62249,17 +23517,13 @@ +@@ -64550,17 +24717,13 @@ # check for new heimdal KRB5_DEPRECATED handling @@ -69474,7 +71110,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #define KRB5_DEPRECATED 1 #include -@@ -62271,42 +23535,19 @@ +@@ -64572,42 +24735,19 @@ return 0; } _ACEOF @@ -69521,7 +71157,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure fi fi -@@ -62320,152 +23561,12 @@ +@@ -64621,152 +24761,12 @@ # now check for gssapi headers. This is also done here to allow for # different kerberos include paths @@ -69680,7 +71316,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF -@@ -62479,23 +23580,17 @@ +@@ -64780,23 +24780,17 @@ # we might need the k5crypto and com_err libraries on some systems @@ -69707,7 +71343,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. -@@ -62513,54 +23608,28 @@ +@@ -64814,54 +24808,28 @@ return 0; } _ACEOF @@ -69769,7 +71405,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure cat >>confdefs.h <<_ACEOF #define HAVE_LIBCOM_ERR 1 _ACEOF -@@ -62577,24 +23646,17 @@ +@@ -64878,24 +24846,17 @@ fi @@ -69797,7 +71433,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. -@@ -62612,54 +23674,28 @@ +@@ -64913,54 +24874,28 @@ return 0; } _ACEOF @@ -69859,7 +71495,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure cat >>confdefs.h <<_ACEOF #define HAVE_LIBK5CRYPTO 1 _ACEOF -@@ -62675,27 +23711,20 @@ +@@ -64976,27 +24911,20 @@ fi @@ -69890,7 +71526,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. -@@ -62713,54 +23742,28 @@ +@@ -65014,54 +24942,28 @@ return 0; } _ACEOF @@ -69952,7 +71588,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure cat >>confdefs.h <<_ACEOF #define HAVE_LIBCRYPTO 1 _ACEOF -@@ -62777,24 +23780,17 @@ +@@ -65078,24 +24980,17 @@ fi @@ -69980,7 +71616,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. -@@ -62812,54 +23808,28 @@ +@@ -65113,54 +25008,28 @@ return 0; } _ACEOF @@ -70042,7 +71678,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure cat >>confdefs.h <<_ACEOF #define HAVE_LIBASN1 1 _ACEOF -@@ -62876,24 +23846,17 @@ +@@ -65177,24 +25046,17 @@ fi @@ -70070,7 +71706,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. -@@ -62911,54 +23874,28 @@ +@@ -65212,54 +25074,28 @@ return 0; } _ACEOF @@ -70132,7 +71768,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure cat >>confdefs.h <<_ACEOF #define HAVE_LIBROKEN 1 _ACEOF -@@ -62974,27 +23911,20 @@ +@@ -65275,27 +25111,20 @@ fi @@ -70163,7 +71799,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. -@@ -63012,54 +23942,28 @@ +@@ -65313,54 +25142,28 @@ return 0; } _ACEOF @@ -70225,7 +71861,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure cat >>confdefs.h <<_ACEOF #define HAVE_LIBGSSAPI 1 _ACEOF -@@ -63075,29 +23979,22 @@ +@@ -65376,29 +25179,22 @@ fi @@ -70258,7 +71894,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. -@@ -63115,54 +24012,28 @@ +@@ -65416,54 +25212,28 @@ return 0; } _ACEOF @@ -70320,7 +71956,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure cat >>confdefs.h <<_ACEOF #define HAVE_LIBKRB5 1 _ACEOF -@@ -63179,24 +24050,17 @@ +@@ -65480,24 +25250,17 @@ fi @@ -70348,7 +71984,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. -@@ -63214,54 +24078,28 @@ +@@ -65515,54 +25278,28 @@ return 0; } _ACEOF @@ -70410,7 +72046,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure cat >>confdefs.h <<_ACEOF #define HAVE_LIBKRB5 1 _ACEOF -@@ -63277,29 +24115,22 @@ +@@ -65578,29 +25315,22 @@ fi @@ -70443,7 +72079,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. -@@ -63317,54 +24148,28 @@ +@@ -65618,54 +25348,28 @@ return 0; } _ACEOF @@ -70505,7 +72141,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure cat >>confdefs.h <<_ACEOF #define HAVE_LIBGSSAPI_KRB5 1 _ACEOF -@@ -63379,24 +24184,18 @@ +@@ -65680,24 +25384,18 @@ have_gssapi=yes fi @@ -70533,7 +72169,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ /* Define krb5_set_real_time to an innocuous variant, in case declares krb5_set_real_time. For example, HP-UX 11i declares gettimeofday. */ -@@ -63437,43 +24236,18 @@ +@@ -65738,43 +25436,18 @@ return 0; } _ACEOF @@ -70583,7 +72219,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure cat >>confdefs.h <<_ACEOF #define HAVE_KRB5_SET_REAL_TIME 1 _ACEOF -@@ -63481,20 +24255,14 @@ +@@ -65782,20 +25455,14 @@ fi @@ -70607,7 +72243,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ /* Define krb5_set_default_in_tkt_etypes to an innocuous variant, in case declares krb5_set_default_in_tkt_etypes. For example, HP-UX 11i declares gettimeofday. */ -@@ -63535,43 +24303,18 @@ +@@ -65836,43 +25503,18 @@ return 0; } _ACEOF @@ -70657,7 +72293,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure cat >>confdefs.h <<_ACEOF #define HAVE_KRB5_SET_DEFAULT_IN_TKT_ETYPES 1 _ACEOF -@@ -63579,20 +24322,14 @@ +@@ -65880,20 +25522,14 @@ fi @@ -70681,7 +72317,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ /* Define krb5_set_default_tgs_enctypes to an innocuous variant, in case declares krb5_set_default_tgs_enctypes. For example, HP-UX 11i declares gettimeofday. */ -@@ -63633,43 +24370,18 @@ +@@ -65934,43 +25570,18 @@ return 0; } _ACEOF @@ -70731,7 +72367,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure cat >>confdefs.h <<_ACEOF #define HAVE_KRB5_SET_DEFAULT_TGS_ENCTYPES 1 _ACEOF -@@ -63677,20 +24389,14 @@ +@@ -65978,20 +25589,14 @@ fi @@ -70755,7 +72391,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ /* Define krb5_set_default_tgs_ktypes to an innocuous variant, in case declares krb5_set_default_tgs_ktypes. For example, HP-UX 11i declares gettimeofday. */ -@@ -63731,43 +24437,18 @@ +@@ -66032,43 +25637,18 @@ return 0; } _ACEOF @@ -70805,7 +72441,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure cat >>confdefs.h <<_ACEOF #define HAVE_KRB5_SET_DEFAULT_TGS_KTYPES 1 _ACEOF -@@ -63775,20 +24456,14 @@ +@@ -66076,20 +25656,14 @@ fi @@ -70829,7 +72465,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ /* Define krb5_principal2salt to an innocuous variant, in case declares krb5_principal2salt. For example, HP-UX 11i declares gettimeofday. */ -@@ -63829,43 +24504,18 @@ +@@ -66130,43 +25704,18 @@ return 0; } _ACEOF @@ -70879,7 +72515,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure cat >>confdefs.h <<_ACEOF #define HAVE_KRB5_PRINCIPAL2SALT 1 _ACEOF -@@ -63873,20 +24523,14 @@ +@@ -66174,20 +25723,14 @@ fi @@ -70903,7 +72539,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ /* Define krb5_use_enctype to an innocuous variant, in case declares krb5_use_enctype. For example, HP-UX 11i declares gettimeofday. */ -@@ -63927,43 +24571,18 @@ +@@ -66228,43 +25771,18 @@ return 0; } _ACEOF @@ -70953,7 +72589,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure cat >>confdefs.h <<_ACEOF #define HAVE_KRB5_USE_ENCTYPE 1 _ACEOF -@@ -63971,20 +24590,14 @@ +@@ -66272,20 +25790,14 @@ fi @@ -70977,7 +72613,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ /* Define krb5_string_to_key to an innocuous variant, in case declares krb5_string_to_key. For example, HP-UX 11i declares gettimeofday. */ -@@ -64025,43 +24638,18 @@ +@@ -66326,43 +25838,18 @@ return 0; } _ACEOF @@ -71027,7 +72663,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure cat >>confdefs.h <<_ACEOF #define HAVE_KRB5_STRING_TO_KEY 1 _ACEOF -@@ -64069,20 +24657,14 @@ +@@ -66370,20 +25857,14 @@ fi @@ -71051,7 +72687,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ /* Define krb5_get_pw_salt to an innocuous variant, in case declares krb5_get_pw_salt. For example, HP-UX 11i declares gettimeofday. */ -@@ -64123,43 +24705,18 @@ +@@ -66424,43 +25905,18 @@ return 0; } _ACEOF @@ -71101,7 +72737,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure cat >>confdefs.h <<_ACEOF #define HAVE_KRB5_GET_PW_SALT 1 _ACEOF -@@ -64167,20 +24724,14 @@ +@@ -66468,20 +25924,14 @@ fi @@ -71125,7 +72761,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ /* Define krb5_string_to_key_salt to an innocuous variant, in case declares krb5_string_to_key_salt. For example, HP-UX 11i declares gettimeofday. */ -@@ -64221,43 +24772,18 @@ +@@ -66522,43 +25972,18 @@ return 0; } _ACEOF @@ -71175,7 +72811,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure cat >>confdefs.h <<_ACEOF #define HAVE_KRB5_STRING_TO_KEY_SALT 1 _ACEOF -@@ -64265,20 +24791,14 @@ +@@ -66566,20 +25991,14 @@ fi @@ -71199,7 +72835,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ /* Define krb5_auth_con_setkey to an innocuous variant, in case declares krb5_auth_con_setkey. For example, HP-UX 11i declares gettimeofday. */ -@@ -64319,43 +24839,18 @@ +@@ -66620,43 +26039,18 @@ return 0; } _ACEOF @@ -71249,7 +72885,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure cat >>confdefs.h <<_ACEOF #define HAVE_KRB5_AUTH_CON_SETKEY 1 _ACEOF -@@ -64363,20 +24858,14 @@ +@@ -66664,20 +26058,14 @@ fi @@ -71273,7 +72909,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ /* Define krb5_auth_con_setuseruserkey to an innocuous variant, in case declares krb5_auth_con_setuseruserkey. For example, HP-UX 11i declares gettimeofday. */ -@@ -64417,43 +24906,18 @@ +@@ -66718,43 +26106,18 @@ return 0; } _ACEOF @@ -71323,7 +72959,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure cat >>confdefs.h <<_ACEOF #define HAVE_KRB5_AUTH_CON_SETUSERUSERKEY 1 _ACEOF -@@ -64461,20 +24925,14 @@ +@@ -66762,20 +26125,14 @@ fi @@ -71347,7 +72983,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ /* Define krb5_locate_kdc to an innocuous variant, in case declares krb5_locate_kdc. For example, HP-UX 11i declares gettimeofday. */ -@@ -64515,43 +24973,18 @@ +@@ -66816,43 +26173,18 @@ return 0; } _ACEOF @@ -71397,7 +73033,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure cat >>confdefs.h <<_ACEOF #define HAVE_KRB5_LOCATE_KDC 1 _ACEOF -@@ -64559,20 +24992,14 @@ +@@ -66860,20 +26192,14 @@ fi @@ -71421,7 +73057,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ /* Define krb5_get_permitted_enctypes to an innocuous variant, in case declares krb5_get_permitted_enctypes. For example, HP-UX 11i declares gettimeofday. */ -@@ -64613,43 +25040,18 @@ +@@ -66914,43 +26240,18 @@ return 0; } _ACEOF @@ -71471,7 +73107,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure cat >>confdefs.h <<_ACEOF #define HAVE_KRB5_GET_PERMITTED_ENCTYPES 1 _ACEOF -@@ -64657,20 +25059,14 @@ +@@ -66958,20 +26259,14 @@ fi @@ -71495,7 +73131,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ /* Define krb5_get_default_in_tkt_etypes to an innocuous variant, in case declares krb5_get_default_in_tkt_etypes. For example, HP-UX 11i declares gettimeofday. */ -@@ -64711,43 +25107,18 @@ +@@ -67012,43 +26307,18 @@ return 0; } _ACEOF @@ -71545,7 +73181,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure cat >>confdefs.h <<_ACEOF #define HAVE_KRB5_GET_DEFAULT_IN_TKT_ETYPES 1 _ACEOF -@@ -64755,20 +25126,14 @@ +@@ -67056,20 +26326,14 @@ fi @@ -71569,7 +73205,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ /* Define krb5_free_data_contents to an innocuous variant, in case declares krb5_free_data_contents. For example, HP-UX 11i declares gettimeofday. */ -@@ -64809,43 +25174,18 @@ +@@ -67110,43 +26374,18 @@ return 0; } _ACEOF @@ -71619,7 +73255,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure cat >>confdefs.h <<_ACEOF #define HAVE_KRB5_FREE_DATA_CONTENTS 1 _ACEOF -@@ -64853,20 +25193,14 @@ +@@ -67154,20 +26393,14 @@ fi @@ -71643,7 +73279,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ /* Define krb5_principal_get_comp_string to an innocuous variant, in case declares krb5_principal_get_comp_string. For example, HP-UX 11i declares gettimeofday. */ -@@ -64907,43 +25241,18 @@ +@@ -67208,43 +26441,18 @@ return 0; } _ACEOF @@ -71693,7 +73329,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure cat >>confdefs.h <<_ACEOF #define HAVE_KRB5_PRINCIPAL_GET_COMP_STRING 1 _ACEOF -@@ -64951,20 +25260,14 @@ +@@ -67252,20 +26460,14 @@ fi @@ -71717,7 +73353,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ /* Define krb5_free_unparsed_name to an innocuous variant, in case declares krb5_free_unparsed_name. For example, HP-UX 11i declares gettimeofday. */ -@@ -65005,43 +25308,18 @@ +@@ -67306,43 +26508,18 @@ return 0; } _ACEOF @@ -71767,7 +73403,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure cat >>confdefs.h <<_ACEOF #define HAVE_KRB5_FREE_UNPARSED_NAME 1 _ACEOF -@@ -65049,20 +25327,14 @@ +@@ -67350,20 +26527,14 @@ fi @@ -71791,7 +73427,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ /* Define krb5_free_keytab_entry_contents to an innocuous variant, in case declares krb5_free_keytab_entry_contents. For example, HP-UX 11i declares gettimeofday. */ -@@ -65103,43 +25375,18 @@ +@@ -67404,43 +26575,18 @@ return 0; } _ACEOF @@ -71841,7 +73477,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure cat >>confdefs.h <<_ACEOF #define HAVE_KRB5_FREE_KEYTAB_ENTRY_CONTENTS 1 _ACEOF -@@ -65147,20 +25394,14 @@ +@@ -67448,20 +26594,14 @@ fi @@ -71865,7 +73501,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ /* Define krb5_kt_free_entry to an innocuous variant, in case declares krb5_kt_free_entry. For example, HP-UX 11i declares gettimeofday. */ -@@ -65201,43 +25442,18 @@ +@@ -67502,43 +26642,18 @@ return 0; } _ACEOF @@ -71915,7 +73551,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure cat >>confdefs.h <<_ACEOF #define HAVE_KRB5_KT_FREE_ENTRY 1 _ACEOF -@@ -65245,20 +25461,14 @@ +@@ -67546,20 +26661,14 @@ fi @@ -71939,7 +73575,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ /* Define krb5_krbhst_init to an innocuous variant, in case declares krb5_krbhst_init. For example, HP-UX 11i declares gettimeofday. */ -@@ -65299,43 +25509,18 @@ +@@ -67600,43 +26709,18 @@ return 0; } _ACEOF @@ -71989,7 +73625,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure cat >>confdefs.h <<_ACEOF #define HAVE_KRB5_KRBHST_INIT 1 _ACEOF -@@ -65343,20 +25528,14 @@ +@@ -67644,20 +26728,14 @@ fi @@ -72013,7 +73649,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ /* Define krb5_krbhst_get_addrinfo to an innocuous variant, in case declares krb5_krbhst_get_addrinfo. For example, HP-UX 11i declares gettimeofday. */ -@@ -65397,43 +25576,18 @@ +@@ -67698,43 +26776,18 @@ return 0; } _ACEOF @@ -72063,7 +73699,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure cat >>confdefs.h <<_ACEOF #define HAVE_KRB5_KRBHST_GET_ADDRINFO 1 _ACEOF -@@ -65441,20 +25595,14 @@ +@@ -67742,20 +26795,14 @@ fi @@ -72087,19 +73723,10 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ /* Define krb5_c_enctype_compare to an innocuous variant, in case declares krb5_c_enctype_compare. For example, HP-UX 11i declares gettimeofday. */ -@@ -65486,52 +25634,27 @@ - #if defined __stub_krb5_c_enctype_compare || defined __stub___krb5_c_enctype_compare - choke me - #endif -- --int --main () --{ --return krb5_c_enctype_compare (); -- ; -- return 0; --} --_ACEOF +@@ -67796,43 +26843,18 @@ + return 0; + } + _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in @@ -72121,15 +73748,6 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - test "$cross_compiling" = yes || - $as_test_x conftest$ac_exeext - }; then -+ -+int -+main () -+{ -+return krb5_c_enctype_compare (); -+ ; -+ return 0; -+} -+_ACEOF +if ac_fn_c_try_link "$LINENO"; then : ac_cv_func_ext_krb5_c_enctype_compare=yes else @@ -72155,7 +73773,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure cat >>confdefs.h <<_ACEOF #define HAVE_KRB5_C_ENCTYPE_COMPARE 1 _ACEOF -@@ -65539,20 +25662,14 @@ +@@ -67840,20 +26862,14 @@ fi @@ -72179,7 +73797,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ /* Define krb5_enctypes_compatible_keys to an innocuous variant, in case declares krb5_enctypes_compatible_keys. For example, HP-UX 11i declares gettimeofday. */ -@@ -65593,43 +25710,18 @@ +@@ -67894,43 +26910,18 @@ return 0; } _ACEOF @@ -72229,7 +73847,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure cat >>confdefs.h <<_ACEOF #define HAVE_KRB5_ENCTYPES_COMPATIBLE_KEYS 1 _ACEOF -@@ -65637,20 +25729,14 @@ +@@ -67938,20 +26929,14 @@ fi @@ -72253,7 +73871,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ /* Define krb5_crypto_init to an innocuous variant, in case declares krb5_crypto_init. For example, HP-UX 11i declares gettimeofday. */ -@@ -65691,43 +25777,18 @@ +@@ -67992,43 +26977,18 @@ return 0; } _ACEOF @@ -72303,7 +73921,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure cat >>confdefs.h <<_ACEOF #define HAVE_KRB5_CRYPTO_INIT 1 _ACEOF -@@ -65735,20 +25796,14 @@ +@@ -68036,20 +26996,14 @@ fi @@ -72327,7 +73945,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ /* Define krb5_crypto_destroy to an innocuous variant, in case declares krb5_crypto_destroy. For example, HP-UX 11i declares gettimeofday. */ -@@ -65789,43 +25844,18 @@ +@@ -68090,43 +27044,18 @@ return 0; } _ACEOF @@ -72377,7 +73995,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure cat >>confdefs.h <<_ACEOF #define HAVE_KRB5_CRYPTO_DESTROY 1 _ACEOF -@@ -65833,20 +25863,14 @@ +@@ -68134,20 +27063,14 @@ fi @@ -72401,7 +74019,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ /* Define krb5_decode_ap_req to an innocuous variant, in case declares krb5_decode_ap_req. For example, HP-UX 11i declares gettimeofday. */ -@@ -65887,43 +25911,18 @@ +@@ -68188,43 +27111,18 @@ return 0; } _ACEOF @@ -72451,7 +74069,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure cat >>confdefs.h <<_ACEOF #define HAVE_KRB5_DECODE_AP_REQ 1 _ACEOF -@@ -65931,20 +25930,14 @@ +@@ -68232,20 +27130,14 @@ fi @@ -72475,7 +74093,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ /* Define free_AP_REQ to an innocuous variant, in case declares free_AP_REQ. For example, HP-UX 11i declares gettimeofday. */ -@@ -65985,43 +25978,18 @@ +@@ -68286,43 +27178,18 @@ return 0; } _ACEOF @@ -72525,7 +74143,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure cat >>confdefs.h <<_ACEOF #define HAVE_FREE_AP_REQ 1 _ACEOF -@@ -66029,20 +25997,14 @@ +@@ -68330,20 +27197,14 @@ fi @@ -72549,7 +74167,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ /* Define krb5_verify_checksum to an innocuous variant, in case declares krb5_verify_checksum. For example, HP-UX 11i declares gettimeofday. */ -@@ -66083,43 +26045,18 @@ +@@ -68384,43 +27245,18 @@ return 0; } _ACEOF @@ -72599,7 +74217,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure cat >>confdefs.h <<_ACEOF #define HAVE_KRB5_VERIFY_CHECKSUM 1 _ACEOF -@@ -66127,20 +26064,14 @@ +@@ -68428,20 +27264,14 @@ fi @@ -72623,7 +74241,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ /* Define krb5_c_verify_checksum to an innocuous variant, in case declares krb5_c_verify_checksum. For example, HP-UX 11i declares gettimeofday. */ -@@ -66181,43 +26112,18 @@ +@@ -68482,43 +27312,18 @@ return 0; } _ACEOF @@ -72673,7 +74291,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure cat >>confdefs.h <<_ACEOF #define HAVE_KRB5_C_VERIFY_CHECKSUM 1 _ACEOF -@@ -66225,20 +26131,14 @@ +@@ -68526,20 +27331,14 @@ fi @@ -72697,7 +74315,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ /* Define krb5_principal_compare_any_realm to an innocuous variant, in case declares krb5_principal_compare_any_realm. For example, HP-UX 11i declares gettimeofday. */ -@@ -66279,43 +26179,18 @@ +@@ -68580,43 +27379,18 @@ return 0; } _ACEOF @@ -72747,7 +74365,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure cat >>confdefs.h <<_ACEOF #define HAVE_KRB5_PRINCIPAL_COMPARE_ANY_REALM 1 _ACEOF -@@ -66323,20 +26198,14 @@ +@@ -68624,20 +27398,14 @@ fi @@ -72771,7 +74389,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ /* Define krb5_parse_name_norealm to an innocuous variant, in case declares krb5_parse_name_norealm. For example, HP-UX 11i declares gettimeofday. */ -@@ -66377,43 +26246,18 @@ +@@ -68678,43 +27446,18 @@ return 0; } _ACEOF @@ -72821,7 +74439,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure cat >>confdefs.h <<_ACEOF #define HAVE_KRB5_PARSE_NAME_NOREALM 1 _ACEOF -@@ -66421,20 +26265,14 @@ +@@ -68722,20 +27465,14 @@ fi @@ -72845,7 +74463,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ /* Define krb5_princ_size to an innocuous variant, in case declares krb5_princ_size. For example, HP-UX 11i declares gettimeofday. */ -@@ -66475,43 +26313,18 @@ +@@ -68776,43 +27513,18 @@ return 0; } _ACEOF @@ -72895,7 +74513,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure cat >>confdefs.h <<_ACEOF #define HAVE_KRB5_PRINC_SIZE 1 _ACEOF -@@ -66519,20 +26332,14 @@ +@@ -68820,20 +27532,14 @@ fi @@ -72919,7 +74537,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ /* Define krb5_get_init_creds_opt_set_pac_request to an innocuous variant, in case declares krb5_get_init_creds_opt_set_pac_request. For example, HP-UX 11i declares gettimeofday. */ -@@ -66573,43 +26380,18 @@ +@@ -68874,43 +27580,18 @@ return 0; } _ACEOF @@ -72969,7 +74587,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure cat >>confdefs.h <<_ACEOF #define HAVE_KRB5_GET_INIT_CREDS_OPT_SET_PAC_REQUEST 1 _ACEOF -@@ -66617,20 +26399,14 @@ +@@ -68918,20 +27599,14 @@ fi @@ -72993,7 +74611,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ /* Define krb5_get_renewed_creds to an innocuous variant, in case declares krb5_get_renewed_creds. For example, HP-UX 11i declares gettimeofday. */ -@@ -66671,43 +26447,18 @@ +@@ -68972,43 +27647,18 @@ return 0; } _ACEOF @@ -73043,7 +74661,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure cat >>confdefs.h <<_ACEOF #define HAVE_KRB5_GET_RENEWED_CREDS 1 _ACEOF -@@ -66715,20 +26466,14 @@ +@@ -69016,20 +27666,14 @@ fi @@ -73067,7 +74685,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ /* Define krb5_get_kdc_cred to an innocuous variant, in case declares krb5_get_kdc_cred. For example, HP-UX 11i declares gettimeofday. */ -@@ -66769,43 +26514,18 @@ +@@ -69070,43 +27714,18 @@ return 0; } _ACEOF @@ -73117,7 +74735,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure cat >>confdefs.h <<_ACEOF #define HAVE_KRB5_GET_KDC_CRED 1 _ACEOF -@@ -66813,20 +26533,14 @@ +@@ -69114,20 +27733,14 @@ fi @@ -73141,7 +74759,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ /* Define krb5_free_error_contents to an innocuous variant, in case declares krb5_free_error_contents. For example, HP-UX 11i declares gettimeofday. */ -@@ -66867,43 +26581,18 @@ +@@ -69168,43 +27781,18 @@ return 0; } _ACEOF @@ -73191,7 +74809,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure cat >>confdefs.h <<_ACEOF #define HAVE_KRB5_FREE_ERROR_CONTENTS 1 _ACEOF -@@ -66911,20 +26600,14 @@ +@@ -69212,20 +27800,14 @@ fi @@ -73215,7 +74833,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ /* Define initialize_krb5_error_table to an innocuous variant, in case declares initialize_krb5_error_table. For example, HP-UX 11i declares gettimeofday. */ -@@ -66965,43 +26648,18 @@ +@@ -69266,43 +27848,18 @@ return 0; } _ACEOF @@ -73265,7 +74883,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure cat >>confdefs.h <<_ACEOF #define HAVE_INITIALIZE_KRB5_ERROR_TABLE 1 _ACEOF -@@ -67009,20 +26667,14 @@ +@@ -69310,20 +27867,14 @@ fi @@ -73289,7 +74907,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ /* Define krb5_get_init_creds_opt_alloc to an innocuous variant, in case declares krb5_get_init_creds_opt_alloc. For example, HP-UX 11i declares gettimeofday. */ -@@ -67063,43 +26715,18 @@ +@@ -69364,43 +27915,18 @@ return 0; } _ACEOF @@ -73339,7 +74957,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure cat >>confdefs.h <<_ACEOF #define HAVE_KRB5_GET_INIT_CREDS_OPT_ALLOC 1 _ACEOF -@@ -67107,20 +26734,14 @@ +@@ -69408,20 +27934,14 @@ fi @@ -73363,7 +74981,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ /* Define krb5_get_init_creds_opt_free to an innocuous variant, in case declares krb5_get_init_creds_opt_free. For example, HP-UX 11i declares gettimeofday. */ -@@ -67161,43 +26782,18 @@ +@@ -69462,43 +27982,18 @@ return 0; } _ACEOF @@ -73413,7 +75031,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure cat >>confdefs.h <<_ACEOF #define HAVE_KRB5_GET_INIT_CREDS_OPT_FREE 1 _ACEOF -@@ -67205,20 +26801,14 @@ +@@ -69506,20 +28001,14 @@ fi @@ -73437,10 +75055,19 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ /* Define krb5_get_init_creds_opt_get_error to an innocuous variant, in case declares krb5_get_init_creds_opt_get_error. For example, HP-UX 11i declares gettimeofday. */ -@@ -67259,43 +26849,18 @@ - return 0; - } - _ACEOF +@@ -69551,52 +28040,27 @@ + #if defined __stub_krb5_get_init_creds_opt_get_error || defined __stub___krb5_get_init_creds_opt_get_error + choke me + #endif +- +-int +-main () +-{ +-return krb5_get_init_creds_opt_get_error (); +- ; +- return 0; +-} +-_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in @@ -73462,6 +75089,15 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - test "$cross_compiling" = yes || - $as_test_x conftest$ac_exeext - }; then ++ ++int ++main () ++{ ++return krb5_get_init_creds_opt_get_error (); ++ ; ++ return 0; ++} ++_ACEOF +if ac_fn_c_try_link "$LINENO"; then : ac_cv_func_ext_krb5_get_init_creds_opt_get_error=yes else @@ -73487,7 +75123,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure cat >>confdefs.h <<_ACEOF #define HAVE_KRB5_GET_INIT_CREDS_OPT_GET_ERROR 1 _ACEOF -@@ -67303,20 +26868,14 @@ +@@ -69604,20 +28068,14 @@ fi @@ -73511,7 +75147,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ /* Define krb5_enctype_to_string to an innocuous variant, in case declares krb5_enctype_to_string. For example, HP-UX 11i declares gettimeofday. */ -@@ -67357,43 +26916,18 @@ +@@ -69658,43 +28116,18 @@ return 0; } _ACEOF @@ -73561,7 +75197,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure cat >>confdefs.h <<_ACEOF #define HAVE_KRB5_ENCTYPE_TO_STRING 1 _ACEOF -@@ -67401,20 +26935,14 @@ +@@ -69702,20 +28135,14 @@ fi @@ -73585,7 +75221,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ /* Define krb5_fwd_tgt_creds to an innocuous variant, in case declares krb5_fwd_tgt_creds. For example, HP-UX 11i declares gettimeofday. */ -@@ -67455,43 +26983,18 @@ +@@ -69756,43 +28183,18 @@ return 0; } _ACEOF @@ -73635,7 +75271,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure cat >>confdefs.h <<_ACEOF #define HAVE_KRB5_FWD_TGT_CREDS 1 _ACEOF -@@ -67499,20 +27002,14 @@ +@@ -69800,20 +28202,14 @@ fi @@ -73659,7 +75295,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ /* Define krb5_auth_con_set_req_cksumtype to an innocuous variant, in case declares krb5_auth_con_set_req_cksumtype. For example, HP-UX 11i declares gettimeofday. */ -@@ -67553,136 +27050,48 @@ +@@ -69854,43 +28250,18 @@ return 0; } _ACEOF @@ -73709,9 +75345,531 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure cat >>confdefs.h <<_ACEOF #define HAVE_KRB5_AUTH_CON_SET_REQ_CKSUMTYPE 1 _ACEOF +@@ -69898,20 +28269,14 @@ + fi + + +- +- + ac_check_func_ext_save_LIBS=$LIBS + LIBS="$KRB5_LIBS $LIBS" +- { $as_echo "$as_me:$LINENO: checking for krb5_get_creds_opt_alloc" >&5 ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for krb5_get_creds_opt_alloc" >&5 + $as_echo_n "checking for krb5_get_creds_opt_alloc... " >&6; } +-if test "${ac_cv_func_ext_krb5_get_creds_opt_alloc+set}" = set; then ++if test "${ac_cv_func_ext_krb5_get_creds_opt_alloc+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 ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + /* Define krb5_get_creds_opt_alloc to an innocuous variant, in case declares krb5_get_creds_opt_alloc. + For example, HP-UX 11i declares gettimeofday. */ +@@ -69952,43 +28317,18 @@ + return 0; + } + _ACEOF +-rm -f conftest.$ac_objext conftest$ac_exeext +-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 +- $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 ++if ac_fn_c_try_link "$LINENO"; then : + ac_cv_func_ext_krb5_get_creds_opt_alloc=yes + else +- $as_echo "$as_me: failed program was:" >&5 +-sed 's/^/| /' conftest.$ac_ext >&5 +- +- ac_cv_func_ext_krb5_get_creds_opt_alloc=no ++ ac_cv_func_ext_krb5_get_creds_opt_alloc=no + fi +- +-rm -rf conftest.dSYM +-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ +- conftest$ac_exeext conftest.$ac_ext ++rm -f core conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi +-{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_ext_krb5_get_creds_opt_alloc" >&5 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_ext_krb5_get_creds_opt_alloc" >&5 + $as_echo "$ac_cv_func_ext_krb5_get_creds_opt_alloc" >&6; } + LIBS=$ac_check_func_ext_save_LIBS +- if test $ac_cv_func_ext_krb5_get_creds_opt_alloc = yes; then ++ if test $ac_cv_func_ext_krb5_get_creds_opt_alloc = yes; then : + cat >>confdefs.h <<_ACEOF + #define HAVE_KRB5_GET_CREDS_OPT_ALLOC 1 + _ACEOF +@@ -69996,20 +28336,14 @@ + fi + + +- +- + ac_check_func_ext_save_LIBS=$LIBS + LIBS="$KRB5_LIBS $LIBS" +- { $as_echo "$as_me:$LINENO: checking for krb5_get_creds_opt_set_impersonate" >&5 ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for krb5_get_creds_opt_set_impersonate" >&5 + $as_echo_n "checking for krb5_get_creds_opt_set_impersonate... " >&6; } +-if test "${ac_cv_func_ext_krb5_get_creds_opt_set_impersonate+set}" = set; then ++if test "${ac_cv_func_ext_krb5_get_creds_opt_set_impersonate+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 ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + /* Define krb5_get_creds_opt_set_impersonate to an innocuous variant, in case declares krb5_get_creds_opt_set_impersonate. + For example, HP-UX 11i declares gettimeofday. */ +@@ -70050,43 +28384,18 @@ + return 0; + } + _ACEOF +-rm -f conftest.$ac_objext conftest$ac_exeext +-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 +- $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 ++if ac_fn_c_try_link "$LINENO"; then : + ac_cv_func_ext_krb5_get_creds_opt_set_impersonate=yes + else +- $as_echo "$as_me: failed program was:" >&5 +-sed 's/^/| /' conftest.$ac_ext >&5 +- +- ac_cv_func_ext_krb5_get_creds_opt_set_impersonate=no ++ ac_cv_func_ext_krb5_get_creds_opt_set_impersonate=no + fi +- +-rm -rf conftest.dSYM +-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ +- conftest$ac_exeext conftest.$ac_ext ++rm -f core conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi +-{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_ext_krb5_get_creds_opt_set_impersonate" >&5 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_ext_krb5_get_creds_opt_set_impersonate" >&5 + $as_echo "$ac_cv_func_ext_krb5_get_creds_opt_set_impersonate" >&6; } + LIBS=$ac_check_func_ext_save_LIBS +- if test $ac_cv_func_ext_krb5_get_creds_opt_set_impersonate = yes; then ++ if test $ac_cv_func_ext_krb5_get_creds_opt_set_impersonate = yes; then : + cat >>confdefs.h <<_ACEOF + #define HAVE_KRB5_GET_CREDS_OPT_SET_IMPERSONATE 1 + _ACEOF +@@ -70094,20 +28403,14 @@ + fi + + +- +- + ac_check_func_ext_save_LIBS=$LIBS + LIBS="$KRB5_LIBS $LIBS" +- { $as_echo "$as_me:$LINENO: checking for krb5_get_creds" >&5 ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for krb5_get_creds" >&5 + $as_echo_n "checking for krb5_get_creds... " >&6; } +-if test "${ac_cv_func_ext_krb5_get_creds+set}" = set; then ++if test "${ac_cv_func_ext_krb5_get_creds+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 ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + /* Define krb5_get_creds to an innocuous variant, in case declares krb5_get_creds. + For example, HP-UX 11i declares gettimeofday. */ +@@ -70148,43 +28451,18 @@ + return 0; + } + _ACEOF +-rm -f conftest.$ac_objext conftest$ac_exeext +-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 +- $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 ++if ac_fn_c_try_link "$LINENO"; then : + ac_cv_func_ext_krb5_get_creds=yes + else +- $as_echo "$as_me: failed program was:" >&5 +-sed 's/^/| /' conftest.$ac_ext >&5 +- +- ac_cv_func_ext_krb5_get_creds=no ++ ac_cv_func_ext_krb5_get_creds=no + fi +- +-rm -rf conftest.dSYM +-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ +- conftest$ac_exeext conftest.$ac_ext ++rm -f core conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi +-{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_ext_krb5_get_creds" >&5 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_ext_krb5_get_creds" >&5 + $as_echo "$ac_cv_func_ext_krb5_get_creds" >&6; } + LIBS=$ac_check_func_ext_save_LIBS +- if test $ac_cv_func_ext_krb5_get_creds = yes; then ++ if test $ac_cv_func_ext_krb5_get_creds = yes; then : + cat >>confdefs.h <<_ACEOF + #define HAVE_KRB5_GET_CREDS 1 + _ACEOF +@@ -70192,20 +28470,14 @@ + fi + + +- +- + ac_check_func_ext_save_LIBS=$LIBS + LIBS="$KRB5_LIBS $LIBS" +- { $as_echo "$as_me:$LINENO: checking for krb5_get_credentials_for_user" >&5 ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for krb5_get_credentials_for_user" >&5 + $as_echo_n "checking for krb5_get_credentials_for_user... " >&6; } +-if test "${ac_cv_func_ext_krb5_get_credentials_for_user+set}" = set; then ++if test "${ac_cv_func_ext_krb5_get_credentials_for_user+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 ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + /* Define krb5_get_credentials_for_user to an innocuous variant, in case declares krb5_get_credentials_for_user. + For example, HP-UX 11i declares gettimeofday. */ +@@ -70246,43 +28518,18 @@ + return 0; + } + _ACEOF +-rm -f conftest.$ac_objext conftest$ac_exeext +-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 +- $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 ++if ac_fn_c_try_link "$LINENO"; then : + ac_cv_func_ext_krb5_get_credentials_for_user=yes + else +- $as_echo "$as_me: failed program was:" >&5 +-sed 's/^/| /' conftest.$ac_ext >&5 +- +- ac_cv_func_ext_krb5_get_credentials_for_user=no ++ ac_cv_func_ext_krb5_get_credentials_for_user=no + fi +- +-rm -rf conftest.dSYM +-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ +- conftest$ac_exeext conftest.$ac_ext ++rm -f core conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi +-{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_ext_krb5_get_credentials_for_user" >&5 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_ext_krb5_get_credentials_for_user" >&5 + $as_echo "$ac_cv_func_ext_krb5_get_credentials_for_user" >&6; } + LIBS=$ac_check_func_ext_save_LIBS +- if test $ac_cv_func_ext_krb5_get_credentials_for_user = yes; then ++ if test $ac_cv_func_ext_krb5_get_credentials_for_user = yes; then : + cat >>confdefs.h <<_ACEOF + #define HAVE_KRB5_GET_CREDENTIALS_FOR_USER 1 + _ACEOF +@@ -70290,20 +28537,14 @@ + fi + + +- +- + ac_check_func_ext_save_LIBS=$LIBS + LIBS="$KRB5_LIBS $LIBS" +- { $as_echo "$as_me:$LINENO: checking for krb5_get_host_realm" >&5 ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for krb5_get_host_realm" >&5 + $as_echo_n "checking for krb5_get_host_realm... " >&6; } +-if test "${ac_cv_func_ext_krb5_get_host_realm+set}" = set; then ++if test "${ac_cv_func_ext_krb5_get_host_realm+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 ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + /* Define krb5_get_host_realm to an innocuous variant, in case declares krb5_get_host_realm. + For example, HP-UX 11i declares gettimeofday. */ +@@ -70344,43 +28585,18 @@ + return 0; + } + _ACEOF +-rm -f conftest.$ac_objext conftest$ac_exeext +-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 +- $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 ++if ac_fn_c_try_link "$LINENO"; then : + ac_cv_func_ext_krb5_get_host_realm=yes + else +- $as_echo "$as_me: failed program was:" >&5 +-sed 's/^/| /' conftest.$ac_ext >&5 +- +- ac_cv_func_ext_krb5_get_host_realm=no ++ ac_cv_func_ext_krb5_get_host_realm=no + fi +- +-rm -rf conftest.dSYM +-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ +- conftest$ac_exeext conftest.$ac_ext ++rm -f core conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi +-{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_ext_krb5_get_host_realm" >&5 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_ext_krb5_get_host_realm" >&5 + $as_echo "$ac_cv_func_ext_krb5_get_host_realm" >&6; } + LIBS=$ac_check_func_ext_save_LIBS +- if test $ac_cv_func_ext_krb5_get_host_realm = yes; then ++ if test $ac_cv_func_ext_krb5_get_host_realm = yes; then : + cat >>confdefs.h <<_ACEOF + #define HAVE_KRB5_GET_HOST_REALM 1 + _ACEOF +@@ -70388,20 +28604,14 @@ + fi + + +- +- + ac_check_func_ext_save_LIBS=$LIBS + LIBS="$KRB5_LIBS $LIBS" +- { $as_echo "$as_me:$LINENO: checking for krb5_free_host_realm" >&5 ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for krb5_free_host_realm" >&5 + $as_echo_n "checking for krb5_free_host_realm... " >&6; } +-if test "${ac_cv_func_ext_krb5_free_host_realm+set}" = set; then ++if test "${ac_cv_func_ext_krb5_free_host_realm+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 ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + /* Define krb5_free_host_realm to an innocuous variant, in case declares krb5_free_host_realm. + For example, HP-UX 11i declares gettimeofday. */ +@@ -70442,208 +28652,62 @@ + return 0; + } + _ACEOF +-rm -f conftest.$ac_objext conftest$ac_exeext +-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 +- $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 ++if ac_fn_c_try_link "$LINENO"; then : + ac_cv_func_ext_krb5_free_host_realm=yes + else +- $as_echo "$as_me: failed program was:" >&5 +-sed 's/^/| /' conftest.$ac_ext >&5 +- +- ac_cv_func_ext_krb5_free_host_realm=no ++ ac_cv_func_ext_krb5_free_host_realm=no + fi +- +-rm -rf conftest.dSYM +-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ +- conftest$ac_exeext conftest.$ac_ext ++rm -f core conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi +-{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_ext_krb5_free_host_realm" >&5 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_ext_krb5_free_host_realm" >&5 + $as_echo "$ac_cv_func_ext_krb5_free_host_realm" >&6; } + LIBS=$ac_check_func_ext_save_LIBS +- if test $ac_cv_func_ext_krb5_free_host_realm = yes; then ++ if test $ac_cv_func_ext_krb5_free_host_realm = yes; then : + cat >>confdefs.h <<_ACEOF + #define HAVE_KRB5_FREE_HOST_REALM 1 + _ACEOF fi +- + # MIT krb5 1.8 does not expose this call (yet) +- { $as_echo "$as_me:$LINENO: checking whether krb5_get_credentials_for_user is declared" >&5 +-$as_echo_n "checking whether krb5_get_credentials_for_user is declared... " >&6; } +-if test "${ac_cv_have_decl_krb5_get_credentials_for_user+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 +- +-int +-main () +-{ +-#ifndef krb5_get_credentials_for_user +- (void) krb5_get_credentials_for_user; +-#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_krb5_get_credentials_for_user=yes ++ ac_fn_c_check_decl "$LINENO" "krb5_get_credentials_for_user" "ac_cv_have_decl_krb5_get_credentials_for_user" "#include ++" ++if test "x$ac_cv_have_decl_krb5_get_credentials_for_user" = x""yes; then : ++ ac_have_decl=1 + else +- $as_echo "$as_me: failed program was:" >&5 +-sed 's/^/| /' conftest.$ac_ext >&5 +- +- ac_cv_have_decl_krb5_get_credentials_for_user=no +-fi +- +-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++ ac_have_decl=0 + fi +-{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_krb5_get_credentials_for_user" >&5 +-$as_echo "$ac_cv_have_decl_krb5_get_credentials_for_user" >&6; } +-if test "x$ac_cv_have_decl_krb5_get_credentials_for_user" = x""yes; then + + cat >>confdefs.h <<_ACEOF +-#define HAVE_DECL_KRB5_GET_CREDENTIALS_FOR_USER 1 +-_ACEOF +- +- +-else +- cat >>confdefs.h <<_ACEOF +-#define HAVE_DECL_KRB5_GET_CREDENTIALS_FOR_USER 0 ++#define HAVE_DECL_KRB5_GET_CREDENTIALS_FOR_USER $ac_have_decl + _ACEOF + + +-fi +- +- - # MIT krb5 1.7beta3 (in Ubuntu Karmic) does not have this declaration # but does have the symbol @@ -73778,16 +75936,16 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_KRB5_AUTH_CON_SET_REQ_CKSUMTYPE 1 +-_ACEOF +- +- +-else +- cat >>confdefs.h <<_ACEOF +-#define HAVE_DECL_KRB5_AUTH_CON_SET_REQ_CKSUMTYPE 0 +#define HAVE_DECL_KRB5_AUTH_CON_SET_REQ_CKSUMTYPE $ac_have_decl _ACEOF --else -- cat >>confdefs.h <<_ACEOF --#define HAVE_DECL_KRB5_AUTH_CON_SET_REQ_CKSUMTYPE 0 --_ACEOF -- -- -fi - - @@ -73811,7 +75969,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #include -@@ -67702,57 +27111,30 @@ +@@ -70663,57 +28727,30 @@ return 0; } _ACEOF @@ -73876,7 +76034,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #include -@@ -67768,58 +27150,31 @@ +@@ -70729,58 +28766,31 @@ return 0; } _ACEOF @@ -73942,7 +76100,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #include -@@ -67831,36 +27186,15 @@ +@@ -70792,36 +28802,15 @@ return 0; } _ACEOF @@ -73982,7 +76140,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "$smb_krb5_cv_verify_checksum" >&6; } cat >>confdefs.h <<_ACEOF -@@ -67868,17 +27202,13 @@ +@@ -70829,17 +28818,13 @@ _ACEOF @@ -74003,7 +76161,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #include int -@@ -67889,56 +27219,29 @@ +@@ -70850,56 +28835,29 @@ return 0; } _ACEOF @@ -74067,7 +76225,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #include int -@@ -67949,56 +27252,29 @@ +@@ -70910,56 +28868,29 @@ return 0; } _ACEOF @@ -74131,7 +76289,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #include int -@@ -68009,56 +27285,29 @@ +@@ -70970,56 +28901,29 @@ return 0; } _ACEOF @@ -74195,7 +76353,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #include int -@@ -68069,56 +27318,29 @@ +@@ -71030,56 +28934,29 @@ return 0; } _ACEOF @@ -74259,7 +76417,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #include int -@@ -68129,56 +27351,29 @@ +@@ -71090,56 +28967,29 @@ return 0; } _ACEOF @@ -74323,7 +76481,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #include int -@@ -68189,56 +27384,29 @@ +@@ -71150,56 +29000,29 @@ return 0; } _ACEOF @@ -74387,7 +76545,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #include int -@@ -68249,56 +27417,29 @@ +@@ -71210,56 +29033,29 @@ return 0; } _ACEOF @@ -74451,7 +76609,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #include int -@@ -68309,55 +27450,28 @@ +@@ -71270,55 +29066,28 @@ return 0; } _ACEOF @@ -74514,7 +76672,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #include int -@@ -68368,56 +27482,29 @@ +@@ -71329,56 +29098,29 @@ return 0; } _ACEOF @@ -74578,7 +76736,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #include int -@@ -68428,56 +27515,29 @@ +@@ -71389,56 +29131,29 @@ return 0; } _ACEOF @@ -74642,7 +76800,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #include int -@@ -68488,56 +27548,29 @@ +@@ -71449,56 +29164,29 @@ return 0; } _ACEOF @@ -74706,7 +76864,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #include int -@@ -68548,56 +27581,29 @@ +@@ -71509,56 +29197,29 @@ return 0; } _ACEOF @@ -74770,7 +76928,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #include int -@@ -68608,47 +27614,22 @@ +@@ -71569,47 +29230,22 @@ return 0; } _ACEOF @@ -74824,7 +76982,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #include int -@@ -68659,58 +27640,31 @@ +@@ -71620,58 +29256,31 @@ return 0; } _ACEOF @@ -74890,7 +77048,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #include int -@@ -68721,56 +27675,29 @@ +@@ -71682,56 +29291,29 @@ return 0; } _ACEOF @@ -74954,7 +77112,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #include int -@@ -68781,56 +27708,29 @@ +@@ -71742,56 +29324,29 @@ return 0; } _ACEOF @@ -75018,7 +77176,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #include int -@@ -68841,56 +27741,29 @@ +@@ -71802,56 +29357,29 @@ return 0; } _ACEOF @@ -75082,7 +77240,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #include int -@@ -68901,56 +27774,29 @@ +@@ -71862,56 +29390,29 @@ return 0; } _ACEOF @@ -75146,7 +77304,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #include int -@@ -68961,61 +27807,30 @@ +@@ -71922,61 +29423,30 @@ return 0; } _ACEOF @@ -75217,7 +77375,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #include int -@@ -69026,56 +27841,29 @@ +@@ -71987,56 +29457,29 @@ return 0; } _ACEOF @@ -75281,7 +77439,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #include int -@@ -69086,56 +27874,29 @@ +@@ -72047,56 +29490,29 @@ return 0; } _ACEOF @@ -75345,7 +77503,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #include int -@@ -69146,65 +27907,35 @@ +@@ -72107,65 +29523,35 @@ return 0; } _ACEOF @@ -75422,7 +77580,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #include -@@ -69217,65 +27948,32 @@ +@@ -72178,65 +29564,32 @@ return krb5_kt_resolve(context, "WRFILE:api", &keytab); } _ACEOF @@ -75480,6 +77638,70 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure fi +- { $as_echo "$as_me:$LINENO: checking for krb5_realm type" >&5 ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for krb5_realm type" >&5 + $as_echo_n "checking for krb5_realm type... " >&6; } +-if test "${samba_cv_HAVE_KRB5_REALM_TYPE+set}" = set; then ++if test "${samba_cv_HAVE_KRB5_REALM_TYPE+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 ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + #include + int +@@ -72247,56 +29600,29 @@ + 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 ++if ac_fn_c_try_compile "$LINENO"; then : + samba_cv_HAVE_KRB5_REALM_TYPE=yes + else +- $as_echo "$as_me: failed program was:" >&5 +-sed 's/^/| /' conftest.$ac_ext >&5 +- +- samba_cv_HAVE_KRB5_REALM_TYPE=no ++ samba_cv_HAVE_KRB5_REALM_TYPE=no + fi +- + rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + fi +-{ $as_echo "$as_me:$LINENO: result: $samba_cv_HAVE_KRB5_REALM_TYPE" >&5 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $samba_cv_HAVE_KRB5_REALM_TYPE" >&5 + $as_echo "$samba_cv_HAVE_KRB5_REALM_TYPE" >&6; } + + if test x"$samba_cv_HAVE_KRB5_REALM_TYPE" = x"yes"; then + +-cat >>confdefs.h <<\_ACEOF +-#define HAVE_KRB5_REALM_TYPE 1 +-_ACEOF ++$as_echo "#define HAVE_KRB5_REALM_TYPE 1" >>confdefs.h + + fi + - { $as_echo "$as_me:$LINENO: checking for krb5_princ_realm returns krb5_realm or krb5_data" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for krb5_princ_realm returns krb5_realm or krb5_data" >&5 $as_echo_n "checking for krb5_princ_realm returns krb5_realm or krb5_data... " >&6; } @@ -75497,7 +77719,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #include int -@@ -69289,56 +27987,29 @@ +@@ -72310,56 +29636,29 @@ return 0; } _ACEOF @@ -75561,7 +77783,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #include int -@@ -69349,56 +28020,29 @@ +@@ -72370,56 +29669,29 @@ return 0; } _ACEOF @@ -75625,7 +77847,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #include int -@@ -69410,49 +28054,26 @@ +@@ -72431,49 +29703,26 @@ return 0; } _ACEOF @@ -75681,7 +77903,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo_n "(cached) " >&6 else -@@ -69466,20 +28087,13 @@ +@@ -72487,20 +29736,13 @@ old_LDFLAGS="$LDFLAGS"; LDFLAGS="$LDFLAGS"; export LDFLAGS; @@ -75707,7 +77929,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #include -@@ -69493,42 +28107,15 @@ +@@ -72514,42 +29756,15 @@ } _ACEOF @@ -75754,7 +77976,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure CFLAGS="$old_CFLAGS"; old_CFLAGS=""; export CFLAGS; -@@ -69540,20 +28127,18 @@ +@@ -72561,20 +29776,18 @@ export LDFLAGS; fi @@ -75779,7 +78001,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo_n "(cached) " >&6 else -@@ -69567,20 +28152,13 @@ +@@ -72588,20 +29801,13 @@ old_LDFLAGS="$LDFLAGS"; LDFLAGS="$LDFLAGS"; export LDFLAGS; @@ -75805,7 +78027,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #include -@@ -69591,42 +28169,15 @@ +@@ -72612,42 +29818,15 @@ } _ACEOF @@ -75852,7 +78074,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure CFLAGS="$old_CFLAGS"; old_CFLAGS=""; export CFLAGS; -@@ -69638,29 +28189,23 @@ +@@ -72659,29 +29838,23 @@ export LDFLAGS; fi @@ -75887,7 +78109,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #include int -@@ -69671,61 +28216,30 @@ +@@ -72692,61 +29865,30 @@ return 0; } _ACEOF @@ -75958,7 +78180,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #include int -@@ -69736,47 +28250,20 @@ +@@ -72757,47 +29899,20 @@ return 0; } _ACEOF @@ -76012,7 +78234,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure fi -@@ -69788,7 +28275,7 @@ +@@ -72809,7 +29924,7 @@ # # if test x"$ac_cv_lib_ext_krb5_krb5_mk_req_extended" != x"yes"; then @@ -76021,7 +78243,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "$as_me: WARNING: krb5_mk_req_extended not found in -lkrb5" >&2;} use_ads=no fi -@@ -69796,7 +28283,7 @@ +@@ -72817,7 +29932,7 @@ if test x"$ac_cv_func_ext_krb5_principal2salt" != x"yes" -a \ x"$ac_cv_func_ext_krb5_get_pw_salt" != x"yes" then @@ -76030,7 +78252,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "$as_me: WARNING: no CREATE_KEY_FUNCTIONS detected" >&2;} use_ads=no fi -@@ -69804,7 +28291,7 @@ +@@ -72825,7 +29940,7 @@ if test x"$ac_cv_func_ext_krb5_get_permitted_enctypes" != x"yes" -a \ x"$ac_cv_func_ext_krb5_get_default_in_tkt_etypes" != x"yes" then @@ -76039,7 +78261,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "$as_me: WARNING: no GET_ENCTYPES_FUNCTIONS detected" >&2;} use_ads=no fi -@@ -69812,7 +28299,7 @@ +@@ -72833,7 +29948,7 @@ if test x"$ac_cv_func_ext_krb5_kt_free_entry" != x"yes" -a \ x"$ac_cv_func_ext_krb5_free_keytab_entry_contents" != x"yes" then @@ -76048,7 +78270,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "$as_me: WARNING: no KT_FREE_FUNCTION detected" >&2;} use_ads=no fi -@@ -69820,7 +28307,7 @@ +@@ -72841,7 +29956,7 @@ if test x"$ac_cv_func_ext_krb5_c_verify_checksum" != x"yes" -a \ x"$ac_cv_func_ext_krb5_verify_checksum" != x"yes" then @@ -76057,7 +78279,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "$as_me: WARNING: no KRB5_VERIFY_CHECKSUM_FUNCTION detected" >&2;} use_ads=no fi -@@ -69832,14 +28319,14 @@ +@@ -72853,14 +29968,14 @@ if test x"$ac_cv_func_ext_free_AP_REQ" != x"yes" then @@ -76074,7 +78296,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "$as_me: WARNING: no KRB5_AP_REQ_DECODING_FUNCTION detected" >&2;} use_ads=no fi -@@ -69848,29 +28335,21 @@ +@@ -72869,29 +29984,21 @@ if test x"$use_ads" = x"yes"; then @@ -76109,7 +78331,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "$as_me: WARNING: krb5 libs don't have all features required for Active Directory support" >&2;} fi -@@ -69896,9 +28375,9 @@ +@@ -72917,9 +30024,9 @@ KRB5_LIBS="" with_ads_support=no fi @@ -76121,7 +78343,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "$use_ads" >&6; } LIBS="$ac_save_LIBS" -@@ -69910,23 +28389,17 @@ +@@ -72931,23 +30038,17 @@ @@ -76148,7 +78370,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. -@@ -69944,54 +28417,28 @@ +@@ -72965,54 +30066,28 @@ return 0; } _ACEOF @@ -76210,7 +78432,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure cat >>confdefs.h <<_ACEOF #define HAVE_LIBNSCD 1 _ACEOF -@@ -70006,7 +28453,6 @@ +@@ -73027,7 +30102,6 @@ fi @@ -76218,7 +78440,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure PASSDB_LIBS="$PASSDB_LIBS $NSCD_LIBS" -@@ -70014,12 +28460,12 @@ +@@ -73035,12 +30109,12 @@ # Compile with DNS Updates support? with_dnsupdate_support=no @@ -76233,7 +78455,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure withval=$with_dnsupdate; case "$withval" in yes|no) with_dnsupdate_support=$withval -@@ -70028,7 +28474,7 @@ +@@ -73049,7 +30123,7 @@ fi @@ -76242,7 +78464,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "$with_dnsupdate_support" >&6; } if test x"$with_dnsupdate_support" != x"no"; then -@@ -70042,151 +28488,12 @@ +@@ -73063,151 +30137,12 @@ ################################################################## # then test for uuid.h (necessary to generate unique DNS keynames # (uuid.h is required for this test) @@ -76399,7 +78621,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure _ACEOF fi -@@ -70196,11 +28503,9 @@ +@@ -73217,11 +30152,9 @@ if test x"$ac_cv_header_uuid_uuid_h" != x"yes"; then if test x"$with_dnsupdate_support" = x"yes"; then @@ -76413,7 +78635,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "$as_me: WARNING: uuid.h is needed to enable DNS Updates support" >&2;} fi with_dnsupdate_support=no -@@ -70216,102 +28521,12 @@ +@@ -73237,102 +30170,12 @@ UUID_LIBS="" @@ -76521,7 +78743,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure _ACEOF # uuid_generate was found in libc or existing $LIBS -@@ -70328,9 +28543,7 @@ +@@ -73349,9 +30192,7 @@ with_dnsupdate_support=yes @@ -76532,7 +78754,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -@@ -70343,11 +28556,9 @@ +@@ -73364,11 +30205,9 @@ if test x"$with_dnsupdate_support" = x"yes"; then @@ -76546,7 +78768,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "$as_me: WARNING: libuuid is needed to enable DNS Updates support" >&2;} fi with_dnsupdate_support=no -@@ -70356,18 +28567,14 @@ +@@ -73377,18 +30216,14 @@ ;; *) # uuid_generate was not found, try adding libuuid @@ -76568,7 +78790,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. -@@ -70385,43 +28592,18 @@ +@@ -73406,43 +30241,18 @@ return 0; } _ACEOF @@ -76618,7 +78840,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure LIBS="-luuid $LIBS" -@@ -70437,9 +28619,7 @@ +@@ -73458,9 +30268,7 @@ with_dnsupdate_support=yes @@ -76629,7 +78851,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -@@ -70449,11 +28629,9 @@ +@@ -73470,11 +30278,9 @@ if test x"$with_dnsupdate_support" = x"yes"; then @@ -76643,7 +78865,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "$as_me: WARNING: libuuid is needed to enable DNS Updates support" >&2;} fi with_dnsupdate_support=no -@@ -70473,28 +28651,26 @@ +@@ -73494,28 +30300,26 @@ ################################################# # check for automount support @@ -76678,13 +78900,13 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "no" >&6; } fi -@@ -70505,34 +28681,30 @@ +@@ -73526,34 +30330,30 @@ CIFSMOUNT_PROGS="" INSTALL_CIFSMOUNT="" UNINSTALL_CIFSMOUNT="" --{ $as_echo "$as_me:$LINENO: checking whether to build mount.cifs and umount.cifs" >&5 -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build mount.cifs and umount.cifs" >&5 - $as_echo_n "checking whether to build mount.cifs and umount.cifs... " >&6; } +-{ $as_echo "$as_me:$LINENO: checking whether to build mount.cifs" >&5 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build mount.cifs" >&5 + $as_echo_n "checking whether to build mount.cifs... " >&6; } # Check whether --with-cifsmount was given. -if test "${with_cifsmount+set}" = set; then @@ -76707,7 +78929,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -_ACEOF +$as_echo "#define WITH_CIFSMOUNT 1" >>confdefs.h - CIFSMOUNT_PROGS="bin/mount.cifs bin/umount.cifs" + CIFSMOUNT_PROGS="bin/mount.cifs" INSTALL_CIFSMOUNT="installcifsmount" UNINSTALL_CIFSMOUNT="uninstallcifsmount" ;; @@ -76719,7 +78941,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure ;; esac ;; -@@ -70540,19 +28712,17 @@ +@@ -73561,19 +30361,17 @@ else case "$host_os" in *linux*) @@ -76732,7 +78954,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -_ACEOF +$as_echo "#define WITH_CIFSMOUNT 1" >>confdefs.h - CIFSMOUNT_PROGS="bin/mount.cifs bin/umount.cifs" + CIFSMOUNT_PROGS="bin/mount.cifs" INSTALL_CIFSMOUNT="installcifsmount" UNINSTALL_CIFSMOUNT="uninstallcifsmount" ;; @@ -76742,7 +78964,55 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "no" >&6; } ;; esac -@@ -70562,151 +28732,12 @@ +@@ -73584,40 +30382,36 @@ + CIFSUMOUNT_PROGS="" + INSTALL_CIFSUMOUNT="" + UNINSTALL_CIFSUMOUNT="" +-{ $as_echo "$as_me:$LINENO: checking whether to build umount.cifs" >&5 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build umount.cifs" >&5 + $as_echo_n "checking whether to build umount.cifs... " >&6; } + + # Check whether --with-cifsumount was given. +-if test "${with_cifsumount+set}" = set; then ++if test "${with_cifsumount+set}" = set; then : + withval=$with_cifsumount; case "$withval" in + yes) + case "$host_os" in + *linux*) +- { $as_echo "$as_me:$LINENO: result: yes" >&5 ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 + $as_echo "yes" >&6; } + +-cat >>confdefs.h <<\_ACEOF +-#define WITH_CIFSUMOUNT 1 +-_ACEOF ++$as_echo "#define WITH_CIFSUMOUNT 1" >>confdefs.h + + CIFSUMOUNT_PROGS="bin/umount.cifs" + INSTALL_CIFSUMOUNT="installcifsumount" + UNINSTALL_CIFSUMOUNT="uninstallcifsumount" + ;; + *) +- { { $as_echo "$as_me:$LINENO: error: not on a linux system!" >&5 +-$as_echo "$as_me: error: not on a linux system!" >&2;} +- { (exit 1); exit 1; }; } ++ as_fn_error "not on a linux system!" "$LINENO" 5 + ;; + esac + ;; + *) +- { $as_echo "$as_me:$LINENO: result: no" >&5 ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + $as_echo "no" >&6; } + ;; + esac + else +- { $as_echo "$as_me:$LINENO: result: no" >&5 ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + $as_echo "no" >&6; } + + fi +@@ -73625,151 +30419,12 @@ ################################################# # check for cifs.upcall support @@ -76898,7 +79168,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure _ACEOF HAVE_KEYUTILS_H=1 else -@@ -70718,34 +28749,28 @@ +@@ -73781,34 +30436,28 @@ CIFSUPCALL_PROGS="" INSTALL_CIFSUPCALL="" UNINSTALL_CIFSUPCALL="" @@ -76940,7 +79210,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure CIFSUPCALL_PROGS="bin/cifs.upcall" INSTALL_CIFSUPCALL="installcifsupcall" -@@ -70753,9 +28778,7 @@ +@@ -73816,9 +30465,7 @@ fi ;; *) @@ -76951,7 +79221,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure ;; esac ;; -@@ -70764,18 +28787,16 @@ +@@ -73827,18 +30474,16 @@ case "$host_os" in *linux*) if test x"$use_ads" != x"yes"; then @@ -76974,7 +79244,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure CIFSUPCALL_PROGS="bin/cifs.upcall" INSTALL_CIFSUPCALL="installcifsupcall" -@@ -70783,7 +28804,7 @@ +@@ -73846,191 +30491,53 @@ fi ;; *) @@ -76982,34 +79252,44 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } ;; - esac -@@ -70800,11 +28821,11 @@ - - with_pam_for_crypt=no - try_pam=no +- esac +- +-fi +- +- +- +-################################################# +-# Check for a PAM clear-text auth, accounts, password +-# and session support. Most PAM implementations keep their +-# headers in /usr/include/security. Darwin keeps its in +-# /usr/include/pam. +- +-with_pam_for_crypt=no +-try_pam=auto -{ $as_echo "$as_me:$LINENO: checking whether to try PAM support" >&5 -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to try PAM support" >&5 - $as_echo_n "checking whether to try PAM support... " >&6; } - - # Check whether --with-pam was given. +-$as_echo_n "checking whether to try PAM support... " >&6; } +- +-# Check whether --with-pam was given. -if test "${with_pam+set}" = set; then -+if test "${with_pam+set}" = set; then : - withval=$with_pam; case "$withval" in - yes|no) - try_pam=$withval -@@ -70813,7 +28834,7 @@ - - fi - +- withval=$with_pam; case "$withval" in +- yes|no|auto) +- try_pam=$withval +- ;; +- esac +- +-fi +- -{ $as_echo "$as_me:$LINENO: result: $try_pam" >&5 -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $try_pam" >&5 - $as_echo "$try_pam" >&6; } - - use_pam=no -@@ -70824,150 +28845,12 @@ - - # Most systems have PAM headers in /usr/include/security, but Darwin - # has them in /usr/include/pam. +-$as_echo "$try_pam" >&6; } +- +-use_pam=no +-create_pam_modules=no +-if test x"${try_pam}" != x"no";then +- use_pam=yes +- create_pam_modules=yes +- +- # Most systems have PAM headers in /usr/include/security, but Darwin +- # has them in /usr/include/pam. - - -for ac_header in security/pam_appl.h pam/pam_appl.h @@ -77100,14 +79380,15 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 -- ++ esac + - ac_header_preproc=no --fi -- + fi + -rm -f conftest.err conftest.$ac_ext -{ $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: ) @@ -77136,7 +79417,24 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -## ---------------------------------------- ## -_ASBOX - ) | sed "s/^/$as_me: WARNING: /" >&2 -- ;; ++ ++################################################# ++# Check for a PAM clear-text auth, accounts, password ++# and session support. Most PAM implementations keep their ++# headers in /usr/include/security. Darwin keeps its in ++# /usr/include/pam. ++ ++with_pam_for_crypt=no ++try_pam=auto ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to try PAM support" >&5 ++$as_echo_n "checking whether to try PAM support... " >&6; } ++ ++# Check whether --with-pam was given. ++if test "${with_pam+set}" = set; then : ++ withval=$with_pam; case "$withval" in ++ yes|no|auto) ++ try_pam=$withval + ;; -esac -{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 -$as_echo_n "checking for $ac_header... " >&6; } @@ -77149,11 +79447,24 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - $as_echo "$as_val"'` - { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -- --fi ++ esac + + fi -as_val=`eval 'as_val=${'$as_ac_Header'} - $as_echo "$as_val"'` - if test "x$as_val" = x""yes; then ++ ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $try_pam" >&5 ++$as_echo "$try_pam" >&6; } ++ ++use_pam=no ++create_pam_modules=no ++if test x"${try_pam}" != x"no";then ++ use_pam=yes ++ create_pam_modules=yes ++ ++ # Most systems have PAM headers in /usr/include/security, but Darwin ++ # has them in /usr/include/pam. + for ac_header in security/pam_appl.h pam/pam_appl.h +do : + as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` @@ -77163,7 +79474,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF -@@ -70979,9 +28862,7 @@ +@@ -74042,9 +30549,7 @@ if test x"$ac_cv_header_security_pam_appl_h" != x"yes" -a \ x"$ac_cv_header_pam_pam_appl_h" != x"yes"; then if test x"${try_pam}" = x"yes";then @@ -77174,7 +79485,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure fi use_pam=no create_pam_modules=no -@@ -70989,23 +28870,17 @@ +@@ -74052,23 +30557,17 @@ @@ -77201,7 +79512,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. -@@ -71023,54 +28898,28 @@ +@@ -74086,54 +30585,28 @@ return 0; } _ACEOF @@ -77263,7 +79574,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure cat >>confdefs.h <<_ACEOF #define HAVE_LIBPAM 1 _ACEOF -@@ -71085,34 +28934,18 @@ +@@ -74148,34 +30621,18 @@ fi @@ -77303,7 +79614,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure #if HAVE_SECURITY_PAM_APPL_H #include #endif -@@ -71120,44 +28953,9 @@ +@@ -74183,44 +30640,9 @@ #include #endif @@ -77351,7 +79662,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF -@@ -71169,179 +28967,33 @@ +@@ -74232,179 +30654,33 @@ if test x"$ac_cv_header_security_pam_modules_h" = x"no" -a \ x"$ac_cv_header_pam_pam_modules_h" = x"no" ; then if test x"${try_pam}" = x"yes";then @@ -77541,7 +79852,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF -@@ -71350,150 +29002,12 @@ +@@ -74413,150 +30689,12 @@ done @@ -77698,7 +80009,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF -@@ -71504,19 +29018,14 @@ +@@ -74567,19 +30705,14 @@ @@ -77721,7 +80032,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ /* Define pam_vsyslog to an innocuous variant, in case declares pam_vsyslog. For example, HP-UX 11i declares gettimeofday. */ -@@ -71557,62 +29066,36 @@ +@@ -74620,72 +30753,42 @@ return 0; } _ACEOF @@ -77795,10 +80106,60 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "$create_pam_modules" >&6; } fi # try_pam != no -@@ -71621,26 +29104,22 @@ - PAM_MODULES="" - INSTALL_PAM_MODULES="" + ################################################# + # check for PAM_RADIO_TYPE +-cat >conftest.$ac_ext <<_ACEOF +-/* confdefs.h. */ +-_ACEOF +-cat confdefs.h >>conftest.$ac_ext +-cat >>conftest.$ac_ext <<_ACEOF ++cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + + #if (!defined(LINUX)) +@@ -74723,36 +30826,11 @@ + 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 +- +-cat >>confdefs.h <<\_ACEOF +-#define HAVE_PAM_RADIO_TYPE 1 +-_ACEOF +- +-else +- $as_echo "$as_me: failed program was:" >&5 +-sed 's/^/| /' conftest.$ac_ext >&5 ++if ac_fn_c_try_compile "$LINENO"; then : + ++$as_echo "#define HAVE_PAM_RADIO_TYPE 1" >>confdefs.h + + fi +- + rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + + ################################################# +@@ -74762,19 +30840,17 @@ UNINSTALL_PAM_MODULES="" + + try_pam_smbpass=auto -{ $as_echo "$as_me:$LINENO: checking whether to use pam_smbpass" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to use pam_smbpass" >&5 $as_echo_n "checking whether to use pam_smbpass... " >&6; } @@ -77807,42 +80168,46 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -if test "${with_pam_smbpass+set}" = set; then +if test "${with_pam_smbpass+set}" = set; then : withval=$with_pam_smbpass; case "$withval" in - yes) -- { $as_echo "$as_me:$LINENO: result: yes" >&5 -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 - $as_echo "yes" >&6; } + yes|no|auto) + try_pam_smbpass=$withval + ;; + *) +- { { $as_echo "$as_me:$LINENO: error: valid options are yes,no,auto" >&5 +-$as_echo "$as_me: error: valid options are yes,no,auto" >&2;} +- { (exit 1); exit 1; }; } ++ as_fn_error "valid options are yes,no,auto" "$LINENO" 5 + ;; + esac - # Conditions under which pam_smbpass should not be built. - - if test x"$BLDSHARED" != x"true"; then -- { { $as_echo "$as_me:$LINENO: error: No support for shared modules" >&5 +@@ -74788,16 +30864,12 @@ + # Conditions under which pam_smbpass can't be built. + if test x"$BLDSHARED" != xtrue ; then + if test x"${try_pam_smbpass}" = xyes ; then +- { { $as_echo "$as_me:$LINENO: error: No support for shared modules" >&5 -$as_echo "$as_me: error: No support for shared modules" >&2;} - { (exit 1); exit 1; }; } -+ as_fn_error "No support for shared modules" "$LINENO" 5 - elif test x"$create_pam_modules" != x"yes"; then -- { { $as_echo "$as_me:$LINENO: error: No support for PAM MODULES" >&5 ++ as_fn_error "No support for shared modules" "$LINENO" 5 + fi + use_pam_smbpass=no + elif test x"$create_pam_modules" != xyes ; then + if test x"${try_pam_smbpass}" = xyes ; then +- { { $as_echo "$as_me:$LINENO: error: No support for PAM MODULES" >&5 -$as_echo "$as_me: error: No support for PAM MODULES" >&2;} - { (exit 1); exit 1; }; } -+ as_fn_error "No support for PAM MODULES" "$LINENO" 5 - else - PAM_MODULES="pam_smbpass" - INSTALL_PAM_MODULES="installpammodules" -@@ -71648,12 +29127,12 @@ - fi - ;; - *) -- { $as_echo "$as_me:$LINENO: result: no" >&5 -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 - $as_echo "no" >&6; } - ;; - esac - else -- { $as_echo "$as_me:$LINENO: result: no" >&5 -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 - $as_echo "no" >&6; } - ++ as_fn_error "No support for PAM MODULES" "$LINENO" 5 + fi + use_pam_smbpass=no + fi +@@ -74808,7 +30880,7 @@ + UNINSTALL_PAM_MODULES="uninstallpammodules" + fi fi -@@ -71667,98 +29146,63 @@ +-{ $as_echo "$as_me:$LINENO: result: $use_pam_smbpass" >&5 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $use_pam_smbpass" >&5 + $as_echo "$use_pam_smbpass" >&6; } + + +@@ -74819,98 +30891,63 @@ ## $with_pam_for_crypt variable as above --jerry ## if test $with_pam_for_crypt = no; then @@ -77957,7 +80322,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "no" >&6; } fi -@@ -71766,28 +29210,26 @@ +@@ -74918,28 +30955,26 @@ ################################################# # check for syslog logging @@ -77992,7 +80357,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "no" >&6; } fi -@@ -71795,16 +29237,14 @@ +@@ -74947,16 +30982,14 @@ ################################################# # check for custom syslog facility @@ -78012,7 +80377,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure else if test "$withval" != "yes" ; then syslog_facility="$withval" -@@ -71829,14 +29269,14 @@ +@@ -74981,14 +31014,14 @@ samba_cv_TRY_SYS_QUOTAS=auto samba_cv_SYSQUOTA_FOUND=no @@ -78030,7 +80395,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "yes" >&6; } samba_cv_WITH_QUOTAS=yes samba_cv_TRY_QUOTAS=yes -@@ -71845,7 +29285,7 @@ +@@ -74997,7 +31030,7 @@ samba_cv_TRY_SYS_QUOTAS=auto ;; auto) @@ -78039,7 +80404,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "auto" >&6; } samba_cv_WITH_QUOTAS=auto samba_cv_TRY_QUOTAS=auto -@@ -71854,74 +29294,74 @@ +@@ -75006,74 +31039,74 @@ samba_cv_TRY_SYS_QUOTAS=auto ;; no) @@ -78127,41 +80492,40 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "no" >&6; } samba_cv_TRY_SYS_QUOTAS=no ;; -@@ -71937,483 +29377,68 @@ - *linux*) - samba_cv_SYSQUOTA_FOUND=yes +@@ -75084,641 +31117,87 @@ + # only check for quota stuff if --with-quotas + if test x"$samba_cv_RUN_QUOTA_TESTS" != x"no"; then +-case "$host_os" in +- # on linux we didn't need to test we have builtin support +- *linux*) +- samba_cv_SYSQUOTA_FOUND=yes +- -cat >>confdefs.h <<\_ACEOF -#define HAVE_QUOTACTL_LINUX 1 -_ACEOF -+$as_echo "#define HAVE_QUOTACTL_LINUX 1" >>confdefs.h - - samba_cv_sysquotas_file="lib/sysquotas_linux.c" +- +- samba_cv_sysquotas_file="lib/sysquotas_linux.c" - { $as_echo "$as_me:$LINENO: checking whether to use the lib/sysquotas_linux.c builtin support" >&5 -+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to use the lib/sysquotas_linux.c builtin support" >&5 - $as_echo_n "checking whether to use the lib/sysquotas_linux.c builtin support... " >&6; } +-$as_echo_n "checking whether to use the lib/sysquotas_linux.c builtin support... " >&6; } - { $as_echo "$as_me:$LINENO: result: yes" >&5 -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 - $as_echo "yes" >&6; } - - +-$as_echo "yes" >&6; } +- +- -cat >>confdefs.h <<\_ACEOF -#define HAVE_LINUX_XFS_QUOTAS 1 -_ACEOF -+$as_echo "#define HAVE_LINUX_XFS_QUOTAS 1" >>confdefs.h - - samba_cv_found_xfs_header=yes +- +- samba_cv_found_xfs_header=yes - { $as_echo "$as_me:$LINENO: checking whether to use the lib/sysquotas_xfs.c builtin support" >&5 -+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to use the lib/sysquotas_xfs.c builtin support" >&5 - $as_echo_n "checking whether to use the lib/sysquotas_xfs.c builtin support... " >&6; } +-$as_echo_n "checking whether to use the lib/sysquotas_xfs.c builtin support... " >&6; } - { $as_echo "$as_me:$LINENO: result: yes" >&5 -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 - $as_echo "yes" >&6; } - ;; - *solaris*) - # need to set this define when using static linking (BUG 1473) - CPPFLAGS="$CPPFLAGS -DSUNOS5" - ;; +-$as_echo "yes" >&6; } +- ;; +- *solaris*) +- # need to set this define when using static linking (BUG 1473) +- CPPFLAGS="$CPPFLAGS -DSUNOS5" +- ;; - *) - ;; -esac @@ -78442,9 +80806,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -_ASBOX - ) | sed "s/^/$as_me: WARNING: /" >&2 - ;; -+ *) -+ ;; - esac +-esac -{ $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 @@ -78456,7 +80818,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - $as_echo "$as_val"'` - { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } - +- -fi -as_val=`eval 'as_val=${'$as_ac_Header'} - $as_echo "$as_val"'` @@ -78464,21 +80826,14 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF -+# some broken header files need this -+ac_fn_c_check_header_mongrel "$LINENO" "asm/types.h" "ac_cv_header_asm_types_h" "$ac_includes_default" -+if test "x$ac_cv_header_asm_types_h" = x""yes; then : - +- -fi - +- -done -+$as_echo "#define HAVE_ASM_TYPES_H 1" >>confdefs.h - -+ cat >> confdefs.h <<\EOF -+#include -+EOF - +- +- -# For quotas on Linux XFS filesystems - +- -for ac_header in linux/dqblk_xfs.h -do -as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` @@ -78487,7 +80842,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -$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 +-fi -ac_res=`eval 'as_val=${'$as_ac_Header'} - $as_echo "$as_val"'` - { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 @@ -78527,13 +80882,209 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - +- - ac_header_compiler=no -fi +- +-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? +-{ $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 +-cat confdefs.h >>conftest.$ac_ext +-cat >>conftest.$ac_ext <<_ACEOF +-/* end confdefs.h. */ +-#include <$ac_header> +-_ACEOF +-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 +- $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 +- $as_echo "$as_me: failed program was:" >&5 +-sed 's/^/| /' conftest.$ac_ext >&5 ++case "$host_os" in ++ # on linux we didn't need to test we have builtin support ++ *linux*) ++ samba_cv_SYSQUOTA_FOUND=yes + +- ac_header_preproc=no +-fi ++$as_echo "#define HAVE_QUOTACTL_LINUX 1" >>confdefs.h + +-rm -f conftest.err conftest.$ac_ext +-{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +-$as_echo "$ac_header_preproc" >&6; } ++ samba_cv_sysquotas_file="lib/sysquotas_linux.c" ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to use the lib/sysquotas_linux.c builtin support" >&5 ++$as_echo_n "checking whether to use the lib/sysquotas_linux.c builtin support... " >&6; } ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 ++$as_echo "yes" >&6; } + +-# So? What about this header? +-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in +- yes:no: ) +- { $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:* ) +- { $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 samba-technical@samba.org ## +-## ---------------------------------------- ## +-_ASBOX +- ) | sed "s/^/$as_me: WARNING: /" >&2 +- ;; ++ ++$as_echo "#define HAVE_LINUX_XFS_QUOTAS 1" >>confdefs.h ++ ++ samba_cv_found_xfs_header=yes ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to use the lib/sysquotas_xfs.c builtin support" >&5 ++$as_echo_n "checking whether to use the lib/sysquotas_xfs.c builtin support... " >&6; } ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 ++$as_echo "yes" >&6; } ++ ;; ++ *solaris*) ++ # need to set this define when using static linking (BUG 1473) ++ CPPFLAGS="$CPPFLAGS -DSUNOS5" ++ ;; ++ *) ++ ;; + esac +-{ $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 +-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 +-as_val=`eval 'as_val=${'$as_ac_Header'} +- $as_echo "$as_val"'` +- if test "x$as_val" = x""yes; then +- cat >>confdefs.h <<_ACEOF +-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +-_ACEOF ++# some broken header files need this ++ac_fn_c_check_header_mongrel "$LINENO" "asm/types.h" "ac_cv_header_asm_types_h" "$ac_includes_default" ++if test "x$ac_cv_header_asm_types_h" = x""yes; then : + +-fi + +-done ++$as_echo "#define HAVE_ASM_TYPES_H 1" >>confdefs.h + ++ cat >> confdefs.h <<\EOF ++#include ++EOF + +-# For sys/quota.h and linux/quota.h + +-for ac_header in sys/quota.h +-do +-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? +-{ $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 +-cat confdefs.h >>conftest.$ac_ext +-cat >>conftest.$ac_ext <<_ACEOF +-/* end confdefs.h. */ +-$ac_includes_default +-#include <$ac_header> ++ ++ ++ ++# For quotas on Veritas VxFS filesystems ++for ac_header in sys/fs/vx_quota.h ++do : ++ ac_fn_c_check_header_mongrel "$LINENO" "sys/fs/vx_quota.h" "ac_cv_header_sys_fs_vx_quota_h" "$ac_includes_default" ++if test "x$ac_cv_header_sys_fs_vx_quota_h" = x""yes; then : ++ cat >>confdefs.h <<_ACEOF ++#define HAVE_SYS_FS_VX_QUOTA_H 1 + _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_header_compiler=yes +-else +- $as_echo "$as_me: failed program was:" >&5 +-sed 's/^/| /' conftest.$ac_ext >&5 + +- ac_header_compiler=no + fi -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; } ++done -# Is the header present? -{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5 @@ -78545,13 +81096,14 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include <$ac_header> -+# For quotas on Veritas VxFS filesystems -+for ac_header in sys/fs/vx_quota.h ++ ++# For quotas on Linux XFS filesystems ++for ac_header in linux/dqblk_xfs.h +do : -+ ac_fn_c_check_header_mongrel "$LINENO" "sys/fs/vx_quota.h" "ac_cv_header_sys_fs_vx_quota_h" "$ac_includes_default" -+if test "x$ac_cv_header_sys_fs_vx_quota_h" = x""yes; then : ++ ac_fn_c_check_header_mongrel "$LINENO" "linux/dqblk_xfs.h" "ac_cv_header_linux_dqblk_xfs_h" "$ac_includes_default" ++if test "x$ac_cv_header_linux_dqblk_xfs_h" = x""yes; then : + cat >>confdefs.h <<_ACEOF -+#define HAVE_SYS_FS_VX_QUOTA_H 1 ++#define HAVE_LINUX_DQBLK_XFS_H 1 _ACEOF -if { (ac_try="$ac_cpp conftest.$ac_ext" -case "(($ac_try" in @@ -78629,164 +81181,8 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -as_val=`eval 'as_val=${'$as_ac_Header'} - $as_echo "$as_val"'` - if test "x$as_val" = x""yes; then -+# For quotas on Linux XFS filesystems -+for ac_header in linux/dqblk_xfs.h -+do : -+ ac_fn_c_check_header_mongrel "$LINENO" "linux/dqblk_xfs.h" "ac_cv_header_linux_dqblk_xfs_h" "$ac_includes_default" -+if test "x$ac_cv_header_linux_dqblk_xfs_h" = x""yes; then : - cat >>confdefs.h <<_ACEOF --#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -+#define HAVE_LINUX_DQBLK_XFS_H 1 - _ACEOF - - fi -@@ -72422,151 +29447,12 @@ - - - # For sys/quota.h and linux/quota.h -- - for ac_header in sys/quota.h --do --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? --{ $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 --cat confdefs.h >>conftest.$ac_ext --cat >>conftest.$ac_ext <<_ACEOF --/* end confdefs.h. */ --$ac_includes_default --#include <$ac_header> --_ACEOF --rm -f conftest.$ac_objext --if { (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_header_compiler=yes --else -- $as_echo "$as_me: failed program was:" >&5 --sed 's/^/| /' conftest.$ac_ext >&5 -- -- ac_header_compiler=no --fi -- --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? --{ $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 --cat confdefs.h >>conftest.$ac_ext --cat >>conftest.$ac_ext <<_ACEOF --/* end confdefs.h. */ --#include <$ac_header> --_ACEOF --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 -- $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 -- $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 --{ $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: ) -- { $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:* ) -- { $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 samba-technical@samba.org ## --## ---------------------------------------- ## --_ASBOX -- ) | sed "s/^/$as_me: WARNING: /" >&2 -- ;; --esac --{ $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 --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 --as_val=`eval 'as_val=${'$as_ac_Header'} -- $as_echo "$as_val"'` -- if test "x$as_val" = x""yes; then ++# For sys/quota.h and linux/quota.h ++for ac_header in sys/quota.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "sys/quota.h" "ac_cv_header_sys_quota_h" "$ac_includes_default" +if test "x$ac_cv_header_sys_quota_h" = x""yes; then : @@ -78796,7 +81192,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure _ACEOF fi -@@ -72576,17 +29462,13 @@ +@@ -75728,17 +31207,13 @@ if test x"$samba_cv_found_xfs_header" != x"yes"; then # if we have xfs quota support (IRIX) we should use it @@ -78817,7 +81213,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #include "confdefs.h" -@@ -72606,35 +29488,14 @@ +@@ -75758,35 +31233,14 @@ return 0; } _ACEOF @@ -78856,7 +81252,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "$samba_cv_HAVE_SYS_QUOTA_XFS" >&6; } if test "$samba_cv_HAVE_SYS_QUOTA_XFS"x = "yes"x; then samba_cv_found_xfs_header=yes -@@ -72642,17 +29503,13 @@ +@@ -75794,17 +31248,13 @@ fi # if we have struct dqblk .dqb_fsoftlimit instead of .dqb_isoftlimit on IRIX @@ -78877,7 +81273,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #include "confdefs.h" -@@ -72670,41 +29527,18 @@ +@@ -75822,41 +31272,18 @@ return 0; } _ACEOF @@ -78923,7 +81319,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure fi -@@ -72712,9 +29546,9 @@ +@@ -75864,9 +31291,9 @@ # look for a working quota system if test x"$samba_cv_SYSQUOTA_FOUND" != x"yes"; then @@ -78935,7 +81331,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo_n "(cached) " >&6 else -@@ -72728,14 +29562,10 @@ +@@ -75880,14 +31307,10 @@ old_LDFLAGS="$LDFLAGS"; LDFLAGS="$LDFLAGS"; export LDFLAGS; @@ -78952,7 +81348,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #define HAVE_QUOTACTL_4A 1 -@@ -72743,42 +29573,15 @@ +@@ -75895,42 +31318,15 @@ #include "confdefs.h" #include "${srcdir-.}/../tests/sysquotas.c" _ACEOF @@ -78999,7 +81395,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure CFLAGS="$old_CFLAGS"; old_CFLAGS=""; export CFLAGS; -@@ -72790,23 +29593,21 @@ +@@ -75942,23 +31338,21 @@ export LDFLAGS; fi @@ -79027,7 +81423,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo_n "(cached) " >&6 else -@@ -72820,14 +29621,10 @@ +@@ -75972,14 +31366,10 @@ old_LDFLAGS="$LDFLAGS"; LDFLAGS="$LDFLAGS"; export LDFLAGS; @@ -79044,7 +81440,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #define HAVE_QUOTACTL_4B 1 -@@ -72835,42 +29632,15 @@ +@@ -75987,42 +31377,15 @@ #include "confdefs.h" #include "${srcdir-.}/../tests/sysquotas.c" _ACEOF @@ -79091,7 +81487,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure CFLAGS="$old_CFLAGS"; old_CFLAGS=""; export CFLAGS; -@@ -72882,24 +29652,22 @@ +@@ -76034,24 +31397,22 @@ export LDFLAGS; fi @@ -79120,7 +81516,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo_n "(cached) " >&6 else -@@ -72913,14 +29681,10 @@ +@@ -76065,14 +31426,10 @@ old_LDFLAGS="$LDFLAGS"; LDFLAGS="$LDFLAGS"; export LDFLAGS; @@ -79137,7 +81533,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #define HAVE_QUOTACTL_3 1 -@@ -72928,42 +29692,15 @@ +@@ -76080,42 +31437,15 @@ #include "confdefs.h" #include "${srcdir-.}/../tests/sysquotas.c" _ACEOF @@ -79184,7 +81580,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure CFLAGS="$old_CFLAGS"; old_CFLAGS=""; export CFLAGS; -@@ -72975,15 +29712,13 @@ +@@ -76127,15 +31457,13 @@ export LDFLAGS; fi @@ -79202,7 +81598,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure samba_cv_sysquotas_file="lib/sysquotas_3.c" fi -@@ -72991,151 +29726,12 @@ +@@ -76143,151 +31471,12 @@ ################################################# # check for mntent.h and struct mntent @@ -79358,7 +81754,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure _ACEOF fi -@@ -73144,102 +29740,12 @@ +@@ -76296,102 +31485,12 @@ ################################################# # check for setmntent,getmntent,endmntent @@ -79466,7 +81862,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF -@@ -73250,151 +29756,12 @@ +@@ -76402,151 +31501,12 @@ ################################################# # check for devnm.h and struct mntent @@ -79622,7 +82018,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure _ACEOF fi -@@ -73403,102 +29770,12 @@ +@@ -76555,102 +31515,12 @@ ################################################# # check for devnm @@ -79729,7 +82125,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure _ACEOF fi -@@ -73521,19 +29798,15 @@ +@@ -76673,19 +31543,15 @@ fi if test x"$samba_cv_SYSQUOTA_FOUND" != x"no"; then @@ -79752,7 +82148,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #include "confdefs.h" -@@ -73551,76 +29824,47 @@ +@@ -76703,76 +31569,47 @@ return 0; } _ACEOF @@ -79840,7 +82236,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #include "confdefs.h" -@@ -73638,62 +29882,35 @@ +@@ -76790,62 +31627,35 @@ return 0; } _ACEOF @@ -79885,9 +82281,8 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -cat >>confdefs.h <<\_ACEOF -#define HAVE_XFS_QUOTAS 1 -_ACEOF -- +$as_echo "#define HAVE_XFS_QUOTAS 1" >>confdefs.h -+ + fi fi fi @@ -79911,7 +82306,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #include "confdefs.h" -@@ -73709,56 +29926,33 @@ +@@ -76861,56 +31671,33 @@ return 0; } _ACEOF @@ -79976,7 +82371,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "no" >&6; } fi fi -@@ -73770,12 +29964,12 @@ +@@ -76922,12 +31709,12 @@ ################################################# # check for experimental utmp accounting @@ -79991,7 +82386,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure withval=$with_utmp; case "$withval" in no) WITH_UTMP=no -@@ -73798,15 +29992,13 @@ +@@ -76950,41 +31737,35 @@ # Display test results if test x"$WITH_UTMP" = x"yes"; then @@ -80010,327 +82405,6 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "no$utmp_no_reason" >&6; } fi -@@ -73832,10 +30024,10 @@ - USESHARED=false - - --{ $as_echo "$as_me:$LINENO: checking whether to use shared libraries internally" >&5 -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to use shared libraries internally" >&5 - $as_echo_n "checking whether to use shared libraries internally... " >&6; } - # Check whether --enable-shared-libs was given. --if test "${enable_shared_libs+set}" = set; then -+if test "${enable_shared_libs+set}" = set; then : - enableval=$enable_shared_libs; enable_shared_libs=$enableval - else - enable_shared_libs=yes -@@ -73846,11 +30038,11 @@ - USESHARED=$BLDSHARED - fi - --{ $as_echo "$as_me:$LINENO: result: $USESHARED" >&5 -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $USESHARED" >&5 - $as_echo "$USESHARED" >&6; } - - if test x"$enable_shared_libs" = x"yes" -a x"$BLDSHARED" != x"true" ; then -- { $as_echo "$as_me:$LINENO: WARNING: --enable-shared-libs: no support for shared libraries" >&5 -+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: --enable-shared-libs: no support for shared libraries" >&5 - $as_echo "$as_me: WARNING: --enable-shared-libs: no support for shared libraries" >&2;} - fi - -@@ -73878,14 +30070,13 @@ - - - # Check whether --with-static-libs was given. --if test "${with_static_libs+set}" = set; then -- withval=$with_static_libs; if test $withval; then -+if test "${with_static_libs+set}" = set; then : -+ withval=$with_static_libs; if test $withval; then : - for lib in `echo $withval | sed -e 's/,/ /g'` ; do - lib=`echo $lib | tr '[a-z]' '[A-Z]'` - eval LINK_$lib=STATIC - done - fi -- - fi - - -@@ -73934,16 +30125,16 @@ - - - --{ $as_echo "$as_me:$LINENO: checking whether to build the libtalloc shared library" >&5 -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build the libtalloc shared library" >&5 - $as_echo_n "checking whether to build the libtalloc shared library... " >&6; } - - - # Check whether --with-libtalloc was given. --if test "${with_libtalloc+set}" = set; then -+if test "${with_libtalloc+set}" = set; then : - withval=$with_libtalloc; - case "$withval" in - no) -- { $as_echo "$as_me:$LINENO: result: no" >&5 -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 - $as_echo "no" >&6; } - build_lib=no - ;; -@@ -73969,7 +30160,7 @@ - if eval $BLDSHARED = true; then - LIBTALLOC_SHARED=$LIBTALLOC_SHARED_TARGET - LIBTALLOC_TARGET=$LIBTALLOC_SHARED_TARGET -- { $as_echo "$as_me:$LINENO: result: yes" >&5 -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 - $as_echo "yes" >&6; } - if test x"$USESHARED" != x"true" -o x"$LINK_LIBTALLOC" = "xSTATIC" ; then - enable_static=yes -@@ -73982,12 +30173,12 @@ - enable_static=yes - LIBTALLOC_TARGET=$LIBTALLOC_STATIC_TARGET - LIBTALLOC_LIBS=$LIBTALLOC_STATIC_TARGET -- { $as_echo "$as_me:$LINENO: result: no shared library support -- will supply static library" >&5 -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no shared library support -- will supply static library" >&5 - $as_echo "no shared library support -- will supply static library" >&6; } - fi - else - enable_static=yes -- { $as_echo "$as_me:$LINENO: result: shared library not selected" >&5 -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: shared library not selected" >&5 - $as_echo "shared library not selected" >&6; } - fi - if test $enable_static = yes; then -@@ -74038,16 +30229,16 @@ - - - --{ $as_echo "$as_me:$LINENO: checking whether to build the libtdb shared library" >&5 -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build the libtdb shared library" >&5 - $as_echo_n "checking whether to build the libtdb shared library... " >&6; } - - - # Check whether --with-libtdb was given. --if test "${with_libtdb+set}" = set; then -+if test "${with_libtdb+set}" = set; then : - withval=$with_libtdb; - case "$withval" in - no) -- { $as_echo "$as_me:$LINENO: result: no" >&5 -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 - $as_echo "no" >&6; } - build_lib=no - ;; -@@ -74073,7 +30264,7 @@ - if eval $BLDSHARED = true; then - LIBTDB_SHARED=$LIBTDB_SHARED_TARGET - LIBTDB_TARGET=$LIBTDB_SHARED_TARGET -- { $as_echo "$as_me:$LINENO: result: yes" >&5 -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 - $as_echo "yes" >&6; } - if test x"$USESHARED" != x"true" -o x"$LINK_LIBTDB" = "xSTATIC" ; then - enable_static=yes -@@ -74086,12 +30277,12 @@ - enable_static=yes - LIBTDB_TARGET=$LIBTDB_STATIC_TARGET - LIBTDB_LIBS=$LIBTDB_STATIC_TARGET -- { $as_echo "$as_me:$LINENO: result: no shared library support -- will supply static library" >&5 -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no shared library support -- will supply static library" >&5 - $as_echo "no shared library support -- will supply static library" >&6; } - fi - else - enable_static=yes -- { $as_echo "$as_me:$LINENO: result: shared library not selected" >&5 -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: shared library not selected" >&5 - $as_echo "shared library not selected" >&6; } - fi - if test $enable_static = yes; then -@@ -74129,16 +30320,16 @@ - - - --{ $as_echo "$as_me:$LINENO: checking whether to build the libnetapi shared library" >&5 -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build the libnetapi shared library" >&5 - $as_echo_n "checking whether to build the libnetapi shared library... " >&6; } - - - # Check whether --with-libnetapi was given. --if test "${with_libnetapi+set}" = set; then -+if test "${with_libnetapi+set}" = set; then : - withval=$with_libnetapi; - case "$withval" in - no) -- { $as_echo "$as_me:$LINENO: result: no" >&5 -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 - $as_echo "no" >&6; } - build_lib=no - ;; -@@ -74164,7 +30355,7 @@ - if eval $BLDSHARED = true; then - LIBNETAPI_SHARED=$LIBNETAPI_SHARED_TARGET - LIBNETAPI_TARGET=$LIBNETAPI_SHARED_TARGET -- { $as_echo "$as_me:$LINENO: result: yes" >&5 -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 - $as_echo "yes" >&6; } - if test x"$USESHARED" != x"true" -o x"$LINK_LIBNETAPI" = "xSTATIC" ; then - enable_static=yes -@@ -74177,12 +30368,12 @@ - enable_static=yes - LIBNETAPI_TARGET=$LIBNETAPI_STATIC_TARGET - LIBNETAPI_LIBS=$LIBNETAPI_STATIC_TARGET -- { $as_echo "$as_me:$LINENO: result: no shared library support -- will supply static library" >&5 -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no shared library support -- will supply static library" >&5 - $as_echo "no shared library support -- will supply static library" >&6; } - fi - else - enable_static=yes -- { $as_echo "$as_me:$LINENO: result: shared library not selected" >&5 -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: shared library not selected" >&5 - $as_echo "shared library not selected" >&6; } - fi - if test $enable_static = yes; then -@@ -74220,16 +30411,16 @@ - - - --{ $as_echo "$as_me:$LINENO: checking whether to build the libsmbclient shared library" >&5 -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build the libsmbclient shared library" >&5 - $as_echo_n "checking whether to build the libsmbclient shared library... " >&6; } - - - # Check whether --with-libsmbclient was given. --if test "${with_libsmbclient+set}" = set; then -+if test "${with_libsmbclient+set}" = set; then : - withval=$with_libsmbclient; - case "$withval" in - no) -- { $as_echo "$as_me:$LINENO: result: no" >&5 -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 - $as_echo "no" >&6; } - build_lib=no - ;; -@@ -74255,7 +30446,7 @@ - if eval $BLDSHARED = true; then - LIBSMBCLIENT_SHARED=$LIBSMBCLIENT_SHARED_TARGET - LIBSMBCLIENT_TARGET=$LIBSMBCLIENT_SHARED_TARGET -- { $as_echo "$as_me:$LINENO: result: yes" >&5 -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 - $as_echo "yes" >&6; } - if test x"$USESHARED" != x"true" -o x"$LINK_LIBSMBCLIENT" = "xSTATIC" ; then - enable_static=yes -@@ -74268,12 +30459,12 @@ - enable_static=yes - LIBSMBCLIENT_TARGET=$LIBSMBCLIENT_STATIC_TARGET - LIBSMBCLIENT_LIBS=$LIBSMBCLIENT_STATIC_TARGET -- { $as_echo "$as_me:$LINENO: result: no shared library support -- will supply static library" >&5 -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no shared library support -- will supply static library" >&5 - $as_echo "no shared library support -- will supply static library" >&6; } - fi - else - enable_static=yes -- { $as_echo "$as_me:$LINENO: result: shared library not selected" >&5 -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: shared library not selected" >&5 - $as_echo "shared library not selected" >&6; } - fi - if test $enable_static = yes; then -@@ -74311,16 +30502,16 @@ - - - --{ $as_echo "$as_me:$LINENO: checking whether to build the libsmbsharemodes shared library" >&5 -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build the libsmbsharemodes shared library" >&5 - $as_echo_n "checking whether to build the libsmbsharemodes shared library... " >&6; } - - - # Check whether --with-libsmbsharemodes was given. --if test "${with_libsmbsharemodes+set}" = set; then -+if test "${with_libsmbsharemodes+set}" = set; then : - withval=$with_libsmbsharemodes; - case "$withval" in - no) -- { $as_echo "$as_me:$LINENO: result: no" >&5 -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 - $as_echo "no" >&6; } - build_lib=no - ;; -@@ -74346,7 +30537,7 @@ - if eval $BLDSHARED = true; then - LIBSMBSHAREMODES_SHARED=$LIBSMBSHAREMODES_SHARED_TARGET - LIBSMBSHAREMODES_TARGET=$LIBSMBSHAREMODES_SHARED_TARGET -- { $as_echo "$as_me:$LINENO: result: yes" >&5 -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 - $as_echo "yes" >&6; } - if test x"$USESHARED" != x"true" -o x"$LINK_LIBSMBSHAREMODES" = "xSTATIC" ; then - enable_static=yes -@@ -74359,12 +30550,12 @@ - enable_static=yes - LIBSMBSHAREMODES_TARGET=$LIBSMBSHAREMODES_STATIC_TARGET - LIBSMBSHAREMODES_LIBS=$LIBSMBSHAREMODES_STATIC_TARGET -- { $as_echo "$as_me:$LINENO: result: no shared library support -- will supply static library" >&5 -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no shared library support -- will supply static library" >&5 - $as_echo "no shared library support -- will supply static library" >&6; } - fi - else - enable_static=yes -- { $as_echo "$as_me:$LINENO: result: shared library not selected" >&5 -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: shared library not selected" >&5 - $as_echo "shared library not selected" >&6; } - fi - if test $enable_static = yes; then -@@ -74402,19 +30593,19 @@ - - - --{ $as_echo "$as_me:$LINENO: checking whether to build the libaddns shared library" >&5 -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build the libaddns shared library" >&5 - $as_echo_n "checking whether to build the libaddns shared library... " >&6; } - - - # Check whether --with-libaddns was given. --if test "${with_libaddns+set}" = set; then -+if test "${with_libaddns+set}" = set; then : - withval=$with_libaddns; - case "$withval" in - yes) - build_lib=yes - ;; - *) -- { $as_echo "$as_me:$LINENO: result: yes" >&5 -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 - $as_echo "yes" >&6; } - build_lib=no - ;; -@@ -74423,7 +30614,7 @@ - else - - # if unspecified, default is not to build --{ $as_echo "$as_me:$LINENO: result: yes" >&5 -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 - $as_echo "yes" >&6; } - build_lib=no - -@@ -74439,7 +30630,7 @@ - if eval $BLDSHARED = true; then - LIBADDNS_SHARED=$LIBADDNS_SHARED_TARGET - LIBADDNS_TARGET=$LIBADDNS_SHARED_TARGET -- { $as_echo "$as_me:$LINENO: result: yes" >&5 -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 - $as_echo "yes" >&6; } - if test x"$USESHARED" != x"true" -o x"$LINK_LIBADDNS" = "xSTATIC" ; then - enable_static=yes -@@ -74452,12 +30643,12 @@ - enable_static=yes - LIBADDNS_TARGET=$LIBADDNS_STATIC_TARGET - LIBADDNS_LIBS=$LIBADDNS_STATIC_TARGET -- { $as_echo "$as_me:$LINENO: result: no shared library support -- will supply static library" >&5 -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no shared library support -- will supply static library" >&5 - $as_echo "no shared library support -- will supply static library" >&6; } - fi - else - enable_static=yes -- { $as_echo "$as_me:$LINENO: result: shared library not selected" >&5 -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: shared library not selected" >&5 - $as_echo "shared library not selected" >&6; } - fi - if test $enable_static = yes; then -@@ -74473,26 +30664,22 @@ ################################################# # these tests are taken from the GNU fileutils package @@ -80362,7 +82436,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #if defined(HAVE_UNISTD_H) -@@ -74506,51 +30693,22 @@ +@@ -76998,51 +31779,22 @@ exit (statvfs64 (".", &fsd)); } _ACEOF @@ -80390,13 +82464,14 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - (exit $ac_status); }; }; then +if ac_fn_c_try_run "$LINENO"; then : fu_cv_sys_stat_statvfs64=yes - else +-else - $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 ) -fu_cv_sys_stat_statvfs64=no ++else + fu_cv_sys_stat_statvfs64=no fi -rm -rf conftest.dSYM @@ -80420,7 +82495,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure fi fi -@@ -74563,16 +30721,12 @@ +@@ -77055,16 +31807,12 @@ # is what it gets when this test fails. if test $space = no; then # SVR4 @@ -80440,7 +82515,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #include #include -@@ -74584,47 +30738,20 @@ +@@ -77076,47 +31824,20 @@ return 0; } _ACEOF @@ -80494,7 +82569,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure fi fi -@@ -74632,17 +30759,13 @@ +@@ -77124,17 +31845,13 @@ # smbd/statvfs.c assumes that statvfs.f_fsid is an integer. # This is not the case on ancient Linux systems. @@ -80515,7 +82590,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #include #include -@@ -74654,57 +30777,30 @@ +@@ -77146,57 +31863,30 @@ return 0; } _ACEOF @@ -80580,7 +82655,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #include #include -@@ -74716,56 +30812,29 @@ +@@ -77208,56 +31898,29 @@ return 0; } _ACEOF @@ -80644,7 +82719,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #include #include -@@ -74777,55 +30846,28 @@ +@@ -77269,55 +31932,28 @@ return 0; } _ACEOF @@ -80707,7 +82782,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #include #include -@@ -74837,59 +30879,32 @@ +@@ -77329,59 +31965,32 @@ return 0; } _ACEOF @@ -80775,7 +82850,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #include -@@ -74902,71 +30917,38 @@ +@@ -77394,71 +32003,38 @@ exit (statfs (".", &fsd, sizeof (struct statfs))); } _ACEOF @@ -80857,7 +82932,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #ifdef HAVE_SYS_PARAM_H -@@ -74985,71 +30967,38 @@ +@@ -77477,71 +32053,38 @@ exit (statfs (".", &fsd)); } _ACEOF @@ -80939,7 +83014,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #include #include -@@ -75059,71 +31008,38 @@ +@@ -77551,71 +32094,38 @@ exit (statfs (".", &fsd, sizeof fsd, 0)); } _ACEOF @@ -81021,7 +83096,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #include #ifdef HAVE_SYS_PARAM_H -@@ -75139,71 +31055,38 @@ +@@ -77631,71 +32141,38 @@ exit (statfs (".", &fsd)); } _ACEOF @@ -81103,7 +83178,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #include #ifdef HAVE_SYS_PARAM_H -@@ -75223,52 +31106,23 @@ +@@ -77715,52 +32192,23 @@ exit (statfs (".", &fsd) != 1); } _ACEOF @@ -81162,7 +83237,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure fi fi -@@ -75281,13 +31135,9 @@ +@@ -77773,13 +32221,9 @@ # If we don't have all of these then disable large # file support. # @@ -81178,7 +83253,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #if defined(HAVE_LONGLONG) && (defined(HAVE_OFF64_T) || (defined(SIZEOF_OFF_T) && (SIZEOF_OFF_T == 8))) -@@ -75304,41 +31154,18 @@ +@@ -77796,41 +32240,18 @@ return 0; } _ACEOF @@ -81224,7 +83299,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "$samba_cv_HAVE_EXPLICIT_LARGEFILE_SUPPORT" >&6; } ################################################# -@@ -75348,10 +31175,10 @@ +@@ -77840,10 +32261,10 @@ # Check whether --with-ctdb was given. @@ -81237,8 +83312,8 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "$as_me: WARNING: --with-ctdb called without argument" >&2;} ;; *) -@@ -75365,471 +31192,40 @@ - CPPFLAGS="$CPPFLAGS $CTDB_CPPFLAGS" +@@ -77857,71 +32278,23 @@ + CPPFLAGS="$CPPFLAGS ${SAMBA_CONFIGURE_CPPFLAGS} $CTDB_CPPFLAGS" ctdb_broken="missing or broken headers" - @@ -81317,46 +83392,33 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure +eval as_val=\$$as_ac_Header + if test "x$as_val" = x""yes; then : cat >>confdefs.h <<_ACEOF --#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 --_ACEOF -- --fi -- --done -- -- -- -- { $as_echo "$as_me:$LINENO: checking for CTDB_CONTROL_TRANS2_COMMIT_RETRY declaration" >&5 --$as_echo_n "checking for CTDB_CONTROL_TRANS2_COMMIT_RETRY declaration... " >&6; } --if test "${ac_cv_have_CTDB_CONTROL_TRANS2_COMMIT_RETRY_decl+set}" = set; then -- $as_echo_n "(cached) " >&6 --else -- + #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 + _ACEOF +@@ -77932,17 +32305,13 @@ + + + +- { $as_echo "$as_me:$LINENO: checking for CTDB_CONTROL_TRANS3_COMMIT declaration" >&5 ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for CTDB_CONTROL_TRANS3_COMMIT declaration" >&5 + $as_echo_n "checking for CTDB_CONTROL_TRANS3_COMMIT declaration... " >&6; } +-if test "${ac_cv_have_CTDB_CONTROL_TRANS3_COMMIT_decl+set}" = set; then ++if test "${ac_cv_have_CTDB_CONTROL_TRANS3_COMMIT_decl+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 "confdefs.h" --#define NO_CONFIG_H --#include "replace.h" --#include "system/wait.h" --#include "system/network.h" --#include --#include --#include --#include -- --int --main () --{ --int i = (int)CTDB_CONTROL_TRANS2_COMMIT_RETRY -- ; -- return 0; --} --_ACEOF ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + + #include "confdefs.h" +@@ -77963,41 +32332,18 @@ + return 0; + } + _ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in @@ -81375,33 +83437,34 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then -- ac_cv_have_CTDB_CONTROL_TRANS2_COMMIT_RETRY_decl=yes --else ++if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_have_CTDB_CONTROL_TRANS3_COMMIT_decl=yes + else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -- ac_cv_have_CTDB_CONTROL_TRANS2_COMMIT_RETRY_decl=no --fi -- --rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext --fi --{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_CTDB_CONTROL_TRANS2_COMMIT_RETRY_decl" >&5 --$as_echo "$ac_cv_have_CTDB_CONTROL_TRANS2_COMMIT_RETRY_decl" >&6; } -- if test x"$ac_cv_have_CTDB_CONTROL_TRANS2_COMMIT_RETRY_decl" = x"yes"; then +- ac_cv_have_CTDB_CONTROL_TRANS3_COMMIT_decl=no ++ ac_cv_have_CTDB_CONTROL_TRANS3_COMMIT_decl=no + fi - + rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + fi +-{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_CTDB_CONTROL_TRANS3_COMMIT_decl" >&5 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_have_CTDB_CONTROL_TRANS3_COMMIT_decl" >&5 + $as_echo "$ac_cv_have_CTDB_CONTROL_TRANS3_COMMIT_decl" >&6; } + if test x"$ac_cv_have_CTDB_CONTROL_TRANS3_COMMIT_decl" = x"yes"; then + -cat >>confdefs.h <<\_ACEOF --#define HAVE_CTDB_CONTROL_TRANS2_COMMIT_RETRY_DECL 1 +-#define HAVE_CTDB_CONTROL_TRANS3_COMMIT_DECL 1 -_ACEOF -- -- fi -- --if test x"$ac_cv_have_CTDB_CONTROL_TRANS2_COMMIT_RETRY_decl" = x"yes"; then -- ctdb_broken=no --else -- ctdb_broken="missing transaction support" --fi -- --# in ctdb 1.0.57 ctdb_control_tcp was temparary renamed to ctdb_tcp_client ++$as_echo "#define HAVE_CTDB_CONTROL_TRANS3_COMMIT_DECL 1" >>confdefs.h + + fi + +@@ -78008,255 +32354,43 @@ + fi + + # in ctdb 1.0.57 ctdb_control_tcp was temparary renamed to ctdb_tcp_client -{ $as_echo "$as_me:$LINENO: checking for struct ctdb_tcp_client" >&5 -$as_echo_n "checking for struct ctdb_tcp_client... " >&6; } -if test "${ac_cv_type_struct_ctdb_tcp_client+set}" = set; then @@ -81461,15 +83524,20 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -/* end confdefs.h. */ - -#include "confdefs.h" --#define NO_CONFIG_H ++ac_fn_c_check_type "$LINENO" "struct ctdb_tcp_client" "ac_cv_type_struct_ctdb_tcp_client" " ++#include \"confdefs.h\" + #define NO_CONFIG_H -#include "replace.h" -#include "system/wait.h" -#include "system/network.h" --#include --#include --#include --#include -- ++#include \"replace.h\" ++#include \"system/wait.h\" ++#include \"system/network.h\" + #include + #include + #include + #include + - -int -main () @@ -81519,16 +83587,19 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_struct_ctdb_tcp_client" >&5 -$as_echo "$ac_cv_type_struct_ctdb_tcp_client" >&6; } -if test "x$ac_cv_type_struct_ctdb_tcp_client" = x""yes; then -- -- ++" ++if test "x$ac_cv_type_struct_ctdb_tcp_client" = x""yes; then : + + -cat >>confdefs.h <<\_ACEOF -#define ctdb_control_tcp ctdb_tcp_client -_ACEOF -- -- --fi -- -- ++$as_echo "#define ctdb_control_tcp ctdb_tcp_client" >>confdefs.h + + + fi + + -{ $as_echo "$as_me:$LINENO: checking for struct ctdb_control_tcp" >&5 -$as_echo_n "checking for struct ctdb_control_tcp... " >&6; } -if test "${ac_cv_type_struct_ctdb_control_tcp+set}" = set; then @@ -81588,15 +83659,20 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -/* end confdefs.h. */ - -#include "confdefs.h" --#define NO_CONFIG_H ++ac_fn_c_check_type "$LINENO" "struct ctdb_control_tcp" "ac_cv_type_struct_ctdb_control_tcp" " ++#include \"confdefs.h\" + #define NO_CONFIG_H -#include "replace.h" -#include "system/wait.h" -#include "system/network.h" --#include --#include --#include --#include -- ++#include \"replace.h\" ++#include \"system/wait.h\" ++#include \"system/network.h\" + #include + #include + #include + #include + - -int -main () @@ -81646,20 +83722,21 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_struct_ctdb_control_tcp" >&5 -$as_echo "$ac_cv_type_struct_ctdb_control_tcp" >&6; } -if test "x$ac_cv_type_struct_ctdb_control_tcp" = x""yes; then -- -- ++" ++if test "x$ac_cv_type_struct_ctdb_control_tcp" = x""yes; then : + + -cat >>confdefs.h <<\_ACEOF -#define HAVE_STRUCT_CTDB_CONTROL_TCP 1 -_ACEOF -- -- --else -- -- ctdb_broken="missing struct ctdb_control_tcp" -- --fi -- -- ++$as_echo "#define HAVE_STRUCT_CTDB_CONTROL_TCP 1" >>confdefs.h + + + else +@@ -78266,139 +32400,33 @@ + fi + + -{ $as_echo "$as_me:$LINENO: checking for struct ctdb_control_tcp_addr" >&5 -$as_echo_n "checking for struct ctdb_control_tcp_addr... " >&6; } -if test "${ac_cv_type_struct_ctdb_control_tcp_addr+set}" = set; then @@ -81713,42 +83790,36 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - } && test -s conftest.$ac_objext; then - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 - _ACEOF +-_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -+ -+fi -+ -+done -+ -+ -+ -+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for CTDB_CONTROL_TRANS2_COMMIT_RETRY declaration" >&5 -+$as_echo_n "checking for CTDB_CONTROL_TRANS2_COMMIT_RETRY declaration... " >&6; } -+if test "${ac_cv_have_CTDB_CONTROL_TRANS2_COMMIT_RETRY_decl+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ -+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ - - #include "confdefs.h" -@@ -75842,71 +31238,109 @@ +-/* end confdefs.h. */ +- +-#include "confdefs.h" ++ac_fn_c_check_type "$LINENO" "struct ctdb_control_tcp_addr" "ac_cv_type_struct_ctdb_control_tcp_addr" " ++#include \"confdefs.h\" + #define NO_CONFIG_H +-#include "replace.h" +-#include "system/wait.h" +-#include "system/network.h" ++#include \"replace.h\" ++#include \"system/wait.h\" ++#include \"system/network.h\" + #include + #include #include #include - - int - main () - { +-int +-main () +-{ -if (sizeof ((struct ctdb_control_tcp_addr))) - return 0; -+int i = (int)CTDB_CONTROL_TRANS2_COMMIT_RETRY - ; - return 0; - } - _ACEOF +- ; +- return 0; +-} +-_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in @@ -81768,103 +83839,33 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - : -+if ac_fn_c_try_compile "$LINENO"; then : -+ ac_cv_have_CTDB_CONTROL_TRANS2_COMMIT_RETRY_decl=yes - else +-else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_type_struct_ctdb_control_tcp_addr=yes -+ ac_cv_have_CTDB_CONTROL_TRANS2_COMMIT_RETRY_decl=no - fi +-fi - - rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -+fi -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_have_CTDB_CONTROL_TRANS2_COMMIT_RETRY_decl" >&5 -+$as_echo "$ac_cv_have_CTDB_CONTROL_TRANS2_COMMIT_RETRY_decl" >&6; } -+ if test x"$ac_cv_have_CTDB_CONTROL_TRANS2_COMMIT_RETRY_decl" = x"yes"; then -+ -+$as_echo "#define HAVE_CTDB_CONTROL_TRANS2_COMMIT_RETRY_DECL 1" >>confdefs.h -+ -+ fi -+ -+if test x"$ac_cv_have_CTDB_CONTROL_TRANS2_COMMIT_RETRY_decl" = x"yes"; then -+ ctdb_broken=no - else +-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +-else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 -+ ctdb_broken="missing transaction support" -+fi -+ -+# in ctdb 1.0.57 ctdb_control_tcp was temparary renamed to ctdb_tcp_client -+ac_fn_c_check_type "$LINENO" "struct ctdb_tcp_client" "ac_cv_type_struct_ctdb_tcp_client" " -+#include \"confdefs.h\" -+#define NO_CONFIG_H -+#include \"replace.h\" -+#include \"system/wait.h\" -+#include \"system/network.h\" -+#include -+#include -+#include -+#include -+ -+" -+if test "x$ac_cv_type_struct_ctdb_tcp_client" = x""yes; then : -+ -+ -+$as_echo "#define ctdb_control_tcp ctdb_tcp_client" >>confdefs.h - - - fi - +- +- +-fi +- -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -+ -+ac_fn_c_check_type "$LINENO" "struct ctdb_control_tcp" "ac_cv_type_struct_ctdb_control_tcp" " -+#include \"confdefs.h\" -+#define NO_CONFIG_H -+#include \"replace.h\" -+#include \"system/wait.h\" -+#include \"system/network.h\" -+#include -+#include -+#include -+#include -+ -+" -+if test "x$ac_cv_type_struct_ctdb_control_tcp" = x""yes; then : -+ -+ -+$as_echo "#define HAVE_STRUCT_CTDB_CONTROL_TCP 1" >>confdefs.h -+ -+ -+else -+ -+ ctdb_broken="missing struct ctdb_control_tcp" -+ - fi +-fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_struct_ctdb_control_tcp_addr" >&5 -$as_echo "$ac_cv_type_struct_ctdb_control_tcp_addr" >&6; } -if test "x$ac_cv_type_struct_ctdb_control_tcp_addr" = x""yes; then ++" ++if test "x$ac_cv_type_struct_ctdb_control_tcp_addr" = x""yes; then : -cat >>confdefs.h <<\_ACEOF -#define HAVE_STRUCT_CTDB_CONTROL_TCP_ADDR 1 -_ACEOF -+ac_fn_c_check_type "$LINENO" "struct ctdb_control_tcp_addr" "ac_cv_type_struct_ctdb_control_tcp_addr" " -+#include \"confdefs.h\" -+#define NO_CONFIG_H -+#include \"replace.h\" -+#include \"system/wait.h\" -+#include \"system/network.h\" -+#include -+#include -+#include -+#include -+ -+" -+if test "x$ac_cv_type_struct_ctdb_control_tcp_addr" = x""yes; then : -+ -+ +$as_echo "#define HAVE_STRUCT_CTDB_CONTROL_TCP_ADDR 1" >>confdefs.h @@ -81882,7 +83883,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure withval=$with_cluster_support; fi -@@ -75917,44 +31351,38 @@ +@@ -78409,44 +32437,38 @@ if test x"$ac_cv_header_ctdb_private_h" != x"yes"; then if test "x$with_cluster_support" = "xyes"; then @@ -81934,7 +83935,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure withval=$with_acl_support; case "$withval" in yes|no) with_acl_support="$withval" -@@ -75967,105 +31395,85 @@ +@@ -78459,105 +32481,85 @@ with_acl_support="auto" fi @@ -82061,7 +84062,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. -@@ -76083,60 +31491,31 @@ +@@ -78575,60 +32577,31 @@ return 0; } _ACEOF @@ -82131,7 +84132,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. -@@ -76154,61 +31533,32 @@ +@@ -78646,61 +32619,32 @@ return 0; } _ACEOF @@ -82202,7 +84203,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #include -@@ -76227,64 +31577,33 @@ +@@ -78719,64 +32663,33 @@ return 0; } _ACEOF @@ -82277,7 +84278,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #include -@@ -76302,58 +31621,29 @@ +@@ -78794,58 +32707,29 @@ return 0; } _ACEOF @@ -82344,7 +84345,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure fi ;; -@@ -76365,31 +31655,27 @@ +@@ -78857,31 +32741,27 @@ ################################################# # check for AIO support @@ -82382,7 +84383,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. -@@ -76407,58 +31693,29 @@ +@@ -78899,58 +32779,29 @@ return 0; } _ACEOF @@ -82450,7 +84451,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. -@@ -76476,59 +31733,30 @@ +@@ -78968,59 +32819,30 @@ return 0; } _ACEOF @@ -82519,7 +84520,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #include #include -@@ -76540,55 +31768,26 @@ +@@ -79032,55 +32854,26 @@ return 0; } _ACEOF @@ -82583,7 +84584,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #include #include -@@ -76600,716 +31799,317 @@ +@@ -79092,716 +32885,317 @@ return 0; } _ACEOF @@ -83438,7 +85439,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "no" >&6; } fi -@@ -77326,30 +32126,26 @@ +@@ -79818,30 +33212,26 @@ # check for sendfile support with_sendfile_support=yes @@ -83475,7 +85476,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #include int -@@ -77365,53 +32161,24 @@ +@@ -79857,53 +33247,24 @@ return 0; } _ACEOF @@ -83537,7 +85538,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #include int -@@ -77427,54 +32194,25 @@ +@@ -79919,54 +33280,25 @@ return 0; } _ACEOF @@ -83600,7 +85601,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ \ #if defined(_FILE_OFFSET_BITS) && (_FILE_OFFSET_BITS == 64) -@@ -77494,103 +32232,58 @@ +@@ -79986,103 +33318,58 @@ return 0; } _ACEOF @@ -83721,19 +85722,10 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ \ #include -@@ -77608,85 +32301,50 @@ - hdr.headers = &hdtrl; - hdr.hdr_cnt = 1; - hdr.trailers = NULL; -- hdr.trl_cnt = 0; -- hdtrl.iov_base = NULL; -- hdtrl.iov_len = 0; -- ret = sendfile(fromfd, tofd, offset, total, &hdr, &nwritten, 0); -- -- ; -- return 0; --} --_ACEOF +@@ -80109,76 +33396,41 @@ + return 0; + } + _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in @@ -83755,15 +85747,6 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - test "$cross_compiling" = yes || - $as_test_x conftest$ac_exeext - }; then -+ hdr.trl_cnt = 0; -+ hdtrl.iov_base = NULL; -+ hdtrl.iov_len = 0; -+ ret = sendfile(fromfd, tofd, offset, total, &hdr, &nwritten, 0); -+ -+ ; -+ return 0; -+} -+_ACEOF +if ac_fn_c_try_link "$LINENO"; then : samba_cv_HAVE_SENDFILE=yes else @@ -83828,7 +85811,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ \ #include -@@ -77710,73 +32368,38 @@ +@@ -80202,73 +33454,38 @@ return 0; } _ACEOF @@ -83914,7 +85897,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ \ #include -@@ -77800,77 +32423,41 @@ +@@ -80292,77 +33509,41 @@ return 0; } _ACEOF @@ -84004,7 +85987,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. -@@ -77888,43 +32475,18 @@ +@@ -80380,43 +33561,18 @@ return 0; } _ACEOF @@ -84054,7 +86037,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure cat >>confdefs.h <<_ACEOF #define HAVE_LIBSENDFILE 1 _ACEOF -@@ -77933,17 +32495,13 @@ +@@ -80425,17 +33581,13 @@ fi @@ -84075,7 +86058,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ \ #include -@@ -77974,74 +32532,39 @@ +@@ -80466,74 +33618,39 @@ return 0; } _ACEOF @@ -84162,7 +86145,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ \ #include -@@ -78072,75 +32595,40 @@ +@@ -80564,75 +33681,40 @@ return 0; } _ACEOF @@ -84250,7 +86233,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ \ #include -@@ -78168,59 +32656,28 @@ +@@ -80660,59 +33742,28 @@ return 0; } _ACEOF @@ -84319,7 +86302,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "no" >&6; }; fi ;; -@@ -78229,12 +32686,12 @@ +@@ -80721,12 +33772,12 @@ esac ;; *) @@ -84334,7 +86317,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "yes" >&6; } fi -@@ -78243,17 +32700,13 @@ +@@ -80735,17 +33786,13 @@ ############################################ # See if we have the Linux readahead syscall. @@ -84355,7 +86338,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #if defined(HAVE_UNISTD_H) -@@ -78268,62 +32721,31 @@ +@@ -80760,62 +33807,31 @@ return 0; } _ACEOF @@ -84427,7 +86410,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #include int -@@ -78334,41 +32756,18 @@ +@@ -80826,41 +33842,18 @@ return 0; } _ACEOF @@ -84473,7 +86456,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure fi -@@ -78376,17 +32775,13 @@ +@@ -80868,17 +33861,13 @@ ############################################ # See if we have the posix_fadvise syscall. @@ -84494,7 +86477,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #if defined(HAVE_UNISTD_H) -@@ -78401,47 +32796,20 @@ +@@ -80893,47 +33882,20 @@ return 0; } _ACEOF @@ -84521,11 +86504,12 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - }; then +if ac_fn_c_try_link "$LINENO"; then : samba_cv_HAVE_POSIX_FADVISE=yes - else +-else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - samba_cv_HAVE_POSIX_FADVISE=no ++else + samba_cv_HAVE_POSIX_FADVISE=no fi - @@ -84548,7 +86532,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure fi -@@ -78450,17 +32818,13 @@ +@@ -80942,17 +33904,13 @@ case "$host_os" in *linux*) @@ -84569,7 +86553,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #if defined(HAVE_UNISTD_H) -@@ -78475,40 +32839,15 @@ +@@ -80967,40 +33925,15 @@ return 0; } _ACEOF @@ -84615,7 +86599,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "$samba_cv_HAVE_LINUX_SPLICE" >&6; } ;; *) -@@ -78518,24 +32857,18 @@ +@@ -81010,24 +33943,18 @@ if test x"$samba_cv_HAVE_LINUX_SPLICE" = x"yes"; then @@ -84644,7 +86628,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #include int -@@ -78546,41 +32879,18 @@ +@@ -81038,41 +33965,18 @@ return 0; } _ACEOF @@ -84690,7 +86674,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure fi -@@ -78588,68 +32898,35 @@ +@@ -81080,68 +33984,35 @@ ############################################ # See if we have the a broken readlink syscall. @@ -84769,7 +86753,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure fi -@@ -78657,7 +32934,7 @@ +@@ -81149,7 +34020,7 @@ # Check whether winbind is supported on this platform. If so we need to # build and install client programs, sbin programs and shared libraries @@ -84778,7 +86762,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo_n "checking whether to build winbind... " >&6; } # Initially, the value of $host_os decides whether winbind is supported -@@ -78669,7 +32946,7 @@ +@@ -81161,7 +34032,7 @@ # We define this here so --with-winbind can override it. # Check whether --with-wbclient was given. @@ -84787,7 +86771,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure withval=$with_wbclient; case "$withval" in no) -@@ -78770,7 +33047,7 @@ +@@ -81259,7 +34130,7 @@ # Check whether --with-winbind was given. @@ -84796,7 +86780,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure withval=$with_winbind; case "$withval" in yes) -@@ -78801,18 +33078,14 @@ +@@ -81290,18 +34161,14 @@ WINBIND_WINS_NSS="" fi if test x"$HAVE_WBCLIENT" = x"yes"; then @@ -84818,7 +86802,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. -@@ -78830,57 +33103,28 @@ +@@ -81319,57 +34186,28 @@ return 0; } _ACEOF @@ -84885,7 +86869,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure EXTRA_BIN_PROGS="$EXTRA_BIN_PROGS bin/wbinfo\$(EXEEXT)" else -@@ -78911,12 +33155,10 @@ +@@ -81398,12 +34236,10 @@ fi if test x"$HAVE_WINBIND" = x"yes"; then @@ -84900,7 +86884,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure EXTRA_BIN_PROGS="$EXTRA_BIN_PROGS bin/wbinfo\$(EXEEXT)" -@@ -78927,22 +33169,18 @@ +@@ -81414,7 +34250,7 @@ UNINSTALL_PAM_MODULES="uninstallpammodules" fi else @@ -84909,81 +86893,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "no$winbind_no_reason" >&6; } fi --{ $as_echo "$as_me:$LINENO: checking for pthread_mutex_lock in -lpthread" >&5 -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_mutex_lock in -lpthread" >&5 - $as_echo_n "checking for pthread_mutex_lock in -lpthread... " >&6; } --if test "${ac_cv_lib_pthread_pthread_mutex_lock+set}" = set; then -+if test "${ac_cv_lib_pthread_pthread_mutex_lock+set}" = set; then : - $as_echo_n "(cached) " >&6 - else - ac_check_lib_save_LIBS=$LIBS - LIBS="-lpthread $LIBS" --cat >conftest.$ac_ext <<_ACEOF --/* confdefs.h. */ --_ACEOF --cat confdefs.h >>conftest.$ac_ext --cat >>conftest.$ac_ext <<_ACEOF -+cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ - - /* Override any GCC internal prototype to avoid an error. -@@ -78960,48 +33198,21 @@ - return 0; - } - _ACEOF --rm -f conftest.$ac_objext conftest$ac_exeext --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 -- $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 -+if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_pthread_pthread_mutex_lock=yes - else -- $as_echo "$as_me: failed program was:" >&5 --sed 's/^/| /' conftest.$ac_ext >&5 -- -- ac_cv_lib_pthread_pthread_mutex_lock=no -+ ac_cv_lib_pthread_pthread_mutex_lock=no - fi -- --rm -rf conftest.dSYM --rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ -- conftest$ac_exeext conftest.$ac_ext -+rm -f core conftest.err conftest.$ac_objext \ -+ conftest$ac_exeext conftest.$ac_ext - LIBS=$ac_check_lib_save_LIBS - fi --{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_pthread_pthread_mutex_lock" >&5 -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pthread_pthread_mutex_lock" >&5 - $as_echo "$ac_cv_lib_pthread_pthread_mutex_lock" >&6; } --if test "x$ac_cv_lib_pthread_pthread_mutex_lock" = x""yes; then -+if test "x$ac_cv_lib_pthread_pthread_mutex_lock" = x""yes; then : - WINBIND_NSS_PTHREAD="-lpthread" - --cat >>confdefs.h <<\_ACEOF --#define HAVE_PTHREAD 1 --_ACEOF -+$as_echo "#define HAVE_PTHREAD 1" >>confdefs.h - - fi - -@@ -79018,533 +33229,52 @@ +@@ -81427,108 +34263,11 @@ # Solaris 10 does have new member in nss_XbyY_key @@ -85085,17 +86995,21 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -{ $as_echo "$as_me:$LINENO: result: $ac_cv_member_union_nss_XbyY_key_ipnode_af_family" >&5 -$as_echo "$ac_cv_member_union_nss_XbyY_key_ipnode_af_family" >&6; } -if test "x$ac_cv_member_union_nss_XbyY_key_ipnode_af_family" = x""yes; then -- ++ac_fn_c_check_member "$LINENO" "union nss_XbyY_key" "ipnode.af_family" "ac_cv_member_union_nss_XbyY_key_ipnode_af_family" "#include ++" ++if test "x$ac_cv_member_union_nss_XbyY_key_ipnode_af_family" = x""yes; then : + -cat >>confdefs.h <<\_ACEOF -#define HAVE_NSS_XBYY_KEY_IPNODE 1 -_ACEOF -- --fi -- -- --# Solaris has some extra fields in struct passwd that need to be --# initialised otherwise nscd crashes. -- ++$as_echo "#define HAVE_NSS_XBYY_KEY_IPNODE 1" >>confdefs.h + + fi + +@@ -81536,318 +34275,29 @@ + # Solaris has some extra fields in struct passwd that need to be + # initialised otherwise nscd crashes. + -{ $as_echo "$as_me:$LINENO: checking for struct passwd.pw_comment" >&5 -$as_echo_n "checking for struct passwd.pw_comment... " >&6; } -if test "${ac_cv_member_struct_passwd_pw_comment+set}" = set; then @@ -85255,7 +87169,10 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -- ++ac_fn_c_check_member "$LINENO" "struct passwd" "pw_comment" "ac_cv_member_struct_passwd_pw_comment" "#include ++" ++if test "x$ac_cv_member_struct_passwd_pw_comment" = x""yes; then : + -int -main () -{ @@ -85288,28 +87205,33 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 -- ++$as_echo "#define HAVE_PASSWD_PW_COMMENT 1" >>confdefs.h + - ac_cv_member_struct_passwd_pw_age=no --fi -- + fi + -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -- + -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_member_struct_passwd_pw_age" >&5 -$as_echo "$ac_cv_member_struct_passwd_pw_age" >&6; } -if test "x$ac_cv_member_struct_passwd_pw_age" = x""yes; then -- ++ac_fn_c_check_member "$LINENO" "struct passwd" "pw_age" "ac_cv_member_struct_passwd_pw_age" "#include ++" ++if test "x$ac_cv_member_struct_passwd_pw_age" = x""yes; then : + -cat >>confdefs.h <<\_ACEOF -#define HAVE_PASSWD_PW_AGE 1 -_ACEOF -- --fi -- -- --# AIX 4.3.x and 5.1 do not have as many members in --# struct secmethod_table as AIX 5.2 ++$as_echo "#define HAVE_PASSWD_PW_AGE 1" >>confdefs.h + + fi + + + # AIX 4.3.x and 5.1 do not have as many members in + # struct secmethod_table as AIX 5.2 -{ $as_echo "$as_me:$LINENO: checking for struct secmethod_table.method_attrlist" >&5 -$as_echo_n "checking for struct secmethod_table.method_attrlist... " >&6; } -if test "${ac_cv_member_struct_secmethod_table_method_attrlist+set}" = set; then @@ -85408,16 +87330,15 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -{ $as_echo "$as_me:$LINENO: result: $ac_cv_member_struct_secmethod_table_method_attrlist" >&5 -$as_echo "$ac_cv_member_struct_secmethod_table_method_attrlist" >&6; } -if test "x$ac_cv_member_struct_secmethod_table_method_attrlist" = x""yes; then -- --cat >>confdefs.h <<_ACEOF --#define HAVE_STRUCT_SECMETHOD_TABLE_METHOD_ATTRLIST 1 --_ACEOF -- -- --fi -+ac_fn_c_check_member "$LINENO" "union nss_XbyY_key" "ipnode.af_family" "ac_cv_member_union_nss_XbyY_key_ipnode_af_family" "#include ++ac_fn_c_check_member "$LINENO" "struct secmethod_table" "method_attrlist" "ac_cv_member_struct_secmethod_table_method_attrlist" "#include +" -+if test "x$ac_cv_member_union_nss_XbyY_key_ipnode_af_family" = x""yes; then : ++if test "x$ac_cv_member_struct_secmethod_table_method_attrlist" = x""yes; then : + + cat >>confdefs.h <<_ACEOF + #define HAVE_STRUCT_SECMETHOD_TABLE_METHOD_ATTRLIST 1 +@@ -81856,104 +34306,9 @@ + + fi -{ $as_echo "$as_me:$LINENO: checking for struct secmethod_table.method_version" >&5 -$as_echo_n "checking for struct secmethod_table.method_version... " >&6; } @@ -85431,8 +87352,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -+$as_echo "#define HAVE_NSS_XBYY_KEY_IPNODE 1" >>confdefs.h - +- -int -main () -{ @@ -85465,8 +87385,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 -+fi - +- - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF @@ -85474,7 +87393,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include - +- -int -main () -{ @@ -85507,53 +87426,25 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 -+# Solaris has some extra fields in struct passwd that need to be -+# initialised otherwise nscd crashes. -+ -+ac_fn_c_check_member "$LINENO" "struct passwd" "pw_comment" "ac_cv_member_struct_passwd_pw_comment" "#include -+" -+if test "x$ac_cv_member_struct_passwd_pw_comment" = x""yes; then : -+ -+$as_echo "#define HAVE_PASSWD_PW_COMMENT 1" >>confdefs.h - +- - ac_cv_member_struct_secmethod_table_method_version=no - fi - +-fi +- -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -+ -+ac_fn_c_check_member "$LINENO" "struct passwd" "pw_age" "ac_cv_member_struct_passwd_pw_age" "#include -+" -+if test "x$ac_cv_member_struct_passwd_pw_age" = x""yes; then : -+ -+$as_echo "#define HAVE_PASSWD_PW_AGE 1" >>confdefs.h -+ - fi - +-fi +- -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -+ -+# AIX 4.3.x and 5.1 do not have as many members in -+# struct secmethod_table as AIX 5.2 -+ac_fn_c_check_member "$LINENO" "struct secmethod_table" "method_attrlist" "ac_cv_member_struct_secmethod_table_method_attrlist" "#include -+" -+if test "x$ac_cv_member_struct_secmethod_table_method_attrlist" = x""yes; then : -+ -+cat >>confdefs.h <<_ACEOF -+#define HAVE_STRUCT_SECMETHOD_TABLE_METHOD_ATTRLIST 1 -+_ACEOF -+ -+ - fi +-fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_member_struct_secmethod_table_method_version" >&5 -$as_echo "$ac_cv_member_struct_secmethod_table_method_version" >&6; } -if test "x$ac_cv_member_struct_secmethod_table_method_version" = x""yes; then -+ +ac_fn_c_check_member "$LINENO" "struct secmethod_table" "method_version" "ac_cv_member_struct_secmethod_table_method_version" "#include +" +if test "x$ac_cv_member_struct_secmethod_table_method_version" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STRUCT_SECMETHOD_TABLE_METHOD_VERSION 1 -@@ -79554,17 +33284,13 @@ +@@ -81963,17 +34318,13 @@ fi @@ -85574,7 +87465,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #include #include -@@ -79579,41 +33305,18 @@ +@@ -81988,41 +34339,18 @@ return 0; } _ACEOF @@ -85620,7 +87511,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure fi -@@ -79623,7 +33326,7 @@ +@@ -82032,7 +34360,7 @@ # Check whether --with-included-popt was given. @@ -85629,7 +87520,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure withval=$with_included_popt; case "$withval" in yes) -@@ -79636,18 +33339,14 @@ +@@ -82045,18 +34373,14 @@ fi if test x"$INCLUDED_POPT" != x"yes"; then @@ -85651,7 +87542,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. -@@ -79665,43 +33364,18 @@ +@@ -82074,43 +34398,18 @@ return 0; } _ACEOF @@ -85701,7 +87592,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure INCLUDED_POPT=no else INCLUDED_POPT=yes -@@ -79709,16 +33383,16 @@ +@@ -82118,16 +34417,16 @@ fi @@ -85721,7 +87612,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "no" >&6; } BUILD_POPT="" POPTLIBS="-lpopt" -@@ -79731,7 +33405,7 @@ +@@ -82140,7 +34439,7 @@ # Check if user wants DNS service discovery support # Check whether --enable-dnssd was given. @@ -85730,7 +87621,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure enableval=$enable_dnssd; fi -@@ -79740,151 +33414,12 @@ +@@ -82149,151 +34448,12 @@ if test x"$enable_dnssd" = x"yes"; then have_dnssd_support=yes @@ -85887,7 +87778,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure _ACEOF fi -@@ -79897,102 +33432,12 @@ +@@ -82306,102 +34466,12 @@ # On Darwin the DNSSD API is in libc, but on other platforms it's # probably in -ldns_sd @@ -85995,7 +87886,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure _ACEOF fi -@@ -80000,23 +33445,17 @@ +@@ -82409,23 +34479,17 @@ @@ -86022,10 +87913,15 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. -@@ -80034,54 +33473,28 @@ - return 0; - } - _ACEOF +@@ -82438,59 +34502,33 @@ + int + main () + { +-return DNSServiceRegister (); +- ; +- return 0; +-} +-_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in @@ -86047,6 +87943,11 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - test "$cross_compiling" = yes || - $as_test_x conftest$ac_exeext - }; then ++return DNSServiceRegister (); ++ ; ++ return 0; ++} ++_ACEOF +if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_ext_dns_sd_DNSServiceRegister=yes; ac_cv_lib_ext_dns_sd=yes @@ -86084,7 +87985,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure cat >>confdefs.h <<_ACEOF #define HAVE_LIBDNS_SD 1 _ACEOF -@@ -80096,7 +33509,6 @@ +@@ -82505,7 +34543,6 @@ fi @@ -86092,7 +87993,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure if test x"$ac_cv_func_DNSServiceRegister" != x"yes" -a \ x"$ac_cv_lib_ext_dns_sd_DNSServiceRegister" != x"yes"; then have_dnssd_support=no -@@ -80104,15 +33516,11 @@ +@@ -82513,15 +34550,11 @@ if test x"$have_dnssd_support" = x"yes"; then @@ -86110,7 +88011,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure fi fi -@@ -80122,7 +33530,7 @@ +@@ -82531,7 +34564,7 @@ # Check if user wants avahi support # Check whether --enable-avahi was given. @@ -86119,7 +88020,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure enableval=$enable_avahi; fi -@@ -80130,151 +33538,12 @@ +@@ -82539,151 +34572,12 @@ if test x"$enable_avahi" != x"no"; then have_avahi_support=yes @@ -86276,7 +88177,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure _ACEOF fi -@@ -80285,151 +33554,12 @@ +@@ -82694,151 +34588,12 @@ have_avahi_support=no fi @@ -86433,7 +88334,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure _ACEOF fi -@@ -80441,18 +33571,14 @@ +@@ -82850,18 +34605,14 @@ fi save_LIBS="$LIBS" @@ -86455,7 +88356,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. -@@ -80470,58 +33596,29 @@ +@@ -82879,58 +34630,29 @@ return 0; } _ACEOF @@ -86523,7 +88424,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. -@@ -80539,43 +33636,18 @@ +@@ -82948,43 +34670,18 @@ return 0; } _ACEOF @@ -86573,7 +88474,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure have_avahi_strerror=yes fi -@@ -80590,17 +33662,13 @@ +@@ -82999,17 +34696,13 @@ AVAHI_LIBS="-lavahi-client -lavahi-common" @@ -86593,7 +88494,586 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure fi fi fi -@@ -80610,7 +33678,7 @@ +@@ -83024,18 +34717,14 @@ + # If it's error, then the user didn't + # define it. + if test "x$PTHREAD_LDFLAGS" = xerror; then +- { $as_echo "$as_me:$LINENO: checking for pthread_attr_init in -lpthread" >&5 ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_attr_init in -lpthread" >&5 + $as_echo_n "checking for pthread_attr_init in -lpthread... " >&6; } +-if test "${ac_cv_lib_pthread_pthread_attr_init+set}" = set; then ++if test "${ac_cv_lib_pthread_pthread_attr_init+set}" = set; then : + $as_echo_n "(cached) " >&6 + else + ac_check_lib_save_LIBS=$LIBS + LIBS="-lpthread $LIBS" +-cat >conftest.$ac_ext <<_ACEOF +-/* confdefs.h. */ +-_ACEOF +-cat confdefs.h >>conftest.$ac_ext +-cat >>conftest.$ac_ext <<_ACEOF ++cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + + /* Override any GCC internal prototype to avoid an error. +@@ -83053,43 +34742,18 @@ + return 0; + } + _ACEOF +-rm -f conftest.$ac_objext conftest$ac_exeext +-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 +- $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 ++if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_pthread_pthread_attr_init=yes + else +- $as_echo "$as_me: failed program was:" >&5 +-sed 's/^/| /' conftest.$ac_ext >&5 +- +- ac_cv_lib_pthread_pthread_attr_init=no ++ ac_cv_lib_pthread_pthread_attr_init=no + fi +- +-rm -rf conftest.dSYM +-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ +- conftest$ac_exeext conftest.$ac_ext ++rm -f core conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + LIBS=$ac_check_lib_save_LIBS + fi +-{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_pthread_pthread_attr_init" >&5 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pthread_pthread_attr_init" >&5 + $as_echo "$ac_cv_lib_pthread_pthread_attr_init" >&6; } +-if test "x$ac_cv_lib_pthread_pthread_attr_init" = x""yes; then ++if test "x$ac_cv_lib_pthread_pthread_attr_init" = x""yes; then : + + PTHREAD_CFLAGS="-D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS" + PTHREAD_LDFLAGS="-lpthread" +@@ -83098,18 +34762,14 @@ + fi + + if test "x$PTHREAD_LDFLAGS" = xerror; then +- { $as_echo "$as_me:$LINENO: checking for pthread_attr_init in -lpthreads" >&5 ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_attr_init in -lpthreads" >&5 + $as_echo_n "checking for pthread_attr_init in -lpthreads... " >&6; } +-if test "${ac_cv_lib_pthreads_pthread_attr_init+set}" = set; then ++if test "${ac_cv_lib_pthreads_pthread_attr_init+set}" = set; then : + $as_echo_n "(cached) " >&6 + else + ac_check_lib_save_LIBS=$LIBS + LIBS="-lpthreads $LIBS" +-cat >conftest.$ac_ext <<_ACEOF +-/* confdefs.h. */ +-_ACEOF +-cat confdefs.h >>conftest.$ac_ext +-cat >>conftest.$ac_ext <<_ACEOF ++cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + + /* Override any GCC internal prototype to avoid an error. +@@ -83127,43 +34787,18 @@ + return 0; + } + _ACEOF +-rm -f conftest.$ac_objext conftest$ac_exeext +-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 +- $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 ++if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_pthreads_pthread_attr_init=yes + else +- $as_echo "$as_me: failed program was:" >&5 +-sed 's/^/| /' conftest.$ac_ext >&5 +- +- ac_cv_lib_pthreads_pthread_attr_init=no ++ ac_cv_lib_pthreads_pthread_attr_init=no + fi +- +-rm -rf conftest.dSYM +-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ +- conftest$ac_exeext conftest.$ac_ext ++rm -f core conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + LIBS=$ac_check_lib_save_LIBS + fi +-{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_pthreads_pthread_attr_init" >&5 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pthreads_pthread_attr_init" >&5 + $as_echo "$ac_cv_lib_pthreads_pthread_attr_init" >&6; } +-if test "x$ac_cv_lib_pthreads_pthread_attr_init" = x""yes; then ++if test "x$ac_cv_lib_pthreads_pthread_attr_init" = x""yes; then : + + PTHREAD_CFLAGS="-D_THREAD_SAFE" + PTHREAD_LDFLAGS="-lpthreads" +@@ -83172,18 +34807,14 @@ + fi + + if test "x$PTHREAD_LDFLAGS" = xerror; then +- { $as_echo "$as_me:$LINENO: checking for pthread_attr_init in -lc_r" >&5 ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_attr_init in -lc_r" >&5 + $as_echo_n "checking for pthread_attr_init in -lc_r... " >&6; } +-if test "${ac_cv_lib_c_r_pthread_attr_init+set}" = set; then ++if test "${ac_cv_lib_c_r_pthread_attr_init+set}" = set; then : + $as_echo_n "(cached) " >&6 + else + ac_check_lib_save_LIBS=$LIBS + LIBS="-lc_r $LIBS" +-cat >conftest.$ac_ext <<_ACEOF +-/* confdefs.h. */ +-_ACEOF +-cat confdefs.h >>conftest.$ac_ext +-cat >>conftest.$ac_ext <<_ACEOF ++cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + + /* Override any GCC internal prototype to avoid an error. +@@ -83201,43 +34832,18 @@ + return 0; + } + _ACEOF +-rm -f conftest.$ac_objext conftest$ac_exeext +-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 +- $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 ++if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_c_r_pthread_attr_init=yes + else +- $as_echo "$as_me: failed program was:" >&5 +-sed 's/^/| /' conftest.$ac_ext >&5 +- +- ac_cv_lib_c_r_pthread_attr_init=no ++ ac_cv_lib_c_r_pthread_attr_init=no + fi +- +-rm -rf conftest.dSYM +-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ +- conftest$ac_exeext conftest.$ac_ext ++rm -f core conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + LIBS=$ac_check_lib_save_LIBS + fi +-{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_c_r_pthread_attr_init" >&5 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_c_r_pthread_attr_init" >&5 + $as_echo "$ac_cv_lib_c_r_pthread_attr_init" >&6; } +-if test "x$ac_cv_lib_c_r_pthread_attr_init" = x""yes; then ++if test "x$ac_cv_lib_c_r_pthread_attr_init" = x""yes; then : + + PTHREAD_CFLAGS="-D_THREAD_SAFE -pthread" + PTHREAD_LDFLAGS="-pthread" +@@ -83246,92 +34852,8 @@ + fi + + if test "x$PTHREAD_LDFLAGS" = xerror; then +- { $as_echo "$as_me:$LINENO: checking for pthread_attr_init" >&5 +-$as_echo_n "checking for pthread_attr_init... " >&6; } +-if test "${ac_cv_func_pthread_attr_init+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. */ +-/* Define pthread_attr_init to an innocuous variant, in case declares pthread_attr_init. +- For example, HP-UX 11i declares gettimeofday. */ +-#define pthread_attr_init innocuous_pthread_attr_init +- +-/* System header to define __stub macros and hopefully few prototypes, +- which can conflict with char pthread_attr_init (); below. +- Prefer to if __STDC__ is defined, since +- exists even on freestanding compilers. */ +- +-#ifdef __STDC__ +-# include +-#else +-# include +-#endif +- +-#undef pthread_attr_init +- +-/* 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 +-char pthread_attr_init (); +-/* 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_pthread_attr_init || defined __stub___pthread_attr_init +-choke me +-#endif +- +-int +-main () +-{ +-return pthread_attr_init (); +- ; +- return 0; +-} +-_ACEOF +-rm -f conftest.$ac_objext conftest$ac_exeext +-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 +- $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_pthread_attr_init=yes +-else +- $as_echo "$as_me: failed program was:" >&5 +-sed 's/^/| /' conftest.$ac_ext >&5 +- +- ac_cv_func_pthread_attr_init=no +-fi +- +-rm -rf conftest.dSYM +-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ +- conftest$ac_exeext conftest.$ac_ext +-fi +-{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_pthread_attr_init" >&5 +-$as_echo "$ac_cv_func_pthread_attr_init" >&6; } +-if test "x$ac_cv_func_pthread_attr_init" = x""yes; then ++ ac_fn_c_check_func "$LINENO" "pthread_attr_init" "ac_cv_func_pthread_attr_init" ++if test "x$ac_cv_func_pthread_attr_init" = x""yes; then : + + PTHREAD_CFLAGS="-D_REENTRANT" + PTHREAD_LDFLAGS="-lpthread" +@@ -83342,18 +34864,14 @@ + # especially for HP-UX, where the AC_CHECK_FUNC macro fails to test for + # pthread_attr_init. On pthread_mutex_lock it works there... + if test "x$PTHREAD_LDFLAGS" = xerror; then +- { $as_echo "$as_me:$LINENO: checking for pthread_mutex_lock in -lpthread" >&5 ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_mutex_lock in -lpthread" >&5 + $as_echo_n "checking for pthread_mutex_lock in -lpthread... " >&6; } +-if test "${ac_cv_lib_pthread_pthread_mutex_lock+set}" = set; then ++if test "${ac_cv_lib_pthread_pthread_mutex_lock+set}" = set; then : + $as_echo_n "(cached) " >&6 + else + ac_check_lib_save_LIBS=$LIBS + LIBS="-lpthread $LIBS" +-cat >conftest.$ac_ext <<_ACEOF +-/* confdefs.h. */ +-_ACEOF +-cat confdefs.h >>conftest.$ac_ext +-cat >>conftest.$ac_ext <<_ACEOF ++cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + + /* Override any GCC internal prototype to avoid an error. +@@ -83371,43 +34889,18 @@ + return 0; + } + _ACEOF +-rm -f conftest.$ac_objext conftest$ac_exeext +-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 +- $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 ++if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_pthread_pthread_mutex_lock=yes + else +- $as_echo "$as_me: failed program was:" >&5 +-sed 's/^/| /' conftest.$ac_ext >&5 +- +- ac_cv_lib_pthread_pthread_mutex_lock=no ++ ac_cv_lib_pthread_pthread_mutex_lock=no + fi +- +-rm -rf conftest.dSYM +-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ +- conftest$ac_exeext conftest.$ac_ext ++rm -f core conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + LIBS=$ac_check_lib_save_LIBS + fi +-{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_pthread_pthread_mutex_lock" >&5 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pthread_pthread_mutex_lock" >&5 + $as_echo "$ac_cv_lib_pthread_pthread_mutex_lock" >&6; } +-if test "x$ac_cv_lib_pthread_pthread_mutex_lock" = x""yes; then ++if test "x$ac_cv_lib_pthread_pthread_mutex_lock" = x""yes; then : + + PTHREAD_CFLAGS="-D_REENTRANT" + PTHREAD_LDFLAGS="-lpthread" +@@ -83426,151 +34919,12 @@ + CFLAGS="$CFLAGS $PTHREAD_CFLAGS" + ac_save_LDFLAGS=$LDFLAGS + LDFLAGS="$LDFLAGS $PTHREAD_LDFLAGS" +- +-for ac_header in pthread.h +-do +-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? +-{ $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 +-cat confdefs.h >>conftest.$ac_ext +-cat >>conftest.$ac_ext <<_ACEOF +-/* end confdefs.h. */ +-$ac_includes_default +-#include <$ac_header> +-_ACEOF +-rm -f conftest.$ac_objext +-if { (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_header_compiler=yes +-else +- $as_echo "$as_me: failed program was:" >&5 +-sed 's/^/| /' conftest.$ac_ext >&5 +- +- ac_header_compiler=no +-fi +- +-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? +-{ $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 +-cat confdefs.h >>conftest.$ac_ext +-cat >>conftest.$ac_ext <<_ACEOF +-/* end confdefs.h. */ +-#include <$ac_header> +-_ACEOF +-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 +- $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 +- $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 +-{ $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: ) +- { $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:* ) +- { $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 samba-technical@samba.org ## +-## ---------------------------------------- ## +-_ASBOX +- ) | sed "s/^/$as_me: WARNING: /" >&2 +- ;; +-esac +-{ $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 +-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 +-as_val=`eval 'as_val=${'$as_ac_Header'} +- $as_echo "$as_val"'` +- if test "x$as_val" = x""yes; then ++ for ac_header in pthread.h ++do : ++ ac_fn_c_check_header_mongrel "$LINENO" "pthread.h" "ac_cv_header_pthread_h" "$ac_includes_default" ++if test "x$ac_cv_header_pthread_h" = x""yes; then : + cat >>confdefs.h <<_ACEOF +-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 ++#define HAVE_PTHREAD_H 1 + _ACEOF + + fi +@@ -83580,9 +34934,7 @@ + CFLAGS=$ac_save_CFLAGS + LDFLAGS=$ac_save_LDFLAGS + +-cat >>confdefs.h <<\_ACEOF +-#define HAVE_PTHREAD 1 +-_ACEOF ++$as_echo "#define HAVE_PTHREAD 1" >>confdefs.h + + fi + +@@ -83590,24 +34942,20 @@ + # Check if user wants pthreadpool support + + # Check whether --enable-pthreadpool was given. +-if test "${enable_pthreadpool+set}" = set; then ++if test "${enable_pthreadpool+set}" = set; then : + enableval=$enable_pthreadpool; + fi + + + if test x"$enable_pthreadpool" = xyes -a x"$samba_cv_HAVE_PTHREAD" != x"yes"; then +- { { $as_echo "$as_me:$LINENO: error: pthreadpool support cannot be enabled when pthread support was found" >&5 +-$as_echo "$as_me: error: pthreadpool support cannot be enabled when pthread support was found" >&2;} +- { (exit 1); exit 1; }; } ++ as_fn_error "pthreadpool support cannot be enabled when pthread support was found" "$LINENO" 5 + fi + + if test x"$enable_pthreadpool" = x"yes" -a x"$samba_cv_HAVE_PTHREAD" = x"yes"; then + LIBS="$LIBS $PTHREAD_LDFLAGS" + CFLAGS="$CFLAGS $PTHREAD_CFLAGS" + +-cat >>confdefs.h <<\_ACEOF +-#define WITH_PTHREADPOOL 1 +-_ACEOF ++$as_echo "#define WITH_PTHREADPOOL 1" >>confdefs.h + + PTHREADPOOL_OBJ="lib/pthreadpool.o" + +@@ -83618,7 +34966,7 @@ # Check whether --with-included-iniparser was given. @@ -86602,7 +89082,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure withval=$with_included_iniparser; case "$withval" in yes) -@@ -80623,18 +33691,14 @@ +@@ -83631,18 +34979,14 @@ fi if test x"$INCLUDED_INIPARSER" != x"yes"; then @@ -86624,7 +89104,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. -@@ -80652,43 +33716,18 @@ +@@ -83660,43 +35004,18 @@ return 0; } _ACEOF @@ -86674,7 +89154,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure INCLUDED_INIPARSER=no else INCLUDED_INIPARSER=yes -@@ -80696,260 +33735,40 @@ +@@ -83704,260 +35023,40 @@ fi @@ -86686,12 +89166,11 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } BUILD_INIPARSER='$(INIPARSER_OBJ)' - INIPARSERLIBS="" - FLAGS1="$FLAGS1 -I\$(srcdir)/iniparser/src" - else +- INIPARSERLIBS="" +- FLAGS1="$FLAGS1 -I\$(srcdir)/iniparser/src" +-else - { $as_echo "$as_me:$LINENO: result: no" >&5 -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 - $as_echo "no" >&6; } +-$as_echo "no" >&6; } - BUILD_INIPARSER="" - INIPARSERLIBS="-liniparser" -fi @@ -86881,14 +89360,12 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_header_preproc=no -+ BUILD_INIPARSER="" -+ INIPARSERLIBS="-liniparser" - fi - +-fi +- -rm -f conftest.err conftest.$ac_ext -{ $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: ) @@ -86923,9 +89400,15 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -$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 ++ INIPARSERLIBS="" ++ FLAGS1="$FLAGS1 -I\$(srcdir)/iniparser/src" + else - eval "$as_ac_Header=\$ac_header_preproc" --fi ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++$as_echo "no" >&6; } ++ BUILD_INIPARSER="" ++ INIPARSERLIBS="-liniparser" + fi -ac_res=`eval 'as_val=${'$as_ac_Header'} - $as_echo "$as_val"'` - { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 @@ -86934,6 +89417,8 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure + + + ++ ++ +# Checks for the vfs_fileid module +# Start +ac_fn_c_check_func "$LINENO" "getmntent" "ac_cv_func_getmntent" @@ -86955,7 +89440,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure _ACEOF fi -@@ -80957,20 +33776,16 @@ +@@ -83965,20 +35064,16 @@ done @@ -86980,7 +89465,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #include -@@ -80982,46 +33797,19 @@ +@@ -83990,46 +35085,19 @@ return statfs (".", &fsd); } _ACEOF @@ -87032,7 +89517,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "$vfsfileid_cv_statfs" >&6; } if test x"$ac_cv_func_getmntent" = x"yes" -a \ -@@ -81056,7 +33844,7 @@ +@@ -84064,7 +35132,7 @@ # Check whether --with-static-modules was given. @@ -87041,7 +89526,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure withval=$with_static_modules; if test $withval; then for i in `echo $withval | sed -e 's/,/ /g'` do -@@ -81068,7 +33856,7 @@ +@@ -84076,7 +35144,7 @@ # Check whether --with-shared-modules was given. @@ -87050,8 +89535,8 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure withval=$with_shared_modules; if test $withval; then for i in `echo $withval | sed -e 's/,/ /g'` do -@@ -81079,7 +33867,7 @@ - +@@ -84093,7 +35161,7 @@ + fi - { $as_echo "$as_me:$LINENO: checking how to build pdb_ldap" >&5 @@ -87059,7 +89544,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo_n "checking how to build pdb_ldap... " >&6; } if test "$MODULE_pdb_ldap"; then DEST=$MODULE_pdb_ldap -@@ -81091,12 +33879,10 @@ +@@ -84105,12 +35173,10 @@ if test x"$DEST" = xSHARED; then @@ -87074,7 +89559,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "shared" >&6; } string_shared_modules="$string_shared_modules pdb_ldap" -@@ -81107,16 +33893,16 @@ +@@ -84121,16 +35187,16 @@ PDB_STATIC="$PDB_STATIC passdb/pdb_ldap.o passdb/pdb_nds.o" PASSDB_LIBS="$PASSDB_LIBS $LDAP_LIBS" @@ -87089,12 +89574,47 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure fi +- { $as_echo "$as_me:$LINENO: checking how to build pdb_ads" >&5 ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to build pdb_ads" >&5 + $as_echo_n "checking how to build pdb_ads... " >&6; } + if test "$MODULE_pdb_ads"; then + DEST=$MODULE_pdb_ads +@@ -84142,12 +35208,10 @@ + + if test x"$DEST" = xSHARED; then + +-cat >>confdefs.h <<\_ACEOF +-#define pdb_ads_init init_samba_module +-_ACEOF ++$as_echo "#define pdb_ads_init init_samba_module" >>confdefs.h + + PDB_MODULES="$PDB_MODULES "bin/ads.$SHLIBEXT"" +- { $as_echo "$as_me:$LINENO: result: shared" >&5 ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: shared" >&5 + $as_echo "shared" >&6; } + + string_shared_modules="$string_shared_modules pdb_ads" +@@ -84158,16 +35222,16 @@ + PDB_STATIC="$PDB_STATIC passdb/pdb_ads.o \$(TLDAP_OBJ)" + + +- { $as_echo "$as_me:$LINENO: result: static" >&5 ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: static" >&5 + $as_echo "static" >&6; } + else + string_ignored_modules="$string_ignored_modules pdb_ads" +- { $as_echo "$as_me:$LINENO: result: not" >&5 ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not" >&5 + $as_echo "not" >&6; } + fi + + - { $as_echo "$as_me:$LINENO: checking how to build pdb_smbpasswd" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to build pdb_smbpasswd" >&5 $as_echo_n "checking how to build pdb_smbpasswd... " >&6; } if test "$MODULE_pdb_smbpasswd"; then DEST=$MODULE_pdb_smbpasswd -@@ -81128,12 +33914,10 @@ +@@ -84179,12 +35243,10 @@ if test x"$DEST" = xSHARED; then @@ -87109,7 +89629,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "shared" >&6; } string_shared_modules="$string_shared_modules pdb_smbpasswd" -@@ -81144,16 +33928,16 @@ +@@ -84195,16 +35257,16 @@ PDB_STATIC="$PDB_STATIC passdb/pdb_smbpasswd.o" @@ -87129,7 +89649,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo_n "checking how to build pdb_tdbsam... " >&6; } if test "$MODULE_pdb_tdbsam"; then DEST=$MODULE_pdb_tdbsam -@@ -81165,12 +33949,10 @@ +@@ -84216,12 +35278,10 @@ if test x"$DEST" = xSHARED; then @@ -87144,7 +89664,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "shared" >&6; } string_shared_modules="$string_shared_modules pdb_tdbsam" -@@ -81181,16 +33963,16 @@ +@@ -84232,16 +35292,16 @@ PDB_STATIC="$PDB_STATIC passdb/pdb_tdb.o" @@ -87164,7 +89684,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo_n "checking how to build pdb_wbc_sam... " >&6; } if test "$MODULE_pdb_wbc_sam"; then DEST=$MODULE_pdb_wbc_sam -@@ -81202,12 +33984,10 @@ +@@ -84253,12 +35313,10 @@ if test x"$DEST" = xSHARED; then @@ -87179,7 +89699,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "shared" >&6; } string_shared_modules="$string_shared_modules pdb_wbc_sam" -@@ -81218,11 +33998,11 @@ +@@ -84269,11 +35327,11 @@ PDB_STATIC="$PDB_STATIC passdb/pdb_wbc_sam.o" @@ -87193,7 +89713,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "not" >&6; } fi -@@ -81244,7 +34024,7 @@ +@@ -84295,7 +35353,7 @@ @@ -87202,7 +89722,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo_n "checking how to build rpc_lsarpc... " >&6; } if test "$MODULE_rpc_lsarpc"; then DEST=$MODULE_rpc_lsarpc -@@ -81256,12 +34036,10 @@ +@@ -84307,12 +35365,10 @@ if test x"$DEST" = xSHARED; then @@ -87217,7 +89737,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "shared" >&6; } string_shared_modules="$string_shared_modules rpc_lsarpc" -@@ -81272,16 +34050,16 @@ +@@ -84323,16 +35379,16 @@ RPC_STATIC="$RPC_STATIC \$(RPC_LSA_OBJ)" @@ -87237,7 +89757,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo_n "checking how to build rpc_winreg... " >&6; } if test "$MODULE_rpc_winreg"; then DEST=$MODULE_rpc_winreg -@@ -81293,12 +34071,10 @@ +@@ -84344,12 +35400,10 @@ if test x"$DEST" = xSHARED; then @@ -87252,7 +89772,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "shared" >&6; } string_shared_modules="$string_shared_modules rpc_winreg" -@@ -81309,16 +34085,16 @@ +@@ -84360,16 +35414,16 @@ RPC_STATIC="$RPC_STATIC \$(RPC_REG_OBJ)" @@ -87272,7 +89792,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo_n "checking how to build rpc_initshutdown... " >&6; } if test "$MODULE_rpc_initshutdown"; then DEST=$MODULE_rpc_initshutdown -@@ -81330,12 +34106,10 @@ +@@ -84381,12 +35435,10 @@ if test x"$DEST" = xSHARED; then @@ -87287,7 +89807,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "shared" >&6; } string_shared_modules="$string_shared_modules rpc_initshutdown" -@@ -81346,16 +34120,16 @@ +@@ -84397,16 +35449,16 @@ RPC_STATIC="$RPC_STATIC \$(RPC_INITSHUTDOWN_OBJ)" @@ -87307,7 +89827,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo_n "checking how to build rpc_dssetup... " >&6; } if test "$MODULE_rpc_dssetup"; then DEST=$MODULE_rpc_dssetup -@@ -81367,12 +34141,10 @@ +@@ -84418,12 +35470,10 @@ if test x"$DEST" = xSHARED; then @@ -87322,7 +89842,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "shared" >&6; } string_shared_modules="$string_shared_modules rpc_dssetup" -@@ -81383,16 +34155,16 @@ +@@ -84434,16 +35484,16 @@ RPC_STATIC="$RPC_STATIC \$(RPC_DSSETUP_OBJ)" @@ -87342,7 +89862,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo_n "checking how to build rpc_wkssvc... " >&6; } if test "$MODULE_rpc_wkssvc"; then DEST=$MODULE_rpc_wkssvc -@@ -81404,12 +34176,10 @@ +@@ -84455,12 +35505,10 @@ if test x"$DEST" = xSHARED; then @@ -87357,7 +89877,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "shared" >&6; } string_shared_modules="$string_shared_modules rpc_wkssvc" -@@ -81420,16 +34190,16 @@ +@@ -84471,16 +35519,16 @@ RPC_STATIC="$RPC_STATIC \$(RPC_WKS_OBJ)" @@ -87377,7 +89897,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo_n "checking how to build rpc_svcctl... " >&6; } if test "$MODULE_rpc_svcctl"; then DEST=$MODULE_rpc_svcctl -@@ -81441,12 +34211,10 @@ +@@ -84492,12 +35540,10 @@ if test x"$DEST" = xSHARED; then @@ -87392,7 +89912,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "shared" >&6; } string_shared_modules="$string_shared_modules rpc_svcctl" -@@ -81457,16 +34225,16 @@ +@@ -84508,16 +35554,16 @@ RPC_STATIC="$RPC_STATIC \$(RPC_SVCCTL_OBJ)" @@ -87412,7 +89932,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo_n "checking how to build rpc_ntsvcs... " >&6; } if test "$MODULE_rpc_ntsvcs"; then DEST=$MODULE_rpc_ntsvcs -@@ -81478,12 +34246,10 @@ +@@ -84529,12 +35575,10 @@ if test x"$DEST" = xSHARED; then @@ -87427,7 +89947,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "shared" >&6; } string_shared_modules="$string_shared_modules rpc_ntsvcs" -@@ -81494,16 +34260,16 @@ +@@ -84545,16 +35589,16 @@ RPC_STATIC="$RPC_STATIC \$(RPC_NTSVCS_OBJ)" @@ -87447,7 +89967,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo_n "checking how to build rpc_netlogon... " >&6; } if test "$MODULE_rpc_netlogon"; then DEST=$MODULE_rpc_netlogon -@@ -81515,12 +34281,10 @@ +@@ -84566,12 +35610,10 @@ if test x"$DEST" = xSHARED; then @@ -87462,7 +89982,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "shared" >&6; } string_shared_modules="$string_shared_modules rpc_netlogon" -@@ -81531,16 +34295,16 @@ +@@ -84582,16 +35624,16 @@ RPC_STATIC="$RPC_STATIC \$(RPC_NETLOG_OBJ)" @@ -87482,7 +90002,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo_n "checking how to build rpc_netdfs... " >&6; } if test "$MODULE_rpc_netdfs"; then DEST=$MODULE_rpc_netdfs -@@ -81552,12 +34316,10 @@ +@@ -84603,12 +35645,10 @@ if test x"$DEST" = xSHARED; then @@ -87497,7 +90017,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "shared" >&6; } string_shared_modules="$string_shared_modules rpc_netdfs" -@@ -81568,16 +34330,16 @@ +@@ -84619,16 +35659,16 @@ RPC_STATIC="$RPC_STATIC \$(RPC_DFS_OBJ)" @@ -87517,7 +90037,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo_n "checking how to build rpc_srvsvc... " >&6; } if test "$MODULE_rpc_srvsvc"; then DEST=$MODULE_rpc_srvsvc -@@ -81589,12 +34351,10 @@ +@@ -84640,12 +35680,10 @@ if test x"$DEST" = xSHARED; then @@ -87532,7 +90052,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "shared" >&6; } string_shared_modules="$string_shared_modules rpc_srvsvc" -@@ -81605,16 +34365,16 @@ +@@ -84656,16 +35694,16 @@ RPC_STATIC="$RPC_STATIC \$(RPC_SVC_OBJ)" @@ -87552,7 +90072,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo_n "checking how to build rpc_spoolss... " >&6; } if test "$MODULE_rpc_spoolss"; then DEST=$MODULE_rpc_spoolss -@@ -81626,12 +34386,10 @@ +@@ -84677,12 +35715,10 @@ if test x"$DEST" = xSHARED; then @@ -87567,7 +90087,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "shared" >&6; } string_shared_modules="$string_shared_modules rpc_spoolss" -@@ -81642,16 +34400,16 @@ +@@ -84693,16 +35729,16 @@ RPC_STATIC="$RPC_STATIC \$(RPC_SPOOLSS_OBJ)" @@ -87587,7 +90107,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo_n "checking how to build rpc_eventlog... " >&6; } if test "$MODULE_rpc_eventlog"; then DEST=$MODULE_rpc_eventlog -@@ -81663,12 +34421,10 @@ +@@ -84714,12 +35750,10 @@ if test x"$DEST" = xSHARED; then @@ -87602,7 +90122,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "shared" >&6; } string_shared_modules="$string_shared_modules rpc_eventlog" -@@ -81679,16 +34435,16 @@ +@@ -84730,16 +35764,16 @@ RPC_STATIC="$RPC_STATIC \$(RPC_EVENTLOG_OBJ)" @@ -87622,7 +90142,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo_n "checking how to build rpc_samr... " >&6; } if test "$MODULE_rpc_samr"; then DEST=$MODULE_rpc_samr -@@ -81700,12 +34456,10 @@ +@@ -84751,12 +35785,10 @@ if test x"$DEST" = xSHARED; then @@ -87637,7 +90157,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "shared" >&6; } string_shared_modules="$string_shared_modules rpc_samr" -@@ -81716,16 +34470,16 @@ +@@ -84767,16 +35799,16 @@ RPC_STATIC="$RPC_STATIC \$(RPC_SAMR_OBJ)" @@ -87657,7 +90177,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo_n "checking how to build rpc_rpcecho... " >&6; } if test "$MODULE_rpc_rpcecho"; then DEST=$MODULE_rpc_rpcecho -@@ -81737,12 +34491,10 @@ +@@ -84788,12 +35820,10 @@ if test x"$DEST" = xSHARED; then @@ -87672,7 +90192,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "shared" >&6; } string_shared_modules="$string_shared_modules rpc_rpcecho" -@@ -81753,11 +34505,11 @@ +@@ -84804,11 +35834,11 @@ RPC_STATIC="$RPC_STATIC \$(RPC_ECHO_OBJ)" @@ -87686,7 +90206,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "not" >&6; } fi -@@ -81778,7 +34530,7 @@ +@@ -84829,7 +35859,7 @@ @@ -87695,7 +90215,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo_n "checking how to build idmap_ldap... " >&6; } if test "$MODULE_idmap_ldap"; then DEST=$MODULE_idmap_ldap -@@ -81790,12 +34542,10 @@ +@@ -84841,12 +35871,10 @@ if test x"$DEST" = xSHARED; then @@ -87710,7 +90230,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "shared" >&6; } string_shared_modules="$string_shared_modules idmap_ldap" -@@ -81806,16 +34556,16 @@ +@@ -84857,16 +35885,16 @@ IDMAP_STATIC="$IDMAP_STATIC winbindd/idmap_ldap.o" @@ -87730,7 +90250,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo_n "checking how to build idmap_tdb... " >&6; } if test "$MODULE_idmap_tdb"; then DEST=$MODULE_idmap_tdb -@@ -81827,12 +34577,10 @@ +@@ -84878,12 +35906,10 @@ if test x"$DEST" = xSHARED; then @@ -87745,7 +90265,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "shared" >&6; } string_shared_modules="$string_shared_modules idmap_tdb" -@@ -81843,16 +34591,16 @@ +@@ -84894,16 +35920,16 @@ IDMAP_STATIC="$IDMAP_STATIC winbindd/idmap_tdb.o" @@ -87765,7 +90285,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo_n "checking how to build idmap_tdb2... " >&6; } if test "$MODULE_idmap_tdb2"; then DEST=$MODULE_idmap_tdb2 -@@ -81864,12 +34612,10 @@ +@@ -84915,12 +35941,10 @@ if test x"$DEST" = xSHARED; then @@ -87780,7 +90300,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "shared" >&6; } string_shared_modules="$string_shared_modules idmap_tdb2" -@@ -81880,16 +34626,16 @@ +@@ -84931,16 +35955,16 @@ IDMAP_STATIC="$IDMAP_STATIC winbindd/idmap_tdb2.o" @@ -87800,7 +90320,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo_n "checking how to build idmap_passdb... " >&6; } if test "$MODULE_idmap_passdb"; then DEST=$MODULE_idmap_passdb -@@ -81901,12 +34647,10 @@ +@@ -84952,12 +35976,10 @@ if test x"$DEST" = xSHARED; then @@ -87815,7 +90335,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "shared" >&6; } string_shared_modules="$string_shared_modules idmap_passdb" -@@ -81917,16 +34661,16 @@ +@@ -84968,16 +35990,16 @@ IDMAP_STATIC="$IDMAP_STATIC winbindd/idmap_passdb.o" @@ -87835,7 +90355,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo_n "checking how to build idmap_nss... " >&6; } if test "$MODULE_idmap_nss"; then DEST=$MODULE_idmap_nss -@@ -81938,12 +34682,10 @@ +@@ -84989,12 +36011,10 @@ if test x"$DEST" = xSHARED; then @@ -87850,7 +90370,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "shared" >&6; } string_shared_modules="$string_shared_modules idmap_nss" -@@ -81954,16 +34696,16 @@ +@@ -85005,16 +36025,16 @@ IDMAP_STATIC="$IDMAP_STATIC winbindd/idmap_nss.o" @@ -87870,7 +90390,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo_n "checking how to build idmap_rid... " >&6; } if test "$MODULE_idmap_rid"; then DEST=$MODULE_idmap_rid -@@ -81975,12 +34717,10 @@ +@@ -85026,12 +36046,10 @@ if test x"$DEST" = xSHARED; then @@ -87885,7 +90405,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "shared" >&6; } string_shared_modules="$string_shared_modules idmap_rid" -@@ -81991,16 +34731,16 @@ +@@ -85042,16 +36060,16 @@ IDMAP_STATIC="$IDMAP_STATIC winbindd/idmap_rid.o" @@ -87905,7 +90425,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo_n "checking how to build idmap_ad... " >&6; } if test "$MODULE_idmap_ad"; then DEST=$MODULE_idmap_ad -@@ -82012,12 +34752,10 @@ +@@ -85063,12 +36081,10 @@ if test x"$DEST" = xSHARED; then @@ -87920,7 +90440,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "shared" >&6; } string_shared_modules="$string_shared_modules idmap_ad" -@@ -82028,16 +34766,16 @@ +@@ -85079,16 +36095,16 @@ IDMAP_STATIC="$IDMAP_STATIC winbindd/idmap_ad.o" @@ -87940,7 +90460,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo_n "checking how to build idmap_hash... " >&6; } if test "$MODULE_idmap_hash"; then DEST=$MODULE_idmap_hash -@@ -82049,12 +34787,10 @@ +@@ -85100,12 +36116,10 @@ if test x"$DEST" = xSHARED; then @@ -87955,7 +90475,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "shared" >&6; } string_shared_modules="$string_shared_modules idmap_hash" -@@ -82065,16 +34801,16 @@ +@@ -85116,16 +36130,16 @@ IDMAP_STATIC="$IDMAP_STATIC \$(IDMAP_HASH_OBJ)" @@ -87975,7 +90495,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo_n "checking how to build idmap_adex... " >&6; } if test "$MODULE_idmap_adex"; then DEST=$MODULE_idmap_adex -@@ -82086,12 +34822,10 @@ +@@ -85137,12 +36151,10 @@ if test x"$DEST" = xSHARED; then @@ -87990,7 +90510,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "shared" >&6; } string_shared_modules="$string_shared_modules idmap_adex" -@@ -82102,11 +34836,11 @@ +@@ -85153,11 +36165,11 @@ IDMAP_STATIC="$IDMAP_STATIC \$(IDMAP_ADEX_OBJ)" @@ -88004,7 +90524,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "not" >&6; } fi -@@ -82127,7 +34861,7 @@ +@@ -85178,7 +36190,7 @@ @@ -88013,7 +90533,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo_n "checking how to build nss_info_template... " >&6; } if test "$MODULE_nss_info_template"; then DEST=$MODULE_nss_info_template -@@ -82139,12 +34873,10 @@ +@@ -85190,12 +36202,10 @@ if test x"$DEST" = xSHARED; then @@ -88028,7 +90548,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "shared" >&6; } string_shared_modules="$string_shared_modules nss_info_template" -@@ -82155,11 +34887,11 @@ +@@ -85206,11 +36216,11 @@ NSS_INFO_STATIC="$NSS_INFO_STATIC winbindd/nss_info_template.o" @@ -88042,7 +90562,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "not" >&6; } fi -@@ -82180,7 +34912,7 @@ +@@ -85231,7 +36241,7 @@ @@ -88051,7 +90571,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo_n "checking how to build charset_weird... " >&6; } if test "$MODULE_charset_weird"; then DEST=$MODULE_charset_weird -@@ -82192,12 +34924,10 @@ +@@ -85243,12 +36253,10 @@ if test x"$DEST" = xSHARED; then @@ -88066,7 +90586,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "shared" >&6; } string_shared_modules="$string_shared_modules charset_weird" -@@ -82208,16 +34938,16 @@ +@@ -85259,16 +36267,16 @@ CHARSET_STATIC="$CHARSET_STATIC modules/weird.o" @@ -88086,7 +90606,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo_n "checking how to build charset_CP850... " >&6; } if test "$MODULE_charset_CP850"; then DEST=$MODULE_charset_CP850 -@@ -82229,12 +34959,10 @@ +@@ -85280,12 +36288,10 @@ if test x"$DEST" = xSHARED; then @@ -88101,7 +90621,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "shared" >&6; } string_shared_modules="$string_shared_modules charset_CP850" -@@ -82245,16 +34973,16 @@ +@@ -85296,16 +36302,16 @@ CHARSET_STATIC="$CHARSET_STATIC modules/CP850.o" @@ -88121,7 +90641,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo_n "checking how to build charset_CP437... " >&6; } if test "$MODULE_charset_CP437"; then DEST=$MODULE_charset_CP437 -@@ -82266,12 +34994,10 @@ +@@ -85317,12 +36323,10 @@ if test x"$DEST" = xSHARED; then @@ -88136,7 +90656,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "shared" >&6; } string_shared_modules="$string_shared_modules charset_CP437" -@@ -82282,16 +35008,16 @@ +@@ -85333,16 +36337,16 @@ CHARSET_STATIC="$CHARSET_STATIC modules/CP437.o" @@ -88156,7 +90676,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo_n "checking how to build charset_macosxfs... " >&6; } if test "$MODULE_charset_macosxfs"; then DEST=$MODULE_charset_macosxfs -@@ -82303,12 +35029,10 @@ +@@ -85354,12 +36358,10 @@ if test x"$DEST" = xSHARED; then @@ -88171,7 +90691,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "shared" >&6; } string_shared_modules="$string_shared_modules charset_macosxfs" -@@ -82319,11 +35043,11 @@ +@@ -85370,11 +36372,11 @@ CHARSET_STATIC="$CHARSET_STATIC modules/charset_macosxfs.o" @@ -88185,7 +90705,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "not" >&6; } fi -@@ -82344,7 +35068,7 @@ +@@ -85395,7 +36397,7 @@ @@ -88194,7 +90714,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo_n "checking how to build auth_sam... " >&6; } if test "$MODULE_auth_sam"; then DEST=$MODULE_auth_sam -@@ -82356,12 +35080,10 @@ +@@ -85407,12 +36409,10 @@ if test x"$DEST" = xSHARED; then @@ -88209,7 +90729,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "shared" >&6; } string_shared_modules="$string_shared_modules auth_sam" -@@ -82372,16 +35094,16 @@ +@@ -85423,16 +36423,16 @@ AUTH_STATIC="$AUTH_STATIC \$(AUTH_SAM_OBJ)" @@ -88229,7 +90749,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo_n "checking how to build auth_unix... " >&6; } if test "$MODULE_auth_unix"; then DEST=$MODULE_auth_unix -@@ -82393,12 +35115,10 @@ +@@ -85444,12 +36444,10 @@ if test x"$DEST" = xSHARED; then @@ -88244,7 +90764,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "shared" >&6; } string_shared_modules="$string_shared_modules auth_unix" -@@ -82409,16 +35129,16 @@ +@@ -85460,16 +36458,16 @@ AUTH_STATIC="$AUTH_STATIC \$(AUTH_UNIX_OBJ)" @@ -88264,7 +90784,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo_n "checking how to build auth_winbind... " >&6; } if test "$MODULE_auth_winbind"; then DEST=$MODULE_auth_winbind -@@ -82430,12 +35150,10 @@ +@@ -85481,12 +36479,10 @@ if test x"$DEST" = xSHARED; then @@ -88279,7 +90799,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "shared" >&6; } string_shared_modules="$string_shared_modules auth_winbind" -@@ -82446,16 +35164,16 @@ +@@ -85497,16 +36493,16 @@ AUTH_STATIC="$AUTH_STATIC \$(AUTH_WINBIND_OBJ)" @@ -88299,7 +90819,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo_n "checking how to build auth_wbc... " >&6; } if test "$MODULE_auth_wbc"; then DEST=$MODULE_auth_wbc -@@ -82467,12 +35185,10 @@ +@@ -85518,12 +36514,10 @@ if test x"$DEST" = xSHARED; then @@ -88314,7 +90834,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "shared" >&6; } string_shared_modules="$string_shared_modules auth_wbc" -@@ -82483,16 +35199,16 @@ +@@ -85534,16 +36528,16 @@ AUTH_STATIC="$AUTH_STATIC \$(AUTH_WBC_OBJ)" @@ -88334,7 +90854,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo_n "checking how to build auth_server... " >&6; } if test "$MODULE_auth_server"; then DEST=$MODULE_auth_server -@@ -82504,12 +35220,10 @@ +@@ -85555,12 +36549,10 @@ if test x"$DEST" = xSHARED; then @@ -88349,7 +90869,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "shared" >&6; } string_shared_modules="$string_shared_modules auth_server" -@@ -82520,16 +35234,16 @@ +@@ -85571,16 +36563,16 @@ AUTH_STATIC="$AUTH_STATIC \$(AUTH_SERVER_OBJ)" @@ -88369,7 +90889,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo_n "checking how to build auth_domain... " >&6; } if test "$MODULE_auth_domain"; then DEST=$MODULE_auth_domain -@@ -82541,12 +35255,10 @@ +@@ -85592,12 +36584,10 @@ if test x"$DEST" = xSHARED; then @@ -88384,7 +90904,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "shared" >&6; } string_shared_modules="$string_shared_modules auth_domain" -@@ -82557,16 +35269,16 @@ +@@ -85608,16 +36598,16 @@ AUTH_STATIC="$AUTH_STATIC \$(AUTH_DOMAIN_OBJ)" @@ -88404,7 +90924,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo_n "checking how to build auth_builtin... " >&6; } if test "$MODULE_auth_builtin"; then DEST=$MODULE_auth_builtin -@@ -82578,12 +35290,10 @@ +@@ -85629,12 +36619,10 @@ if test x"$DEST" = xSHARED; then @@ -88419,7 +90939,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "shared" >&6; } string_shared_modules="$string_shared_modules auth_builtin" -@@ -82594,16 +35304,16 @@ +@@ -85645,16 +36633,16 @@ AUTH_STATIC="$AUTH_STATIC \$(AUTH_BUILTIN_OBJ)" @@ -88439,7 +90959,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo_n "checking how to build auth_script... " >&6; } if test "$MODULE_auth_script"; then DEST=$MODULE_auth_script -@@ -82615,12 +35325,10 @@ +@@ -85666,12 +36654,10 @@ if test x"$DEST" = xSHARED; then @@ -88454,7 +90974,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "shared" >&6; } string_shared_modules="$string_shared_modules auth_script" -@@ -82631,16 +35339,16 @@ +@@ -85682,16 +36668,16 @@ AUTH_STATIC="$AUTH_STATIC \$(AUTH_SCRIPT_OBJ)" @@ -88474,7 +90994,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo_n "checking how to build auth_netlogond... " >&6; } if test "$MODULE_auth_netlogond"; then DEST=$MODULE_auth_netlogond -@@ -82652,12 +35360,10 @@ +@@ -85703,12 +36689,10 @@ if test x"$DEST" = xSHARED; then @@ -88489,7 +91009,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "shared" >&6; } string_shared_modules="$string_shared_modules auth_netlogond" -@@ -82668,11 +35374,11 @@ +@@ -85719,11 +36703,11 @@ AUTH_STATIC="$AUTH_STATIC \$(AUTH_NETLOGOND_OBJ)" @@ -88503,7 +91023,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "not" >&6; } fi -@@ -82693,7 +35399,7 @@ +@@ -85744,7 +36728,7 @@ @@ -88512,7 +91032,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo_n "checking how to build vfs_default... " >&6; } if test "$MODULE_vfs_default"; then DEST=$MODULE_vfs_default -@@ -82705,12 +35411,10 @@ +@@ -85756,12 +36740,10 @@ if test x"$DEST" = xSHARED; then @@ -88527,7 +91047,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "shared" >&6; } string_shared_modules="$string_shared_modules vfs_default" -@@ -82721,16 +35425,16 @@ +@@ -85772,16 +36754,16 @@ VFS_STATIC="$VFS_STATIC \$(VFS_DEFAULT_OBJ)" @@ -88547,7 +91067,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo_n "checking how to build vfs_recycle... " >&6; } if test "$MODULE_vfs_recycle"; then DEST=$MODULE_vfs_recycle -@@ -82742,12 +35446,10 @@ +@@ -85793,12 +36775,10 @@ if test x"$DEST" = xSHARED; then @@ -88562,7 +91082,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "shared" >&6; } string_shared_modules="$string_shared_modules vfs_recycle" -@@ -82758,16 +35460,16 @@ +@@ -85809,16 +36789,16 @@ VFS_STATIC="$VFS_STATIC \$(VFS_RECYCLE_OBJ)" @@ -88582,7 +91102,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo_n "checking how to build vfs_audit... " >&6; } if test "$MODULE_vfs_audit"; then DEST=$MODULE_vfs_audit -@@ -82779,12 +35481,10 @@ +@@ -85830,12 +36810,10 @@ if test x"$DEST" = xSHARED; then @@ -88597,7 +91117,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "shared" >&6; } string_shared_modules="$string_shared_modules vfs_audit" -@@ -82795,16 +35495,16 @@ +@@ -85846,16 +36824,16 @@ VFS_STATIC="$VFS_STATIC \$(VFS_AUDIT_OBJ)" @@ -88617,7 +91137,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo_n "checking how to build vfs_extd_audit... " >&6; } if test "$MODULE_vfs_extd_audit"; then DEST=$MODULE_vfs_extd_audit -@@ -82816,12 +35516,10 @@ +@@ -85867,12 +36845,10 @@ if test x"$DEST" = xSHARED; then @@ -88632,7 +91152,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "shared" >&6; } string_shared_modules="$string_shared_modules vfs_extd_audit" -@@ -82832,16 +35530,16 @@ +@@ -85883,16 +36859,16 @@ VFS_STATIC="$VFS_STATIC \$(VFS_EXTD_AUDIT_OBJ)" @@ -88652,7 +91172,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo_n "checking how to build vfs_full_audit... " >&6; } if test "$MODULE_vfs_full_audit"; then DEST=$MODULE_vfs_full_audit -@@ -82853,12 +35551,10 @@ +@@ -85904,12 +36880,10 @@ if test x"$DEST" = xSHARED; then @@ -88667,7 +91187,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "shared" >&6; } string_shared_modules="$string_shared_modules vfs_full_audit" -@@ -82869,16 +35565,16 @@ +@@ -85920,16 +36894,16 @@ VFS_STATIC="$VFS_STATIC \$(VFS_FULL_AUDIT_OBJ)" @@ -88687,7 +91207,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo_n "checking how to build vfs_netatalk... " >&6; } if test "$MODULE_vfs_netatalk"; then DEST=$MODULE_vfs_netatalk -@@ -82890,12 +35586,10 @@ +@@ -85941,12 +36915,10 @@ if test x"$DEST" = xSHARED; then @@ -88702,7 +91222,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "shared" >&6; } string_shared_modules="$string_shared_modules vfs_netatalk" -@@ -82906,16 +35600,16 @@ +@@ -85957,16 +36929,16 @@ VFS_STATIC="$VFS_STATIC \$(VFS_NETATALK_OBJ)" @@ -88722,7 +91242,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo_n "checking how to build vfs_fake_perms... " >&6; } if test "$MODULE_vfs_fake_perms"; then DEST=$MODULE_vfs_fake_perms -@@ -82927,12 +35621,10 @@ +@@ -85978,12 +36950,10 @@ if test x"$DEST" = xSHARED; then @@ -88737,7 +91257,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "shared" >&6; } string_shared_modules="$string_shared_modules vfs_fake_perms" -@@ -82943,16 +35635,16 @@ +@@ -85994,16 +36964,16 @@ VFS_STATIC="$VFS_STATIC \$(VFS_FAKE_PERMS_OBJ)" @@ -88757,7 +91277,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo_n "checking how to build vfs_default_quota... " >&6; } if test "$MODULE_vfs_default_quota"; then DEST=$MODULE_vfs_default_quota -@@ -82964,12 +35656,10 @@ +@@ -86015,12 +36985,10 @@ if test x"$DEST" = xSHARED; then @@ -88772,7 +91292,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "shared" >&6; } string_shared_modules="$string_shared_modules vfs_default_quota" -@@ -82980,16 +35670,16 @@ +@@ -86031,16 +36999,16 @@ VFS_STATIC="$VFS_STATIC \$(VFS_DEFAULT_QUOTA_OBJ)" @@ -88792,7 +91312,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo_n "checking how to build vfs_readonly... " >&6; } if test "$MODULE_vfs_readonly"; then DEST=$MODULE_vfs_readonly -@@ -83001,12 +35691,10 @@ +@@ -86052,12 +37020,10 @@ if test x"$DEST" = xSHARED; then @@ -88807,7 +91327,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "shared" >&6; } string_shared_modules="$string_shared_modules vfs_readonly" -@@ -83017,16 +35705,16 @@ +@@ -86068,16 +37034,16 @@ VFS_STATIC="$VFS_STATIC \$(VFS_READONLY_OBJ)" @@ -88827,7 +91347,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo_n "checking how to build vfs_cap... " >&6; } if test "$MODULE_vfs_cap"; then DEST=$MODULE_vfs_cap -@@ -83038,12 +35726,10 @@ +@@ -86089,12 +37055,10 @@ if test x"$DEST" = xSHARED; then @@ -88842,7 +91362,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "shared" >&6; } string_shared_modules="$string_shared_modules vfs_cap" -@@ -83054,16 +35740,16 @@ +@@ -86105,16 +37069,16 @@ VFS_STATIC="$VFS_STATIC \$(VFS_CAP_OBJ)" @@ -88862,7 +91382,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo_n "checking how to build vfs_expand_msdfs... " >&6; } if test "$MODULE_vfs_expand_msdfs"; then DEST=$MODULE_vfs_expand_msdfs -@@ -83075,12 +35761,10 @@ +@@ -86126,12 +37090,10 @@ if test x"$DEST" = xSHARED; then @@ -88877,7 +91397,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "shared" >&6; } string_shared_modules="$string_shared_modules vfs_expand_msdfs" -@@ -83091,16 +35775,16 @@ +@@ -86142,16 +37104,16 @@ VFS_STATIC="$VFS_STATIC \$(VFS_EXPAND_MSDFS_OBJ)" @@ -88897,7 +91417,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo_n "checking how to build vfs_shadow_copy... " >&6; } if test "$MODULE_vfs_shadow_copy"; then DEST=$MODULE_vfs_shadow_copy -@@ -83112,12 +35796,10 @@ +@@ -86163,12 +37125,10 @@ if test x"$DEST" = xSHARED; then @@ -88912,7 +91432,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "shared" >&6; } string_shared_modules="$string_shared_modules vfs_shadow_copy" -@@ -83128,16 +35810,16 @@ +@@ -86179,16 +37139,16 @@ VFS_STATIC="$VFS_STATIC \$(VFS_SHADOW_COPY_OBJ)" @@ -88932,7 +91452,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo_n "checking how to build vfs_shadow_copy2... " >&6; } if test "$MODULE_vfs_shadow_copy2"; then DEST=$MODULE_vfs_shadow_copy2 -@@ -83149,12 +35831,10 @@ +@@ -86200,12 +37160,10 @@ if test x"$DEST" = xSHARED; then @@ -88947,7 +91467,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "shared" >&6; } string_shared_modules="$string_shared_modules vfs_shadow_copy2" -@@ -83165,16 +35845,16 @@ +@@ -86216,16 +37174,16 @@ VFS_STATIC="$VFS_STATIC \$(VFS_SHADOW_COPY2_OBJ)" @@ -88967,7 +91487,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo_n "checking how to build vfs_afsacl... " >&6; } if test "$MODULE_vfs_afsacl"; then DEST=$MODULE_vfs_afsacl -@@ -83186,12 +35866,10 @@ +@@ -86237,12 +37195,10 @@ if test x"$DEST" = xSHARED; then @@ -88982,7 +91502,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "shared" >&6; } string_shared_modules="$string_shared_modules vfs_afsacl" -@@ -83202,16 +35880,16 @@ +@@ -86253,16 +37209,16 @@ VFS_STATIC="$VFS_STATIC \$(VFS_AFSACL_OBJ)" @@ -89002,7 +91522,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo_n "checking how to build vfs_xattr_tdb... " >&6; } if test "$MODULE_vfs_xattr_tdb"; then DEST=$MODULE_vfs_xattr_tdb -@@ -83223,12 +35901,10 @@ +@@ -86274,12 +37230,10 @@ if test x"$DEST" = xSHARED; then @@ -89017,7 +91537,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "shared" >&6; } string_shared_modules="$string_shared_modules vfs_xattr_tdb" -@@ -83239,16 +35915,16 @@ +@@ -86290,16 +37244,16 @@ VFS_STATIC="$VFS_STATIC \$(VFS_XATTR_TDB_OBJ)" @@ -89037,7 +91557,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo_n "checking how to build vfs_posixacl... " >&6; } if test "$MODULE_vfs_posixacl"; then DEST=$MODULE_vfs_posixacl -@@ -83260,12 +35936,10 @@ +@@ -86311,12 +37265,10 @@ if test x"$DEST" = xSHARED; then @@ -89052,7 +91572,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "shared" >&6; } string_shared_modules="$string_shared_modules vfs_posixacl" -@@ -83276,16 +35950,16 @@ +@@ -86327,16 +37279,16 @@ VFS_STATIC="$VFS_STATIC \$(VFS_POSIXACL_OBJ)" @@ -89072,7 +91592,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo_n "checking how to build vfs_aixacl... " >&6; } if test "$MODULE_vfs_aixacl"; then DEST=$MODULE_vfs_aixacl -@@ -83297,12 +35971,10 @@ +@@ -86348,12 +37300,10 @@ if test x"$DEST" = xSHARED; then @@ -89087,7 +91607,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "shared" >&6; } string_shared_modules="$string_shared_modules vfs_aixacl" -@@ -83313,16 +35985,16 @@ +@@ -86364,16 +37314,16 @@ VFS_STATIC="$VFS_STATIC \$(VFS_AIXACL_OBJ)" @@ -89107,7 +91627,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo_n "checking how to build vfs_aixacl2... " >&6; } if test "$MODULE_vfs_aixacl2"; then DEST=$MODULE_vfs_aixacl2 -@@ -83334,12 +36006,10 @@ +@@ -86385,12 +37335,10 @@ if test x"$DEST" = xSHARED; then @@ -89122,7 +91642,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "shared" >&6; } string_shared_modules="$string_shared_modules vfs_aixacl2" -@@ -83350,16 +36020,16 @@ +@@ -86401,16 +37349,16 @@ VFS_STATIC="$VFS_STATIC \$(VFS_AIXACL2_OBJ)" @@ -89142,7 +91662,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo_n "checking how to build vfs_solarisacl... " >&6; } if test "$MODULE_vfs_solarisacl"; then DEST=$MODULE_vfs_solarisacl -@@ -83371,12 +36041,10 @@ +@@ -86422,12 +37370,10 @@ if test x"$DEST" = xSHARED; then @@ -89157,7 +91677,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "shared" >&6; } string_shared_modules="$string_shared_modules vfs_solarisacl" -@@ -83387,16 +36055,16 @@ +@@ -86438,16 +37384,16 @@ VFS_STATIC="$VFS_STATIC \$(VFS_SOLARISACL_OBJ)" @@ -89177,7 +91697,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo_n "checking how to build vfs_irixacl... " >&6; } if test "$MODULE_vfs_irixacl"; then DEST=$MODULE_vfs_irixacl -@@ -83408,12 +36076,10 @@ +@@ -86459,12 +37405,10 @@ if test x"$DEST" = xSHARED; then @@ -89192,7 +91712,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "shared" >&6; } string_shared_modules="$string_shared_modules vfs_irixacl" -@@ -83424,16 +36090,16 @@ +@@ -86475,16 +37419,16 @@ VFS_STATIC="$VFS_STATIC \$(VFS_IRIXACL_OBJ)" @@ -89212,7 +91732,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo_n "checking how to build vfs_hpuxacl... " >&6; } if test "$MODULE_vfs_hpuxacl"; then DEST=$MODULE_vfs_hpuxacl -@@ -83445,12 +36111,10 @@ +@@ -86496,12 +37440,10 @@ if test x"$DEST" = xSHARED; then @@ -89227,7 +91747,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "shared" >&6; } string_shared_modules="$string_shared_modules vfs_hpuxacl" -@@ -83461,16 +36125,16 @@ +@@ -86512,16 +37454,16 @@ VFS_STATIC="$VFS_STATIC \$(VFS_HPUXACL_OBJ)" @@ -89247,7 +91767,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo_n "checking how to build vfs_tru64acl... " >&6; } if test "$MODULE_vfs_tru64acl"; then DEST=$MODULE_vfs_tru64acl -@@ -83482,12 +36146,10 @@ +@@ -86533,12 +37475,10 @@ if test x"$DEST" = xSHARED; then @@ -89262,7 +91782,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "shared" >&6; } string_shared_modules="$string_shared_modules vfs_tru64acl" -@@ -83498,16 +36160,16 @@ +@@ -86549,16 +37489,16 @@ VFS_STATIC="$VFS_STATIC \$(VFS_TRU64ACL_OBJ)" @@ -89282,7 +91802,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo_n "checking how to build vfs_catia... " >&6; } if test "$MODULE_vfs_catia"; then DEST=$MODULE_vfs_catia -@@ -83519,12 +36181,10 @@ +@@ -86570,12 +37510,10 @@ if test x"$DEST" = xSHARED; then @@ -89297,7 +91817,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "shared" >&6; } string_shared_modules="$string_shared_modules vfs_catia" -@@ -83535,16 +36195,16 @@ +@@ -86586,16 +37524,16 @@ VFS_STATIC="$VFS_STATIC \$(VFS_CATIA_OBJ)" @@ -89317,7 +91837,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo_n "checking how to build vfs_streams_xattr... " >&6; } if test "$MODULE_vfs_streams_xattr"; then DEST=$MODULE_vfs_streams_xattr -@@ -83556,12 +36216,10 @@ +@@ -86607,12 +37545,10 @@ if test x"$DEST" = xSHARED; then @@ -89332,7 +91852,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "shared" >&6; } string_shared_modules="$string_shared_modules vfs_streams_xattr" -@@ -83572,16 +36230,16 @@ +@@ -86623,16 +37559,16 @@ VFS_STATIC="$VFS_STATIC \$(VFS_STREAMS_XATTR_OBJ)" @@ -89352,7 +91872,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo_n "checking how to build vfs_streams_depot... " >&6; } if test "$MODULE_vfs_streams_depot"; then DEST=$MODULE_vfs_streams_depot -@@ -83593,12 +36251,10 @@ +@@ -86644,12 +37580,10 @@ if test x"$DEST" = xSHARED; then @@ -89367,7 +91887,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "shared" >&6; } string_shared_modules="$string_shared_modules vfs_streams_depot" -@@ -83609,16 +36265,16 @@ +@@ -86660,16 +37594,16 @@ VFS_STATIC="$VFS_STATIC \$(VFS_STREAMS_DEPOT_OBJ)" @@ -89387,7 +91907,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo_n "checking how to build vfs_cacheprime... " >&6; } if test "$MODULE_vfs_cacheprime"; then DEST=$MODULE_vfs_cacheprime -@@ -83630,12 +36286,10 @@ +@@ -86681,12 +37615,10 @@ if test x"$DEST" = xSHARED; then @@ -89402,7 +91922,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "shared" >&6; } string_shared_modules="$string_shared_modules vfs_cacheprime" -@@ -83646,16 +36300,16 @@ +@@ -86697,16 +37629,16 @@ VFS_STATIC="$VFS_STATIC \$(VFS_CACHEPRIME_OBJ)" @@ -89422,7 +91942,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo_n "checking how to build vfs_prealloc... " >&6; } if test "$MODULE_vfs_prealloc"; then DEST=$MODULE_vfs_prealloc -@@ -83667,12 +36321,10 @@ +@@ -86718,12 +37650,10 @@ if test x"$DEST" = xSHARED; then @@ -89437,7 +91957,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "shared" >&6; } string_shared_modules="$string_shared_modules vfs_prealloc" -@@ -83683,16 +36335,16 @@ +@@ -86734,16 +37664,16 @@ VFS_STATIC="$VFS_STATIC \$(VFS_PREALLOC_OBJ)" @@ -89457,7 +91977,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo_n "checking how to build vfs_commit... " >&6; } if test "$MODULE_vfs_commit"; then DEST=$MODULE_vfs_commit -@@ -83704,12 +36356,10 @@ +@@ -86755,12 +37685,10 @@ if test x"$DEST" = xSHARED; then @@ -89472,7 +91992,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "shared" >&6; } string_shared_modules="$string_shared_modules vfs_commit" -@@ -83720,16 +36370,16 @@ +@@ -86771,16 +37699,16 @@ VFS_STATIC="$VFS_STATIC \$(VFS_COMMIT_OBJ)" @@ -89492,7 +92012,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo_n "checking how to build vfs_gpfs... " >&6; } if test "$MODULE_vfs_gpfs"; then DEST=$MODULE_vfs_gpfs -@@ -83741,12 +36391,10 @@ +@@ -86792,12 +37720,10 @@ if test x"$DEST" = xSHARED; then @@ -89507,7 +92027,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "shared" >&6; } string_shared_modules="$string_shared_modules vfs_gpfs" -@@ -83757,16 +36405,16 @@ +@@ -86808,16 +37734,16 @@ VFS_STATIC="$VFS_STATIC \$(VFS_GPFS_OBJ)" @@ -89527,7 +92047,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo_n "checking how to build vfs_readahead... " >&6; } if test "$MODULE_vfs_readahead"; then DEST=$MODULE_vfs_readahead -@@ -83778,12 +36426,10 @@ +@@ -86829,12 +37755,10 @@ if test x"$DEST" = xSHARED; then @@ -89542,7 +92062,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "shared" >&6; } string_shared_modules="$string_shared_modules vfs_readahead" -@@ -83794,16 +36440,16 @@ +@@ -86845,16 +37769,16 @@ VFS_STATIC="$VFS_STATIC \$(VFS_READAHEAD_OBJ)" @@ -89562,7 +92082,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo_n "checking how to build vfs_tsmsm... " >&6; } if test "$MODULE_vfs_tsmsm"; then DEST=$MODULE_vfs_tsmsm -@@ -83815,12 +36461,10 @@ +@@ -86866,12 +37790,10 @@ if test x"$DEST" = xSHARED; then @@ -89577,7 +92097,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "shared" >&6; } string_shared_modules="$string_shared_modules vfs_tsmsm" -@@ -83831,16 +36475,16 @@ +@@ -86882,16 +37804,16 @@ VFS_STATIC="$VFS_STATIC \$(VFS_TSMSM_OBJ)" @@ -89597,7 +92117,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo_n "checking how to build vfs_fileid... " >&6; } if test "$MODULE_vfs_fileid"; then DEST=$MODULE_vfs_fileid -@@ -83852,12 +36496,10 @@ +@@ -86903,12 +37825,10 @@ if test x"$DEST" = xSHARED; then @@ -89612,7 +92132,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "shared" >&6; } string_shared_modules="$string_shared_modules vfs_fileid" -@@ -83868,16 +36510,16 @@ +@@ -86919,16 +37839,16 @@ VFS_STATIC="$VFS_STATIC \$(VFS_FILEID_OBJ)" @@ -89632,7 +92152,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo_n "checking how to build vfs_aio_fork... " >&6; } if test "$MODULE_vfs_aio_fork"; then DEST=$MODULE_vfs_aio_fork -@@ -83889,12 +36531,10 @@ +@@ -86940,12 +37860,10 @@ if test x"$DEST" = xSHARED; then @@ -89647,7 +92167,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "shared" >&6; } string_shared_modules="$string_shared_modules vfs_aio_fork" -@@ -83905,16 +36545,16 @@ +@@ -86956,16 +37874,16 @@ VFS_STATIC="$VFS_STATIC \$(VFS_AIO_FORK_OBJ)" @@ -89667,7 +92187,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo_n "checking how to build vfs_preopen... " >&6; } if test "$MODULE_vfs_preopen"; then DEST=$MODULE_vfs_preopen -@@ -83926,12 +36566,10 @@ +@@ -86977,12 +37895,10 @@ if test x"$DEST" = xSHARED; then @@ -89682,7 +92202,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "shared" >&6; } string_shared_modules="$string_shared_modules vfs_preopen" -@@ -83942,16 +36580,16 @@ +@@ -86993,16 +37909,16 @@ VFS_STATIC="$VFS_STATIC \$(VFS_PREOPEN_OBJ)" @@ -89702,7 +92222,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo_n "checking how to build vfs_syncops... " >&6; } if test "$MODULE_vfs_syncops"; then DEST=$MODULE_vfs_syncops -@@ -83963,12 +36601,10 @@ +@@ -87014,12 +37930,10 @@ if test x"$DEST" = xSHARED; then @@ -89717,7 +92237,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "shared" >&6; } string_shared_modules="$string_shared_modules vfs_syncops" -@@ -83979,16 +36615,16 @@ +@@ -87030,16 +37944,16 @@ VFS_STATIC="$VFS_STATIC \$(VFS_SYNCOPS_OBJ)" @@ -89737,7 +92257,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo_n "checking how to build vfs_zfsacl... " >&6; } if test "$MODULE_vfs_zfsacl"; then DEST=$MODULE_vfs_zfsacl -@@ -84000,12 +36636,10 @@ +@@ -87051,12 +37965,10 @@ if test x"$DEST" = xSHARED; then @@ -89752,7 +92272,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "shared" >&6; } string_shared_modules="$string_shared_modules vfs_zfsacl" -@@ -84016,16 +36650,16 @@ +@@ -87067,16 +37979,16 @@ VFS_STATIC="$VFS_STATIC \$(VFS_ZFSACL_OBJ)" @@ -89772,7 +92292,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo_n "checking how to build vfs_notify_fam... " >&6; } if test "$MODULE_vfs_notify_fam"; then DEST=$MODULE_vfs_notify_fam -@@ -84037,12 +36671,10 @@ +@@ -87088,12 +38000,10 @@ if test x"$DEST" = xSHARED; then @@ -89787,7 +92307,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "shared" >&6; } string_shared_modules="$string_shared_modules vfs_notify_fam" -@@ -84053,16 +36685,16 @@ +@@ -87104,16 +38014,16 @@ VFS_STATIC="$VFS_STATIC \$(VFS_NOTIFY_FAM_OBJ)" @@ -89807,7 +92327,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo_n "checking how to build vfs_acl_xattr... " >&6; } if test "$MODULE_vfs_acl_xattr"; then DEST=$MODULE_vfs_acl_xattr -@@ -84074,12 +36706,10 @@ +@@ -87125,12 +38035,10 @@ if test x"$DEST" = xSHARED; then @@ -89822,7 +92342,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "shared" >&6; } string_shared_modules="$string_shared_modules vfs_acl_xattr" -@@ -84090,16 +36720,16 @@ +@@ -87141,16 +38049,16 @@ VFS_STATIC="$VFS_STATIC \$(VFS_ACL_XATTR_OBJ)" @@ -89842,7 +92362,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo_n "checking how to build vfs_acl_tdb... " >&6; } if test "$MODULE_vfs_acl_tdb"; then DEST=$MODULE_vfs_acl_tdb -@@ -84111,12 +36741,10 @@ +@@ -87162,12 +38070,10 @@ if test x"$DEST" = xSHARED; then @@ -89857,7 +92377,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "shared" >&6; } string_shared_modules="$string_shared_modules vfs_acl_tdb" -@@ -84127,16 +36755,16 @@ +@@ -87178,16 +38084,16 @@ VFS_STATIC="$VFS_STATIC \$(VFS_ACL_TDB_OBJ)" @@ -89877,7 +92397,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo_n "checking how to build vfs_smb_traffic_analyzer... " >&6; } if test "$MODULE_vfs_smb_traffic_analyzer"; then DEST=$MODULE_vfs_smb_traffic_analyzer -@@ -84148,12 +36776,10 @@ +@@ -87199,12 +38105,10 @@ if test x"$DEST" = xSHARED; then @@ -89892,7 +92412,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "shared" >&6; } string_shared_modules="$string_shared_modules vfs_smb_traffic_analyzer" -@@ -84164,16 +36790,16 @@ +@@ -87215,16 +38119,16 @@ VFS_STATIC="$VFS_STATIC \$(VFS_SMB_TRAFFIC_ANALYZER_OBJ)" @@ -89912,7 +92432,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo_n "checking how to build vfs_onefs... " >&6; } if test "$MODULE_vfs_onefs"; then DEST=$MODULE_vfs_onefs -@@ -84185,12 +36811,10 @@ +@@ -87236,12 +38140,10 @@ if test x"$DEST" = xSHARED; then @@ -89927,7 +92447,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "shared" >&6; } string_shared_modules="$string_shared_modules vfs_onefs" -@@ -84201,16 +36825,16 @@ +@@ -87252,16 +38154,16 @@ VFS_STATIC="$VFS_STATIC \$(VFS_ONEFS)" @@ -89947,7 +92467,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo_n "checking how to build vfs_onefs_shadow_copy... " >&6; } if test "$MODULE_vfs_onefs_shadow_copy"; then DEST=$MODULE_vfs_onefs_shadow_copy -@@ -84222,12 +36846,10 @@ +@@ -87273,12 +38175,10 @@ if test x"$DEST" = xSHARED; then @@ -89962,7 +92482,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "shared" >&6; } string_shared_modules="$string_shared_modules vfs_onefs_shadow_copy" -@@ -84238,16 +36860,16 @@ +@@ -87289,16 +38189,16 @@ VFS_STATIC="$VFS_STATIC \$(VFS_ONEFS_SHADOW_COPY)" @@ -89982,7 +92502,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo_n "checking how to build vfs_dirsort... " >&6; } if test "$MODULE_vfs_dirsort"; then DEST=$MODULE_vfs_dirsort -@@ -84259,12 +36881,10 @@ +@@ -87310,12 +38210,10 @@ if test x"$DEST" = xSHARED; then @@ -89997,7 +92517,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "shared" >&6; } string_shared_modules="$string_shared_modules vfs_dirsort" -@@ -84275,11 +36895,11 @@ +@@ -87326,16 +38224,16 @@ VFS_STATIC="$VFS_STATIC \$(VFS_DIRSORT_OBJ)" @@ -90011,7 +92531,42 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "not" >&6; } fi -@@ -84301,7 +36921,7 @@ + +- { $as_echo "$as_me:$LINENO: checking how to build vfs_scannedonly" >&5 ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to build vfs_scannedonly" >&5 + $as_echo_n "checking how to build vfs_scannedonly... " >&6; } + if test "$MODULE_vfs_scannedonly"; then + DEST=$MODULE_vfs_scannedonly +@@ -87347,12 +38245,10 @@ + + if test x"$DEST" = xSHARED; then + +-cat >>confdefs.h <<\_ACEOF +-#define vfs_scannedonly_init init_samba_module +-_ACEOF ++$as_echo "#define vfs_scannedonly_init init_samba_module" >>confdefs.h + + VFS_MODULES="$VFS_MODULES "bin/scannedonly.$SHLIBEXT"" +- { $as_echo "$as_me:$LINENO: result: shared" >&5 ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: shared" >&5 + $as_echo "shared" >&6; } + + string_shared_modules="$string_shared_modules vfs_scannedonly" +@@ -87363,11 +38259,11 @@ + VFS_STATIC="$VFS_STATIC \$(VFS_SCANNEDONLY_OBJ)" + + +- { $as_echo "$as_me:$LINENO: result: static" >&5 ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: static" >&5 + $as_echo "static" >&6; } + else + string_ignored_modules="$string_ignored_modules vfs_scannedonly" +- { $as_echo "$as_me:$LINENO: result: not" >&5 ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not" >&5 + $as_echo "not" >&6; } + fi + +@@ -87389,7 +38285,7 @@ @@ -90020,7 +92575,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo_n "checking how to build perfcount_onefs... " >&6; } if test "$MODULE_perfcount_onefs"; then DEST=$MODULE_perfcount_onefs -@@ -84313,12 +36933,10 @@ +@@ -87401,12 +38297,10 @@ if test x"$DEST" = xSHARED; then @@ -90035,7 +92590,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "shared" >&6; } string_shared_modules="$string_shared_modules perfcount_onefs" -@@ -84329,16 +36947,16 @@ +@@ -87417,16 +38311,16 @@ PERFCOUNT_STATIC="$PERFCOUNT_STATIC \$(PERFCOUNT_ONEFS)" @@ -90055,7 +92610,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo_n "checking how to build perfcount_test... " >&6; } if test "$MODULE_perfcount_test"; then DEST=$MODULE_perfcount_test -@@ -84350,12 +36968,10 @@ +@@ -87438,12 +38332,10 @@ if test x"$DEST" = xSHARED; then @@ -90070,7 +92625,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "shared" >&6; } string_shared_modules="$string_shared_modules perfcount_test" -@@ -84366,11 +36982,11 @@ +@@ -87454,11 +38346,11 @@ PERFCOUNT_STATIC="$PERFCOUNT_STATIC \$(PERFCOUNT_TEST)" @@ -90084,7 +92639,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "not" >&6; } fi -@@ -84391,7 +37007,7 @@ +@@ -87479,7 +38371,7 @@ @@ -90093,7 +92648,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo_n "checking how to build gpext_registry... " >&6; } if test "$MODULE_gpext_registry"; then DEST=$MODULE_gpext_registry -@@ -84403,12 +37019,10 @@ +@@ -87491,12 +38383,10 @@ if test x"$DEST" = xSHARED; then @@ -90108,7 +92663,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "shared" >&6; } string_shared_modules="$string_shared_modules gpext_registry" -@@ -84419,16 +37033,16 @@ +@@ -87507,16 +38397,16 @@ GPEXT_STATIC="$GPEXT_STATIC libgpo/gpext/registry.o" @@ -90128,7 +92683,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo_n "checking how to build gpext_scripts... " >&6; } if test "$MODULE_gpext_scripts"; then DEST=$MODULE_gpext_scripts -@@ -84440,12 +37054,10 @@ +@@ -87528,12 +38418,10 @@ if test x"$DEST" = xSHARED; then @@ -90143,7 +92698,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "shared" >&6; } string_shared_modules="$string_shared_modules gpext_scripts" -@@ -84456,16 +37068,16 @@ +@@ -87544,16 +38432,16 @@ GPEXT_STATIC="$GPEXT_STATIC libgpo/gpext/scripts.o" @@ -90163,7 +92718,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo_n "checking how to build gpext_security... " >&6; } if test "$MODULE_gpext_security"; then DEST=$MODULE_gpext_security -@@ -84477,12 +37089,10 @@ +@@ -87565,12 +38453,10 @@ if test x"$DEST" = xSHARED; then @@ -90178,7 +92733,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "shared" >&6; } string_shared_modules="$string_shared_modules gpext_security" -@@ -84493,11 +37103,11 @@ +@@ -87581,11 +38467,11 @@ GPEXT_STATIC="$GPEXT_STATIC libgpo/gpext/security.o" @@ -90192,7 +92747,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "not" >&6; } fi -@@ -84533,18 +37143,16 @@ +@@ -87621,18 +38507,16 @@ ################################################# # If run from the build farm, enable NASTY hacks ################################################# @@ -90215,7 +92770,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "no" >&6; } fi -@@ -84561,11 +37169,11 @@ +@@ -87649,11 +38533,11 @@ rt_signal_lease_works=yes rt_signal_aio_works=yes @@ -90230,7 +92785,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "cross" >&6; } # cross compiling, I hope you know what you are doing -@@ -84573,11 +37181,7 @@ +@@ -87661,11 +38545,7 @@ else @@ -90243,7 +92798,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #include -@@ -84633,41 +37237,16 @@ +@@ -87724,41 +38604,16 @@ } _ACEOF @@ -90289,7 +92844,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ int -@@ -84678,61 +37257,31 @@ +@@ -87769,61 +38624,31 @@ return 0; } _ACEOF @@ -90328,8 +92883,8 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 -- +- - { $as_echo "$as_me:$LINENO: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } @@ -90350,15 +92905,15 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - $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 ) - +-( exit $ac_status ) + - { $as_echo "$as_me:$LINENO: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } case "$ac_status" in 1|11|101|111) rt_signal_lease_ok=no ;; -@@ -84746,13 +37295,9 @@ +@@ -87837,13 +38662,9 @@ # no RT_SIGNAL bug, we are golden @@ -90374,7 +92929,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ int -@@ -84763,65 +37308,39 @@ +@@ -87854,65 +38675,39 @@ return 0; } _ACEOF @@ -90413,8 +92968,8 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - + - { $as_echo "$as_me:$LINENO: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } @@ -90449,7 +93004,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure enableval=$enable_merged_build; enable_merged_build=$enableval else enable_merged_build=auto -@@ -84830,9 +37349,7 @@ +@@ -87921,9 +38716,7 @@ if test x"$enable_merged_build" = x"yes" -a \ x"$merged_build_possible" = x"no" ; then @@ -90460,10 +93015,10 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure fi -@@ -84852,9 +37369,9 @@ - - # Extract the first word of "python[$PYTHON_VERSION]", so it can be a program name with args. - set dummy python$PYTHON_VERSION; ac_word=$2 +@@ -87946,9 +38739,9 @@ + do + # Extract the first word of "$ac_prog", so it can be a program name with args. + set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } @@ -90472,7 +93027,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo_n "(cached) " >&6 else case $PYTHON in -@@ -84867,14 +37384,14 @@ +@@ -87961,14 +38754,14 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. @@ -90490,7 +93045,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure IFS=$as_save_IFS ;; -@@ -84882,17 +37399,17 @@ +@@ -87976,10 +38769,10 @@ fi PYTHON=$ac_cv_path_PYTHON if test -n "$PYTHON"; then @@ -90503,7 +93058,51 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "no" >&6; } fi +@@ -87990,9 +38783,9 @@ + else + # Extract the first word of "python[$PYTHON_VER]", so it can be a program name with args. + set dummy python$PYTHON_VER; ac_word=$2 +-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 + $as_echo_n "checking for $ac_word... " >&6; } +-if test "${ac_cv_path_PYTHON+set}" = set; then ++if test "${ac_cv_path_PYTHON+set}" = set; then : + $as_echo_n "(cached) " >&6 + else + case $PYTHON in +@@ -88005,14 +38798,14 @@ + do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. +- for ac_exec_ext in '' $ac_executable_extensions; do ++ 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_path_PYTHON="$as_dir/$ac_word$ac_exec_ext" +- $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi + done +-done ++ done + IFS=$as_save_IFS + ;; +@@ -88020,10 +38813,10 @@ + fi + PYTHON=$ac_cv_path_PYTHON + if test -n "$PYTHON"; then +- { $as_echo "$as_me:$LINENO: result: $PYTHON" >&5 ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PYTHON" >&5 + $as_echo "$PYTHON" >&6; } + else +- { $as_echo "$as_me:$LINENO: result: no" >&5 ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + $as_echo "no" >&6; } + fi + +@@ -88031,7 +38824,7 @@ + fi if test -z "$PYTHON"; then working_python=no - { $as_echo "$as_me:$LINENO: WARNING: No python found" >&5 @@ -90511,7 +93110,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "$as_me: WARNING: No python found" >&2;} fi -@@ -84903,9 +37420,9 @@ +@@ -88042,9 +38835,9 @@ do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 @@ -90523,7 +93122,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo_n "(cached) " >&6 else case $PYTHON_CONFIG in -@@ -84918,14 +37435,14 @@ +@@ -88057,14 +38850,14 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. @@ -90541,7 +93140,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure IFS=$as_save_IFS ;; -@@ -84933,10 +37450,10 @@ +@@ -88072,10 +38865,10 @@ fi PYTHON_CONFIG=$ac_cv_path_PYTHON_CONFIG if test -n "$PYTHON_CONFIG"; then @@ -90554,10 +93153,10 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "no" >&6; } fi -@@ -84947,9 +37464,9 @@ +@@ -88086,9 +38879,9 @@ else - # Extract the first word of "python[$PYTHON_VERSION]-config", so it can be a program name with args. - set dummy python$PYTHON_VERSION-config; ac_word=$2 + # Extract the first word of "python[$PYTHON_VER]-config", so it can be a program name with args. + set dummy python$PYTHON_VER-config; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } @@ -90566,7 +93165,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo_n "(cached) " >&6 else case $PYTHON_CONFIG in -@@ -84962,14 +37479,14 @@ +@@ -88101,14 +38894,14 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. @@ -90584,7 +93183,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure IFS=$as_save_IFS ;; -@@ -84977,10 +37494,10 @@ +@@ -88116,10 +38909,10 @@ fi PYTHON_CONFIG=$ac_cv_path_PYTHON_CONFIG if test -n "$PYTHON_CONFIG"; then @@ -90597,7 +93196,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "no" >&6; } fi -@@ -84988,7 +37505,7 @@ +@@ -88127,7 +38920,7 @@ fi if test -z "$PYTHON_CONFIG"; then @@ -90606,7 +93205,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "$as_me: WARNING: No python-config found" >&2;} else -@@ -84998,11 +37515,7 @@ +@@ -88137,11 +38930,7 @@ LIBS="$LIBS `$PYTHON_CONFIG --ldflags`" CFLAGS="$CFLAGS `$PYTHON_CONFIG --includes`" @@ -90618,8 +93217,8 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ - /* we have our own configure tests */ -@@ -85018,42 +37531,15 @@ + #undef HAVE_UINTPTR_T +@@ -88158,42 +38947,15 @@ return 0; } _ACEOF @@ -90665,7 +93264,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure LIBS="$ac_save_LIBS" CFLAGS="$ac_save_CFLAGS" fi -@@ -85065,11 +37551,7 @@ +@@ -88205,11 +38967,7 @@ LIBS="$LIBS `$PYTHON_CONFIG --ldflags`" CFLAGS="$CFLAGS `$PYTHON_CONFIG --cflags`" @@ -90677,8 +93276,8 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ - /* we have our own configure tests */ -@@ -85085,42 +37567,15 @@ + #undef HAVE_UINTPTR_T +@@ -88226,42 +38984,15 @@ return 0; } _ACEOF @@ -90724,7 +93323,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure LIBS="$ac_save_LIBS" CFLAGS="$ac_save_CFLAGS" fi -@@ -85135,11 +37590,7 @@ +@@ -88276,11 +39007,7 @@ LIBS="$LIBS `echo -n -L${base}/lib " "; $PYTHON_CONFIG --ldflags`" CFLAGS="$CFLAGS `$PYTHON_CONFIG --includes`" @@ -90736,8 +93335,8 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ - /* we have our own configure tests */ -@@ -85155,42 +37606,15 @@ + #undef HAVE_UINTPTR_T +@@ -88297,42 +39024,15 @@ return 0; } _ACEOF @@ -90783,7 +93382,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure LIBS="$ac_save_LIBS" CFLAGS="$ac_save_CFLAGS" fi -@@ -85202,11 +37626,7 @@ +@@ -88344,11 +39044,7 @@ LIBS="$LIBS `echo -n -L${base}/lib " "; $PYTHON_CONFIG --ldflags`" CFLAGS="$CFLAGS `$PYTHON_CONFIG --cflags`" @@ -90795,8 +93394,8 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ - /* we have our own configure tests */ -@@ -85222,42 +37642,15 @@ + #undef HAVE_UINTPTR_T +@@ -88365,42 +39061,15 @@ return 0; } _ACEOF @@ -90842,7 +93441,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure LIBS="$ac_save_LIBS" CFLAGS="$ac_save_CFLAGS" fi -@@ -85287,11 +37680,7 @@ +@@ -88430,11 +39099,7 @@ LIBS="$LIBS $DISTUTILS_LDFLAGS" CFLAGS="$CFLAGS $DISTUTILS_CFLAGS" @@ -90854,8 +93453,8 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ - /* we have our own configure tests */ -@@ -85307,64 +37696,37 @@ + #undef HAVE_UINTPTR_T +@@ -88451,64 +39116,37 @@ return 0; } _ACEOF @@ -90928,10 +93527,10 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "$merged_build_possible" >&6; } # Enable merged build automatically if possible, when in developer mode -@@ -85417,9 +37779,9 @@ - - # Extract the first word of "python[$PYTHON_VERSION]", so it can be a program name with args. - set dummy python$PYTHON_VERSION; ac_word=$2 +@@ -88564,9 +39202,9 @@ + do + # Extract the first word of "$ac_prog", so it can be a program name with args. + set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } @@ -90940,7 +93539,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo_n "(cached) " >&6 else case $PYTHON in -@@ -85432,14 +37794,14 @@ +@@ -88579,14 +39217,14 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. @@ -90958,7 +93557,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure IFS=$as_save_IFS ;; -@@ -85447,17 +37809,17 @@ +@@ -88594,10 +39232,10 @@ fi PYTHON=$ac_cv_path_PYTHON if test -n "$PYTHON"; then @@ -90971,7 +93570,51 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "no" >&6; } fi +@@ -88608,9 +39246,9 @@ + else + # Extract the first word of "python[$PYTHON_VER]", so it can be a program name with args. + set dummy python$PYTHON_VER; ac_word=$2 +-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 + $as_echo_n "checking for $ac_word... " >&6; } +-if test "${ac_cv_path_PYTHON+set}" = set; then ++if test "${ac_cv_path_PYTHON+set}" = set; then : + $as_echo_n "(cached) " >&6 + else + case $PYTHON in +@@ -88623,14 +39261,14 @@ + do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. +- for ac_exec_ext in '' $ac_executable_extensions; do ++ 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_path_PYTHON="$as_dir/$ac_word$ac_exec_ext" +- $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi + done +-done ++ done + IFS=$as_save_IFS + ;; +@@ -88638,10 +39276,10 @@ + fi + PYTHON=$ac_cv_path_PYTHON + if test -n "$PYTHON"; then +- { $as_echo "$as_me:$LINENO: result: $PYTHON" >&5 ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PYTHON" >&5 + $as_echo "$PYTHON" >&6; } + else +- { $as_echo "$as_me:$LINENO: result: no" >&5 ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + $as_echo "no" >&6; } + fi + +@@ -88649,7 +39287,7 @@ + fi if test -z "$PYTHON"; then working_python=no - { $as_echo "$as_me:$LINENO: WARNING: No python found" >&5 @@ -90979,7 +93622,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "$as_me: WARNING: No python found" >&2;} fi -@@ -85468,9 +37830,9 @@ +@@ -88660,9 +39298,9 @@ do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 @@ -90991,7 +93634,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo_n "(cached) " >&6 else case $PYTHON_CONFIG in -@@ -85483,14 +37845,14 @@ +@@ -88675,14 +39313,14 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. @@ -91009,7 +93652,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure IFS=$as_save_IFS ;; -@@ -85498,10 +37860,10 @@ +@@ -88690,10 +39328,10 @@ fi PYTHON_CONFIG=$ac_cv_path_PYTHON_CONFIG if test -n "$PYTHON_CONFIG"; then @@ -91022,10 +93665,10 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "no" >&6; } fi -@@ -85512,9 +37874,9 @@ +@@ -88704,9 +39342,9 @@ else - # Extract the first word of "python[$PYTHON_VERSION]-config", so it can be a program name with args. - set dummy python$PYTHON_VERSION-config; ac_word=$2 + # Extract the first word of "python[$PYTHON_VER]-config", so it can be a program name with args. + set dummy python$PYTHON_VER-config; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } @@ -91034,7 +93677,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo_n "(cached) " >&6 else case $PYTHON_CONFIG in -@@ -85527,14 +37889,14 @@ +@@ -88719,14 +39357,14 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. @@ -91052,7 +93695,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure IFS=$as_save_IFS ;; -@@ -85542,10 +37904,10 @@ +@@ -88734,10 +39372,10 @@ fi PYTHON_CONFIG=$ac_cv_path_PYTHON_CONFIG if test -n "$PYTHON_CONFIG"; then @@ -91065,7 +93708,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "no" >&6; } fi -@@ -85553,7 +37915,7 @@ +@@ -88745,7 +39383,7 @@ fi if test -z "$PYTHON_CONFIG"; then @@ -91074,7 +93717,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "$as_me: WARNING: No python-config found" >&2;} else -@@ -85563,11 +37925,7 @@ +@@ -88755,11 +39393,7 @@ LIBS="$LIBS `$PYTHON_CONFIG --ldflags`" CFLAGS="$CFLAGS `$PYTHON_CONFIG --includes`" @@ -91086,8 +93729,8 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ - /* we have our own configure tests */ -@@ -85583,42 +37941,15 @@ + #undef HAVE_UINTPTR_T +@@ -88776,42 +39410,15 @@ return 0; } _ACEOF @@ -91133,7 +93776,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure LIBS="$ac_save_LIBS" CFLAGS="$ac_save_CFLAGS" fi -@@ -85630,11 +37961,7 @@ +@@ -88823,11 +39430,7 @@ LIBS="$LIBS `$PYTHON_CONFIG --ldflags`" CFLAGS="$CFLAGS `$PYTHON_CONFIG --cflags`" @@ -91145,8 +93788,8 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ - /* we have our own configure tests */ -@@ -85650,42 +37977,15 @@ + #undef HAVE_UINTPTR_T +@@ -88844,42 +39447,15 @@ return 0; } _ACEOF @@ -91192,7 +93835,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure LIBS="$ac_save_LIBS" CFLAGS="$ac_save_CFLAGS" fi -@@ -85700,11 +38000,7 @@ +@@ -88894,11 +39470,7 @@ LIBS="$LIBS `echo -n -L${base}/lib " "; $PYTHON_CONFIG --ldflags`" CFLAGS="$CFLAGS `$PYTHON_CONFIG --includes`" @@ -91204,8 +93847,8 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ - /* we have our own configure tests */ -@@ -85720,42 +38016,15 @@ + #undef HAVE_UINTPTR_T +@@ -88915,42 +39487,15 @@ return 0; } _ACEOF @@ -91251,7 +93894,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure LIBS="$ac_save_LIBS" CFLAGS="$ac_save_CFLAGS" fi -@@ -85767,11 +38036,7 @@ +@@ -88962,11 +39507,7 @@ LIBS="$LIBS `echo -n -L${base}/lib " "; $PYTHON_CONFIG --ldflags`" CFLAGS="$CFLAGS `$PYTHON_CONFIG --cflags`" @@ -91263,8 +93906,8 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ - /* we have our own configure tests */ -@@ -85787,42 +38052,15 @@ + #undef HAVE_UINTPTR_T +@@ -88983,42 +39524,15 @@ return 0; } _ACEOF @@ -91310,7 +93953,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure LIBS="$ac_save_LIBS" CFLAGS="$ac_save_CFLAGS" fi -@@ -85852,11 +38090,7 @@ +@@ -89048,11 +39562,7 @@ LIBS="$LIBS $DISTUTILS_LDFLAGS" CFLAGS="$CFLAGS $DISTUTILS_CFLAGS" @@ -91322,8 +93965,8 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ - /* we have our own configure tests */ -@@ -85872,52 +38106,25 @@ + #undef HAVE_UINTPTR_T +@@ -89069,52 +39579,25 @@ return 0; } _ACEOF @@ -91381,7 +94024,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "yes" >&6; } -@@ -85945,20 +38152,18 @@ +@@ -89142,20 +39625,18 @@ else @@ -91406,10 +94049,18 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "$pythondir" >&6; } -@@ -85981,545 +38186,125 @@ +@@ -89170,553 +39651,133 @@ +- MAKE_SETTINGS="$MAKE_SETTINGS +-LIBREPLACE_EXT_ENABLE = +-" +-SMB_INFO_ENABLES="$SMB_INFO_ENABLES +-\$enabled{\"LIBREPLACE_EXT\"} = \"\";" +- +- +- -MAKE_SETTINGS="$MAKE_SETTINGS -LIBREPLACE_NETWORK_LIBS = ${LIBREPLACE_NETWORK_LIBS} -LIBREPLACE_NETWORK_CFLAGS = @@ -91423,7 +94074,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -LIBREPLACE_NETWORK_ENABLE = -" -SMB_INFO_ENABLES="$SMB_INFO_ENABLES --\$enabled{LIBREPLACE_NETWORK} = \"\";" +-\$enabled{\"LIBREPLACE_NETWORK\"} = \"\";" - - - @@ -91622,7 +94273,12 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - $as_echo "$as_val"'` - { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -- ++ MAKE_SETTINGS="$MAKE_SETTINGS ++LIBREPLACE_EXT_ENABLE = ++" ++SMB_INFO_ENABLES="$SMB_INFO_ENABLES ++\$enabled{\"LIBREPLACE_EXT\"} = \"\";" + -fi -as_val=`eval 'as_val=${'$as_ac_Header'} - $as_echo "$as_val"'` @@ -91630,6 +94286,10 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF + +-fi + +-done +MAKE_SETTINGS="$MAKE_SETTINGS +LIBREPLACE_NETWORK_LIBS = ${LIBREPLACE_NETWORK_LIBS} +LIBREPLACE_NETWORK_CFLAGS = @@ -91637,15 +94297,6 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure +LIBREPLACE_NETWORK_LDFLAGS = +" --fi - --done - -+ MAKE_SETTINGS="$MAKE_SETTINGS -+LIBREPLACE_NETWORK_ENABLE = -+" -+SMB_INFO_ENABLES="$SMB_INFO_ENABLES -+\$enabled{LIBREPLACE_NETWORK} = \"\";" -for ac_header in readline/history.h -do @@ -91698,15 +94349,15 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - ac_header_compiler=no -fi ++ MAKE_SETTINGS="$MAKE_SETTINGS ++LIBREPLACE_NETWORK_ENABLE = ++" ++SMB_INFO_ENABLES="$SMB_INFO_ENABLES ++\$enabled{\"LIBREPLACE_NETWORK\"} = \"\";" -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; } -+MAKE_SETTINGS="$MAKE_SETTINGS -+LIBREPLACE_CFLAGS = -I../lib/replace -+LIBREPLACE_ENABLE = YES -+LIBREPLACE_OBJ_FILES = ${LIBREPLACE_OBJS} -+" -# Is the header present? -{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5 @@ -91740,6 +94391,18 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 + +- ac_header_preproc=no +-fi ++MAKE_SETTINGS="$MAKE_SETTINGS ++LIBREPLACE_CFLAGS = -I../lib/replace ++LIBREPLACE_ENABLE = YES ++LIBREPLACE_OBJ_FILES = ${LIBREPLACE_OBJS} ++" + +-rm -f conftest.err conftest.$ac_ext +-{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +-$as_echo "$ac_header_preproc" >&6; } +SMB_INFO_SUBSYSTEMS="$SMB_INFO_SUBSYSTEMS +################################### +# Start Subsystem LIBREPLACE @@ -91751,14 +94414,6 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure +################################### +" -- ac_header_preproc=no --fi - --rm -f conftest.err conftest.$ac_ext --{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 --$as_echo "$ac_header_preproc" >&6; } -+LIBREPLACE_HOSTCC_OBJS=`echo ${LIBREPLACE_OBJS} |sed -e 's/\.o/\.ho/g'` - -# So? What about this header? -case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in - yes:no: ) @@ -91808,13 +94463,17 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF ++LIBREPLACE_HOSTCC_OBJS=`echo ${LIBREPLACE_OBJS} |sed -e 's/\.o/\.ho/g'` + +-fi + +-done +MAKE_SETTINGS="$MAKE_SETTINGS +LIBREPLACE_HOSTCC_CFLAGS = -I../lib/replace +LIBREPLACE_HOSTCC_ENABLE = YES +LIBREPLACE_HOSTCC_OBJ_FILES = ${LIBREPLACE_HOSTCC_OBJS} +" --fi +SMB_INFO_SUBSYSTEMS="$SMB_INFO_SUBSYSTEMS +################################### +# Start Subsystem LIBREPLACE_HOSTCC @@ -91826,24 +94485,11 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure +################################### +" --done +############################################### +# Readline included by default unless explicitly asked not to +test "${with_readline+set}" != "set" && with_readline=yes -+EXTERNAL_READLINE=no -+# test for where we get readline() from -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to use readline" >&5 -+$as_echo_n "checking whether to use readline... " >&6; } - -+# Check whether --with-readline was given. -+if test "${with_readline+set}" = set; then : -+ withval=$with_readline; case "$with_readline" in -+ yes) -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -+$as_echo "yes" >&6; } - -for ac_header in readline.h readline/readline.h -do -as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` @@ -91869,6 +94515,18 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -/* end confdefs.h. */ -$ac_includes_default -#include <$ac_header> ++EXTERNAL_READLINE=no ++# test for where we get readline() from ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to use readline" >&5 ++$as_echo_n "checking whether to use readline... " >&6; } ++ ++# Check whether --with-readline was given. ++if test "${with_readline+set}" = set; then : ++ withval=$with_readline; case "$with_readline" in ++ yes) ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 ++$as_echo "yes" >&6; } ++ + for ac_header in readline.h history.h readline/readline.h +do : + as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` @@ -92032,7 +94690,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. -@@ -86537,63 +38322,32 @@ +@@ -89734,63 +39795,32 @@ return 0; } _ACEOF @@ -92107,7 +94765,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. -@@ -86611,43 +38365,18 @@ +@@ -89808,43 +39838,18 @@ return 0; } _ACEOF @@ -92157,7 +94815,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure TERMLIBS="-lreadline $TERMLIBS" EXTERNAL_READLINE=yes break -@@ -86661,11 +38390,11 @@ +@@ -89858,11 +39863,11 @@ ;; no) @@ -92171,7 +94829,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "yes" >&6; } # Needed for AC_CHECK_HEADERS and AC_CHECK_LIB to look at -@@ -86677,151 +38406,12 @@ +@@ -89874,151 +39879,12 @@ LDFLAGS="-L$with_readline/lib $LDFLAGS" CPPFLAGS="-I$with_readline/include $CPPFLAGS" @@ -92329,7 +94987,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF -@@ -86830,151 +38420,12 @@ +@@ -90027,151 +39893,12 @@ done @@ -92486,7 +95144,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure _ACEOF fi -@@ -86982,168 +38433,26 @@ +@@ -90179,168 +39906,26 @@ done @@ -92664,7 +95322,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. -@@ -87161,63 +38470,32 @@ +@@ -90358,63 +39943,32 @@ return 0; } _ACEOF @@ -92739,7 +95397,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. -@@ -87235,43 +38513,18 @@ +@@ -90432,43 +39986,18 @@ return 0; } _ACEOF @@ -92789,7 +95447,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure TERMLDFLAGS="-L$with_readline/lib" TERMCPPFLAGS="-I$with_readline/include" LDFLAGS="-L$with_readline/lib $LDFLAGS" -@@ -87291,7 +38544,7 @@ +@@ -90488,7 +40017,7 @@ ;; esac else @@ -92798,7 +95456,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "no" >&6; } fi -@@ -87300,18 +38553,14 @@ +@@ -90497,18 +40026,14 @@ # The readline API changed slightly from readline3 to readline4, so # code will generate warnings on one of them unless we have a few # special cases. @@ -92820,10 +95478,15 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. -@@ -87329,134 +38578,45 @@ - return 0; - } - _ACEOF +@@ -90521,142 +40046,53 @@ + int + main () + { +-return rl_completion_matches (); +- ; +- return 0; +-} +-_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in @@ -92845,38 +95508,31 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - test "$cross_compiling" = yes || - $as_test_x conftest$ac_exeext - }; then -+if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_readline_rl_completion_matches=yes - else +- ac_cv_lib_readline_rl_completion_matches=yes +-else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_lib_readline_rl_completion_matches=no -+ ac_cv_lib_readline_rl_completion_matches=no - fi +-fi - -rm -rf conftest.dSYM -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -+rm -f core conftest.err conftest.$ac_objext \ -+ conftest$ac_exeext conftest.$ac_ext - LIBS=$ac_check_lib_save_LIBS - fi +-LIBS=$ac_check_lib_save_LIBS +-fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_readline_rl_completion_matches" >&5 -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_readline_rl_completion_matches" >&5 - $as_echo "$ac_cv_lib_readline_rl_completion_matches" >&6; } +-$as_echo "$ac_cv_lib_readline_rl_completion_matches" >&6; } -if test "x$ac_cv_lib_readline_rl_completion_matches" = x""yes; then -+if test "x$ac_cv_lib_readline_rl_completion_matches" = x""yes; then : - +- -cat >>confdefs.h <<\_ACEOF -#define HAVE_NEW_LIBREADLINE 1 -_ACEOF -+$as_echo "#define HAVE_NEW_LIBREADLINE 1" >>confdefs.h - - fi - - - # not all readline libs have rl_event_hook or history_list +- +-fi +- +- +-# not all readline libs have rl_event_hook or history_list -{ $as_echo "$as_me:$LINENO: checking whether rl_event_hook is declared" >&5 -$as_echo_n "checking whether rl_event_hook is declared... " >&6; } -if test "${ac_cv_have_decl_rl_event_hook+set}" = set; then @@ -92888,7 +95544,10 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ --#include +- +- #include +- #include +- - -int -main () @@ -92920,39 +95579,61 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_cv_have_decl_rl_event_hook=yes -+ac_fn_c_check_decl "$LINENO" "rl_event_hook" "ac_cv_have_decl_rl_event_hook" "#include -+" -+if test "x$ac_cv_have_decl_rl_event_hook" = x""yes; then : -+ ac_have_decl=1 ++return rl_completion_matches (); ++ ; ++ return 0; ++} ++_ACEOF ++if ac_fn_c_try_link "$LINENO"; then : ++ ac_cv_lib_readline_rl_completion_matches=yes else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_have_decl_rl_event_hook=no -+ ac_have_decl=0 ++ ac_cv_lib_readline_rl_completion_matches=no fi - +- -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext --fi ++rm -f core conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext ++LIBS=$ac_check_lib_save_LIBS + fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_rl_event_hook" >&5 -$as_echo "$ac_cv_have_decl_rl_event_hook" >&6; } -if test "x$ac_cv_have_decl_rl_event_hook" = x""yes; then -- - cat >>confdefs.h <<_ACEOF ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_readline_rl_completion_matches" >&5 ++$as_echo "$ac_cv_lib_readline_rl_completion_matches" >&6; } ++if test "x$ac_cv_lib_readline_rl_completion_matches" = x""yes; then : + +-cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_RL_EVENT_HOOK 1 -_ACEOF -- -- ++$as_echo "#define HAVE_NEW_LIBREADLINE 1" >>confdefs.h + ++fi + -else - cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_RL_EVENT_HOOK 0 -+#define HAVE_DECL_RL_EVENT_HOOK $ac_have_decl - _ACEOF +-_ACEOF + ++# not all readline libs have rl_event_hook or history_list ++ac_fn_c_check_decl "$LINENO" "rl_event_hook" "ac_cv_have_decl_rl_event_hook" " ++ #include ++ #include + ++" ++if test "x$ac_cv_have_decl_rl_event_hook" = x""yes; then : ++ ac_have_decl=1 ++else ++ ac_have_decl=0 + fi + ++cat >>confdefs.h <<_ACEOF ++#define HAVE_DECL_RL_EVENT_HOOK $ac_have_decl ++_ACEOF -- --fi -- -- -{ $as_echo "$as_me:$LINENO: checking for history_list in -lreadline" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for history_list in -lreadline" >&5 $as_echo_n "checking for history_list in -lreadline... " >&6; } @@ -92971,15 +95652,10 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. -@@ -87469,65 +38629,36 @@ - int - main () - { --return history_list (); -- ; -- return 0; --} --_ACEOF +@@ -90674,60 +40110,31 @@ + return 0; + } + _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in @@ -93001,11 +95677,6 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - test "$cross_compiling" = yes || - $as_test_x conftest$ac_exeext - }; then -+return history_list (); -+ ; -+ return 0; -+} -+_ACEOF +if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_readline_history_list=yes else @@ -93052,7 +95723,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure MAKE_SETTINGS="$MAKE_SETTINGS -@@ -87582,7 +38713,7 @@ +@@ -90782,7 +40189,7 @@ ################################### " @@ -93061,7 +95732,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "no" >&6; } fi -@@ -87591,102 +38722,9 @@ +@@ -90791,102 +40198,9 @@ @@ -93166,7 +95837,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure else cat >>confdefs.h <<_ACEOF -@@ -87695,102 +38733,9 @@ +@@ -90895,102 +40209,9 @@ fi @@ -93271,7 +95942,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure else cat >>confdefs.h <<_ACEOF -@@ -87800,151 +38745,12 @@ +@@ -91000,151 +40221,12 @@ fi @@ -93427,7 +96098,163 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure _ACEOF else -@@ -87954,30 +38760,6 @@ +@@ -91154,151 +40236,12 @@ + done + + +- + for ac_header in ifaddrs.h +-do +-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? +-{ $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 +-cat confdefs.h >>conftest.$ac_ext +-cat >>conftest.$ac_ext <<_ACEOF +-/* end confdefs.h. */ +-$ac_includes_default +-#include <$ac_header> +-_ACEOF +-rm -f conftest.$ac_objext +-if { (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_header_compiler=yes +-else +- $as_echo "$as_me: failed program was:" >&5 +-sed 's/^/| /' conftest.$ac_ext >&5 +- +- ac_header_compiler=no +-fi +- +-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? +-{ $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 +-cat confdefs.h >>conftest.$ac_ext +-cat >>conftest.$ac_ext <<_ACEOF +-/* end confdefs.h. */ +-#include <$ac_header> +-_ACEOF +-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 +- $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 +- $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 +-{ $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: ) +- { $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:* ) +- { $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 samba-technical@samba.org ## +-## ---------------------------------------- ## +-_ASBOX +- ) | sed "s/^/$as_me: WARNING: /" >&2 +- ;; +-esac +-{ $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 +-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 +-as_val=`eval 'as_val=${'$as_ac_Header'} +- $as_echo "$as_val"'` +- if test "x$as_val" = x""yes; then ++do : ++ ac_fn_c_check_header_mongrel "$LINENO" "ifaddrs.h" "ac_cv_header_ifaddrs_h" "$ac_includes_default" ++if test "x$ac_cv_header_ifaddrs_h" = x""yes; then : + cat >>confdefs.h <<_ACEOF +-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 ++#define HAVE_IFADDRS_H 1 + _ACEOF + + else +@@ -91308,29 +40251,6 @@ done @@ -93453,12 +96280,11 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - - - -- - for ac_header in \ crypt.h \ curses.h \ -@@ -88004,147 +38786,11 @@ +@@ -91356,147 +40276,11 @@ netinet6/in6.h \ libintl.h @@ -93611,7 +96437,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF -@@ -88154,42 +38800,6 @@ +@@ -91506,42 +40290,6 @@ done @@ -93654,10 +96480,16 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure for ac_func in \ atexit \ cgetent \ -@@ -88228,98 +38838,11 @@ - freehostent \ - writev - +@@ -91574,271 +40322,65 @@ + warn \ + errx \ + warnx \ +- flock \ +- getipnodebyname \ +- getipnodebyaddr \ +- freehostent \ +- writev +- -do -as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 @@ -93750,36 +96582,150 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -as_val=`eval 'as_val=${'$as_ac_var'} - $as_echo "$as_val"'` - if test "x$as_val" = x""yes; then -+do : -+ as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -+ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" -+eval as_val=\$$as_ac_var -+ if test "x$as_val" = x""yes; then : - cat >>confdefs.h <<_ACEOF - #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 - _ACEOF -@@ -88330,17 +38853,13 @@ - - - +- cat >>confdefs.h <<_ACEOF +-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 +-_ACEOF +- +-fi +-done +- +- +- +- -{ $as_echo "$as_me:$LINENO: checking for bswap16" >&5 -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for bswap16" >&5 - $as_echo_n "checking for bswap16... " >&6; } +-$as_echo_n "checking for bswap16... " >&6; } -if test "${ac_cv_love_func_bswap16+set}" = set; then -+if test "${ac_cv_love_func_bswap16+set}" = set; then : - $as_echo_n "(cached) " >&6 - else - +- $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. */ +-#ifdef HAVE_SYS_BSWAP_H +-#include +-#endif +-int +-main () +-{ +-bswap16(0) +- ; +- return 0; +-} +-_ACEOF +-rm -f conftest.$ac_objext conftest$ac_exeext +-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 +- $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 +- eval "ac_cv_love_func_bswap16=yes" +-else +- $as_echo "$as_me: failed program was:" >&5 +-sed 's/^/| /' conftest.$ac_ext >&5 ++ flock \ ++ getipnodebyname \ ++ getipnodebyaddr \ ++ freehostent \ ++ writev + +- eval "ac_cv_love_func_bswap16=no" +-fi ++do : ++ as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ++ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" ++eval as_val=\$$as_ac_var ++ if test "x$as_val" = x""yes; then : ++ cat >>confdefs.h <<_ACEOF ++#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 ++_ACEOF + +-rm -rf conftest.dSYM +-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ +- conftest$ac_exeext conftest.$ac_ext + fi ++done + + +-eval "ac_res=\$ac_cv_love_func_bswap16" + +-if false; then + +-for ac_func in bswap16 +-do +-as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +-{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 +-$as_echo_n "checking for $ac_func... " >&6; } +-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for bswap16" >&5 ++$as_echo_n "checking for bswap16... " >&6; } ++if test "${ac_cv_love_func_bswap16+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. */ +-/* Define $ac_func to an innocuous variant, in case declares $ac_func. +- For example, HP-UX 11i declares gettimeofday. */ +-#define $ac_func innocuous_$ac_func +- +-/* System header to define __stub macros and hopefully few prototypes, +- which can conflict with char $ac_func (); below. +- Prefer to if __STDC__ is defined, since +- exists even on freestanding compilers. */ +- +-#ifdef __STDC__ +-# include +-#else +-# include +-#endif +- +-#undef $ac_func + +-/* 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 +-char $ac_func (); +-/* 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_$ac_func || defined __stub___$ac_func +-choke me +cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ - #ifdef HAVE_SYS_BSWAP_H - #include -@@ -88353,140 +38872,25 @@ ++/* end confdefs.h. */ ++#ifdef HAVE_SYS_BSWAP_H ++#include + #endif +- + int + main () + { +-return $ac_func (); ++bswap16(0) + ; return 0; } _ACEOF @@ -93804,13 +96750,14 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - test "$cross_compiling" = yes || - $as_test_x conftest$ac_exeext - }; then +- eval "$as_ac_var=yes" +if ac_fn_c_try_link "$LINENO"; then : - eval "ac_cv_love_func_bswap16=yes" ++ eval "ac_cv_love_func_bswap16=yes" else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -- eval "ac_cv_love_func_bswap16=no" +- eval "$as_ac_var=no" + eval "ac_cv_love_func_bswap16=no" fi - @@ -93820,98 +96767,6 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext fi - - - eval "ac_res=\$ac_cv_love_func_bswap16" - - if false; then -- --for ac_func in bswap16 --do --as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` --{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 --$as_echo_n "checking for $ac_func... " >&6; } --if { as_var=$as_ac_var; eval "test \"\${$as_var+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. */ --/* Define $ac_func to an innocuous variant, in case declares $ac_func. -- For example, HP-UX 11i declares gettimeofday. */ --#define $ac_func innocuous_$ac_func -- --/* System header to define __stub macros and hopefully few prototypes, -- which can conflict with char $ac_func (); below. -- Prefer to if __STDC__ is defined, since -- exists even on freestanding compilers. */ -- --#ifdef __STDC__ --# include --#else --# include --#endif -- --#undef $ac_func -- --/* 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 --char $ac_func (); --/* 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_$ac_func || defined __stub___$ac_func --choke me --#endif -- --int --main () --{ --return $ac_func (); -- ; -- return 0; --} --_ACEOF --rm -f conftest.$ac_objext conftest$ac_exeext --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 -- $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 -- eval "$as_ac_var=yes" --else -- $as_echo "$as_me: failed program was:" >&5 --sed 's/^/| /' conftest.$ac_ext >&5 -- -- eval "$as_ac_var=no" --fi -- --rm -rf conftest.dSYM --rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ -- conftest$ac_exeext conftest.$ac_ext --fi -ac_res=`eval 'as_val=${'$as_ac_var'} - $as_echo "$as_val"'` - { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 @@ -93919,6 +96774,11 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -as_val=`eval 'as_val=${'$as_ac_var'} - $as_echo "$as_val"'` - if test "x$as_val" = x""yes; then ++ ++ ++eval "ac_res=\$ac_cv_love_func_bswap16" ++ ++if false; then + for ac_func in bswap16 +do : + ac_fn_c_check_func "$LINENO" "bswap16" "ac_cv_func_bswap16" @@ -93929,7 +96789,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure _ACEOF fi -@@ -88502,11 +38906,11 @@ +@@ -91854,11 +40396,11 @@ #define $ac_tr_func 1 _ACEOF @@ -93943,7 +96803,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "no" >&6; } ;; esac -@@ -88516,17 +38920,13 @@ +@@ -91868,17 +40410,13 @@ @@ -93964,7 +96824,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #ifdef HAVE_SYS_BSWAP_H #include -@@ -88539,140 +38939,25 @@ +@@ -91891,140 +40429,25 @@ return 0; } _ACEOF @@ -93996,17 +96856,20 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -sed 's/^/| /' conftest.$ac_ext >&5 - - eval "ac_cv_love_func_bswap32=no" --fi ++ eval "ac_cv_love_func_bswap32=no" + fi - -rm -rf conftest.dSYM -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext --fi -- -- --eval "ac_res=\$ac_cv_love_func_bswap32" -- --if false; then ++rm -f core conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + + + eval "ac_res=\$ac_cv_love_func_bswap32" + + if false; then - -for ac_func in bswap32 -do @@ -94088,15 +96951,12 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -sed 's/^/| /' conftest.$ac_ext >&5 - - eval "$as_ac_var=no" -+ eval "ac_cv_love_func_bswap32=no" - fi +-fi - -rm -rf conftest.dSYM -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -+rm -f core conftest.err conftest.$ac_objext \ -+ conftest$ac_exeext conftest.$ac_ext - fi +-fi -ac_res=`eval 'as_val=${'$as_ac_var'} - $as_echo "$as_val"'` - { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 @@ -94104,11 +96964,6 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -as_val=`eval 'as_val=${'$as_ac_var'} - $as_echo "$as_val"'` - if test "x$as_val" = x""yes; then -+ -+ -+eval "ac_res=\$ac_cv_love_func_bswap32" -+ -+if false; then + for ac_func in bswap32 +do : + ac_fn_c_check_func "$LINENO" "bswap32" "ac_cv_func_bswap32" @@ -94119,7 +96974,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure _ACEOF fi -@@ -88688,11 +38973,11 @@ +@@ -92040,11 +40463,11 @@ #define $ac_tr_func 1 _ACEOF @@ -94133,7 +96988,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "no" >&6; } ;; esac -@@ -88703,25 +38988,21 @@ +@@ -92055,25 +40478,21 @@ @@ -94163,7 +97018,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure ac_cv_struct_winsize=yes; break fi rm -f conftest* -@@ -88731,63 +39012,45 @@ +@@ -92083,63 +40502,45 @@ if test "$ac_cv_struct_winsize" = "yes"; then @@ -94238,7 +97093,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #include #include -@@ -88800,35 +39063,14 @@ +@@ -92152,35 +40553,14 @@ return 0; } _ACEOF @@ -94277,7 +97132,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "$ac_cv_type_signal" >&6; } cat >>confdefs.h <<_ACEOF -@@ -88838,9 +39080,7 @@ +@@ -92190,9 +40570,7 @@ if test "$ac_cv_type_signal" = "void" ; then @@ -94288,7 +97143,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure fi -@@ -88871,18 +39111,14 @@ +@@ -92223,18 +40601,14 @@ @@ -94310,7 +97165,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #ifdef HAVE_SYS_TYPES_H #include -@@ -88899,44 +39135,15 @@ +@@ -92251,44 +40625,15 @@ return 0; } _ACEOF @@ -94360,7 +97215,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ extern int h_errno; int foo(void) { return h_errno; } -@@ -88948,44 +39155,19 @@ +@@ -92300,44 +40645,19 @@ return 0; } _ACEOF @@ -94410,7 +97265,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "$ac_foo" >&6; } if test "$ac_foo" = yes; then -@@ -88993,85 +39175,26 @@ +@@ -92345,81 +40665,23 @@ #define HAVE_H_ERRNO 1 _ACEOF @@ -94471,15 +97326,15 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_have_decl_h_errno=no --fi -- --rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ac_have_decl=0 fi + +-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +-fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_h_errno" >&5 -$as_echo "$ac_cv_have_decl_h_errno" >&6; } -if test "x$ac_cv_have_decl_h_errno" = x""yes; then - +- cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_H_ERRNO 1 -_ACEOF @@ -94491,1487 +97346,6 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure +#define HAVE_DECL_H_ERRNO $ac_have_decl _ACEOF -- - fi - - --fi -- -- -- - - - -@@ -89092,17 +39215,12 @@ - - - -- -- { $as_echo "$as_me:$LINENO: checking for openpty in -lutil" >&5 -+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for openpty in -lutil" >&5 - $as_echo_n "checking for openpty in -lutil... " >&6; } --if test "${ac_cv_lib_ext_util_openpty+set}" = set; then -+if test "${ac_cv_lib_ext_util_openpty+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 -+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ - - /* Override any GCC internal prototype to avoid an error. -@@ -89120,54 +39238,28 @@ - return 0; - } - _ACEOF --rm -f conftest.$ac_objext conftest$ac_exeext --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 -- $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 -+if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_ext_util_openpty=yes; - ac_cv_lib_ext_util=yes - else -- $as_echo "$as_me: failed program was:" >&5 --sed 's/^/| /' conftest.$ac_ext >&5 -- -- ac_cv_lib_ext_util_openpty=no; -+ ac_cv_lib_ext_util_openpty=no; - ac_cv_lib_ext_util=no - fi -- --rm -rf conftest.dSYM --rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ -- conftest$ac_exeext conftest.$ac_ext -+rm -f core conftest.err conftest.$ac_objext \ -+ conftest$ac_exeext conftest.$ac_ext - - fi --{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_ext_util_openpty" >&5 -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ext_util_openpty" >&5 - $as_echo "$ac_cv_lib_ext_util_openpty" >&6; } -- if test $ac_cv_lib_ext_util_openpty = yes; then -+ if test $ac_cv_lib_ext_util_openpty = yes; then : - cat >>confdefs.h <<_ACEOF - #define HAVE_OPENPTY 1 - _ACEOF - - fi -- - LIBS=$ac_check_lib_ext_save_LIBS - --if test $ac_cv_lib_ext_util = yes; then -+if test $ac_cv_lib_ext_util = yes; then : - cat >>confdefs.h <<_ACEOF - #define HAVE_LIBUTIL 1 - _ACEOF -@@ -89184,7 +39276,6 @@ - fi - - -- - MAKE_SETTINGS="$MAKE_SETTINGS - OPENPTY_ENABLE = YES - " -@@ -89204,23 +39295,17 @@ - - - -- - ac_check_lib_ext_save_LIBS=$LIBS - LIBS="-lintl $INTL_LIBS $LIBS" - - - -- -- { $as_echo "$as_me:$LINENO: checking for gettext in -lintl" >&5 -+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gettext in -lintl" >&5 - $as_echo_n "checking for gettext in -lintl... " >&6; } --if test "${ac_cv_lib_ext_intl_gettext+set}" = set; then -+if test "${ac_cv_lib_ext_intl_gettext+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 -+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ - - /* Override any GCC internal prototype to avoid an error. -@@ -89238,54 +39323,28 @@ - return 0; - } - _ACEOF --rm -f conftest.$ac_objext conftest$ac_exeext --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 -- $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 -+if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_ext_intl_gettext=yes; - ac_cv_lib_ext_intl=yes - else -- $as_echo "$as_me: failed program was:" >&5 --sed 's/^/| /' conftest.$ac_ext >&5 -- -- ac_cv_lib_ext_intl_gettext=no; -+ ac_cv_lib_ext_intl_gettext=no; - ac_cv_lib_ext_intl=no - fi -- --rm -rf conftest.dSYM --rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ -- conftest$ac_exeext conftest.$ac_ext -+rm -f core conftest.err conftest.$ac_objext \ -+ conftest$ac_exeext conftest.$ac_ext - - fi --{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_ext_intl_gettext" >&5 -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ext_intl_gettext" >&5 - $as_echo "$ac_cv_lib_ext_intl_gettext" >&6; } -- if test $ac_cv_lib_ext_intl_gettext = yes; then -+ if test $ac_cv_lib_ext_intl_gettext = yes; then : - cat >>confdefs.h <<_ACEOF - #define HAVE_GETTEXT 1 - _ACEOF - - fi -- - LIBS=$ac_check_lib_ext_save_LIBS - --if test $ac_cv_lib_ext_intl = yes; then -+if test $ac_cv_lib_ext_intl = yes; then : - cat >>confdefs.h <<_ACEOF - #define HAVE_LIBINTL 1 - _ACEOF -@@ -89302,7 +39361,6 @@ - fi - - -- - MAKE_SETTINGS="$MAKE_SETTINGS - INTL_ENABLE = YES - " -@@ -89326,151 +39384,12 @@ - - - -- - for ac_header in arpa/nameser.h --do --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? --{ $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 --cat confdefs.h >>conftest.$ac_ext --cat >>conftest.$ac_ext <<_ACEOF --/* end confdefs.h. */ --$ac_includes_default --#include <$ac_header> --_ACEOF --rm -f conftest.$ac_objext --if { (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_header_compiler=yes --else -- $as_echo "$as_me: failed program was:" >&5 --sed 's/^/| /' conftest.$ac_ext >&5 -- -- ac_header_compiler=no --fi -- --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? --{ $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 --cat confdefs.h >>conftest.$ac_ext --cat >>conftest.$ac_ext <<_ACEOF --/* end confdefs.h. */ --#include <$ac_header> --_ACEOF --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 -- $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 -- $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 --{ $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: ) -- { $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:* ) -- { $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 samba-technical@samba.org ## --## ---------------------------------------- ## --_ASBOX -- ) | sed "s/^/$as_me: WARNING: /" >&2 -- ;; --esac --{ $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 --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 --as_val=`eval 'as_val=${'$as_ac_Header'} -- $as_echo "$as_val"'` -- if test "x$as_val" = x""yes; then -+do : -+ ac_fn_c_check_header_mongrel "$LINENO" "arpa/nameser.h" "ac_cv_header_arpa_nameser_h" "$ac_includes_default" -+if test "x$ac_cv_header_arpa_nameser_h" = x""yes; then : - cat >>confdefs.h <<_ACEOF --#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -+#define HAVE_ARPA_NAMESER_H 1 - _ACEOF - - fi -@@ -89478,22 +39397,9 @@ - done - - -- - for ac_header in resolv.h --do --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. */ --_ACEOF --cat confdefs.h >>conftest.$ac_ext --cat >>conftest.$ac_ext <<_ACEOF --/* end confdefs.h. */ --$ac_includes_default -+do : -+ ac_fn_c_check_header_compile "$LINENO" "resolv.h" "ac_cv_header_resolv_h" "$ac_includes_default - #ifdef HAVE_SYS_TYPES_H - #include - #endif -@@ -89504,46 +39410,10 @@ - #include - #endif - -- --#include <$ac_header> --_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 -- eval "$as_ac_Header=yes" --else -- $as_echo "$as_me: failed program was:" >&5 --sed 's/^/| /' conftest.$ac_ext >&5 -- -- eval "$as_ac_Header=no" --fi -- --rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext --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; } --as_val=`eval 'as_val=${'$as_ac_Header'} -- $as_echo "$as_val"'` -- if test "x$as_val" = x""yes; then -+" -+if test "x$ac_cv_header_resolv_h" = x""yes; then : - cat >>confdefs.h <<_ACEOF --#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -+#define HAVE_RESOLV_H 1 - _ACEOF - - fi -@@ -89555,9 +39425,9 @@ - - - --{ $as_echo "$as_me:$LINENO: checking for res_search" >&5 -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for res_search" >&5 - $as_echo_n "checking for res_search... " >&6; } --if test "${ac_cv_funclib_res_search+set}" = set; then -+if test "${ac_cv_funclib_res_search+set}" = set; then : - $as_echo_n "(cached) " >&6 - else - -@@ -89572,11 +39442,7 @@ - *) ac_lib="-l$ac_lib" ;; - esac - LIBS=" $ac_lib $ac_save_LIBS" -- cat >conftest.$ac_ext <<_ACEOF --/* confdefs.h. */ --_ACEOF --cat confdefs.h >>conftest.$ac_ext --cat >>conftest.$ac_ext <<_ACEOF -+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ - - #include -@@ -89601,38 +39467,11 @@ - return 0; - } - _ACEOF --rm -f conftest.$ac_objext conftest$ac_exeext --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 -- $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 -+if ac_fn_c_try_link "$LINENO"; then : - eval "if test -n \"$ac_lib\";then ac_cv_funclib_res_search=$ac_lib; else ac_cv_funclib_res_search=yes; fi";break --else -- $as_echo "$as_me: failed program was:" >&5 --sed 's/^/| /' conftest.$ac_ext >&5 -- -- - fi -- --rm -rf conftest.dSYM --rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ -- conftest$ac_exeext conftest.$ac_ext -+rm -f core conftest.err conftest.$ac_objext \ -+ conftest$ac_exeext conftest.$ac_ext - done - eval "ac_cv_funclib_res_search=\${ac_cv_funclib_res_search-no}" - LIBS="$ac_save_LIBS" -@@ -89644,102 +39483,12 @@ - eval "ac_res=\$ac_cv_funclib_res_search" - - if false; then -- --for ac_func in res_search --do --as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` --{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 --$as_echo_n "checking for $ac_func... " >&6; } --if { as_var=$as_ac_var; eval "test \"\${$as_var+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. */ --/* Define $ac_func to an innocuous variant, in case declares $ac_func. -- For example, HP-UX 11i declares gettimeofday. */ --#define $ac_func innocuous_$ac_func -- --/* System header to define __stub macros and hopefully few prototypes, -- which can conflict with char $ac_func (); below. -- Prefer to if __STDC__ is defined, since -- exists even on freestanding compilers. */ -- --#ifdef __STDC__ --# include --#else --# include --#endif -- --#undef $ac_func -- --/* 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 --char $ac_func (); --/* 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_$ac_func || defined __stub___$ac_func --choke me --#endif -- --int --main () --{ --return $ac_func (); -- ; -- return 0; --} --_ACEOF --rm -f conftest.$ac_objext conftest$ac_exeext --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 -- $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 -- eval "$as_ac_var=yes" --else -- $as_echo "$as_me: failed program was:" >&5 --sed 's/^/| /' conftest.$ac_ext >&5 -- -- eval "$as_ac_var=no" --fi -- --rm -rf conftest.dSYM --rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ -- conftest$ac_exeext conftest.$ac_ext --fi --ac_res=`eval 'as_val=${'$as_ac_var'} -- $as_echo "$as_val"'` -- { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 --$as_echo "$ac_res" >&6; } --as_val=`eval 'as_val=${'$as_ac_var'} -- $as_echo "$as_val"'` -- if test "x$as_val" = x""yes; then -+ for ac_func in res_search -+do : -+ ac_fn_c_check_func "$LINENO" "res_search" "ac_cv_func_res_search" -+if test "x$ac_cv_func_res_search" = x""yes; then : - cat >>confdefs.h <<_ACEOF --#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 -+#define HAVE_RES_SEARCH 1 - _ACEOF - - fi -@@ -89759,13 +39508,13 @@ - #define $ac_tr_func 1 - _ACEOF - -- { $as_echo "$as_me:$LINENO: result: yes" >&5 -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 - $as_echo "yes" >&6; } - ;; - no) - eval "ac_cv_func_res_search=no" - eval "LIB_res_search=" -- { $as_echo "$as_me:$LINENO: result: no" >&5 -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 - $as_echo "no" >&6; } - ;; - *) -@@ -89779,7 +39528,7 @@ - #define $ac_tr_lib 1 - _ACEOF - -- { $as_echo "$as_me:$LINENO: result: yes, in $ac_res" >&5 -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes, in $ac_res" >&5 - $as_echo "yes, in $ac_res" >&6; } - ;; - esac -@@ -89794,9 +39543,9 @@ - - - --{ $as_echo "$as_me:$LINENO: checking for res_nsearch" >&5 -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for res_nsearch" >&5 - $as_echo_n "checking for res_nsearch... " >&6; } --if test "${ac_cv_funclib_res_nsearch+set}" = set; then -+if test "${ac_cv_funclib_res_nsearch+set}" = set; then : - $as_echo_n "(cached) " >&6 - else - -@@ -89811,11 +39560,7 @@ - *) ac_lib="-l$ac_lib" ;; - esac - LIBS=" $ac_lib $ac_save_LIBS" -- cat >conftest.$ac_ext <<_ACEOF --/* confdefs.h. */ --_ACEOF --cat confdefs.h >>conftest.$ac_ext --cat >>conftest.$ac_ext <<_ACEOF -+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ - - #include -@@ -89840,38 +39585,11 @@ - return 0; - } - _ACEOF --rm -f conftest.$ac_objext conftest$ac_exeext --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 -- $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 -+if ac_fn_c_try_link "$LINENO"; then : - eval "if test -n \"$ac_lib\";then ac_cv_funclib_res_nsearch=$ac_lib; else ac_cv_funclib_res_nsearch=yes; fi";break --else -- $as_echo "$as_me: failed program was:" >&5 --sed 's/^/| /' conftest.$ac_ext >&5 -- -- - fi -- --rm -rf conftest.dSYM --rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ -- conftest$ac_exeext conftest.$ac_ext -+rm -f core conftest.err conftest.$ac_objext \ -+ conftest$ac_exeext conftest.$ac_ext - done - eval "ac_cv_funclib_res_nsearch=\${ac_cv_funclib_res_nsearch-no}" - LIBS="$ac_save_LIBS" -@@ -89883,102 +39601,12 @@ - eval "ac_res=\$ac_cv_funclib_res_nsearch" - - if false; then -- --for ac_func in res_nsearch --do --as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` --{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 --$as_echo_n "checking for $ac_func... " >&6; } --if { as_var=$as_ac_var; eval "test \"\${$as_var+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. */ --/* Define $ac_func to an innocuous variant, in case declares $ac_func. -- For example, HP-UX 11i declares gettimeofday. */ --#define $ac_func innocuous_$ac_func -- --/* System header to define __stub macros and hopefully few prototypes, -- which can conflict with char $ac_func (); below. -- Prefer to if __STDC__ is defined, since -- exists even on freestanding compilers. */ -- --#ifdef __STDC__ --# include --#else --# include --#endif -- --#undef $ac_func -- --/* 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 --char $ac_func (); --/* 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_$ac_func || defined __stub___$ac_func --choke me --#endif -- --int --main () --{ --return $ac_func (); -- ; -- return 0; --} --_ACEOF --rm -f conftest.$ac_objext conftest$ac_exeext --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 -- $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 -- eval "$as_ac_var=yes" --else -- $as_echo "$as_me: failed program was:" >&5 --sed 's/^/| /' conftest.$ac_ext >&5 -- -- eval "$as_ac_var=no" --fi -- --rm -rf conftest.dSYM --rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ -- conftest$ac_exeext conftest.$ac_ext --fi --ac_res=`eval 'as_val=${'$as_ac_var'} -- $as_echo "$as_val"'` -- { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 --$as_echo "$ac_res" >&6; } --as_val=`eval 'as_val=${'$as_ac_var'} -- $as_echo "$as_val"'` -- if test "x$as_val" = x""yes; then -+ for ac_func in res_nsearch -+do : -+ ac_fn_c_check_func "$LINENO" "res_nsearch" "ac_cv_func_res_nsearch" -+if test "x$ac_cv_func_res_nsearch" = x""yes; then : - cat >>confdefs.h <<_ACEOF --#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 -+#define HAVE_RES_NSEARCH 1 - _ACEOF - - fi -@@ -89998,13 +39626,13 @@ - #define $ac_tr_func 1 - _ACEOF - -- { $as_echo "$as_me:$LINENO: result: yes" >&5 -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 - $as_echo "yes" >&6; } - ;; - no) - eval "ac_cv_func_res_nsearch=no" - eval "LIB_res_nsearch=" -- { $as_echo "$as_me:$LINENO: result: no" >&5 -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 - $as_echo "no" >&6; } - ;; - *) -@@ -90018,7 +39646,7 @@ - #define $ac_tr_lib 1 - _ACEOF - -- { $as_echo "$as_me:$LINENO: result: yes, in $ac_res" >&5 -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes, in $ac_res" >&5 - $as_echo "yes, in $ac_res" >&6; } - ;; - esac -@@ -90033,9 +39661,9 @@ - - - --{ $as_echo "$as_me:$LINENO: checking for res_ndestroy" >&5 -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for res_ndestroy" >&5 - $as_echo_n "checking for res_ndestroy... " >&6; } --if test "${ac_cv_funclib_res_ndestroy+set}" = set; then -+if test "${ac_cv_funclib_res_ndestroy+set}" = set; then : - $as_echo_n "(cached) " >&6 - else - -@@ -90050,11 +39678,7 @@ - *) ac_lib="-l$ac_lib" ;; - esac - LIBS=" $ac_lib $ac_save_LIBS" -- cat >conftest.$ac_ext <<_ACEOF --/* confdefs.h. */ --_ACEOF --cat confdefs.h >>conftest.$ac_ext --cat >>conftest.$ac_ext <<_ACEOF -+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ - - #include -@@ -90079,38 +39703,11 @@ - return 0; - } - _ACEOF --rm -f conftest.$ac_objext conftest$ac_exeext --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 -- $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 -+if ac_fn_c_try_link "$LINENO"; then : - eval "if test -n \"$ac_lib\";then ac_cv_funclib_res_ndestroy=$ac_lib; else ac_cv_funclib_res_ndestroy=yes; fi";break --else -- $as_echo "$as_me: failed program was:" >&5 --sed 's/^/| /' conftest.$ac_ext >&5 -- -- - fi -- --rm -rf conftest.dSYM --rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ -- conftest$ac_exeext conftest.$ac_ext -+rm -f core conftest.err conftest.$ac_objext \ -+ conftest$ac_exeext conftest.$ac_ext - done - eval "ac_cv_funclib_res_ndestroy=\${ac_cv_funclib_res_ndestroy-no}" - LIBS="$ac_save_LIBS" -@@ -90122,102 +39719,12 @@ - eval "ac_res=\$ac_cv_funclib_res_ndestroy" - - if false; then -- --for ac_func in res_ndestroy --do --as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` --{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 --$as_echo_n "checking for $ac_func... " >&6; } --if { as_var=$as_ac_var; eval "test \"\${$as_var+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. */ --/* Define $ac_func to an innocuous variant, in case declares $ac_func. -- For example, HP-UX 11i declares gettimeofday. */ --#define $ac_func innocuous_$ac_func -- --/* System header to define __stub macros and hopefully few prototypes, -- which can conflict with char $ac_func (); below. -- Prefer to if __STDC__ is defined, since -- exists even on freestanding compilers. */ -- --#ifdef __STDC__ --# include --#else --# include --#endif -- --#undef $ac_func -- --/* 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 --char $ac_func (); --/* 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_$ac_func || defined __stub___$ac_func --choke me --#endif -- --int --main () --{ --return $ac_func (); -- ; -- return 0; --} --_ACEOF --rm -f conftest.$ac_objext conftest$ac_exeext --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 -- $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 -- eval "$as_ac_var=yes" --else -- $as_echo "$as_me: failed program was:" >&5 --sed 's/^/| /' conftest.$ac_ext >&5 -- -- eval "$as_ac_var=no" --fi -- --rm -rf conftest.dSYM --rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ -- conftest$ac_exeext conftest.$ac_ext --fi --ac_res=`eval 'as_val=${'$as_ac_var'} -- $as_echo "$as_val"'` -- { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 --$as_echo "$ac_res" >&6; } --as_val=`eval 'as_val=${'$as_ac_var'} -- $as_echo "$as_val"'` -- if test "x$as_val" = x""yes; then -+ for ac_func in res_ndestroy -+do : -+ ac_fn_c_check_func "$LINENO" "res_ndestroy" "ac_cv_func_res_ndestroy" -+if test "x$ac_cv_func_res_ndestroy" = x""yes; then : - cat >>confdefs.h <<_ACEOF --#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 -+#define HAVE_RES_NDESTROY 1 - _ACEOF - - fi -@@ -90237,13 +39744,13 @@ - #define $ac_tr_func 1 - _ACEOF - -- { $as_echo "$as_me:$LINENO: result: yes" >&5 -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 - $as_echo "yes" >&6; } - ;; - no) - eval "ac_cv_func_res_ndestroy=no" - eval "LIB_res_ndestroy=" -- { $as_echo "$as_me:$LINENO: result: no" >&5 -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 - $as_echo "no" >&6; } - ;; - *) -@@ -90257,7 +39764,7 @@ - #define $ac_tr_lib 1 - _ACEOF - -- { $as_echo "$as_me:$LINENO: result: yes, in $ac_res" >&5 -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes, in $ac_res" >&5 - $as_echo "yes, in $ac_res" >&6; } - ;; - esac -@@ -90272,9 +39779,9 @@ - - - --{ $as_echo "$as_me:$LINENO: checking for dn_expand" >&5 -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for dn_expand" >&5 - $as_echo_n "checking for dn_expand... " >&6; } --if test "${ac_cv_funclib_dn_expand+set}" = set; then -+if test "${ac_cv_funclib_dn_expand+set}" = set; then : - $as_echo_n "(cached) " >&6 - else - -@@ -90287,176 +39794,55 @@ - no) continue ;; - -l*) ;; - *) ac_lib="-l$ac_lib" ;; -- esac -- LIBS=" $ac_lib $ac_save_LIBS" -- cat >conftest.$ac_ext <<_ACEOF --/* confdefs.h. */ --_ACEOF --cat confdefs.h >>conftest.$ac_ext --cat >>conftest.$ac_ext <<_ACEOF --/* end confdefs.h. */ -- --#include --#ifdef HAVE_SYS_TYPES_H --#include --#endif --#ifdef HAVE_NETINET_IN_H --#include --#endif --#ifdef HAVE_ARPA_NAMESER_H --#include --#endif --#ifdef HAVE_RESOLV_H --#include --#endif -- --int --main () --{ --dn_expand(0,0,0,0,0) -- ; -- return 0; --} --_ACEOF --rm -f conftest.$ac_objext conftest$ac_exeext --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 -- $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 -- eval "if test -n \"$ac_lib\";then ac_cv_funclib_dn_expand=$ac_lib; else ac_cv_funclib_dn_expand=yes; fi";break --else -- $as_echo "$as_me: failed program was:" >&5 --sed 's/^/| /' conftest.$ac_ext >&5 -- -- --fi -- --rm -rf conftest.dSYM --rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ -- conftest$ac_exeext conftest.$ac_ext -- done -- eval "ac_cv_funclib_dn_expand=\${ac_cv_funclib_dn_expand-no}" -- LIBS="$ac_save_LIBS" --fi -- --fi -- -- --eval "ac_res=\$ac_cv_funclib_dn_expand" -- --if false; then -- --for ac_func in dn_expand --do --as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` --{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 --$as_echo_n "checking for $ac_func... " >&6; } --if { as_var=$as_ac_var; eval "test \"\${$as_var+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 -+ esac -+ LIBS=" $ac_lib $ac_save_LIBS" -+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ --/* Define $ac_func to an innocuous variant, in case declares $ac_func. -- For example, HP-UX 11i declares gettimeofday. */ --#define $ac_func innocuous_$ac_func -- --/* System header to define __stub macros and hopefully few prototypes, -- which can conflict with char $ac_func (); below. -- Prefer to if __STDC__ is defined, since -- exists even on freestanding compilers. */ - --#ifdef __STDC__ --# include --#else --# include -+#include -+#ifdef HAVE_SYS_TYPES_H -+#include - #endif -- --#undef $ac_func -- --/* 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" -+#ifdef HAVE_NETINET_IN_H -+#include - #endif --char $ac_func (); --/* 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_$ac_func || defined __stub___$ac_func --choke me -+#ifdef HAVE_ARPA_NAMESER_H -+#include -+#endif -+#ifdef HAVE_RESOLV_H -+#include - #endif - - int - main () - { --return $ac_func (); -+dn_expand(0,0,0,0,0) - ; - return 0; - } - _ACEOF --rm -f conftest.$ac_objext conftest$ac_exeext --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 -- $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 -- eval "$as_ac_var=yes" --else -- $as_echo "$as_me: failed program was:" >&5 --sed 's/^/| /' conftest.$ac_ext >&5 -- -- eval "$as_ac_var=no" -+if ac_fn_c_try_link "$LINENO"; then : -+ eval "if test -n \"$ac_lib\";then ac_cv_funclib_dn_expand=$ac_lib; else ac_cv_funclib_dn_expand=yes; fi";break -+fi -+rm -f core conftest.err conftest.$ac_objext \ -+ conftest$ac_exeext conftest.$ac_ext -+ done -+ eval "ac_cv_funclib_dn_expand=\${ac_cv_funclib_dn_expand-no}" -+ LIBS="$ac_save_LIBS" - fi - --rm -rf conftest.dSYM --rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ -- conftest$ac_exeext conftest.$ac_ext - fi --ac_res=`eval 'as_val=${'$as_ac_var'} -- $as_echo "$as_val"'` -- { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 --$as_echo "$ac_res" >&6; } --as_val=`eval 'as_val=${'$as_ac_var'} -- $as_echo "$as_val"'` -- if test "x$as_val" = x""yes; then -+ -+ -+eval "ac_res=\$ac_cv_funclib_dn_expand" -+ -+if false; then -+ for ac_func in dn_expand -+do : -+ ac_fn_c_check_func "$LINENO" "dn_expand" "ac_cv_func_dn_expand" -+if test "x$ac_cv_func_dn_expand" = x""yes; then : - cat >>confdefs.h <<_ACEOF --#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 -+#define HAVE_DN_EXPAND 1 - _ACEOF - - fi -@@ -90476,13 +39862,13 @@ - #define $ac_tr_func 1 - _ACEOF - -- { $as_echo "$as_me:$LINENO: result: yes" >&5 -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 - $as_echo "yes" >&6; } - ;; - no) - eval "ac_cv_func_dn_expand=no" - eval "LIB_dn_expand=" -- { $as_echo "$as_me:$LINENO: result: no" >&5 -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 - $as_echo "no" >&6; } - ;; - *) -@@ -90496,7 +39882,7 @@ - #define $ac_tr_lib 1 - _ACEOF - -- { $as_echo "$as_me:$LINENO: result: yes, in $ac_res" >&5 -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes, in $ac_res" >&5 - $as_echo "yes, in $ac_res" >&6; } - ;; - esac -@@ -90508,18 +39894,14 @@ - - - --{ $as_echo "$as_me:$LINENO: checking for _res" >&5 -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for _res" >&5 - $as_echo_n "checking for _res... " >&6; } --if test "${ac_cv_var__res+set}" = set; then -+if test "${ac_cv_var__res+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 -+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ - #include - #ifdef HAVE_SYS_TYPES_H -@@ -90543,44 +39925,15 @@ - return 0; - } - _ACEOF --rm -f conftest.$ac_objext conftest$ac_exeext --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 -- $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 -+if ac_fn_c_try_link "$LINENO"; then : - ac_cv_var__res=yes - else -- $as_echo "$as_me: failed program was:" >&5 --sed 's/^/| /' conftest.$ac_ext >&5 -- -- ac_cv_var__res=no -+ ac_cv_var__res=no - fi -- --rm -rf conftest.dSYM --rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ -- conftest$ac_exeext conftest.$ac_ext -+rm -f core conftest.err conftest.$ac_objext \ -+ conftest$ac_exeext conftest.$ac_ext - if test "$ac_cv_var__res" != yes ; then --cat >conftest.$ac_ext <<_ACEOF --/* confdefs.h. */ --_ACEOF --cat confdefs.h >>conftest.$ac_ext --cat >>conftest.$ac_ext <<_ACEOF -+cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ - extern int _res; - int foo(void) { return _res; } -@@ -90592,44 +39945,19 @@ - return 0; - } - _ACEOF --rm -f conftest.$ac_objext conftest$ac_exeext --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 -- $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 -+if ac_fn_c_try_link "$LINENO"; then : - ac_cv_var__res=yes - else -- $as_echo "$as_me: failed program was:" >&5 --sed 's/^/| /' conftest.$ac_ext >&5 -- -- ac_cv_var__res=no -+ ac_cv_var__res=no - fi -- --rm -rf conftest.dSYM --rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ -- conftest$ac_exeext conftest.$ac_ext -+rm -f core conftest.err conftest.$ac_objext \ -+ conftest$ac_exeext conftest.$ac_ext - fi - - fi - - ac_foo=`eval echo \\$ac_cv_var__res` --{ $as_echo "$as_me:$LINENO: result: $ac_foo" >&5 -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_foo" >&5 - $as_echo "$ac_foo" >&6; } - if test "$ac_foo" = yes; then - -@@ -90637,18 +39965,7 @@ - #define HAVE__RES 1 - _ACEOF - -- { $as_echo "$as_me:$LINENO: checking whether _res is declared" >&5 --$as_echo_n "checking whether _res is declared... " >&6; } --if test "${ac_cv_have_decl__res+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 -+ ac_fn_c_check_decl "$LINENO" "_res" "ac_cv_have_decl__res" "#include - #ifdef HAVE_SYS_TYPES_H - #include - #endif -@@ -90661,64 +39978,17 @@ - #ifdef HAVE_RESOLV_H - #include - #endif -- --int --main () --{ --#ifndef _res -- (void) _res; --#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__res=yes -+" -+if test "x$ac_cv_have_decl__res" = x""yes; then : -+ ac_have_decl=1 - else -- $as_echo "$as_me: failed program was:" >&5 --sed 's/^/| /' conftest.$ac_ext >&5 -- -- ac_cv_have_decl__res=no --fi -- --rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -+ ac_have_decl=0 - fi --{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl__res" >&5 --$as_echo "$ac_cv_have_decl__res" >&6; } --if test "x$ac_cv_have_decl__res" = x""yes; then - - cat >>confdefs.h <<_ACEOF --#define HAVE_DECL__RES 1 --_ACEOF -- -- --else -- cat >>confdefs.h <<_ACEOF --#define HAVE_DECL__RES 0 -+#define HAVE_DECL__RES $ac_have_decl - _ACEOF - - -fi - @@ -95979,1801 +97353,14 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure fi -@@ -90784,9 +40054,9 @@ - do - # Extract the first word of "$ac_prog", so it can be a program name with args. - set dummy $ac_prog; ac_word=$2 --{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 - $as_echo_n "checking for $ac_word... " >&6; } --if test "${ac_cv_prog_LEX+set}" = set; then -+if test "${ac_cv_prog_LEX+set}" = set; then : - $as_echo_n "(cached) " >&6 - else - if test -n "$LEX"; then -@@ -90797,24 +40067,24 @@ - do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. -- for ac_exec_ext in '' $ac_executable_extensions; do -+ 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_LEX="$ac_prog" -- $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 -+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi - done --done -+ done - IFS=$as_save_IFS +@@ -92435,151 +40697,12 @@ - fi - fi - LEX=$ac_cv_prog_LEX - if test -n "$LEX"; then -- { $as_echo "$as_me:$LINENO: result: $LEX" >&5 -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LEX" >&5 - $as_echo "$LEX" >&6; } - else -- { $as_echo "$as_me:$LINENO: result: no" >&5 -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 - $as_echo "no" >&6; } - fi -@@ -90843,20 +40113,20 @@ - return ! yylex () + ! yywrap (); - } - _ACEOF --{ (ac_try="$LEX conftest.l" -+{ { ac_try="$LEX conftest.l" - 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_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -+$as_echo "$ac_try_echo"; } >&5 - (eval "$LEX conftest.l") 2>&5 - ac_status=$? -- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 -- (exit $ac_status); } --{ $as_echo "$as_me:$LINENO: checking lex output file root" >&5 -+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 -+ test $ac_status = 0; } -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking lex output file root" >&5 - $as_echo_n "checking lex output file root... " >&6; } --if test "${ac_cv_prog_lex_root+set}" = set; then -+if test "${ac_cv_prog_lex_root+set}" = set; then : - $as_echo_n "(cached) " >&6 - else - -@@ -90865,19 +40135,17 @@ - elif test -f lexyy.c; then - ac_cv_prog_lex_root=lexyy - else -- { { $as_echo "$as_me:$LINENO: error: cannot find output from $LEX; giving up" >&5 --$as_echo "$as_me: error: cannot find output from $LEX; giving up" >&2;} -- { (exit 1); exit 1; }; } -+ as_fn_error "cannot find output from $LEX; giving up" "$LINENO" 5 - fi - fi --{ $as_echo "$as_me:$LINENO: result: $ac_cv_prog_lex_root" >&5 -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_lex_root" >&5 - $as_echo "$ac_cv_prog_lex_root" >&6; } - LEX_OUTPUT_ROOT=$ac_cv_prog_lex_root - - if test -z "${LEXLIB+set}"; then -- { $as_echo "$as_me:$LINENO: checking lex library" >&5 -+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking lex library" >&5 - $as_echo_n "checking lex library... " >&6; } --if test "${ac_cv_lib_lex+set}" = set; then -+if test "${ac_cv_lib_lex+set}" = set; then : - $as_echo_n "(cached) " >&6 - else - -@@ -90885,55 +40153,29 @@ - ac_cv_lib_lex='none needed' - for ac_lib in '' -lfl -ll; do - LIBS="$ac_lib $ac_save_LIBS" -- cat >conftest.$ac_ext <<_ACEOF -+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext -+/* end confdefs.h. */ - `cat $LEX_OUTPUT_ROOT.c` - _ACEOF --rm -f conftest.$ac_objext conftest$ac_exeext --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 -- $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 -+if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_lex=$ac_lib --else -- $as_echo "$as_me: failed program was:" >&5 --sed 's/^/| /' conftest.$ac_ext >&5 -- -- - fi -- --rm -rf conftest.dSYM --rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ -- conftest$ac_exeext conftest.$ac_ext -+rm -f core conftest.err conftest.$ac_objext \ -+ conftest$ac_exeext conftest.$ac_ext - test "$ac_cv_lib_lex" != 'none needed' && break - done - LIBS=$ac_save_LIBS - - fi --{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_lex" >&5 -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_lex" >&5 - $as_echo "$ac_cv_lib_lex" >&6; } - test "$ac_cv_lib_lex" != 'none needed' && LEXLIB=$ac_cv_lib_lex - fi - - --{ $as_echo "$as_me:$LINENO: checking whether yytext is a pointer" >&5 -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether yytext is a pointer" >&5 - $as_echo_n "checking whether yytext is a pointer... " >&6; } --if test "${ac_cv_prog_lex_yytext_pointer+set}" = set; then -+if test "${ac_cv_prog_lex_yytext_pointer+set}" = set; then : - $as_echo_n "(cached) " >&6 - else - # POSIX says lex can declare yytext either as a pointer or an array; the -@@ -90942,52 +40184,24 @@ - ac_cv_prog_lex_yytext_pointer=no - ac_save_LIBS=$LIBS - LIBS="$LEXLIB $ac_save_LIBS" --cat >conftest.$ac_ext <<_ACEOF -+cat confdefs.h - <<_ACEOF >conftest.$ac_ext -+/* end confdefs.h. */ - #define YYTEXT_POINTER 1 - `cat $LEX_OUTPUT_ROOT.c` - _ACEOF --rm -f conftest.$ac_objext conftest$ac_exeext --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 -- $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 -+if ac_fn_c_try_link "$LINENO"; then : - ac_cv_prog_lex_yytext_pointer=yes --else -- $as_echo "$as_me: failed program was:" >&5 --sed 's/^/| /' conftest.$ac_ext >&5 -- -- - fi -- --rm -rf conftest.dSYM --rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ -- conftest$ac_exeext conftest.$ac_ext -+rm -f core conftest.err conftest.$ac_objext \ -+ conftest$ac_exeext conftest.$ac_ext - LIBS=$ac_save_LIBS - - fi --{ $as_echo "$as_me:$LINENO: result: $ac_cv_prog_lex_yytext_pointer" >&5 -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_lex_yytext_pointer" >&5 - $as_echo "$ac_cv_prog_lex_yytext_pointer" >&6; } - if test $ac_cv_prog_lex_yytext_pointer = yes; then - --cat >>confdefs.h <<\_ACEOF --#define YYTEXT_POINTER 1 --_ACEOF -+$as_echo "#define YYTEXT_POINTER 1" >>confdefs.h - - fi - rm -f conftest.l $LEX_OUTPUT_ROOT.c -@@ -90997,9 +40211,9 @@ - if test x"$LEX_BASENAME" = x"flex"; then - # "flex 2.5.33" - FLEX_VERSION=`$LEX --version | cut -d ' ' -f2` -- { $as_echo "$as_me:$LINENO: checking flex version" >&5 -+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking flex version" >&5 - $as_echo_n "checking flex version... " >&6; } -- { $as_echo "$as_me:$LINENO: result: $FLEX_VERSION" >&5 -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $FLEX_VERSION" >&5 - $as_echo "$FLEX_VERSION" >&6; } - FLEX_MAJOR=`echo $FLEX_VERSION | cut -d '.' -f1` - FLEX_MINOR=`echo $FLEX_VERSION | cut -d '.' -f2` -@@ -91012,9 +40226,9 @@ - do - # Extract the first word of "$ac_prog", so it can be a program name with args. - set dummy $ac_prog; ac_word=$2 --{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 - $as_echo_n "checking for $ac_word... " >&6; } --if test "${ac_cv_prog_YACC+set}" = set; then -+if test "${ac_cv_prog_YACC+set}" = set; then : - $as_echo_n "(cached) " >&6 - else - if test -n "$YACC"; then -@@ -91025,24 +40239,24 @@ - do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. -- for ac_exec_ext in '' $ac_executable_extensions; do -+ 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_YACC="$ac_prog" -- $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 -+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi - done --done -+ done - IFS=$as_save_IFS - - fi - fi - YACC=$ac_cv_prog_YACC - if test -n "$YACC"; then -- { $as_echo "$as_me:$LINENO: result: $YACC" >&5 -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $YACC" >&5 - $as_echo "$YACC" >&6; } - else -- { $as_echo "$as_me:$LINENO: result: no" >&5 -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 - $as_echo "no" >&6; } - fi - -@@ -91055,9 +40269,9 @@ - if test x"$YACC_BASENAME" = x"bison -y"; then - # bison (GNU Bison) 2.3 - BISON_VERSION=`$YACC --version | head -1 | cut -d ' ' -f4` -- { $as_echo "$as_me:$LINENO: checking bison version" >&5 -+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking bison version" >&5 - $as_echo_n "checking bison version... " >&6; } -- { $as_echo "$as_me:$LINENO: result: $BISON_VERSION" >&5 -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $BISON_VERSION" >&5 - $as_echo "$BISON_VERSION" >&6; } - BISON_MAJOR=`echo $BISON_VERSION | cut -d '.' -f1` - BISON_MINOR=`echo $BISON_VERSION | cut -d '.' -f2` -@@ -91065,7 +40279,7 @@ - YACC_VERSION="bison-$BISON_MAJOR.$BISON_MINOR" - fi - --{ $as_echo "$as_me:$LINENO: checking working LEX YACC combination" >&5 -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking working LEX YACC combination" >&5 - $as_echo_n "checking working LEX YACC combination... " >&6; } - LEX_YACC="no" - if test x"$LEX_VERSION" != x"" -a x"$YACC_VERSION" != x""; then -@@ -91081,7 +40295,7 @@ - LEX=false - YACC=false - fi --{ $as_echo "$as_me:$LINENO: result: $LEX_YACC" >&5 -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $LEX_YACC" >&5 - $as_echo "$LEX_YACC" >&6; } - - # Portions of heimdal kerberos are unpacked into source/heimdal -@@ -91089,21 +40303,15 @@ - - # if we ever get to using a host kerberos, we might add conditionals here - --cat >>confdefs.h <<\_ACEOF --#define HAVE_COM_ERR 1 --_ACEOF -+$as_echo "#define HAVE_COM_ERR 1" >>confdefs.h - - HAVE_COM_ERR=YES - --cat >>confdefs.h <<\_ACEOF --#define HAVE_KRB5 1 --_ACEOF -+$as_echo "#define HAVE_KRB5 1" >>confdefs.h - - HAVE_KRB5=YES - --cat >>confdefs.h <<\_ACEOF --#define HAVE_GSSAPI 1 --_ACEOF -+$as_echo "#define HAVE_GSSAPI 1" >>confdefs.h - - HAVE_GSSAPI=YES - -@@ -91195,9 +40403,7 @@ - VPATH="$VPATH:\$(HEIMDAL_VPATH)" - - --cat >>confdefs.h <<\_ACEOF --#define SAMBA4_INTERNAL_HEIMDAL 1 --_ACEOF -+$as_echo "#define SAMBA4_INTERNAL_HEIMDAL 1" >>confdefs.h - - - -@@ -91206,170 +40412,27 @@ - " - - -- - for ac_header in execinfo.h --do --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? --{ $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 --cat confdefs.h >>conftest.$ac_ext --cat >>conftest.$ac_ext <<_ACEOF --/* end confdefs.h. */ --$ac_includes_default --#include <$ac_header> --_ACEOF --rm -f conftest.$ac_objext --if { (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_header_compiler=yes --else -- $as_echo "$as_me: failed program was:" >&5 --sed 's/^/| /' conftest.$ac_ext >&5 -- -- ac_header_compiler=no --fi -- --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? --{ $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 --cat confdefs.h >>conftest.$ac_ext --cat >>conftest.$ac_ext <<_ACEOF --/* end confdefs.h. */ --#include <$ac_header> --_ACEOF --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 -- $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 -- $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 --{ $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: ) -- { $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:* ) -- { $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 samba-technical@samba.org ## --## ---------------------------------------- ## --_ASBOX -- ) | sed "s/^/$as_me: WARNING: /" >&2 -- ;; --esac --{ $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 --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 --as_val=`eval 'as_val=${'$as_ac_Header'} -- $as_echo "$as_val"'` -- if test "x$as_val" = x""yes; then -+do : -+ ac_fn_c_check_header_mongrel "$LINENO" "execinfo.h" "ac_cv_header_execinfo_h" "$ac_includes_default" -+if test "x$ac_cv_header_execinfo_h" = x""yes; then : - cat >>confdefs.h <<_ACEOF --#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -+#define HAVE_EXECINFO_H 1 - _ACEOF - - fi - - done - --{ $as_echo "$as_me:$LINENO: checking for library containing backtrace" >&5 -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing backtrace" >&5 - $as_echo_n "checking for library containing backtrace... " >&6; } --if test "${ac_cv_search_ext_backtrace+set}" = set; then -+if test "${ac_cv_search_ext_backtrace+set}" = set; then : - $as_echo_n "(cached) " >&6 - else - - ac_func_search_ext_save_LIBS=$LIBS - ac_cv_search_ext_backtrace=no --cat >conftest.$ac_ext <<_ACEOF --/* confdefs.h. */ --_ACEOF --cat confdefs.h >>conftest.$ac_ext --cat >>conftest.$ac_ext <<_ACEOF -+cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ - - /* Override any GCC internal prototype to avoid an error. -@@ -91387,46 +40450,15 @@ - return 0; - } - _ACEOF --rm -f conftest.$ac_objext conftest$ac_exeext --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 -- $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 -+if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_ext_backtrace="none required" --else -- $as_echo "$as_me: failed program was:" >&5 --sed 's/^/| /' conftest.$ac_ext >&5 -- -- - fi -- --rm -rf conftest.dSYM --rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ -- conftest$ac_exeext conftest.$ac_ext -+rm -f core conftest.err conftest.$ac_objext \ -+ conftest$ac_exeext conftest.$ac_ext - if test "$ac_cv_search_ext_backtrace" = no; then - for ac_lib in execinfo; do - LIBS="-l$ac_lib $EXECINFO_LIBS $ac_func_search_save_ext_LIBS" -- cat >conftest.$ac_ext <<_ACEOF --/* confdefs.h. */ --_ACEOF --cat confdefs.h >>conftest.$ac_ext --cat >>conftest.$ac_ext <<_ACEOF -+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ - - /* Override any GCC internal prototype to avoid an error. -@@ -91444,65 +40476,32 @@ - return 0; - } - _ACEOF --rm -f conftest.$ac_objext conftest$ac_exeext --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 -- $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 -+if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_ext_backtrace="-l$ac_lib" - break --else -- $as_echo "$as_me: failed program was:" >&5 --sed 's/^/| /' conftest.$ac_ext >&5 -- -- - fi -- --rm -rf conftest.dSYM --rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ -- conftest$ac_exeext conftest.$ac_ext -+rm -f core conftest.err conftest.$ac_objext \ -+ conftest$ac_exeext conftest.$ac_ext - done - fi - LIBS=$ac_func_search_ext_save_LIBS - fi --{ $as_echo "$as_me:$LINENO: result: $ac_cv_search_ext_backtrace" >&5 -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ext_backtrace" >&5 - $as_echo "$ac_cv_search_ext_backtrace" >&6; } --if test "$ac_cv_search_ext_backtrace" != no; then -+if test "$ac_cv_search_ext_backtrace" != no; then : - test "$ac_cv_search_ext_backtrace" = "none required" || EXECINFO_LIBS="$ac_cv_search_ext_backtrace $EXECINFO_LIBS" - - fi - - -- -- - ac_check_func_ext_save_LIBS=$LIBS - LIBS="$EXECINFO_LIBS $LIBS" -- { $as_echo "$as_me:$LINENO: checking for backtrace" >&5 -+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for backtrace" >&5 - $as_echo_n "checking for backtrace... " >&6; } --if test "${ac_cv_func_ext_backtrace+set}" = set; then -+if test "${ac_cv_func_ext_backtrace+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 -+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ - /* Define backtrace to an innocuous variant, in case declares backtrace. - For example, HP-UX 11i declares gettimeofday. */ -@@ -91543,43 +40542,18 @@ - return 0; - } - _ACEOF --rm -f conftest.$ac_objext conftest$ac_exeext --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 -- $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 -+if ac_fn_c_try_link "$LINENO"; then : - ac_cv_func_ext_backtrace=yes - else -- $as_echo "$as_me: failed program was:" >&5 --sed 's/^/| /' conftest.$ac_ext >&5 -- -- ac_cv_func_ext_backtrace=no -+ ac_cv_func_ext_backtrace=no - fi -- --rm -rf conftest.dSYM --rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ -- conftest$ac_exeext conftest.$ac_ext -+rm -f core conftest.err conftest.$ac_objext \ -+ conftest$ac_exeext conftest.$ac_ext - fi --{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_ext_backtrace" >&5 -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_ext_backtrace" >&5 - $as_echo "$ac_cv_func_ext_backtrace" >&6; } - LIBS=$ac_check_func_ext_save_LIBS -- if test $ac_cv_func_ext_backtrace = yes; then -+ if test $ac_cv_func_ext_backtrace = yes; then : - cat >>confdefs.h <<_ACEOF - #define HAVE_BACKTRACE 1 - _ACEOF -@@ -91587,7 +40561,6 @@ - fi - - -- - if test x"$ac_cv_header_execinfo_h" = x"yes" -a x"$ac_cv_func_ext_backtrace" = x"yes";then - - MAKE_SETTINGS="$MAKE_SETTINGS -@@ -91619,102 +40592,12 @@ - - - -- -- -- - for ac_func in sigprocmask sigblock sigaction --do --as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` --{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 --$as_echo_n "checking for $ac_func... " >&6; } --if { as_var=$as_ac_var; eval "test \"\${$as_var+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. */ --/* Define $ac_func to an innocuous variant, in case declares $ac_func. -- For example, HP-UX 11i declares gettimeofday. */ --#define $ac_func innocuous_$ac_func -- --/* System header to define __stub macros and hopefully few prototypes, -- which can conflict with char $ac_func (); below. -- Prefer to if __STDC__ is defined, since -- exists even on freestanding compilers. */ -- --#ifdef __STDC__ --# include --#else --# include --#endif -- --#undef $ac_func -- --/* 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 --char $ac_func (); --/* 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_$ac_func || defined __stub___$ac_func --choke me --#endif -- --int --main () --{ --return $ac_func (); -- ; -- return 0; --} --_ACEOF --rm -f conftest.$ac_objext conftest$ac_exeext --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 -- $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 -- eval "$as_ac_var=yes" --else -- $as_echo "$as_me: failed program was:" >&5 --sed 's/^/| /' conftest.$ac_ext >&5 -- -- eval "$as_ac_var=no" --fi -- --rm -rf conftest.dSYM --rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ -- conftest$ac_exeext conftest.$ac_ext --fi --ac_res=`eval 'as_val=${'$as_ac_var'} -- $as_echo "$as_val"'` -- { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 --$as_echo "$ac_res" >&6; } --as_val=`eval 'as_val=${'$as_ac_var'} -- $as_echo "$as_val"'` -- if test "x$as_val" = x""yes; then -+do : -+ as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -+ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" -+eval as_val=\$$as_ac_var -+ if test "x$as_val" = x""yes; then : - cat >>confdefs.h <<_ACEOF - #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 - _ACEOF -@@ -91723,102 +40606,12 @@ - done - - -- - for ac_func in setsid --do --as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` --{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 --$as_echo_n "checking for $ac_func... " >&6; } --if { as_var=$as_ac_var; eval "test \"\${$as_var+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. */ --/* Define $ac_func to an innocuous variant, in case declares $ac_func. -- For example, HP-UX 11i declares gettimeofday. */ --#define $ac_func innocuous_$ac_func -- --/* System header to define __stub macros and hopefully few prototypes, -- which can conflict with char $ac_func (); below. -- Prefer to if __STDC__ is defined, since -- exists even on freestanding compilers. */ -- --#ifdef __STDC__ --# include --#else --# include --#endif -- --#undef $ac_func -- --/* 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 --char $ac_func (); --/* 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_$ac_func || defined __stub___$ac_func --choke me --#endif -- --int --main () --{ --return $ac_func (); -- ; -- return 0; --} --_ACEOF --rm -f conftest.$ac_objext conftest$ac_exeext --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 -- $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 -- eval "$as_ac_var=yes" --else -- $as_echo "$as_me: failed program was:" >&5 --sed 's/^/| /' conftest.$ac_ext >&5 -- -- eval "$as_ac_var=no" --fi -- --rm -rf conftest.dSYM --rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ -- conftest$ac_exeext conftest.$ac_ext --fi --ac_res=`eval 'as_val=${'$as_ac_var'} -- $as_echo "$as_val"'` -- { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 --$as_echo "$ac_res" >&6; } --as_val=`eval 'as_val=${'$as_ac_var'} -- $as_echo "$as_val"'` -- if test "x$as_val" = x""yes; then -+do : -+ ac_fn_c_check_func "$LINENO" "setsid" "ac_cv_func_setsid" -+if test "x$ac_cv_func_setsid" = x""yes; then : - cat >>confdefs.h <<_ACEOF --#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 -+#define HAVE_SETSID 1 - _ACEOF - - fi -@@ -91827,221 +40620,33 @@ - - ################################################# - # these tests are taken from the GNU fileutils package --{ $as_echo "$as_me:$LINENO: checking how to get filesystem space usage..." >&5 --$as_echo "$as_me: checking how to get filesystem space usage..." >&6;} -- -- -- --for ac_header in sys/statfs.h sys/statvfs.h sys/vfs.h --do --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? --{ $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 --cat confdefs.h >>conftest.$ac_ext --cat >>conftest.$ac_ext <<_ACEOF --/* end confdefs.h. */ --$ac_includes_default --#include <$ac_header> --_ACEOF --rm -f conftest.$ac_objext --if { (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_header_compiler=yes --else -- $as_echo "$as_me: failed program was:" >&5 --sed 's/^/| /' conftest.$ac_ext >&5 -- -- ac_header_compiler=no --fi -- --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? --{ $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 --cat confdefs.h >>conftest.$ac_ext --cat >>conftest.$ac_ext <<_ACEOF --/* end confdefs.h. */ --#include <$ac_header> --_ACEOF --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 -- $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 -- $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 --{ $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: ) -- { $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:* ) -- { $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 samba-technical@samba.org ## --## ---------------------------------------- ## --_ASBOX -- ) | sed "s/^/$as_me: WARNING: /" >&2 -- ;; --esac --{ $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 --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 --as_val=`eval 'as_val=${'$as_ac_Header'} -- $as_echo "$as_val"'` -- if test "x$as_val" = x""yes; then -- cat >>confdefs.h <<_ACEOF --#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 --_ACEOF -- --fi -- --done -- -- -- --for ac_header in sys/mount.h --do --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. */ --_ACEOF --cat confdefs.h >>conftest.$ac_ext --cat >>conftest.$ac_ext <<_ACEOF --/* end confdefs.h. */ --$ac_includes_default --#ifdef HAVE_SYS_PARAM_H --#include --#endif -- --#include <$ac_header> --_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 -- eval "$as_ac_Header=yes" --else -- $as_echo "$as_me: failed program was:" >&5 --sed 's/^/| /' conftest.$ac_ext >&5 -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to get filesystem space usage..." >&5 -+$as_echo "$as_me: checking how to get filesystem space usage..." >&6;} -+for ac_header in sys/statfs.h sys/statvfs.h sys/vfs.h -+do : -+ as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -+ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" -+eval as_val=\$$as_ac_Header -+ if test "x$as_val" = x""yes; then : -+ cat >>confdefs.h <<_ACEOF -+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -+_ACEOF - -- eval "$as_ac_Header=no" - fi - --rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext --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; } --as_val=`eval 'as_val=${'$as_ac_Header'} -- $as_echo "$as_val"'` -- if test "x$as_val" = x""yes; then -+done -+ -+ -+for ac_header in sys/mount.h -+do : -+ ac_fn_c_check_header_compile "$LINENO" "sys/mount.h" "ac_cv_header_sys_mount_h" "$ac_includes_default -+#ifdef HAVE_SYS_PARAM_H -+#include -+#endif -+" -+if test "x$ac_cv_header_sys_mount_h" = x""yes; then : - cat >>confdefs.h <<_ACEOF --#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -+#define HAVE_SYS_MOUNT_H 1 - _ACEOF - - fi -@@ -92054,19 +40659,15 @@ - # Test for statvfs64. - if test $space = no; then - # SVR4 -- { $as_echo "$as_me:$LINENO: checking statvfs64 function (SVR4)" >&5 -+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking statvfs64 function (SVR4)" >&5 - $as_echo_n "checking statvfs64 function (SVR4)... " >&6; } --if test "${fu_cv_sys_stat_statvfs64+set}" = set; then -+if test "${fu_cv_sys_stat_statvfs64+set}" = set; then : - $as_echo_n "(cached) " >&6 - else -- if test "$cross_compiling" = yes; then -+ if test "$cross_compiling" = yes; then : - fu_cv_sys_stat_statvfs64=cross - else -- cat >conftest.$ac_ext <<_ACEOF --/* confdefs.h. */ --_ACEOF --cat confdefs.h >>conftest.$ac_ext --cat >>conftest.$ac_ext <<_ACEOF -+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ - - #if defined(HAVE_UNISTD_H) -@@ -92080,51 +40681,22 @@ - exit (statvfs64 (".", &fsd)); - } - _ACEOF --rm -f conftest$ac_exeext --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=$? -- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 -- (exit $ac_status); } && { ac_try='./conftest$ac_exeext' -- { (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=$? -- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 -- (exit $ac_status); }; }; then -+if ac_fn_c_try_run "$LINENO"; then : - fu_cv_sys_stat_statvfs64=yes - else -- $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 ) --fu_cv_sys_stat_statvfs64=no -+ fu_cv_sys_stat_statvfs64=no - fi --rm -rf conftest.dSYM --rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext -+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ -+ conftest.$ac_objext conftest.beam conftest.$ac_ext - fi - -- - fi --{ $as_echo "$as_me:$LINENO: result: $fu_cv_sys_stat_statvfs64" >&5 -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $fu_cv_sys_stat_statvfs64" >&5 - $as_echo "$fu_cv_sys_stat_statvfs64" >&6; } - if test $fu_cv_sys_stat_statvfs64 = yes; then - space=yes - --cat >>confdefs.h <<\_ACEOF --#define STAT_STATVFS64 1 --_ACEOF -+$as_echo "#define STAT_STATVFS64 1" >>confdefs.h - - fi - fi -@@ -92137,16 +40709,12 @@ - # is what it gets when this test fails. - if test $space = no; then - # SVR4 -- { $as_echo "$as_me:$LINENO: checking statvfs function (SVR4)" >&5 -+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking statvfs function (SVR4)" >&5 - $as_echo_n "checking statvfs function (SVR4)... " >&6; } --if test "${fu_cv_sys_stat_statvfs+set}" = set; then -+if test "${fu_cv_sys_stat_statvfs+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 -+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ - #include - #include -@@ -92158,64 +40726,33 @@ - return 0; - } - _ACEOF --rm -f conftest.$ac_objext conftest$ac_exeext --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 -- $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 -+if ac_fn_c_try_link "$LINENO"; then : - fu_cv_sys_stat_statvfs=yes - else -- $as_echo "$as_me: failed program was:" >&5 --sed 's/^/| /' conftest.$ac_ext >&5 -- -- fu_cv_sys_stat_statvfs=no -+ fu_cv_sys_stat_statvfs=no - fi -- --rm -rf conftest.dSYM --rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ -- conftest$ac_exeext conftest.$ac_ext -+rm -f core conftest.err conftest.$ac_objext \ -+ conftest$ac_exeext conftest.$ac_ext - fi --{ $as_echo "$as_me:$LINENO: result: $fu_cv_sys_stat_statvfs" >&5 -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $fu_cv_sys_stat_statvfs" >&5 - $as_echo "$fu_cv_sys_stat_statvfs" >&6; } - if test $fu_cv_sys_stat_statvfs = yes; then - space=yes - --cat >>confdefs.h <<\_ACEOF --#define STAT_STATVFS 1 --_ACEOF -+$as_echo "#define STAT_STATVFS 1" >>confdefs.h - - fi - fi - - # fsusage.c assumes that statvfs has an f_frsize entry. Some weird - # systems use f_bsize. --{ $as_echo "$as_me:$LINENO: checking that statvfs.f_frsize works" >&5 -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking that statvfs.f_frsize works" >&5 - $as_echo_n "checking that statvfs.f_frsize works... " >&6; } --if test "${samba_cv_frsize+set}" = set; then -+if test "${samba_cv_frsize+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 -+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ - #include - #include -@@ -92227,59 +40764,32 @@ - 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 -+if ac_fn_c_try_compile "$LINENO"; then : - samba_cv_frsize=yes - else -- $as_echo "$as_me: failed program was:" >&5 --sed 's/^/| /' conftest.$ac_ext >&5 -- -- samba_cv_frsize=no -+ samba_cv_frsize=no - fi -- - rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi --{ $as_echo "$as_me:$LINENO: result: $samba_cv_frsize" >&5 -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $samba_cv_frsize" >&5 - $as_echo "$samba_cv_frsize" >&6; } - if test x"$samba_cv_frsize" = x"yes"; then - --cat >>confdefs.h <<\_ACEOF --#define HAVE_FRSIZE 1 --_ACEOF -+$as_echo "#define HAVE_FRSIZE 1" >>confdefs.h - - fi - - if test $space = no; then - # DEC Alpha running OSF/1 -- { $as_echo "$as_me:$LINENO: checking for 3-argument statfs function (DEC OSF/1)" >&5 -+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for 3-argument statfs function (DEC OSF/1)" >&5 - $as_echo_n "checking for 3-argument statfs function (DEC OSF/1)... " >&6; } -- if test "${fu_cv_sys_stat_statfs3_osf1+set}" = set; then -+ if test "${fu_cv_sys_stat_statfs3_osf1+set}" = set; then : - $as_echo_n "(cached) " >&6 - else -- if test "$cross_compiling" = yes; then -+ if test "$cross_compiling" = yes; then : - fu_cv_sys_stat_statfs3_osf1=no - else -- cat >conftest.$ac_ext <<_ACEOF --/* confdefs.h. */ --_ACEOF --cat confdefs.h >>conftest.$ac_ext --cat >>conftest.$ac_ext <<_ACEOF -+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ - - #include -@@ -92292,71 +40802,38 @@ - exit (statfs (".", &fsd, sizeof (struct statfs))); - } - _ACEOF --rm -f conftest$ac_exeext --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=$? -- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 -- (exit $ac_status); } && { ac_try='./conftest$ac_exeext' -- { (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=$? -- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 -- (exit $ac_status); }; }; then -+if ac_fn_c_try_run "$LINENO"; then : - fu_cv_sys_stat_statfs3_osf1=yes - else -- $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 ) --fu_cv_sys_stat_statfs3_osf1=no -+ fu_cv_sys_stat_statfs3_osf1=no - fi --rm -rf conftest.dSYM --rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext -+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ -+ conftest.$ac_objext conftest.beam conftest.$ac_ext - fi - -- - fi - -- { $as_echo "$as_me:$LINENO: result: $fu_cv_sys_stat_statfs3_osf1" >&5 -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $fu_cv_sys_stat_statfs3_osf1" >&5 - $as_echo "$fu_cv_sys_stat_statfs3_osf1" >&6; } - if test $fu_cv_sys_stat_statfs3_osf1 = yes; then - space=yes - --cat >>confdefs.h <<\_ACEOF --#define STAT_STATFS3_OSF1 1 --_ACEOF -+$as_echo "#define STAT_STATFS3_OSF1 1" >>confdefs.h - - fi - fi - - if test $space = no; then - # AIX -- { $as_echo "$as_me:$LINENO: checking for two-argument statfs with statfs.bsize member (AIX, 4.3BSD)" >&5 -+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for two-argument statfs with statfs.bsize member (AIX, 4.3BSD)" >&5 - $as_echo_n "checking for two-argument statfs with statfs.bsize member (AIX, 4.3BSD)... " >&6; } -- if test "${fu_cv_sys_stat_statfs2_bsize+set}" = set; then -+ if test "${fu_cv_sys_stat_statfs2_bsize+set}" = set; then : - $as_echo_n "(cached) " >&6 - else -- if test "$cross_compiling" = yes; then -+ if test "$cross_compiling" = yes; then : - fu_cv_sys_stat_statfs2_bsize=no - else -- cat >conftest.$ac_ext <<_ACEOF --/* confdefs.h. */ --_ACEOF --cat confdefs.h >>conftest.$ac_ext --cat >>conftest.$ac_ext <<_ACEOF -+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ - - #ifdef HAVE_SYS_PARAM_H -@@ -92375,71 +40852,38 @@ - exit (statfs (".", &fsd)); - } - _ACEOF --rm -f conftest$ac_exeext --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=$? -- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 -- (exit $ac_status); } && { ac_try='./conftest$ac_exeext' -- { (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=$? -- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 -- (exit $ac_status); }; }; then -+if ac_fn_c_try_run "$LINENO"; then : - fu_cv_sys_stat_statfs2_bsize=yes - else -- $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 ) --fu_cv_sys_stat_statfs2_bsize=no -+ fu_cv_sys_stat_statfs2_bsize=no - fi --rm -rf conftest.dSYM --rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext -+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ -+ conftest.$ac_objext conftest.beam conftest.$ac_ext - fi - -- - fi - -- { $as_echo "$as_me:$LINENO: result: $fu_cv_sys_stat_statfs2_bsize" >&5 -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $fu_cv_sys_stat_statfs2_bsize" >&5 - $as_echo "$fu_cv_sys_stat_statfs2_bsize" >&6; } - if test $fu_cv_sys_stat_statfs2_bsize = yes; then - space=yes - --cat >>confdefs.h <<\_ACEOF --#define STAT_STATFS2_BSIZE 1 --_ACEOF -+$as_echo "#define STAT_STATFS2_BSIZE 1" >>confdefs.h - - fi - fi - - if test $space = no; then - # SVR3 -- { $as_echo "$as_me:$LINENO: checking for four-argument statfs (AIX-3.2.5, SVR3)" >&5 -+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for four-argument statfs (AIX-3.2.5, SVR3)" >&5 - $as_echo_n "checking for four-argument statfs (AIX-3.2.5, SVR3)... " >&6; } -- if test "${fu_cv_sys_stat_statfs4+set}" = set; then -+ if test "${fu_cv_sys_stat_statfs4+set}" = set; then : - $as_echo_n "(cached) " >&6 - else -- if test "$cross_compiling" = yes; then -+ if test "$cross_compiling" = yes; then : - fu_cv_sys_stat_statfs4=no - else -- cat >conftest.$ac_ext <<_ACEOF --/* confdefs.h. */ --_ACEOF --cat confdefs.h >>conftest.$ac_ext --cat >>conftest.$ac_ext <<_ACEOF -+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ - #include - #include -@@ -92449,71 +40893,38 @@ - exit (statfs (".", &fsd, sizeof fsd, 0)); - } - _ACEOF --rm -f conftest$ac_exeext --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=$? -- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 -- (exit $ac_status); } && { ac_try='./conftest$ac_exeext' -- { (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=$? -- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 -- (exit $ac_status); }; }; then -+if ac_fn_c_try_run "$LINENO"; then : - fu_cv_sys_stat_statfs4=yes - else -- $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 ) --fu_cv_sys_stat_statfs4=no -+ fu_cv_sys_stat_statfs4=no - fi --rm -rf conftest.dSYM --rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext -+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ -+ conftest.$ac_objext conftest.beam conftest.$ac_ext - fi - -- - fi - -- { $as_echo "$as_me:$LINENO: result: $fu_cv_sys_stat_statfs4" >&5 -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $fu_cv_sys_stat_statfs4" >&5 - $as_echo "$fu_cv_sys_stat_statfs4" >&6; } - if test $fu_cv_sys_stat_statfs4 = yes; then - space=yes - --cat >>confdefs.h <<\_ACEOF --#define STAT_STATFS4 1 --_ACEOF -+$as_echo "#define STAT_STATFS4 1" >>confdefs.h - - fi - fi - - if test $space = no; then - # 4.4BSD and NetBSD -- { $as_echo "$as_me:$LINENO: checking for two-argument statfs with statfs.fsize member (4.4BSD and NetBSD)" >&5 -+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for two-argument statfs with statfs.fsize member (4.4BSD and NetBSD)" >&5 - $as_echo_n "checking for two-argument statfs with statfs.fsize member (4.4BSD and NetBSD)... " >&6; } -- if test "${fu_cv_sys_stat_statfs2_fsize+set}" = set; then -+ if test "${fu_cv_sys_stat_statfs2_fsize+set}" = set; then : - $as_echo_n "(cached) " >&6 - else -- if test "$cross_compiling" = yes; then -+ if test "$cross_compiling" = yes; then : - fu_cv_sys_stat_statfs2_fsize=no - else -- cat >conftest.$ac_ext <<_ACEOF --/* confdefs.h. */ --_ACEOF --cat confdefs.h >>conftest.$ac_ext --cat >>conftest.$ac_ext <<_ACEOF -+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ - #include - #ifdef HAVE_SYS_PARAM_H -@@ -92529,71 +40940,38 @@ - exit (statfs (".", &fsd)); - } - _ACEOF --rm -f conftest$ac_exeext --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=$? -- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 -- (exit $ac_status); } && { ac_try='./conftest$ac_exeext' -- { (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=$? -- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 -- (exit $ac_status); }; }; then -+if ac_fn_c_try_run "$LINENO"; then : - fu_cv_sys_stat_statfs2_fsize=yes - else -- $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 ) --fu_cv_sys_stat_statfs2_fsize=no -+ fu_cv_sys_stat_statfs2_fsize=no - fi --rm -rf conftest.dSYM --rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext -+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ -+ conftest.$ac_objext conftest.beam conftest.$ac_ext - fi - -- - fi - -- { $as_echo "$as_me:$LINENO: result: $fu_cv_sys_stat_statfs2_fsize" >&5 -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $fu_cv_sys_stat_statfs2_fsize" >&5 - $as_echo "$fu_cv_sys_stat_statfs2_fsize" >&6; } - if test $fu_cv_sys_stat_statfs2_fsize = yes; then - space=yes - --cat >>confdefs.h <<\_ACEOF --#define STAT_STATFS2_FSIZE 1 --_ACEOF -+$as_echo "#define STAT_STATFS2_FSIZE 1" >>confdefs.h - - fi - fi - - if test $space = no; then - # Ultrix -- { $as_echo "$as_me:$LINENO: checking for two-argument statfs with struct fs_data (Ultrix)" >&5 -+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for two-argument statfs with struct fs_data (Ultrix)" >&5 - $as_echo_n "checking for two-argument statfs with struct fs_data (Ultrix)... " >&6; } -- if test "${fu_cv_sys_stat_fs_data+set}" = set; then -+ if test "${fu_cv_sys_stat_fs_data+set}" = set; then : - $as_echo_n "(cached) " >&6 - else -- if test "$cross_compiling" = yes; then -+ if test "$cross_compiling" = yes; then : - fu_cv_sys_stat_fs_data=no - else -- cat >conftest.$ac_ext <<_ACEOF --/* confdefs.h. */ --_ACEOF --cat confdefs.h >>conftest.$ac_ext --cat >>conftest.$ac_ext <<_ACEOF -+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ - #include - #ifdef HAVE_SYS_PARAM_H -@@ -92613,201 +40991,33 @@ - exit (statfs (".", &fsd) != 1); - } - _ACEOF --rm -f conftest$ac_exeext --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=$? -- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 -- (exit $ac_status); } && { ac_try='./conftest$ac_exeext' -- { (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=$? -- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 -- (exit $ac_status); }; }; then -+if ac_fn_c_try_run "$LINENO"; then : - fu_cv_sys_stat_fs_data=yes - else -- $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 ) --fu_cv_sys_stat_fs_data=no -+ fu_cv_sys_stat_fs_data=no - fi --rm -rf conftest.dSYM --rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext -+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ -+ conftest.$ac_objext conftest.beam conftest.$ac_ext - fi - -- - fi - -- { $as_echo "$as_me:$LINENO: result: $fu_cv_sys_stat_fs_data" >&5 -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $fu_cv_sys_stat_fs_data" >&5 - $as_echo "$fu_cv_sys_stat_fs_data" >&6; } - if test $fu_cv_sys_stat_fs_data = yes; then - space=yes - --cat >>confdefs.h <<\_ACEOF --#define STAT_STATFS2_FS_DATA 1 --_ACEOF -+$as_echo "#define STAT_STATFS2_FS_DATA 1" >>confdefs.h - - fi - fi - - - - for ac_header in sys/attributes.h attr/xattr.h sys/xattr.h + for ac_header in pty.h util.h libutil.h -do -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 @@ -97923,7 +97510,3639 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF -@@ -92816,19 +41026,15 @@ +@@ -92591,23 +40714,17 @@ + + + +- + ac_check_lib_ext_save_LIBS=$LIBS + LIBS="-lutil $OPENPTY_LIBS $LIBS" + + + +- +- { $as_echo "$as_me:$LINENO: checking for openpty in -lutil" >&5 ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for openpty in -lutil" >&5 + $as_echo_n "checking for openpty in -lutil... " >&6; } +-if test "${ac_cv_lib_ext_util_openpty+set}" = set; then ++if test "${ac_cv_lib_ext_util_openpty+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 ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + + /* Override any GCC internal prototype to avoid an error. +@@ -92625,54 +40742,28 @@ + return 0; + } + _ACEOF +-rm -f conftest.$ac_objext conftest$ac_exeext +-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 +- $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 ++if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_ext_util_openpty=yes; + ac_cv_lib_ext_util=yes + else +- $as_echo "$as_me: failed program was:" >&5 +-sed 's/^/| /' conftest.$ac_ext >&5 +- +- ac_cv_lib_ext_util_openpty=no; ++ ac_cv_lib_ext_util_openpty=no; + ac_cv_lib_ext_util=no + fi +- +-rm -rf conftest.dSYM +-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ +- conftest$ac_exeext conftest.$ac_ext ++rm -f core conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + + fi +-{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_ext_util_openpty" >&5 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ext_util_openpty" >&5 + $as_echo "$ac_cv_lib_ext_util_openpty" >&6; } +- if test $ac_cv_lib_ext_util_openpty = yes; then ++ if test $ac_cv_lib_ext_util_openpty = yes; then : + cat >>confdefs.h <<_ACEOF + #define HAVE_OPENPTY 1 + _ACEOF + + fi +- + LIBS=$ac_check_lib_ext_save_LIBS + +-if test $ac_cv_lib_ext_util = yes; then ++if test $ac_cv_lib_ext_util = yes; then : + cat >>confdefs.h <<_ACEOF + #define HAVE_LIBUTIL 1 + _ACEOF +@@ -92689,7 +40780,6 @@ + fi + + +- + MAKE_SETTINGS="$MAKE_SETTINGS + OPENPTY_ENABLE = YES + " +@@ -92709,23 +40799,17 @@ + + + +- + ac_check_lib_ext_save_LIBS=$LIBS + LIBS="-lintl $INTL_LIBS $LIBS" + + + +- +- { $as_echo "$as_me:$LINENO: checking for gettext in -lintl" >&5 ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gettext in -lintl" >&5 + $as_echo_n "checking for gettext in -lintl... " >&6; } +-if test "${ac_cv_lib_ext_intl_gettext+set}" = set; then ++if test "${ac_cv_lib_ext_intl_gettext+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 ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + + /* Override any GCC internal prototype to avoid an error. +@@ -92743,54 +40827,28 @@ + return 0; + } + _ACEOF +-rm -f conftest.$ac_objext conftest$ac_exeext +-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 +- $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 ++if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_ext_intl_gettext=yes; + ac_cv_lib_ext_intl=yes + else +- $as_echo "$as_me: failed program was:" >&5 +-sed 's/^/| /' conftest.$ac_ext >&5 +- +- ac_cv_lib_ext_intl_gettext=no; ++ ac_cv_lib_ext_intl_gettext=no; + ac_cv_lib_ext_intl=no + fi +- +-rm -rf conftest.dSYM +-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ +- conftest$ac_exeext conftest.$ac_ext ++rm -f core conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + + fi +-{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_ext_intl_gettext" >&5 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ext_intl_gettext" >&5 + $as_echo "$ac_cv_lib_ext_intl_gettext" >&6; } +- if test $ac_cv_lib_ext_intl_gettext = yes; then ++ if test $ac_cv_lib_ext_intl_gettext = yes; then : + cat >>confdefs.h <<_ACEOF + #define HAVE_GETTEXT 1 + _ACEOF + + fi +- + LIBS=$ac_check_lib_ext_save_LIBS + +-if test $ac_cv_lib_ext_intl = yes; then ++if test $ac_cv_lib_ext_intl = yes; then : + cat >>confdefs.h <<_ACEOF + #define HAVE_LIBINTL 1 + _ACEOF +@@ -92807,7 +40865,6 @@ + fi + + +- + MAKE_SETTINGS="$MAKE_SETTINGS + INTL_ENABLE = YES + " +@@ -92831,150 +40888,12 @@ + + + +- +- + for ac_header in arpa/nameser.h dns.h +-do +-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? +-{ $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 +-cat confdefs.h >>conftest.$ac_ext +-cat >>conftest.$ac_ext <<_ACEOF +-/* end confdefs.h. */ +-$ac_includes_default +-#include <$ac_header> +-_ACEOF +-rm -f conftest.$ac_objext +-if { (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_header_compiler=yes +-else +- $as_echo "$as_me: failed program was:" >&5 +-sed 's/^/| /' conftest.$ac_ext >&5 +- +- ac_header_compiler=no +-fi +- +-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? +-{ $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 +-cat confdefs.h >>conftest.$ac_ext +-cat >>conftest.$ac_ext <<_ACEOF +-/* end confdefs.h. */ +-#include <$ac_header> +-_ACEOF +-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 +- $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 +- $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 +-{ $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: ) +- { $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:* ) +- { $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 samba-technical@samba.org ## +-## ---------------------------------------- ## +-_ASBOX +- ) | sed "s/^/$as_me: WARNING: /" >&2 +- ;; +-esac +-{ $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 +-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 +-as_val=`eval 'as_val=${'$as_ac_Header'} +- $as_echo "$as_val"'` +- if test "x$as_val" = x""yes; then ++do : ++ as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ++ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" ++eval as_val=\$$as_ac_Header ++ if test "x$as_val" = x""yes; then : + cat >>confdefs.h <<_ACEOF + #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 + _ACEOF +@@ -92984,22 +40903,9 @@ + done + + +- + for ac_header in resolv.h +-do +-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. */ +-_ACEOF +-cat confdefs.h >>conftest.$ac_ext +-cat >>conftest.$ac_ext <<_ACEOF +-/* end confdefs.h. */ +-$ac_includes_default ++do : ++ ac_fn_c_check_header_compile "$LINENO" "resolv.h" "ac_cv_header_resolv_h" "$ac_includes_default + #ifdef HAVE_SYS_TYPES_H + #include + #endif +@@ -93010,46 +40916,10 @@ + #include + #endif + +- +-#include <$ac_header> +-_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 +- eval "$as_ac_Header=yes" +-else +- $as_echo "$as_me: failed program was:" >&5 +-sed 's/^/| /' conftest.$ac_ext >&5 +- +- eval "$as_ac_Header=no" +-fi +- +-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +-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; } +-as_val=`eval 'as_val=${'$as_ac_Header'} +- $as_echo "$as_val"'` +- if test "x$as_val" = x""yes; then ++" ++if test "x$ac_cv_header_resolv_h" = x""yes; then : + cat >>confdefs.h <<_ACEOF +-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 ++#define HAVE_RESOLV_H 1 + _ACEOF + + fi +@@ -93061,9 +40931,9 @@ + + + +-{ $as_echo "$as_me:$LINENO: checking for res_search" >&5 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for res_search" >&5 + $as_echo_n "checking for res_search... " >&6; } +-if test "${ac_cv_funclib_res_search+set}" = set; then ++if test "${ac_cv_funclib_res_search+set}" = set; then : + $as_echo_n "(cached) " >&6 + else + +@@ -93078,11 +40948,7 @@ + *) ac_lib="-l$ac_lib" ;; + esac + LIBS=" $ac_lib $ac_save_LIBS" +- cat >conftest.$ac_ext <<_ACEOF +-/* confdefs.h. */ +-_ACEOF +-cat confdefs.h >>conftest.$ac_ext +-cat >>conftest.$ac_ext <<_ACEOF ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + + #include +@@ -93104,148 +40970,31 @@ + { + res_search(0,0,0,0,0) + ; +- return 0; +-} +-_ACEOF +-rm -f conftest.$ac_objext conftest$ac_exeext +-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 +- $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 +- eval "if test -n \"$ac_lib\";then ac_cv_funclib_res_search=$ac_lib; else ac_cv_funclib_res_search=yes; fi";break +-else +- $as_echo "$as_me: failed program was:" >&5 +-sed 's/^/| /' conftest.$ac_ext >&5 +- +- +-fi +- +-rm -rf conftest.dSYM +-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ +- conftest$ac_exeext conftest.$ac_ext +- done +- eval "ac_cv_funclib_res_search=\${ac_cv_funclib_res_search-no}" +- LIBS="$ac_save_LIBS" +-fi +- +-fi +- +- +-eval "ac_res=\$ac_cv_funclib_res_search" +- +-if false; then +- +-for ac_func in res_search +-do +-as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +-{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 +-$as_echo_n "checking for $ac_func... " >&6; } +-if { as_var=$as_ac_var; eval "test \"\${$as_var+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. */ +-/* Define $ac_func to an innocuous variant, in case declares $ac_func. +- For example, HP-UX 11i declares gettimeofday. */ +-#define $ac_func innocuous_$ac_func +- +-/* System header to define __stub macros and hopefully few prototypes, +- which can conflict with char $ac_func (); below. +- Prefer to if __STDC__ is defined, since +- exists even on freestanding compilers. */ +- +-#ifdef __STDC__ +-# include +-#else +-# include +-#endif +- +-#undef $ac_func +- +-/* 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 +-char $ac_func (); +-/* 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_$ac_func || defined __stub___$ac_func +-choke me +-#endif +- +-int +-main () +-{ +-return $ac_func (); +- ; +- return 0; +-} +-_ACEOF +-rm -f conftest.$ac_objext conftest$ac_exeext +-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 +- $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 +- eval "$as_ac_var=yes" +-else +- $as_echo "$as_me: failed program was:" >&5 +-sed 's/^/| /' conftest.$ac_ext >&5 +- +- eval "$as_ac_var=no" ++ return 0; ++} ++_ACEOF ++if ac_fn_c_try_link "$LINENO"; then : ++ eval "if test -n \"$ac_lib\";then ac_cv_funclib_res_search=$ac_lib; else ac_cv_funclib_res_search=yes; fi";break ++fi ++rm -f core conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext ++ done ++ eval "ac_cv_funclib_res_search=\${ac_cv_funclib_res_search-no}" ++ LIBS="$ac_save_LIBS" + fi + +-rm -rf conftest.dSYM +-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ +- conftest$ac_exeext conftest.$ac_ext + fi +-ac_res=`eval 'as_val=${'$as_ac_var'} +- $as_echo "$as_val"'` +- { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +-$as_echo "$ac_res" >&6; } +-as_val=`eval 'as_val=${'$as_ac_var'} +- $as_echo "$as_val"'` +- if test "x$as_val" = x""yes; then ++ ++ ++eval "ac_res=\$ac_cv_funclib_res_search" ++ ++if false; then ++ for ac_func in res_search ++do : ++ ac_fn_c_check_func "$LINENO" "res_search" "ac_cv_func_res_search" ++if test "x$ac_cv_func_res_search" = x""yes; then : + cat >>confdefs.h <<_ACEOF +-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 ++#define HAVE_RES_SEARCH 1 + _ACEOF + + fi +@@ -93265,13 +41014,13 @@ + #define $ac_tr_func 1 + _ACEOF + +- { $as_echo "$as_me:$LINENO: result: yes" >&5 ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 + $as_echo "yes" >&6; } + ;; + no) + eval "ac_cv_func_res_search=no" + eval "LIB_res_search=" +- { $as_echo "$as_me:$LINENO: result: no" >&5 ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + $as_echo "no" >&6; } + ;; + *) +@@ -93285,7 +41034,7 @@ + #define $ac_tr_lib 1 + _ACEOF + +- { $as_echo "$as_me:$LINENO: result: yes, in $ac_res" >&5 ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes, in $ac_res" >&5 + $as_echo "yes, in $ac_res" >&6; } + ;; + esac +@@ -93300,9 +41049,9 @@ + + + +-{ $as_echo "$as_me:$LINENO: checking for res_nsearch" >&5 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for res_nsearch" >&5 + $as_echo_n "checking for res_nsearch... " >&6; } +-if test "${ac_cv_funclib_res_nsearch+set}" = set; then ++if test "${ac_cv_funclib_res_nsearch+set}" = set; then : + $as_echo_n "(cached) " >&6 + else + +@@ -93317,11 +41066,7 @@ + *) ac_lib="-l$ac_lib" ;; + esac + LIBS=" $ac_lib $ac_save_LIBS" +- cat >conftest.$ac_ext <<_ACEOF +-/* confdefs.h. */ +-_ACEOF +-cat confdefs.h >>conftest.$ac_ext +-cat >>conftest.$ac_ext <<_ACEOF ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + + #include +@@ -93346,38 +41091,11 @@ + return 0; + } + _ACEOF +-rm -f conftest.$ac_objext conftest$ac_exeext +-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 +- $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 ++if ac_fn_c_try_link "$LINENO"; then : + eval "if test -n \"$ac_lib\";then ac_cv_funclib_res_nsearch=$ac_lib; else ac_cv_funclib_res_nsearch=yes; fi";break +-else +- $as_echo "$as_me: failed program was:" >&5 +-sed 's/^/| /' conftest.$ac_ext >&5 +- +- + fi +- +-rm -rf conftest.dSYM +-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ +- conftest$ac_exeext conftest.$ac_ext ++rm -f core conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + done + eval "ac_cv_funclib_res_nsearch=\${ac_cv_funclib_res_nsearch-no}" + LIBS="$ac_save_LIBS" +@@ -93389,102 +41107,12 @@ + eval "ac_res=\$ac_cv_funclib_res_nsearch" + + if false; then +- +-for ac_func in res_nsearch +-do +-as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +-{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 +-$as_echo_n "checking for $ac_func... " >&6; } +-if { as_var=$as_ac_var; eval "test \"\${$as_var+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. */ +-/* Define $ac_func to an innocuous variant, in case declares $ac_func. +- For example, HP-UX 11i declares gettimeofday. */ +-#define $ac_func innocuous_$ac_func +- +-/* System header to define __stub macros and hopefully few prototypes, +- which can conflict with char $ac_func (); below. +- Prefer to if __STDC__ is defined, since +- exists even on freestanding compilers. */ +- +-#ifdef __STDC__ +-# include +-#else +-# include +-#endif +- +-#undef $ac_func +- +-/* 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 +-char $ac_func (); +-/* 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_$ac_func || defined __stub___$ac_func +-choke me +-#endif +- +-int +-main () +-{ +-return $ac_func (); +- ; +- return 0; +-} +-_ACEOF +-rm -f conftest.$ac_objext conftest$ac_exeext +-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 +- $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 +- eval "$as_ac_var=yes" +-else +- $as_echo "$as_me: failed program was:" >&5 +-sed 's/^/| /' conftest.$ac_ext >&5 +- +- eval "$as_ac_var=no" +-fi +- +-rm -rf conftest.dSYM +-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ +- conftest$ac_exeext conftest.$ac_ext +-fi +-ac_res=`eval 'as_val=${'$as_ac_var'} +- $as_echo "$as_val"'` +- { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +-$as_echo "$ac_res" >&6; } +-as_val=`eval 'as_val=${'$as_ac_var'} +- $as_echo "$as_val"'` +- if test "x$as_val" = x""yes; then ++ for ac_func in res_nsearch ++do : ++ ac_fn_c_check_func "$LINENO" "res_nsearch" "ac_cv_func_res_nsearch" ++if test "x$ac_cv_func_res_nsearch" = x""yes; then : + cat >>confdefs.h <<_ACEOF +-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 ++#define HAVE_RES_NSEARCH 1 + _ACEOF + + fi +@@ -93504,13 +41132,13 @@ + #define $ac_tr_func 1 + _ACEOF + +- { $as_echo "$as_me:$LINENO: result: yes" >&5 ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 + $as_echo "yes" >&6; } + ;; + no) + eval "ac_cv_func_res_nsearch=no" + eval "LIB_res_nsearch=" +- { $as_echo "$as_me:$LINENO: result: no" >&5 ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + $as_echo "no" >&6; } + ;; + *) +@@ -93524,7 +41152,7 @@ + #define $ac_tr_lib 1 + _ACEOF + +- { $as_echo "$as_me:$LINENO: result: yes, in $ac_res" >&5 ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes, in $ac_res" >&5 + $as_echo "yes, in $ac_res" >&6; } + ;; + esac +@@ -93539,9 +41167,9 @@ + + + +-{ $as_echo "$as_me:$LINENO: checking for res_ndestroy" >&5 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for res_ndestroy" >&5 + $as_echo_n "checking for res_ndestroy... " >&6; } +-if test "${ac_cv_funclib_res_ndestroy+set}" = set; then ++if test "${ac_cv_funclib_res_ndestroy+set}" = set; then : + $as_echo_n "(cached) " >&6 + else + +@@ -93556,11 +41184,7 @@ + *) ac_lib="-l$ac_lib" ;; + esac + LIBS=" $ac_lib $ac_save_LIBS" +- cat >conftest.$ac_ext <<_ACEOF +-/* confdefs.h. */ +-_ACEOF +-cat confdefs.h >>conftest.$ac_ext +-cat >>conftest.$ac_ext <<_ACEOF ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + + #include +@@ -93585,38 +41209,11 @@ + return 0; + } + _ACEOF +-rm -f conftest.$ac_objext conftest$ac_exeext +-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 +- $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 ++if ac_fn_c_try_link "$LINENO"; then : + eval "if test -n \"$ac_lib\";then ac_cv_funclib_res_ndestroy=$ac_lib; else ac_cv_funclib_res_ndestroy=yes; fi";break +-else +- $as_echo "$as_me: failed program was:" >&5 +-sed 's/^/| /' conftest.$ac_ext >&5 +- +- + fi +- +-rm -rf conftest.dSYM +-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ +- conftest$ac_exeext conftest.$ac_ext ++rm -f core conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + done + eval "ac_cv_funclib_res_ndestroy=\${ac_cv_funclib_res_ndestroy-no}" + LIBS="$ac_save_LIBS" +@@ -93628,102 +41225,12 @@ + eval "ac_res=\$ac_cv_funclib_res_ndestroy" + + if false; then +- +-for ac_func in res_ndestroy +-do +-as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +-{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 +-$as_echo_n "checking for $ac_func... " >&6; } +-if { as_var=$as_ac_var; eval "test \"\${$as_var+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. */ +-/* Define $ac_func to an innocuous variant, in case declares $ac_func. +- For example, HP-UX 11i declares gettimeofday. */ +-#define $ac_func innocuous_$ac_func +- +-/* System header to define __stub macros and hopefully few prototypes, +- which can conflict with char $ac_func (); below. +- Prefer to if __STDC__ is defined, since +- exists even on freestanding compilers. */ +- +-#ifdef __STDC__ +-# include +-#else +-# include +-#endif +- +-#undef $ac_func +- +-/* 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 +-char $ac_func (); +-/* 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_$ac_func || defined __stub___$ac_func +-choke me +-#endif +- +-int +-main () +-{ +-return $ac_func (); +- ; +- return 0; +-} +-_ACEOF +-rm -f conftest.$ac_objext conftest$ac_exeext +-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 +- $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 +- eval "$as_ac_var=yes" +-else +- $as_echo "$as_me: failed program was:" >&5 +-sed 's/^/| /' conftest.$ac_ext >&5 +- +- eval "$as_ac_var=no" +-fi +- +-rm -rf conftest.dSYM +-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ +- conftest$ac_exeext conftest.$ac_ext +-fi +-ac_res=`eval 'as_val=${'$as_ac_var'} +- $as_echo "$as_val"'` +- { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +-$as_echo "$ac_res" >&6; } +-as_val=`eval 'as_val=${'$as_ac_var'} +- $as_echo "$as_val"'` +- if test "x$as_val" = x""yes; then ++ for ac_func in res_ndestroy ++do : ++ ac_fn_c_check_func "$LINENO" "res_ndestroy" "ac_cv_func_res_ndestroy" ++if test "x$ac_cv_func_res_ndestroy" = x""yes; then : + cat >>confdefs.h <<_ACEOF +-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 ++#define HAVE_RES_NDESTROY 1 + _ACEOF + + fi +@@ -93743,13 +41250,13 @@ + #define $ac_tr_func 1 + _ACEOF + +- { $as_echo "$as_me:$LINENO: result: yes" >&5 ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 + $as_echo "yes" >&6; } + ;; + no) + eval "ac_cv_func_res_ndestroy=no" + eval "LIB_res_ndestroy=" +- { $as_echo "$as_me:$LINENO: result: no" >&5 ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + $as_echo "no" >&6; } + ;; + *) +@@ -93763,7 +41270,7 @@ + #define $ac_tr_lib 1 + _ACEOF + +- { $as_echo "$as_me:$LINENO: result: yes, in $ac_res" >&5 ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes, in $ac_res" >&5 + $as_echo "yes, in $ac_res" >&6; } + ;; + esac +@@ -93777,9 +41284,9 @@ + + + +-{ $as_echo "$as_me:$LINENO: checking for dns_search" >&5 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for dns_search" >&5 + $as_echo_n "checking for dns_search... " >&6; } +-if test "${ac_cv_funclib_dns_search+set}" = set; then ++if test "${ac_cv_funclib_dns_search+set}" = set; then : + $as_echo_n "(cached) " >&6 + else + +@@ -93794,11 +41301,7 @@ + *) ac_lib="-l$ac_lib" ;; + esac + LIBS=" $ac_lib $ac_save_LIBS" +- cat >conftest.$ac_ext <<_ACEOF +-/* confdefs.h. */ +-_ACEOF +-cat confdefs.h >>conftest.$ac_ext +-cat >>conftest.$ac_ext <<_ACEOF ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + + #ifdef HAVE_DNS_H +@@ -93813,38 +41316,11 @@ + return 0; + } + _ACEOF +-rm -f conftest.$ac_objext conftest$ac_exeext +-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 +- $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 ++if ac_fn_c_try_link "$LINENO"; then : + eval "if test -n \"$ac_lib\";then ac_cv_funclib_dns_search=$ac_lib; else ac_cv_funclib_dns_search=yes; fi";break +-else +- $as_echo "$as_me: failed program was:" >&5 +-sed 's/^/| /' conftest.$ac_ext >&5 +- +- + fi +- +-rm -rf conftest.dSYM +-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ +- conftest$ac_exeext conftest.$ac_ext ++rm -f core conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + done + eval "ac_cv_funclib_dns_search=\${ac_cv_funclib_dns_search-no}" + LIBS="$ac_save_LIBS" +@@ -93856,102 +41332,12 @@ + eval "ac_res=\$ac_cv_funclib_dns_search" + + if false; then +- +-for ac_func in dns_search +-do +-as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +-{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 +-$as_echo_n "checking for $ac_func... " >&6; } +-if { as_var=$as_ac_var; eval "test \"\${$as_var+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. */ +-/* Define $ac_func to an innocuous variant, in case declares $ac_func. +- For example, HP-UX 11i declares gettimeofday. */ +-#define $ac_func innocuous_$ac_func +- +-/* System header to define __stub macros and hopefully few prototypes, +- which can conflict with char $ac_func (); below. +- Prefer to if __STDC__ is defined, since +- exists even on freestanding compilers. */ +- +-#ifdef __STDC__ +-# include +-#else +-# include +-#endif +- +-#undef $ac_func +- +-/* 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 +-char $ac_func (); +-/* 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_$ac_func || defined __stub___$ac_func +-choke me +-#endif +- +-int +-main () +-{ +-return $ac_func (); +- ; +- return 0; +-} +-_ACEOF +-rm -f conftest.$ac_objext conftest$ac_exeext +-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 +- $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 +- eval "$as_ac_var=yes" +-else +- $as_echo "$as_me: failed program was:" >&5 +-sed 's/^/| /' conftest.$ac_ext >&5 +- +- eval "$as_ac_var=no" +-fi +- +-rm -rf conftest.dSYM +-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ +- conftest$ac_exeext conftest.$ac_ext +-fi +-ac_res=`eval 'as_val=${'$as_ac_var'} +- $as_echo "$as_val"'` +- { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +-$as_echo "$ac_res" >&6; } +-as_val=`eval 'as_val=${'$as_ac_var'} +- $as_echo "$as_val"'` +- if test "x$as_val" = x""yes; then ++ for ac_func in dns_search ++do : ++ ac_fn_c_check_func "$LINENO" "dns_search" "ac_cv_func_dns_search" ++if test "x$ac_cv_func_dns_search" = x""yes; then : + cat >>confdefs.h <<_ACEOF +-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 ++#define HAVE_DNS_SEARCH 1 + _ACEOF + + fi +@@ -93971,13 +41357,13 @@ + #define $ac_tr_func 1 + _ACEOF + +- { $as_echo "$as_me:$LINENO: result: yes" >&5 ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 + $as_echo "yes" >&6; } + ;; + no) + eval "ac_cv_func_dns_search=no" + eval "LIB_dns_search=" +- { $as_echo "$as_me:$LINENO: result: no" >&5 ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + $as_echo "no" >&6; } + ;; + *) +@@ -93991,7 +41377,7 @@ + #define $ac_tr_lib 1 + _ACEOF + +- { $as_echo "$as_me:$LINENO: result: yes, in $ac_res" >&5 ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes, in $ac_res" >&5 + $as_echo "yes, in $ac_res" >&6; } + ;; + esac +@@ -94003,9 +41389,9 @@ + + + +-{ $as_echo "$as_me:$LINENO: checking for dn_expand" >&5 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for dn_expand" >&5 + $as_echo_n "checking for dn_expand... " >&6; } +-if test "${ac_cv_funclib_dn_expand+set}" = set; then ++if test "${ac_cv_funclib_dn_expand+set}" = set; then : + $as_echo_n "(cached) " >&6 + else + +@@ -94020,11 +41406,7 @@ + *) ac_lib="-l$ac_lib" ;; + esac + LIBS=" $ac_lib $ac_save_LIBS" +- cat >conftest.$ac_ext <<_ACEOF +-/* confdefs.h. */ +-_ACEOF +-cat confdefs.h >>conftest.$ac_ext +-cat >>conftest.$ac_ext <<_ACEOF ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + + #include +@@ -94049,38 +41431,11 @@ + return 0; + } + _ACEOF +-rm -f conftest.$ac_objext conftest$ac_exeext +-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 +- $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 ++if ac_fn_c_try_link "$LINENO"; then : + eval "if test -n \"$ac_lib\";then ac_cv_funclib_dn_expand=$ac_lib; else ac_cv_funclib_dn_expand=yes; fi";break +-else +- $as_echo "$as_me: failed program was:" >&5 +-sed 's/^/| /' conftest.$ac_ext >&5 +- +- + fi +- +-rm -rf conftest.dSYM +-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ +- conftest$ac_exeext conftest.$ac_ext ++rm -f core conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + done + eval "ac_cv_funclib_dn_expand=\${ac_cv_funclib_dn_expand-no}" + LIBS="$ac_save_LIBS" +@@ -94092,102 +41447,12 @@ + eval "ac_res=\$ac_cv_funclib_dn_expand" + + if false; then +- +-for ac_func in dn_expand +-do +-as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +-{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 +-$as_echo_n "checking for $ac_func... " >&6; } +-if { as_var=$as_ac_var; eval "test \"\${$as_var+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. */ +-/* Define $ac_func to an innocuous variant, in case declares $ac_func. +- For example, HP-UX 11i declares gettimeofday. */ +-#define $ac_func innocuous_$ac_func +- +-/* System header to define __stub macros and hopefully few prototypes, +- which can conflict with char $ac_func (); below. +- Prefer to if __STDC__ is defined, since +- exists even on freestanding compilers. */ +- +-#ifdef __STDC__ +-# include +-#else +-# include +-#endif +- +-#undef $ac_func +- +-/* 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 +-char $ac_func (); +-/* 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_$ac_func || defined __stub___$ac_func +-choke me +-#endif +- +-int +-main () +-{ +-return $ac_func (); +- ; +- return 0; +-} +-_ACEOF +-rm -f conftest.$ac_objext conftest$ac_exeext +-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 +- $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 +- eval "$as_ac_var=yes" +-else +- $as_echo "$as_me: failed program was:" >&5 +-sed 's/^/| /' conftest.$ac_ext >&5 +- +- eval "$as_ac_var=no" +-fi +- +-rm -rf conftest.dSYM +-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ +- conftest$ac_exeext conftest.$ac_ext +-fi +-ac_res=`eval 'as_val=${'$as_ac_var'} +- $as_echo "$as_val"'` +- { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +-$as_echo "$ac_res" >&6; } +-as_val=`eval 'as_val=${'$as_ac_var'} +- $as_echo "$as_val"'` +- if test "x$as_val" = x""yes; then ++ for ac_func in dn_expand ++do : ++ ac_fn_c_check_func "$LINENO" "dn_expand" "ac_cv_func_dn_expand" ++if test "x$ac_cv_func_dn_expand" = x""yes; then : + cat >>confdefs.h <<_ACEOF +-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 ++#define HAVE_DN_EXPAND 1 + _ACEOF + + fi +@@ -94207,13 +41472,13 @@ + #define $ac_tr_func 1 + _ACEOF + +- { $as_echo "$as_me:$LINENO: result: yes" >&5 ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 + $as_echo "yes" >&6; } + ;; + no) + eval "ac_cv_func_dn_expand=no" + eval "LIB_dn_expand=" +- { $as_echo "$as_me:$LINENO: result: no" >&5 ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + $as_echo "no" >&6; } + ;; + *) +@@ -94227,7 +41492,7 @@ + #define $ac_tr_lib 1 + _ACEOF + +- { $as_echo "$as_me:$LINENO: result: yes, in $ac_res" >&5 ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes, in $ac_res" >&5 + $as_echo "yes, in $ac_res" >&6; } + ;; + esac +@@ -94239,18 +41504,14 @@ + + + +-{ $as_echo "$as_me:$LINENO: checking for _res" >&5 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for _res" >&5 + $as_echo_n "checking for _res... " >&6; } +-if test "${ac_cv_var__res+set}" = set; then ++if test "${ac_cv_var__res+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 ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + #include + #ifdef HAVE_SYS_TYPES_H +@@ -94274,44 +41535,15 @@ + return 0; + } + _ACEOF +-rm -f conftest.$ac_objext conftest$ac_exeext +-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 +- $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 ++if ac_fn_c_try_link "$LINENO"; then : + ac_cv_var__res=yes + else +- $as_echo "$as_me: failed program was:" >&5 +-sed 's/^/| /' conftest.$ac_ext >&5 +- +- ac_cv_var__res=no ++ ac_cv_var__res=no + fi +- +-rm -rf conftest.dSYM +-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ +- conftest$ac_exeext conftest.$ac_ext ++rm -f core conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + if test "$ac_cv_var__res" != yes ; then +-cat >conftest.$ac_ext <<_ACEOF +-/* confdefs.h. */ +-_ACEOF +-cat confdefs.h >>conftest.$ac_ext +-cat >>conftest.$ac_ext <<_ACEOF ++cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + extern int _res; + int foo(void) { return _res; } +@@ -94323,44 +41555,19 @@ + return 0; + } + _ACEOF +-rm -f conftest.$ac_objext conftest$ac_exeext +-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 +- $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 ++if ac_fn_c_try_link "$LINENO"; then : + ac_cv_var__res=yes + else +- $as_echo "$as_me: failed program was:" >&5 +-sed 's/^/| /' conftest.$ac_ext >&5 +- +- ac_cv_var__res=no ++ ac_cv_var__res=no + fi +- +-rm -rf conftest.dSYM +-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ +- conftest$ac_exeext conftest.$ac_ext ++rm -f core conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + + fi + + ac_foo=`eval echo \\$ac_cv_var__res` +-{ $as_echo "$as_me:$LINENO: result: $ac_foo" >&5 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_foo" >&5 + $as_echo "$ac_foo" >&6; } + if test "$ac_foo" = yes; then + +@@ -94368,18 +41575,7 @@ + #define HAVE__RES 1 + _ACEOF + +- { $as_echo "$as_me:$LINENO: checking whether _res is declared" >&5 +-$as_echo_n "checking whether _res is declared... " >&6; } +-if test "${ac_cv_have_decl__res+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 ++ ac_fn_c_check_decl "$LINENO" "_res" "ac_cv_have_decl__res" "#include + #ifdef HAVE_SYS_TYPES_H + #include + #endif +@@ -94392,64 +41588,17 @@ + #ifdef HAVE_RESOLV_H + #include + #endif +- +-int +-main () +-{ +-#ifndef _res +- (void) _res; +-#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__res=yes ++" ++if test "x$ac_cv_have_decl__res" = x""yes; then : ++ ac_have_decl=1 + else +- $as_echo "$as_me: failed program was:" >&5 +-sed 's/^/| /' conftest.$ac_ext >&5 +- +- ac_cv_have_decl__res=no +-fi +- +-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++ ac_have_decl=0 + fi +-{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl__res" >&5 +-$as_echo "$ac_cv_have_decl__res" >&6; } +-if test "x$ac_cv_have_decl__res" = x""yes; then + + cat >>confdefs.h <<_ACEOF +-#define HAVE_DECL__RES 1 +-_ACEOF +- +- +-else +- cat >>confdefs.h <<_ACEOF +-#define HAVE_DECL__RES 0 ++#define HAVE_DECL__RES $ac_have_decl + _ACEOF + +- +-fi +- +- + fi + + +@@ -94515,9 +41664,9 @@ + do + # Extract the first word of "$ac_prog", so it can be a program name with args. + set dummy $ac_prog; ac_word=$2 +-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 + $as_echo_n "checking for $ac_word... " >&6; } +-if test "${ac_cv_prog_LEX+set}" = set; then ++if test "${ac_cv_prog_LEX+set}" = set; then : + $as_echo_n "(cached) " >&6 + else + if test -n "$LEX"; then +@@ -94528,24 +41677,24 @@ + do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. +- for ac_exec_ext in '' $ac_executable_extensions; do ++ 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_LEX="$ac_prog" +- $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi + done +-done ++ done + IFS=$as_save_IFS + + fi + fi + LEX=$ac_cv_prog_LEX + if test -n "$LEX"; then +- { $as_echo "$as_me:$LINENO: result: $LEX" >&5 ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LEX" >&5 + $as_echo "$LEX" >&6; } + else +- { $as_echo "$as_me:$LINENO: result: no" >&5 ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + $as_echo "no" >&6; } + fi + +@@ -94574,20 +41723,20 @@ + return ! yylex () + ! yywrap (); + } + _ACEOF +-{ (ac_try="$LEX conftest.l" ++{ { ac_try="$LEX conftest.l" + 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_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" ++$as_echo "$ac_try_echo"; } >&5 + (eval "$LEX conftest.l") 2>&5 + ac_status=$? +- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 +- (exit $ac_status); } +-{ $as_echo "$as_me:$LINENO: checking lex output file root" >&5 ++ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 ++ test $ac_status = 0; } ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking lex output file root" >&5 + $as_echo_n "checking lex output file root... " >&6; } +-if test "${ac_cv_prog_lex_root+set}" = set; then ++if test "${ac_cv_prog_lex_root+set}" = set; then : + $as_echo_n "(cached) " >&6 + else + +@@ -94596,19 +41745,17 @@ + elif test -f lexyy.c; then + ac_cv_prog_lex_root=lexyy + else +- { { $as_echo "$as_me:$LINENO: error: cannot find output from $LEX; giving up" >&5 +-$as_echo "$as_me: error: cannot find output from $LEX; giving up" >&2;} +- { (exit 1); exit 1; }; } ++ as_fn_error "cannot find output from $LEX; giving up" "$LINENO" 5 + fi + fi +-{ $as_echo "$as_me:$LINENO: result: $ac_cv_prog_lex_root" >&5 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_lex_root" >&5 + $as_echo "$ac_cv_prog_lex_root" >&6; } + LEX_OUTPUT_ROOT=$ac_cv_prog_lex_root + + if test -z "${LEXLIB+set}"; then +- { $as_echo "$as_me:$LINENO: checking lex library" >&5 ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking lex library" >&5 + $as_echo_n "checking lex library... " >&6; } +-if test "${ac_cv_lib_lex+set}" = set; then ++if test "${ac_cv_lib_lex+set}" = set; then : + $as_echo_n "(cached) " >&6 + else + +@@ -94616,55 +41763,29 @@ + ac_cv_lib_lex='none needed' + for ac_lib in '' -lfl -ll; do + LIBS="$ac_lib $ac_save_LIBS" +- cat >conftest.$ac_ext <<_ACEOF ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ + `cat $LEX_OUTPUT_ROOT.c` + _ACEOF +-rm -f conftest.$ac_objext conftest$ac_exeext +-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 +- $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 ++if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_lex=$ac_lib +-else +- $as_echo "$as_me: failed program was:" >&5 +-sed 's/^/| /' conftest.$ac_ext >&5 +- +- + fi +- +-rm -rf conftest.dSYM +-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ +- conftest$ac_exeext conftest.$ac_ext ++rm -f core conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + test "$ac_cv_lib_lex" != 'none needed' && break + done + LIBS=$ac_save_LIBS + + fi +-{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_lex" >&5 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_lex" >&5 + $as_echo "$ac_cv_lib_lex" >&6; } + test "$ac_cv_lib_lex" != 'none needed' && LEXLIB=$ac_cv_lib_lex + fi + + +-{ $as_echo "$as_me:$LINENO: checking whether yytext is a pointer" >&5 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether yytext is a pointer" >&5 + $as_echo_n "checking whether yytext is a pointer... " >&6; } +-if test "${ac_cv_prog_lex_yytext_pointer+set}" = set; then ++if test "${ac_cv_prog_lex_yytext_pointer+set}" = set; then : + $as_echo_n "(cached) " >&6 + else + # POSIX says lex can declare yytext either as a pointer or an array; the +@@ -94673,52 +41794,24 @@ + ac_cv_prog_lex_yytext_pointer=no + ac_save_LIBS=$LIBS + LIBS="$LEXLIB $ac_save_LIBS" +-cat >conftest.$ac_ext <<_ACEOF ++cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ + #define YYTEXT_POINTER 1 + `cat $LEX_OUTPUT_ROOT.c` + _ACEOF +-rm -f conftest.$ac_objext conftest$ac_exeext +-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 +- $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 ++if ac_fn_c_try_link "$LINENO"; then : + ac_cv_prog_lex_yytext_pointer=yes +-else +- $as_echo "$as_me: failed program was:" >&5 +-sed 's/^/| /' conftest.$ac_ext >&5 +- +- + fi +- +-rm -rf conftest.dSYM +-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ +- conftest$ac_exeext conftest.$ac_ext ++rm -f core conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + LIBS=$ac_save_LIBS + + fi +-{ $as_echo "$as_me:$LINENO: result: $ac_cv_prog_lex_yytext_pointer" >&5 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_lex_yytext_pointer" >&5 + $as_echo "$ac_cv_prog_lex_yytext_pointer" >&6; } + if test $ac_cv_prog_lex_yytext_pointer = yes; then + +-cat >>confdefs.h <<\_ACEOF +-#define YYTEXT_POINTER 1 +-_ACEOF ++$as_echo "#define YYTEXT_POINTER 1" >>confdefs.h + + fi + rm -f conftest.l $LEX_OUTPUT_ROOT.c +@@ -94728,9 +41821,9 @@ + if test x"$LEX_BASENAME" = x"flex"; then + # "flex 2.5.33" + FLEX_VERSION=`$LEX --version | cut -d ' ' -f2` +- { $as_echo "$as_me:$LINENO: checking flex version" >&5 ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking flex version" >&5 + $as_echo_n "checking flex version... " >&6; } +- { $as_echo "$as_me:$LINENO: result: $FLEX_VERSION" >&5 ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $FLEX_VERSION" >&5 + $as_echo "$FLEX_VERSION" >&6; } + FLEX_MAJOR=`echo $FLEX_VERSION | cut -d '.' -f1` + FLEX_MINOR=`echo $FLEX_VERSION | cut -d '.' -f2` +@@ -94743,9 +41836,9 @@ + do + # Extract the first word of "$ac_prog", so it can be a program name with args. + set dummy $ac_prog; ac_word=$2 +-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 + $as_echo_n "checking for $ac_word... " >&6; } +-if test "${ac_cv_prog_YACC+set}" = set; then ++if test "${ac_cv_prog_YACC+set}" = set; then : + $as_echo_n "(cached) " >&6 + else + if test -n "$YACC"; then +@@ -94756,24 +41849,24 @@ + do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. +- for ac_exec_ext in '' $ac_executable_extensions; do ++ 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_YACC="$ac_prog" +- $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi + done +-done ++ done + IFS=$as_save_IFS + + fi + fi + YACC=$ac_cv_prog_YACC + if test -n "$YACC"; then +- { $as_echo "$as_me:$LINENO: result: $YACC" >&5 ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $YACC" >&5 + $as_echo "$YACC" >&6; } + else +- { $as_echo "$as_me:$LINENO: result: no" >&5 ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + $as_echo "no" >&6; } + fi + +@@ -94786,9 +41879,9 @@ + if test x"$YACC_BASENAME" = x"bison -y"; then + # bison (GNU Bison) 2.3 + BISON_VERSION=`$YACC --version | head -1 | cut -d ' ' -f4` +- { $as_echo "$as_me:$LINENO: checking bison version" >&5 ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking bison version" >&5 + $as_echo_n "checking bison version... " >&6; } +- { $as_echo "$as_me:$LINENO: result: $BISON_VERSION" >&5 ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $BISON_VERSION" >&5 + $as_echo "$BISON_VERSION" >&6; } + BISON_MAJOR=`echo $BISON_VERSION | cut -d '.' -f1` + BISON_MINOR=`echo $BISON_VERSION | cut -d '.' -f2` +@@ -94796,7 +41889,7 @@ + YACC_VERSION="bison-$BISON_MAJOR.$BISON_MINOR" + fi + +-{ $as_echo "$as_me:$LINENO: checking working LEX YACC combination" >&5 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking working LEX YACC combination" >&5 + $as_echo_n "checking working LEX YACC combination... " >&6; } + LEX_YACC="no" + if test x"$LEX_VERSION" != x"" -a x"$YACC_VERSION" != x""; then +@@ -94812,7 +41905,7 @@ + LEX=false + YACC=false + fi +-{ $as_echo "$as_me:$LINENO: result: $LEX_YACC" >&5 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $LEX_YACC" >&5 + $as_echo "$LEX_YACC" >&6; } + + # Portions of heimdal kerberos are unpacked into source/heimdal +@@ -94820,21 +41913,15 @@ + + # if we ever get to using a host kerberos, we might add conditionals here + +-cat >>confdefs.h <<\_ACEOF +-#define HAVE_COM_ERR 1 +-_ACEOF ++$as_echo "#define HAVE_COM_ERR 1" >>confdefs.h + + HAVE_COM_ERR=YES + +-cat >>confdefs.h <<\_ACEOF +-#define HAVE_KRB5 1 +-_ACEOF ++$as_echo "#define HAVE_KRB5 1" >>confdefs.h + + HAVE_KRB5=YES + +-cat >>confdefs.h <<\_ACEOF +-#define HAVE_GSSAPI 1 +-_ACEOF ++$as_echo "#define HAVE_GSSAPI 1" >>confdefs.h + + HAVE_GSSAPI=YES + +@@ -94914,193 +42001,48 @@ + SMB_INFO_ENABLES="$SMB_INFO_ENABLES + \$enabled{\"HEIMDAL_ROKEN_PROGNAME\"} = \"YES\";" + +- +- MAKE_SETTINGS="$MAKE_SETTINGS +-HEIMDAL_ROKEN_PROGNAME_H_ENABLE = YES +-" +-SMB_INFO_ENABLES="$SMB_INFO_ENABLES +-\$enabled{\"HEIMDAL_ROKEN_PROGNAME_H\"} = \"YES\";" +- +-fi +- +-VPATH="$VPATH:\$(HEIMDAL_VPATH)" +- +- +-cat >>confdefs.h <<\_ACEOF +-#define SAMBA4_INTERNAL_HEIMDAL 1 +-_ACEOF +- +- +- +-SMB_INFO_EXT_LIBS="$SMB_INFO_EXT_LIBS +-mkinclude heimdal_build/internal.mk +-" +- +- +- +-for ac_header in execinfo.h +-do +-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? +-{ $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 +-cat confdefs.h >>conftest.$ac_ext +-cat >>conftest.$ac_ext <<_ACEOF +-/* end confdefs.h. */ +-$ac_includes_default +-#include <$ac_header> +-_ACEOF +-rm -f conftest.$ac_objext +-if { (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_header_compiler=yes +-else +- $as_echo "$as_me: failed program was:" >&5 +-sed 's/^/| /' conftest.$ac_ext >&5 +- +- ac_header_compiler=no +-fi +- +-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? +-{ $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 +-cat confdefs.h >>conftest.$ac_ext +-cat >>conftest.$ac_ext <<_ACEOF +-/* end confdefs.h. */ +-#include <$ac_header> +-_ACEOF +-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 +- $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 +- $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 +-{ $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: ) +- { $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:* ) +- { $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 samba-technical@samba.org ## +-## ---------------------------------------- ## +-_ASBOX +- ) | sed "s/^/$as_me: WARNING: /" >&2 +- ;; +-esac +-{ $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 +-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; } +- ++ ++ MAKE_SETTINGS="$MAKE_SETTINGS ++HEIMDAL_ROKEN_PROGNAME_H_ENABLE = YES ++" ++SMB_INFO_ENABLES="$SMB_INFO_ENABLES ++\$enabled{\"HEIMDAL_ROKEN_PROGNAME_H\"} = \"YES\";" ++ + fi +-as_val=`eval 'as_val=${'$as_ac_Header'} +- $as_echo "$as_val"'` +- if test "x$as_val" = x""yes; then ++ ++VPATH="$VPATH:\$(HEIMDAL_VPATH)" ++ ++ ++$as_echo "#define SAMBA4_INTERNAL_HEIMDAL 1" >>confdefs.h ++ ++ ++ ++SMB_INFO_EXT_LIBS="$SMB_INFO_EXT_LIBS ++mkinclude heimdal_build/internal.mk ++" ++ ++ ++for ac_header in execinfo.h ++do : ++ ac_fn_c_check_header_mongrel "$LINENO" "execinfo.h" "ac_cv_header_execinfo_h" "$ac_includes_default" ++if test "x$ac_cv_header_execinfo_h" = x""yes; then : + cat >>confdefs.h <<_ACEOF +-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 ++#define HAVE_EXECINFO_H 1 + _ACEOF + + fi + + done + +-{ $as_echo "$as_me:$LINENO: checking for library containing backtrace" >&5 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing backtrace" >&5 + $as_echo_n "checking for library containing backtrace... " >&6; } +-if test "${ac_cv_search_ext_backtrace+set}" = set; then ++if test "${ac_cv_search_ext_backtrace+set}" = set; then : + $as_echo_n "(cached) " >&6 + else + + ac_func_search_ext_save_LIBS=$LIBS + ac_cv_search_ext_backtrace=no +-cat >conftest.$ac_ext <<_ACEOF +-/* confdefs.h. */ +-_ACEOF +-cat confdefs.h >>conftest.$ac_ext +-cat >>conftest.$ac_ext <<_ACEOF ++cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + + /* Override any GCC internal prototype to avoid an error. +@@ -95118,46 +42060,15 @@ + return 0; + } + _ACEOF +-rm -f conftest.$ac_objext conftest$ac_exeext +-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 +- $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 ++if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_ext_backtrace="none required" +-else +- $as_echo "$as_me: failed program was:" >&5 +-sed 's/^/| /' conftest.$ac_ext >&5 +- +- + fi +- +-rm -rf conftest.dSYM +-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ +- conftest$ac_exeext conftest.$ac_ext ++rm -f core conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + if test "$ac_cv_search_ext_backtrace" = no; then + for ac_lib in execinfo; do + LIBS="-l$ac_lib $EXECINFO_LIBS $ac_func_search_save_ext_LIBS" +- cat >conftest.$ac_ext <<_ACEOF +-/* confdefs.h. */ +-_ACEOF +-cat confdefs.h >>conftest.$ac_ext +-cat >>conftest.$ac_ext <<_ACEOF ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + + /* Override any GCC internal prototype to avoid an error. +@@ -95175,65 +42086,32 @@ + return 0; + } + _ACEOF +-rm -f conftest.$ac_objext conftest$ac_exeext +-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 +- $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 ++if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_ext_backtrace="-l$ac_lib" + break +-else +- $as_echo "$as_me: failed program was:" >&5 +-sed 's/^/| /' conftest.$ac_ext >&5 +- +- + fi +- +-rm -rf conftest.dSYM +-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ +- conftest$ac_exeext conftest.$ac_ext ++rm -f core conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + done + fi + LIBS=$ac_func_search_ext_save_LIBS + fi +-{ $as_echo "$as_me:$LINENO: result: $ac_cv_search_ext_backtrace" >&5 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ext_backtrace" >&5 + $as_echo "$ac_cv_search_ext_backtrace" >&6; } +-if test "$ac_cv_search_ext_backtrace" != no; then ++if test "$ac_cv_search_ext_backtrace" != no; then : + test "$ac_cv_search_ext_backtrace" = "none required" || EXECINFO_LIBS="$ac_cv_search_ext_backtrace $EXECINFO_LIBS" + + fi + + +- +- + ac_check_func_ext_save_LIBS=$LIBS + LIBS="$EXECINFO_LIBS $LIBS" +- { $as_echo "$as_me:$LINENO: checking for backtrace" >&5 ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for backtrace" >&5 + $as_echo_n "checking for backtrace... " >&6; } +-if test "${ac_cv_func_ext_backtrace+set}" = set; then ++if test "${ac_cv_func_ext_backtrace+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 ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + /* Define backtrace to an innocuous variant, in case declares backtrace. + For example, HP-UX 11i declares gettimeofday. */ +@@ -95274,43 +42152,18 @@ + return 0; + } + _ACEOF +-rm -f conftest.$ac_objext conftest$ac_exeext +-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 +- $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 ++if ac_fn_c_try_link "$LINENO"; then : + ac_cv_func_ext_backtrace=yes + else +- $as_echo "$as_me: failed program was:" >&5 +-sed 's/^/| /' conftest.$ac_ext >&5 +- +- ac_cv_func_ext_backtrace=no ++ ac_cv_func_ext_backtrace=no + fi +- +-rm -rf conftest.dSYM +-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ +- conftest$ac_exeext conftest.$ac_ext ++rm -f core conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi +-{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_ext_backtrace" >&5 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_ext_backtrace" >&5 + $as_echo "$ac_cv_func_ext_backtrace" >&6; } + LIBS=$ac_check_func_ext_save_LIBS +- if test $ac_cv_func_ext_backtrace = yes; then ++ if test $ac_cv_func_ext_backtrace = yes; then : + cat >>confdefs.h <<_ACEOF + #define HAVE_BACKTRACE 1 + _ACEOF +@@ -95318,7 +42171,6 @@ + fi + + +- + if test x"$ac_cv_header_execinfo_h" = x"yes" -a x"$ac_cv_func_ext_backtrace" = x"yes";then + + MAKE_SETTINGS="$MAKE_SETTINGS +@@ -95404,102 +42256,12 @@ + + + +- +- +- + for ac_func in sigprocmask sigblock sigaction +-do +-as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +-{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 +-$as_echo_n "checking for $ac_func... " >&6; } +-if { as_var=$as_ac_var; eval "test \"\${$as_var+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. */ +-/* Define $ac_func to an innocuous variant, in case declares $ac_func. +- For example, HP-UX 11i declares gettimeofday. */ +-#define $ac_func innocuous_$ac_func +- +-/* System header to define __stub macros and hopefully few prototypes, +- which can conflict with char $ac_func (); below. +- Prefer to if __STDC__ is defined, since +- exists even on freestanding compilers. */ +- +-#ifdef __STDC__ +-# include +-#else +-# include +-#endif +- +-#undef $ac_func +- +-/* 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 +-char $ac_func (); +-/* 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_$ac_func || defined __stub___$ac_func +-choke me +-#endif +- +-int +-main () +-{ +-return $ac_func (); +- ; +- return 0; +-} +-_ACEOF +-rm -f conftest.$ac_objext conftest$ac_exeext +-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 +- $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 +- eval "$as_ac_var=yes" +-else +- $as_echo "$as_me: failed program was:" >&5 +-sed 's/^/| /' conftest.$ac_ext >&5 +- +- eval "$as_ac_var=no" +-fi +- +-rm -rf conftest.dSYM +-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ +- conftest$ac_exeext conftest.$ac_ext +-fi +-ac_res=`eval 'as_val=${'$as_ac_var'} +- $as_echo "$as_val"'` +- { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +-$as_echo "$ac_res" >&6; } +-as_val=`eval 'as_val=${'$as_ac_var'} +- $as_echo "$as_val"'` +- if test "x$as_val" = x""yes; then ++do : ++ as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ++ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" ++eval as_val=\$$as_ac_var ++ if test "x$as_val" = x""yes; then : + cat >>confdefs.h <<_ACEOF + #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 + _ACEOF +@@ -95508,102 +42270,12 @@ + done + + +- + for ac_func in setsid +-do +-as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +-{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 +-$as_echo_n "checking for $ac_func... " >&6; } +-if { as_var=$as_ac_var; eval "test \"\${$as_var+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. */ +-/* Define $ac_func to an innocuous variant, in case declares $ac_func. +- For example, HP-UX 11i declares gettimeofday. */ +-#define $ac_func innocuous_$ac_func +- +-/* System header to define __stub macros and hopefully few prototypes, +- which can conflict with char $ac_func (); below. +- Prefer to if __STDC__ is defined, since +- exists even on freestanding compilers. */ +- +-#ifdef __STDC__ +-# include +-#else +-# include +-#endif +- +-#undef $ac_func +- +-/* 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 +-char $ac_func (); +-/* 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_$ac_func || defined __stub___$ac_func +-choke me +-#endif +- +-int +-main () +-{ +-return $ac_func (); +- ; +- return 0; +-} +-_ACEOF +-rm -f conftest.$ac_objext conftest$ac_exeext +-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 +- $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 +- eval "$as_ac_var=yes" +-else +- $as_echo "$as_me: failed program was:" >&5 +-sed 's/^/| /' conftest.$ac_ext >&5 +- +- eval "$as_ac_var=no" +-fi +- +-rm -rf conftest.dSYM +-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ +- conftest$ac_exeext conftest.$ac_ext +-fi +-ac_res=`eval 'as_val=${'$as_ac_var'} +- $as_echo "$as_val"'` +- { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +-$as_echo "$ac_res" >&6; } +-as_val=`eval 'as_val=${'$as_ac_var'} +- $as_echo "$as_val"'` +- if test "x$as_val" = x""yes; then ++do : ++ ac_fn_c_check_func "$LINENO" "setsid" "ac_cv_func_setsid" ++if test "x$ac_cv_func_setsid" = x""yes; then : + cat >>confdefs.h <<_ACEOF +-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 ++#define HAVE_SETSID 1 + _ACEOF + + fi +@@ -95612,153 +42284,14 @@ + + ################################################# + # these tests are taken from the GNU fileutils package +-{ $as_echo "$as_me:$LINENO: checking how to get filesystem space usage..." >&5 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to get filesystem space usage..." >&5 + $as_echo "$as_me: checking how to get filesystem space usage..." >&6;} +- +- +- + for ac_header in sys/statfs.h sys/statvfs.h sys/vfs.h +-do +-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? +-{ $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 +-cat confdefs.h >>conftest.$ac_ext +-cat >>conftest.$ac_ext <<_ACEOF +-/* end confdefs.h. */ +-$ac_includes_default +-#include <$ac_header> +-_ACEOF +-rm -f conftest.$ac_objext +-if { (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_header_compiler=yes +-else +- $as_echo "$as_me: failed program was:" >&5 +-sed 's/^/| /' conftest.$ac_ext >&5 +- +- ac_header_compiler=no +-fi +- +-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? +-{ $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 +-cat confdefs.h >>conftest.$ac_ext +-cat >>conftest.$ac_ext <<_ACEOF +-/* end confdefs.h. */ +-#include <$ac_header> +-_ACEOF +-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 +- $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 +- $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 +-{ $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: ) +- { $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:* ) +- { $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 samba-technical@samba.org ## +-## ---------------------------------------- ## +-_ASBOX +- ) | sed "s/^/$as_me: WARNING: /" >&2 +- ;; +-esac +-{ $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 +-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 +-as_val=`eval 'as_val=${'$as_ac_Header'} +- $as_echo "$as_val"'` +- if test "x$as_val" = x""yes; then ++do : ++ as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ++ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" ++eval as_val=\$$as_ac_Header ++ if test "x$as_val" = x""yes; then : + cat >>confdefs.h <<_ACEOF + #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 + _ACEOF +@@ -95768,65 +42301,16 @@ + done + + +- + for ac_header in sys/mount.h +-do +-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. */ +-_ACEOF +-cat confdefs.h >>conftest.$ac_ext +-cat >>conftest.$ac_ext <<_ACEOF +-/* end confdefs.h. */ +-$ac_includes_default ++do : ++ ac_fn_c_check_header_compile "$LINENO" "sys/mount.h" "ac_cv_header_sys_mount_h" "$ac_includes_default + #ifdef HAVE_SYS_PARAM_H + #include + #endif +- +-#include <$ac_header> +-_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 +- eval "$as_ac_Header=yes" +-else +- $as_echo "$as_me: failed program was:" >&5 +-sed 's/^/| /' conftest.$ac_ext >&5 +- +- eval "$as_ac_Header=no" +-fi +- +-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +-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; } +-as_val=`eval 'as_val=${'$as_ac_Header'} +- $as_echo "$as_val"'` +- if test "x$as_val" = x""yes; then ++" ++if test "x$ac_cv_header_sys_mount_h" = x""yes; then : + cat >>confdefs.h <<_ACEOF +-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 ++#define HAVE_SYS_MOUNT_H 1 + _ACEOF + + fi +@@ -95839,19 +42323,15 @@ + # Test for statvfs64. + if test $space = no; then + # SVR4 +- { $as_echo "$as_me:$LINENO: checking statvfs64 function (SVR4)" >&5 ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking statvfs64 function (SVR4)" >&5 + $as_echo_n "checking statvfs64 function (SVR4)... " >&6; } +-if test "${fu_cv_sys_stat_statvfs64+set}" = set; then ++if test "${fu_cv_sys_stat_statvfs64+set}" = set; then : + $as_echo_n "(cached) " >&6 + else +- if test "$cross_compiling" = yes; then ++ if test "$cross_compiling" = yes; then : + fu_cv_sys_stat_statvfs64=cross + else +- cat >conftest.$ac_ext <<_ACEOF +-/* confdefs.h. */ +-_ACEOF +-cat confdefs.h >>conftest.$ac_ext +-cat >>conftest.$ac_ext <<_ACEOF ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + + #if defined(HAVE_UNISTD_H) +@@ -95865,51 +42345,22 @@ + exit (statvfs64 (".", &fsd)); + } + _ACEOF +-rm -f conftest$ac_exeext +-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=$? +- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 +- (exit $ac_status); } && { ac_try='./conftest$ac_exeext' +- { (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=$? +- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 +- (exit $ac_status); }; }; then ++if ac_fn_c_try_run "$LINENO"; then : + fu_cv_sys_stat_statvfs64=yes + else +- $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 ) +-fu_cv_sys_stat_statvfs64=no ++ fu_cv_sys_stat_statvfs64=no + fi +-rm -rf conftest.dSYM +-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext ++rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ ++ conftest.$ac_objext conftest.beam conftest.$ac_ext + fi + +- + fi +-{ $as_echo "$as_me:$LINENO: result: $fu_cv_sys_stat_statvfs64" >&5 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $fu_cv_sys_stat_statvfs64" >&5 + $as_echo "$fu_cv_sys_stat_statvfs64" >&6; } + if test $fu_cv_sys_stat_statvfs64 = yes; then + space=yes + +-cat >>confdefs.h <<\_ACEOF +-#define STAT_STATVFS64 1 +-_ACEOF ++$as_echo "#define STAT_STATVFS64 1" >>confdefs.h + + fi + fi +@@ -95922,16 +42373,12 @@ + # is what it gets when this test fails. + if test $space = no; then + # SVR4 +- { $as_echo "$as_me:$LINENO: checking statvfs function (SVR4)" >&5 ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking statvfs function (SVR4)" >&5 + $as_echo_n "checking statvfs function (SVR4)... " >&6; } +-if test "${fu_cv_sys_stat_statvfs+set}" = set; then ++if test "${fu_cv_sys_stat_statvfs+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 ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + #include + #include +@@ -95943,64 +42390,33 @@ + return 0; + } + _ACEOF +-rm -f conftest.$ac_objext conftest$ac_exeext +-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 +- $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 ++if ac_fn_c_try_link "$LINENO"; then : + fu_cv_sys_stat_statvfs=yes + else +- $as_echo "$as_me: failed program was:" >&5 +-sed 's/^/| /' conftest.$ac_ext >&5 +- +- fu_cv_sys_stat_statvfs=no ++ fu_cv_sys_stat_statvfs=no + fi +- +-rm -rf conftest.dSYM +-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ +- conftest$ac_exeext conftest.$ac_ext ++rm -f core conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi +-{ $as_echo "$as_me:$LINENO: result: $fu_cv_sys_stat_statvfs" >&5 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $fu_cv_sys_stat_statvfs" >&5 + $as_echo "$fu_cv_sys_stat_statvfs" >&6; } + if test $fu_cv_sys_stat_statvfs = yes; then + space=yes + +-cat >>confdefs.h <<\_ACEOF +-#define STAT_STATVFS 1 +-_ACEOF ++$as_echo "#define STAT_STATVFS 1" >>confdefs.h + + fi + fi + + # fsusage.c assumes that statvfs has an f_frsize entry. Some weird + # systems use f_bsize. +-{ $as_echo "$as_me:$LINENO: checking that statvfs.f_frsize works" >&5 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking that statvfs.f_frsize works" >&5 + $as_echo_n "checking that statvfs.f_frsize works... " >&6; } +-if test "${samba_cv_frsize+set}" = set; then ++if test "${samba_cv_frsize+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 ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + #include + #include +@@ -96012,59 +42428,32 @@ + 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 ++if ac_fn_c_try_compile "$LINENO"; then : + samba_cv_frsize=yes + else +- $as_echo "$as_me: failed program was:" >&5 +-sed 's/^/| /' conftest.$ac_ext >&5 +- +- samba_cv_frsize=no ++ samba_cv_frsize=no + fi +- + rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + fi +-{ $as_echo "$as_me:$LINENO: result: $samba_cv_frsize" >&5 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $samba_cv_frsize" >&5 + $as_echo "$samba_cv_frsize" >&6; } + if test x"$samba_cv_frsize" = x"yes"; then + +-cat >>confdefs.h <<\_ACEOF +-#define HAVE_FRSIZE 1 +-_ACEOF ++$as_echo "#define HAVE_FRSIZE 1" >>confdefs.h + + fi + + if test $space = no; then + # DEC Alpha running OSF/1 +- { $as_echo "$as_me:$LINENO: checking for 3-argument statfs function (DEC OSF/1)" >&5 ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for 3-argument statfs function (DEC OSF/1)" >&5 + $as_echo_n "checking for 3-argument statfs function (DEC OSF/1)... " >&6; } +- if test "${fu_cv_sys_stat_statfs3_osf1+set}" = set; then ++ if test "${fu_cv_sys_stat_statfs3_osf1+set}" = set; then : + $as_echo_n "(cached) " >&6 + else +- if test "$cross_compiling" = yes; then ++ if test "$cross_compiling" = yes; then : + fu_cv_sys_stat_statfs3_osf1=no + else +- cat >conftest.$ac_ext <<_ACEOF +-/* confdefs.h. */ +-_ACEOF +-cat confdefs.h >>conftest.$ac_ext +-cat >>conftest.$ac_ext <<_ACEOF ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + + #include +@@ -96077,71 +42466,38 @@ + exit (statfs (".", &fsd, sizeof (struct statfs))); + } + _ACEOF +-rm -f conftest$ac_exeext +-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=$? +- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 +- (exit $ac_status); } && { ac_try='./conftest$ac_exeext' +- { (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=$? +- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 +- (exit $ac_status); }; }; then ++if ac_fn_c_try_run "$LINENO"; then : + fu_cv_sys_stat_statfs3_osf1=yes + else +- $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 ) +-fu_cv_sys_stat_statfs3_osf1=no ++ fu_cv_sys_stat_statfs3_osf1=no + fi +-rm -rf conftest.dSYM +-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext ++rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ ++ conftest.$ac_objext conftest.beam conftest.$ac_ext + fi + +- + fi + +- { $as_echo "$as_me:$LINENO: result: $fu_cv_sys_stat_statfs3_osf1" >&5 ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $fu_cv_sys_stat_statfs3_osf1" >&5 + $as_echo "$fu_cv_sys_stat_statfs3_osf1" >&6; } + if test $fu_cv_sys_stat_statfs3_osf1 = yes; then + space=yes + +-cat >>confdefs.h <<\_ACEOF +-#define STAT_STATFS3_OSF1 1 +-_ACEOF ++$as_echo "#define STAT_STATFS3_OSF1 1" >>confdefs.h + + fi + fi + + if test $space = no; then + # AIX +- { $as_echo "$as_me:$LINENO: checking for two-argument statfs with statfs.bsize member (AIX, 4.3BSD)" >&5 ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for two-argument statfs with statfs.bsize member (AIX, 4.3BSD)" >&5 + $as_echo_n "checking for two-argument statfs with statfs.bsize member (AIX, 4.3BSD)... " >&6; } +- if test "${fu_cv_sys_stat_statfs2_bsize+set}" = set; then ++ if test "${fu_cv_sys_stat_statfs2_bsize+set}" = set; then : + $as_echo_n "(cached) " >&6 + else +- if test "$cross_compiling" = yes; then ++ if test "$cross_compiling" = yes; then : + fu_cv_sys_stat_statfs2_bsize=no + else +- cat >conftest.$ac_ext <<_ACEOF +-/* confdefs.h. */ +-_ACEOF +-cat confdefs.h >>conftest.$ac_ext +-cat >>conftest.$ac_ext <<_ACEOF ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + + #ifdef HAVE_SYS_PARAM_H +@@ -96160,71 +42516,38 @@ + exit (statfs (".", &fsd)); + } + _ACEOF +-rm -f conftest$ac_exeext +-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=$? +- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 +- (exit $ac_status); } && { ac_try='./conftest$ac_exeext' +- { (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=$? +- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 +- (exit $ac_status); }; }; then ++if ac_fn_c_try_run "$LINENO"; then : + fu_cv_sys_stat_statfs2_bsize=yes + else +- $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 ) +-fu_cv_sys_stat_statfs2_bsize=no ++ fu_cv_sys_stat_statfs2_bsize=no + fi +-rm -rf conftest.dSYM +-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext ++rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ ++ conftest.$ac_objext conftest.beam conftest.$ac_ext + fi + +- + fi + +- { $as_echo "$as_me:$LINENO: result: $fu_cv_sys_stat_statfs2_bsize" >&5 ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $fu_cv_sys_stat_statfs2_bsize" >&5 + $as_echo "$fu_cv_sys_stat_statfs2_bsize" >&6; } + if test $fu_cv_sys_stat_statfs2_bsize = yes; then + space=yes + +-cat >>confdefs.h <<\_ACEOF +-#define STAT_STATFS2_BSIZE 1 +-_ACEOF ++$as_echo "#define STAT_STATFS2_BSIZE 1" >>confdefs.h + + fi + fi + + if test $space = no; then + # SVR3 +- { $as_echo "$as_me:$LINENO: checking for four-argument statfs (AIX-3.2.5, SVR3)" >&5 ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for four-argument statfs (AIX-3.2.5, SVR3)" >&5 + $as_echo_n "checking for four-argument statfs (AIX-3.2.5, SVR3)... " >&6; } +- if test "${fu_cv_sys_stat_statfs4+set}" = set; then ++ if test "${fu_cv_sys_stat_statfs4+set}" = set; then : + $as_echo_n "(cached) " >&6 + else +- if test "$cross_compiling" = yes; then ++ if test "$cross_compiling" = yes; then : + fu_cv_sys_stat_statfs4=no + else +- cat >conftest.$ac_ext <<_ACEOF +-/* confdefs.h. */ +-_ACEOF +-cat confdefs.h >>conftest.$ac_ext +-cat >>conftest.$ac_ext <<_ACEOF ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + #include + #include +@@ -96234,71 +42557,38 @@ + exit (statfs (".", &fsd, sizeof fsd, 0)); + } + _ACEOF +-rm -f conftest$ac_exeext +-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=$? +- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 +- (exit $ac_status); } && { ac_try='./conftest$ac_exeext' +- { (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=$? +- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 +- (exit $ac_status); }; }; then ++if ac_fn_c_try_run "$LINENO"; then : + fu_cv_sys_stat_statfs4=yes + else +- $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 ) +-fu_cv_sys_stat_statfs4=no ++ fu_cv_sys_stat_statfs4=no + fi +-rm -rf conftest.dSYM +-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext ++rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ ++ conftest.$ac_objext conftest.beam conftest.$ac_ext + fi + +- + fi + +- { $as_echo "$as_me:$LINENO: result: $fu_cv_sys_stat_statfs4" >&5 ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $fu_cv_sys_stat_statfs4" >&5 + $as_echo "$fu_cv_sys_stat_statfs4" >&6; } + if test $fu_cv_sys_stat_statfs4 = yes; then + space=yes + +-cat >>confdefs.h <<\_ACEOF +-#define STAT_STATFS4 1 +-_ACEOF ++$as_echo "#define STAT_STATFS4 1" >>confdefs.h + + fi + fi + + if test $space = no; then + # 4.4BSD and NetBSD +- { $as_echo "$as_me:$LINENO: checking for two-argument statfs with statfs.fsize member (4.4BSD and NetBSD)" >&5 ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for two-argument statfs with statfs.fsize member (4.4BSD and NetBSD)" >&5 + $as_echo_n "checking for two-argument statfs with statfs.fsize member (4.4BSD and NetBSD)... " >&6; } +- if test "${fu_cv_sys_stat_statfs2_fsize+set}" = set; then ++ if test "${fu_cv_sys_stat_statfs2_fsize+set}" = set; then : + $as_echo_n "(cached) " >&6 + else +- if test "$cross_compiling" = yes; then ++ if test "$cross_compiling" = yes; then : + fu_cv_sys_stat_statfs2_fsize=no + else +- cat >conftest.$ac_ext <<_ACEOF +-/* confdefs.h. */ +-_ACEOF +-cat confdefs.h >>conftest.$ac_ext +-cat >>conftest.$ac_ext <<_ACEOF ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + #include + #ifdef HAVE_SYS_PARAM_H +@@ -96314,71 +42604,38 @@ + exit (statfs (".", &fsd)); + } + _ACEOF +-rm -f conftest$ac_exeext +-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=$? +- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 +- (exit $ac_status); } && { ac_try='./conftest$ac_exeext' +- { (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=$? +- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 +- (exit $ac_status); }; }; then ++if ac_fn_c_try_run "$LINENO"; then : + fu_cv_sys_stat_statfs2_fsize=yes + else +- $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 ) +-fu_cv_sys_stat_statfs2_fsize=no ++ fu_cv_sys_stat_statfs2_fsize=no + fi +-rm -rf conftest.dSYM +-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext ++rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ ++ conftest.$ac_objext conftest.beam conftest.$ac_ext + fi + +- + fi + +- { $as_echo "$as_me:$LINENO: result: $fu_cv_sys_stat_statfs2_fsize" >&5 ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $fu_cv_sys_stat_statfs2_fsize" >&5 + $as_echo "$fu_cv_sys_stat_statfs2_fsize" >&6; } + if test $fu_cv_sys_stat_statfs2_fsize = yes; then + space=yes + +-cat >>confdefs.h <<\_ACEOF +-#define STAT_STATFS2_FSIZE 1 +-_ACEOF ++$as_echo "#define STAT_STATFS2_FSIZE 1" >>confdefs.h + + fi + fi + + if test $space = no; then + # Ultrix +- { $as_echo "$as_me:$LINENO: checking for two-argument statfs with struct fs_data (Ultrix)" >&5 ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for two-argument statfs with struct fs_data (Ultrix)" >&5 + $as_echo_n "checking for two-argument statfs with struct fs_data (Ultrix)... " >&6; } +- if test "${fu_cv_sys_stat_fs_data+set}" = set; then ++ if test "${fu_cv_sys_stat_fs_data+set}" = set; then : + $as_echo_n "(cached) " >&6 + else +- if test "$cross_compiling" = yes; then ++ if test "$cross_compiling" = yes; then : + fu_cv_sys_stat_fs_data=no + else +- cat >conftest.$ac_ext <<_ACEOF +-/* confdefs.h. */ +-_ACEOF +-cat confdefs.h >>conftest.$ac_ext +-cat >>conftest.$ac_ext <<_ACEOF ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + #include + #ifdef HAVE_SYS_PARAM_H +@@ -96398,201 +42655,33 @@ + exit (statfs (".", &fsd) != 1); + } + _ACEOF +-rm -f conftest$ac_exeext +-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=$? +- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 +- (exit $ac_status); } && { ac_try='./conftest$ac_exeext' +- { (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=$? +- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 +- (exit $ac_status); }; }; then +- fu_cv_sys_stat_fs_data=yes +-else +- $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 ) +-fu_cv_sys_stat_fs_data=no +-fi +-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 +- +- { $as_echo "$as_me:$LINENO: result: $fu_cv_sys_stat_fs_data" >&5 +-$as_echo "$fu_cv_sys_stat_fs_data" >&6; } +- if test $fu_cv_sys_stat_fs_data = yes; then +- space=yes +- +-cat >>confdefs.h <<\_ACEOF +-#define STAT_STATFS2_FS_DATA 1 +-_ACEOF +- +- fi +-fi +- +- +- +- +-for ac_header in sys/attributes.h attr/xattr.h sys/xattr.h +-do +-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? +-{ $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 +-cat confdefs.h >>conftest.$ac_ext +-cat >>conftest.$ac_ext <<_ACEOF +-/* end confdefs.h. */ +-$ac_includes_default +-#include <$ac_header> +-_ACEOF +-rm -f conftest.$ac_objext +-if { (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_header_compiler=yes +-else +- $as_echo "$as_me: failed program was:" >&5 +-sed 's/^/| /' conftest.$ac_ext >&5 +- +- ac_header_compiler=no +-fi +- +-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? +-{ $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 +-cat confdefs.h >>conftest.$ac_ext +-cat >>conftest.$ac_ext <<_ACEOF +-/* end confdefs.h. */ +-#include <$ac_header> +-_ACEOF +-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 +- $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 +- $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 +-{ $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: ) +- { $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:* ) +- { $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 samba-technical@samba.org ## +-## ---------------------------------------- ## +-_ASBOX +- ) | sed "s/^/$as_me: WARNING: /" >&2 +- ;; +-esac +-{ $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 ++if ac_fn_c_try_run "$LINENO"; then : ++ fu_cv_sys_stat_fs_data=yes + else +- eval "$as_ac_Header=\$ac_header_preproc" ++ fu_cv_sys_stat_fs_data=no + 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; } ++rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ ++ conftest.$ac_objext conftest.beam conftest.$ac_ext ++fi ++ ++fi ++ ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $fu_cv_sys_stat_fs_data" >&5 ++$as_echo "$fu_cv_sys_stat_fs_data" >&6; } ++ if test $fu_cv_sys_stat_fs_data = yes; then ++ space=yes + ++$as_echo "#define STAT_STATFS2_FS_DATA 1" >>confdefs.h ++ ++ fi + fi +-as_val=`eval 'as_val=${'$as_ac_Header'} +- $as_echo "$as_val"'` +- if test "x$as_val" = x""yes; then ++ ++for ac_header in sys/attributes.h attr/xattr.h sys/xattr.h ++do : ++ as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ++ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" ++eval as_val=\$$as_ac_Header ++ if test "x$as_val" = x""yes; then : + cat >>confdefs.h <<_ACEOF + #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 + _ACEOF +@@ -96601,19 +42690,15 @@ done @@ -97946,7 +101165,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. -@@ -92846,46 +41052,15 @@ +@@ -96631,46 +42716,15 @@ return 0; } _ACEOF @@ -97997,7 +101216,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. -@@ -92903,65 +41078,32 @@ +@@ -96688,65 +42742,32 @@ return 0; } _ACEOF @@ -98071,7 +101290,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ /* Define flistxattr to an innocuous variant, in case declares flistxattr. For example, HP-UX 11i declares gettimeofday. */ -@@ -93002,50 +41144,24 @@ +@@ -96787,50 +42808,24 @@ return 0; } _ACEOF @@ -98128,7 +101347,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure MAKE_SETTINGS="$MAKE_SETTINGS XATTR_LIBS = ${XATTR_LIBS} XATTR_CFLAGS = ${XATTR_CFLAGS} -@@ -93055,18 +41171,14 @@ +@@ -96840,18 +42835,14 @@ if test x"$ac_cv_func_ext_flistxattr" = x"yes"; then @@ -98150,7 +101369,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #include -@@ -93089,48 +41201,23 @@ +@@ -96874,48 +42865,23 @@ return 0; } _ACEOF @@ -98204,7 +101423,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure MAKE_SETTINGS="$MAKE_SETTINGS -@@ -93142,20 +41229,16 @@ +@@ -96927,20 +42893,16 @@ fi @@ -98229,7 +101448,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #include #include -@@ -93170,117 +41253,55 @@ +@@ -96955,117 +42917,55 @@ } _ACEOF @@ -98296,7 +101515,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -if test "$cross_compiling" = yes; then +if test "$cross_compiling" = yes; then : - samba_cv_HAVE_GETTIMEOFDAY_TZ=cross + samba_cv_HAVE_GETTIMEOFDAY_TZ=yes else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ @@ -98363,7 +101582,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure fi -@@ -93288,7 +41309,7 @@ +@@ -97073,7 +42973,7 @@ INCLUDED_POPT=auto # Check whether --with-included-popt was given. @@ -98372,7 +101591,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure withval=$with_included_popt; INCLUDED_POPT=$withval fi -@@ -93297,169 +41318,26 @@ +@@ -97082,169 +42982,26 @@ if test x"$INCLUDED_POPT" != x"yes"; then @@ -98550,7 +101769,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. -@@ -93477,43 +41355,18 @@ +@@ -97262,43 +43019,18 @@ return 0; } _ACEOF @@ -98600,7 +101819,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure POPT_LIBS="-lpopt" fi -@@ -93525,9 +41378,9 @@ +@@ -97310,9 +43042,9 @@ fi fi @@ -98612,7 +101831,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "$INCLUDED_POPT" >&6; } if test x"$INCLUDED_POPT" != x"no"; then poptdir="" -@@ -93541,156 +41394,16 @@ +@@ -97326,156 +43058,16 @@ fi done if test x"$poptdir" = "x"; then @@ -98776,7 +101995,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF -@@ -93729,12 +41442,10 @@ +@@ -97514,12 +43106,10 @@ LOOK_DIRS="/usr /usr/local /sw" # Check whether --with-libiconv was given. @@ -98791,7 +102010,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure else if test "$withval" != "yes" ; then -@@ -93746,65 +41457,36 @@ +@@ -97531,26 +43121,20 @@ LIBS=-liconv @@ -98825,16 +102044,11 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include --#include -- --int main() --{ -- iconv_t cd = iconv_open("ASCII","UCS-2LE"); -- if (cd == 0 || cd == (iconv_t)-1) return -1; -- return 0; --} -- --_ACEOF + #include +@@ -97563,33 +43147,10 @@ + } + + _ACEOF -rm -f conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in @@ -98858,27 +102072,17 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - { $as_echo "$as_me:$LINENO: result: yes" >&5 --$as_echo "yes" >&6; }; --cat >>confdefs.h <<\_ACEOF --#define HAVE_GICONV_H 1 -+#include -+ -+int main() -+{ -+ iconv_t cd = iconv_open("ASCII","UCS-2LE"); -+ if (cd == 0 || cd == (iconv_t)-1) return -1; -+ return 0; -+} -+ - _ACEOF +if ac_fn_c_try_run "$LINENO"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -+$as_echo "yes" >&6; }; + $as_echo "yes" >&6; }; +-cat >>confdefs.h <<\_ACEOF +-#define HAVE_GICONV_H 1 +-_ACEOF +$as_echo "#define HAVE_GICONV_H 1" >>confdefs.h ICONV_FOUND=yes; ICONV_CPPFLAGS="$CPPFLAGS" -@@ -93812,29 +41494,17 @@ +@@ -97597,29 +43158,17 @@ ICONV_LDFLAGS="$LDFLAGS" else @@ -98913,7 +102117,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #include #include -@@ -93847,33 +41517,10 @@ +@@ -97632,33 +43181,10 @@ } _ACEOF @@ -98950,7 +102154,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure ICONV_FOUND=yes; ICONV_CPPFLAGS="$CPPFLAGS" -@@ -93881,28 +41528,17 @@ +@@ -97666,28 +43192,17 @@ ICONV_LDFLAGS="$LDFLAGS" else @@ -98985,7 +102189,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #include #include -@@ -93915,33 +41551,10 @@ +@@ -97700,33 +43215,10 @@ } _ACEOF @@ -99022,7 +102226,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure ICONV_FOUND=yes; ICONV_CPPFLAGS="$CPPFLAGS" -@@ -93949,31 +41562,22 @@ +@@ -97734,31 +43226,22 @@ ICONV_LDFLAGS="$LDFLAGS" else @@ -99060,7 +102264,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure CPPFLAGS="$save_CPPFLAGS" LDFLAGS="$save_LDFLAGS" LIBS="$save_LIBS" -@@ -93986,17 +41590,13 @@ +@@ -97771,17 +43254,13 @@ if test x$ICONV_FOUND = xno; then @@ -99082,7 +102286,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #include #include -@@ -94009,49 +41609,20 @@ +@@ -97794,49 +43273,20 @@ } _ACEOF @@ -99138,7 +102342,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure fi for i in $LOOK_DIRS ; do -@@ -94068,24 +41639,20 @@ +@@ -97853,24 +43303,20 @@ LIBS=-liconv @@ -99170,7 +102374,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #include #include -@@ -94098,33 +41665,10 @@ +@@ -97883,33 +43329,10 @@ } _ACEOF @@ -99207,7 +102411,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure ICONV_FOUND=yes ICONV_CPPFLAGS="$CPPFLAGS" -@@ -94132,27 +41676,17 @@ +@@ -97917,27 +43340,17 @@ ICONV_LDFLAGS="$LDFLAGS" else @@ -99239,7 +102443,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #include #include -@@ -94165,33 +41699,10 @@ +@@ -97950,33 +43363,10 @@ } _ACEOF @@ -99276,7 +102480,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure ICONV_FOUND=yes ICONV_CPPFLAGS="$CPPFLAGS" -@@ -94199,26 +41710,17 @@ +@@ -97984,26 +43374,17 @@ ICONV_LDFLAGS="$LDFLAGS" else @@ -99308,10 +102512,11 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #include #include -@@ -94231,33 +41733,10 @@ +@@ -98015,304 +43396,92 @@ + return 0; } - _ACEOF +-_ACEOF -rm -f conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in @@ -99335,77 +102540,85 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - { $as_echo "$as_me:$LINENO: result: yes" >&5 -+if ac_fn_c_try_run "$LINENO"; then : -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 - $as_echo "yes" >&6; }; +-$as_echo "yes" >&6; }; -cat >>confdefs.h <<\_ACEOF -#define HAVE_GICONV_H 1 -_ACEOF -+$as_echo "#define HAVE_GICONV_H 1" >>confdefs.h - - ICONV_FOUND=yes - ICONV_CPPFLAGS="$CPPFLAGS" -@@ -94265,29 +41744,22 @@ - ICONV_LDFLAGS="$LDFLAGS" - - else +- +- ICONV_FOUND=yes +- ICONV_CPPFLAGS="$CPPFLAGS" +- ICONV_LIBS="$LIBS" +- ICONV_LDFLAGS="$LDFLAGS" +- +-else - $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 ) -{ $as_echo "$as_me:$LINENO: result: no" >&5 -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 - $as_echo "no" >&6; }; - fi +-$as_echo "no" >&6; }; +-fi -rm -rf conftest.dSYM -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext -+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ -+ conftest.$ac_objext conftest.beam conftest.$ac_ext - fi - - - +-fi - - fi +- +- +- +-fi -rm -rf conftest.dSYM -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext -+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ -+ conftest.$ac_objext conftest.beam conftest.$ac_ext - fi - - - +-fi - - CPPFLAGS="$save_CPPFLAGS" - LDFLAGS="$save_LDFLAGS" - LIBS="$save_LIBS" -@@ -94295,7 +41767,7 @@ - done - - if test x"$ICONV_FOUND" = x"no"; then +- +- +- +- CPPFLAGS="$save_CPPFLAGS" +- LDFLAGS="$save_LDFLAGS" +- LIBS="$save_LIBS" +- +-done +- +-if test x"$ICONV_FOUND" = x"no"; then - { $as_echo "$as_me:$LINENO: WARNING: Sufficient support for iconv function was not found. -+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Sufficient support for iconv function was not found. - Install libiconv from http://www.gnu.org/software/libiconv/ for better charset compatibility!" >&5 - $as_echo "$as_me: WARNING: Sufficient support for iconv function was not found. - Install libiconv from http://www.gnu.org/software/libiconv/ for better charset compatibility!" >&2;} -@@ -94308,9 +41780,7 @@ - - else - +- Install libiconv from http://www.gnu.org/software/libiconv/ for better charset compatibility!" >&5 +-$as_echo "$as_me: WARNING: Sufficient support for iconv function was not found. +- Install libiconv from http://www.gnu.org/software/libiconv/ for better charset compatibility!" >&2;} +- +- MAKE_SETTINGS="$MAKE_SETTINGS +-ICONV_ENABLE = NO +-" +-SMB_INFO_ENABLES="$SMB_INFO_ENABLES +-\$enabled{\"ICONV\"} = \"NO\";" +- +-else +- -cat >>confdefs.h <<\_ACEOF -#define HAVE_NATIVE_ICONV 1 -_ACEOF -+$as_echo "#define HAVE_NATIVE_ICONV 1" >>confdefs.h - - - MAKE_SETTINGS="$MAKE_SETTINGS -@@ -94331,203 +41801,23 @@ - - - - - for ac_func in writev +- +- MAKE_SETTINGS="$MAKE_SETTINGS +-ICONV_ENABLE = YES +-" +-SMB_INFO_ENABLES="$SMB_INFO_ENABLES +-\$enabled{\"ICONV\"} = \"YES\";" +- +-fi +- +- +-MAKE_SETTINGS="$MAKE_SETTINGS +-ICONV_LIBS = ${ICONV_LIBS} +-ICONV_CFLAGS = ${ICONV_CFLAGS} +-ICONV_CPPFLAGS = ${ICONV_CPPFLAGS} +-ICONV_LDFLAGS = ${ICONV_LDFLAGS} +-" +- +- +- +- +-for ac_func in writev -do -as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 @@ -99483,14 +102696,26 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 -- ++_ACEOF ++if ac_fn_c_try_run "$LINENO"; then : ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 ++$as_echo "yes" >&6; }; ++$as_echo "#define HAVE_GICONV_H 1" >>confdefs.h + - eval "$as_ac_var=no" -fi -- ++ ICONV_FOUND=yes ++ ICONV_CPPFLAGS="$CPPFLAGS" ++ ICONV_LIBS="$LIBS" ++ ICONV_LDFLAGS="$LDFLAGS" + -rm -rf conftest.dSYM -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext --fi ++else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++$as_echo "no" >&6; }; + fi -ac_res=`eval 'as_val=${'$as_ac_var'} - $as_echo "$as_val"'` - { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 @@ -99498,71 +102723,116 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -as_val=`eval 'as_val=${'$as_ac_var'} - $as_echo "$as_val"'` - if test "x$as_val" = x""yes; then +- cat >>confdefs.h <<_ACEOF +-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 +-_ACEOF ++rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ ++ conftest.$ac_objext conftest.beam conftest.$ac_ext ++fi ++ ++ + + fi ++rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ ++ conftest.$ac_objext conftest.beam conftest.$ac_ext ++fi ++ ++ ++ ++ CPPFLAGS="$save_CPPFLAGS" ++ LDFLAGS="$save_LDFLAGS" ++ LIBS="$save_LIBS" ++ + done + ++if test x"$ICONV_FOUND" = x"no"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Sufficient support for iconv function was not found. ++ Install libiconv from http://www.gnu.org/software/libiconv/ for better charset compatibility!" >&5 ++$as_echo "$as_me: WARNING: Sufficient support for iconv function was not found. ++ Install libiconv from http://www.gnu.org/software/libiconv/ for better charset compatibility!" >&2;} ++ ++ MAKE_SETTINGS="$MAKE_SETTINGS ++ICONV_ENABLE = NO ++" ++SMB_INFO_ENABLES="$SMB_INFO_ENABLES ++\$enabled{\"ICONV\"} = \"NO\";" + +-for ac_func in readv +-do +-as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +-{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 +-$as_echo_n "checking for $ac_func... " >&6; } +-if { as_var=$as_ac_var; eval "test \"\${$as_var+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. */ +-/* Define $ac_func to an innocuous variant, in case declares $ac_func. +- For example, HP-UX 11i declares gettimeofday. */ +-#define $ac_func innocuous_$ac_func + +-/* System header to define __stub macros and hopefully few prototypes, +- which can conflict with char $ac_func (); below. +- Prefer to if __STDC__ is defined, since +- exists even on freestanding compilers. */ ++$as_echo "#define HAVE_NATIVE_ICONV 1" >>confdefs.h + +-#ifdef __STDC__ +-# include +-#else +-# include +-#endif + +-#undef $ac_func ++ MAKE_SETTINGS="$MAKE_SETTINGS ++ICONV_ENABLE = YES ++" ++SMB_INFO_ENABLES="$SMB_INFO_ENABLES ++\$enabled{\"ICONV\"} = \"YES\";" + +-/* 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 +-char $ac_func (); +-/* 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_$ac_func || defined __stub___$ac_func +-choke me +-#endif ++fi + +-int +-main () +-{ +-return $ac_func (); +- ; +- return 0; +-} ++ ++MAKE_SETTINGS="$MAKE_SETTINGS ++ICONV_LIBS = ${ICONV_LIBS} ++ICONV_CFLAGS = ${ICONV_CFLAGS} ++ICONV_CPPFLAGS = ${ICONV_CPPFLAGS} ++ICONV_LDFLAGS = ${ICONV_LDFLAGS} ++" ++ ++ ++ ++for ac_func in writev +do : + ac_fn_c_check_func "$LINENO" "writev" "ac_cv_func_writev" +if test "x$ac_cv_func_writev" = x""yes; then : - cat >>confdefs.h <<_ACEOF --#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 ++ cat >>confdefs.h <<_ACEOF +#define HAVE_WRITEV 1 _ACEOF - - fi - done - -- - for ac_func in readv --do --as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` --{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 --$as_echo_n "checking for $ac_func... " >&6; } --if { as_var=$as_ac_var; eval "test \"\${$as_var+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. */ --/* Define $ac_func to an innocuous variant, in case declares $ac_func. -- For example, HP-UX 11i declares gettimeofday. */ --#define $ac_func innocuous_$ac_func -- --/* System header to define __stub macros and hopefully few prototypes, -- which can conflict with char $ac_func (); below. -- Prefer to if __STDC__ is defined, since -- exists even on freestanding compilers. */ -- --#ifdef __STDC__ --# include --#else --# include --#endif -- --#undef $ac_func -- --/* 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 --char $ac_func (); --/* 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_$ac_func || defined __stub___$ac_func --choke me --#endif -- --int --main () --{ --return $ac_func (); -- ; -- return 0; --} --_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in @@ -99588,10 +102858,11 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 -- + - eval "$as_ac_var=no" --fi -- + fi ++done + -rm -rf conftest.dSYM -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext @@ -99603,6 +102874,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -as_val=`eval 'as_val=${'$as_ac_var'} - $as_echo "$as_val"'` - if test "x$as_val" = x""yes; then ++for ac_func in readv +do : + ac_fn_c_check_func "$LINENO" "readv" "ac_cv_func_readv" +if test "x$ac_cv_func_readv" = x""yes; then : @@ -99612,7 +102884,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure _ACEOF fi -@@ -94606,151 +41896,12 @@ +@@ -98391,151 +43560,12 @@ @@ -99768,7 +103040,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure _ACEOF fi -@@ -94760,23 +41911,17 @@ +@@ -98545,23 +43575,17 @@ @@ -99795,7 +103067,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. -@@ -94794,54 +41939,28 @@ +@@ -98579,54 +43603,28 @@ return 0; } _ACEOF @@ -99857,7 +103129,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure cat >>confdefs.h <<_ACEOF #define HAVE_LIBZ 1 _ACEOF -@@ -94857,18 +41976,13 @@ +@@ -98642,18 +43640,13 @@ fi @@ -99879,7 +103151,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #include -@@ -94886,40 +42000,19 @@ +@@ -98671,40 +43664,19 @@ return 0; } _ACEOF @@ -99922,7 +103194,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "$samba_cv_zlib_1_2_3" >&6; } if test x"$ac_cv_header_zlib_h" = x"yes" -a \ -@@ -94978,9 +42071,9 @@ +@@ -98763,9 +43735,9 @@ if test -z "$PKG_CONFIG"; then # Extract the first word of "pkg-config", so it can be a program name with args. set dummy pkg-config; ac_word=$2 @@ -99934,7 +103206,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo_n "(cached) " >&6 else case $PKG_CONFIG in -@@ -94993,14 +42086,14 @@ +@@ -98778,14 +43750,14 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. @@ -99952,7 +103224,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure IFS=$as_save_IFS test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no" -@@ -95009,10 +42102,10 @@ +@@ -98794,10 +43766,10 @@ fi PKG_CONFIG=$ac_cv_path_PKG_CONFIG if test -n "$PKG_CONFIG"; then @@ -99965,20 +103237,20 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "no" >&6; } fi -@@ -95028,52 +42121,27 @@ +@@ -98813,52 +43785,27 @@ else SAMBA_PKG_CONFIG_MIN_VERSION="0.9.0" if $PKG_CONFIG --atleast-pkgconfig-version $SAMBA_PKG_CONFIG_MIN_VERSION; then -- { $as_echo "$as_me:$LINENO: checking for talloc >= $TALLOC_MIN_VERSION" >&5 -+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for talloc >= $TALLOC_MIN_VERSION" >&5 - $as_echo_n "checking for talloc >= $TALLOC_MIN_VERSION... " >&6; } +- { $as_echo "$as_me:$LINENO: checking for talloc >= 2.0.1" >&5 ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for talloc >= 2.0.1" >&5 + $as_echo_n "checking for talloc >= 2.0.1... " >&6; } - if $PKG_CONFIG --exists 'talloc >= $TALLOC_MIN_VERSION' ; then + if $PKG_CONFIG --exists 'talloc >= 2.0.1' ; then - { $as_echo "$as_me:$LINENO: result: yes" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } - LIBTALLOC_CFLAGS="`$PKG_CONFIG --cflags 'talloc >= $TALLOC_MIN_VERSION'`" + LIBTALLOC_CFLAGS="`$PKG_CONFIG --cflags 'talloc >= 2.0.1'`" OLD_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS $LIBTALLOC_CFLAGS" - { $as_echo "$as_me:$LINENO: checking that the C compiler can use the LIBTALLOC_CFLAGS" >&5 @@ -100025,9 +103297,9 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure MAKE_SETTINGS="$MAKE_SETTINGS LIBTALLOC_ENABLE = YES -@@ -95081,22 +42149,16 @@ +@@ -98866,22 +43813,16 @@ SMB_INFO_ENABLES="$SMB_INFO_ENABLES - \$enabled{LIBTALLOC} = \"YES\";" + \$enabled{\"LIBTALLOC\"} = \"YES\";" - { $as_echo "$as_me:$LINENO: result: yes" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 @@ -100051,17 +103323,17 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - CFLAGS="$OLD_CFLAGS" - -@@ -95111,7 +42173,7 @@ + ac_cv_LIBTALLOC_libs_only_other="`$PKG_CONFIG --libs-only-other 'talloc >= 2.0.1'` `$PKG_CONFIG --libs-only-L 'talloc >= 2.0.1'`" +@@ -98942,7 +43883,7 @@ ac_cv_LIBTALLOC_found=yes else - { $as_echo "$as_me:$LINENO: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } - $PKG_CONFIG --errors-to-stdout --print-errors 'talloc >= $TALLOC_MIN_VERSION' + $PKG_CONFIG --errors-to-stdout --print-errors 'talloc >= 2.0.1' ac_cv_LIBTALLOC_found=no -@@ -95141,9 +42203,9 @@ +@@ -98976,9 +43917,9 @@ if test -z "$PKG_CONFIG"; then # Extract the first word of "pkg-config", so it can be a program name with args. set dummy pkg-config; ac_word=$2 @@ -100073,7 +103345,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo_n "(cached) " >&6 else case $PKG_CONFIG in -@@ -95156,14 +42218,14 @@ +@@ -98991,14 +43932,14 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. @@ -100091,7 +103363,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure IFS=$as_save_IFS test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no" -@@ -95172,10 +42234,10 @@ +@@ -99007,10 +43948,10 @@ fi PKG_CONFIG=$ac_cv_path_PKG_CONFIG if test -n "$PKG_CONFIG"; then @@ -100104,20 +103376,20 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "no" >&6; } fi -@@ -95191,52 +42253,27 @@ +@@ -99026,52 +43967,27 @@ else SAMBA_PKG_CONFIG_MIN_VERSION="0.9.0" if $PKG_CONFIG --atleast-pkgconfig-version $SAMBA_PKG_CONFIG_MIN_VERSION; then -- { $as_echo "$as_me:$LINENO: checking for tdb >= $TDB_MIN_VERSION" >&5 -+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for tdb >= $TDB_MIN_VERSION" >&5 - $as_echo_n "checking for tdb >= $TDB_MIN_VERSION... " >&6; } +- { $as_echo "$as_me:$LINENO: checking for tdb >= 1.2.1" >&5 ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for tdb >= 1.2.1" >&5 + $as_echo_n "checking for tdb >= 1.2.1... " >&6; } - if $PKG_CONFIG --exists 'tdb >= $TDB_MIN_VERSION' ; then + if $PKG_CONFIG --exists 'tdb >= 1.2.1' ; then - { $as_echo "$as_me:$LINENO: result: yes" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } - LIBTDB_CFLAGS="`$PKG_CONFIG --cflags 'tdb >= $TDB_MIN_VERSION'`" + LIBTDB_CFLAGS="`$PKG_CONFIG --cflags 'tdb >= 1.2.1'`" OLD_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS $LIBTDB_CFLAGS" - { $as_echo "$as_me:$LINENO: checking that the C compiler can use the LIBTDB_CFLAGS" >&5 @@ -100164,9 +103436,9 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure MAKE_SETTINGS="$MAKE_SETTINGS LIBTDB_ENABLE = YES -@@ -95244,22 +42281,16 @@ +@@ -99079,22 +43995,16 @@ SMB_INFO_ENABLES="$SMB_INFO_ENABLES - \$enabled{LIBTDB} = \"YES\";" + \$enabled{\"LIBTDB\"} = \"YES\";" - { $as_echo "$as_me:$LINENO: result: yes" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 @@ -100190,17 +103462,17 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - CFLAGS="$OLD_CFLAGS" - -@@ -95274,7 +42305,7 @@ + ac_cv_LIBTDB_libs_only_other="`$PKG_CONFIG --libs-only-other 'tdb >= 1.2.1'` `$PKG_CONFIG --libs-only-L 'tdb >= 1.2.1'`" +@@ -99155,7 +44065,7 @@ ac_cv_LIBTDB_found=yes else - { $as_echo "$as_me:$LINENO: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } - $PKG_CONFIG --errors-to-stdout --print-errors 'tdb >= $TDB_MIN_VERSION' + $PKG_CONFIG --errors-to-stdout --print-errors 'tdb >= 1.2.1' ac_cv_LIBTDB_found=no -@@ -95299,9 +42330,7 @@ +@@ -99180,9 +44090,7 @@ fi done if test x"$tdbdir" = "x"; then @@ -100210,8 +103482,8 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure + as_fn_error "cannot find tdb source in $tdbpaths" "$LINENO" 5 fi TDB_OBJ="common/tdb.o common/dump.o common/transaction.o common/error.o common/traverse.o" - TDB_OBJ="$TDB_OBJ common/freelist.o common/freelistcheck.o common/io.o common/lock.o common/open.o" -@@ -95314,104 +42343,12 @@ + TDB_OBJ="$TDB_OBJ common/freelist.o common/freelistcheck.o common/io.o common/lock.o common/open.o common/check.o" +@@ -99195,104 +44103,12 @@ TDB_CFLAGS="-I$tdbdir/include" @@ -100321,7 +103593,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF -@@ -95419,151 +42356,12 @@ +@@ -99300,151 +44116,12 @@ fi done @@ -100478,7 +103750,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF -@@ -95574,17 +42372,13 @@ +@@ -99455,17 +44132,13 @@ @@ -100499,7 +103771,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #include int -@@ -95595,56 +42389,29 @@ +@@ -99476,56 +44149,29 @@ return 0; } _ACEOF @@ -100563,7 +103835,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #include int -@@ -95655,41 +42422,18 @@ +@@ -99536,41 +44182,18 @@ return 0; } _ACEOF @@ -100609,7 +103881,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure fi -@@ -95715,9 +42459,9 @@ +@@ -99601,9 +44224,9 @@ if test -z "$PKG_CONFIG"; then # Extract the first word of "pkg-config", so it can be a program name with args. set dummy pkg-config; ac_word=$2 @@ -100621,7 +103893,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo_n "(cached) " >&6 else case $PKG_CONFIG in -@@ -95730,14 +42474,14 @@ +@@ -99616,14 +44239,14 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. @@ -100639,7 +103911,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure IFS=$as_save_IFS test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no" -@@ -95746,10 +42490,10 @@ +@@ -99632,10 +44255,10 @@ fi PKG_CONFIG=$ac_cv_path_PKG_CONFIG if test -n "$PKG_CONFIG"; then @@ -100652,20 +103924,20 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "no" >&6; } fi -@@ -95765,52 +42509,27 @@ +@@ -99651,52 +44274,27 @@ else SAMBA_PKG_CONFIG_MIN_VERSION="0.9.0" if $PKG_CONFIG --atleast-pkgconfig-version $SAMBA_PKG_CONFIG_MIN_VERSION; then -- { $as_echo "$as_me:$LINENO: checking for tevent = $TEVENT_REQUIRED_VERSION" >&5 -+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for tevent = $TEVENT_REQUIRED_VERSION" >&5 - $as_echo_n "checking for tevent = $TEVENT_REQUIRED_VERSION... " >&6; } +- { $as_echo "$as_me:$LINENO: checking for tevent = 0.9.8" >&5 ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for tevent = 0.9.8" >&5 + $as_echo_n "checking for tevent = 0.9.8... " >&6; } - if $PKG_CONFIG --exists 'tevent = $TEVENT_REQUIRED_VERSION' ; then + if $PKG_CONFIG --exists 'tevent = 0.9.8' ; then - { $as_echo "$as_me:$LINENO: result: yes" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } - LIBTEVENT_CFLAGS="`$PKG_CONFIG --cflags 'tevent = $TEVENT_REQUIRED_VERSION'`" + LIBTEVENT_CFLAGS="`$PKG_CONFIG --cflags 'tevent = 0.9.8'`" OLD_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS $LIBTEVENT_CFLAGS" - { $as_echo "$as_me:$LINENO: checking that the C compiler can use the LIBTEVENT_CFLAGS" >&5 @@ -100712,9 +103984,9 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure MAKE_SETTINGS="$MAKE_SETTINGS LIBTEVENT_ENABLE = YES -@@ -95818,22 +42537,16 @@ +@@ -99704,22 +44302,16 @@ SMB_INFO_ENABLES="$SMB_INFO_ENABLES - \$enabled{LIBTEVENT} = \"YES\";" + \$enabled{\"LIBTEVENT\"} = \"YES\";" - { $as_echo "$as_me:$LINENO: result: yes" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 @@ -100738,33 +104010,50 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - CFLAGS="$OLD_CFLAGS" - -@@ -95848,7 +42561,7 @@ + ac_cv_LIBTEVENT_libs_only_other="`$PKG_CONFIG --libs-only-other 'tevent = 0.9.8'` `$PKG_CONFIG --libs-only-L 'tevent = 0.9.8'`" +@@ -99780,7 +44372,7 @@ ac_cv_LIBTEVENT_found=yes else - { $as_echo "$as_me:$LINENO: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } - $PKG_CONFIG --errors-to-stdout --print-errors 'tevent = $TEVENT_REQUIRED_VERSION' + $PKG_CONFIG --errors-to-stdout --print-errors 'tevent = 0.9.8' ac_cv_LIBTEVENT_found=no -@@ -95877,9 +42590,7 @@ - fi - done - if test x"$teventdir" = "x"; then +@@ -99801,281 +44393,50 @@ + + if test x"$teventdir" = "x"; then + teventdir="" +- teventpaths="$srcdir $srcdir/../lib/tevent $srcdir/tevent $srcdir/../tevent" +- for d in $teventpaths; do +- if test -f "$d/tevent.c"; then +- teventdir="$d" +- break; +- fi +- done +- if test x"$teventdir" = "x"; then - { { $as_echo "$as_me:$LINENO: error: cannot find libtevent source in $teventpaths" >&5 -$as_echo "$as_me: error: cannot find libtevent source in $teventpaths" >&2;} - { (exit 1); exit 1; }; } -+ as_fn_error "cannot find libtevent source in $teventpaths" "$LINENO" 5 - fi - fi - -@@ -95897,253 +42608,24 @@ - TEVENT_OBJ="$TEVENT_OBJ tevent_req.o tevent_wakeup.o tevent_queue.o" - TEVENT_OBJ="$TEVENT_OBJ tevent_standard.o tevent_select.o" - +- fi +-fi - - for ac_header in sys/epoll.h +-TEVENT_OBJ="" +-TEVENT_CFLAGS="" +-TEVENT_LIBS="" +- +- +- +- +-TEVENT_CFLAGS="-I$teventdir" +- +-TEVENT_OBJ="tevent.o tevent_debug.o tevent_util.o" +-TEVENT_OBJ="$TEVENT_OBJ tevent_fd.o tevent_timed.o tevent_immediate.o tevent_signal.o" +-TEVENT_OBJ="$TEVENT_OBJ tevent_req.o tevent_wakeup.o tevent_queue.o" +-TEVENT_OBJ="$TEVENT_OBJ tevent_standard.o tevent_select.o" +- +- +-for ac_header in sys/epoll.h -do -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 @@ -100906,20 +104195,29 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -as_val=`eval 'as_val=${'$as_ac_Header'} - $as_echo "$as_val"'` - if test "x$as_val" = x""yes; then -+do : -+ ac_fn_c_check_header_mongrel "$LINENO" "sys/epoll.h" "ac_cv_header_sys_epoll_h" "$ac_includes_default" -+if test "x$ac_cv_header_sys_epoll_h" = x""yes; then : - cat >>confdefs.h <<_ACEOF +- cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -+#define HAVE_SYS_EPOLL_H 1 - _ACEOF - +-_ACEOF +- ++ teventpaths="$srcdir $srcdir/../lib/tevent $srcdir/tevent $srcdir/../tevent" ++ for d in $teventpaths; do ++ if test -f "$d/tevent.c"; then ++ teventdir="$d" ++ break; ++ fi ++ done ++ if test x"$teventdir" = "x"; then ++ as_fn_error "cannot find libtevent source in $teventpaths" "$LINENO" 5 ++ fi fi - done - +-done - - for ac_func in epoll_create ++TEVENT_OBJ="" ++TEVENT_CFLAGS="" ++TEVENT_LIBS="" + +-for ac_func in epoll_create -do -as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 @@ -100936,20 +104234,21 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -/* Define $ac_func to an innocuous variant, in case declares $ac_func. - For example, HP-UX 11i declares gettimeofday. */ -#define $ac_func innocuous_$ac_func -- + -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char $ac_func (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ -- + -#ifdef __STDC__ -# include -#else -# include -#endif -- + -#undef $ac_func -- ++TEVENT_CFLAGS="-I$teventdir" + -/* 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. */ @@ -100963,7 +104262,11 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -#if defined __stub_$ac_func || defined __stub___$ac_func -choke me -#endif -- ++TEVENT_OBJ="tevent.o tevent_debug.o tevent_util.o" ++TEVENT_OBJ="$TEVENT_OBJ tevent_fd.o tevent_timed.o tevent_immediate.o tevent_signal.o" ++TEVENT_OBJ="$TEVENT_OBJ tevent_req.o tevent_wakeup.o tevent_queue.o" ++TEVENT_OBJ="$TEVENT_OBJ tevent_standard.o tevent_select.o" + -int -main () -{ @@ -100971,7 +104274,13 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - ; - return 0; -} --_ACEOF ++for ac_header in sys/epoll.h ++do : ++ ac_fn_c_check_header_mongrel "$LINENO" "sys/epoll.h" "ac_cv_header_sys_epoll_h" "$ac_includes_default" ++if test "x$ac_cv_header_sys_epoll_h" = x""yes; then : ++ cat >>confdefs.h <<_ACEOF ++#define HAVE_SYS_EPOLL_H 1 + _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in @@ -100997,10 +104306,10 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 -- + - eval "$as_ac_var=no" --fi -- + fi + -rm -rf conftest.dSYM -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext @@ -101012,6 +104321,9 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -as_val=`eval 'as_val=${'$as_ac_var'} - $as_echo "$as_val"'` - if test "x$as_val" = x""yes; then ++done ++ ++for ac_func in epoll_create +do : + ac_fn_c_check_func "$LINENO" "epoll_create" "ac_cv_func_epoll_create" +if test "x$ac_cv_func_epoll_create" = x""yes; then : @@ -101021,7 +104333,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure _ACEOF fi -@@ -96152,9 +42634,7 @@ +@@ -100084,9 +44445,7 @@ if test x"$ac_cv_header_sys_epoll_h" = x"yes" -a x"$ac_cv_func_epoll_create" = x"yes"; then TEVENT_OBJ="$TEVENT_OBJ tevent_epoll.o" @@ -101032,7 +104344,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure fi -@@ -96216,9 +42696,9 @@ +@@ -100142,9 +44501,9 @@ if test -z "$PKG_CONFIG"; then # Extract the first word of "pkg-config", so it can be a program name with args. set dummy pkg-config; ac_word=$2 @@ -101044,7 +104356,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo_n "(cached) " >&6 else case $PKG_CONFIG in -@@ -96231,14 +42711,14 @@ +@@ -100157,14 +44516,14 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. @@ -101062,7 +104374,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure IFS=$as_save_IFS test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no" -@@ -96247,10 +42727,10 @@ +@@ -100173,10 +44532,10 @@ fi PKG_CONFIG=$ac_cv_path_PKG_CONFIG if test -n "$PKG_CONFIG"; then @@ -101075,20 +104387,20 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "no" >&6; } fi -@@ -96266,52 +42746,27 @@ +@@ -100192,52 +44551,27 @@ else SAMBA_PKG_CONFIG_MIN_VERSION="0.9.0" if $PKG_CONFIG --atleast-pkgconfig-version $SAMBA_PKG_CONFIG_MIN_VERSION; then -- { $as_echo "$as_me:$LINENO: checking for ldb = $LDB_REQUIRED_VERSION" >&5 -+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ldb = $LDB_REQUIRED_VERSION" >&5 - $as_echo_n "checking for ldb = $LDB_REQUIRED_VERSION... " >&6; } +- { $as_echo "$as_me:$LINENO: checking for ldb = 0.9.10" >&5 ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ldb = 0.9.10" >&5 + $as_echo_n "checking for ldb = 0.9.10... " >&6; } - if $PKG_CONFIG --exists 'ldb = $LDB_REQUIRED_VERSION' ; then + if $PKG_CONFIG --exists 'ldb = 0.9.10' ; then - { $as_echo "$as_me:$LINENO: result: yes" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } - LIBLDB_CFLAGS="`$PKG_CONFIG --cflags 'ldb = $LDB_REQUIRED_VERSION'`" + LIBLDB_CFLAGS="`$PKG_CONFIG --cflags 'ldb = 0.9.10'`" OLD_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS $LIBLDB_CFLAGS" - { $as_echo "$as_me:$LINENO: checking that the C compiler can use the LIBLDB_CFLAGS" >&5 @@ -101135,9 +104447,9 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure MAKE_SETTINGS="$MAKE_SETTINGS LIBLDB_ENABLE = YES -@@ -96319,22 +42774,16 @@ +@@ -100245,22 +44579,16 @@ SMB_INFO_ENABLES="$SMB_INFO_ENABLES - \$enabled{LIBLDB} = \"YES\";" + \$enabled{\"LIBLDB\"} = \"YES\";" - { $as_echo "$as_me:$LINENO: result: yes" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 @@ -101161,17 +104473,17 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - CFLAGS="$OLD_CFLAGS" - -@@ -96349,7 +42798,7 @@ + ac_cv_LIBLDB_libs_only_other="`$PKG_CONFIG --libs-only-other 'ldb = 0.9.10'` `$PKG_CONFIG --libs-only-L 'ldb = 0.9.10'`" +@@ -100321,7 +44649,7 @@ ac_cv_LIBLDB_found=yes else - { $as_echo "$as_me:$LINENO: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } - $PKG_CONFIG --errors-to-stdout --print-errors 'ldb = $LDB_REQUIRED_VERSION' + $PKG_CONFIG --errors-to-stdout --print-errors 'ldb = 0.9.10' ac_cv_LIBLDB_found=no -@@ -96395,12 +42844,12 @@ +@@ -100367,12 +44695,12 @@ SQLITE3_LIBS="" with_sqlite3_support=no @@ -101186,7 +104498,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure withval=$with_sqlite3; case "$withval" in yes|no|auto) with_sqlite3_support=$withval -@@ -96409,157 +42858,18 @@ +@@ -100381,157 +44709,18 @@ fi @@ -101350,7 +104662,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure _ACEOF fi -@@ -96569,11 +42879,9 @@ +@@ -100541,11 +44730,9 @@ if test x"$ac_cv_header_sqlite3_h" != x"yes"; then if test x"$with_sqlite3_support" = x"yes"; then @@ -101364,7 +104676,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "$as_me: WARNING: sqlite3.h is needed for SQLITE3 support" >&2;} fi -@@ -96588,23 +42896,17 @@ +@@ -100560,23 +44747,17 @@ # now see if we can find the sqlite3 libs in standard paths @@ -101391,7 +104703,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. -@@ -96622,54 +42924,28 @@ +@@ -100594,54 +44775,28 @@ return 0; } _ACEOF @@ -101453,7 +104765,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure cat >>confdefs.h <<_ACEOF #define HAVE_LIBSQLITE3 1 _ACEOF -@@ -96685,21 +42961,16 @@ +@@ -100657,21 +44812,16 @@ fi @@ -101479,7 +104791,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "yes" >&6; } with_sqlite3_support=yes -@@ -96711,11 +42982,9 @@ +@@ -100683,11 +44833,9 @@ else if test x"$with_sqlite3_support" = x"yes"; then @@ -101493,7 +104805,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "$as_me: WARNING: libsqlite3 is needed for SQLITE3 support" >&2;} fi -@@ -96776,7 +43045,7 @@ +@@ -100757,7 +44905,7 @@ use_gnutls=auto # Check whether --enable-gnutls was given. @@ -101502,7 +104814,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure enableval=$enable_gnutls; if test x$enable_gnutls = xno; then use_gnutls=no fi -@@ -96790,9 +43059,9 @@ +@@ -100771,9 +44919,9 @@ if test -z "$PKG_CONFIG"; then # Extract the first word of "pkg-config", so it can be a program name with args. set dummy pkg-config; ac_word=$2 @@ -101514,7 +104826,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo_n "(cached) " >&6 else case $PKG_CONFIG in -@@ -96805,14 +43074,14 @@ +@@ -100786,14 +44934,14 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. @@ -101532,7 +104844,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure IFS=$as_save_IFS test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no" -@@ -96821,10 +43090,10 @@ +@@ -100802,10 +44950,10 @@ fi PKG_CONFIG=$ac_cv_path_PKG_CONFIG if test -n "$PKG_CONFIG"; then @@ -101545,20 +104857,20 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "no" >&6; } fi -@@ -96840,52 +43109,27 @@ +@@ -100821,52 +44969,27 @@ else SAMBA_PKG_CONFIG_MIN_VERSION="0.9.0" if $PKG_CONFIG --atleast-pkgconfig-version $SAMBA_PKG_CONFIG_MIN_VERSION; then -- { $as_echo "$as_me:$LINENO: checking for gnutls < 2.6.0" >&5 -+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gnutls < 2.6.0" >&5 - $as_echo_n "checking for gnutls < 2.6.0... " >&6; } +- { $as_echo "$as_me:$LINENO: checking for gnutls >= 1.4.0" >&5 ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gnutls >= 1.4.0" >&5 + $as_echo_n "checking for gnutls >= 1.4.0... " >&6; } - if $PKG_CONFIG --exists 'gnutls < 2.6.0' ; then + if $PKG_CONFIG --exists 'gnutls >= 1.4.0' ; then - { $as_echo "$as_me:$LINENO: result: yes" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } - GNUTLS_CFLAGS="`$PKG_CONFIG --cflags 'gnutls < 2.6.0'`" + GNUTLS_CFLAGS="`$PKG_CONFIG --cflags 'gnutls >= 1.4.0'`" OLD_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS $GNUTLS_CFLAGS" - { $as_echo "$as_me:$LINENO: checking that the C compiler can use the GNUTLS_CFLAGS" >&5 @@ -101605,9 +104917,9 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure MAKE_SETTINGS="$MAKE_SETTINGS GNUTLS_ENABLE = YES -@@ -96893,22 +43137,16 @@ +@@ -100874,22 +44997,16 @@ SMB_INFO_ENABLES="$SMB_INFO_ENABLES - \$enabled{GNUTLS} = \"YES\";" + \$enabled{\"GNUTLS\"} = \"YES\";" - { $as_echo "$as_me:$LINENO: result: yes" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 @@ -101631,23 +104943,20 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - CFLAGS="$OLD_CFLAGS" - -@@ -96923,7 +43161,7 @@ + ac_cv_GNUTLS_libs_only_other="`$PKG_CONFIG --libs-only-other 'gnutls >= 1.4.0'` `$PKG_CONFIG --libs-only-L 'gnutls >= 1.4.0'`" +@@ -100950,7 +45067,7 @@ ac_cv_GNUTLS_found=yes else - { $as_echo "$as_me:$LINENO: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } - $PKG_CONFIG --errors-to-stdout --print-errors 'gnutls < 2.6.0' + $PKG_CONFIG --errors-to-stdout --print-errors 'gnutls >= 1.4.0' ac_cv_GNUTLS_found=no -@@ -96940,770 +43178,161 @@ - use_gnutls=no - fi +@@ -100970,151 +45087,12 @@ + fi --fi -- --if test x$use_gnutls = xauto; then + if test x$use_gnutls = xauto; then - -for ac_header in gnutls/gnutls.h -do @@ -101791,50 +105100,47 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -as_val=`eval 'as_val=${'$as_ac_Header'} - $as_echo "$as_val"'` - if test "x$as_val" = x""yes; then -- cat >>confdefs.h <<_ACEOF ++ for ac_header in gnutls/gnutls.h ++do : ++ ac_fn_c_check_header_mongrel "$LINENO" "gnutls/gnutls.h" "ac_cv_header_gnutls_gnutls_h" "$ac_includes_default" ++if test "x$ac_cv_header_gnutls_gnutls_h" = x""yes; then : + cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 --_ACEOF -- --fi -- --done -- -- -- -- --ac_check_lib_ext_save_LIBS=$LIBS --LIBS="-lgnutls $GNUTLS_LIBS $LIBS" -- -- ++#define HAVE_GNUTLS_GNUTLS_H 1 + _ACEOF + + fi +@@ -101123,23 +45101,17 @@ + + + - + ac_check_lib_ext_save_LIBS=$LIBS + LIBS="-lgnutls $GNUTLS_LIBS $LIBS" + + + - - { $as_echo "$as_me:$LINENO: checking for gnutls_global_init in -lgnutls" >&5 --$as_echo_n "checking for gnutls_global_init in -lgnutls... " >&6; } ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gnutls_global_init in -lgnutls" >&5 + $as_echo_n "checking for gnutls_global_init in -lgnutls... " >&6; } -if test "${ac_cv_lib_ext_gnutls_gnutls_global_init+set}" = set; then -- $as_echo_n "(cached) " >&6 --else ++if test "${ac_cv_lib_ext_gnutls_gnutls_global_init+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. */ -- --/* 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 --char gnutls_global_init (); --int --main () --{ --return gnutls_global_init (); -- ; -- return 0; --} --_ACEOF ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + + /* Override any GCC internal prototype to avoid an error. +@@ -101157,580 +45129,116 @@ + return 0; + } + _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in @@ -101856,7 +105162,8 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - test "$cross_compiling" = yes || - $as_test_x conftest$ac_exeext - }; then -- ac_cv_lib_ext_gnutls_gnutls_global_init=yes; ++if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_ext_gnutls_gnutls_global_init=yes; - ac_cv_lib_ext_gnutls=yes -else - $as_echo "$as_me: failed program was:" >&5 @@ -101969,7 +105276,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -GNUTLS_ENABLE = YES -" -SMB_INFO_ENABLES="$SMB_INFO_ENABLES --\$enabled{GNUTLS} = \"YES\";" +-\$enabled{\"GNUTLS\"} = \"YES\";" - - { $as_echo "$as_me:$LINENO: checking whether gnutls_x509_crt_set_subject_key_id is declared" >&5 -$as_echo_n "checking whether gnutls_x509_crt_set_subject_key_id is declared... " >&6; } @@ -101993,19 +105300,11 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -#ifndef gnutls_x509_crt_set_subject_key_id - (void) gnutls_x509_crt_set_subject_key_id; -#endif -+fi - +- - ; - return 0; -} -+if test x$use_gnutls = xauto; then -+ for ac_header in gnutls/gnutls.h -+do : -+ ac_fn_c_check_header_mongrel "$LINENO" "gnutls/gnutls.h" "ac_cv_header_gnutls_gnutls_h" "$ac_includes_default" -+if test "x$ac_cv_header_gnutls_gnutls_h" = x""yes; then : -+ cat >>confdefs.h <<_ACEOF -+#define HAVE_GNUTLS_GNUTLS_H 1 - _ACEOF +-_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in @@ -102028,46 +105327,40 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - +- - ac_cv_have_decl_gnutls_x509_crt_set_subject_key_id=no - fi - +-fi +- -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_gnutls_x509_crt_set_subject_key_id" >&5 -$as_echo "$ac_cv_have_decl_gnutls_x509_crt_set_subject_key_id" >&6; } -if test "x$ac_cv_have_decl_gnutls_x509_crt_set_subject_key_id" = x""yes; then -+done - +- -cat >>confdefs.h <<\_ACEOF -#define HAVE_GNUTLS_X509_CRT_SET_SUBJECT_KEY_ID 1 -_ACEOF - +- -fi - +- - fi -+ac_check_lib_ext_save_LIBS=$LIBS -+LIBS="-lgnutls $GNUTLS_LIBS $LIBS" - +- -MAKE_SETTINGS="$MAKE_SETTINGS -GNUTLS_LIBS = $GNUTLS_LIBS -GNUTLS_CFLAGS = -GNUTLS_CPPFLAGS = -GNUTLS_LDFLAGS = -" - - +- +- -fi -if test x$use_gnutls = xyes; then - #Some older versions have a different type name - { $as_echo "$as_me:$LINENO: checking for gnutls_datum" >&5 -$as_echo_n "checking for gnutls_datum... " >&6; } -if test "${ac_cv_type_gnutls_datum+set}" = set; then -+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gnutls_global_init in -lgnutls" >&5 -+$as_echo_n "checking for gnutls_global_init in -lgnutls... " >&6; } -+if test "${ac_cv_lib_ext_gnutls_gnutls_global_init+set}" = set; then : - $as_echo_n "(cached) " >&6 - else +- $as_echo_n "(cached) " >&6 +-else - ac_cv_type_gnutls_datum=no -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ @@ -102109,27 +105402,18 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ +-/* end confdefs.h. */ -#include "gnutls/gnutls.h" - -+/* 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 -+char gnutls_global_init (); - int - main () - { +- +-int +-main () +-{ -if (sizeof ((gnutls_datum))) - return 0; -+return gnutls_global_init (); - ; - return 0; - } - _ACEOF +- ; +- return 0; +-} +-_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in @@ -102157,39 +105441,26 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -+if ac_fn_c_try_link "$LINENO"; then : -+ ac_cv_lib_ext_gnutls_gnutls_global_init=yes; -+ ac_cv_lib_ext_gnutls=yes - else +-else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - -+ ac_cv_lib_ext_gnutls_gnutls_global_init=no; -+ ac_cv_lib_ext_gnutls=no - fi -+rm -f core conftest.err conftest.$ac_objext \ -+ conftest$ac_exeext conftest.$ac_ext - +-fi +- -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi +-fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_gnutls_datum" >&5 -$as_echo "$ac_cv_type_gnutls_datum" >&6; } -if test "x$ac_cv_type_gnutls_datum" = x""yes; then - -cat >>confdefs.h <<_ACEOF -#define HAVE_GNUTLS_DATUM 1 -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ext_gnutls_gnutls_global_init" >&5 -+$as_echo "$ac_cv_lib_ext_gnutls_gnutls_global_init" >&6; } -+ if test $ac_cv_lib_ext_gnutls_gnutls_global_init = yes; then : -+ cat >>confdefs.h <<_ACEOF -+#define HAVE_GNUTLS_GLOBAL_INIT 1 - _ACEOF - +-_ACEOF +- +- +-fi - - fi -+LIBS=$ac_check_lib_ext_save_LIBS - - { $as_echo "$as_me:$LINENO: checking for gnutls_datum_t" >&5 -$as_echo_n "checking for gnutls_datum_t... " >&6; } -if test "${ac_cv_type_gnutls_datum_t+set}" = set; then @@ -102198,15 +105469,12 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - ac_cv_type_gnutls_datum_t=no -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -+if test $ac_cv_lib_ext_gnutls = yes; then : -+ cat >>confdefs.h <<_ACEOF -+#define HAVE_LIBGNUTLS 1 - _ACEOF +-_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include "gnutls/gnutls.h" - +- -int -main () -{ @@ -102241,14 +105509,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include "gnutls/gnutls.h" -+ case "$GNUTLS_LIBS" in -+ *-lgnutls*) -+ ;; -+ *) -+ GNUTLS_LIBS="-lgnutls $GNUTLS_LIBS" -+ ;; -+ esac - +- -int -main () -{ @@ -102277,42 +105538,72 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - : ++ ac_cv_lib_ext_gnutls=yes + else +- $as_echo "$as_me: failed program was:" >&5 +-sed 's/^/| /' conftest.$ac_ext >&5 ++ ac_cv_lib_ext_gnutls_gnutls_global_init=no; ++ ac_cv_lib_ext_gnutls=no ++fi ++rm -f core conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext ++ ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ext_gnutls_gnutls_global_init" >&5 ++$as_echo "$ac_cv_lib_ext_gnutls_gnutls_global_init" >&6; } ++ if test $ac_cv_lib_ext_gnutls_gnutls_global_init = yes; then : ++ cat >>confdefs.h <<_ACEOF ++#define HAVE_GNUTLS_GLOBAL_INIT 1 ++_ACEOF + +- ac_cv_type_gnutls_datum_t=yes + fi ++LIBS=$ac_check_lib_ext_save_LIBS + +-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 ++if test $ac_cv_lib_ext_gnutls = yes; then : ++ cat >>confdefs.h <<_ACEOF ++#define HAVE_LIBGNUTLS 1 ++_ACEOF ++ ++ case "$GNUTLS_LIBS" in ++ *-lgnutls*) ++ ;; ++ *) ++ GNUTLS_LIBS="-lgnutls $GNUTLS_LIBS" ++ ;; ++ esac + -- ac_cv_type_gnutls_datum_t=yes fi + ac_fn_c_check_decl "$LINENO" "gnutls_x509_crt_set_version" "ac_cv_have_decl_gnutls_x509_crt_set_version" " + #include + #include - --rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext --else -- $as_echo "$as_me: failed program was:" >&5 --sed 's/^/| /' conftest.$ac_ext >&5 ++ +" +if test "x$ac_cv_have_decl_gnutls_x509_crt_set_version" = x""yes; then : - ++ +$as_echo "#define HAVE_GNUTLS_X509_CRT_SET_VERSION 1" >>confdefs.h - fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext --fi + fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_gnutls_datum_t" >&5 -$as_echo "$ac_cv_type_gnutls_datum_t" >&6; } -if test "x$ac_cv_type_gnutls_datum_t" = x""yes; then -+ if test x"$ac_cv_header_gnutls_gnutls_h" = x"yes" -a x"$ac_cv_lib_ext_gnutls_gnutls_global_init" = x"yes" -a x"$ac_cv_have_decl_gnutls_x509_crt_set_version" = x"yes";then -cat >>confdefs.h <<_ACEOF -#define HAVE_GNUTLS_DATUM_T 1 -_ACEOF ++ if test x"$ac_cv_header_gnutls_gnutls_h" = x"yes" -a x"$ac_cv_lib_ext_gnutls_gnutls_global_init" = x"yes" -a x"$ac_cv_have_decl_gnutls_x509_crt_set_version" = x"yes";then ++ + MAKE_SETTINGS="$MAKE_SETTINGS +GNUTLS_ENABLE = YES +" +SMB_INFO_ENABLES="$SMB_INFO_ENABLES -+\$enabled{GNUTLS} = \"YES\";" ++\$enabled{\"GNUTLS\"} = \"YES\";" + + ac_fn_c_check_decl "$LINENO" "gnutls_x509_crt_set_subject_key_id" "ac_cv_have_decl_gnutls_x509_crt_set_subject_key_id" " + #include @@ -102506,7 +105797,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure _ACEOF fi -@@ -97712,23 +43341,17 @@ +@@ -101739,23 +45247,17 @@ @@ -102533,7 +105824,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. -@@ -97746,54 +43369,28 @@ +@@ -101773,54 +45275,28 @@ return 0; } _ACEOF @@ -102595,7 +105886,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure cat >>confdefs.h <<_ACEOF #define HAVE_LIBGCRYPT 1 _ACEOF -@@ -97809,7 +43406,6 @@ +@@ -101836,7 +45312,6 @@ fi @@ -102603,7 +105894,647 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure MAKE_SETTINGS="$MAKE_SETTINGS GCRYPT_LIBS = $GCRYPT_LIBS GCRYPT_CFLAGS = -@@ -97847,19 +43443,17 @@ +@@ -101853,7 +45328,7 @@ + + use_netapi=auto + # Check whether --enable-netapi was given. +-if test "${enable_netapi+set}" = set; then ++if test "${enable_netapi+set}" = set; then : + enableval=$enable_netapi; if test x$enable_netapi = xno; then + use_netapi=no + fi +@@ -101875,151 +45350,12 @@ + \$enabled{\"TORTURE_LIBNETAPI\"} = \"NO\";" + + if test x$use_netapi != xno; then +- +-for ac_header in netapi.h +-do +-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? +-{ $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 +-cat confdefs.h >>conftest.$ac_ext +-cat >>conftest.$ac_ext <<_ACEOF +-/* end confdefs.h. */ +-$ac_includes_default +-#include <$ac_header> +-_ACEOF +-rm -f conftest.$ac_objext +-if { (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_header_compiler=yes +-else +- $as_echo "$as_me: failed program was:" >&5 +-sed 's/^/| /' conftest.$ac_ext >&5 +- +- ac_header_compiler=no +-fi +- +-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? +-{ $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 +-cat confdefs.h >>conftest.$ac_ext +-cat >>conftest.$ac_ext <<_ACEOF +-/* end confdefs.h. */ +-#include <$ac_header> +-_ACEOF +-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 +- $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 +- $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 +-{ $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: ) +- { $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:* ) +- { $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 samba-technical@samba.org ## +-## ---------------------------------------- ## +-_ASBOX +- ) | sed "s/^/$as_me: WARNING: /" >&2 +- ;; +-esac +-{ $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 +-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 +-as_val=`eval 'as_val=${'$as_ac_Header'} +- $as_echo "$as_val"'` +- if test "x$as_val" = x""yes; then ++ for ac_header in netapi.h ++do : ++ ac_fn_c_check_header_mongrel "$LINENO" "netapi.h" "ac_cv_header_netapi_h" "$ac_includes_default" ++if test "x$ac_cv_header_netapi_h" = x""yes; then : + cat >>confdefs.h <<_ACEOF +-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 ++#define HAVE_NETAPI_H 1 + _ACEOF + + fi +@@ -102028,23 +45364,17 @@ + + + +- + ac_check_lib_ext_save_LIBS=$LIBS + LIBS="-lnetapi $NETAPI_LIBS $LIBS" + + + +- +- { $as_echo "$as_me:$LINENO: checking for libnetapi_init in -lnetapi" >&5 ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libnetapi_init in -lnetapi" >&5 + $as_echo_n "checking for libnetapi_init in -lnetapi... " >&6; } +-if test "${ac_cv_lib_ext_netapi_libnetapi_init+set}" = set; then ++if test "${ac_cv_lib_ext_netapi_libnetapi_init+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 ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + + /* Override any GCC internal prototype to avoid an error. +@@ -102062,54 +45392,28 @@ + return 0; + } + _ACEOF +-rm -f conftest.$ac_objext conftest$ac_exeext +-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 +- $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 ++if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_ext_netapi_libnetapi_init=yes; + ac_cv_lib_ext_netapi=yes + else +- $as_echo "$as_me: failed program was:" >&5 +-sed 's/^/| /' conftest.$ac_ext >&5 +- +- ac_cv_lib_ext_netapi_libnetapi_init=no; ++ ac_cv_lib_ext_netapi_libnetapi_init=no; + ac_cv_lib_ext_netapi=no + fi +- +-rm -rf conftest.dSYM +-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ +- conftest$ac_exeext conftest.$ac_ext ++rm -f core conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + + fi +-{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_ext_netapi_libnetapi_init" >&5 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ext_netapi_libnetapi_init" >&5 + $as_echo "$ac_cv_lib_ext_netapi_libnetapi_init" >&6; } +- if test $ac_cv_lib_ext_netapi_libnetapi_init = yes; then ++ if test $ac_cv_lib_ext_netapi_libnetapi_init = yes; then : + cat >>confdefs.h <<_ACEOF + #define HAVE_LIBNETAPI_INIT 1 + _ACEOF + + fi +- + LIBS=$ac_check_lib_ext_save_LIBS + +-if test $ac_cv_lib_ext_netapi = yes; then ++if test $ac_cv_lib_ext_netapi = yes; then : + cat >>confdefs.h <<_ACEOF + #define HAVE_LIBNETAPI 1 + _ACEOF +@@ -102126,24 +45430,17 @@ + fi + + +- +- + ac_check_lib_ext_save_LIBS=$LIBS + LIBS="-lnetapi $NETAPI_LIBS $LIBS" + + + +- +- { $as_echo "$as_me:$LINENO: checking for NetUserModalsGet in -lnetapi" >&5 ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for NetUserModalsGet in -lnetapi" >&5 + $as_echo_n "checking for NetUserModalsGet in -lnetapi... " >&6; } +-if test "${ac_cv_lib_ext_netapi_NetUserModalsGet+set}" = set; then ++if test "${ac_cv_lib_ext_netapi_NetUserModalsGet+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 ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + + /* Override any GCC internal prototype to avoid an error. +@@ -102161,54 +45458,28 @@ + return 0; + } + _ACEOF +-rm -f conftest.$ac_objext conftest$ac_exeext +-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 +- $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 ++if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_ext_netapi_NetUserModalsGet=yes; + ac_cv_lib_ext_netapi=yes + else +- $as_echo "$as_me: failed program was:" >&5 +-sed 's/^/| /' conftest.$ac_ext >&5 +- +- ac_cv_lib_ext_netapi_NetUserModalsGet=no; ++ ac_cv_lib_ext_netapi_NetUserModalsGet=no; + ac_cv_lib_ext_netapi=no + fi +- +-rm -rf conftest.dSYM +-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ +- conftest$ac_exeext conftest.$ac_ext ++rm -f core conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + + fi +-{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_ext_netapi_NetUserModalsGet" >&5 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ext_netapi_NetUserModalsGet" >&5 + $as_echo "$ac_cv_lib_ext_netapi_NetUserModalsGet" >&6; } +- if test $ac_cv_lib_ext_netapi_NetUserModalsGet = yes; then ++ if test $ac_cv_lib_ext_netapi_NetUserModalsGet = yes; then : + cat >>confdefs.h <<_ACEOF + #define HAVE_NETUSERMODALSGET 1 + _ACEOF + + fi +- + LIBS=$ac_check_lib_ext_save_LIBS + +-if test $ac_cv_lib_ext_netapi = yes; then ++if test $ac_cv_lib_ext_netapi = yes; then : + cat >>confdefs.h <<_ACEOF + #define HAVE_LIBNETAPI 1 + _ACEOF +@@ -102225,24 +45496,17 @@ + fi + + +- +- + ac_check_lib_ext_save_LIBS=$LIBS + LIBS="-lnetapi $NETAPI_LIBS $LIBS" + + + +- +- { $as_echo "$as_me:$LINENO: checking for NetUserGetGroups in -lnetapi" >&5 ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for NetUserGetGroups in -lnetapi" >&5 + $as_echo_n "checking for NetUserGetGroups in -lnetapi... " >&6; } +-if test "${ac_cv_lib_ext_netapi_NetUserGetGroups+set}" = set; then ++if test "${ac_cv_lib_ext_netapi_NetUserGetGroups+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 ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + + /* Override any GCC internal prototype to avoid an error. +@@ -102260,54 +45524,28 @@ + return 0; + } + _ACEOF +-rm -f conftest.$ac_objext conftest$ac_exeext +-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 +- $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 ++if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_ext_netapi_NetUserGetGroups=yes; + ac_cv_lib_ext_netapi=yes + else +- $as_echo "$as_me: failed program was:" >&5 +-sed 's/^/| /' conftest.$ac_ext >&5 +- +- ac_cv_lib_ext_netapi_NetUserGetGroups=no; ++ ac_cv_lib_ext_netapi_NetUserGetGroups=no; + ac_cv_lib_ext_netapi=no + fi +- +-rm -rf conftest.dSYM +-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ +- conftest$ac_exeext conftest.$ac_ext ++rm -f core conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + + fi +-{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_ext_netapi_NetUserGetGroups" >&5 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ext_netapi_NetUserGetGroups" >&5 + $as_echo "$ac_cv_lib_ext_netapi_NetUserGetGroups" >&6; } +- if test $ac_cv_lib_ext_netapi_NetUserGetGroups = yes; then ++ if test $ac_cv_lib_ext_netapi_NetUserGetGroups = yes; then : + cat >>confdefs.h <<_ACEOF + #define HAVE_NETUSERGETGROUPS 1 + _ACEOF + + fi +- + LIBS=$ac_check_lib_ext_save_LIBS + +-if test $ac_cv_lib_ext_netapi = yes; then ++if test $ac_cv_lib_ext_netapi = yes; then : + cat >>confdefs.h <<_ACEOF + #define HAVE_LIBNETAPI 1 + _ACEOF +@@ -102324,24 +45562,17 @@ + fi + + +- +- + ac_check_lib_ext_save_LIBS=$LIBS + LIBS="-lnetapi $NETAPI_LIBS $LIBS" + + + +- +- { $as_echo "$as_me:$LINENO: checking for NetUserGetInfo in -lnetapi" >&5 ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for NetUserGetInfo in -lnetapi" >&5 + $as_echo_n "checking for NetUserGetInfo in -lnetapi... " >&6; } +-if test "${ac_cv_lib_ext_netapi_NetUserGetInfo+set}" = set; then ++if test "${ac_cv_lib_ext_netapi_NetUserGetInfo+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 ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + + /* Override any GCC internal prototype to avoid an error. +@@ -102359,54 +45590,28 @@ + return 0; + } + _ACEOF +-rm -f conftest.$ac_objext conftest$ac_exeext +-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 +- $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 ++if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_ext_netapi_NetUserGetInfo=yes; + ac_cv_lib_ext_netapi=yes + else +- $as_echo "$as_me: failed program was:" >&5 +-sed 's/^/| /' conftest.$ac_ext >&5 +- +- ac_cv_lib_ext_netapi_NetUserGetInfo=no; ++ ac_cv_lib_ext_netapi_NetUserGetInfo=no; + ac_cv_lib_ext_netapi=no + fi +- +-rm -rf conftest.dSYM +-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ +- conftest$ac_exeext conftest.$ac_ext ++rm -f core conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + + fi +-{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_ext_netapi_NetUserGetInfo" >&5 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ext_netapi_NetUserGetInfo" >&5 + $as_echo "$ac_cv_lib_ext_netapi_NetUserGetInfo" >&6; } +- if test $ac_cv_lib_ext_netapi_NetUserGetInfo = yes; then ++ if test $ac_cv_lib_ext_netapi_NetUserGetInfo = yes; then : + cat >>confdefs.h <<_ACEOF + #define HAVE_NETUSERGETINFO 1 + _ACEOF + + fi +- + LIBS=$ac_check_lib_ext_save_LIBS + +-if test $ac_cv_lib_ext_netapi = yes; then ++if test $ac_cv_lib_ext_netapi = yes; then : + cat >>confdefs.h <<_ACEOF + #define HAVE_LIBNETAPI 1 + _ACEOF +@@ -102423,24 +45628,17 @@ + fi + + +- +- + ac_check_lib_ext_save_LIBS=$LIBS + LIBS="-lnetapi $NETAPI_LIBS $LIBS" + + + +- +- { $as_echo "$as_me:$LINENO: checking for NetUserSetInfo in -lnetapi" >&5 ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for NetUserSetInfo in -lnetapi" >&5 + $as_echo_n "checking for NetUserSetInfo in -lnetapi... " >&6; } +-if test "${ac_cv_lib_ext_netapi_NetUserSetInfo+set}" = set; then ++if test "${ac_cv_lib_ext_netapi_NetUserSetInfo+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 ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + + /* Override any GCC internal prototype to avoid an error. +@@ -102458,54 +45656,28 @@ + return 0; + } + _ACEOF +-rm -f conftest.$ac_objext conftest$ac_exeext +-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 +- $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 ++if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_ext_netapi_NetUserSetInfo=yes; + ac_cv_lib_ext_netapi=yes + else +- $as_echo "$as_me: failed program was:" >&5 +-sed 's/^/| /' conftest.$ac_ext >&5 +- +- ac_cv_lib_ext_netapi_NetUserSetInfo=no; ++ ac_cv_lib_ext_netapi_NetUserSetInfo=no; + ac_cv_lib_ext_netapi=no + fi +- +-rm -rf conftest.dSYM +-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ +- conftest$ac_exeext conftest.$ac_ext ++rm -f core conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + + fi +-{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_ext_netapi_NetUserSetInfo" >&5 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ext_netapi_NetUserSetInfo" >&5 + $as_echo "$ac_cv_lib_ext_netapi_NetUserSetInfo" >&6; } +- if test $ac_cv_lib_ext_netapi_NetUserSetInfo = yes; then ++ if test $ac_cv_lib_ext_netapi_NetUserSetInfo = yes; then : + cat >>confdefs.h <<_ACEOF + #define HAVE_NETUSERSETINFO 1 + _ACEOF + + fi +- + LIBS=$ac_check_lib_ext_save_LIBS + +-if test $ac_cv_lib_ext_netapi = yes; then ++if test $ac_cv_lib_ext_netapi = yes; then : + cat >>confdefs.h <<_ACEOF + #define HAVE_LIBNETAPI 1 + _ACEOF +@@ -102520,12 +45692,9 @@ + + + fi +- + if test x"$ac_cv_header_netapi_h" = x"yes" -a x"$ac_cv_lib_ext_netapi_libnetapi_init" = x"yes" -a x"$ac_cv_lib_ext_netapi_NetUserModalsGet" = x"yes" -a x"$ac_cv_lib_ext_netapi_NetUserGetGroups" = x"yes" -a x"$ac_cv_lib_ext_netapi_NetUserGetInfo" = x"yes" -a x"$ac_cv_lib_ext_netapi_NetUserSetInfo" = x"yes";then + +-cat >>confdefs.h <<\_ACEOF +-#define ENABLE_LIBNETAPI 1 +-_ACEOF ++$as_echo "#define ENABLE_LIBNETAPI 1" >>confdefs.h + + + MAKE_SETTINGS="$MAKE_SETTINGS +@@ -102543,9 +45712,7 @@ + + else + if test x$use_netapi != xauto; then +- { { $as_echo "$as_me:$LINENO: error: --enable-netapi: libnetapi not found" >&5 +-$as_echo "$as_me: error: --enable-netapi: libnetapi not found" >&2;} +- { (exit 1); exit 1; }; } ++ as_fn_error "--enable-netapi: libnetapi not found" "$LINENO" 5 + fi + fi + +@@ -102586,19 +45753,17 @@ ################################################# # check for pthread support @@ -102627,7 +106558,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure fi MAKE_SETTINGS="$MAKE_SETTINGS -@@ -97877,12 +43471,12 @@ +@@ -102616,12 +45781,12 @@ ;; *) @@ -102642,7 +106573,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "no" >&6; } fi -@@ -97898,274 +43492,45 @@ +@@ -102637,274 +45802,45 @@ @@ -102930,7 +106861,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. -@@ -98183,54 +43548,28 @@ +@@ -102922,54 +45858,28 @@ return 0; } _ACEOF @@ -102992,7 +106923,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure cat >>confdefs.h <<_ACEOF #define HAVE_LIBSETPROCTITLE 1 _ACEOF -@@ -98246,15 +43585,14 @@ +@@ -102985,15 +45895,14 @@ fi @@ -103010,8 +106941,8 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "yes" >&6; } MAKE_SETTINGS="$MAKE_SETTINGS -@@ -98264,22 +43602,20 @@ - \$enabled{SETPROCTITLE} = \"YES\";" +@@ -103003,22 +45912,20 @@ + \$enabled{\"SETPROCTITLE\"} = \"YES\";" -cat >>confdefs.h <<\_ACEOF @@ -103037,7 +106968,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "no" >&6; } fi -@@ -98297,17 +43633,13 @@ +@@ -103036,238 +45943,68 @@ @@ -103058,10 +106989,21 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #include -@@ -98326,209 +43658,43 @@ - return 0; - } - _ACEOF + #include + #include + +-int +-main () +-{ +-struct stat st; +- st.st_mtim.tv_nsec; +- st.st_atim.tv_nsec; +- st.st_ctim.tv_nsec; +- +- ; +- return 0; +-} +-_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in @@ -103080,33 +107022,29 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then -+if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_decl_have_stat_tv_nsec=yes - else +- ac_cv_decl_have_stat_tv_nsec=yes +-else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_decl_have_stat_tv_nsec=no -+ ac_cv_decl_have_stat_tv_nsec=no - fi +-fi - - rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - - fi +-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +- +-fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_stat_tv_nsec" >&5 -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_have_stat_tv_nsec" >&5 - $as_echo "$ac_cv_have_stat_tv_nsec" >&6; } - if test x"$ac_cv_decl_have_stat_tv_nsec" = x"yes"; then - +-$as_echo "$ac_cv_have_stat_tv_nsec" >&6; } +-if test x"$ac_cv_decl_have_stat_tv_nsec" = x"yes"; then +- -cat >>confdefs.h <<\_ACEOF -#define HAVE_STAT_TV_NSEC 1 -_ACEOF -+$as_echo "#define HAVE_STAT_TV_NSEC 1" >>confdefs.h - - fi - - - for ac_header in blkid/blkid.h +-fi +- +- +-for ac_header in blkid/blkid.h -do -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 @@ -103161,7 +107099,14 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -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; } -- ++int ++main () ++{ ++struct stat st; ++ st.st_mtim.tv_nsec; ++ st.st_atim.tv_nsec; ++ st.st_ctim.tv_nsec; + -# Is the header present? -{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5 -$as_echo_n "checking $ac_header presence... " >&6; } @@ -103172,7 +107117,10 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include <$ac_header> --_ACEOF ++ ; ++ return 0; ++} + _ACEOF -if { (ac_try="$ac_cpp conftest.$ac_ext" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; @@ -103191,17 +107139,26 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - test ! -s conftest.err - }; then - ac_header_preproc=yes --else ++if ac_fn_c_try_compile "$LINENO"; then : ++ ac_cv_decl_have_stat_tv_nsec=yes + else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 -- ++ ac_cv_decl_have_stat_tv_nsec=no ++fi ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + - ac_header_preproc=no --fi -- + fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_have_stat_tv_nsec" >&5 ++$as_echo "$ac_cv_have_stat_tv_nsec" >&6; } ++if test x"$ac_cv_decl_have_stat_tv_nsec" = x"yes"; then + -rm -f conftest.err conftest.$ac_ext -{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -$as_echo "$ac_header_preproc" >&6; } -- ++$as_echo "#define HAVE_STAT_TV_NSEC 1" >>confdefs.h + -# So? What about this header? -case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in - yes:no: ) @@ -103238,16 +107195,17 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - $as_echo_n "(cached) " >&6 -else - eval "$as_ac_Header=\$ac_header_preproc" --fi + 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; } -- + -fi -as_val=`eval 'as_val=${'$as_ac_Header'} - $as_echo "$as_val"'` - if test "x$as_val" = x""yes; then ++for ac_header in blkid/blkid.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "blkid/blkid.h" "ac_cv_header_blkid_blkid_h" "$ac_includes_default" +if test "x$ac_cv_header_blkid_blkid_h" = x""yes; then : @@ -103279,7 +107237,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. -@@ -98546,46 +43712,15 @@ +@@ -103285,46 +46022,15 @@ return 0; } _ACEOF @@ -103330,7 +107288,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. -@@ -98603,65 +43738,32 @@ +@@ -103342,65 +46048,32 @@ return 0; } _ACEOF @@ -103357,13 +107315,12 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - }; then +if ac_fn_c_try_link "$LINENO"; then : ac_cv_search_ext_blkid_get_cache="-l$ac_lib" --break + break -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - -+break fi - -rm -rf conftest.dSYM @@ -103405,7 +107362,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ /* Define blkid_get_cache to an innocuous variant, in case declares blkid_get_cache. For example, HP-UX 11i declares gettimeofday. */ -@@ -98702,50 +43804,24 @@ +@@ -103441,50 +46114,24 @@ return 0; } _ACEOF @@ -103462,7 +107419,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure MAKE_SETTINGS="$MAKE_SETTINGS BLKID_LIBS = ${BLKID_LIBS} BLKID_CFLAGS = ${BLKID_CFLAGS} -@@ -98756,9 +43832,7 @@ +@@ -103495,9 +46142,7 @@ if test x"$ac_cv_func_ext_blkid_get_cache" = x"yes"; then @@ -103473,7 +107430,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure MAKE_SETTINGS="$MAKE_SETTINGS -@@ -98786,102 +43860,12 @@ +@@ -103525,102 +46170,12 @@ fi @@ -103580,7 +107537,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure _ACEOF fi -@@ -98891,151 +43875,12 @@ +@@ -103630,151 +46185,12 @@ ############################### # start SMB_EXT_LIB_PAM # check for security/pam_appl.h and -lpam @@ -103736,7 +107693,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure _ACEOF fi -@@ -99044,23 +43889,17 @@ +@@ -103783,23 +46199,17 @@ @@ -103763,7 +107720,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. -@@ -99078,54 +43917,28 @@ +@@ -103817,54 +46227,28 @@ return 0; } _ACEOF @@ -103825,7 +107782,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure cat >>confdefs.h <<_ACEOF #define HAVE_LIBPAM 1 _ACEOF -@@ -99140,7 +43953,6 @@ +@@ -103879,7 +46263,6 @@ fi @@ -103833,7 +107790,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure if test x"$ac_cv_header_security_pam_appl_h" = x"yes" -a x"$ac_cv_lib_ext_pam_pam_start" = x"yes";then MAKE_SETTINGS="$MAKE_SETTINGS -@@ -99166,23 +43978,17 @@ +@@ -103905,23 +46288,17 @@ # test for where we get crypt() from @@ -103860,7 +107817,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. -@@ -99200,54 +44006,28 @@ +@@ -103939,54 +46316,28 @@ return 0; } _ACEOF @@ -103922,7 +107879,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure cat >>confdefs.h <<_ACEOF #define HAVE_LIBCRYPT 1 _ACEOF -@@ -99263,7 +44043,6 @@ +@@ -104002,7 +46353,6 @@ fi @@ -103930,7 +107887,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure MAKE_SETTINGS="$MAKE_SETTINGS CRYPT_ENABLE = YES " -@@ -99280,102 +44059,12 @@ +@@ -104019,102 +46369,12 @@ @@ -104038,7 +107995,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF -@@ -99384,151 +44073,12 @@ +@@ -104123,151 +46383,12 @@ done @@ -104194,44 +108151,37 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure _ACEOF fi -@@ -99537,330 +44087,18 @@ +@@ -104276,23 +46397,17 @@ - ac_check_lib_ext_save_LIBS=$LIBS --LIBS="-lsasl2 $SASL_LIBS $LIBS" -- -- -- + LIBS="-lsasl2 $SASL_LIBS $LIBS" + + + - - { $as_echo "$as_me:$LINENO: checking for sasl_client_init in -lsasl2" >&5 --$as_echo_n "checking for sasl_client_init in -lsasl2... " >&6; } ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sasl_client_init in -lsasl2" >&5 + $as_echo_n "checking for sasl_client_init in -lsasl2... " >&6; } -if test "${ac_cv_lib_ext_sasl2_sasl_client_init+set}" = set; then -- $as_echo_n "(cached) " >&6 --else ++if test "${ac_cv_lib_ext_sasl2_sasl_client_init+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. */ -- --/* 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 --char sasl_client_init (); --int --main () --{ --return sasl_client_init (); -- ; -- return 0; --} --_ACEOF ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + + /* Override any GCC internal prototype to avoid an error. +@@ -104310,54 +46425,28 @@ + return 0; + } + _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in @@ -104253,74 +108203,89 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - test "$cross_compiling" = yes || - $as_test_x conftest$ac_exeext - }; then -- ac_cv_lib_ext_sasl2_sasl_client_init=yes; -- ac_cv_lib_ext_sasl2=yes --else ++if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_ext_sasl2_sasl_client_init=yes; + ac_cv_lib_ext_sasl2=yes + else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_lib_ext_sasl2_sasl_client_init=no; -- ac_cv_lib_ext_sasl2=no --fi ++ ac_cv_lib_ext_sasl2_sasl_client_init=no; + ac_cv_lib_ext_sasl2=no + fi - -rm -rf conftest.dSYM -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -- --fi ++rm -f core conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + + fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_ext_sasl2_sasl_client_init" >&5 --$as_echo "$ac_cv_lib_ext_sasl2_sasl_client_init" >&6; } ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ext_sasl2_sasl_client_init" >&5 + $as_echo "$ac_cv_lib_ext_sasl2_sasl_client_init" >&6; } - if test $ac_cv_lib_ext_sasl2_sasl_client_init = yes; then -- cat >>confdefs.h <<_ACEOF --#define HAVE_SASL_CLIENT_INIT 1 --_ACEOF -- --fi -- --LIBS=$ac_check_lib_ext_save_LIBS ++ if test $ac_cv_lib_ext_sasl2_sasl_client_init = yes; then : + cat >>confdefs.h <<_ACEOF + #define HAVE_SASL_CLIENT_INIT 1 + _ACEOF + + fi - + LIBS=$ac_check_lib_ext_save_LIBS + -if test $ac_cv_lib_ext_sasl2 = yes; then -- cat >>confdefs.h <<_ACEOF --#define HAVE_LIBSASL2 1 --_ACEOF ++if test $ac_cv_lib_ext_sasl2 = yes; then : + cat >>confdefs.h <<_ACEOF + #define HAVE_LIBSASL2 1 + _ACEOF +@@ -104373,7 +46462,6 @@ + + fi + - -- case "$SASL_LIBS" in -- *-lsasl2*) -- ;; -- *) -- SASL_LIBS="-lsasl2 $SASL_LIBS" -- ;; -- esac + if test x"$ac_cv_header_sasl_sasl_h" = x"yes" -a x"$ac_cv_lib_ext_sasl2_sasl_client_init" = x"yes";then + + MAKE_SETTINGS="$MAKE_SETTINGS +@@ -104419,312 +46507,88 @@ + ac_new_flags="$ac_new_flags$s$i"; + else + ac_new_flags="$ac_new_flags$s$l $i"; +- fi +- l="" +- ;; +- esac +- done +- SASL_LDFLAGS=$ac_new_flags - - --fi +- ac_new_flags="" +- for i in $SASL_CPPFLAGS; do +- case $i in +- -I/usr/include|-I/usr/include/) ;; +- *) ac_new_flags="$ac_new_flags $i" ;; +- esac +- done +- SASL_CPPFLAGS=$ac_new_flags - - --if test x"$ac_cv_header_sasl_sasl_h" = x"yes" -a x"$ac_cv_lib_ext_sasl2_sasl_client_init" = x"yes";then +- ac_new_flags="" +- for i in $SASL_CFLAGS; do +- case $i in +- -I/usr/include|-I/usr/include/) ;; +- *) ac_new_flags="$ac_new_flags $i" ;; +- esac +- done +- SASL_CFLAGS=$ac_new_flags - -- MAKE_SETTINGS="$MAKE_SETTINGS --SASL_ENABLE = YES --" --SMB_INFO_ENABLES="$SMB_INFO_ENABLES --\$enabled{SASL} = \"YES\";" -- -- -- MAKE_SETTINGS="$MAKE_SETTINGS --cyrus_sasl_ENABLE = YES --" --SMB_INFO_ENABLES="$SMB_INFO_ENABLES --\$enabled{cyrus_sasl} = \"YES\";" -- -- SASL_CFLAGS="$CFLAGS" -- SASL_CPPFLAGS="$CPPFLAGS" -- SASL_LDFLAGS="$LDFLAGS" -else - - MAKE_SETTINGS="$MAKE_SETTINGS -cyrus_sasl_ENABLE = NO -" -SMB_INFO_ENABLES="$SMB_INFO_ENABLES --\$enabled{cyrus_sasl} = \"NO\";" +-\$enabled{\"cyrus_sasl\"} = \"NO\";" - -fi - @@ -104339,7 +108304,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -server_service_kdc_ENABLE = $HAVE_KRB5 -" -SMB_INFO_ENABLES="$SMB_INFO_ENABLES --\$enabled{server_service_kdc} = \"$HAVE_KRB5\";" +-\$enabled{\"server_service_kdc\"} = \"$HAVE_KRB5\";" - - - @@ -104433,14 +108398,38 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 -- ++ fi ++ l="" ++ ;; ++ esac ++ done ++ SASL_LDFLAGS=$ac_new_flags + - ac_header_preproc=no -fi -- + -rm -f conftest.err conftest.$ac_ext -{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -$as_echo "$ac_header_preproc" >&6; } -- ++ ac_new_flags="" ++ for i in $SASL_CPPFLAGS; do ++ case $i in ++ -I/usr/include|-I/usr/include/) ;; ++ *) ac_new_flags="$ac_new_flags $i" ;; ++ esac ++ done ++ SASL_CPPFLAGS=$ac_new_flags ++ ++ ++ ac_new_flags="" ++ for i in $SASL_CFLAGS; do ++ case $i in ++ -I/usr/include|-I/usr/include/) ;; ++ *) ac_new_flags="$ac_new_flags $i" ;; ++ esac ++ done ++ SASL_CFLAGS=$ac_new_flags + -# So? What about this header? -case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in - yes:no: ) @@ -104475,14 +108464,14 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -$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 + else - eval "$as_ac_Header=\$ac_header_preproc" -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; } -- + -fi -as_val=`eval 'as_val=${'$as_ac_Header'} - $as_echo "$as_val"'` @@ -104490,11 +108479,16 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF -- --fi -- ++ MAKE_SETTINGS="$MAKE_SETTINGS ++cyrus_sasl_ENABLE = NO ++" ++SMB_INFO_ENABLES="$SMB_INFO_ENABLES ++\$enabled{\"cyrus_sasl\"} = \"NO\";" + + fi + -done -- + -{ $as_echo "$as_me:$LINENO: checking for inotify_init" >&5 -$as_echo_n "checking for inotify_init... " >&6; } -if test "${ac_cv_func_inotify_init+set}" = set; then @@ -104509,7 +108503,12 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -/* Define inotify_init to an innocuous variant, in case declares inotify_init. - For example, HP-UX 11i declares gettimeofday. */ -#define inotify_init innocuous_inotify_init -+LIBS="-lsasl2 $SASL_LIBS $LIBS" ++MAKE_SETTINGS="$MAKE_SETTINGS ++SASL_LIBS = $SASL_LIBS ++SASL_CFLAGS = ${SASL_CFLAGS} ++SASL_CPPFLAGS = ${SASL_CPPFLAGS} ++SASL_LDFLAGS = ${SASL_LDFLAGS} ++" -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char inotify_init (); below. @@ -104523,20 +108522,13 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -#endif -#undef inotify_init -+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sasl_client_init in -lsasl2" >&5 -+$as_echo_n "checking for sasl_client_init in -lsasl2... " >&6; } -+if test "${ac_cv_lib_ext_sasl2_sasl_client_init+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext -+/* end confdefs.h. */ - /* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC -@@ -99868,70 +44106,125 @@ - #ifdef __cplusplus - extern "C" - #endif +-/* 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 -char inotify_init (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named @@ -104544,16 +108536,28 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -#if defined __stub_inotify_init || defined __stub___inotify_init -choke me -#endif -- -+char sasl_client_init (); - int - main () - { ++ MAKE_SETTINGS="$MAKE_SETTINGS ++server_service_kdc_ENABLE = $HAVE_KRB5 ++" ++SMB_INFO_ENABLES="$SMB_INFO_ENABLES ++\$enabled{\"server_service_kdc\"} = \"$HAVE_KRB5\";" + +-int +-main () +-{ -return inotify_init (); -+return sasl_client_init (); - ; - return 0; - } +- ; +- return 0; +-} ++ ++for ac_header in linux/inotify.h asm/unistd.h sys/inotify.h ++do : ++ as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ++ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" ++eval as_val=\$$as_ac_Header ++ if test "x$as_val" = x""yes; then : ++ cat >>confdefs.h <<_ACEOF ++#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" @@ -104577,100 +108581,9 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure - $as_test_x conftest$ac_exeext - }; then - ac_cv_func_inotify_init=yes -+if ac_fn_c_try_link "$LINENO"; then : -+ ac_cv_lib_ext_sasl2_sasl_client_init=yes; -+ ac_cv_lib_ext_sasl2=yes - else +-else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 -+ ac_cv_lib_ext_sasl2_sasl_client_init=no; -+ ac_cv_lib_ext_sasl2=no -+fi -+rm -f core conftest.err conftest.$ac_objext \ -+ conftest$ac_exeext conftest.$ac_ext -+ -+fi -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ext_sasl2_sasl_client_init" >&5 -+$as_echo "$ac_cv_lib_ext_sasl2_sasl_client_init" >&6; } -+ if test $ac_cv_lib_ext_sasl2_sasl_client_init = yes; then : -+ cat >>confdefs.h <<_ACEOF -+#define HAVE_SASL_CLIENT_INIT 1 -+_ACEOF -+ -+fi -+LIBS=$ac_check_lib_ext_save_LIBS -+ -+if test $ac_cv_lib_ext_sasl2 = yes; then : -+ cat >>confdefs.h <<_ACEOF -+#define HAVE_LIBSASL2 1 -+_ACEOF -+ -+ case "$SASL_LIBS" in -+ *-lsasl2*) -+ ;; -+ *) -+ SASL_LIBS="-lsasl2 $SASL_LIBS" -+ ;; -+ esac -+ -+ -+fi -+ -+if test x"$ac_cv_header_sasl_sasl_h" = x"yes" -a x"$ac_cv_lib_ext_sasl2_sasl_client_init" = x"yes";then -+ -+ MAKE_SETTINGS="$MAKE_SETTINGS -+SASL_ENABLE = YES -+" -+SMB_INFO_ENABLES="$SMB_INFO_ENABLES -+\$enabled{SASL} = \"YES\";" -+ -+ -+ MAKE_SETTINGS="$MAKE_SETTINGS -+cyrus_sasl_ENABLE = YES -+" -+SMB_INFO_ENABLES="$SMB_INFO_ENABLES -+\$enabled{cyrus_sasl} = \"YES\";" -+ -+ SASL_CFLAGS="$CFLAGS" -+ SASL_CPPFLAGS="$CPPFLAGS" -+ SASL_LDFLAGS="$LDFLAGS" -+else -+ -+ MAKE_SETTINGS="$MAKE_SETTINGS -+cyrus_sasl_ENABLE = NO -+" -+SMB_INFO_ENABLES="$SMB_INFO_ENABLES -+\$enabled{cyrus_sasl} = \"NO\";" -+ -+fi -+ -+ -+MAKE_SETTINGS="$MAKE_SETTINGS -+SASL_LIBS = $SASL_LIBS -+SASL_CFLAGS = ${SASL_CFLAGS} -+SASL_CPPFLAGS = ${SASL_CPPFLAGS} -+SASL_LDFLAGS = ${SASL_LDFLAGS} -+" -+ -+ -+ -+ -+ MAKE_SETTINGS="$MAKE_SETTINGS -+server_service_kdc_ENABLE = $HAVE_KRB5 -+" -+SMB_INFO_ENABLES="$SMB_INFO_ENABLES -+\$enabled{server_service_kdc} = \"$HAVE_KRB5\";" -+ -+ -+for ac_header in linux/inotify.h asm/unistd.h sys/inotify.h -+do : -+ as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -+ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" -+eval as_val=\$$as_ac_Header -+ if test "x$as_val" = x""yes; then : -+ cat >>confdefs.h <<_ACEOF -+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -+_ACEOF - ac_cv_func_inotify_init=no fi @@ -104705,7 +108618,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #include int -@@ -99942,41 +44235,18 @@ +@@ -104735,41 +46599,18 @@ return 0; } _ACEOF @@ -104751,7 +108664,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure fi -@@ -100020,17 +44290,13 @@ +@@ -104813,17 +46654,13 @@ fi @@ -104772,7 +108685,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #include int -@@ -100041,56 +44307,29 @@ +@@ -104834,56 +46671,29 @@ return 0; } _ACEOF @@ -104836,7 +108749,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #include int -@@ -100101,41 +44340,18 @@ +@@ -104894,41 +46704,18 @@ return 0; } _ACEOF @@ -104882,7 +108795,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure fi -@@ -100159,151 +44375,12 @@ +@@ -104952,151 +46739,12 @@ fi @@ -105039,7 +108952,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF -@@ -100617,151 +44694,12 @@ +@@ -105410,151 +47058,12 @@ @@ -105195,7 +109108,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure _ACEOF fi -@@ -100771,23 +44709,17 @@ +@@ -105564,23 +47073,17 @@ @@ -105222,7 +109135,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. -@@ -100805,54 +44737,28 @@ +@@ -105598,54 +47101,28 @@ return 0; } _ACEOF @@ -105284,7 +109197,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure cat >>confdefs.h <<_ACEOF #define HAVE_LIBZ 1 _ACEOF -@@ -100868,18 +44774,13 @@ +@@ -105661,18 +47138,13 @@ fi @@ -105306,7 +109219,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure /* end confdefs.h. */ #include -@@ -100897,40 +44798,19 @@ +@@ -105690,40 +47162,19 @@ return 0; } _ACEOF @@ -105349,7 +109262,33 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "$samba_cv_zlib_1_2_3" >&6; } if test x"$ac_cv_header_zlib_h" = x"yes" -a \ -@@ -101044,87 +44924,54 @@ +@@ -105745,7 +47196,7 @@ + + + # Check whether --enable-dmalloc was given. +-if test "${enable_dmalloc+set}" = set; then ++if test "${enable_dmalloc+set}" = set; then : + enableval=$enable_dmalloc; + fi + +@@ -105753,14 +47204,10 @@ + if test "x$enable_dmalloc" = xyes + then + +-cat >>confdefs.h <<\_ACEOF +-#define ENABLE_DMALLOC 1 +-_ACEOF ++$as_echo "#define ENABLE_DMALLOC 1" >>confdefs.h + + +-cat >>confdefs.h <<\_ACEOF +-#define DMALLOC_FUNC_CHECK 1 +-_ACEOF ++$as_echo "#define DMALLOC_FUNC_CHECK 1" >>confdefs.h + + LIBS="$LIBS -ldmalloc" + fi +@@ -105858,87 +47305,54 @@ ################################################# # Display summary of libraries detected @@ -105453,7 +109392,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure if test x"$krb5_developer" = x"yes" -o x"$developer" = x"yes" -o x"$picky_developer" = x"yes"; then CFLAGS="${CFLAGS} \$(DEVELOPER_CFLAGS)" fi -@@ -101183,13 +45030,13 @@ +@@ -105997,13 +47411,13 @@ case $ac_val in #( *${as_nl}*) case $ac_var in #( @@ -105469,7 +109408,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure esac ;; esac done -@@ -101197,8 +45044,8 @@ +@@ -106011,8 +47425,8 @@ (set) 2>&1 | case $as_nl`(ac_space=' '; set) 2>&1` in #( *${as_nl}ac_space=\ *) @@ -105480,7 +109419,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure sed -n \ "s/'/'\\\\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" -@@ -101221,11 +45068,11 @@ +@@ -106035,11 +47449,11 @@ if diff "$cache_file" confcache >/dev/null 2>&1; then :; else if test -w "$cache_file"; then test "x$cache_file" != "x/dev/null" && @@ -105494,7 +109433,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} fi fi -@@ -101245,8 +45092,8 @@ +@@ -106059,8 +47473,8 @@ 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. @@ -105505,7 +109444,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure done LIBOBJS=$ac_libobjs -@@ -101270,9 +45117,10 @@ +@@ -106084,9 +47498,10 @@ ac_write_fail=0 ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" @@ -105518,7 +109457,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure #! $SHELL # Generated by $as_me. # Run this file to recreate the current configuration. -@@ -101282,17 +45130,18 @@ +@@ -106096,17 +47511,18 @@ debug=false ac_cs_recheck=false ac_cs_silent=false @@ -105544,7 +109483,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which -@@ -101300,23 +45149,15 @@ +@@ -106114,23 +47530,15 @@ alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else @@ -105573,7 +109512,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure as_nl=' ' export as_nl -@@ -101324,7 +45165,13 @@ +@@ -106138,7 +47546,13 @@ 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 @@ -105588,7 +109527,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure as_echo='printf %s\n' as_echo_n='printf %s' else -@@ -101335,7 +45182,7 @@ +@@ -106149,7 +47563,7 @@ as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; @@ -105597,7 +109536,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; -@@ -101358,13 +45205,6 @@ +@@ -106172,13 +47586,6 @@ } fi @@ -105611,7 +109550,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure # IFS # We need space, tab and new line, in precisely that order. Quoting is -@@ -101374,15 +45214,15 @@ +@@ -106188,15 +47595,15 @@ IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. @@ -105630,7 +109569,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure IFS=$as_save_IFS ;; -@@ -101394,12 +45234,16 @@ +@@ -106208,12 +47615,16 @@ fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 @@ -105651,7 +109590,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure done PS1='$ ' PS2='> ' -@@ -101411,7 +45255,89 @@ +@@ -106225,7 +47636,89 @@ LANGUAGE=C export LANGUAGE @@ -105742,7 +109681,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr -@@ -101425,8 +45351,12 @@ +@@ -106239,8 +47732,12 @@ as_basename=false fi @@ -105756,7 +109695,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ -@@ -101446,76 +45376,25 @@ +@@ -106260,76 +47757,25 @@ } s/.*/./; q'` @@ -105844,7 +109783,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then -@@ -101544,8 +45423,56 @@ +@@ -106358,8 +47804,56 @@ rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null @@ -105902,7 +109841,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure else test -d ./-p && rmdir ./-p as_mkdir_p=false -@@ -101564,10 +45491,10 @@ +@@ -106378,10 +47872,10 @@ if test -d "$1"; then test -d "$1/."; else @@ -105915,7 +109854,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure ???[sx]*):;;*)false;;esac;fi '\'' sh ' -@@ -101582,13 +45509,19 @@ +@@ -106396,13 +47890,19 @@ exec 6>&1 @@ -105937,7 +109876,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS -@@ -101620,13 +45553,15 @@ +@@ -106434,13 +47934,15 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ac_cs_usage="\ @@ -105956,7 +109895,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure -q, --quiet, --silent do not print progress messages -d, --debug don't remove temporary files -@@ -101645,16 +45580,17 @@ +@@ -106459,16 +47961,17 @@ Configuration commands: $config_commands @@ -105978,7 +109917,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." -@@ -101689,6 +45625,8 @@ +@@ -106503,6 +48006,8 @@ ac_cs_recheck=: ;; --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) $as_echo "$ac_cs_version"; exit ;; @@ -105987,7 +109926,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure --debug | --debu | --deb | --de | --d | -d ) debug=: ;; --file | --fil | --fi | --f ) -@@ -101696,20 +45634,19 @@ +@@ -106510,20 +48015,19 @@ case $ac_optarg in *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; esac @@ -106012,7 +109951,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure --help | --hel | -h ) $as_echo "$ac_cs_usage"; exit ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ -@@ -101717,11 +45654,10 @@ +@@ -106531,11 +48035,10 @@ ac_cs_silent=: ;; # This is an error. @@ -106027,7 +109966,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure ac_need_defaults=false ;; esac -@@ -101814,9 +45750,7 @@ +@@ -106628,9 +48131,7 @@ "pkgconfig/smbsharemodes.pc") CONFIG_FILES="$CONFIG_FILES pkgconfig/smbsharemodes.pc" ;; "../examples/libsmbclient/Makefile.internal") CONFIG_FILES="$CONFIG_FILES ../examples/libsmbclient/Makefile.internal" ;; @@ -106038,7 +109977,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure esac done -@@ -101843,7 +45777,7 @@ +@@ -106657,7 +48158,7 @@ trap 'exit_status=$? { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status ' 0 @@ -106047,7 +109986,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure } # Create a (secure) tmp directory for tmp files. -@@ -101854,11 +45788,7 @@ +@@ -106668,11 +48169,7 @@ { tmp=./conf$$-$RANDOM (umask 077 && mkdir "$tmp") @@ -106060,7 +109999,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure # Set up the scripts for CONFIG_FILES section. # No need to generate them if there are no CONFIG_FILES. -@@ -101866,10 +45796,16 @@ +@@ -106680,10 +48177,16 @@ if test -n "$CONFIG_FILES"; then @@ -106079,7 +110018,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure else ac_cs_awk_cr=$ac_cr fi -@@ -101883,24 +45819,18 @@ +@@ -106697,24 +48200,18 @@ echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && echo "_ACEOF" } >conf$$subs.sh || @@ -106107,7 +110046,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi -@@ -101922,7 +45852,7 @@ +@@ -106736,7 +48233,7 @@ t delim :nl h @@ -106116,7 +110055,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure t more1 s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ p -@@ -101936,7 +45866,7 @@ +@@ -106750,7 +48247,7 @@ t nl :delim h @@ -106125,7 +110064,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure t more2 s/["\\]/\\&/g; s/^/"/; s/$/"/ p -@@ -101989,9 +45919,7 @@ +@@ -106803,9 +48300,7 @@ else cat fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \ @@ -106136,7 +110075,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure _ACEOF # VPATH may cause trouble with some makes, so we remove $(srcdir), -@@ -102032,9 +45960,7 @@ +@@ -106846,9 +48341,7 @@ if test -z "$ac_t"; then break elif $ac_last_try; then @@ -106147,7 +110086,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi -@@ -102119,9 +46045,7 @@ +@@ -106933,9 +48426,7 @@ _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 @@ -106158,7 +110097,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure fi # test -n "$CONFIG_HEADERS" -@@ -102134,9 +46058,7 @@ +@@ -106948,9 +48439,7 @@ esac case $ac_mode$ac_tag in :[FHL]*:*);; @@ -106169,7 +110108,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure :[FH]-) ac_tag=-:-;; :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; esac -@@ -102164,12 +46086,10 @@ +@@ -106978,12 +48467,10 @@ [\\/$]*) false;; *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; esac || @@ -106184,7 +110123,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure done # Let's still pretend it is `configure' which instantiates (i.e., don't -@@ -102180,7 +46100,7 @@ +@@ -106994,7 +48481,7 @@ `' by configure.' if test x"$ac_file" != x-; then configure_input="$ac_file. $configure_input" @@ -106193,7 +110132,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "$as_me: creating $ac_file" >&6;} fi # Neutralize special characters interpreted by sed in replacement strings. -@@ -102193,9 +46113,7 @@ +@@ -107007,9 +48494,7 @@ case $ac_tag in *:-:* | *:-) cat >"$tmp/stdin" \ @@ -106204,7 +110143,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure esac ;; esac -@@ -102223,47 +46141,7 @@ +@@ -107037,47 +48522,7 @@ q } s/.*/./; q'` @@ -106253,7 +110192,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure ac_builddir=. case "$ac_dir" in -@@ -102315,7 +46193,6 @@ +@@ -107129,7 +48574,6 @@ # 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= @@ -106261,7 +110200,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure ac_sed_dataroot=' /datarootdir/ { p -@@ -102325,12 +46202,11 @@ +@@ -107139,12 +48583,11 @@ /@docdir@/p /@infodir@/p /@localedir@/p @@ -106276,7 +110215,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -@@ -102340,7 +46216,7 @@ +@@ -107154,7 +48597,7 @@ s&@infodir@&$infodir&g s&@localedir@&$localedir&g s&@mandir@&$mandir&g @@ -106285,7 +110224,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure esac _ACEOF -@@ -102368,14 +46244,12 @@ +@@ -107182,14 +48625,12 @@ $ac_datarootdir_hack " eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \ @@ -106302,7 +110241,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure 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;} -@@ -102385,9 +46259,7 @@ +@@ -107199,9 +48640,7 @@ -) cat "$tmp/out" && rm -f "$tmp/out";; *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";; esac \ @@ -106313,7 +110252,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure ;; :H) # -@@ -102398,29 +46270,23 @@ +@@ -107212,29 +48651,23 @@ $as_echo "/* $configure_input */" \ && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" } >"$tmp/config.h" \ @@ -106348,7 +110287,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "$as_me: executing $ac_file commands" >&6;} ;; esac -@@ -102446,15 +46312,12 @@ +@@ -107260,15 +48693,12 @@ done # for ac_tag @@ -106366,7 +110305,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure # configure is writing to config.log, and then calls config.status. -@@ -102475,10 +46338,10 @@ +@@ -107289,10 +48719,10 @@ exec 5>>config.log # Use ||, not &&, to avoid exiting from the if with $? = 1, which # would make configure fail if this is the last instruction. @@ -106379,7 +110318,7 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} fi -@@ -102489,8 +46352,8 @@ +@@ -107303,8 +48733,8 @@ # Print very concise instructions on building/use if test "x$enable_dmalloc" = xyes then @@ -106390,17 +110329,17 @@ diff -Naur samba-3.4.5/source3/configure samba-3.4.5.patch/source3/configure + { $as_echo "$as_me:${as_lineno-$LINENO}: result: \$ eval \\`dmalloc samba\\`." >&5 $as_echo " \$ eval \\`dmalloc samba\\`." >&6; } fi -diff -Naur samba-3.4.5/source3/configure.in samba-3.4.5.patch/source3/configure.in ---- samba-3.4.5/source3/configure.in 2010-01-18 12:38:09.000000000 +0100 -+++ samba-3.4.5.patch/source3/configure.in 2010-02-18 09:19:10.615600853 +0100 -@@ -1224,34 +1224,7 @@ +diff -Naur samba-3.5.2/source3/configure.in samba-3.5.2.patch/source3/configure.in +--- samba-3.5.2/source3/configure.in 2010-04-01 15:26:22.000000000 +0200 ++++ samba-3.5.2.patch/source3/configure.in 2010-04-18 00:12:00.732273152 +0200 +@@ -1191,36 +1191,7 @@ # # # -case "$host_os" in - *linux* | gnu* | k*bsd*-gnu | kopensolaris*-gnu) - # glibc <= 2.3.2 has a broken getgrouplist -- AC_TRY_RUN([ +- AC_CACHE_CHECK([for good getgrouplist],samba_cv_linux_getgrouplist_ok,[AC_TRY_RUN([ -#include -#include -main() { @@ -106416,8 +110355,10 @@ diff -Naur samba-3.4.5/source3/configure.in samba-3.4.5.patch/source3/configure. -#endif - exit(0); -} --], [linux_getgrouplist_ok=yes], [linux_getgrouplist_ok=no]) -- if test x"$linux_getgrouplist_ok" = x"yes"; then +-], [samba_cv_linux_getgrouplist_ok=yes], +- [samba_cv_linux_getgrouplist_ok=no], +- [samba_cv_linux_getgrouplist_ok=cross])]) +- if test x"$samba_cv_linux_getgrouplist_ok" = x"yes"; then - AC_DEFINE(HAVE_GETGROUPLIST, 1, [Have good getgrouplist]) - fi - ;; @@ -106429,10 +110370,10 @@ diff -Naur samba-3.4.5/source3/configure.in samba-3.4.5.patch/source3/configure. # # stat64 family may need on some systems, notably ReliantUNIX -diff -Naur samba-3.4.5/source3/include/config.h.in samba-3.4.5.patch/source3/include/config.h.in ---- samba-3.4.5/source3/include/config.h.in 2010-01-18 13:04:17.000000000 +0100 -+++ samba-3.4.5.patch/source3/include/config.h.in 2010-02-18 09:20:10.000000000 +0100 -@@ -2127,19 +2127,21 @@ +diff -Naur samba-3.5.2/source3/include/config.h.in samba-3.5.2.patch/source3/include/config.h.in +--- samba-3.5.2/source3/include/config.h.in 2010-04-06 09:43:13.000000000 +0200 ++++ samba-3.5.2.patch/source3/include/config.h.in 2010-04-18 00:12:16.000000000 +0200 +@@ -2222,19 +2222,21 @@ /* Whether struct ifaddrs is available */ #undef HAVE_STRUCT_IFADDRS @@ -106458,7 +110399,7 @@ diff -Naur samba-3.4.5/source3/include/config.h.in samba-3.4.5.patch/source3/inc #undef HAVE_STRUCT_SIGEVENT_SIGEV_VALUE_SIVAL_PTR /* Define to 1 if the system has the type `struct sockaddr'. */ -@@ -2148,37 +2150,37 @@ +@@ -2243,37 +2245,37 @@ /* Define to 1 if the system has the type `struct sockaddr_in6'. */ #undef HAVE_STRUCT_SOCKADDR_IN6 @@ -106506,7 +110447,7 @@ diff -Naur samba-3.4.5/source3/include/config.h.in samba-3.4.5.patch/source3/inc #undef HAVE_STRUCT_STAT_ST_UMTIME /* Whether we have struct timespec */ -@@ -2913,6 +2915,9 @@ +@@ -3026,6 +3028,9 @@ /* Define to the one symbol short name of this package. */ #undef PACKAGE_TARNAME diff --git a/packages/network/samba/url b/packages/network/samba/url index f42277542e..3de7229e21 100644 --- a/packages/network/samba/url +++ b/packages/network/samba/url @@ -1 +1 @@ -http://samba.org/samba/ftp/stable/samba-3.4.5.tar.gz \ No newline at end of file +http://samba.org/samba/ftp/stable/samba-3.5.2.tar.gz \ No newline at end of file From 94a46fb5a0dfe8c23c6efe98cd63e21a8672b9e5 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Sun, 18 Apr 2010 10:22:53 +0200 Subject: [PATCH 157/320] busybox: - add some upstream patches --- .../busybox/patches/busybox-1.16.1-dnsd.diff | 29 ++++ .../patches/busybox-1.16.1-hwclock.diff | 152 ++++++++++++++++++ .../patches/busybox-1.16.1-indexcgi.diff | 12 ++ 3 files changed, 193 insertions(+) create mode 100644 packages/sysutils/busybox/patches/busybox-1.16.1-dnsd.diff create mode 100644 packages/sysutils/busybox/patches/busybox-1.16.1-hwclock.diff create mode 100644 packages/sysutils/busybox/patches/busybox-1.16.1-indexcgi.diff diff --git a/packages/sysutils/busybox/patches/busybox-1.16.1-dnsd.diff b/packages/sysutils/busybox/patches/busybox-1.16.1-dnsd.diff new file mode 100644 index 0000000000..414ac33e3e --- /dev/null +++ b/packages/sysutils/busybox/patches/busybox-1.16.1-dnsd.diff @@ -0,0 +1,29 @@ +diff -urpN busybox-1.16.1/include/platform.h busybox-1.16.1-dnsd/include/platform.h +--- busybox-1.16.1/include/platform.h 2010-03-28 10:43:35.000000000 -0700 ++++ busybox-1.16.1-dnsd/include/platform.h 2010-04-14 10:06:10.888341149 -0700 +@@ -291,10 +291,12 @@ typedef unsigned smalluint; + #if 1 /* if needed: !defined(arch1) && !defined(arch2) */ + # define ALIGN1 __attribute__((aligned(1))) + # define ALIGN2 __attribute__((aligned(2))) ++# define ALIGN4 __attribute__((aligned(4))) + #else + /* Arches which MUST have 2 or 4 byte alignment for everything are here */ + # define ALIGN1 + # define ALIGN2 ++# define ALIGN4 + #endif + + +diff -urpN busybox-1.16.1/networking/dnsd.c busybox-1.16.1-dnsd/networking/dnsd.c +--- busybox-1.16.1/networking/dnsd.c 2010-03-28 10:43:36.000000000 -0700 ++++ busybox-1.16.1-dnsd/networking/dnsd.c 2010-04-14 10:06:10.922348571 -0700 +@@ -459,7 +459,8 @@ int dnsd_main(int argc UNUSED_PARAM, cha + unsigned lsa_size; + int udps, opts; + uint16_t port = 53; +- uint8_t buf[MAX_PACK_LEN + 1]; ++ /* Ensure buf is 32bit aligned (we need 16bit, but 32bit can't hurt) */ ++ uint8_t buf[MAX_PACK_LEN + 1] ALIGN4; + + opts = getopt32(argv, "vi:c:t:p:d", &listen_interface, &fileconf, &sttl, &sport); + //if (opts & 0x1) // -v diff --git a/packages/sysutils/busybox/patches/busybox-1.16.1-hwclock.diff b/packages/sysutils/busybox/patches/busybox-1.16.1-hwclock.diff new file mode 100644 index 0000000000..63350aeb3c --- /dev/null +++ b/packages/sysutils/busybox/patches/busybox-1.16.1-hwclock.diff @@ -0,0 +1,152 @@ +diff -urpN busybox-1.16.1/util-linux/hwclock.c busybox-1.16.1-hwclock/util-linux/hwclock.c +--- busybox-1.16.1/util-linux/hwclock.c 2010-03-19 19:58:07.000000000 -0700 ++++ busybox-1.16.1-hwclock/util-linux/hwclock.c 2010-04-14 09:29:37.889208237 -0700 +@@ -109,10 +109,53 @@ static void to_sys_clock(const char **pp + + static void from_sys_clock(const char **pp_rtcname, int utc) + { +-#define TWEAK_USEC 200 +- struct tm tm_time; ++#if 1 + struct timeval tv; ++ struct tm tm_time; ++ int rtc; ++ ++ rtc = rtc_xopen(pp_rtcname, O_WRONLY); ++ gettimeofday(&tv, NULL); ++ /* Prepare tm_time */ ++ if (sizeof(time_t) == sizeof(tv.tv_sec)) { ++ if (utc) ++ gmtime_r((time_t*)&tv.tv_sec, &tm_time); ++ else ++ localtime_r((time_t*)&tv.tv_sec, &tm_time); ++ } else { ++ time_t t = tv.tv_sec; ++ if (utc) ++ gmtime_r(&t, &tm_time); ++ else ++ localtime_r(&t, &tm_time); ++ } ++#else ++/* Bloated code which tries to set hw clock with better precision. ++ * On x86, even though code does set hw clock within <1ms of exact ++ * whole seconds, apparently hw clock (at least on some machines) ++ * doesn't reset internal fractional seconds to 0, ++ * making all this a pointless excercise. ++ */ ++ /* If we see that we are N usec away from whole second, ++ * we'll sleep for N-ADJ usecs. ADJ corrects for the fact ++ * that CPU is not infinitely fast. ++ * On infinitely fast CPU, next wakeup would be ++ * on (exactly_next_whole_second - ADJ). On real CPUs, ++ * this difference between current time and whole second ++ * is less than ADJ (assuming system isn't heavily loaded). ++ */ ++ /* Small value of 256us gives very precise sync for 2+ GHz CPUs. ++ * Slower CPUs will fail to sync and will go to bigger ++ * ADJ values. qemu-emulated armv4tl with ~100 MHz ++ * performance ends up using ADJ ~= 4*1024 and it takes ++ * 2+ secs (2 tries with successively larger ADJ) ++ * to sync. Even straced one on the same qemu (very slow) ++ * takes only 4 tries. ++ */ ++#define TWEAK_USEC 256 + unsigned adj = TWEAK_USEC; ++ struct tm tm_time; ++ struct timeval tv; + int rtc = rtc_xopen(pp_rtcname, O_WRONLY); + + /* Try to catch the moment when whole second is close */ +@@ -124,55 +167,64 @@ static void from_sys_clock(const char ** + + t = tv.tv_sec; + rem_usec = 1000000 - tv.tv_usec; +- if (rem_usec < 1024) { +- /* Less than 1ms to next second. Good enough */ ++ if (rem_usec < adj) { ++ /* Close enough */ + small_rem: + t++; + } + +- /* Prepare tm */ ++ /* Prepare tm_time from t */ + if (utc) + gmtime_r(&t, &tm_time); /* may read /etc/xxx (it takes time) */ + else + localtime_r(&t, &tm_time); /* same */ +- tm_time.tm_isdst = 0; ++ ++ if (adj >= 32*1024) { ++ break; /* 32 ms diff and still no luck?? give up trying to sync */ ++ } + + /* gmtime/localtime took some time, re-get cur time */ + gettimeofday(&tv, NULL); + +- if (tv.tv_sec < t /* may happen if rem_usec was < 1024 */ +- || (tv.tv_sec == t && tv.tv_usec < 1024) ++ if (tv.tv_sec < t /* we are still in old second */ ++ || (tv.tv_sec == t && tv.tv_usec < adj) /* not too far into next second */ + ) { +- /* We are not too far into next second. Good. */ +- break; +- } +- adj += 32; /* 2^(10-5) = 2^5 = 32 iterations max */ +- if (adj >= 1024) { +- /* Give up trying to sync */ +- break; ++ break; /* good, we are in sync! */ + } + +- /* Try to sync up by sleeping */ + rem_usec = 1000000 - tv.tv_usec; +- if (rem_usec < 1024) { +- goto small_rem; /* already close, don't sleep */ ++ if (rem_usec < adj) { ++ t = tv.tv_sec; ++ goto small_rem; /* already close to next sec, don't sleep */ + } +- /* Need to sleep. +- * Note that small adj on slow processors can make us +- * to always overshoot tv.tv_usec < 1024 check on next +- * iteration. That's why adj is increased on each iteration. +- * This also allows it to be reused as a loop limiter. +- */ +- usleep(rem_usec - adj); +- } + +- xioctl(rtc, RTC_SET_TIME, &tm_time); ++ /* Try to sync up by sleeping */ ++ usleep(rem_usec - adj); + +- /* Debug aid to find "good" TWEAK_USEC. ++ /* Jump to 1ms diff, then increase fast (x2): EVERY loop ++ * takes ~1 sec, people won't like slowly converging code here! ++ */ ++ //bb_error_msg("adj:%d tv.tv_usec:%d", adj, (int)tv.tv_usec); ++ if (adj < 512) ++ adj = 512; ++ /* ... and if last "overshoot" does not look insanely big, ++ * just use it as adj increment. This makes convergence faster. ++ */ ++ if (tv.tv_usec < adj * 8) { ++ adj += tv.tv_usec; ++ continue; ++ } ++ adj *= 2; ++ } ++ /* Debug aid to find "optimal" TWEAK_USEC with nearly exact sync. + * Look for a value which makes tv_usec close to 999999 or 0. +- * for 2.20GHz Intel Core 2: TWEAK_USEC ~= 200 ++ * For 2.20GHz Intel Core 2: optimal TWEAK_USEC ~= 200 + */ +- //bb_error_msg("tv.tv_usec:%d adj:%d", (int)tv.tv_usec, adj); ++ //bb_error_msg("tv.tv_usec:%d", (int)tv.tv_usec); ++#endif ++ ++ tm_time.tm_isdst = 0; ++ xioctl(rtc, RTC_SET_TIME, &tm_time); + + if (ENABLE_FEATURE_CLEAN_UP) + close(rtc); diff --git a/packages/sysutils/busybox/patches/busybox-1.16.1-indexcgi.diff b/packages/sysutils/busybox/patches/busybox-1.16.1-indexcgi.diff new file mode 100644 index 0000000000..b9e1d0899a --- /dev/null +++ b/packages/sysutils/busybox/patches/busybox-1.16.1-indexcgi.diff @@ -0,0 +1,12 @@ +diff -urpN busybox-1.16.1/networking/httpd_indexcgi.c busybox-1.16.1-indexcgi/networking/httpd_indexcgi.c +--- busybox-1.16.1/networking/httpd_indexcgi.c 2010-03-19 19:58:07.000000000 -0700 ++++ busybox-1.16.1-indexcgi/networking/httpd_indexcgi.c 2010-04-15 08:39:01.077063367 -0700 +@@ -315,7 +315,7 @@ int main(int argc, char *argv[]) + if (S_ISREG(cdir->dl_mode)) + fmt_ull(cdir->dl_size); + fmt_str(""); +- tm = gmtime(&cdir->dl_mtime); ++ ptm = gmtime(&cdir->dl_mtime); + fmt_04u(1900 + ptm->tm_year); *dst++ = '-'; + fmt_02u(ptm->tm_mon + 1); *dst++ = '-'; + fmt_02u(ptm->tm_mday); *dst++ = ' '; From b68314f6fc4aaec6d444edb887a43d491ee480ae Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Mon, 19 Apr 2010 11:43:08 +0200 Subject: [PATCH 158/320] config/options: - adding some firmware for radeon cards to kernel --- config/options | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/config/options b/config/options index e7c6926019..fef80e21d3 100644 --- a/config/options +++ b/config/options @@ -68,9 +68,10 @@ get_graphicdrivers() { DRM_DRIVERS="$DRM_DRIVERS intel" fi - if [ $drv = r200 -o $drv = r300 -o $drv = r600 -o $drv = radeon ]; then + if [ $drv = r200 -o $drv = r300 -o $drv = r600 -o $drv = radeon ]; then XORG_DRIVERS="$XORG_DRIVERS ati" DRM_DRIVERS="$DRM_DRIVERS radeon" + KERNEL_FIRMWARE="$KERNEL_FIRMWARE radeon" fi if [ $drv = nvidia ]; then From d5cc6dd6e76e00c8e2308c77900d8f092407a892 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Mon, 19 Apr 2010 11:43:49 +0200 Subject: [PATCH 159/320] config/path: - fix kernel path if we have other linux-* packages --- config/path | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/path b/config/path index 11f70592ee..a4c918e264 100644 --- a/config/path +++ b/config/path @@ -217,7 +217,7 @@ VERSION_SUFFIX=$TARGET_ARCH fi kernel_path() { - ls -d $ROOT/$BUILD/linux* + ls -d $ROOT/$BUILD/linux-[0-9]* } require_eglibc() { From afb02829e111bda60d41075685e1ef164f300b37 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Tue, 20 Apr 2010 01:05:48 +0200 Subject: [PATCH 160/320] config/options: - revert r2585 --- config/options | 1 - 1 file changed, 1 deletion(-) diff --git a/config/options b/config/options index fef80e21d3..60e29534c1 100644 --- a/config/options +++ b/config/options @@ -71,7 +71,6 @@ get_graphicdrivers() { if [ $drv = r200 -o $drv = r300 -o $drv = r600 -o $drv = radeon ]; then XORG_DRIVERS="$XORG_DRIVERS ati" DRM_DRIVERS="$DRM_DRIVERS radeon" - KERNEL_FIRMWARE="$KERNEL_FIRMWARE radeon" fi if [ $drv = nvidia ]; then From b6e906e41686902b2d29e58f098c0fca034d7847 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Tue, 20 Apr 2010 01:06:45 +0200 Subject: [PATCH 161/320] firmware: - syncing From 5bcf9ad865aa8bbf66d480029a85702d294b477c Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Tue, 20 Apr 2010 03:14:25 +0200 Subject: [PATCH 162/320] firmware: - rename to linux-firmware --- packages/{firmware => linux-firmware}/install | 0 packages/{firmware => linux-firmware}/ipw2100-fw/install | 0 packages/{firmware => linux-firmware}/ipw2100-fw/url | 0 packages/{firmware => linux-firmware}/ipw2200-fw/install | 0 packages/{firmware => linux-firmware}/ipw2200-fw/url | 0 packages/{firmware => linux-firmware}/iwlwifi-1000-ucode/install | 0 packages/{firmware => linux-firmware}/iwlwifi-1000-ucode/url | 0 packages/{firmware => linux-firmware}/iwlwifi-3945-ucode/install | 0 packages/{firmware => linux-firmware}/iwlwifi-3945-ucode/url | 0 packages/{firmware => linux-firmware}/iwlwifi-4965-ucode/install | 0 packages/{firmware => linux-firmware}/iwlwifi-4965-ucode/url | 0 packages/{firmware => linux-firmware}/iwlwifi-5000-ucode/install | 0 packages/{firmware => linux-firmware}/iwlwifi-5000-ucode/url | 0 packages/{firmware => linux-firmware}/iwlwifi-5150-ucode/install | 0 packages/{firmware => linux-firmware}/iwlwifi-5150-ucode/url | 0 packages/{firmware => linux-firmware}/iwlwifi-6000-ucode/install | 0 packages/{firmware => linux-firmware}/iwlwifi-6000-ucode/url | 0 17 files changed, 0 insertions(+), 0 deletions(-) rename packages/{firmware => linux-firmware}/install (100%) rename packages/{firmware => linux-firmware}/ipw2100-fw/install (100%) rename packages/{firmware => linux-firmware}/ipw2100-fw/url (100%) rename packages/{firmware => linux-firmware}/ipw2200-fw/install (100%) rename packages/{firmware => linux-firmware}/ipw2200-fw/url (100%) rename packages/{firmware => linux-firmware}/iwlwifi-1000-ucode/install (100%) rename packages/{firmware => linux-firmware}/iwlwifi-1000-ucode/url (100%) rename packages/{firmware => linux-firmware}/iwlwifi-3945-ucode/install (100%) rename packages/{firmware => linux-firmware}/iwlwifi-3945-ucode/url (100%) rename packages/{firmware => linux-firmware}/iwlwifi-4965-ucode/install (100%) rename packages/{firmware => linux-firmware}/iwlwifi-4965-ucode/url (100%) rename packages/{firmware => linux-firmware}/iwlwifi-5000-ucode/install (100%) rename packages/{firmware => linux-firmware}/iwlwifi-5000-ucode/url (100%) rename packages/{firmware => linux-firmware}/iwlwifi-5150-ucode/install (100%) rename packages/{firmware => linux-firmware}/iwlwifi-5150-ucode/url (100%) rename packages/{firmware => linux-firmware}/iwlwifi-6000-ucode/install (100%) rename packages/{firmware => linux-firmware}/iwlwifi-6000-ucode/url (100%) diff --git a/packages/firmware/install b/packages/linux-firmware/install similarity index 100% rename from packages/firmware/install rename to packages/linux-firmware/install diff --git a/packages/firmware/ipw2100-fw/install b/packages/linux-firmware/ipw2100-fw/install similarity index 100% rename from packages/firmware/ipw2100-fw/install rename to packages/linux-firmware/ipw2100-fw/install diff --git a/packages/firmware/ipw2100-fw/url b/packages/linux-firmware/ipw2100-fw/url similarity index 100% rename from packages/firmware/ipw2100-fw/url rename to packages/linux-firmware/ipw2100-fw/url diff --git a/packages/firmware/ipw2200-fw/install b/packages/linux-firmware/ipw2200-fw/install similarity index 100% rename from packages/firmware/ipw2200-fw/install rename to packages/linux-firmware/ipw2200-fw/install diff --git a/packages/firmware/ipw2200-fw/url b/packages/linux-firmware/ipw2200-fw/url similarity index 100% rename from packages/firmware/ipw2200-fw/url rename to packages/linux-firmware/ipw2200-fw/url diff --git a/packages/firmware/iwlwifi-1000-ucode/install b/packages/linux-firmware/iwlwifi-1000-ucode/install similarity index 100% rename from packages/firmware/iwlwifi-1000-ucode/install rename to packages/linux-firmware/iwlwifi-1000-ucode/install diff --git a/packages/firmware/iwlwifi-1000-ucode/url b/packages/linux-firmware/iwlwifi-1000-ucode/url similarity index 100% rename from packages/firmware/iwlwifi-1000-ucode/url rename to packages/linux-firmware/iwlwifi-1000-ucode/url diff --git a/packages/firmware/iwlwifi-3945-ucode/install b/packages/linux-firmware/iwlwifi-3945-ucode/install similarity index 100% rename from packages/firmware/iwlwifi-3945-ucode/install rename to packages/linux-firmware/iwlwifi-3945-ucode/install diff --git a/packages/firmware/iwlwifi-3945-ucode/url b/packages/linux-firmware/iwlwifi-3945-ucode/url similarity index 100% rename from packages/firmware/iwlwifi-3945-ucode/url rename to packages/linux-firmware/iwlwifi-3945-ucode/url diff --git a/packages/firmware/iwlwifi-4965-ucode/install b/packages/linux-firmware/iwlwifi-4965-ucode/install similarity index 100% rename from packages/firmware/iwlwifi-4965-ucode/install rename to packages/linux-firmware/iwlwifi-4965-ucode/install diff --git a/packages/firmware/iwlwifi-4965-ucode/url b/packages/linux-firmware/iwlwifi-4965-ucode/url similarity index 100% rename from packages/firmware/iwlwifi-4965-ucode/url rename to packages/linux-firmware/iwlwifi-4965-ucode/url diff --git a/packages/firmware/iwlwifi-5000-ucode/install b/packages/linux-firmware/iwlwifi-5000-ucode/install similarity index 100% rename from packages/firmware/iwlwifi-5000-ucode/install rename to packages/linux-firmware/iwlwifi-5000-ucode/install diff --git a/packages/firmware/iwlwifi-5000-ucode/url b/packages/linux-firmware/iwlwifi-5000-ucode/url similarity index 100% rename from packages/firmware/iwlwifi-5000-ucode/url rename to packages/linux-firmware/iwlwifi-5000-ucode/url diff --git a/packages/firmware/iwlwifi-5150-ucode/install b/packages/linux-firmware/iwlwifi-5150-ucode/install similarity index 100% rename from packages/firmware/iwlwifi-5150-ucode/install rename to packages/linux-firmware/iwlwifi-5150-ucode/install diff --git a/packages/firmware/iwlwifi-5150-ucode/url b/packages/linux-firmware/iwlwifi-5150-ucode/url similarity index 100% rename from packages/firmware/iwlwifi-5150-ucode/url rename to packages/linux-firmware/iwlwifi-5150-ucode/url diff --git a/packages/firmware/iwlwifi-6000-ucode/install b/packages/linux-firmware/iwlwifi-6000-ucode/install similarity index 100% rename from packages/firmware/iwlwifi-6000-ucode/install rename to packages/linux-firmware/iwlwifi-6000-ucode/install diff --git a/packages/firmware/iwlwifi-6000-ucode/url b/packages/linux-firmware/iwlwifi-6000-ucode/url similarity index 100% rename from packages/firmware/iwlwifi-6000-ucode/url rename to packages/linux-firmware/iwlwifi-6000-ucode/url From d5cc8ddbd6679f9065ce7e74a28dcc0bb3f1543e Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Tue, 20 Apr 2010 03:15:29 +0200 Subject: [PATCH 163/320] linux: - add some firmware bloops for radeon based graphic cards to build into the kernel --- licenses/Radeon_rlc.txt | 51 ++++++++++++++++++ .../linux/firmware/radeon/LICENSE.radeon_rlc | 51 ++++++++++++++++++ packages/linux/firmware/radeon/R600_rlc.bin | Bin 0 -> 3072 bytes packages/linux/firmware/radeon/R700_rlc.bin | Bin 0 -> 4096 bytes packages/linux/firmware/url.txt | 1 + packages/linux/unpack | 3 ++ 6 files changed, 106 insertions(+) create mode 100644 licenses/Radeon_rlc.txt create mode 100644 packages/linux/firmware/radeon/LICENSE.radeon_rlc create mode 100644 packages/linux/firmware/radeon/R600_rlc.bin create mode 100644 packages/linux/firmware/radeon/R700_rlc.bin create mode 100644 packages/linux/firmware/url.txt diff --git a/licenses/Radeon_rlc.txt b/licenses/Radeon_rlc.txt new file mode 100644 index 0000000000..4ece3404c9 --- /dev/null +++ b/licenses/Radeon_rlc.txt @@ -0,0 +1,51 @@ +Copyright (C) 2009, 2010 Advanced Micro Devices, Inc. All rights reserved. + +REDISTRIBUTION: Permission is hereby granted, free of any license fees, +to any person obtaining a copy of this microcode (the "Software"), to +install, reproduce, copy and distribute copies, in binary form only, of +the Software and to permit persons to whom the Software is provided to +do the same, provided that the following conditions are met: + +No reverse engineering, decompilation, or disassembly of this Software +is permitted. + +Redistributions must reproduce the above copyright notice, this +permission notice, and the following disclaimers and notices in the +Software documentation and/or other materials provided with the +Software. + +DISCLAIMER: THE USE OF THE SOFTWARE IS AT YOUR SOLE RISK. THE SOFTWARE +IS PROVIDED "AS IS" AND WITHOUT WARRANTY OF ANY KIND AND COPYRIGHT +HOLDER AND ITS LICENSORS EXPRESSLY DISCLAIM ALL WARRANTIES, EXPRESS AND +IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. +COPYRIGHT HOLDER AND ITS LICENSORS DO NOT WARRANT THAT THE SOFTWARE WILL +MEET YOUR REQUIREMENTS, OR THAT THE OPERATION OF THE SOFTWARE WILL BE +UNINTERRUPTED OR ERROR-FREE. THE ENTIRE RISK ASSOCIATED WITH THE USE OF +THE SOFTWARE IS ASSUMED BY YOU. FURTHERMORE, COPYRIGHT HOLDER AND ITS +LICENSORS DO NOT WARRANT OR MAKE ANY REPRESENTATIONS REGARDING THE USE +OR THE RESULTS OF THE USE OF THE SOFTWARE IN TERMS OF ITS CORRECTNESS, +ACCURACY, RELIABILITY, CURRENTNESS, OR OTHERWISE. + +DISCLAIMER: UNDER NO CIRCUMSTANCES INCLUDING NEGLIGENCE, SHALL COPYRIGHT +HOLDER AND ITS LICENSORS OR ITS DIRECTORS, OFFICERS, EMPLOYEES OR AGENTS +("AUTHORIZED REPRESENTATIVES") BE LIABLE FOR ANY INCIDENTAL, INDIRECT, +SPECIAL OR CONSEQUENTIAL DAMAGES (INCLUDING DAMAGES FOR LOSS OF BUSINESS +PROFITS, BUSINESS INTERRUPTION, LOSS OF BUSINESS INFORMATION, AND THE +LIKE) ARISING OUT OF THE USE, MISUSE OR INABILITY TO USE THE SOFTWARE, +BREACH OR DEFAULT, INCLUDING THOSE ARISING FROM INFRINGEMENT OR ALLEGED +INFRINGEMENT OF ANY PATENT, TRADEMARK, COPYRIGHT OR OTHER INTELLECTUAL +PROPERTY RIGHT EVEN IF COPYRIGHT HOLDER AND ITS AUTHORIZED +REPRESENTATIVES HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. IN +NO EVENT SHALL COPYRIGHT HOLDER OR ITS AUTHORIZED REPRESENTATIVES TOTAL +LIABILITY FOR ALL DAMAGES, LOSSES, AND CAUSES OF ACTION (WHETHER IN +CONTRACT, TORT (INCLUDING NEGLIGENCE) OR OTHERWISE) EXCEED THE AMOUNT OF +US$10. + +Notice: The Software is subject to United States export laws and +regulations. You agree to comply with all domestic and international +export laws and regulations that apply to the Software, including but +not limited to the Export Administration Regulations administered by the +U.S. Department of Commerce and International Traffic in Arm Regulations +administered by the U.S. Department of State. These laws include +restrictions on destinations, end users and end use. diff --git a/packages/linux/firmware/radeon/LICENSE.radeon_rlc b/packages/linux/firmware/radeon/LICENSE.radeon_rlc new file mode 100644 index 0000000000..4ece3404c9 --- /dev/null +++ b/packages/linux/firmware/radeon/LICENSE.radeon_rlc @@ -0,0 +1,51 @@ +Copyright (C) 2009, 2010 Advanced Micro Devices, Inc. All rights reserved. + +REDISTRIBUTION: Permission is hereby granted, free of any license fees, +to any person obtaining a copy of this microcode (the "Software"), to +install, reproduce, copy and distribute copies, in binary form only, of +the Software and to permit persons to whom the Software is provided to +do the same, provided that the following conditions are met: + +No reverse engineering, decompilation, or disassembly of this Software +is permitted. + +Redistributions must reproduce the above copyright notice, this +permission notice, and the following disclaimers and notices in the +Software documentation and/or other materials provided with the +Software. + +DISCLAIMER: THE USE OF THE SOFTWARE IS AT YOUR SOLE RISK. THE SOFTWARE +IS PROVIDED "AS IS" AND WITHOUT WARRANTY OF ANY KIND AND COPYRIGHT +HOLDER AND ITS LICENSORS EXPRESSLY DISCLAIM ALL WARRANTIES, EXPRESS AND +IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. +COPYRIGHT HOLDER AND ITS LICENSORS DO NOT WARRANT THAT THE SOFTWARE WILL +MEET YOUR REQUIREMENTS, OR THAT THE OPERATION OF THE SOFTWARE WILL BE +UNINTERRUPTED OR ERROR-FREE. THE ENTIRE RISK ASSOCIATED WITH THE USE OF +THE SOFTWARE IS ASSUMED BY YOU. FURTHERMORE, COPYRIGHT HOLDER AND ITS +LICENSORS DO NOT WARRANT OR MAKE ANY REPRESENTATIONS REGARDING THE USE +OR THE RESULTS OF THE USE OF THE SOFTWARE IN TERMS OF ITS CORRECTNESS, +ACCURACY, RELIABILITY, CURRENTNESS, OR OTHERWISE. + +DISCLAIMER: UNDER NO CIRCUMSTANCES INCLUDING NEGLIGENCE, SHALL COPYRIGHT +HOLDER AND ITS LICENSORS OR ITS DIRECTORS, OFFICERS, EMPLOYEES OR AGENTS +("AUTHORIZED REPRESENTATIVES") BE LIABLE FOR ANY INCIDENTAL, INDIRECT, +SPECIAL OR CONSEQUENTIAL DAMAGES (INCLUDING DAMAGES FOR LOSS OF BUSINESS +PROFITS, BUSINESS INTERRUPTION, LOSS OF BUSINESS INFORMATION, AND THE +LIKE) ARISING OUT OF THE USE, MISUSE OR INABILITY TO USE THE SOFTWARE, +BREACH OR DEFAULT, INCLUDING THOSE ARISING FROM INFRINGEMENT OR ALLEGED +INFRINGEMENT OF ANY PATENT, TRADEMARK, COPYRIGHT OR OTHER INTELLECTUAL +PROPERTY RIGHT EVEN IF COPYRIGHT HOLDER AND ITS AUTHORIZED +REPRESENTATIVES HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. IN +NO EVENT SHALL COPYRIGHT HOLDER OR ITS AUTHORIZED REPRESENTATIVES TOTAL +LIABILITY FOR ALL DAMAGES, LOSSES, AND CAUSES OF ACTION (WHETHER IN +CONTRACT, TORT (INCLUDING NEGLIGENCE) OR OTHERWISE) EXCEED THE AMOUNT OF +US$10. + +Notice: The Software is subject to United States export laws and +regulations. You agree to comply with all domestic and international +export laws and regulations that apply to the Software, including but +not limited to the Export Administration Regulations administered by the +U.S. Department of Commerce and International Traffic in Arm Regulations +administered by the U.S. Department of State. These laws include +restrictions on destinations, end users and end use. diff --git a/packages/linux/firmware/radeon/R600_rlc.bin b/packages/linux/firmware/radeon/R600_rlc.bin new file mode 100644 index 0000000000000000000000000000000000000000..4b023f3ec39e7187e1d097f3e142f8027409cfab GIT binary patch literal 3072 zcmb7GZ){Ul6#u=~+pXJ58F9gX39C5Rn*x@&phOIX_QPV9NTP`!CDFuhYWP3a!W%25 z6Hvg86ixhOA_-pz(U72+Hd)L|sd1VPF&SuxBuX%0ekF7M&b{|_W55S*(%y5=J@=e@ z&iUPQ9z4|vFAFr%%h13O)ME~&{QabN@wbz|4iwz;SYPPoycwQy$VRo5U33( zZ=HnKcb)VQ%IO$n1YSE%`B6=KeZRp+k$My4gZw^tG3xPw#Mn0|`E968I2gw)QrS2r z2NZcTwBf*ap3yoIW8b3ePm|Yzapx}2eMcFk_onR&?Mr6x~&F}$yMPIM_OAG?6^ z$Zf0`yU6*L)q9a={?hwi(rwxcJeT);)ZWvj&FffQaOht|pYxKy%CP`X9J_|x(Id2R zmFqIspV@VT>oZ)Rwd+ZJ&UYCAj=*!Mzr*UM@6PwU|DV(&^DWL3i{vAeZ$;wRO_VFM z_FM$>`V{xuEMHOIdFr`AJ?9tciQ?4gCsr;>xigeINjaHID2;q!b%>Ntqpz*g#3cK>TV3w8`{c*i1bj~Lt)+)ysKM{l5>qI`@oNE5>=F&-Jz z`%|D#*oz!0Q1v+4Ivt#j{HymSw*gaxcC7B8R53A7Sp`LVK5AN~$bWB5nmFHu+8-UL zO}n^~KFD7l8{Sr&JNR3RsmcNVa`dT3-=mQpw(;#mIn$?g72Fr}TZ=R1U>~E!$3>)Edztw#S`e z&6j-32z6a6+^?(Pexzjz?#ue@!g!U^w(juFdwnxnPVUmQ@4scwZYQ>*w7A#&@lbZ=iNEcI}WF8u~FgVDahGS&o8haA|yS z7_TJX*ev6kc8U zdV>Cb>OZb)a^f)SYx)tbugbWIp8jk%dCN2}@K`rk&rRK47_$fxhi{^k`CH5R&S^ah zPC{%H+?RL{7gtl_v*{u8c-rxR_?Y|!u>-6xXNeKY1TN!~_>S2N)DFg~ z+wj~GJ^x?4G+=DzFu2I3d0VB7(Q9m3`_@)%qJy#D!*koU?JItqm=Y}BA&&MCLwWQU z6=&k=VQ<7=s?P>p?HJF@86Q}SWk@Zo1+1k~3o|#l-ec(-djCGWjsBqd5=V*YLZ5u+ zvfeAW8Rn=3)#!5Oqg~g5YV<|YF-vbG-Dc@GNk=Tbnske$*O6|u^gE=LrQahR)wJNs z^a$dRc@up4ZjZi$U_|aALu#pv@NI^8S$$>>63=j7>XpGNzZop9!#&?kp_;f${hXJc zFf-qQUPn%#nlwI$yy(#U=n4d>B%V#V_yx(P9pUvpKYI_)>*~h(*Plc_I|#2UX6S*V zw8b|VXWY(7J#}o)P-snc(#9Lwukelyq?nUo1o1p_zt=GxFu(D2ocVnfe~xnuLDwqM zz3f#_voATw{nU!nh-p2l7$=T~(Wvxdx*`n8v%4x(sh>ok|sM_x|Y00U4JB~Z= zS{qW^=x@(K-rsx+NdH{iH*0m;W8bVX1}XOEMrAibTuAMcyNRtp?M8KOj^B}S_8*1Z zxy$U?ac!$U30zZ#-(T!xEjPWqe%$bV_kunX`dLkF(ciw>hfRkJp8IJhHQ%4^x7Cix zZE^fclVac4i5gx^a`f{(HUcGmVu-OfJzw7FLu*|o{5D$9b27(u&oTMiuKf((jl^_u L9CdHN29f&@pn9W8 literal 0 HcmV?d00001 diff --git a/packages/linux/firmware/radeon/R700_rlc.bin b/packages/linux/firmware/radeon/R700_rlc.bin new file mode 100644 index 0000000000000000000000000000000000000000..280568f9ea394dde42ee31be63ab86a3e46b6939 GIT binary patch literal 4096 zcmeHK-EUk+75~ld+Pn7NxCnz!bIzIbHRo%_vSL8Qjkr@Mj<#FVM$0fAlDI`nQoDrSyvGP8%LcCrcCC>fk`?%V? zfh%zVTh&GsEJXOY<1HYbv*rT_2dIPz#^)k@k+!!k?!&-K7Sn>8F*ceBn$_3_a~9){ zpZm1)d+LUT86@A3qfg;6(y!D0DcU!*SqW>@Yf+}Z(mP1K`vq(N7Tp7>?m_C<_P+P( zcV~&QypZ~F8ksN8W>IWS;lX)pN|Gmh@MHspav6Er+0$ZViqF6-RXRKQ26C$j`gxWN z&z=+iVuXIiGaIL8^7e>3KRixfn+vw{6Up#gj2&hiybn;U$_3`v0wLo*R5QQizSB?n zA5*^}?NTPF2Tb!Be>30a%Vp2 zbeUS}=Pww?toZn4c-F(IPZ`E!cN&w-r)uWf-n!YU)@_k~xIB{r{%F&>mZtg};EeNFVl`Y3HG)_? zqgYXmo`%^kJ*-7nGpCU~cvk~s?Azv&#ci^^dILDnU>#dLDZKet&W=&`W{gc&({-Df zuVnhQXOYdZ7FSkd)?*DN+I>`X@;7CJ>oCvsx$+e9>1q}u^P5z5LTgWNxqiAUMqjxG zTm4=XtY5>`RtXO>_V0;zZ4{TE8;MME4ecsq0QrFu%py8F+Hbu`9%iDDz|67VM4MqR z=4vp^@3iom{_w}MJDh$}0*JypUTm>q^3PEGH3VEIwbH-mwNLpcw0b$>o5CsIuYMrk z3&K5}_|JuNeY%%U-et*%Mw=JbUXcuL@8ac=UYzlrV7?0M+1Bd2=wJT|-sZRYnd8W< zS5TyGH<#AGi9?)6(|2y zN4?wPOXXCj6T*ESynXulJJE?dyYhjwKZ{1)oO7Lf(|tzH#cr9gbG^$rw&yMKq8Hge zjDNfTedN_6qWQC>=SpiT>;35CJQ!n+I5W)ODLYJ9I)>>h3anqspOzlggjU{_8?133 zzb}*n$MdA}OrPBRqKxSO&S4aqsP$RSH1b&HvrT2r4p-%c`^(yA?s7}E+f&S6EPIUI z-Z^`-!&=-DPTfyXHk0gkum>^N_RNl9oO7kG{fcV7??{SgQvC50&!+g- zQamSI{?ufUKk7cIwFjRTZc|(LvEJ4#0>2-H*%u@q6+1huiQ+_p((DgxAid(z-nj@_ z>BxuJ=jHq=KAveve4L3T#bw@hZi?UYaK=8axJBW(^WW>0Ty@k2JntvOqcg=JD))!T zw1JA37wtfpz1d4s-X-7M#>niH-Vohfco`oT)r_wX_R}!=Z=Xk})9W8=TyuDtKAhFO ziNf-T^eAspc;~UGU=Tgf0psK1qO&s2-)26uJX3-2cgjP#5BF7F+$d3&i|qgs)SbZ}}`-JJrj_T)DoD!tkJrU2&%~TZ@Xx2lQbV-}#KG?|fO@i;(Mcqq!h?Eu$!GTD*=P`kZ=Q~N#^=uYeFnK(d>rH(Cs<=G$nVs@ WK1XBE(8RN%d*5XH|G)p;2>c7cbHoM! literal 0 HcmV?d00001 diff --git a/packages/linux/firmware/url.txt b/packages/linux/firmware/url.txt new file mode 100644 index 0000000000..f2a7212a9a --- /dev/null +++ b/packages/linux/firmware/url.txt @@ -0,0 +1 @@ +http://git.kernel.org/?p=linux/kernel/git/dwmw2/linux-firmware.git;a=summary diff --git a/packages/linux/unpack b/packages/linux/unpack index fa7bc92146..ace32d60d4 100755 --- a/packages/linux/unpack +++ b/packages/linux/unpack @@ -24,6 +24,9 @@ cp $KERNEL_CFG_FILE $LINUX/.config sed -i -e "s|^CONFIG_INITRAMFS_SOURCE=.*$|CONFIG_INITRAMFS_SOURCE=\"$ROOT/$PKG_DIR/config/initramfs\"|" \ $LINUX/.config +# copy some extra firmware to linux tree + cp -R $PKG_DIR/firmware/* $LINUX/firmware + if [ "$DEVTOOLS" = yes ]; then echo "CONFIG_DEBUG_KERNEL=y" >> $LINUX/.config # needed for bootchart echo "CONFIG_SCHEDSTATS=y" >> $LINUX/.config # needed for bootchart From 93b15cd8194bfc4811c364e1a242cc306dd5b67b Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Tue, 20 Apr 2010 03:18:50 +0200 Subject: [PATCH 164/320] projects/generic/linux: - build some radeon based firmware into the kernel --- projects/generic/linux/linux.i386.conf | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/projects/generic/linux/linux.i386.conf b/projects/generic/linux/linux.i386.conf index baccfd3516..5cd598d125 100644 --- a/projects/generic/linux/linux.i386.conf +++ b/projects/generic/linux/linux.i386.conf @@ -629,7 +629,8 @@ CONFIG_STANDALONE=y CONFIG_PREVENT_FIRMWARE_BUILD=y CONFIG_FW_LOADER=y CONFIG_FIRMWARE_IN_KERNEL=y -CONFIG_EXTRA_FIRMWARE="" +CONFIG_EXTRA_FIRMWARE=" radeon/R600_rlc.bin radeon/R700_rlc.bin" +CONFIG_EXTRA_FIRMWARE_DIR="firmware" # CONFIG_SYS_HYPERVISOR is not set # CONFIG_CONNECTOR is not set # CONFIG_MTD is not set From 3edb8301390b6ccd3b37568ea0c5bb9806db9cf1 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Tue, 20 Apr 2010 03:19:24 +0200 Subject: [PATCH 165/320] linux: - install linux-firmware --- packages/linux/install | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/linux/install b/packages/linux/install index f9d900b822..c00b37e7ca 100755 --- a/packages/linux/install +++ b/packages/linux/install @@ -26,4 +26,4 @@ mkdir -p $INSTALL/lib/firmware mkdir -p $INSTALL/etc/modprobe.d -$SCRIPTS/install firmware +$SCRIPTS/install linux-firmware From 8e35da4343b0894e851a62d5620979dd88684611 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Wed, 21 Apr 2010 19:05:40 +0200 Subject: [PATCH 166/320] udev: - update to udev-153 --- packages/sysutils/udev/init.d/03_udev-trigger | 2 +- packages/sysutils/udev/install | 2 +- ...0_udev-153_remove_keymap_and_acl-0.1.diff} | 33 ++++++++----------- .../udev/patches/udev-118-sysconf.diff | 24 -------------- packages/sysutils/udev/url | 2 +- 5 files changed, 16 insertions(+), 47 deletions(-) rename packages/sysutils/udev/patches/{10_udev-151_remove_keymap_and_acl-0.1.diff => 10_udev-153_remove_keymap_and_acl-0.1.diff} (84%) delete mode 100644 packages/sysutils/udev/patches/udev-118-sysconf.diff diff --git a/packages/sysutils/udev/init.d/03_udev-trigger b/packages/sysutils/udev/init.d/03_udev-trigger index 366fb4a315..b2e4dd7506 100755 --- a/packages/sysutils/udev/init.d/03_udev-trigger +++ b/packages/sysutils/udev/init.d/03_udev-trigger @@ -6,6 +6,6 @@ progress "request udev events from the kernel" ( - $NICE_20 udevadm trigger + $NICE_20 udevadm trigger --action=add $NICE_20 udevadm settle )& diff --git a/packages/sysutils/udev/install b/packages/sysutils/udev/install index 4762bba424..c10d153357 100755 --- a/packages/sysutils/udev/install +++ b/packages/sysutils/udev/install @@ -39,7 +39,7 @@ mkdir -p $INSTALL/lib/udev for i in ata_id cdrom_id collect edd_id fstab_import path_id scsi_id usb_id v4l_id; do cp $PKG_BUILD/extras/$i/$i $INSTALL/lib/udev done - cp $PKG_BUILD/extras/input_id/.libs/input_id $INSTALL/lib/udev + cp $PKG_BUILD/extras/input_id/input_id $INSTALL/lib/udev cp $PKG_BUILD/extras/usb-db/usb-db $INSTALL/lib/udev cp $PKG_BUILD/extras/usb-db/pci-db $INSTALL/lib/udev diff --git a/packages/sysutils/udev/patches/10_udev-151_remove_keymap_and_acl-0.1.diff b/packages/sysutils/udev/patches/10_udev-153_remove_keymap_and_acl-0.1.diff similarity index 84% rename from packages/sysutils/udev/patches/10_udev-151_remove_keymap_and_acl-0.1.diff rename to packages/sysutils/udev/patches/10_udev-153_remove_keymap_and_acl-0.1.diff index d1a3612799..5988819b13 100644 --- a/packages/sysutils/udev/patches/10_udev-151_remove_keymap_and_acl-0.1.diff +++ b/packages/sysutils/udev/patches/10_udev-153_remove_keymap_and_acl-0.1.diff @@ -1,6 +1,6 @@ -diff -Naur udev-151/configure.ac udev-151.patch/configure.ac ---- udev-151/configure.ac 2010-01-25 08:21:07.000000000 +0100 -+++ udev-151.patch/configure.ac 2010-01-28 11:28:53.751387076 +0100 +diff -Naur udev-153/configure.ac udev-153.patch/configure.ac +--- udev-153/configure.ac 2010-04-21 08:30:43.000000000 +0200 ++++ udev-153.patch/configure.ac 2010-04-21 17:47:39.531454320 +0200 @@ -59,9 +59,6 @@ AC_SUBST([GLIB_CFLAGS]) AC_SUBST([GLIB_LIBS]) @@ -11,20 +11,10 @@ diff -Naur udev-151/configure.ac udev-151.patch/configure.ac PKG_CHECK_MODULES(LIBUSB, libusb >= 0.1.12) AC_SUBST(LIBUSB_CFLAGS) AC_SUBST(LIBUSB_LIBS) -@@ -69,9 +66,6 @@ - PKG_CHECK_MODULES(USBUTILS, usbutils >= 0.82) - AC_SUBST([USB_DATABASE], [$($PKG_CONFIG --variable=usbids usbutils)]) - -- AC_CHECK_FILES([/usr/share/pci.ids], [pciids=/usr/share/pci.ids]) -- AC_CHECK_FILES([/usr/share/hwdata/pci.ids], [pciids=/usr/share/hwdata/pci.ids]) -- AC_CHECK_FILES([/usr/share/misc/pci.ids], [pciids=/usr/share/misc/pci.ids]) - AC_ARG_WITH(pci-ids-path, - AS_HELP_STRING([--pci-ids-path=DIR], [Path to pci.ids file]), - [PCI_DATABASE=${withval}], -diff -Naur udev-151/Makefile.am udev-151.patch/Makefile.am ---- udev-151/Makefile.am 2010-01-25 10:47:41.000000000 +0100 -+++ udev-151.patch/Makefile.am 2010-01-28 11:28:04.497252400 +0100 -@@ -417,21 +417,6 @@ +diff -Naur udev-153/Makefile.am udev-153.patch/Makefile.am +--- udev-153/Makefile.am 2010-04-20 07:02:58.000000000 +0200 ++++ udev-153.patch/Makefile.am 2010-04-21 17:47:06.705490633 +0200 +@@ -418,21 +418,6 @@ libexec_PROGRAMS += extras/hid2hci/hid2hci # ------------------------------------------------------------------------------ @@ -46,9 +36,9 @@ diff -Naur udev-151/Makefile.am udev-151.patch/Makefile.am # usb-db - read USB vendor/device string database # ------------------------------------------------------------------------------ extras_usb_db_usb_db_SOURCES = extras/usb-db/usb-db.c -@@ -467,98 +452,6 @@ +@@ -465,101 +450,6 @@ - libexec_PROGRAMS += extras/modem-modeswitch/modem-modeswitch + libexec_PROGRAMS += extras/mobile-action-modeswitch/mobile-action-modeswitch -# ------------------------------------------------------------------------------ -# keymap - map custom hardware's multimedia keys @@ -101,6 +91,7 @@ diff -Naur udev-151/Makefile.am udev-151.patch/Makefile.am - extras/keymap/keymaps/lenovo-thinkpad-usb-keyboard-trackpoint \ - extras/keymap/keymaps/lenovo-thinkpad_x6_tablet \ - extras/keymap/keymaps/lenovo-thinkpad_x200_tablet \ +- extras/keymap/keymaps/lg-x110 \ - extras/keymap/keymaps/logitech-wave \ - extras/keymap/keymaps/logitech-wave-cordless \ - extras/keymap/keymaps/maxdata-pro_7000 \ @@ -119,11 +110,13 @@ diff -Naur udev-151/Makefile.am udev-151.patch/Makefile.am - extras/keymap/keymaps/samsung-sx20s \ - extras/keymap/keymaps/toshiba-satellite_a100 \ - extras/keymap/keymaps/toshiba-satellite_a110 \ +- extras/keymap/keymaps/toshiba-satellite_m30x \ - extras/keymap/keymaps/zepto-znote - -udevkeymapforcereldir = $(libexecdir)/keymaps/force-release -dist_udevkeymapforcerel_DATA = \ -- extras/keymap/force-release-maps/samsung-other +- extras/keymap/force-release-maps/samsung-other \ +- extras/keymap/force-release-maps/common-volume-keys - -extras/keymap/keys.txt: $(INCLUDE_PREFIX)/linux/input.h - mkdir -p extras/keymap diff --git a/packages/sysutils/udev/patches/udev-118-sysconf.diff b/packages/sysutils/udev/patches/udev-118-sysconf.diff deleted file mode 100644 index f515646caa..0000000000 --- a/packages/sysutils/udev/patches/udev-118-sysconf.diff +++ /dev/null @@ -1,24 +0,0 @@ -diff -urN udev-150/rules/rules.d/60-persistent-storage.rules udev-150-new/rules/rules.d/60-persistent-storage.rules ---- udev-150/rules/rules.d/60-persistent-storage.rules 2009-12-09 01:43:09.000000000 +0800 -+++ udev-150-new/rules/rules.d/60-persistent-storage.rules 2010-01-09 21:53:59.000000000 +0800 -@@ -3,6 +3,8 @@ - # persistent storage links: /dev/disk/{by-id,by-uuid,by-label,by-path} - # scheme based on "Linux persistent device names", 2004, Hannes Reinecke - -+ENV{UDEV_NO_PERSISTENT_STORAGE}=="1", GOTO="persistent_storage_end" -+ - # forward scsi device event to corresponding block device - ACTION=="change", SUBSYSTEM=="scsi", ENV{DEVTYPE}=="scsi_device", TEST=="block", ATTR{block/*/uevent}="change" - -diff -urN udev-150/rules/rules.d/60-persistent-storage-tape.rules udev-150-new/rules/rules.d/60-persistent-storage-tape.rules ---- udev-150/rules/rules.d/60-persistent-storage-tape.rules 2009-12-03 20:45:03.000000000 +0800 -+++ udev-150-new/rules/rules.d/60-persistent-storage-tape.rules 2010-01-09 21:54:26.000000000 +0800 -@@ -2,6 +2,8 @@ - - # persistent storage links: /dev/tape/{by-id,by-path} - -+ENV{UDEV_NO_PERSISTENT_STORAGE}=="1", GOTO="persistent_storage_tape_end" -+ - ACTION!="add|change", GOTO="persistent_storage_tape_end" - - # type 8 devices are "Medium Changers" diff --git a/packages/sysutils/udev/url b/packages/sysutils/udev/url index 9d48b20f95..f453e20758 100644 --- a/packages/sysutils/udev/url +++ b/packages/sysutils/udev/url @@ -1 +1 @@ -http://www.eu.kernel.org/pub/linux/utils/kernel/hotplug/udev-151.tar.bz2 +http://www.eu.kernel.org/pub/linux/utils/kernel/hotplug/udev-153.tar.bz2 From 701c9aadb15c4b3a8d8837d173fd2c59f4de31e3 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Wed, 21 Apr 2010 19:05:59 +0200 Subject: [PATCH 167/320] xorg-server: - update to xorg-server-1.7.6.902 --- packages/x11/xserver/xorg-server/url | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/x11/xserver/xorg-server/url b/packages/x11/xserver/xorg-server/url index 9345a0cb5a..44f6c589ee 100644 --- a/packages/x11/xserver/xorg-server/url +++ b/packages/x11/xserver/xorg-server/url @@ -1 +1 @@ -http://xorg.freedesktop.org/archive/individual/xserver/xorg-server-1.7.6.901.tar.bz2 \ No newline at end of file +http://xorg.freedesktop.org/archive/individual/xserver/xorg-server-1.7.6.902.tar.bz2 \ No newline at end of file From 1fd85e592cd46066d90b62bac645e3ee71e492ee Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Fri, 23 Apr 2010 08:41:59 +0200 Subject: [PATCH 168/320] zlib: - update to zlib-1.2.5 --- packages/compress/zlib/url | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/compress/zlib/url b/packages/compress/zlib/url index 7ef9d2fc51..2257bee025 100644 --- a/packages/compress/zlib/url +++ b/packages/compress/zlib/url @@ -1 +1 @@ -http://www.zlib.net/zlib-1.2.4.tar.bz2 +http://www.zlib.net/zlib-1.2.5.tar.bz2 From 04aba781e2379a265539ce5bd51d6a5af212f68f Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Fri, 23 Apr 2010 08:43:21 +0200 Subject: [PATCH 169/320] new package: - add initial lcdproc support --- packages/mediacenter/xbmc/install | 1 + packages/sysutils/lcdproc/build | 19 ++++++++++++++++ packages/sysutils/lcdproc/init.d/33_lcdproc | 20 +++++++++++++++++ packages/sysutils/lcdproc/install | 24 +++++++++++++++++++++ packages/sysutils/lcdproc/url | 1 + projects/ION/options | 12 +++++++++++ projects/generic/options | 12 +++++++++++ projects/intel/options | 12 +++++++++++ 8 files changed, 101 insertions(+) create mode 100755 packages/sysutils/lcdproc/build create mode 100755 packages/sysutils/lcdproc/init.d/33_lcdproc create mode 100755 packages/sysutils/lcdproc/install create mode 100644 packages/sysutils/lcdproc/url diff --git a/packages/mediacenter/xbmc/install b/packages/mediacenter/xbmc/install index 4c249431f4..d19a6f1c03 100755 --- a/packages/mediacenter/xbmc/install +++ b/packages/mediacenter/xbmc/install @@ -129,5 +129,6 @@ mkdir -p $INSTALL/usr/share/xbmc/addons # other programs needed to run $SCRIPTS/install alsa $SCRIPTS/install lirc + [ ! "$LCD_DRIVER" = none ] && $SCRIPTS/install lcdproc $SCRIPTS/install autoupdate diff --git a/packages/sysutils/lcdproc/build b/packages/sysutils/lcdproc/build new file mode 100755 index 0000000000..b5824fbaf2 --- /dev/null +++ b/packages/sysutils/lcdproc/build @@ -0,0 +1,19 @@ +#!/bin/sh + +. config/options + +$SCRIPTS/build toolchain +$SCRIPTS/build libusb + +cd $PKG_BUILD +./configure --host=$TARGET_NAME \ + --build=$HOST_NAME \ + --prefix=/usr \ + --sysconfdir=/etc \ + --enable-libusb \ + --enable-drivers="$LCD_DRIVER,!curses,!svga" + +make + +sed -i -e "s|^DriverPath=.*$|DriverPath=/usr/lib/lcdproc/|" LCDd.conf +sed -i -e "s|^Driver=.*$|Driver=lirc|" LCDd.conf diff --git a/packages/sysutils/lcdproc/init.d/33_lcdproc b/packages/sysutils/lcdproc/init.d/33_lcdproc new file mode 100755 index 0000000000..d29efb58dd --- /dev/null +++ b/packages/sysutils/lcdproc/init.d/33_lcdproc @@ -0,0 +1,20 @@ +# start the LCD daemon +# +# runlevels: openelec, textmode + +( + progress "Starting LCD daemon" + + LCD_USERCONF="/storage/.config/LCDd.conf" + LCD_DEFCONF="/etc/LCDd.conf" + LCD_ARG="" + + if [ -f $LCD_USERCONF ]; then + LCD_ARG="$LCD_ARG -c $LCD_USERCONF" + else + LCD_ARG="$LCD_ARG -c $LCD_DEFCONF" + fi + + LCDd $LCD_ARG > /dev/null 2>&1 + +)& diff --git a/packages/sysutils/lcdproc/install b/packages/sysutils/lcdproc/install new file mode 100755 index 0000000000..bbc407f50a --- /dev/null +++ b/packages/sysutils/lcdproc/install @@ -0,0 +1,24 @@ +#!/bin/sh + +. config/options + +$SCRIPTS/install libusb + +PKG_DIR=`find $PACKAGES -type d -name $1` + +mkdir -p $INSTALL/usr/sbin + cp $PKG_BUILD/server/LCDd $INSTALL/usr/sbin + +mkdir -p $INSTALL/usr/bin + cp $PKG_BUILD/clients/lcdproc/lcdproc $INSTALL/usr/bin + +mkdir -p $INSTALL/usr/lib/lcdproc + cp $PKG_BUILD/server/drivers/*.so $INSTALL/usr/lib/lcdproc + +mkdir -p $INSTALL/etc + cp $PKG_BUILD/LCDd.conf $INSTALL/etc + cp $PKG_BUILD/clients/lcdproc/lcdproc.conf $INSTALL/etc + +mkdir -p $INSTALL/usr/config + cp $PKG_BUILD/LCDd.conf $INSTALL/usr/config/LCDd.conf.sample + cp $PKG_BUILD/clients/lcdproc/lcdproc.conf $INSTALL/usr/config/lcdproc.conf.sample diff --git a/packages/sysutils/lcdproc/url b/packages/sysutils/lcdproc/url new file mode 100644 index 0000000000..c71ab7f949 --- /dev/null +++ b/packages/sysutils/lcdproc/url @@ -0,0 +1 @@ +http://sources.openelec.tv/svn/lcdproc-20100423.tar.bz2 \ No newline at end of file diff --git a/projects/ION/options b/projects/ION/options index d0e428679d..9b31482838 100644 --- a/projects/ION/options +++ b/projects/ION/options @@ -98,6 +98,18 @@ # tosh-vt76f/flytv-prime/Medion-X10/imonknob/ultrax/dvico/MCE-X10) REMOTE="mceusb" +# LCD driver to Use - Possible drivers are ( Comma seperated: +# bayrad,CFontz,CFontz633,CFontzPacket,CwLnx,ea65, +# EyeboxOne,g15,glcdlib,glk,hd44780,i2500vfd,icp_a106,imon,imonlcd, +# IOWarrior,irman,irtrans,joy,lb216,lcdm001,lcterm,lirc,lis, +# MD8800,ms6931,mtc_s16209x,MtxOrb,mx5000,NoritakeVFD,picolcd, +# pyramid,sed1330,sed1520,serialPOS,serialVFD,shuttleVFD,sli, +# stv5730,SureElec,t6963,text,tyan,ula200,xosd +# 'all' compiles all drivers; +# 'all,!xxx,!yyy' de-selects previously selected drivers +# "none" for disable LCD support + LCD_DRIVER="none" + # Firmware to use (iwl1000, iwl3945, iwl4965, iwl5000, iwl5150, iwl6000) # Space separated list is supported, # e.g. FIRMWARE="iwl3945 iwl5000" diff --git a/projects/generic/options b/projects/generic/options index a309c80c6a..6483253d69 100644 --- a/projects/generic/options +++ b/projects/generic/options @@ -98,6 +98,18 @@ # tosh-vt76f/flytv-prime/Medion-X10/imonknob/ultrax/dvico/MCE-X10) REMOTE="mceusb" +# LCD driver to Use - Possible drivers are ( Comma seperated: +# bayrad,CFontz,CFontz633,CFontzPacket,CwLnx,ea65, +# EyeboxOne,g15,glcdlib,glk,hd44780,i2500vfd,icp_a106,imon,imonlcd, +# IOWarrior,irman,irtrans,joy,lb216,lcdm001,lcterm,lirc,lis, +# MD8800,ms6931,mtc_s16209x,MtxOrb,mx5000,NoritakeVFD,picolcd, +# pyramid,sed1330,sed1520,serialPOS,serialVFD,shuttleVFD,sli, +# stv5730,SureElec,t6963,text,tyan,ula200,xosd +# 'all' compiles all drivers; +# 'all,!xxx,!yyy' de-selects previously selected drivers +# "none" for disable LCD support + LCD_DRIVER="all" + # Firmware to use (iwl1000, iwl3945, iwl4965, iwl5000, iwl5150, iwl6000) # Space separated list is supported, # e.g. FIRMWARE="iwl3945 iwl5000" diff --git a/projects/intel/options b/projects/intel/options index d32b19de99..ce8519f887 100644 --- a/projects/intel/options +++ b/projects/intel/options @@ -98,6 +98,18 @@ # tosh-vt76f/flytv-prime/Medion-X10/imonknob/ultrax/dvico/MCE-X10) REMOTE="mceusb" +# LCD driver to Use - Possible drivers are ( Comma seperated: +# bayrad,CFontz,CFontz633,CFontzPacket,CwLnx,ea65, +# EyeboxOne,g15,glcdlib,glk,hd44780,i2500vfd,icp_a106,imon,imonlcd, +# IOWarrior,irman,irtrans,joy,lb216,lcdm001,lcterm,lirc,lis, +# MD8800,ms6931,mtc_s16209x,MtxOrb,mx5000,NoritakeVFD,picolcd, +# pyramid,sed1330,sed1520,serialPOS,serialVFD,shuttleVFD,sli, +# stv5730,SureElec,t6963,text,tyan,ula200,xosd +# 'all' compiles all drivers; +# 'all,!xxx,!yyy' de-selects previously selected drivers +# "none" for disable LCD support + LCD_DRIVER="all" + # Firmware to use (iwl1000, iwl3945, iwl4965, iwl5000, iwl5150, iwl6000) # Space separated list is supported, # e.g. FIRMWARE="iwl3945 iwl5000" From f5a4a35024ba24bd9b0eb586f5993bd9aeef3eab Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Fri, 23 Apr 2010 22:23:54 +0200 Subject: [PATCH 170/320] new package: - add irtrans irserver --- packages/sysutils/irserver/build | 13 +++++++++++++ packages/sysutils/irserver/init.d/30_irserver | 10 ++++++++++ packages/sysutils/irserver/install | 15 +++++++++++++++ packages/sysutils/irserver/url | 1 + 4 files changed, 39 insertions(+) create mode 100755 packages/sysutils/irserver/build create mode 100755 packages/sysutils/irserver/init.d/30_irserver create mode 100755 packages/sysutils/irserver/install create mode 100644 packages/sysutils/irserver/url diff --git a/packages/sysutils/irserver/build b/packages/sysutils/irserver/build new file mode 100755 index 0000000000..e17de1798b --- /dev/null +++ b/packages/sysutils/irserver/build @@ -0,0 +1,13 @@ +#!/bin/sh + +. config/options + +$SCRIPTS/build toolchain + +cd $PKG_BUILD + +[ $TARGET_ARCH = i386 ] && make CC=$TARGET_CC irserver +[ $TARGET_ARCH = x86_64 ] && make CC=$TARGET_CC irserver64 +[ $TARGET_ARCH = arm ] && make CC=$TARGET_CC irserver_arm + +$STRIP $1* \ No newline at end of file diff --git a/packages/sysutils/irserver/init.d/30_irserver b/packages/sysutils/irserver/init.d/30_irserver new file mode 100755 index 0000000000..d13973dc6b --- /dev/null +++ b/packages/sysutils/irserver/init.d/30_irserver @@ -0,0 +1,10 @@ +# start the IRtrans daemon +# +# runlevels: openelec, textmode + +( + progress "Starting IRtrans daemon" + + irtrans > /dev/null 2>&1 + +)& diff --git a/packages/sysutils/irserver/install b/packages/sysutils/irserver/install new file mode 100755 index 0000000000..f38e5ec61b --- /dev/null +++ b/packages/sysutils/irserver/install @@ -0,0 +1,15 @@ +#!/bin/sh + +. config/options + +PKG_DIR=`find $PACKAGES -type d -name $1` + +mkdir -p $INSTALL/usr/sbin + [ $TARGET_ARCH = i386 ] && cp -P $PKG_BUILD/irserver $INSTALL/usr/sbin/irserver + [ $TARGET_ARCH = x86_64 ] && cp -P $PKG_BUILD/irserver64 $INSTALL/usr/sbin/irserver + [ $TARGET_ARCH = arm ] && cp -P $PKG_BUILD/irserver_arm $INSTALL/usr/sbin/irserver + +mkdir -p $INSTALL/usr/share/irtrans/remotes + cp $PKG_BUILD/remotes/ccf.rem $INSTALL/usr/share/irtrans/remotes + cp $PKG_BUILD/remotes/irtrans.rem $INSTALL/usr/share/irtrans/remotes + cp $PKG_BUILD/remotes/mediacenter.rem $INSTALL/usr/share/irtrans/remotes diff --git a/packages/sysutils/irserver/url b/packages/sysutils/irserver/url new file mode 100644 index 0000000000..00bd63c8fc --- /dev/null +++ b/packages/sysutils/irserver/url @@ -0,0 +1 @@ +http://sources.openelec.tv/svn/irserver-05.02.10.tar.bz2 \ No newline at end of file From 4f80e290c8b8dfb06596506b1f7e420f83bdc0de Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Fri, 23 Apr 2010 22:24:31 +0200 Subject: [PATCH 171/320] lcdproc: - install also irserver --- packages/sysutils/lcdproc/install | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/sysutils/lcdproc/install b/packages/sysutils/lcdproc/install index bbc407f50a..1bd711dce1 100755 --- a/packages/sysutils/lcdproc/install +++ b/packages/sysutils/lcdproc/install @@ -3,6 +3,7 @@ . config/options $SCRIPTS/install libusb +$SCRIPTS/install irserver PKG_DIR=`find $PACKAGES -type d -name $1` From be3ac05e77d05a6d031b7686037da4ce2249fb34 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Fri, 23 Apr 2010 22:25:13 +0200 Subject: [PATCH 172/320] lcdproc: - load irtrans driver as default --- packages/sysutils/lcdproc/build | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/sysutils/lcdproc/build b/packages/sysutils/lcdproc/build index b5824fbaf2..a829357336 100755 --- a/packages/sysutils/lcdproc/build +++ b/packages/sysutils/lcdproc/build @@ -16,4 +16,4 @@ cd $PKG_BUILD make sed -i -e "s|^DriverPath=.*$|DriverPath=/usr/lib/lcdproc/|" LCDd.conf -sed -i -e "s|^Driver=.*$|Driver=lirc|" LCDd.conf +sed -i -e "s|^Driver=.*$|Driver=irtrans|" LCDd.conf From 23fc16520a5e5fe1535ae0a64bf45f7d5e923e28 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Fri, 23 Apr 2010 23:21:16 +0200 Subject: [PATCH 173/320] new package: - add package lm_sensors --- packages/sysutils/lm_sensors/build | 11 +++++++++++ packages/sysutils/lm_sensors/install | 14 ++++++++++++++ packages/sysutils/lm_sensors/url | 1 + 3 files changed, 26 insertions(+) create mode 100755 packages/sysutils/lm_sensors/build create mode 100755 packages/sysutils/lm_sensors/install create mode 100644 packages/sysutils/lm_sensors/url diff --git a/packages/sysutils/lm_sensors/build b/packages/sysutils/lm_sensors/build new file mode 100755 index 0000000000..5888ef506e --- /dev/null +++ b/packages/sysutils/lm_sensors/build @@ -0,0 +1,11 @@ +#!/bin/sh + +. config/options + +$SCRIPTS/build toolchain + +cd $PKG_BUILD + +make PREFIX=/usr CC=$TARGET_CC + +$STRIP prog/sensors/sensors \ No newline at end of file diff --git a/packages/sysutils/lm_sensors/install b/packages/sysutils/lm_sensors/install new file mode 100755 index 0000000000..5a9e0a0a88 --- /dev/null +++ b/packages/sysutils/lm_sensors/install @@ -0,0 +1,14 @@ +#!/bin/sh + +. config/options + +PKG_DIR=`find $PACKAGES -type d -name $1` + +mkdir -p $INSTALL/usr/bin + cp $PKG_BUILD/prog/sensors/sensors $INSTALL/usr/bin + +mkdir -p $INSTALL/usr/lib + cp -P $PKG_BUILD/lib/libsensors.so* $INSTALL/usr/lib + +mkdir -p $INSTALL/etc + cp $PKG_BUILD/etc/sensors.conf.default $INSTALL/etc/sensors3.conf diff --git a/packages/sysutils/lm_sensors/url b/packages/sysutils/lm_sensors/url new file mode 100644 index 0000000000..39ee35f366 --- /dev/null +++ b/packages/sysutils/lm_sensors/url @@ -0,0 +1 @@ +http://dl.lm-sensors.org/lm-sensors/releases/lm_sensors-3.1.2.tar.bz2 \ No newline at end of file From 716a57f2cf96d66f37090b81dafca67c32367a6d Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Fri, 23 Apr 2010 23:21:39 +0200 Subject: [PATCH 174/320] xbmc: - install lm_sensors by default --- packages/mediacenter/xbmc/install | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/mediacenter/xbmc/install b/packages/mediacenter/xbmc/install index d19a6f1c03..80641b0ee7 100755 --- a/packages/mediacenter/xbmc/install +++ b/packages/mediacenter/xbmc/install @@ -132,3 +132,4 @@ mkdir -p $INSTALL/usr/share/xbmc/addons [ ! "$LCD_DRIVER" = none ] && $SCRIPTS/install lcdproc $SCRIPTS/install autoupdate + $SCRIPTS/install lm_sensors From 5dd203b13b29728d80abc2c25805c80e8228de83 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Fri, 23 Apr 2010 23:22:17 +0200 Subject: [PATCH 175/320] projects/*/linux: - add some i2c drivers for hardware monitoring support --- projects/ION/linux/linux.i386.conf | 92 ++++++++++++++- projects/ION/linux/linux.x86_64.conf | 92 ++++++++++++++- projects/generic/linux/linux.i386.conf | 154 +++++++++++++------------ projects/intel/linux/linux.i386.conf | 8 +- projects/intel/linux/linux.x86_64.conf | 8 +- 5 files changed, 260 insertions(+), 94 deletions(-) diff --git a/projects/ION/linux/linux.i386.conf b/projects/ION/linux/linux.i386.conf index 2de2cd5473..f9ed6a26b3 100644 --- a/projects/ION/linux/linux.i386.conf +++ b/projects/ION/linux/linux.i386.conf @@ -381,6 +381,7 @@ CONFIG_PM=y CONFIG_ACPI=y # CONFIG_ACPI_PROCFS is not set # CONFIG_ACPI_PROCFS_POWER is not set +# CONFIG_ACPI_POWER_METER is not set CONFIG_ACPI_SYSFS_POWER=y CONFIG_ACPI_PROC_EVENT=y # CONFIG_ACPI_AC is not set @@ -1104,7 +1105,8 @@ CONFIG_I2C_HELPER_AUTO=y # CONFIG_I2C_I801 is not set # CONFIG_I2C_ISCH is not set # CONFIG_I2C_PIIX4 is not set -# CONFIG_I2C_NFORCE2 is not set +CONFIG_I2C_NFORCE2=m +# CONFIG_I2C_NFORCE2_S4985 is not set # CONFIG_I2C_SIS5595 is not set # CONFIG_I2C_SIS630 is not set # CONFIG_I2C_SIS96X is not set @@ -1161,7 +1163,93 @@ CONFIG_POWER_SUPPLY=y # CONFIG_BATTERY_DS2782 is not set # CONFIG_BATTERY_BQ27x00 is not set # CONFIG_BATTERY_MAX17040 is not set -# CONFIG_HWMON is not set +CONFIG_HWMON=m +# CONFIG_HWMON_VID is not set +# CONFIG_HWMON_DEBUG_CHIP is not set + +# +# Native drivers +# +# CONFIG_SENSORS_ABITUGURU is not set +# CONFIG_SENSORS_ABITUGURU3 is not set +# CONFIG_SENSORS_AD7414 is not set +# CONFIG_SENSORS_AD7418 is not set +# CONFIG_SENSORS_ADM1021 is not set +# CONFIG_SENSORS_ADM1025 is not set +# CONFIG_SENSORS_ADM1026 is not set +# CONFIG_SENSORS_ADM1029 is not set +# CONFIG_SENSORS_ADM1031 is not set +# CONFIG_SENSORS_ADM9240 is not set +# CONFIG_SENSORS_ADT7462 is not set +# CONFIG_SENSORS_ADT7470 is not set +# CONFIG_SENSORS_ADT7473 is not set +# CONFIG_SENSORS_ADT7475 is not set +# CONFIG_SENSORS_K8TEMP is not set +# CONFIG_SENSORS_K10TEMP is not set +# CONFIG_SENSORS_ASB100 is not set +# CONFIG_SENSORS_ATXP1 is not set +# CONFIG_SENSORS_DS1621 is not set +# CONFIG_SENSORS_I5K_AMB is not set +# CONFIG_SENSORS_F71805F is not set +# CONFIG_SENSORS_F71882FG is not set +# CONFIG_SENSORS_F75375S is not set +# CONFIG_SENSORS_FSCHMD is not set +# CONFIG_SENSORS_G760A is not set +# CONFIG_SENSORS_GL518SM is not set +# CONFIG_SENSORS_GL520SM is not set +# CONFIG_SENSORS_CORETEMP is not set +# CONFIG_SENSORS_IT87 is not set +# CONFIG_SENSORS_LM63 is not set +# CONFIG_SENSORS_LM73 is not set +# CONFIG_SENSORS_LM75 is not set +# CONFIG_SENSORS_LM77 is not set +# CONFIG_SENSORS_LM78 is not set +# CONFIG_SENSORS_LM80 is not set +# CONFIG_SENSORS_LM83 is not set +# CONFIG_SENSORS_LM85 is not set +# CONFIG_SENSORS_LM87 is not set +# CONFIG_SENSORS_LM90 is not set +# CONFIG_SENSORS_LM92 is not set +# CONFIG_SENSORS_LM93 is not set +# CONFIG_SENSORS_LTC4215 is not set +# CONFIG_SENSORS_LTC4245 is not set +# CONFIG_SENSORS_LM95241 is not set +# CONFIG_SENSORS_MAX1619 is not set +# CONFIG_SENSORS_MAX6650 is not set +# CONFIG_SENSORS_PC87360 is not set +# CONFIG_SENSORS_PC87427 is not set +# CONFIG_SENSORS_PCF8591 is not set +# CONFIG_SENSORS_SIS5595 is not set +# CONFIG_SENSORS_DME1737 is not set +# CONFIG_SENSORS_SMSC47M1 is not set +# CONFIG_SENSORS_SMSC47M192 is not set +# CONFIG_SENSORS_SMSC47B397 is not set +# CONFIG_SENSORS_ADS7828 is not set +# CONFIG_SENSORS_AMC6821 is not set +# CONFIG_SENSORS_THMC50 is not set +# CONFIG_SENSORS_TMP401 is not set +# CONFIG_SENSORS_TMP421 is not set +# CONFIG_SENSORS_VIA_CPUTEMP is not set +# CONFIG_SENSORS_VIA686A is not set +# CONFIG_SENSORS_VT1211 is not set +# CONFIG_SENSORS_VT8231 is not set +# CONFIG_SENSORS_W83781D is not set +# CONFIG_SENSORS_W83791D is not set +# CONFIG_SENSORS_W83792D is not set +# CONFIG_SENSORS_W83793 is not set +# CONFIG_SENSORS_W83L785TS is not set +# CONFIG_SENSORS_W83L786NG is not set +# CONFIG_SENSORS_W83627HF is not set +# CONFIG_SENSORS_W83627EHF is not set +# CONFIG_SENSORS_HDAPS is not set +# CONFIG_SENSORS_LIS3_I2C is not set +# CONFIG_SENSORS_APPLESMC is not set + +# +# ACPI drivers +# +# CONFIG_SENSORS_ATK0110 is not set +# CONFIG_SENSORS_LIS3LV02D is not set CONFIG_THERMAL=y # CONFIG_WATCHDOG is not set CONFIG_SSB_POSSIBLE=y diff --git a/projects/ION/linux/linux.x86_64.conf b/projects/ION/linux/linux.x86_64.conf index 319efaa6aa..875b5b2d68 100644 --- a/projects/ION/linux/linux.x86_64.conf +++ b/projects/ION/linux/linux.x86_64.conf @@ -365,6 +365,7 @@ CONFIG_PM=y CONFIG_ACPI=y # CONFIG_ACPI_PROCFS is not set # CONFIG_ACPI_PROCFS_POWER is not set +# CONFIG_ACPI_POWER_METER is not set CONFIG_ACPI_SYSFS_POWER=y CONFIG_ACPI_PROC_EVENT=y # CONFIG_ACPI_AC is not set @@ -1070,7 +1071,8 @@ CONFIG_I2C_HELPER_AUTO=y # CONFIG_I2C_I801 is not set # CONFIG_I2C_ISCH is not set # CONFIG_I2C_PIIX4 is not set -# CONFIG_I2C_NFORCE2 is not set +CONFIG_I2C_NFORCE2=m +# CONFIG_I2C_NFORCE2_S4985 is not set # CONFIG_I2C_SIS5595 is not set # CONFIG_I2C_SIS630 is not set # CONFIG_I2C_SIS96X is not set @@ -1126,7 +1128,93 @@ CONFIG_POWER_SUPPLY=y # CONFIG_BATTERY_DS2782 is not set # CONFIG_BATTERY_BQ27x00 is not set # CONFIG_BATTERY_MAX17040 is not set -# CONFIG_HWMON is not set +CONFIG_HWMON=m +# CONFIG_HWMON_VID is not set +# CONFIG_HWMON_DEBUG_CHIP is not set + +# +# Native drivers +# +# CONFIG_SENSORS_ABITUGURU is not set +# CONFIG_SENSORS_ABITUGURU3 is not set +# CONFIG_SENSORS_AD7414 is not set +# CONFIG_SENSORS_AD7418 is not set +# CONFIG_SENSORS_ADM1021 is not set +# CONFIG_SENSORS_ADM1025 is not set +# CONFIG_SENSORS_ADM1026 is not set +# CONFIG_SENSORS_ADM1029 is not set +# CONFIG_SENSORS_ADM1031 is not set +# CONFIG_SENSORS_ADM9240 is not set +# CONFIG_SENSORS_ADT7462 is not set +# CONFIG_SENSORS_ADT7470 is not set +# CONFIG_SENSORS_ADT7473 is not set +# CONFIG_SENSORS_ADT7475 is not set +# CONFIG_SENSORS_K8TEMP is not set +# CONFIG_SENSORS_K10TEMP is not set +# CONFIG_SENSORS_ASB100 is not set +# CONFIG_SENSORS_ATXP1 is not set +# CONFIG_SENSORS_DS1621 is not set +# CONFIG_SENSORS_I5K_AMB is not set +# CONFIG_SENSORS_F71805F is not set +# CONFIG_SENSORS_F71882FG is not set +# CONFIG_SENSORS_F75375S is not set +# CONFIG_SENSORS_FSCHMD is not set +# CONFIG_SENSORS_G760A is not set +# CONFIG_SENSORS_GL518SM is not set +# CONFIG_SENSORS_GL520SM is not set +# CONFIG_SENSORS_CORETEMP is not set +# CONFIG_SENSORS_IT87 is not set +# CONFIG_SENSORS_LM63 is not set +# CONFIG_SENSORS_LM73 is not set +# CONFIG_SENSORS_LM75 is not set +# CONFIG_SENSORS_LM77 is not set +# CONFIG_SENSORS_LM78 is not set +# CONFIG_SENSORS_LM80 is not set +# CONFIG_SENSORS_LM83 is not set +# CONFIG_SENSORS_LM85 is not set +# CONFIG_SENSORS_LM87 is not set +# CONFIG_SENSORS_LM90 is not set +# CONFIG_SENSORS_LM92 is not set +# CONFIG_SENSORS_LM93 is not set +# CONFIG_SENSORS_LTC4215 is not set +# CONFIG_SENSORS_LTC4245 is not set +# CONFIG_SENSORS_LM95241 is not set +# CONFIG_SENSORS_MAX1619 is not set +# CONFIG_SENSORS_MAX6650 is not set +# CONFIG_SENSORS_PC87360 is not set +# CONFIG_SENSORS_PC87427 is not set +# CONFIG_SENSORS_PCF8591 is not set +# CONFIG_SENSORS_SIS5595 is not set +# CONFIG_SENSORS_DME1737 is not set +# CONFIG_SENSORS_SMSC47M1 is not set +# CONFIG_SENSORS_SMSC47M192 is not set +# CONFIG_SENSORS_SMSC47B397 is not set +# CONFIG_SENSORS_ADS7828 is not set +# CONFIG_SENSORS_AMC6821 is not set +# CONFIG_SENSORS_THMC50 is not set +# CONFIG_SENSORS_TMP401 is not set +# CONFIG_SENSORS_TMP421 is not set +# CONFIG_SENSORS_VIA_CPUTEMP is not set +# CONFIG_SENSORS_VIA686A is not set +# CONFIG_SENSORS_VT1211 is not set +# CONFIG_SENSORS_VT8231 is not set +# CONFIG_SENSORS_W83781D is not set +# CONFIG_SENSORS_W83791D is not set +# CONFIG_SENSORS_W83792D is not set +# CONFIG_SENSORS_W83793 is not set +# CONFIG_SENSORS_W83L785TS is not set +# CONFIG_SENSORS_W83L786NG is not set +# CONFIG_SENSORS_W83627HF is not set +# CONFIG_SENSORS_W83627EHF is not set +# CONFIG_SENSORS_HDAPS is not set +# CONFIG_SENSORS_LIS3_I2C is not set +# CONFIG_SENSORS_APPLESMC is not set + +# +# ACPI drivers +# +# CONFIG_SENSORS_ATK0110 is not set +# CONFIG_SENSORS_LIS3LV02D is not set CONFIG_THERMAL=y # CONFIG_WATCHDOG is not set CONFIG_SSB_POSSIBLE=y diff --git a/projects/generic/linux/linux.i386.conf b/projects/generic/linux/linux.i386.conf index 5cd598d125..020742caab 100644 --- a/projects/generic/linux/linux.i386.conf +++ b/projects/generic/linux/linux.i386.conf @@ -1213,12 +1213,14 @@ CONFIG_I2C_ALGOBIT=y # CONFIG_I2C_ALI1535 is not set # CONFIG_I2C_ALI1563 is not set # CONFIG_I2C_ALI15X3 is not set -# CONFIG_I2C_AMD756 is not set -# CONFIG_I2C_AMD8111 is not set +CONFIG_I2C_AMD756=m +# CONFIG_I2C_AMD756_S4882 is not set +CONFIG_I2C_AMD8111=m CONFIG_I2C_I801=m -# CONFIG_I2C_ISCH is not set -# CONFIG_I2C_PIIX4 is not set -# CONFIG_I2C_NFORCE2 is not set +CONFIG_I2C_ISCH=m +CONFIG_I2C_PIIX4=m +CONFIG_I2C_NFORCE2=m +# CONFIG_I2C_NFORCE2_S4985 is not set # CONFIG_I2C_SIS5595 is not set # CONFIG_I2C_SIS630 is not set # CONFIG_I2C_SIS96X is not set @@ -1228,13 +1230,13 @@ CONFIG_I2C_I801=m # # ACPI drivers # -# CONFIG_I2C_SCMI is not set +CONFIG_I2C_SCMI=m # # I2C system bus drivers (mostly embedded / system-on-chip) # -# CONFIG_I2C_OCORES is not set -# CONFIG_I2C_SIMTEC is not set +CONFIG_I2C_OCORES=m +CONFIG_I2C_SIMTEC=m # # External I2C/SMBus adapter drivers @@ -1276,83 +1278,83 @@ CONFIG_POWER_SUPPLY=y # CONFIG_BATTERY_BQ27x00 is not set # CONFIG_BATTERY_MAX17040 is not set CONFIG_HWMON=m -# CONFIG_HWMON_VID is not set +CONFIG_HWMON_VID=m # CONFIG_HWMON_DEBUG_CHIP is not set # # Native drivers # # CONFIG_SENSORS_ABITUGURU is not set -# CONFIG_SENSORS_ABITUGURU3 is not set -# CONFIG_SENSORS_AD7414 is not set -# CONFIG_SENSORS_AD7418 is not set -# CONFIG_SENSORS_ADM1021 is not set -# CONFIG_SENSORS_ADM1025 is not set -# CONFIG_SENSORS_ADM1026 is not set -# CONFIG_SENSORS_ADM1029 is not set -# CONFIG_SENSORS_ADM1031 is not set -# CONFIG_SENSORS_ADM9240 is not set -# CONFIG_SENSORS_ADT7462 is not set -# CONFIG_SENSORS_ADT7470 is not set +CONFIG_SENSORS_ABITUGURU3=m +CONFIG_SENSORS_AD7414=m +CONFIG_SENSORS_AD7418=m +CONFIG_SENSORS_ADM1021=m +CONFIG_SENSORS_ADM1025=m +CONFIG_SENSORS_ADM1026=m +CONFIG_SENSORS_ADM1029=m +CONFIG_SENSORS_ADM1031=m +CONFIG_SENSORS_ADM9240=m +CONFIG_SENSORS_ADT7462=m +CONFIG_SENSORS_ADT7470=m # CONFIG_SENSORS_ADT7473 is not set -# CONFIG_SENSORS_ADT7475 is not set -# CONFIG_SENSORS_K8TEMP is not set -# CONFIG_SENSORS_K10TEMP is not set -# CONFIG_SENSORS_ASB100 is not set -# CONFIG_SENSORS_ATXP1 is not set -# CONFIG_SENSORS_DS1621 is not set -# CONFIG_SENSORS_I5K_AMB is not set -# CONFIG_SENSORS_F71805F is not set -# CONFIG_SENSORS_F71882FG is not set -# CONFIG_SENSORS_F75375S is not set -# CONFIG_SENSORS_FSCHMD is not set -# CONFIG_SENSORS_G760A is not set -# CONFIG_SENSORS_GL518SM is not set -# CONFIG_SENSORS_GL520SM is not set +CONFIG_SENSORS_ADT7475=m +CONFIG_SENSORS_K8TEMP=m +CONFIG_SENSORS_K10TEMP=m +CONFIG_SENSORS_ASB100=m +CONFIG_SENSORS_ATXP1=m +CONFIG_SENSORS_DS1621=m +CONFIG_SENSORS_I5K_AMB=m +CONFIG_SENSORS_F71805F=m +CONFIG_SENSORS_F71882FG=m +CONFIG_SENSORS_F75375S=m +CONFIG_SENSORS_FSCHMD=m +CONFIG_SENSORS_G760A=m +CONFIG_SENSORS_GL518SM=m +CONFIG_SENSORS_GL520SM=m CONFIG_SENSORS_CORETEMP=m -# CONFIG_SENSORS_IT87 is not set -# CONFIG_SENSORS_LM63 is not set -# CONFIG_SENSORS_LM73 is not set -# CONFIG_SENSORS_LM75 is not set -# CONFIG_SENSORS_LM77 is not set -# CONFIG_SENSORS_LM78 is not set -# CONFIG_SENSORS_LM80 is not set -# CONFIG_SENSORS_LM83 is not set -# CONFIG_SENSORS_LM85 is not set -# CONFIG_SENSORS_LM87 is not set -# CONFIG_SENSORS_LM90 is not set -# CONFIG_SENSORS_LM92 is not set -# CONFIG_SENSORS_LM93 is not set -# CONFIG_SENSORS_LTC4215 is not set -# CONFIG_SENSORS_LTC4245 is not set -# CONFIG_SENSORS_LM95241 is not set -# CONFIG_SENSORS_MAX1619 is not set -# CONFIG_SENSORS_MAX6650 is not set -# CONFIG_SENSORS_PC87360 is not set -# CONFIG_SENSORS_PC87427 is not set -# CONFIG_SENSORS_PCF8591 is not set -# CONFIG_SENSORS_SIS5595 is not set -# CONFIG_SENSORS_DME1737 is not set -# CONFIG_SENSORS_SMSC47M1 is not set -# CONFIG_SENSORS_SMSC47M192 is not set -# CONFIG_SENSORS_SMSC47B397 is not set -# CONFIG_SENSORS_ADS7828 is not set -# CONFIG_SENSORS_AMC6821 is not set -# CONFIG_SENSORS_THMC50 is not set -# CONFIG_SENSORS_TMP401 is not set -# CONFIG_SENSORS_TMP421 is not set -# CONFIG_SENSORS_VIA_CPUTEMP is not set +CONFIG_SENSORS_IT87=m +CONFIG_SENSORS_LM63=m +CONFIG_SENSORS_LM73=m +CONFIG_SENSORS_LM75=m +CONFIG_SENSORS_LM77=m +CONFIG_SENSORS_LM78=m +CONFIG_SENSORS_LM80=m +CONFIG_SENSORS_LM83=m +CONFIG_SENSORS_LM85=m +CONFIG_SENSORS_LM87=m +CONFIG_SENSORS_LM90=m +CONFIG_SENSORS_LM92=m +CONFIG_SENSORS_LM93=m +CONFIG_SENSORS_LTC4215=m +CONFIG_SENSORS_LTC4245=m +CONFIG_SENSORS_LM95241=m +CONFIG_SENSORS_MAX1619=m +CONFIG_SENSORS_MAX6650=m +CONFIG_SENSORS_PC87360=m +CONFIG_SENSORS_PC87427=m +CONFIG_SENSORS_PCF8591=m +CONFIG_SENSORS_SIS5595=m +CONFIG_SENSORS_DME1737=m +CONFIG_SENSORS_SMSC47M1=m +CONFIG_SENSORS_SMSC47M192=m +CONFIG_SENSORS_SMSC47B397=m +CONFIG_SENSORS_ADS7828=m +CONFIG_SENSORS_AMC6821=m +CONFIG_SENSORS_THMC50=m +CONFIG_SENSORS_TMP401=m +CONFIG_SENSORS_TMP421=m +CONFIG_SENSORS_VIA_CPUTEMP=m # CONFIG_SENSORS_VIA686A is not set -# CONFIG_SENSORS_VT1211 is not set -# CONFIG_SENSORS_VT8231 is not set -# CONFIG_SENSORS_W83781D is not set -# CONFIG_SENSORS_W83791D is not set -# CONFIG_SENSORS_W83792D is not set -# CONFIG_SENSORS_W83793 is not set -# CONFIG_SENSORS_W83L785TS is not set -# CONFIG_SENSORS_W83L786NG is not set -# CONFIG_SENSORS_W83627HF is not set -# CONFIG_SENSORS_W83627EHF is not set +CONFIG_SENSORS_VT1211=m +CONFIG_SENSORS_VT8231=m +CONFIG_SENSORS_W83781D=m +CONFIG_SENSORS_W83791D=m +CONFIG_SENSORS_W83792D=m +CONFIG_SENSORS_W83793=m +CONFIG_SENSORS_W83L785TS=m +CONFIG_SENSORS_W83L786NG=m +CONFIG_SENSORS_W83627HF=m +CONFIG_SENSORS_W83627EHF=m # CONFIG_SENSORS_HDAPS is not set # CONFIG_SENSORS_LIS3_I2C is not set # CONFIG_SENSORS_APPLESMC is not set diff --git a/projects/intel/linux/linux.i386.conf b/projects/intel/linux/linux.i386.conf index 7249944643..aaba2eec0b 100644 --- a/projects/intel/linux/linux.i386.conf +++ b/projects/intel/linux/linux.i386.conf @@ -1076,14 +1076,8 @@ CONFIG_I2C=y CONFIG_I2C_BOARDINFO=y # CONFIG_I2C_COMPAT is not set CONFIG_I2C_CHARDEV=m -# CONFIG_I2C_HELPER_AUTO is not set - -# -# I2C Algorithms -# +CONFIG_I2C_HELPER_AUTO=y CONFIG_I2C_ALGOBIT=y -# CONFIG_I2C_ALGOPCF is not set -# CONFIG_I2C_ALGOPCA is not set # # I2C Hardware Bus support diff --git a/projects/intel/linux/linux.x86_64.conf b/projects/intel/linux/linux.x86_64.conf index 8655e4fda2..abfd9a63f2 100644 --- a/projects/intel/linux/linux.x86_64.conf +++ b/projects/intel/linux/linux.x86_64.conf @@ -1042,14 +1042,8 @@ CONFIG_I2C=y CONFIG_I2C_BOARDINFO=y # CONFIG_I2C_COMPAT is not set CONFIG_I2C_CHARDEV=m -# CONFIG_I2C_HELPER_AUTO is not set - -# -# I2C Algorithms -# +CONFIG_I2C_HELPER_AUTO=y CONFIG_I2C_ALGOBIT=y -# CONFIG_I2C_ALGOPCF is not set -# CONFIG_I2C_ALGOPCA is not set # # I2C Hardware Bus support From 222bdafa173dab066d4ee236107a9b4483feffc7 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Fri, 23 Apr 2010 23:26:06 +0200 Subject: [PATCH 176/320] projects/*/options: - add option to install sensor support --- packages/mediacenter/xbmc/install | 2 +- projects/ION/options | 3 +++ projects/generic/options | 3 +++ projects/intel/options | 3 +++ 4 files changed, 10 insertions(+), 1 deletion(-) diff --git a/packages/mediacenter/xbmc/install b/packages/mediacenter/xbmc/install index 80641b0ee7..347b08cfa8 100755 --- a/packages/mediacenter/xbmc/install +++ b/packages/mediacenter/xbmc/install @@ -130,6 +130,6 @@ mkdir -p $INSTALL/usr/share/xbmc/addons $SCRIPTS/install alsa $SCRIPTS/install lirc [ ! "$LCD_DRIVER" = none ] && $SCRIPTS/install lcdproc + [ "$SENSOR_SUPPORT" = yes ] && $SCRIPTS/install lm_sensors $SCRIPTS/install autoupdate - $SCRIPTS/install lm_sensors diff --git a/projects/ION/options b/projects/ION/options index 9b31482838..63e5c3d9e1 100644 --- a/projects/ION/options +++ b/projects/ION/options @@ -115,6 +115,9 @@ # e.g. FIRMWARE="iwl3945 iwl5000" FIRMWARE="" +# build with lm_sensors hardware monitoring support (yes / no) + SENSOR_SUPPORT="yes" + # build with games support (yes / no) GAMES="no" diff --git a/projects/generic/options b/projects/generic/options index 6483253d69..a356da41db 100644 --- a/projects/generic/options +++ b/projects/generic/options @@ -115,6 +115,9 @@ # e.g. FIRMWARE="iwl3945 iwl5000" FIRMWARE="ipw2100 ipw2200 iwl1000 iwl3945 iwl4965 iwl5000 iwl5150 iwl6000" +# build with lm_sensors hardware monitoring support (yes / no) + SENSOR_SUPPORT="yes" + # build with games support (yes / no) GAMES="no" diff --git a/projects/intel/options b/projects/intel/options index ce8519f887..2f0aaa15d9 100644 --- a/projects/intel/options +++ b/projects/intel/options @@ -115,6 +115,9 @@ # e.g. FIRMWARE="iwl3945 iwl5000" FIRMWARE="iwl5000" +# build with lm_sensors hardware monitoring support (yes / no) + SENSOR_SUPPORT="yes" + # build with games support (yes / no) GAMES="no" From c7f6be5430a92d265b1cc1953a445d707161216f Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Fri, 23 Apr 2010 23:28:25 +0200 Subject: [PATCH 177/320] projects/*/options: - add option to build with automatic update support --- packages/mediacenter/xbmc/install | 3 +-- projects/ION/options | 3 +++ projects/generic/options | 3 +++ projects/intel/options | 3 +++ 4 files changed, 10 insertions(+), 2 deletions(-) diff --git a/packages/mediacenter/xbmc/install b/packages/mediacenter/xbmc/install index 347b08cfa8..1b4baa796e 100755 --- a/packages/mediacenter/xbmc/install +++ b/packages/mediacenter/xbmc/install @@ -131,5 +131,4 @@ mkdir -p $INSTALL/usr/share/xbmc/addons $SCRIPTS/install lirc [ ! "$LCD_DRIVER" = none ] && $SCRIPTS/install lcdproc [ "$SENSOR_SUPPORT" = yes ] && $SCRIPTS/install lm_sensors - - $SCRIPTS/install autoupdate + [ "$UPDATE_SUPPORT" = yes ] && $SCRIPTS/install autoupdate diff --git a/projects/ION/options b/projects/ION/options index 63e5c3d9e1..ec811693d9 100644 --- a/projects/ION/options +++ b/projects/ION/options @@ -118,6 +118,9 @@ # build with lm_sensors hardware monitoring support (yes / no) SENSOR_SUPPORT="yes" +# build with automatic update support (yes / no) + UPDATE_SUPPORT="yes" + # build with games support (yes / no) GAMES="no" diff --git a/projects/generic/options b/projects/generic/options index a356da41db..ad58ad9a87 100644 --- a/projects/generic/options +++ b/projects/generic/options @@ -118,6 +118,9 @@ # build with lm_sensors hardware monitoring support (yes / no) SENSOR_SUPPORT="yes" +# build with automatic update support (yes / no) + UPDATE_SUPPORT="yes" + # build with games support (yes / no) GAMES="no" diff --git a/projects/intel/options b/projects/intel/options index 2f0aaa15d9..11f8491a1f 100644 --- a/projects/intel/options +++ b/projects/intel/options @@ -118,6 +118,9 @@ # build with lm_sensors hardware monitoring support (yes / no) SENSOR_SUPPORT="yes" +# build with automatic update support (yes / no) + UPDATE_SUPPORT="yes" + # build with games support (yes / no) GAMES="no" From bcbbdbf51aa3ad6a34066ad6c0919c35737d627e Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Fri, 23 Apr 2010 23:54:40 +0200 Subject: [PATCH 178/320] linux: - add init script to load modules --- packages/linux/init.d/05_modules | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100755 packages/linux/init.d/05_modules diff --git a/packages/linux/init.d/05_modules b/packages/linux/init.d/05_modules new file mode 100755 index 0000000000..7f739c2fdd --- /dev/null +++ b/packages/linux/init.d/05_modules @@ -0,0 +1,16 @@ +# +# load modules +# +# runlevels: openelec, textmode + +progress "loading kernel modules" + + ( + IFS=' +' + for module in `cat /etc/modules|grep "^[^#]"`; do + eval "modprobe $module" >/dev/null 2>&1 + done + + exit 0 + )& From 3c94d55cf1cb656417e78f54694ac04e6ba9e9cc Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Fri, 23 Apr 2010 23:56:37 +0200 Subject: [PATCH 179/320] linux: - install /etc/modules --- packages/linux/install | 3 +++ 1 file changed, 3 insertions(+) diff --git a/packages/linux/install b/packages/linux/install index c00b37e7ca..1758b24704 100755 --- a/packages/linux/install +++ b/packages/linux/install @@ -24,6 +24,9 @@ mkdir -p $INSTALL/lib/firmware [ -d $PKG_BUILD/modules/lib/firmware ] && \ cp -rf $PKG_BUILD/modules/lib/firmware/* $INSTALL/lib/firmware || true +mkdir -p $INSTALL/etc + cp $PKG_DIR/config/modules $INSTALL/etc + mkdir -p $INSTALL/etc/modprobe.d $SCRIPTS/install linux-firmware From d1cd4ad3a4eb2e146490f45f6868612b5c184ef7 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Fri, 23 Apr 2010 23:57:07 +0200 Subject: [PATCH 180/320] linux: - add module coretemp to /etc/modules --- packages/linux/config/modules | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packages/linux/config/modules b/packages/linux/config/modules index 36b7731525..84792563ee 100644 --- a/packages/linux/config/modules +++ b/packages/linux/config/modules @@ -2,3 +2,5 @@ # # This file contains the names of kernel modules that should be loaded # at boot time, one per line. Lines beginning with "#" are ignored. + +coretemp \ No newline at end of file From b4eb5599203dab530747cd4028d86dc57f83323c Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Sat, 24 Apr 2010 21:31:28 +0200 Subject: [PATCH 181/320] projects/*/linux: - add usbserial and ftdi_sio driver for some USB VFDs --- projects/ION/linux/linux.i386.conf | 48 ++++++++++++++++++++++++- projects/ION/linux/linux.x86_64.conf | 48 ++++++++++++++++++++++++- projects/generic/linux/linux.i386.conf | 50 +++++++++++++++++++++++++- projects/intel/linux/linux.i386.conf | 50 +++++++++++++++++++++++++- projects/intel/linux/linux.x86_64.conf | 50 +++++++++++++++++++++++++- 5 files changed, 241 insertions(+), 5 deletions(-) diff --git a/projects/ION/linux/linux.i386.conf b/projects/ION/linux/linux.i386.conf index f9ed6a26b3..cf1932b77a 100644 --- a/projects/ION/linux/linux.i386.conf +++ b/projects/ION/linux/linux.i386.conf @@ -1607,7 +1607,53 @@ CONFIG_USB_STORAGE_CYPRESS_ATACB=m # # USB port drivers # -# CONFIG_USB_SERIAL is not set +CONFIG_USB_SERIAL=m +# CONFIG_USB_EZUSB is not set +# CONFIG_USB_SERIAL_GENERIC is not set +# CONFIG_USB_SERIAL_AIRCABLE is not set +# CONFIG_USB_SERIAL_ARK3116 is not set +# CONFIG_USB_SERIAL_BELKIN is not set +# CONFIG_USB_SERIAL_CH341 is not set +# CONFIG_USB_SERIAL_WHITEHEAT is not set +# CONFIG_USB_SERIAL_DIGI_ACCELEPORT is not set +# CONFIG_USB_SERIAL_CP210X is not set +# CONFIG_USB_SERIAL_CYPRESS_M8 is not set +# CONFIG_USB_SERIAL_EMPEG is not set +CONFIG_USB_SERIAL_FTDI_SIO=m +# CONFIG_USB_SERIAL_FUNSOFT is not set +# CONFIG_USB_SERIAL_VISOR is not set +# CONFIG_USB_SERIAL_IPAQ is not set +# CONFIG_USB_SERIAL_IR is not set +# CONFIG_USB_SERIAL_EDGEPORT is not set +# CONFIG_USB_SERIAL_EDGEPORT_TI is not set +# CONFIG_USB_SERIAL_GARMIN is not set +# CONFIG_USB_SERIAL_IPW is not set +# CONFIG_USB_SERIAL_IUU is not set +# CONFIG_USB_SERIAL_KEYSPAN_PDA is not set +# CONFIG_USB_SERIAL_KEYSPAN is not set +# CONFIG_USB_SERIAL_KLSI is not set +# CONFIG_USB_SERIAL_KOBIL_SCT is not set +# CONFIG_USB_SERIAL_MCT_U232 is not set +# CONFIG_USB_SERIAL_MOS7720 is not set +# CONFIG_USB_SERIAL_MOS7840 is not set +# CONFIG_USB_SERIAL_MOTOROLA is not set +# CONFIG_USB_SERIAL_NAVMAN is not set +# CONFIG_USB_SERIAL_PL2303 is not set +# CONFIG_USB_SERIAL_OTI6858 is not set +# CONFIG_USB_SERIAL_QUALCOMM is not set +# CONFIG_USB_SERIAL_SPCP8X5 is not set +# CONFIG_USB_SERIAL_HP4X is not set +# CONFIG_USB_SERIAL_SAFE is not set +# CONFIG_USB_SERIAL_SIEMENS_MPI is not set +# CONFIG_USB_SERIAL_SIERRAWIRELESS is not set +# CONFIG_USB_SERIAL_SYMBOL is not set +# CONFIG_USB_SERIAL_TI is not set +# CONFIG_USB_SERIAL_CYBERJACK is not set +# CONFIG_USB_SERIAL_XIRCOM is not set +# CONFIG_USB_SERIAL_OPTION is not set +# CONFIG_USB_SERIAL_OMNINET is not set +# CONFIG_USB_SERIAL_OPTICON is not set +# CONFIG_USB_SERIAL_DEBUG is not set # # USB Miscellaneous drivers diff --git a/projects/ION/linux/linux.x86_64.conf b/projects/ION/linux/linux.x86_64.conf index 875b5b2d68..3cbc4f2752 100644 --- a/projects/ION/linux/linux.x86_64.conf +++ b/projects/ION/linux/linux.x86_64.conf @@ -1561,7 +1561,53 @@ CONFIG_USB_STORAGE_CYPRESS_ATACB=m # # USB port drivers # -# CONFIG_USB_SERIAL is not set +CONFIG_USB_SERIAL=m +# CONFIG_USB_EZUSB is not set +# CONFIG_USB_SERIAL_GENERIC is not set +# CONFIG_USB_SERIAL_AIRCABLE is not set +# CONFIG_USB_SERIAL_ARK3116 is not set +# CONFIG_USB_SERIAL_BELKIN is not set +# CONFIG_USB_SERIAL_CH341 is not set +# CONFIG_USB_SERIAL_WHITEHEAT is not set +# CONFIG_USB_SERIAL_DIGI_ACCELEPORT is not set +# CONFIG_USB_SERIAL_CP210X is not set +# CONFIG_USB_SERIAL_CYPRESS_M8 is not set +# CONFIG_USB_SERIAL_EMPEG is not set +CONFIG_USB_SERIAL_FTDI_SIO=m +# CONFIG_USB_SERIAL_FUNSOFT is not set +# CONFIG_USB_SERIAL_VISOR is not set +# CONFIG_USB_SERIAL_IPAQ is not set +# CONFIG_USB_SERIAL_IR is not set +# CONFIG_USB_SERIAL_EDGEPORT is not set +# CONFIG_USB_SERIAL_EDGEPORT_TI is not set +# CONFIG_USB_SERIAL_GARMIN is not set +# CONFIG_USB_SERIAL_IPW is not set +# CONFIG_USB_SERIAL_IUU is not set +# CONFIG_USB_SERIAL_KEYSPAN_PDA is not set +# CONFIG_USB_SERIAL_KEYSPAN is not set +# CONFIG_USB_SERIAL_KLSI is not set +# CONFIG_USB_SERIAL_KOBIL_SCT is not set +# CONFIG_USB_SERIAL_MCT_U232 is not set +# CONFIG_USB_SERIAL_MOS7720 is not set +# CONFIG_USB_SERIAL_MOS7840 is not set +# CONFIG_USB_SERIAL_MOTOROLA is not set +# CONFIG_USB_SERIAL_NAVMAN is not set +# CONFIG_USB_SERIAL_PL2303 is not set +# CONFIG_USB_SERIAL_OTI6858 is not set +# CONFIG_USB_SERIAL_QUALCOMM is not set +# CONFIG_USB_SERIAL_SPCP8X5 is not set +# CONFIG_USB_SERIAL_HP4X is not set +# CONFIG_USB_SERIAL_SAFE is not set +# CONFIG_USB_SERIAL_SIEMENS_MPI is not set +# CONFIG_USB_SERIAL_SIERRAWIRELESS is not set +# CONFIG_USB_SERIAL_SYMBOL is not set +# CONFIG_USB_SERIAL_TI is not set +# CONFIG_USB_SERIAL_CYBERJACK is not set +# CONFIG_USB_SERIAL_XIRCOM is not set +# CONFIG_USB_SERIAL_OPTION is not set +# CONFIG_USB_SERIAL_OMNINET is not set +# CONFIG_USB_SERIAL_OPTICON is not set +# CONFIG_USB_SERIAL_DEBUG is not set # # USB Miscellaneous drivers diff --git a/projects/generic/linux/linux.i386.conf b/projects/generic/linux/linux.i386.conf index 020742caab..abcdb5d6cb 100644 --- a/projects/generic/linux/linux.i386.conf +++ b/projects/generic/linux/linux.i386.conf @@ -1760,7 +1760,53 @@ CONFIG_USB_STORAGE_CYPRESS_ATACB=m # # USB port drivers # -# CONFIG_USB_SERIAL is not set +CONFIG_USB_SERIAL=m +# CONFIG_USB_EZUSB is not set +# CONFIG_USB_SERIAL_GENERIC is not set +# CONFIG_USB_SERIAL_AIRCABLE is not set +# CONFIG_USB_SERIAL_ARK3116 is not set +# CONFIG_USB_SERIAL_BELKIN is not set +# CONFIG_USB_SERIAL_CH341 is not set +# CONFIG_USB_SERIAL_WHITEHEAT is not set +# CONFIG_USB_SERIAL_DIGI_ACCELEPORT is not set +# CONFIG_USB_SERIAL_CP210X is not set +# CONFIG_USB_SERIAL_CYPRESS_M8 is not set +# CONFIG_USB_SERIAL_EMPEG is not set +CONFIG_USB_SERIAL_FTDI_SIO=m +# CONFIG_USB_SERIAL_FUNSOFT is not set +# CONFIG_USB_SERIAL_VISOR is not set +# CONFIG_USB_SERIAL_IPAQ is not set +# CONFIG_USB_SERIAL_IR is not set +# CONFIG_USB_SERIAL_EDGEPORT is not set +# CONFIG_USB_SERIAL_EDGEPORT_TI is not set +# CONFIG_USB_SERIAL_GARMIN is not set +# CONFIG_USB_SERIAL_IPW is not set +# CONFIG_USB_SERIAL_IUU is not set +# CONFIG_USB_SERIAL_KEYSPAN_PDA is not set +# CONFIG_USB_SERIAL_KEYSPAN is not set +# CONFIG_USB_SERIAL_KLSI is not set +# CONFIG_USB_SERIAL_KOBIL_SCT is not set +# CONFIG_USB_SERIAL_MCT_U232 is not set +# CONFIG_USB_SERIAL_MOS7720 is not set +# CONFIG_USB_SERIAL_MOS7840 is not set +# CONFIG_USB_SERIAL_MOTOROLA is not set +# CONFIG_USB_SERIAL_NAVMAN is not set +# CONFIG_USB_SERIAL_PL2303 is not set +# CONFIG_USB_SERIAL_OTI6858 is not set +# CONFIG_USB_SERIAL_QUALCOMM is not set +# CONFIG_USB_SERIAL_SPCP8X5 is not set +# CONFIG_USB_SERIAL_HP4X is not set +# CONFIG_USB_SERIAL_SAFE is not set +# CONFIG_USB_SERIAL_SIEMENS_MPI is not set +# CONFIG_USB_SERIAL_SIERRAWIRELESS is not set +# CONFIG_USB_SERIAL_SYMBOL is not set +# CONFIG_USB_SERIAL_TI is not set +# CONFIG_USB_SERIAL_CYBERJACK is not set +# CONFIG_USB_SERIAL_XIRCOM is not set +# CONFIG_USB_SERIAL_OPTION is not set +# CONFIG_USB_SERIAL_OMNINET is not set +# CONFIG_USB_SERIAL_OPTICON is not set +# CONFIG_USB_SERIAL_DEBUG is not set # # USB Miscellaneous drivers @@ -1974,6 +2020,8 @@ CONFIG_RT2870=m # I2C encoder or helper chips # # CONFIG_DRM_I2C_CH7006 is not set +# CONFIG_USB_SERIAL_QUATECH2 is not set +# CONFIG_USB_SERIAL_QUATECH_USB2 is not set # CONFIG_VT6655 is not set # CONFIG_VT6656 is not set # CONFIG_FB_UDL is not set diff --git a/projects/intel/linux/linux.i386.conf b/projects/intel/linux/linux.i386.conf index aaba2eec0b..6473ae01ce 100644 --- a/projects/intel/linux/linux.i386.conf +++ b/projects/intel/linux/linux.i386.conf @@ -1740,7 +1740,53 @@ CONFIG_USB_STORAGE_CYPRESS_ATACB=m # # USB port drivers # -# CONFIG_USB_SERIAL is not set +CONFIG_USB_SERIAL=m +# CONFIG_USB_EZUSB is not set +# CONFIG_USB_SERIAL_GENERIC is not set +# CONFIG_USB_SERIAL_AIRCABLE is not set +# CONFIG_USB_SERIAL_ARK3116 is not set +# CONFIG_USB_SERIAL_BELKIN is not set +# CONFIG_USB_SERIAL_CH341 is not set +# CONFIG_USB_SERIAL_WHITEHEAT is not set +# CONFIG_USB_SERIAL_DIGI_ACCELEPORT is not set +# CONFIG_USB_SERIAL_CP210X is not set +# CONFIG_USB_SERIAL_CYPRESS_M8 is not set +# CONFIG_USB_SERIAL_EMPEG is not set +CONFIG_USB_SERIAL_FTDI_SIO=m +# CONFIG_USB_SERIAL_FUNSOFT is not set +# CONFIG_USB_SERIAL_VISOR is not set +# CONFIG_USB_SERIAL_IPAQ is not set +# CONFIG_USB_SERIAL_IR is not set +# CONFIG_USB_SERIAL_EDGEPORT is not set +# CONFIG_USB_SERIAL_EDGEPORT_TI is not set +# CONFIG_USB_SERIAL_GARMIN is not set +# CONFIG_USB_SERIAL_IPW is not set +# CONFIG_USB_SERIAL_IUU is not set +# CONFIG_USB_SERIAL_KEYSPAN_PDA is not set +# CONFIG_USB_SERIAL_KEYSPAN is not set +# CONFIG_USB_SERIAL_KLSI is not set +# CONFIG_USB_SERIAL_KOBIL_SCT is not set +# CONFIG_USB_SERIAL_MCT_U232 is not set +# CONFIG_USB_SERIAL_MOS7720 is not set +# CONFIG_USB_SERIAL_MOS7840 is not set +# CONFIG_USB_SERIAL_MOTOROLA is not set +# CONFIG_USB_SERIAL_NAVMAN is not set +# CONFIG_USB_SERIAL_PL2303 is not set +# CONFIG_USB_SERIAL_OTI6858 is not set +# CONFIG_USB_SERIAL_QUALCOMM is not set +# CONFIG_USB_SERIAL_SPCP8X5 is not set +# CONFIG_USB_SERIAL_HP4X is not set +# CONFIG_USB_SERIAL_SAFE is not set +# CONFIG_USB_SERIAL_SIEMENS_MPI is not set +# CONFIG_USB_SERIAL_SIERRAWIRELESS is not set +# CONFIG_USB_SERIAL_SYMBOL is not set +# CONFIG_USB_SERIAL_TI is not set +# CONFIG_USB_SERIAL_CYBERJACK is not set +# CONFIG_USB_SERIAL_XIRCOM is not set +# CONFIG_USB_SERIAL_OPTION is not set +# CONFIG_USB_SERIAL_OMNINET is not set +# CONFIG_USB_SERIAL_OPTICON is not set +# CONFIG_USB_SERIAL_DEBUG is not set # # USB Miscellaneous drivers @@ -1921,6 +1967,8 @@ CONFIG_STAGING=y # I2C encoder or helper chips # # CONFIG_DRM_I2C_CH7006 is not set +# CONFIG_USB_SERIAL_QUATECH2 is not set +# CONFIG_USB_SERIAL_QUATECH_USB2 is not set # CONFIG_VT6655 is not set # CONFIG_VT6656 is not set # CONFIG_FB_UDL is not set diff --git a/projects/intel/linux/linux.x86_64.conf b/projects/intel/linux/linux.x86_64.conf index abfd9a63f2..e5b0f9c048 100644 --- a/projects/intel/linux/linux.x86_64.conf +++ b/projects/intel/linux/linux.x86_64.conf @@ -1697,7 +1697,53 @@ CONFIG_USB_STORAGE_CYPRESS_ATACB=m # # USB port drivers # -# CONFIG_USB_SERIAL is not set +CONFIG_USB_SERIAL=m +# CONFIG_USB_EZUSB is not set +# CONFIG_USB_SERIAL_GENERIC is not set +# CONFIG_USB_SERIAL_AIRCABLE is not set +# CONFIG_USB_SERIAL_ARK3116 is not set +# CONFIG_USB_SERIAL_BELKIN is not set +# CONFIG_USB_SERIAL_CH341 is not set +# CONFIG_USB_SERIAL_WHITEHEAT is not set +# CONFIG_USB_SERIAL_DIGI_ACCELEPORT is not set +# CONFIG_USB_SERIAL_CP210X is not set +# CONFIG_USB_SERIAL_CYPRESS_M8 is not set +# CONFIG_USB_SERIAL_EMPEG is not set +CONFIG_USB_SERIAL_FTDI_SIO=m +# CONFIG_USB_SERIAL_FUNSOFT is not set +# CONFIG_USB_SERIAL_VISOR is not set +# CONFIG_USB_SERIAL_IPAQ is not set +# CONFIG_USB_SERIAL_IR is not set +# CONFIG_USB_SERIAL_EDGEPORT is not set +# CONFIG_USB_SERIAL_EDGEPORT_TI is not set +# CONFIG_USB_SERIAL_GARMIN is not set +# CONFIG_USB_SERIAL_IPW is not set +# CONFIG_USB_SERIAL_IUU is not set +# CONFIG_USB_SERIAL_KEYSPAN_PDA is not set +# CONFIG_USB_SERIAL_KEYSPAN is not set +# CONFIG_USB_SERIAL_KLSI is not set +# CONFIG_USB_SERIAL_KOBIL_SCT is not set +# CONFIG_USB_SERIAL_MCT_U232 is not set +# CONFIG_USB_SERIAL_MOS7720 is not set +# CONFIG_USB_SERIAL_MOS7840 is not set +# CONFIG_USB_SERIAL_MOTOROLA is not set +# CONFIG_USB_SERIAL_NAVMAN is not set +# CONFIG_USB_SERIAL_PL2303 is not set +# CONFIG_USB_SERIAL_OTI6858 is not set +# CONFIG_USB_SERIAL_QUALCOMM is not set +# CONFIG_USB_SERIAL_SPCP8X5 is not set +# CONFIG_USB_SERIAL_HP4X is not set +# CONFIG_USB_SERIAL_SAFE is not set +# CONFIG_USB_SERIAL_SIEMENS_MPI is not set +# CONFIG_USB_SERIAL_SIERRAWIRELESS is not set +# CONFIG_USB_SERIAL_SYMBOL is not set +# CONFIG_USB_SERIAL_TI is not set +# CONFIG_USB_SERIAL_CYBERJACK is not set +# CONFIG_USB_SERIAL_XIRCOM is not set +# CONFIG_USB_SERIAL_OPTION is not set +# CONFIG_USB_SERIAL_OMNINET is not set +# CONFIG_USB_SERIAL_OPTICON is not set +# CONFIG_USB_SERIAL_DEBUG is not set # # USB Miscellaneous drivers @@ -1878,6 +1924,8 @@ CONFIG_STAGING=y # I2C encoder or helper chips # # CONFIG_DRM_I2C_CH7006 is not set +# CONFIG_USB_SERIAL_QUATECH2 is not set +# CONFIG_USB_SERIAL_QUATECH_USB2 is not set # CONFIG_VT6655 is not set # CONFIG_VT6656 is not set # CONFIG_FB_UDL is not set From 91623605d89f5fc262c03d24c20ada23f841cb6d Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Sat, 24 Apr 2010 23:17:18 +0200 Subject: [PATCH 182/320] xbmc: - update to xbmc-29490 --- .../001-xbmc-fix_libcurl.so_detection.diff | 12 +++ ...ariable_GCC_instead_hardcoded_gcc-0.1.diff | 84 +++++++++++++++++++ packages/mediacenter/xbmc/url | 2 +- 3 files changed, 97 insertions(+), 1 deletion(-) create mode 100644 packages/mediacenter/xbmc/patches/001-xbmc-fix_libcurl.so_detection.diff create mode 100644 packages/mediacenter/xbmc/patches/303-xbmc-use_variable_GCC_instead_hardcoded_gcc-0.1.diff diff --git a/packages/mediacenter/xbmc/patches/001-xbmc-fix_libcurl.so_detection.diff b/packages/mediacenter/xbmc/patches/001-xbmc-fix_libcurl.so_detection.diff new file mode 100644 index 0000000000..57772d9445 --- /dev/null +++ b/packages/mediacenter/xbmc/patches/001-xbmc-fix_libcurl.so_detection.diff @@ -0,0 +1,12 @@ +diff -Naur xbmc-29428/configure.in xbmc-29428.patch/configure.in +--- xbmc-29428/configure.in 2010-04-22 00:56:44.000000000 +0200 ++++ xbmc-29428.patch/configure.in 2010-04-22 19:06:31.906738563 +0200 +@@ -478,7 +478,7 @@ + while read output; do objdump -p $output | \ + grep SONAME | \ + awk 'BEGIN { FS = " " } ; { print $2 }'; done) +- if [ -z "$LIBCURL_BASENAME" ]; then ++ if [[ -z "$LIBCURL_BASENAME" ]]; then + echo "Unable to determine basename of libcurl library" + fi + diff --git a/packages/mediacenter/xbmc/patches/303-xbmc-use_variable_GCC_instead_hardcoded_gcc-0.1.diff b/packages/mediacenter/xbmc/patches/303-xbmc-use_variable_GCC_instead_hardcoded_gcc-0.1.diff new file mode 100644 index 0000000000..182c72f5ed --- /dev/null +++ b/packages/mediacenter/xbmc/patches/303-xbmc-use_variable_GCC_instead_hardcoded_gcc-0.1.diff @@ -0,0 +1,84 @@ +diff -Naur xbmc-29428/configure.in xbmc-29428.patch/configure.in +--- xbmc-29428/configure.in 2010-04-22 00:56:44.000000000 +0200 ++++ xbmc-29428.patch/configure.in 2010-04-22 02:22:21.771774020 +0200 +@@ -474,7 +474,7 @@ + # check for library basenames + if test "$host_vendor" != "apple"; then + # libcurl +- LIBCURL_BASENAME=$(gcc $CFLAGS -print-file-name=libcurl.so | \ ++ LIBCURL_BASENAME=$($ac_cv_prog_CC $CFLAGS -print-file-name=libcurl.so | \ + while read output; do objdump -p $output | \ + grep SONAME | \ + awk 'BEGIN { FS = " " } ; { print $2 }'; done) +@@ -483,7 +483,7 @@ + fi + + # libFLAC +- LIBFLAC_BASENAME=$(gcc $CFLAGS -print-file-name=libFLAC.so | \ ++ LIBFLAC_BASENAME=$($ac_cv_prog_CC $CFLAGS -print-file-name=libFLAC.so | \ + while read output; do objdump -p $output | \ + grep SONAME | \ + awk 'BEGIN { FS = " " } ; { print $2 }'; done) +@@ -492,7 +492,7 @@ + fi + + # libvorbisfile +- LIBVORBISFILE_BASENAME=$(gcc $CFLAGS -print-file-name=libvorbisfile.so | \ ++ LIBVORBISFILE_BASENAME=$($ac_cv_prog_CC $CFLAGS -print-file-name=libvorbisfile.so | \ + while read output; do objdump -p $output | \ + grep SONAME | \ + awk 'BEGIN { FS = " " } ; { print $2 }'; done) +@@ -501,7 +501,7 @@ + fi + + # libmodplug +- LIBMODPLUG_BASENAME=$(gcc $CFLAGS -print-file-name=libmodplug.so | \ ++ LIBMODPLUG_BASENAME=$($ac_cv_prog_CC $CFLAGS -print-file-name=libmodplug.so | \ + while read output; do objdump -p $output | \ + grep SONAME | \ + awk 'BEGIN { FS = " " } ; { print $2 }'; done) +@@ -510,7 +510,7 @@ + fi + + # libfaad +- LIBFAAD_BASENAME=$(gcc $CFLAGS -print-file-name=libfaad.so | \ ++ LIBFAAD_BASENAME=$($ac_cv_prog_CC $CFLAGS -print-file-name=libfaad.so | \ + while read output; do objdump -p $output | \ + grep SONAME | \ + awk 'BEGIN { FS = " " } ; { print $2 }'; done) +@@ -519,7 +519,7 @@ + fi + + # libmad +- LIBMAD_BASENAME=$(gcc $CFLAGS -print-file-name=libmad.so | \ ++ LIBMAD_BASENAME=$($ac_cv_prog_CC $CFLAGS -print-file-name=libmad.so | \ + while read output; do objdump -p $output | \ + grep SONAME | \ + awk 'BEGIN { FS = " " } ; { print $2 }'; done) +@@ -528,7 +528,7 @@ + fi + + # libogg +- LIBOGG_BASENAME=$(gcc $CFLAGS -print-file-name=libogg.so | \ ++ LIBOGG_BASENAME=$($ac_cv_prog_CC $CFLAGS -print-file-name=libogg.so | \ + while read output; do objdump -p $output | \ + grep SONAME | \ + awk 'BEGIN { FS = " " } ; { print $2 }'; done) +@@ -537,7 +537,7 @@ + fi + + # libvorbisenc +- LIBVORBISENC_BASENAME=$(gcc $CFLAGS -print-file-name=libvorbisenc.so | \ ++ LIBVORBISENC_BASENAME=$($ac_cv_prog_CC $CFLAGS -print-file-name=libvorbisenc.so | \ + while read output; do objdump -p $output | \ + grep SONAME | \ + awk 'BEGIN { FS = " " } ; { print $2 }'; done) +@@ -546,7 +546,7 @@ + fi + + # libvorbis +- LIBVORBIS_BASENAME=$(gcc $CFLAGS -print-file-name=libvorbis.so | \ ++ LIBVORBIS_BASENAME=$($ac_cv_prog_CC $CFLAGS -print-file-name=libvorbis.so | \ + while read output; do objdump -p $output | \ + grep SONAME | \ + awk 'BEGIN { FS = " " } ; { print $2 }'; done) diff --git a/packages/mediacenter/xbmc/url b/packages/mediacenter/xbmc/url index 1b2ad8d941..f995ab9a88 100644 --- a/packages/mediacenter/xbmc/url +++ b/packages/mediacenter/xbmc/url @@ -1 +1 @@ -http://sources.openelec.tv/svn/xbmc-29203.tar.bz2 +http://sources.openelec.tv/svn/xbmc-29490.tar.bz2 From cbe7f06cbc6108d673c308d3472639000b5acca6 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Sat, 24 Apr 2010 23:17:39 +0200 Subject: [PATCH 183/320] xbmc-theme-Confluence: - update to xbmc-theme-Confluence-29490 --- packages/mediacenter/xbmc-theme-Confluence/url | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/mediacenter/xbmc-theme-Confluence/url b/packages/mediacenter/xbmc-theme-Confluence/url index 7df3aced22..537ae45965 100644 --- a/packages/mediacenter/xbmc-theme-Confluence/url +++ b/packages/mediacenter/xbmc-theme-Confluence/url @@ -1 +1 @@ -http://sources.openelec.tv/svn/xbmc-theme-Confluence-29203.tar.bz2 +http://sources.openelec.tv/svn/xbmc-theme-Confluence-29490.tar.bz2 From 04511100d85d7655c5b0abc6d94c2a9673d10ba6 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Sun, 25 Apr 2010 15:49:03 +0200 Subject: [PATCH 184/320] udisks: - speedup a bit automounting of internally disks --- packages/sysutils/udisks/init.d/14_mount-disks | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/packages/sysutils/udisks/init.d/14_mount-disks b/packages/sysutils/udisks/init.d/14_mount-disks index 509a971541..a85d9b8850 100755 --- a/packages/sysutils/udisks/init.d/14_mount-disks +++ b/packages/sysutils/udisks/init.d/14_mount-disks @@ -3,7 +3,8 @@ # # runlevels: openelec, textmode -progress "automount internal disks" +( + progress "automount internal disks" drive_dump () { udisks --dump | tr -d ' ' | grep 'device-file:' | cut -d ':' -f2 @@ -22,4 +23,5 @@ progress "automount internal disks" udisks --mount "$DEVICE" >/dev/null fi - done \ No newline at end of file + done +)& From 8265c228d61e62d11bc9d2165aa8543d63b94e73 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Sun, 25 Apr 2010 16:46:17 +0200 Subject: [PATCH 185/320] autoupdate: - use usleep instead sleep --- packages/sysutils/autoupdate/scripts/autoupdate.devel | 2 +- packages/sysutils/autoupdate/scripts/autoupdate.release | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/sysutils/autoupdate/scripts/autoupdate.devel b/packages/sysutils/autoupdate/scripts/autoupdate.devel index a44b5c6e8a..e5a128b163 100755 --- a/packages/sysutils/autoupdate/scripts/autoupdate.devel +++ b/packages/sysutils/autoupdate/scripts/autoupdate.devel @@ -10,7 +10,7 @@ if [ ! -f /var/lock/update.lock ]; then touch /var/lock/update.lock # sleep a bit, maybe we have a lot of work ;-) - sleep 30 + usleep 30000000 send_message () { xbmc-send --host=127.0.0.1 -a "Notification(Automatic update service:,$1,20000)" diff --git a/packages/sysutils/autoupdate/scripts/autoupdate.release b/packages/sysutils/autoupdate/scripts/autoupdate.release index 58c11b9714..3d1f5cdfdf 100755 --- a/packages/sysutils/autoupdate/scripts/autoupdate.release +++ b/packages/sysutils/autoupdate/scripts/autoupdate.release @@ -10,7 +10,7 @@ if [ ! -f /var/lock/update.lock ]; then touch /var/lock/update.lock # sleep a bit, maybe we have a lot of work ;-) - sleep 30 + usleep 30000000 send_message () { xbmc-send --host=127.0.0.1 -a "Notification(Automatic Update Service:,$1,20000)" From 7f877e3fd209cf44d38f1417090c8f25cbfa726f Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Sun, 25 Apr 2010 19:06:17 +0200 Subject: [PATCH 186/320] projects/*/options: - build only irtrans lcddriver for the moment --- projects/ION/options | 2 +- projects/generic/options | 2 +- projects/intel/options | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/projects/ION/options b/projects/ION/options index ec811693d9..53ff6e3e0a 100644 --- a/projects/ION/options +++ b/projects/ION/options @@ -108,7 +108,7 @@ # 'all' compiles all drivers; # 'all,!xxx,!yyy' de-selects previously selected drivers # "none" for disable LCD support - LCD_DRIVER="none" + LCD_DRIVER="irtrans" # Firmware to use (iwl1000, iwl3945, iwl4965, iwl5000, iwl5150, iwl6000) # Space separated list is supported, diff --git a/projects/generic/options b/projects/generic/options index ad58ad9a87..ed806f3546 100644 --- a/projects/generic/options +++ b/projects/generic/options @@ -108,7 +108,7 @@ # 'all' compiles all drivers; # 'all,!xxx,!yyy' de-selects previously selected drivers # "none" for disable LCD support - LCD_DRIVER="all" + LCD_DRIVER="irtrans" # Firmware to use (iwl1000, iwl3945, iwl4965, iwl5000, iwl5150, iwl6000) # Space separated list is supported, diff --git a/projects/intel/options b/projects/intel/options index 11f8491a1f..6600a199cb 100644 --- a/projects/intel/options +++ b/projects/intel/options @@ -108,7 +108,7 @@ # 'all' compiles all drivers; # 'all,!xxx,!yyy' de-selects previously selected drivers # "none" for disable LCD support - LCD_DRIVER="all" + LCD_DRIVER="irtrans" # Firmware to use (iwl1000, iwl3945, iwl4965, iwl5000, iwl5150, iwl6000) # Space separated list is supported, From 25d60e75cc9b49ae35dfd903cf69ef4d38a72d22 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Sun, 25 Apr 2010 19:06:47 +0200 Subject: [PATCH 187/320] lcdproc: - dont run in foreground --- packages/sysutils/lcdproc/build | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/sysutils/lcdproc/build b/packages/sysutils/lcdproc/build index a829357336..ef99e42eea 100755 --- a/packages/sysutils/lcdproc/build +++ b/packages/sysutils/lcdproc/build @@ -17,3 +17,4 @@ make sed -i -e "s|^DriverPath=.*$|DriverPath=/usr/lib/lcdproc/|" LCDd.conf sed -i -e "s|^Driver=.*$|Driver=irtrans|" LCDd.conf +sed -i -e "s|^Foreground=.*$|Foreground=no|" LCDd.conf \ No newline at end of file From 68ce1f83c9451179da0d0f451196a4876964c147 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Sun, 25 Apr 2010 19:07:35 +0200 Subject: [PATCH 188/320] linux: - add upstream fixes for ftdi_sio driver from 2.6.34 --- .../linux-2.6.33.2-ftdi_sio_upstream-0.1.diff | 703 ++++++++++++++++++ 1 file changed, 703 insertions(+) create mode 100644 packages/linux/patches/linux-2.6.33.2-ftdi_sio_upstream-0.1.diff diff --git a/packages/linux/patches/linux-2.6.33.2-ftdi_sio_upstream-0.1.diff b/packages/linux/patches/linux-2.6.33.2-ftdi_sio_upstream-0.1.diff new file mode 100644 index 0000000000..4467a044c7 --- /dev/null +++ b/packages/linux/patches/linux-2.6.33.2-ftdi_sio_upstream-0.1.diff @@ -0,0 +1,703 @@ +diff -Naur linux-2.6.33.2/drivers/usb/serial/ftdi_sio.c linux-2.6.33.2.patch/drivers/usb/serial/ftdi_sio.c +--- linux-2.6.33.2/drivers/usb/serial/ftdi_sio.c 2010-04-02 01:02:33.000000000 +0200 ++++ linux-2.6.33.2.patch/drivers/usb/serial/ftdi_sio.c 2010-04-25 18:42:20.184548098 +0200 +@@ -33,12 +33,12 @@ + #include + #include + #include +-#include + #include + #include + #include + #include + #include ++#include + #include + #include + #include +@@ -88,10 +88,10 @@ + + unsigned int latency; /* latency setting in use */ + spinlock_t tx_lock; /* spinlock for transmit state */ +- unsigned long tx_bytes; + unsigned long tx_outstanding_bytes; + unsigned long tx_outstanding_urbs; + unsigned short max_packet_size; ++ struct mutex cfg_lock; /* Avoid mess by parallel calls of config ioctl() and change_speed() */ + }; + + /* struct ftdi_sio_quirk is used by devices requiring special attention. */ +@@ -818,7 +818,7 @@ + .name = "ftdi_sio", + }, + .description = "FTDI USB Serial Device", +- .usb_driver = &ftdi_driver , ++ .usb_driver = &ftdi_driver, + .id_table = id_table_combined, + .num_ports = 1, + .probe = ftdi_sio_probe, +@@ -834,8 +834,8 @@ + .chars_in_buffer = ftdi_chars_in_buffer, + .read_bulk_callback = ftdi_read_bulk_callback, + .write_bulk_callback = ftdi_write_bulk_callback, +- .tiocmget = ftdi_tiocmget, +- .tiocmset = ftdi_tiocmset, ++ .tiocmget = ftdi_tiocmget, ++ .tiocmset = ftdi_tiocmset, + .ioctl = ftdi_ioctl, + .set_termios = ftdi_set_termios, + .break_ctl = ftdi_break_ctl, +@@ -941,7 +941,6 @@ + unsigned int clear) + { + struct ftdi_private *priv = usb_get_serial_port_data(port); +- char *buf; + unsigned urb_value; + int rv; + +@@ -950,10 +949,6 @@ + return 0; /* no change */ + } + +- buf = kmalloc(1, GFP_NOIO); +- if (!buf) +- return -ENOMEM; +- + clear &= ~set; /* 'set' takes precedence over 'clear' */ + urb_value = 0; + if (clear & TIOCM_DTR) +@@ -969,9 +964,7 @@ + FTDI_SIO_SET_MODEM_CTRL_REQUEST, + FTDI_SIO_SET_MODEM_CTRL_REQUEST_TYPE, + urb_value, priv->interface, +- buf, 0, WDR_TIMEOUT); +- +- kfree(buf); ++ NULL, 0, WDR_TIMEOUT); + if (rv < 0) { + dbg("%s Error from MODEM_CTRL urb: DTR %s, RTS %s", + __func__, +@@ -1130,16 +1123,11 @@ + static int change_speed(struct tty_struct *tty, struct usb_serial_port *port) + { + struct ftdi_private *priv = usb_get_serial_port_data(port); +- char *buf; + __u16 urb_value; + __u16 urb_index; + __u32 urb_index_value; + int rv; + +- buf = kmalloc(1, GFP_NOIO); +- if (!buf) +- return -ENOMEM; +- + urb_index_value = get_ftdi_divisor(tty, port); + urb_value = (__u16)urb_index_value; + urb_index = (__u16)(urb_index_value >> 16); +@@ -1152,9 +1140,7 @@ + FTDI_SIO_SET_BAUDRATE_REQUEST, + FTDI_SIO_SET_BAUDRATE_REQUEST_TYPE, + urb_value, urb_index, +- buf, 0, WDR_SHORT_TIMEOUT); +- +- kfree(buf); ++ NULL, 0, WDR_SHORT_TIMEOUT); + return rv; + } + +@@ -1162,8 +1148,7 @@ + { + struct ftdi_private *priv = usb_get_serial_port_data(port); + struct usb_device *udev = port->serial->dev; +- char buf[1]; +- int rv = 0; ++ int rv; + int l = priv->latency; + + if (priv->flags & ASYNC_LOW_LATENCY) +@@ -1176,8 +1161,7 @@ + FTDI_SIO_SET_LATENCY_TIMER_REQUEST, + FTDI_SIO_SET_LATENCY_TIMER_REQUEST_TYPE, + l, priv->interface, +- buf, 0, WDR_TIMEOUT); +- ++ NULL, 0, WDR_TIMEOUT); + if (rv < 0) + dev_err(&port->dev, "Unable to write latency timer: %i\n", rv); + return rv; +@@ -1187,24 +1171,29 @@ + { + struct ftdi_private *priv = usb_get_serial_port_data(port); + struct usb_device *udev = port->serial->dev; +- unsigned short latency = 0; +- int rv = 0; +- ++ unsigned char *buf; ++ int rv; + + dbg("%s", __func__); + ++ buf = kmalloc(1, GFP_KERNEL); ++ if (!buf) ++ return -ENOMEM; ++ + rv = usb_control_msg(udev, + usb_rcvctrlpipe(udev, 0), + FTDI_SIO_GET_LATENCY_TIMER_REQUEST, + FTDI_SIO_GET_LATENCY_TIMER_REQUEST_TYPE, + 0, priv->interface, +- (char *) &latency, 1, WDR_TIMEOUT); +- +- if (rv < 0) { ++ buf, 1, WDR_TIMEOUT); ++ if (rv < 0) + dev_err(&port->dev, "Unable to read latency timer: %i\n", rv); +- return -EIO; +- } +- return latency; ++ else ++ priv->latency = buf[0]; ++ ++ kfree(buf); ++ ++ return rv; + } + + static int get_serial_info(struct usb_serial_port *port, +@@ -1235,7 +1224,7 @@ + if (copy_from_user(&new_serial, newinfo, sizeof(new_serial))) + return -EFAULT; + +- lock_kernel(); ++ mutex_lock(&priv->cfg_lock); + old_priv = *priv; + + /* Do error checking and permission checking */ +@@ -1243,7 +1232,7 @@ + if (!capable(CAP_SYS_ADMIN)) { + if (((new_serial.flags & ~ASYNC_USR_MASK) != + (priv->flags & ~ASYNC_USR_MASK))) { +- unlock_kernel(); ++ mutex_unlock(&priv->cfg_lock); + return -EPERM; + } + priv->flags = ((priv->flags & ~ASYNC_USR_MASK) | +@@ -1254,7 +1243,7 @@ + + if ((new_serial.baud_base != priv->baud_base) && + (new_serial.baud_base < 9600)) { +- unlock_kernel(); ++ mutex_unlock(&priv->cfg_lock); + return -EINVAL; + } + +@@ -1284,11 +1273,11 @@ + (priv->flags & ASYNC_SPD_MASK)) || + (((priv->flags & ASYNC_SPD_MASK) == ASYNC_SPD_CUST) && + (old_priv.custom_divisor != priv->custom_divisor))) { +- unlock_kernel(); + change_speed(tty, port); ++ mutex_unlock(&priv->cfg_lock); + } + else +- unlock_kernel(); ++ mutex_unlock(&priv->cfg_lock); + return 0; + + } /* set_serial_info */ +@@ -1344,20 +1333,20 @@ + __func__); + } + } else if (version < 0x200) { +- /* Old device. Assume its the original SIO. */ ++ /* Old device. Assume it's the original SIO. */ + priv->chip_type = SIO; + priv->baud_base = 12000000 / 16; + priv->write_offset = 1; + } else if (version < 0x400) { +- /* Assume its an FT8U232AM (or FT8U245AM) */ ++ /* Assume it's an FT8U232AM (or FT8U245AM) */ + /* (It might be a BM because of the iSerialNumber bug, + * but it will still work as an AM device.) */ + priv->chip_type = FT8U232AM; + } else if (version < 0x600) { +- /* Assume its an FT232BM (or FT245BM) */ ++ /* Assume it's an FT232BM (or FT245BM) */ + priv->chip_type = FT232BM; + } else { +- /* Assume its an FT232R */ ++ /* Assume it's an FT232R */ + priv->chip_type = FT232RL; + } + dev_info(&udev->dev, "Detected %s\n", ftdi_chip_name[priv->chip_type]); +@@ -1377,7 +1366,7 @@ + struct usb_endpoint_descriptor *ep_desc = &interface->cur_altsetting->endpoint[1].desc; + + unsigned num_endpoints; +- int i = 0; ++ int i; + + num_endpoints = interface->cur_altsetting->desc.bNumEndpoints; + dev_info(&udev->dev, "Number of endpoints %d\n", num_endpoints); +@@ -1429,7 +1418,7 @@ + struct usb_serial_port *port = to_usb_serial_port(dev); + struct ftdi_private *priv = usb_get_serial_port_data(port); + int v = simple_strtoul(valbuf, NULL, 10); +- int rv = 0; ++ int rv; + + priv->latency = v; + rv = write_latency_timer(port); +@@ -1446,9 +1435,8 @@ + struct usb_serial_port *port = to_usb_serial_port(dev); + struct ftdi_private *priv = usb_get_serial_port_data(port); + struct usb_device *udev = port->serial->dev; +- char buf[1]; + int v = simple_strtoul(valbuf, NULL, 10); +- int rv = 0; ++ int rv; + + dbg("%s: setting event char = %i", __func__, v); + +@@ -1457,8 +1445,7 @@ + FTDI_SIO_SET_EVENT_CHAR_REQUEST, + FTDI_SIO_SET_EVENT_CHAR_REQUEST_TYPE, + v, priv->interface, +- buf, 0, WDR_TIMEOUT); +- ++ NULL, 0, WDR_TIMEOUT); + if (rv < 0) { + dbg("Unable to write event character: %i", rv); + return -EIO; +@@ -1557,9 +1544,9 @@ + + kref_init(&priv->kref); + spin_lock_init(&priv->tx_lock); ++ mutex_init(&priv->cfg_lock); + init_waitqueue_head(&priv->delta_msr_wait); +- /* This will push the characters through immediately rather +- than queue a task to deliver them */ ++ + priv->flags = ASYNC_LOW_LATENCY; + + if (quirk && quirk->port_probe) +@@ -1591,7 +1578,8 @@ + + ftdi_determine_type(port); + ftdi_set_max_packet_size(port); +- read_latency_timer(port); ++ if (read_latency_timer(port) < 0) ++ priv->latency = 16; + create_sysfs_attrs(port); + return 0; + } +@@ -1636,8 +1624,6 @@ + { + struct usb_device *udev = serial->dev; + int latency = ndi_latency_timer; +- int rv = 0; +- char buf[1]; + + if (latency == 0) + latency = 1; +@@ -1647,10 +1633,11 @@ + dbg("%s setting NDI device latency to %d", __func__, latency); + dev_info(&udev->dev, "NDI device with a latency value of %d", latency); + +- rv = usb_control_msg(udev, usb_sndctrlpipe(udev, 0), ++ /* FIXME: errors are not returned */ ++ usb_control_msg(udev, usb_sndctrlpipe(udev, 0), + FTDI_SIO_SET_LATENCY_TIMER_REQUEST, + FTDI_SIO_SET_LATENCY_TIMER_REQUEST_TYPE, +- latency, 0, buf, 0, WDR_TIMEOUT); ++ latency, 0, NULL, 0, WDR_TIMEOUT); + return 0; + } + +@@ -1726,7 +1713,7 @@ + urb->transfer_buffer_length, + ftdi_read_bulk_callback, port); + result = usb_submit_urb(urb, mem_flags); +- if (result) ++ if (result && result != -EPERM) + dev_err(&port->dev, + "%s - failed submitting read urb, error %d\n", + __func__, result); +@@ -1738,16 +1725,10 @@ + struct usb_device *dev = port->serial->dev; + struct ftdi_private *priv = usb_get_serial_port_data(port); + unsigned long flags; +- +- int result = 0; +- char buf[1]; /* Needed for the usb_control_msg I think */ ++ int result; + + dbg("%s", __func__); + +- spin_lock_irqsave(&priv->tx_lock, flags); +- priv->tx_bytes = 0; +- spin_unlock_irqrestore(&priv->tx_lock, flags); +- + write_latency_timer(port); + + /* No error checking for this (will get errors later anyway) */ +@@ -1755,7 +1736,7 @@ + usb_control_msg(dev, usb_sndctrlpipe(dev, 0), + FTDI_SIO_RESET_REQUEST, FTDI_SIO_RESET_REQUEST_TYPE, + FTDI_SIO_RESET_SIO, +- priv->interface, buf, 0, WDR_TIMEOUT); ++ priv->interface, NULL, 0, WDR_TIMEOUT); + + /* Termios defaults are set by usb_serial_init. We don't change + port->tty->termios - this would lose speed settings, etc. +@@ -1783,7 +1764,6 @@ + static void ftdi_dtr_rts(struct usb_serial_port *port, int on) + { + struct ftdi_private *priv = usb_get_serial_port_data(port); +- char buf[1]; + + mutex_lock(&port->serial->disc_mutex); + if (!port->serial->disconnected) { +@@ -1792,7 +1772,7 @@ + usb_sndctrlpipe(port->serial->dev, 0), + FTDI_SIO_SET_FLOW_CTRL_REQUEST, + FTDI_SIO_SET_FLOW_CTRL_REQUEST_TYPE, +- 0, priv->interface, buf, 0, ++ 0, priv->interface, NULL, 0, + WDR_TIMEOUT) < 0) { + dev_err(&port->dev, "error from flowcontrol urb\n"); + } +@@ -1853,7 +1833,7 @@ + spin_lock_irqsave(&priv->tx_lock, flags); + if (priv->tx_outstanding_urbs > URB_UPPER_LIMIT) { + spin_unlock_irqrestore(&priv->tx_lock, flags); +- dbg("%s - write limit hit\n", __func__); ++ dbg("%s - write limit hit", __func__); + return 0; + } + priv->tx_outstanding_urbs++; +@@ -1933,7 +1913,6 @@ + } else { + spin_lock_irqsave(&priv->tx_lock, flags); + priv->tx_outstanding_bytes += count; +- priv->tx_bytes += count; + spin_unlock_irqrestore(&priv->tx_lock, flags); + } + +@@ -2160,8 +2139,7 @@ + { + struct usb_serial_port *port = tty->driver_data; + struct ftdi_private *priv = usb_get_serial_port_data(port); +- __u16 urb_value = 0; +- char buf[1]; ++ __u16 urb_value; + + /* break_state = -1 to turn on break, and 0 to turn off break */ + /* see drivers/char/tty_io.c to see it used */ +@@ -2177,7 +2155,7 @@ + FTDI_SIO_SET_DATA_REQUEST, + FTDI_SIO_SET_DATA_REQUEST_TYPE, + urb_value , priv->interface, +- buf, 0, WDR_TIMEOUT) < 0) { ++ NULL, 0, WDR_TIMEOUT) < 0) { + dev_err(&port->dev, "%s FAILED to enable/disable break state " + "(state was %d)\n", __func__, break_state); + } +@@ -2201,7 +2179,6 @@ + struct ktermios *termios = tty->termios; + unsigned int cflag = termios->c_cflag; + __u16 urb_value; /* will hold the new flags */ +- char buf[1]; /* Perhaps I should dynamically alloc this? */ + + /* Added for xon/xoff support */ + unsigned int iflag = termios->c_iflag; +@@ -2252,12 +2229,10 @@ + } + if (cflag & CSIZE) { + switch (cflag & CSIZE) { +- case CS5: urb_value |= 5; dbg("Setting CS5"); break; +- case CS6: urb_value |= 6; dbg("Setting CS6"); break; + case CS7: urb_value |= 7; dbg("Setting CS7"); break; + case CS8: urb_value |= 8; dbg("Setting CS8"); break; + default: +- dev_err(&port->dev, "CSIZE was set but not CS5-CS8\n"); ++ dev_err(&port->dev, "CSIZE was set but not CS7-CS8\n"); + } + } + +@@ -2269,7 +2244,7 @@ + FTDI_SIO_SET_DATA_REQUEST, + FTDI_SIO_SET_DATA_REQUEST_TYPE, + urb_value , priv->interface, +- buf, 0, WDR_SHORT_TIMEOUT) < 0) { ++ NULL, 0, WDR_SHORT_TIMEOUT) < 0) { + dev_err(&port->dev, "%s FAILED to set " + "databits/stopbits/parity\n", __func__); + } +@@ -2281,7 +2256,7 @@ + FTDI_SIO_SET_FLOW_CTRL_REQUEST, + FTDI_SIO_SET_FLOW_CTRL_REQUEST_TYPE, + 0, priv->interface, +- buf, 0, WDR_TIMEOUT) < 0) { ++ NULL, 0, WDR_TIMEOUT) < 0) { + dev_err(&port->dev, + "%s error from disable flowcontrol urb\n", + __func__); +@@ -2290,9 +2265,11 @@ + clear_mctrl(port, TIOCM_DTR | TIOCM_RTS); + } else { + /* set the baudrate determined before */ ++ mutex_lock(&priv->cfg_lock); + if (change_speed(tty, port)) + dev_err(&port->dev, "%s urb failed to set baudrate\n", + __func__); ++ mutex_unlock(&priv->cfg_lock); + /* Ensure RTS and DTR are raised when baudrate changed from 0 */ + if (!old_termios || (old_termios->c_cflag & CBAUD) == B0) + set_mctrl(port, TIOCM_DTR | TIOCM_RTS); +@@ -2307,7 +2284,7 @@ + FTDI_SIO_SET_FLOW_CTRL_REQUEST, + FTDI_SIO_SET_FLOW_CTRL_REQUEST_TYPE, + 0 , (FTDI_SIO_RTS_CTS_HS | priv->interface), +- buf, 0, WDR_TIMEOUT) < 0) { ++ NULL, 0, WDR_TIMEOUT) < 0) { + dev_err(&port->dev, + "urb failed to set to rts/cts flow control\n"); + } +@@ -2339,7 +2316,7 @@ + FTDI_SIO_SET_FLOW_CTRL_REQUEST_TYPE, + urb_value , (FTDI_SIO_XON_XOFF_HS + | priv->interface), +- buf, 0, WDR_TIMEOUT) < 0) { ++ NULL, 0, WDR_TIMEOUT) < 0) { + dev_err(&port->dev, "urb failed to set to " + "xon/xoff flow control\n"); + } +@@ -2353,7 +2330,7 @@ + FTDI_SIO_SET_FLOW_CTRL_REQUEST, + FTDI_SIO_SET_FLOW_CTRL_REQUEST_TYPE, + 0, priv->interface, +- buf, 0, WDR_TIMEOUT) < 0) { ++ NULL, 0, WDR_TIMEOUT) < 0) { + dev_err(&port->dev, + "urb failed to clear flow control\n"); + } +@@ -2367,21 +2344,22 @@ + { + struct usb_serial_port *port = tty->driver_data; + struct ftdi_private *priv = usb_get_serial_port_data(port); +- unsigned char buf[2]; ++ unsigned char *buf; ++ int len; + int ret; + + dbg("%s TIOCMGET", __func__); ++ ++ buf = kmalloc(2, GFP_KERNEL); ++ if (!buf) ++ return -ENOMEM; ++ /* ++ * The 8U232AM returns a two byte value (the SIO a 1 byte value) in ++ * the same format as the data returned from the in point. ++ */ + switch (priv->chip_type) { + case SIO: +- /* Request the status from the device */ +- ret = usb_control_msg(port->serial->dev, +- usb_rcvctrlpipe(port->serial->dev, 0), +- FTDI_SIO_GET_MODEM_STATUS_REQUEST, +- FTDI_SIO_GET_MODEM_STATUS_REQUEST_TYPE, +- 0, 0, +- buf, 1, WDR_TIMEOUT); +- if (ret < 0) +- return ret; ++ len = 1; + break; + case FT8U232AM: + case FT232BM: +@@ -2389,27 +2367,30 @@ + case FT232RL: + case FT2232H: + case FT4232H: +- /* the 8U232AM returns a two byte value (the sio is a 1 byte +- value) - in the same format as the data returned from the in +- point */ +- ret = usb_control_msg(port->serial->dev, +- usb_rcvctrlpipe(port->serial->dev, 0), +- FTDI_SIO_GET_MODEM_STATUS_REQUEST, +- FTDI_SIO_GET_MODEM_STATUS_REQUEST_TYPE, +- 0, priv->interface, +- buf, 2, WDR_TIMEOUT); +- if (ret < 0) +- return ret; ++ len = 2; + break; + default: +- return -EFAULT; ++ ret = -EFAULT; ++ goto out; + } + +- return (buf[0] & FTDI_SIO_DSR_MASK ? TIOCM_DSR : 0) | ++ ret = usb_control_msg(port->serial->dev, ++ usb_rcvctrlpipe(port->serial->dev, 0), ++ FTDI_SIO_GET_MODEM_STATUS_REQUEST, ++ FTDI_SIO_GET_MODEM_STATUS_REQUEST_TYPE, ++ 0, priv->interface, ++ buf, len, WDR_TIMEOUT); ++ if (ret < 0) ++ goto out; ++ ++ ret = (buf[0] & FTDI_SIO_DSR_MASK ? TIOCM_DSR : 0) | + (buf[0] & FTDI_SIO_CTS_MASK ? TIOCM_CTS : 0) | + (buf[0] & FTDI_SIO_RI_MASK ? TIOCM_RI : 0) | + (buf[0] & FTDI_SIO_RLSD_MASK ? TIOCM_CD : 0) | + priv->last_dtr_rts; ++out: ++ kfree(buf); ++ return ret; + } + + static int ftdi_tiocmset(struct tty_struct *tty, struct file *file, +@@ -2514,8 +2495,7 @@ + port->throttled = port->throttle_req = 0; + spin_unlock_irqrestore(&port->lock, flags); + +- /* Resubmit urb if throttled and open. */ +- if (was_throttled && test_bit(ASYNCB_INITIALIZED, &port->port.flags)) ++ if (was_throttled) + ftdi_submit_read_urb(port, GFP_KERNEL); + } + +diff -Naur linux-2.6.33.2/drivers/usb/serial/ftdi_sio.h linux-2.6.33.2.patch/drivers/usb/serial/ftdi_sio.h +--- linux-2.6.33.2/drivers/usb/serial/ftdi_sio.h 2010-04-02 01:02:33.000000000 +0200 ++++ linux-2.6.33.2.patch/drivers/usb/serial/ftdi_sio.h 2010-04-25 18:40:02.713423244 +0200 +@@ -28,13 +28,13 @@ + #define FTDI_SIO_SET_FLOW_CTRL 2 /* Set flow control register */ + #define FTDI_SIO_SET_BAUD_RATE 3 /* Set baud rate */ + #define FTDI_SIO_SET_DATA 4 /* Set the data characteristics of the port */ +-#define FTDI_SIO_GET_MODEM_STATUS 5 /* Retrieve current value of modern status register */ ++#define FTDI_SIO_GET_MODEM_STATUS 5 /* Retrieve current value of modem status register */ + #define FTDI_SIO_SET_EVENT_CHAR 6 /* Set the event character */ + #define FTDI_SIO_SET_ERROR_CHAR 7 /* Set the error character */ + #define FTDI_SIO_SET_LATENCY_TIMER 9 /* Set the latency timer */ + #define FTDI_SIO_GET_LATENCY_TIMER 10 /* Get the latency timer */ + +-/* Interface indicies for FT2232, FT2232H and FT4232H devices*/ ++/* Interface indices for FT2232, FT2232H and FT4232H devices */ + #define INTERFACE_A 1 + #define INTERFACE_B 2 + #define INTERFACE_C 3 +@@ -270,7 +270,7 @@ + * BmRequestType: 0100 0000b + * bRequest: FTDI_SIO_SET_FLOW_CTRL + * wValue: Xoff/Xon +- * wIndex: Protocol/Port - hIndex is protocl / lIndex is port ++ * wIndex: Protocol/Port - hIndex is protocol / lIndex is port + * wLength: 0 + * Data: None + * +diff -Naur linux-2.6.33.2/drivers/usb/serial/ftdi_sio_ids.h linux-2.6.33.2.patch/drivers/usb/serial/ftdi_sio_ids.h +--- linux-2.6.33.2/drivers/usb/serial/ftdi_sio_ids.h 2010-04-02 01:02:33.000000000 +0200 ++++ linux-2.6.33.2.patch/drivers/usb/serial/ftdi_sio_ids.h 2010-04-25 18:40:09.930546335 +0200 +@@ -22,7 +22,7 @@ + #define FTDI_8U232AM_ALT_PID 0x6006 /* FTDI's alternate PID for above */ + #define FTDI_8U2232C_PID 0x6010 /* Dual channel device */ + #define FTDI_4232H_PID 0x6011 /* Quad channel hi-speed device */ +-#define FTDI_SIO_PID 0x8372 /* Product Id SIO application of 8U100AX */ ++#define FTDI_SIO_PID 0x8372 /* Product Id SIO application of 8U100AX */ + #define FTDI_232RL_PID 0xFBFA /* Product ID for FT232RL */ + + +@@ -49,7 +49,7 @@ + #define LMI_LM3S_DEVEL_BOARD_PID 0xbcd8 + #define LMI_LM3S_EVAL_BOARD_PID 0xbcd9 + +-#define FTDI_TURTELIZER_PID 0xBDC8 /* JTAG/RS-232 adapter by egnite GmBH */ ++#define FTDI_TURTELIZER_PID 0xBDC8 /* JTAG/RS-232 adapter by egnite GmbH */ + + /* OpenDCC (www.opendcc.de) product id */ + #define FTDI_OPENDCC_PID 0xBFD8 +@@ -185,7 +185,7 @@ + #define FTDI_ELV_TFD128_PID 0xE0EC /* ELV Temperatur-Feuchte-Datenlogger TFD 128 */ + #define FTDI_ELV_FM3RX_PID 0xE0ED /* ELV Messwertuebertragung FM3 RX */ + #define FTDI_ELV_WS777_PID 0xE0EE /* Conrad WS 777 */ +-#define FTDI_ELV_EM1010PC_PID 0xE0EF /* Engery monitor EM 1010 PC */ ++#define FTDI_ELV_EM1010PC_PID 0xE0EF /* Energy monitor EM 1010 PC */ + #define FTDI_ELV_CSI8_PID 0xE0F0 /* Computer-Schalt-Interface (CSI 8) */ + #define FTDI_ELV_EM1000DL_PID 0xE0F1 /* PC-Datenlogger fuer Energiemonitor (EM 1000 DL) */ + #define FTDI_ELV_PCK100_PID 0xE0F2 /* PC-Kabeltester (PCK 100) */ +@@ -212,8 +212,8 @@ + * drivers, or possibly the Comedi drivers in some cases. */ + #define FTDI_ELV_CLI7000_PID 0xFB59 /* Computer-Light-Interface (CLI 7000) */ + #define FTDI_ELV_PPS7330_PID 0xFB5C /* Processor-Power-Supply (PPS 7330) */ +-#define FTDI_ELV_TFM100_PID 0xFB5D /* Temperartur-Feuchte Messgeraet (TFM 100) */ +-#define FTDI_ELV_UDF77_PID 0xFB5E /* USB DCF Funkurh (UDF 77) */ ++#define FTDI_ELV_TFM100_PID 0xFB5D /* Temperatur-Feuchte-Messgeraet (TFM 100) */ ++#define FTDI_ELV_UDF77_PID 0xFB5E /* USB DCF Funkuhr (UDF 77) */ + #define FTDI_ELV_UIO88_PID 0xFB5F /* USB-I/O Interface (UIO 88) */ + + /* +@@ -320,7 +320,7 @@ + + /* + * 4N-GALAXY.DE PIDs for CAN-USB, USB-RS232, USB-RS422, USB-RS485, +- * USB-TTY activ, USB-TTY passiv. Some PIDs are used by several devices ++ * USB-TTY aktiv, USB-TTY passiv. Some PIDs are used by several devices + * and I'm not entirely sure which are used by which. + */ + #define FTDI_4N_GALAXY_DE_1_PID 0xF3C0 +@@ -330,10 +330,10 @@ + * Linx Technologies product ids + */ + #define LINX_SDMUSBQSS_PID 0xF448 /* Linx SDM-USB-QS-S */ +-#define LINX_MASTERDEVEL2_PID 0xF449 /* Linx Master Development 2.0 */ +-#define LINX_FUTURE_0_PID 0xF44A /* Linx future device */ +-#define LINX_FUTURE_1_PID 0xF44B /* Linx future device */ +-#define LINX_FUTURE_2_PID 0xF44C /* Linx future device */ ++#define LINX_MASTERDEVEL2_PID 0xF449 /* Linx Master Development 2.0 */ ++#define LINX_FUTURE_0_PID 0xF44A /* Linx future device */ ++#define LINX_FUTURE_1_PID 0xF44B /* Linx future device */ ++#define LINX_FUTURE_2_PID 0xF44C /* Linx future device */ + + /* + * Oceanic product ids +@@ -508,6 +508,20 @@ + #define CONTEC_COM1USBH_PID 0x8311 /* COM-1(USB)H */ + + /* ++ * Contec products (http://www.contec.com) ++ * Submitted by Daniel Sangorrin ++ */ ++#define CONTEC_VID 0x06CE /* Vendor ID */ ++#define CONTEC_COM1USBH_PID 0x8311 /* COM-1(USB)H */ ++ ++/* ++ * Contec products (http://www.contec.com) ++ * Submitted by Daniel Sangorrin ++ */ ++#define CONTEC_VID 0x06CE /* Vendor ID */ ++#define CONTEC_COM1USBH_PID 0x8311 /* COM-1(USB)H */ ++ ++/* + * Definitions for B&B Electronics products. + */ + #define BANDB_VID 0x0856 /* B&B Electronics Vendor ID */ +@@ -656,7 +670,7 @@ + #define FALCOM_TWIST_PID 0x0001 /* Falcom Twist USB GPRS modem */ + #define FALCOM_SAMBA_PID 0x0005 /* Falcom Samba USB GPRS modem */ + +-/* Larsen and Brusgaard AltiTrack/USBtrack */ ++/* Larsen and Brusgaard AltiTrack/USBtrack */ + #define LARSENBRUSGAARD_VID 0x0FD8 + #define LB_ALTITRACK_PID 0x0001 + +@@ -985,7 +999,7 @@ + #define ALTI2_N3_PID 0x6001 /* Neptune 3 */ + + /* +- * Dresden Elektronic Sensor Terminal Board ++ * Dresden Elektronik Sensor Terminal Board + */ + #define DE_VID 0x1cf1 /* Vendor ID */ + #define STB_PID 0x0001 /* Sensor Terminal Board */ From dd706d38d566bc579ea8658c09ad5188f87f31f4 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Sun, 25 Apr 2010 19:08:07 +0200 Subject: [PATCH 189/320] busybox: - build usleep applet --- packages/sysutils/busybox/config/busybox.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/sysutils/busybox/config/busybox.conf b/packages/sysutils/busybox/config/busybox.conf index a64a5a7f81..55d1bd1358 100644 --- a/packages/sysutils/busybox/config/busybox.conf +++ b/packages/sysutils/busybox/config/busybox.conf @@ -253,7 +253,7 @@ CONFIG_UNAME=y # CONFIG_UNEXPAND is not set # CONFIG_FEATURE_UNEXPAND_LONG_OPTIONS is not set # CONFIG_UNIQ is not set -# CONFIG_USLEEP is not set +CONFIG_USLEEP=y # CONFIG_UUDECODE is not set # CONFIG_UUENCODE is not set CONFIG_WC=y From 53ab2743f687e088f3aac6224f166ac5ca5d396c Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Sun, 25 Apr 2010 19:08:23 +0200 Subject: [PATCH 190/320] busybox-initramfs: - build usleep applet --- .../sysutils/busybox-initramfs/config/busybox-initramfs.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/sysutils/busybox-initramfs/config/busybox-initramfs.conf b/packages/sysutils/busybox-initramfs/config/busybox-initramfs.conf index 97cb999e7f..c22aca4a05 100644 --- a/packages/sysutils/busybox-initramfs/config/busybox-initramfs.conf +++ b/packages/sysutils/busybox-initramfs/config/busybox-initramfs.conf @@ -253,7 +253,7 @@ CONFIG_FEATURE_TEST_64=y # CONFIG_UNEXPAND is not set # CONFIG_FEATURE_UNEXPAND_LONG_OPTIONS is not set # CONFIG_UNIQ is not set -# CONFIG_USLEEP is not set +CONFIG_USLEEP=y # CONFIG_UUDECODE is not set # CONFIG_UUENCODE is not set # CONFIG_WC is not set From 60de910d273cfed956e5e24ebd49bd19650f4a1d Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Sun, 25 Apr 2010 19:08:51 +0200 Subject: [PATCH 191/320] busybox-initramfs: - use usleep instead sleep --- packages/sysutils/busybox-initramfs/scripts/init | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/sysutils/busybox-initramfs/scripts/init b/packages/sysutils/busybox-initramfs/scripts/init index 52d7dbd17b..8841f5f52f 100755 --- a/packages/sysutils/busybox-initramfs/scripts/init +++ b/packages/sysutils/busybox-initramfs/scripts/init @@ -56,7 +56,7 @@ /bin/busybox ionice -c 1 -n 0 \ /bin/busybox mount -o $3 $1 $2 > /dev/null 2>&1 [ $? -eq 0 ] && ERR_ENV=0 && break - sleep 1 + /bin/busybox usleep 200000 done [ $ERR_ENV -ne 0 ] && error "INIT_4" "Could not mount $1" && debug_shell } From 7eb68d83823f13ddfb477216851d4fff49c0a105 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Sun, 25 Apr 2010 21:59:05 +0200 Subject: [PATCH 192/320] busybox-initramfs: - change usleep to 1 sec. --- packages/sysutils/busybox-initramfs/scripts/init | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/sysutils/busybox-initramfs/scripts/init b/packages/sysutils/busybox-initramfs/scripts/init index 8841f5f52f..e54c56d4aa 100755 --- a/packages/sysutils/busybox-initramfs/scripts/init +++ b/packages/sysutils/busybox-initramfs/scripts/init @@ -56,7 +56,7 @@ /bin/busybox ionice -c 1 -n 0 \ /bin/busybox mount -o $3 $1 $2 > /dev/null 2>&1 [ $? -eq 0 ] && ERR_ENV=0 && break - /bin/busybox usleep 200000 + /bin/busybox usleep 1000000 done [ $ERR_ENV -ne 0 ] && error "INIT_4" "Could not mount $1" && debug_shell } From 9c373610a644b18790b48001b8eff7c118f6c3a8 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Mon, 26 Apr 2010 00:08:33 +0200 Subject: [PATCH 193/320] xbmc: - add patch for udisks and upower support (goes to upstream) --- ...bmc-add_udisks_and_upower_support-0.1.diff | 734 ++++++++++++++++++ 1 file changed, 734 insertions(+) create mode 100644 packages/mediacenter/xbmc/patches/404-xbmc-add_udisks_and_upower_support-0.1.diff diff --git a/packages/mediacenter/xbmc/patches/404-xbmc-add_udisks_and_upower_support-0.1.diff b/packages/mediacenter/xbmc/patches/404-xbmc-add_udisks_and_upower_support-0.1.diff new file mode 100644 index 0000000000..b13b23d56d --- /dev/null +++ b/packages/mediacenter/xbmc/patches/404-xbmc-add_udisks_and_upower_support-0.1.diff @@ -0,0 +1,734 @@ +diff -Naur xbmc-29490/xbmc/linux/ConsoleUPowerSyscall.cpp xbmc-29490.patch/xbmc/linux/ConsoleUPowerSyscall.cpp +--- xbmc-29490/xbmc/linux/ConsoleUPowerSyscall.cpp 1970-01-01 01:00:00.000000000 +0100 ++++ xbmc-29490.patch/xbmc/linux/ConsoleUPowerSyscall.cpp 2010-04-25 23:12:52.124485047 +0200 +@@ -0,0 +1,143 @@ ++/* ++ * Copyright (C) 2005-2009 Team XBMC ++ * http://www.xbmc.org ++ * ++ * This Program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation; either version 2, or (at your option) ++ * any later version. ++ * ++ * This Program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with XBMC; see the file COPYING. If not, write to ++ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. ++ * http://www.gnu.org/copyleft/gpl.html ++ * ++ */ ++ ++#include "system.h" ++#include "ConsoleUPowerSyscall.h" ++#include "utils/log.h" ++ ++#ifdef HAS_DBUS ++#include "Application.h" ++#include "LocalizeStrings.h" ++#include "DBusUtil.h" ++ ++CConsoleUPowerSyscall::CConsoleUPowerSyscall() ++{ ++ m_CanPowerdown = ConsoleKitMethodCall("CanStop"); ++ ++ // If "the name org.freedesktop.UPower was not provided by any .service files", ++ // GetVariant() would return NULL, and asBoolean() would crash. ++ CVariant canSuspend = CDBusUtil::GetVariant("org.freedesktop.UPower", "/org/freedesktop/UPower", "org.freedesktop.UPower", "can_suspend"); ++ ++ if ( !canSuspend.isNull() ) ++ m_CanSuspend = canSuspend.asBoolean(); ++ else ++ m_CanSuspend = false; ++ ++ CVariant canHibernate = CDBusUtil::GetVariant("org.freedesktop.UPower", "/org/freedesktop/UPower", "org.freedesktop.UPower", "can_hibernate"); ++ ++ if ( !canHibernate.isNull() ) ++ m_CanHibernate = canHibernate.asBoolean(); ++ else ++ m_CanHibernate = false; ++ ++ m_CanReboot = ConsoleKitMethodCall("CanRestart"); ++} ++ ++bool CConsoleUPowerSyscall::Powerdown() ++{ ++ CDBusMessage message("org.freedesktop.ConsoleKit", "/org/freedesktop/ConsoleKit/Manager", "org.freedesktop.ConsoleKit.Manager", "Stop"); ++ return message.SendSystem() != NULL; ++} ++ ++bool CConsoleUPowerSyscall::Suspend() ++{ ++ CDBusMessage message("org.freedesktop.UPower", "/org/freedesktop/UPower", "org.freedesktop.UPower", "Suspend"); ++ return message.SendSystem() != NULL; ++} ++ ++bool CConsoleUPowerSyscall::Hibernate() ++{ ++ CDBusMessage message("org.freedesktop.UPower", "/org/freedesktop/UPower", "org.freedesktop.UPower", "Hibernate"); ++ return message.SendSystem() != NULL; ++} ++ ++bool CConsoleUPowerSyscall::Reboot() ++{ ++ CDBusMessage message("org.freedesktop.ConsoleKit", "/org/freedesktop/ConsoleKit/Manager", "org.freedesktop.ConsoleKit.Manager", "Restart"); ++ return message.SendSystem() != NULL; ++} ++ ++bool CConsoleUPowerSyscall::CanPowerdown() ++{ ++ return m_CanPowerdown; ++} ++bool CConsoleUPowerSyscall::CanSuspend() ++{ ++ return m_CanSuspend; ++} ++bool CConsoleUPowerSyscall::CanHibernate() ++{ ++ return m_CanHibernate; ++} ++bool CConsoleUPowerSyscall::CanReboot() ++{ ++ return m_CanReboot; ++} ++ ++bool CConsoleUPowerSyscall::HasDeviceConsoleKit() ++{ ++ bool hasConsoleKitManager = false; ++ CDBusMessage consoleKitMessage("org.freedesktop.ConsoleKit", "/org/freedesktop/ConsoleKit/Manager", "org.freedesktop.ConsoleKit.Manager", "CanStop"); ++ ++ DBusError error; ++ dbus_error_init (&error); ++ DBusConnection *con = dbus_bus_get(DBUS_BUS_SYSTEM, &error); ++ ++ consoleKitMessage.Send(con, &error); ++ ++ if (!dbus_error_is_set(&error)) ++ hasConsoleKitManager = true; ++ else ++ CLog::Log(LOGDEBUG, "ConsoleKit.Manager: %s - %s", error.name, error.message); ++ ++ dbus_error_free (&error); ++ ++ bool hasUPower = false; ++ CDBusMessage deviceKitMessage("org.freedesktop.UDisks", "/org/freedesktop/UDisks", "org.freedesktop.UDisks", "EnumerateDevices"); ++ ++ deviceKitMessage.Send(con, &error); ++ ++ if (!dbus_error_is_set(&error)) ++ hasUPower = true; ++ else ++ CLog::Log(LOGDEBUG, "UPower: %s - %s", error.name, error.message); ++ ++ dbus_error_free (&error); ++ dbus_connection_unref(con); ++ ++ return hasUPower && hasConsoleKitManager; ++} ++ ++bool CConsoleUPowerSyscall::ConsoleKitMethodCall(const char *method) ++{ ++ CDBusMessage message("org.freedesktop.ConsoleKit", "/org/freedesktop/ConsoleKit/Manager", "org.freedesktop.ConsoleKit.Manager", method); ++ DBusMessage *reply = message.SendSystem(); ++ if (reply) ++ { ++ dbus_bool_t boolean = FALSE; ++ ++ if (dbus_message_get_args (reply, NULL, DBUS_TYPE_BOOLEAN, &boolean, DBUS_TYPE_INVALID)) ++ return boolean; ++ } ++ ++ return false; ++} ++#endif +diff -Naur xbmc-29490/xbmc/linux/ConsoleUPowerSyscall.h xbmc-29490.patch/xbmc/linux/ConsoleUPowerSyscall.h +--- xbmc-29490/xbmc/linux/ConsoleUPowerSyscall.h 1970-01-01 01:00:00.000000000 +0100 ++++ xbmc-29490.patch/xbmc/linux/ConsoleUPowerSyscall.h 2010-04-25 23:12:52.125484748 +0200 +@@ -0,0 +1,50 @@ ++/* ++ * Copyright (C) 2005-2009 Team XBMC ++ * http://www.xbmc.org ++ * ++ * This Program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation; either version 2, or (at your option) ++ * any later version. ++ * ++ * This Program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with XBMC; see the file COPYING. If not, write to ++ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. ++ * http://www.gnu.org/copyleft/gpl.html ++ * ++ */ ++ ++#ifdef HAS_DBUS ++#include "IPowerSyscall.h" ++ ++class CConsoleUPowerSyscall : public IPowerSyscall ++{ ++public: ++ CConsoleUPowerSyscall(); ++ virtual ~CConsoleUPowerSyscall() { } ++ ++ virtual bool Powerdown(); ++ virtual bool Suspend(); ++ virtual bool Hibernate(); ++ virtual bool Reboot(); ++ ++ virtual bool CanPowerdown(); ++ virtual bool CanSuspend(); ++ virtual bool CanHibernate(); ++ virtual bool CanReboot(); ++ ++ static bool HasDeviceConsoleKit(); ++private: ++ static bool ConsoleKitMethodCall(const char *method); ++ ++ bool m_CanPowerdown; ++ bool m_CanSuspend; ++ bool m_CanHibernate; ++ bool m_CanReboot; ++}; ++#endif +diff -Naur xbmc-29490/xbmc/linux/LinuxStorageProvider.h xbmc-29490.patch/xbmc/linux/LinuxStorageProvider.h +--- xbmc-29490/xbmc/linux/LinuxStorageProvider.h 2010-04-24 22:43:12.000000000 +0200 ++++ xbmc-29490.patch/xbmc/linux/LinuxStorageProvider.h 2010-04-25 23:12:52.126484868 +0200 +@@ -22,6 +22,7 @@ + #include "IStorageProvider.h" + #include "HALProvider.h" + #include "DeviceKitDisksProvider.h" ++#include "UDisksProvider.h" + #include "PosixMountProvider.h" + + class CLinuxStorageProvider : public IStorageProvider +@@ -32,7 +33,9 @@ + m_instance = NULL; + + #ifdef HAS_DBUS +- if (CDeviceKitDisksProvider::HasDeviceKitDisks()) ++ if (CUDisksProvider::HasUDisks() ) { ++ m_instance = new CUDisksProvider(); ++ } else if (CDeviceKitDisksProvider::HasDeviceKitDisks()) + m_instance = new CDeviceKitDisksProvider(); + #endif + #ifdef HAS_HAL +diff -Naur xbmc-29490/xbmc/linux/Makefile.in xbmc-29490.patch/xbmc/linux/Makefile.in +--- xbmc-29490/xbmc/linux/Makefile.in 2010-04-24 22:43:12.000000000 +0200 ++++ xbmc-29490.patch/xbmc/linux/Makefile.in 2010-04-25 23:12:52.127484639 +0200 +@@ -7,7 +7,7 @@ + + CXXFLAGS+=-fPIC #-DHAS_SDL + +-SRCS=ConvUtils.cpp XEventUtils.cpp XFileUtils.cpp XHandle.cpp XSyncUtils.cpp XTimeUtils.cpp XMemUtils.cpp XThreadUtils.cpp NetworkLinux.cpp LinuxResourceCounter.cpp LinuxTimezone.cpp XRandR.cpp XCriticalSection.cpp XLCDproc.cpp HALManager.cpp HALPowerSyscall.cpp ConsoleDeviceKitPowerSyscall.cpp DBusUtil.cpp DBusMessage.cpp ZeroconfAvahi.cpp ZeroconfBrowserAvahi.cpp HALProvider.cpp PosixMountProvider.cpp DeviceKitDisksProvider.cpp ++SRCS=ConvUtils.cpp XEventUtils.cpp XFileUtils.cpp XHandle.cpp XSyncUtils.cpp XTimeUtils.cpp XMemUtils.cpp XThreadUtils.cpp NetworkLinux.cpp LinuxResourceCounter.cpp LinuxTimezone.cpp XRandR.cpp XCriticalSection.cpp XLCDproc.cpp HALManager.cpp HALPowerSyscall.cpp ConsoleDeviceKitPowerSyscall.cpp DBusUtil.cpp DBusMessage.cpp ZeroconfAvahi.cpp ZeroconfBrowserAvahi.cpp HALProvider.cpp PosixMountProvider.cpp DeviceKitDisksProvider.cpp UDisksProvider.cpp ConsoleUPowerSyscall.cpp + + LIB=linux.a + +diff -Naur xbmc-29490/xbmc/linux/UDisksProvider.cpp xbmc-29490.patch/xbmc/linux/UDisksProvider.cpp +--- xbmc-29490/xbmc/linux/UDisksProvider.cpp 1970-01-01 01:00:00.000000000 +0100 ++++ xbmc-29490.patch/xbmc/linux/UDisksProvider.cpp 2010-04-25 23:12:52.129484321 +0200 +@@ -0,0 +1,385 @@ ++/* ++ * Copyright (C) 2005-2009 Team XBMC ++ * http://www.xbmc.org ++ * ++ * This Program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation; either version 2, or (at your option) ++ * any later version. ++ * ++ * This Program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with XBMC; see the file COPYING. If not, write to ++ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. ++ * http://www.gnu.org/copyleft/gpl.html ++ * ++ */ ++#include "UDisksProvider.h" ++#ifdef HAS_DBUS ++#include "Util.h" ++#include "AdvancedSettings.h" ++#include "LocalizeStrings.h" ++#include "log.h" ++ ++CUDiskDevice::CUDiskDevice(const char *DeviceKitUDI) ++{ ++ m_DeviceKitUDI = DeviceKitUDI; ++ m_UDI = ""; ++ m_MountPath = ""; ++ m_FileSystem = ""; ++ m_isMounted = false; ++ m_isMountedByUs = false; ++ m_isRemovable = false; ++ m_isPartition = false; ++ m_isFileSystem = false; ++ m_isSystemInternal = false; ++ m_PartitionSizeGiB = 0.0f; ++ Update(); ++} ++ ++void CUDiskDevice::Update() ++{ ++ CStdString str = CDBusUtil::GetVariant("org.freedesktop.UDisks", m_DeviceKitUDI.c_str(), "org.freedesktop.UDisks.Device", "IdUsage").asString(); ++ m_isFileSystem = str.Equals("filesystem"); ++ if (m_isFileSystem) ++ { ++ CVariant properties = CDBusUtil::GetAll("org.freedesktop.UDisks", m_DeviceKitUDI.c_str(), "org.freedesktop.UDisks.Device"); ++ ++ m_UDI = properties["IdUuid"].asString(); ++ m_Label = properties["IdLabel"].asString(); ++ m_FileSystem = properties["IdType"].asString(); ++ if (properties["DeviceMountPaths"].size() > 0) ++ m_MountPath = properties["DeviceMountPaths"][0].asString(); ++ m_isMounted = properties["DeviceIsMounted"].asBoolean(); ++ ++ m_PartitionSizeGiB = properties["PartitionSize"].asUnsignedInteger() / 1024.0 / 1024.0 / 1024.0; ++ m_isPartition = properties["DeviceIsPartition"].asBoolean(); ++ m_isSystemInternal = properties["DeviceIsSystemInternal"].asBoolean(); ++ if (m_isPartition) ++ { ++ CVariant isRemovable = CDBusUtil::GetVariant("org.freedesktop.UDisks", properties["PartitionSlave"].asString(), "org.freedesktop.UDisks.Device", "DeviceIsRemovable"); ++ ++ if ( !isRemovable.isNull() ) ++ m_isRemovable = isRemovable.asBoolean(); ++ else ++ m_isRemovable = false; ++ } ++ else ++ m_isRemovable = properties["DeviceIsRemovable"].asBoolean(); ++ } ++} ++ ++bool CUDiskDevice::Mount() ++{ ++ if (!m_isMounted && !m_isSystemInternal && m_isFileSystem) ++ { ++ CLog::Log(LOGDEBUG, "UDisks: Mounting %s", m_DeviceKitUDI.c_str()); ++ CDBusMessage message("org.freedesktop.UDisks", m_DeviceKitUDI.c_str(), "org.freedesktop.UDisks.Device", "FilesystemMount"); ++ message.AppendArgument(""); ++ const char *array[] = {}; ++ message.AppendArgument(array, 0); ++ ++ DBusMessage *reply = message.SendSystem(); ++ if (reply) ++ { ++ char *mountPoint; ++ if (dbus_message_get_args (reply, NULL, DBUS_TYPE_STRING, &mountPoint, DBUS_TYPE_INVALID)) ++ { ++ m_MountPath = mountPoint; ++ CLog::Log(LOGDEBUG, "UDisks: Sucessfully mounted %s on %s", m_DeviceKitUDI.c_str(), mountPoint); ++ m_isMountedByUs = m_isMounted = true; ++ } ++ } ++ ++ return m_isMounted; ++ } ++ else ++ CLog::Log(LOGDEBUG, "UDisks: Is not able to mount %s", toString().c_str()); ++ ++ return false; ++} ++ ++bool CUDiskDevice::UnMount() ++{ ++ if (m_isMounted && !m_isSystemInternal && m_isFileSystem) ++ { ++ CDBusMessage message("org.freedesktop.UDisks", m_DeviceKitUDI.c_str(), "org.freedesktop.UDisks.Device", "FilesystemUnmount"); ++ ++ const char *array[1]; ++ message.AppendArgument(array, 0); ++ ++ DBusMessage *reply = message.SendSystem(); ++ if (reply) ++ m_isMountedByUs = m_isMounted = false; ++ ++ return !m_isMounted; ++ } ++ else ++ CLog::Log(LOGDEBUG, "UDisks: Is not able to unmount %s", toString().c_str()); ++ ++ return false; ++} ++ ++CMediaSource CUDiskDevice::ToMediaShare() ++{ ++ CMediaSource source; ++ source.strPath = m_MountPath; ++ if (m_Label.empty()) ++ source.strName.Format("%.1f GB %s", m_PartitionSizeGiB, g_localizeStrings.Get(155).c_str()); ++ else ++ source.strName = m_Label; ++ source.m_iDriveType = !m_isSystemInternal ? CMediaSource::SOURCE_TYPE_REMOVABLE : CMediaSource::SOURCE_TYPE_LOCAL; ++ source.m_ignore = true; ++ return source; ++} ++ ++bool CUDiskDevice::IsApproved() ++{ ++ return (m_isFileSystem && m_isMounted && m_UDI.length() > 0 && (m_FileSystem.length() > 0 && !m_FileSystem.Equals("swap")) && !m_MountPath.Equals("/")); ++} ++ ++#define BOOL2SZ(b) ((b) ? "true" : "false") ++ ++CStdString CUDiskDevice::toString() ++{ ++ CStdString str; ++ str.Format("DeviceUDI %s: IsFileSystem %s HasFileSystem %s " ++ "IsSystemInternal %s IsMounted %s IsRemovable %s IsPartition %s", ++ m_DeviceKitUDI.c_str(), BOOL2SZ(m_isFileSystem), m_FileSystem, ++ BOOL2SZ(m_isSystemInternal), BOOL2SZ(m_isMounted), ++ BOOL2SZ(m_isRemovable), BOOL2SZ(m_isPartition)); ++ ++ return str; ++} ++ ++CUDisksProvider::CUDisksProvider() ++{ ++ dbus_error_init (&m_error); ++ m_connection = dbus_bus_get(DBUS_BUS_SYSTEM, &m_error); ++ ++ dbus_bus_add_match(m_connection, "type='signal',interface='org.freedesktop.UDisks'", &m_error); ++ dbus_connection_flush(m_connection); ++ if (dbus_error_is_set(&m_error)) ++ { ++ CLog::Log(LOGERROR, "UDisks: Failed to attach to signal %s", m_error.message); ++ dbus_connection_unref(m_connection); ++ m_connection = NULL; ++ } ++} ++ ++CUDisksProvider::~CUDisksProvider() ++{ ++ DeviceMap::iterator itr; ++ ++ for (itr = m_AvailableDevices.begin(); itr != m_AvailableDevices.end(); ++itr) ++ delete m_AvailableDevices[itr->first]; ++ ++ m_AvailableDevices.clear(); ++ ++ if (m_connection) ++ { ++ dbus_connection_unref(m_connection); ++ m_connection = NULL; ++ } ++ ++ dbus_error_free (&m_error); ++} ++ ++void CUDisksProvider::Initialize() ++{ ++ CLog::Log(LOGDEBUG, "Selected UDisks as storage provider"); ++ m_DaemonVersion = atoi(CDBusUtil::GetVariant("org.freedesktop.UDisks", "/org/freedesktop/UDisks", "org.freedesktop.UDisks", "DaemonVersion").asString()); ++ CLog::Log(LOGDEBUG, "UDisks: DaemonVersion %i", m_DaemonVersion); ++ ++ CLog::Log(LOGDEBUG, "UDisks: Querying available devices"); ++ std::vector devices = EnumerateDisks(); ++ for (unsigned int i = 0; i < devices.size(); i++) ++ DeviceAdded(devices[i].c_str(), NULL); ++} ++ ++bool CUDisksProvider::Eject(CStdString mountpath) ++{ ++ DeviceMap::iterator itr; ++ CStdString path(mountpath); ++ CUtil::RemoveSlashAtEnd(path); ++ ++ for (itr = m_AvailableDevices.begin(); itr != m_AvailableDevices.end(); ++itr) ++ { ++ CUDiskDevice *device = itr->second; ++ if (device->m_MountPath.Equals(path)) ++ return device->UnMount(); ++ } ++ ++ return false; ++} ++ ++std::vector CUDisksProvider::GetDiskUsage() ++{ ++ std::vector devices; ++ DeviceMap::iterator itr; ++ ++ for(itr = m_AvailableDevices.begin(); itr != m_AvailableDevices.end(); ++itr) ++ { ++ CUDiskDevice *device = itr->second; ++ if (device->IsApproved()) ++ { ++ CStdString str; ++ str.Format("%s %.1f GiB", device->m_MountPath.c_str(), device->m_PartitionSizeGiB); ++ devices.push_back(str); ++ } ++ } ++ ++ return devices; ++} ++ ++bool CUDisksProvider::PumpDriveChangeEvents(IStorageEventsCallback *callback) ++{ ++ bool result = false; ++ if (m_connection) ++ { ++ dbus_connection_read_write(m_connection, 0); ++ DBusMessage *msg = dbus_connection_pop_message(m_connection); ++ ++ if (msg) ++ { ++ char *object; ++ if (dbus_message_get_args (msg, NULL, DBUS_TYPE_OBJECT_PATH, &object, DBUS_TYPE_INVALID)) ++ { ++ result = true; ++ if (dbus_message_is_signal(msg, "org.freedesktop.UDisks", "DeviceAdded")) ++ DeviceAdded(object, callback); ++ else if (dbus_message_is_signal(msg, "org.freedesktop.UDisks", "DeviceRemoved")) ++ DeviceRemoved(object, callback); ++ else if (dbus_message_is_signal(msg, "org.freedesktop.UDisks", "DeviceChanged")) ++ DeviceChanged(object, callback); ++ } ++ dbus_message_unref(msg); ++ } ++ } ++ return result; ++} ++ ++bool CUDisksProvider::HasUDisks() ++{ ++ bool hasUDisks = false; ++ CDBusMessage message("org.freedesktop.UDisks", "/org/freedesktop/UDisks", "org.freedesktop.UDisks", "EnumerateDevices"); ++ ++ DBusError error; ++ dbus_error_init (&error); ++ DBusConnection *con = dbus_bus_get(DBUS_BUS_SYSTEM, &error); ++ ++ message.Send(con, &error); ++ ++ if (!dbus_error_is_set(&error)) ++ hasUDisks = true; ++ else ++ CLog::Log(LOGDEBUG, "UDisks: %s - %s", error.name, error.message); ++ ++ dbus_error_free (&error); ++ dbus_connection_unref(con); ++ ++ return hasUDisks; ++} ++ ++void CUDisksProvider::DeviceAdded(const char *object, IStorageEventsCallback *callback) ++{ ++ CLog::Log(LOGDEBUG, "UDisks: DeviceAdded (%s)", object); ++ ++ if (m_AvailableDevices[object]) ++ { ++ CLog::Log(LOGWARNING, "UDisks: Inconsistency found! DeviceAdded on an indexed disk"); ++ delete m_AvailableDevices[object]; ++ } ++ ++ CUDiskDevice *device = NULL; ++ device = new CUDiskDevice(object); ++ m_AvailableDevices[object] = device; ++ ++ if (g_advancedSettings.m_handleMounting) ++ device->Mount(); ++ ++ CLog::Log(LOGDEBUG, "UDisks: DeviceAdded - %s", device->toString().c_str()); ++ if (device->m_isMounted && device->IsApproved()) ++ { ++ CLog::Log(LOGNOTICE, "UDisks: Added %s", device->m_MountPath.c_str()); ++ if (callback) ++ callback->OnStorageAdded(device->m_Label, device->m_MountPath); ++ } ++} ++ ++void CUDisksProvider::DeviceRemoved(const char *object, IStorageEventsCallback *callback) ++{ ++ CLog::Log(LOGDEBUG, "UDisks: DeviceRemoved (%s)", object); ++ ++ CUDiskDevice *device = m_AvailableDevices[object]; ++ if (device) ++ { ++ if (device->m_isMounted && callback) ++ callback->OnStorageUnsafelyRemoved(device->m_Label); ++ ++ delete m_AvailableDevices[object]; ++ m_AvailableDevices.erase(object); ++ } ++} ++ ++void CUDisksProvider::DeviceChanged(const char *object, IStorageEventsCallback *callback) ++{ ++ CLog::Log(LOGDEBUG, "UDisks: DeviceChanged (%s)", object); ++ ++ CUDiskDevice *device = m_AvailableDevices[object]; ++ if (device == NULL) ++ { ++ CLog::Log(LOGWARNING, "UDisks: Inconsistency found! DeviceChanged on an unindexed disk"); ++ DeviceAdded(object, callback); ++ } ++ else ++ { ++ bool mounted = device->m_isMounted; ++ device->Update(); ++ if (!mounted && device->m_isMounted && callback) ++ callback->OnStorageAdded(device->m_MountPath, device->m_Label); ++ else if (mounted && !device->m_isMounted && callback) ++ callback->OnStorageSafelyRemoved(device->m_Label); ++ ++ CLog::Log(LOGDEBUG, "UDisks: DeviceChanged - %s", device->toString().c_str()); ++ } ++} ++ ++std::vector CUDisksProvider::EnumerateDisks() ++{ ++ std::vector devices; ++ CDBusMessage message("org.freedesktop.UDisks", "/org/freedesktop/UDisks", "org.freedesktop.UDisks", "EnumerateDevices"); ++ DBusMessage *reply = message.SendSystem(); ++ if (reply) ++ { ++ char** disks = NULL; ++ int length = 0; ++ ++ if (dbus_message_get_args (reply, NULL, DBUS_TYPE_ARRAY, DBUS_TYPE_OBJECT_PATH, &disks, &length, DBUS_TYPE_INVALID)) ++ { ++ for (int i = 0; i < length; i++) ++ devices.push_back(disks[i]); ++ ++ dbus_free_string_array(disks); ++ } ++ } ++ ++ return devices; ++} ++ ++void CUDisksProvider::GetDisks(VECSOURCES& devices, bool EnumerateRemovable) ++{ ++ DeviceMap::iterator itr; ++ ++ for (itr = m_AvailableDevices.begin(); itr != m_AvailableDevices.end(); ++itr) ++ { ++ CUDiskDevice *device = itr->second; ++ if (device && device->IsApproved() && device->m_isSystemInternal != EnumerateRemovable) ++ devices.push_back(device->ToMediaShare()); ++ } ++} ++#endif +diff -Naur xbmc-29490/xbmc/linux/UDisksProvider.h xbmc-29490.patch/xbmc/linux/UDisksProvider.h +--- xbmc-29490/xbmc/linux/UDisksProvider.h 1970-01-01 01:00:00.000000000 +0100 ++++ xbmc-29490.patch/xbmc/linux/UDisksProvider.h 2010-04-25 23:12:52.130485628 +0200 +@@ -0,0 +1,86 @@ ++#pragma once ++/* ++ * Copyright (C) 2005-2009 Team XBMC ++ * http://www.xbmc.org ++ * ++ * This Program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation; either version 2, or (at your option) ++ * any later version. ++ * ++ * This Program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with XBMC; see the file COPYING. If not, write to ++ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. ++ * http://www.gnu.org/copyleft/gpl.html ++ * ++ */ ++#include "IStorageProvider.h" ++#ifdef HAS_DBUS ++#include "DBusUtil.h" ++ ++class CUDiskDevice ++{ ++public: ++ CUDiskDevice(const char *DeviceKitUDI); ++ ~CUDiskDevice() { } ++ ++ void Update(); ++ ++ bool Mount(); ++ bool UnMount(); ++ ++ bool IsApproved(); ++ ++ CStdString toString(); ++ ++ CMediaSource ToMediaShare(); ++ ++ CStdString m_UDI, m_DeviceKitUDI, m_MountPath, m_FileSystem, m_Label; ++ bool m_isMounted, m_isMountedByUs, m_isRemovable, m_isPartition, m_isFileSystem, m_isSystemInternal; ++ float m_PartitionSizeGiB; ++}; ++ ++class CUDisksProvider : public IStorageProvider ++{ ++public: ++ CUDisksProvider(); ++ virtual ~CUDisksProvider(); ++ ++ virtual void Initialize(); ++ virtual void Stop() { } ++ ++ virtual void GetLocalDrives(VECSOURCES &localDrives) { GetDisks(localDrives, false); } ++ virtual void GetRemovableDrives(VECSOURCES &removableDrives) { GetDisks(removableDrives, true); } ++ ++ virtual bool Eject(CStdString mountpath); ++ ++ virtual std::vector GetDiskUsage(); ++ ++ virtual bool PumpDriveChangeEvents(IStorageEventsCallback *callback); ++ ++ static bool HasUDisks(); ++private: ++ typedef std::map DeviceMap; ++ typedef std::pair DevicePair; ++ ++ void DeviceAdded(const char *object, IStorageEventsCallback *callback); ++ void DeviceRemoved(const char *object, IStorageEventsCallback *callback); ++ void DeviceChanged(const char *object, IStorageEventsCallback *callback); ++ ++ std::vector EnumerateDisks(); ++ ++ void GetDisks(VECSOURCES& devices, bool EnumerateRemovable); ++ ++ int m_DaemonVersion; ++ ++ DeviceMap m_AvailableDevices; ++ ++ DBusConnection *m_connection; ++ DBusError m_error; ++}; ++#endif +diff -Naur xbmc-29490/xbmc/PowerManager.cpp xbmc-29490.patch/xbmc/PowerManager.cpp +--- xbmc-29490/xbmc/PowerManager.cpp 2010-04-24 22:43:14.000000000 +0200 ++++ xbmc-29490.patch/xbmc/PowerManager.cpp 2010-04-25 23:12:52.132484681 +0200 +@@ -35,6 +35,7 @@ + #ifdef __APPLE__ + #include "osx/CocoaPowerSyscall.h" + #elif defined(_LINUX) && defined(HAS_DBUS) ++#include "linux/ConsoleUPowerSyscall.h" + #include "linux/ConsoleDeviceKitPowerSyscall.h" + #ifdef HAS_HAL + #include "linux/HALPowerSyscall.h" +@@ -74,6 +75,8 @@ + #elif defined(_LINUX) && defined(HAS_DBUS) + if (CConsoleDeviceKitPowerSyscall::HasDeviceConsoleKit()) + m_instance = new CConsoleDeviceKitPowerSyscall(); ++ else if (CConsoleUPowerSyscall::HasDeviceConsoleKit()) ++ m_instance = new CConsoleUPowerSyscall(); + #ifdef HAS_HAL + else + m_instance = new CHALPowerSyscall(); From ebd95ee08784e3f02f4714d88e10ddc95f68df72 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Mon, 26 Apr 2010 00:09:26 +0200 Subject: [PATCH 194/320] busybox: - add /etc/mtab (needed for udisks/xbmc) - symlink to /proc/mounts --- packages/sysutils/busybox/install | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/sysutils/busybox/install b/packages/sysutils/busybox/install index e1cbedebc0..b34ad0e903 100755 --- a/packages/sysutils/busybox/install +++ b/packages/sysutils/busybox/install @@ -30,6 +30,7 @@ USER_PWD="`$ROOT/$TOOLCHAIN/bin/cryptpw $USER_PASSWORD`" cp $PKG_DIR/config/profile $INSTALL/etc touch $INSTALL/etc/fstab ln -sf /var/run/resolv.conf $INSTALL/etc/resolv.conf + ln -sf /proc/mounts $INSTALL/etc/mtab # create /etc/hostname echo $HOSTNAME > $INSTALL/etc/hostname From f5ac422264b7690facc64c96c4caa389397a8252 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Mon, 26 Apr 2010 02:11:09 +0200 Subject: [PATCH 195/320] linux-headers: - cosmetics --- packages/toolchain/devel/linux-headers/install | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/toolchain/devel/linux-headers/install b/packages/toolchain/devel/linux-headers/install index 9c5509d113..2eaeff0e48 100755 --- a/packages/toolchain/devel/linux-headers/install +++ b/packages/toolchain/devel/linux-headers/install @@ -10,3 +10,4 @@ make ARCH=$TARGET_ARCH INSTALL_HDR_PATH=dest headers_install mkdir -p $SYSROOT_PREFIX/usr/include cp -PR dest/include/* $SYSROOT_PREFIX/usr/include + From 03418f007c6b251e6c9fe37f6e577be564cb7381 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Mon, 26 Apr 2010 18:21:25 +0200 Subject: [PATCH 196/320] wicd: - remove package --- packages/network/wicd/build | 20 -------------------- packages/network/wicd/install | 7 ------- packages/network/wicd/url | 1 - 3 files changed, 28 deletions(-) delete mode 100755 packages/network/wicd/build delete mode 100755 packages/network/wicd/install delete mode 100644 packages/network/wicd/url diff --git a/packages/network/wicd/build b/packages/network/wicd/build deleted file mode 100755 index 9a6977e625..0000000000 --- a/packages/network/wicd/build +++ /dev/null @@ -1,20 +0,0 @@ -#!/bin/sh - -. config/options - -$SCRIPTS/build toolchain -$SCRIPTS/build Python - -. config/options.python - -cd $PKG_BUILD - -$PYTHON setup.py configure -$PYTHON setup.py build - -$PYTHON setup.py install -O1 --skip-build --prefix /usr --root .install - -find .install -name "*.py" -exec rm -rf "{}" ";" -find .install -name "*.pyo" -exec rm -rf "{}" ";" - -rm -rf .install/usr/bin diff --git a/packages/network/wicd/install b/packages/network/wicd/install deleted file mode 100755 index 2c60f5dd1d..0000000000 --- a/packages/network/wicd/install +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/sh - -. config/options - -$SCRIPTS/install Python - -cp -PR $PKG_BUILD/.install/* $INSTALL diff --git a/packages/network/wicd/url b/packages/network/wicd/url deleted file mode 100644 index 60f7a88d45..0000000000 --- a/packages/network/wicd/url +++ /dev/null @@ -1 +0,0 @@ -http://downloads.sourceforge.net/project/wicd/wicd-stable/wicd-1.7.0/wicd-1.7.0.tar.bz2 \ No newline at end of file From f6a2919a6ba0af54faf4f2814557cb12f6e8ab38 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Mon, 26 Apr 2010 18:21:49 +0200 Subject: [PATCH 197/320] busybox: - add group "users" --- packages/sysutils/busybox/install | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/sysutils/busybox/install b/packages/sysutils/busybox/install index b34ad0e903..3fdc1919e3 100755 --- a/packages/sysutils/busybox/install +++ b/packages/sysutils/busybox/install @@ -12,6 +12,7 @@ USER_PWD="`$ROOT/$TOOLCHAIN/bin/cryptpw $USER_PASSWORD`" add_user root "$ROOT_PWD" 0 0 "Root User" "/storage" "/bin/sh" add_group root 0 + add_group users 100 add_user $USER_NAME "$USER_PWD" 1000 1000 "User" "/storage" "/bin/sh" add_group $USER_GROUP 1000 From 2e0d15096da5e4343da83be984692be0f6a2042a Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Mon, 26 Apr 2010 23:52:25 +0200 Subject: [PATCH 198/320] new package: - add package mpc for upcoming gcc-4.5 --- packages/toolchain/math/mpc/build | 24 ++++++++++++++++++++++++ packages/toolchain/math/mpc/url | 1 + 2 files changed, 25 insertions(+) create mode 100755 packages/toolchain/math/mpc/build create mode 100644 packages/toolchain/math/mpc/url diff --git a/packages/toolchain/math/mpc/build b/packages/toolchain/math/mpc/build new file mode 100755 index 0000000000..2e7fd960dc --- /dev/null +++ b/packages/toolchain/math/mpc/build @@ -0,0 +1,24 @@ +#!/bin/sh + +. config/options + +$SCRIPTS/install ccache +$SCRIPTS/build gmp +$SCRIPTS/build mpfr + +setup_toolchain host + +cd $PKG_BUILD +mkdir -p objdir +cd objdir +../configure --host=$HOST_NAME \ + --build=$HOST_NAME \ + --target=$TARGET_NAME \ + --prefix=$ROOT/$TOOLCHAIN \ + --enable-shared \ + --disable-static \ + --with-gmp="$ROOT/$TOOLCHAIN" \ + --with-mpfr="$ROOT/$TOOLCHAIN" \ + +make +make install diff --git a/packages/toolchain/math/mpc/url b/packages/toolchain/math/mpc/url new file mode 100644 index 0000000000..77841ceee1 --- /dev/null +++ b/packages/toolchain/math/mpc/url @@ -0,0 +1 @@ +http://www.multiprecision.org/mpc/download/mpc-0.8.1.tar.gz From 075d3246afc4530bc2cf17a7af3c900d635ae38b Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Mon, 26 Apr 2010 23:52:50 +0200 Subject: [PATCH 199/320] new package: - add package libelf for upcoming gcc-4.5 --- packages/toolchain/devel/libelf/build | 20 ++++++++++++++++++++ packages/toolchain/devel/libelf/url | 1 + 2 files changed, 21 insertions(+) create mode 100755 packages/toolchain/devel/libelf/build create mode 100644 packages/toolchain/devel/libelf/url diff --git a/packages/toolchain/devel/libelf/build b/packages/toolchain/devel/libelf/build new file mode 100755 index 0000000000..1eac186143 --- /dev/null +++ b/packages/toolchain/devel/libelf/build @@ -0,0 +1,20 @@ +#!/bin/sh + +. config/options + +$SCRIPTS/install ccache + +setup_toolchain host + +cd $PKG_BUILD +mkdir -p objdir +cd objdir +../configure --host=$HOST_NAME \ + --build=$HOST_NAME \ + --target=$TARGET_NAME \ + --prefix=$ROOT/$TOOLCHAIN \ + --enable-shared \ + --disable-static \ + +make +make install \ No newline at end of file diff --git a/packages/toolchain/devel/libelf/url b/packages/toolchain/devel/libelf/url new file mode 100644 index 0000000000..5cb7685551 --- /dev/null +++ b/packages/toolchain/devel/libelf/url @@ -0,0 +1 @@ +http://www.mr511.de/software/libelf-0.8.12.tar.gz From 8db03726161b69b92fb5e412286daa23bebce7fe Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Mon, 26 Apr 2010 23:53:45 +0200 Subject: [PATCH 200/320] gcc: - update to gcc-4.5 --- .../lang/gcc/patches/300_libstdc++-pic.diff | 23 +++++++++---------- .../patches/904_flatten-switch-stmt-00.diff | 6 ++--- packages/toolchain/lang/gcc/url | 2 +- 3 files changed, 14 insertions(+), 17 deletions(-) diff --git a/packages/toolchain/lang/gcc/patches/300_libstdc++-pic.diff b/packages/toolchain/lang/gcc/patches/300_libstdc++-pic.diff index 560bcb237b..fabee8ed09 100644 --- a/packages/toolchain/lang/gcc/patches/300_libstdc++-pic.diff +++ b/packages/toolchain/lang/gcc/patches/300_libstdc++-pic.diff @@ -17,28 +17,27 @@ all-local: build_debug --- gcc/libstdc++-v3/src/Makefile.in +++ gcc/libstdc++-v3/src/Makefile.in -@@ -627,7 +627,7 @@ +@@ -739,7 +739,7 @@ - install-data-am: install-data-local + install-dvi-am: -install-exec-am: install-toolexeclibLTLIBRARIES +install-exec-am: install-toolexeclibLTLIBRARIES install-exec-local - install-info: install-info-am + install-html: install-html-am -@@ -660,6 +660,7 @@ - distclean-libtool distclean-tags distdir dvi dvi-am html \ +@@ -789,6 +789,7 @@ html-am info info-am install install-am install-data \ - install-data-am install-data-local install-exec \ + install-data-am install-data-local install-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ + install-exec-local \ - install-exec-am install-info install-info-am install-man \ - install-strip install-toolexeclibLTLIBRARIES installcheck \ - installcheck-am installdirs maintainer-clean \ -@@ -743,6 +743,13 @@ - install_debug: + install-info install-info-am install-man install-pdf \ + install-pdf-am install-ps install-ps-am install-strip \ + install-toolexeclibLTLIBRARIES installcheck installcheck-am \ +@@ -993,6 +994,12 @@ (cd ${debugdir} && $(MAKE) \ toolexeclibdir=$(glibcxx_toolexeclibdir)/debug install) -+ + +install-exec-local: +ifeq ($(enable_shared),yes) + $(AR) cru libstdc++_pic.a *.o $(top_builddir)/libsupc++/*.o diff --git a/packages/toolchain/lang/gcc/patches/904_flatten-switch-stmt-00.diff b/packages/toolchain/lang/gcc/patches/904_flatten-switch-stmt-00.diff index 8fac37c4df..e399214cdf 100644 --- a/packages/toolchain/lang/gcc/patches/904_flatten-switch-stmt-00.diff +++ b/packages/toolchain/lang/gcc/patches/904_flatten-switch-stmt-00.diff @@ -51,10 +51,8 @@ Index: gcc-4.2.0/gcc/stmt.c =================================================================== --- gcc-4.2.0.orig/gcc/stmt.c (revision 123843) +++ gcc-4.2.0/gcc/stmt.c (working copy) -@@ -2517,7 +2517,11 @@ expand_case (tree exp) - use_cost_table - = (TREE_CODE (orig_type) != ENUMERAL_TYPE - && estimate_case_costs (case_list)); +@@ -2517,5 +2517,9 @@ expand_case (tree exp) + use_cost_table = estimate_case_costs (case_list); - balance_case_nodes (&case_list, NULL); + /* When optimizing for size, we want a straight list to avoid + jumps as much as possible. This basically creates an if-else diff --git a/packages/toolchain/lang/gcc/url b/packages/toolchain/lang/gcc/url index 16e6a07128..3f7362b52a 100644 --- a/packages/toolchain/lang/gcc/url +++ b/packages/toolchain/lang/gcc/url @@ -1 +1 @@ -ftp://ftp.fu-berlin.de/unix/languages/gcc/releases/gcc-4.4.3/gcc-4.4.3.tar.bz2 \ No newline at end of file +ftp://ftp.fu-berlin.de/unix/languages/gcc/releases/gcc-4.5.0/gcc-4.5.0.tar.bz2 \ No newline at end of file From 96bc4c17e0e8cbd5f26b8a01ac0dba9ded140db5 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Mon, 26 Apr 2010 23:54:15 +0200 Subject: [PATCH 201/320] gcc-core: - build with mpc and libelf support --- packages/toolchain/lang/gcc-core/build | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/packages/toolchain/lang/gcc-core/build b/packages/toolchain/lang/gcc-core/build index a6c794b405..da60628777 100755 --- a/packages/toolchain/lang/gcc-core/build +++ b/packages/toolchain/lang/gcc-core/build @@ -6,8 +6,10 @@ $SCRIPTS/install ccache $SCRIPTS/install binutils $SCRIPTS/build gmp $SCRIPTS/build mpfr +$SCRIPTS/build mpc $SCRIPTS/build ppl $SCRIPTS/build cloog-ppl +$SCRIPTS/build libelf $SCRIPTS/unpack gcc setup_toolchain host @@ -23,8 +25,10 @@ LDFLAGS="-Wl,-rpath,$ROOT/$TOOLCHAIN/lib" \ --with-sysroot=$SYSROOT_PREFIX \ --with-gmp=$ROOT/$TOOLCHAIN \ --with-mpfr=$ROOT/$TOOLCHAIN \ + --with-mpc=$ROOT/$TOOLCHAIN \ --with-ppl=$ROOT/$TOOLCHAIN \ --with-cloog=$ROOT/$TOOLCHAIN \ + --with-libelf=$ROOT/$TOOLCHAIN \ --enable-languages=c \ --disable-libmudflap \ --disable-libssp \ From 048b69dccab8f1ed221c9f688b32d21b70ba4386 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Mon, 26 Apr 2010 23:54:33 +0200 Subject: [PATCH 202/320] gcc-final: - build with mpc and libelf support --- packages/toolchain/lang/gcc-final/build | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/packages/toolchain/lang/gcc-final/build b/packages/toolchain/lang/gcc-final/build index 5ae9eba616..d629628b2b 100755 --- a/packages/toolchain/lang/gcc-final/build +++ b/packages/toolchain/lang/gcc-final/build @@ -6,8 +6,10 @@ $SCRIPTS/install ccache toolchain $SCRIPTS/install binutils $SCRIPTS/build gmp $SCRIPTS/build mpfr +$SCRIPTS/build mpc $SCRIPTS/build ppl $SCRIPTS/build cloog-ppl +$SCRIPTS/build libelf $SCRIPTS/install eglibc toolchain $SCRIPTS/unpack gcc @@ -24,8 +26,10 @@ LDFLAGS="-Wl,-rpath,$ROOT/$TOOLCHAIN/lib" \ --with-sysroot=$SYSROOT_PREFIX \ --with-gmp=$ROOT/$TOOLCHAIN \ --with-mpfr=$ROOT/$TOOLCHAIN \ + --with-mpc=$ROOT/$TOOLCHAIN \ --with-ppl=$ROOT/$TOOLCHAIN \ --with-cloog=$ROOT/$TOOLCHAIN \ + --with-libelf=$ROOT/$TOOLCHAIN \ --enable-languages=${TOOLCHAIN_LANGUAGES} \ --disable-__cxa_atexit \ --disable-libmudflap \ From 5ebd56a9eaf87303110019a4f40be5152408faf9 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Mon, 26 Apr 2010 23:55:04 +0200 Subject: [PATCH 203/320] ppl: - enable optimizations --- packages/toolchain/math/ppl/build | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/packages/toolchain/math/ppl/build b/packages/toolchain/math/ppl/build index ba6d2f6fa7..1c9c2b859c 100755 --- a/packages/toolchain/math/ppl/build +++ b/packages/toolchain/math/ppl/build @@ -20,9 +20,8 @@ LDFLAGS="-Wl,-rpath,$ROOT/$TOOLCHAIN/lib" \ --enable-shared \ --disable-static \ --enable-interfaces="c,cxx" \ - --disable-optimization \ --with-libgmp-prefix="$ROOT/$TOOLCHAIN" \ --with-libgmpxx-prefix="$ROOT/$TOOLCHAIN" \ make -make install \ No newline at end of file +make install From 9ffb9a5a1941ade75e3d9f46b2bef4687b26ba82 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Mon, 26 Apr 2010 23:55:25 +0200 Subject: [PATCH 204/320] cloog-ppl: - cosmetics --- packages/toolchain/math/cloog-ppl/build | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/toolchain/math/cloog-ppl/build b/packages/toolchain/math/cloog-ppl/build index b4099f742a..c134b7f4d4 100755 --- a/packages/toolchain/math/cloog-ppl/build +++ b/packages/toolchain/math/cloog-ppl/build @@ -26,4 +26,4 @@ LDFLAGS="-Wl,-rpath,$ROOT/$TOOLCHAIN/lib" \ make make check -make install \ No newline at end of file +make install From 227f59ab48837a9e102dc87c2f52052bfe48085e Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Mon, 26 Apr 2010 23:55:49 +0200 Subject: [PATCH 205/320] tiff: - change downloadurl --- packages/graphics/tiff/url | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/graphics/tiff/url b/packages/graphics/tiff/url index 818f739513..28a5077100 100644 --- a/packages/graphics/tiff/url +++ b/packages/graphics/tiff/url @@ -1 +1 @@ -ftp://ftp.remotesensing.org/pub/libtiff/tiff-4.0.0beta5.tar.gz \ No newline at end of file +http://download.osgeo.org/libtiff/tiff-4.0.0beta5.tar.gz From 15cd7b8c3873e5a54263b02ce2e65b30abca5f87 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Mon, 26 Apr 2010 23:56:33 +0200 Subject: [PATCH 206/320] config/path: - add some new optimazions for gcc-4.5 --- config/path | 1 + 1 file changed, 1 insertion(+) diff --git a/config/path b/config/path index a4c918e264..6b0a878b86 100644 --- a/config/path +++ b/config/path @@ -80,6 +80,7 @@ TOOLCHAIN_LANGUAGES=c [ "$TOOLCHAIN_CXX" = yes ] && TOOLCHAIN_LANGUAGES=${TOOLCHAIN_LANGUAGES},c++ [ "$OPTIMIZATIONS" = speed ] && GCC_OPTIM="-O4 $PROJECT_CFLAGS" || GCC_OPTIM="-Os" +[ "$TARGET_ARCH" = i386 -o "$TARGET_ARCH" = x86_64 ] && GCC_OPTIM="$GCC_OPTIM -fexcess-precision=fast" TARGET_CC=${TARGET_PREFIX}gcc TARGET_CXX=${TARGET_PREFIX}g++ From 7f13e861093c45b2e1372ffcdb1291f1039870b7 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Mon, 26 Apr 2010 23:56:50 +0200 Subject: [PATCH 207/320] linux: - update to linux-2.6.33.3 --- packages/linux/url | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/linux/url b/packages/linux/url index 7d3ed70e39..e9f76e1d7c 100644 --- a/packages/linux/url +++ b/packages/linux/url @@ -1 +1 @@ -http://eu.kernel.org/pub/linux/kernel/v2.6/linux-2.6.33.2.tar.bz2 \ No newline at end of file +http://eu.kernel.org/pub/linux/kernel/v2.6/linux-2.6.33.3.tar.bz2 \ No newline at end of file From c217b2d0848f132a47cc50643522ffa5bd433b95 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Mon, 26 Apr 2010 23:57:40 +0200 Subject: [PATCH 208/320] lcdproc: - enable Foreground option --- packages/sysutils/lcdproc/build | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/sysutils/lcdproc/build b/packages/sysutils/lcdproc/build index ef99e42eea..da38b67505 100755 --- a/packages/sysutils/lcdproc/build +++ b/packages/sysutils/lcdproc/build @@ -17,4 +17,4 @@ make sed -i -e "s|^DriverPath=.*$|DriverPath=/usr/lib/lcdproc/|" LCDd.conf sed -i -e "s|^Driver=.*$|Driver=irtrans|" LCDd.conf -sed -i -e "s|^Foreground=.*$|Foreground=no|" LCDd.conf \ No newline at end of file +sed -i -e "s|^#Foreground=.*$|Foreground=no|" LCDd.conf \ No newline at end of file From 5e719021c860c36d790377e8aa1d6be5b9a92498 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Tue, 27 Apr 2010 13:25:13 +0200 Subject: [PATCH 209/320] projects/ION/options: - update cpu list for gcc-4.5 - set TARGET_CPU to atom --- projects/ION/options | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/projects/ION/options b/projects/ION/options index 53ff6e3e0a..90aa5c90fb 100644 --- a/projects/ION/options +++ b/projects/ION/options @@ -27,20 +27,20 @@ # (AMD CPUs) k8 k8-sse3 opteron opteron-sse3 athlon64 athlon64-sse3 # athlon-fx athlon-mp athlon-xp athlon-4 # athlon-tbird athlon k6-3 k6-2 k6 geode - # (Intel CPUs) core2 nocona prescott pentium4[m] pentium3[m] pentium-m - # pentium2 pentiumpro pentium-mmx pentium + # (Intel CPUs) atom core2 nocona prescott pentium4[m] pentium3[m] + # pentium-m pentium2 pentiumpro pentium-mmx pentium # i686 i586 i486 i386 # (VIA CPUs) c3 c3-2 # - #TARGET_CPU="i686" + TARGET_CPU="atom" ;; x86_64) # (AMD CPUs) k8 k8-sse3 opteron opteron-sse3 athlon64 athlon64-sse3 # athlon-fx amdfam10 barcelona - # (Intel CPUs) core2 nocona + # (Intel CPUs) atom core2 nocona # - #TARGET_CPU="generic" + TARGET_CPU="atom" ;; esac @@ -48,7 +48,7 @@ OPTIMIZATIONS="speed" # Project CFLAGS - PROJECT_CFLAGS="-mmmx -msse -msse2 -msse3 -mssse3 -mfpmath=sse" + PROJECT_CFLAGS="" # Timezone to use (empty disables timezone support) # use a TZ environment string From 4bc934d14da774c2cff2fc8cb61648615e2b9249 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Tue, 27 Apr 2010 13:25:35 +0200 Subject: [PATCH 210/320] projects/generic/options: - update cpu list for gcc-4.5 --- projects/generic/options | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/projects/generic/options b/projects/generic/options index ed806f3546..5c1d29f96d 100644 --- a/projects/generic/options +++ b/projects/generic/options @@ -27,8 +27,8 @@ # (AMD CPUs) k8 k8-sse3 opteron opteron-sse3 athlon64 athlon64-sse3 # athlon-fx athlon-mp athlon-xp athlon-4 # athlon-tbird athlon k6-3 k6-2 k6 geode - # (Intel CPUs) core2 nocona prescott pentium4[m] pentium3[m] pentium-m - # pentium2 pentiumpro pentium-mmx pentium + # (Intel CPUs) atom core2 nocona prescott pentium4[m] pentium3[m] + # pentium-m pentium2 pentiumpro pentium-mmx pentium # i686 i586 i486 i386 # (VIA CPUs) c3 c3-2 # @@ -38,7 +38,7 @@ x86_64) # (AMD CPUs) k8 k8-sse3 opteron opteron-sse3 athlon64 athlon64-sse3 # athlon-fx amdfam10 barcelona - # (Intel CPUs) core2 nocona + # (Intel CPUs) atom core2 nocona # #TARGET_CPU="generic" ;; From 7e8dc31715202c72e0948290fc02f2c6529c1e32 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Tue, 27 Apr 2010 13:26:37 +0200 Subject: [PATCH 211/320] projects/intel/options: - update cpu list for gcc-4.5 - remove PROJECT_CFLAGS --- projects/intel/options | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/projects/intel/options b/projects/intel/options index 6600a199cb..a2f9a43a21 100644 --- a/projects/intel/options +++ b/projects/intel/options @@ -27,8 +27,8 @@ # (AMD CPUs) k8 k8-sse3 opteron opteron-sse3 athlon64 athlon64-sse3 # athlon-fx athlon-mp athlon-xp athlon-4 # athlon-tbird athlon k6-3 k6-2 k6 geode - # (Intel CPUs) core2 nocona prescott pentium4[m] pentium3[m] pentium-m - # pentium2 pentiumpro pentium-mmx pentium + # (Intel CPUs) atom core2 nocona prescott pentium4[m] pentium3[m] + # pentium-m pentium2 pentiumpro pentium-mmx pentium # i686 i586 i486 i386 # (VIA CPUs) c3 c3-2 # @@ -38,7 +38,7 @@ x86_64) # (AMD CPUs) k8 k8-sse3 opteron opteron-sse3 athlon64 athlon64-sse3 # athlon-fx amdfam10 barcelona - # (Intel CPUs) core2 nocona + # (Intel CPUs) atom core2 nocona # TARGET_CPU="core2" ;; @@ -48,7 +48,7 @@ OPTIMIZATIONS="speed" # Project CFLAGS - PROJECT_CFLAGS="-mmmx -msse -msse2 -msse3 -mssse3 -mfpmath=sse" + PROJECT_CFLAGS="" # Timezone to use (empty disables timezone support) # use a TZ environment string From 3a19d449ca08bb7aedd721a708cc653d4060a363 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Wed, 28 Apr 2010 00:12:23 +0200 Subject: [PATCH 212/320] plymouth-lite: - remove package plymouth-lite --- packages/image/install | 1 - packages/sysutils/plymouth-lite/build | 10 -- .../sysutils/plymouth-lite/init.d/00_plymouth | 11 -- packages/sysutils/plymouth-lite/install | 13 --- .../plymouth-lite/patches/cursor.diff | 11 -- .../patches/plymouth-fix-build.diff | 10 -- .../plymouth-lite-0.6.0_libpng-1.4.0.diff | 12 -- .../patches/plymouth-resize.diff | 110 ------------------ .../sysutils/plymouth-lite/splash/Splash.png | Bin 298487 -> 0 bytes packages/sysutils/plymouth-lite/url | 1 - 10 files changed, 179 deletions(-) delete mode 100755 packages/sysutils/plymouth-lite/build delete mode 100755 packages/sysutils/plymouth-lite/init.d/00_plymouth delete mode 100755 packages/sysutils/plymouth-lite/install delete mode 100644 packages/sysutils/plymouth-lite/patches/cursor.diff delete mode 100644 packages/sysutils/plymouth-lite/patches/plymouth-fix-build.diff delete mode 100644 packages/sysutils/plymouth-lite/patches/plymouth-lite-0.6.0_libpng-1.4.0.diff delete mode 100644 packages/sysutils/plymouth-lite/patches/plymouth-resize.diff delete mode 100644 packages/sysutils/plymouth-lite/splash/Splash.png delete mode 100644 packages/sysutils/plymouth-lite/url diff --git a/packages/image/install b/packages/image/install index 2233f49e9f..12d0bece25 100755 --- a/packages/image/install +++ b/packages/image/install @@ -54,7 +54,6 @@ case "$2" in $SCRIPTS/install gcc-final $SCRIPTS/install linux $2 $SCRIPTS/install busybox - $SCRIPTS/install plymouth-lite $SCRIPTS/install util-linux-ng echo "OpenELEC" > $INSTALL/etc/distribution diff --git a/packages/sysutils/plymouth-lite/build b/packages/sysutils/plymouth-lite/build deleted file mode 100755 index 80dbd20387..0000000000 --- a/packages/sysutils/plymouth-lite/build +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/sh - -. config/options - -$SCRIPTS/build toolchain -$SCRIPTS/build libpng - -cd $PKG_BUILD - -make \ No newline at end of file diff --git a/packages/sysutils/plymouth-lite/init.d/00_plymouth b/packages/sysutils/plymouth-lite/init.d/00_plymouth deleted file mode 100755 index 29d0e7e828..0000000000 --- a/packages/sysutils/plymouth-lite/init.d/00_plymouth +++ /dev/null @@ -1,11 +0,0 @@ -# -# starting splash -# -# runlevels: openelec, textmode - -( - [ "$DEBUG" != "yes" -a "$TEXTMODE" != "yes" \ - -a -f /usr/bin/ply-image -a -f /usr/share/splash/Splash.png \ - ] && ply-image /usr/share/splash/Splash.png -)& - diff --git a/packages/sysutils/plymouth-lite/install b/packages/sysutils/plymouth-lite/install deleted file mode 100755 index a901b44026..0000000000 --- a/packages/sysutils/plymouth-lite/install +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/sh - -. config/options - -$SCRIPTS/install libpng - -PKG_DIR=`find $PACKAGES -type d -name $1` - -mkdir -p $INSTALL/usr/bin - cp $PKG_BUILD/ply-image $INSTALL/usr/bin - -mkdir -p $INSTALL/usr/share/splash - cp -PR $PKG_DIR/splash/Splash.png $INSTALL/usr/share/splash diff --git a/packages/sysutils/plymouth-lite/patches/cursor.diff b/packages/sysutils/plymouth-lite/patches/cursor.diff deleted file mode 100644 index fc69b27811..0000000000 --- a/packages/sysutils/plymouth-lite/patches/cursor.diff +++ /dev/null @@ -1,11 +0,0 @@ ---- plymouth-lite-0.6.0/ply-image.c~ 2009-03-06 16:20:52.000000000 -0800 -+++ plymouth-lite-0.6.0/ply-image.c 2009-03-06 16:20:52.000000000 -0800 -@@ -439,7 +439,7 @@ - - exit_code = 0; - --// hide_cursor (); -+ hide_cursor (); - - if (argc == 1) - image = ply_image_new ("/usr/share/plymouth/splash.png"); diff --git a/packages/sysutils/plymouth-lite/patches/plymouth-fix-build.diff b/packages/sysutils/plymouth-lite/patches/plymouth-fix-build.diff deleted file mode 100644 index 5c27e29e46..0000000000 --- a/packages/sysutils/plymouth-lite/patches/plymouth-fix-build.diff +++ /dev/null @@ -1,10 +0,0 @@ ---- plymouth-lite-0.6.0/Makefile~ 2009-07-22 11:22:32.000000000 -0700 -+++ plymouth-lite-0.6.0/Makefile 2009-07-22 11:22:32.000000000 -0700 -@@ -1,6 +1,6 @@ - - ply-image: ply-image.c ply-frame-buffer.c Makefile -- gcc -O2 -march=core2 -mtune=generic -lm `pkg-config --cflags libpng12` `pkg-config --libs libpng12` ply-image.c ply-frame-buffer.c -o ply-image -+ $(CC) $(CFLAGS) `pkg-config --cflags libpng` ply-image.c ply-frame-buffer.c -o ply-image -lm `pkg-config --libs libpng` - - clean: - rm -f ply-image *~ gmon.out diff --git a/packages/sysutils/plymouth-lite/patches/plymouth-lite-0.6.0_libpng-1.4.0.diff b/packages/sysutils/plymouth-lite/patches/plymouth-lite-0.6.0_libpng-1.4.0.diff deleted file mode 100644 index cf5a08ac95..0000000000 --- a/packages/sysutils/plymouth-lite/patches/plymouth-lite-0.6.0_libpng-1.4.0.diff +++ /dev/null @@ -1,12 +0,0 @@ -diff -Naur plymouth-lite-0.6.0/ply-image.c plymouth-lite-0.6.0.patch/ply-image.c ---- plymouth-lite-0.6.0/ply-image.c 2009-02-19 12:16:36.000000000 +0100 -+++ plymouth-lite-0.6.0.patch/ply-image.c 2010-02-08 01:30:05.336856616 +0100 -@@ -220,7 +220,7 @@ - png_set_palette_to_rgb (png); - - if ((color_type == PNG_COLOR_TYPE_GRAY) && (bits_per_pixel < 8)) -- png_set_gray_1_2_4_to_8 (png); -+ png_set_expand_gray_1_2_4_to_8 (png); - - if (png_get_valid (png, info, PNG_INFO_tRNS)) - png_set_tRNS_to_alpha (png); diff --git a/packages/sysutils/plymouth-lite/patches/plymouth-resize.diff b/packages/sysutils/plymouth-lite/patches/plymouth-resize.diff deleted file mode 100644 index 4bebf11213..0000000000 --- a/packages/sysutils/plymouth-lite/patches/plymouth-resize.diff +++ /dev/null @@ -1,110 +0,0 @@ -diff -urN plymouth-lite-0.6.0/ply-frame-buffer.c plymouth-lite-0.6.0.change/ply-frame-buffer.c ---- plymouth-lite-0.6.0/ply-frame-buffer.c 2009-02-19 19:14:24.000000000 +0800 -+++ plymouth-lite-0.6.0.change/ply-frame-buffer.c 2009-06-13 17:44:05.000000000 +0800 -@@ -47,41 +47,6 @@ - #define PLY_FRAME_BUFFER_DEFAULT_FB_DEVICE_NAME "/dev/fb0" - #endif - --struct _ply_frame_buffer --{ -- char *device_name; -- int device_fd; -- -- char *map_address; -- size_t size; -- -- uint32_t *shadow_buffer; -- -- uint32_t red_bit_position; -- uint32_t green_bit_position; -- uint32_t blue_bit_position; -- uint32_t alpha_bit_position; -- -- uint32_t bits_for_red; -- uint32_t bits_for_green; -- uint32_t bits_for_blue; -- uint32_t bits_for_alpha; -- -- int32_t dither_red; -- int32_t dither_green; -- int32_t dither_blue; -- -- unsigned int bytes_per_pixel; -- unsigned int row_stride; -- -- ply_frame_buffer_area_t area; -- ply_frame_buffer_area_t area_to_flush; -- -- void (*flush)(ply_frame_buffer_t *buffer); -- -- int pause_count; --}; -- - static bool ply_frame_buffer_open_device (ply_frame_buffer_t *buffer); - static void ply_frame_buffer_close_device (ply_frame_buffer_t *buffer); - static bool ply_frame_buffer_query_device (ply_frame_buffer_t *buffer); -diff -urN plymouth-lite-0.6.0/ply-frame-buffer.h plymouth-lite-0.6.0.change/ply-frame-buffer.h ---- plymouth-lite-0.6.0/ply-frame-buffer.h 2009-02-19 17:35:54.000000000 +0800 -+++ plymouth-lite-0.6.0.change/ply-frame-buffer.h 2009-06-13 17:31:42.000000000 +0800 -@@ -38,6 +38,41 @@ - unsigned long height; - }; - -+struct _ply_frame_buffer -+{ -+ char *device_name; -+ int device_fd; -+ -+ char *map_address; -+ size_t size; -+ -+ uint32_t *shadow_buffer; -+ -+ uint32_t red_bit_position; -+ uint32_t green_bit_position; -+ uint32_t blue_bit_position; -+ uint32_t alpha_bit_position; -+ -+ uint32_t bits_for_red; -+ uint32_t bits_for_green; -+ uint32_t bits_for_blue; -+ uint32_t bits_for_alpha; -+ -+ int32_t dither_red; -+ int32_t dither_green; -+ int32_t dither_blue; -+ -+ unsigned int bytes_per_pixel; -+ unsigned int row_stride; -+ -+ ply_frame_buffer_area_t area; -+ ply_frame_buffer_area_t area_to_flush; -+ -+ void (*flush)(ply_frame_buffer_t *buffer); -+ -+ int pause_count; -+}; -+ - #define PLY_FRAME_BUFFER_COLOR_TO_PIXEL_VALUE(r,g,b,a) \ - (((uint8_t) (CLAMP (a * 255.0, 0.0, 255.0)) << 24) \ - | ((uint8_t) (CLAMP (r * 255.0, 0.0, 255.0)) << 16) \ -diff -urN plymouth-lite-0.6.0/ply-image.c plymouth-lite-0.6.0.change/ply-image.c ---- plymouth-lite-0.6.0/ply-image.c 2009-02-19 19:16:36.000000000 +0800 -+++ plymouth-lite-0.6.0.change/ply-image.c 2009-06-13 17:42:52.000000000 +0800 -@@ -43,6 +43,7 @@ - #include - - #include -+#include "ply-frame-buffer.h" - - #define MIN(a,b) ((a) <= (b)? (a) : (b)) - #define MAX(a,b) ((a) >= (b)? (a) : (b)) -@@ -464,6 +465,8 @@ - return exit_code; - } - -+ image = ply_image_resize(image, buffer->area.width, buffer->area.height); -+ - animate_at_time (buffer, image); - - ply_frame_buffer_close (buffer); diff --git a/packages/sysutils/plymouth-lite/splash/Splash.png b/packages/sysutils/plymouth-lite/splash/Splash.png deleted file mode 100644 index 8c86ae06a7e156780ad0ada07b71fd661fd3fc0a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 298487 zcmeFYX;@Ni)CQ_$S!UYcRBASvnNw;x51I8^S!$Y7IHaUzia6weC^V^=Q)SKynVF>_ zngdQq=0J{=r6?#kV0^($6)Vn~bQ^r#Y}8WD#l5ftGQoNl4Y z6_@LK6sd=jC{UF9@9{?Ce_l9dX{(EF|L*^HTlQ^NMw&vK|L=$eabD~Hc8zxLy7#}k zkDob+{QDobH={lO4T^~TXORD#;Xfd3`@nxd_zwvG0pUL&{8t|QR~r3KB>XQU{I41Q z|E`laR^^tViEjrNLI0lbvC75GDMGfi*kk+HL8u;UpVbF{@qZ5xj#w;T?BmTPxs`63gBr$p_2t&Z++6A@Xdal6wTmUc6v?jWh3 z%?k&2`CD%Cm9d{2vqVHX2)_1=ACceVOX2@03W#vrD3$?>z=~MB%NbG>@T~hUEsTgF z0Fok?B)6P&XTEH0{vaxznh*?HHZwD**;^sFXxv7TAkDyNbCAzGx0O@wDDPn?DlT$7QBb77Lw6B=r*nX?)oHly zuo7%J!pld{MiAYq5xASeKvc`kHoC6hHFRF5wk&#PX%0S*Q1ptkeAzDIHB_-M*|KiO3I%zJ z`(pcQ7hB=+rm*!!U16KSro4+D0X{)7=$?+R9x*3Kg(-Y9J^6SPzGt(mHm>^#rd_*j8tmqgY=Y2BxS2y*L2%;YrUK#y*$TpIfFpx6%>$78rSmN-@pEdV zADiM#95S`jYsiwG@dR$_%M*v9UH89O58kKWGBId&=mU%d<;&N{Hm;kFE6OY?Z<-$t z-D4v1*gmBMu94VU*RybVn)Y{q>PNucG6nVrxL%68K_>nFNYOpkOv5%CXm6wt_ioQ7 zmr6%kmhQJ4OvjK$mS?bQ$;7GOuG(-qiVTdnQyC z8Y$HYBPG(cK^if5dGBF+Xoh8Vo_SNzZ*wXk_};eZ(@Wr{iGtbH% zpNuS*kM*gL(!CC*jPn;`45SL8I{bLR3F?dYQj{QblYLRlVcGU{oTWZLG-gs&Fc}TI z7AP2TVL$j8S@Eiw6BM#b8LsOlCerZ>P~C_6@KXagZ=a52-a6UuI@QVTA+EQEjI1U`~%UV<+l3O@_x5qP(1dB5MR5&E2#W%1Od@mfuzhB7@rk^pZSZ(zY9YM1 zXn%C-uX+g_==-`ez?vD4{8&VtM)>{&d#L?;ad0$TAWvG+2XPI_3u)0yJLzr6n)5RV z{yYZx*D?~0J0;h=9*yO?{MM|ASn(o|) ze=^y^+G?hW!kJ$vQ1Lg=`jgz}j}M9*uwjl07{8u=M+`kc%3Gr0>n%XZH^6T`Hhsp? zzFm#1c+0T5(a-=zGGHSOC)~KN82d;eUgL8^B+5Iis6+67U?Y%LmXNxXQ3I9ueoH<= z3V#3K@*5@}wa)945MmQLZBkz1vVQZE-GT`;%Ltu*X%F!*g=KKsA*nyMTf>j%5h(5T zI7-V(BN8XO7J6!-kcO+`MN{@DtcUFUN+V

}i#Y+w}jrM`W`gY%MO}=H|7_4@S80 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

Qb=N5=mE47H;> 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

t|}f?~zm{)D4A^)SSUdG#yhx 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⪚=nB4Y$UYyGQ8d-T4?(ssP42^St&pR87 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 Gy#E3Cbcx{r diff --git a/packages/sysutils/plymouth-lite/url b/packages/sysutils/plymouth-lite/url deleted file mode 100644 index d4557ad929..0000000000 --- a/packages/sysutils/plymouth-lite/url +++ /dev/null @@ -1 +0,0 @@ -http://sources.openelec.tv/svn/plymouth-lite-0.6.0.tar.bz2 \ No newline at end of file From 6a1831436f120a11bf7fe8f9588f140a95095cd8 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Wed, 28 Apr 2010 00:12:59 +0200 Subject: [PATCH 213/320] xbmc: - add splash image --- packages/mediacenter/xbmc/install | 1 + packages/mediacenter/xbmc/splash/Splash.png | Bin 0 -> 298487 bytes 2 files changed, 1 insertion(+) create mode 100644 packages/mediacenter/xbmc/splash/Splash.png diff --git a/packages/mediacenter/xbmc/install b/packages/mediacenter/xbmc/install index 1b4baa796e..4ef6e081fd 100755 --- a/packages/mediacenter/xbmc/install +++ b/packages/mediacenter/xbmc/install @@ -83,6 +83,7 @@ mkdir -p $INSTALL/usr/share/xbmc/media/Fonts mkdir -p $INSTALL/usr/share/xbmc/media cp -P $PKG_BUILD/media/weather.zip $INSTALL/usr/share/xbmc/media/ cp -P $PKG_BUILD/media/icon.png $INSTALL/usr/share/xbmc/media/ + cp -P $PKG_DIR/splash/Splash.png $INSTALL/usr/share/xbmc/media/ mkdir -p $INSTALL/usr/share/xbmc/skin diff --git a/packages/mediacenter/xbmc/splash/Splash.png b/packages/mediacenter/xbmc/splash/Splash.png new file mode 100644 index 0000000000000000000000000000000000000000..8c86ae06a7e156780ad0ada07b71fd661fd3fc0a GIT binary patch literal 298487 zcmeFYX;@Ni)CQ_$S!UYcRBASvnNw;x51I8^S!$Y7IHaUzia6weC^V^=Q)SKynVF>_ zngdQq=0J{=r6?#kV0^($6)Vn~bQ^r#Y}8WD#l5ftGQoNl4Y z6_@LK6sd=jC{UF9@9{?Ce_l9dX{(EF|L*^HTlQ^NMw&vK|L=$eabD~Hc8zxLy7#}k zkDob+{QDobH={lO4T^~TXORD#;Xfd3`@nxd_zwvG0pUL&{8t|QR~r3KB>XQU{I41Q z|E`laR^^tViEjrNLI0lbvC75GDMGfi*kk+HL8u;UpVbF{@qZ5xj#w;T?BmTPxs`63gBr$p_2t&Z++6A@Xdal6wTmUc6v?jWh3 z%?k&2`CD%Cm9d{2vqVHX2)_1=ACceVOX2@03W#vrD3$?>z=~MB%NbG>@T~hUEsTgF z0Fok?B)6P&XTEH0{vaxznh*?HHZwD**;^sFXxv7TAkDyNbCAzGx0O@wDDPn?DlT$7QBb77Lw6B=r*nX?)oHly zuo7%J!pld{MiAYq5xASeKvc`kHoC6hHFRF5wk&#PX%0S*Q1ptkeAzDIHB_-M*|KiO3I%zJ z`(pcQ7hB=+rm*!!U16KSro4+D0X{)7=$?+R9x*3Kg(-Y9J^6SPzGt(mHm>^#rd_*j8tmqgY=Y2BxS2y*L2%;YrUK#y*$TpIfFpx6%>$78rSmN-@pEdV zADiM#95S`jYsiwG@dR$_%M*v9UH89O58kKWGBId&=mU%d<;&N{Hm;kFE6OY?Z<-$t z-D4v1*gmBMu94VU*RybVn)Y{q>PNucG6nVrxL%68K_>nFNYOpkOv5%CXm6wt_ioQ7 zmr6%kmhQJ4OvjK$mS?bQ$;7GOuG(-qiVTdnQyC z8Y$HYBPG(cK^if5dGBF+Xoh8Vo_SNzZ*wXk_};eZ(@Wr{iGtbH% zpNuS*kM*gL(!CC*jPn;`45SL8I{bLR3F?dYQj{QblYLRlVcGU{oTWZLG-gs&Fc}TI z7AP2TVL$j8S@Eiw6BM#b8LsOlCerZ>P~C_6@KXagZ=a52-a6UuI@QVTA+EQEjI1U`~%UV<+l3O@_x5qP(1dB5MR5&E2#W%1Od@mfuzhB7@rk^pZSZ(zY9YM1 zXn%C-uX+g_==-`ez?vD4{8&VtM)>{&d#L?;ad0$TAWvG+2XPI_3u)0yJLzr6n)5RV z{yYZx*D?~0J0;h=9*yO?{MM|ASn(o|) ze=^y^+G?hW!kJ$vQ1Lg=`jgz}j}M9*uwjl07{8u=M+`kc%3Gr0>n%XZH^6T`Hhsp? zzFm#1c+0T5(a-=zGGHSOC)~KN82d;eUgL8^B+5Iis6+67U?Y%LmXNxXQ3I9ueoH<= z3V#3K@*5@}wa)945MmQLZBkz1vVQZE-GT`;%Ltu*X%F!*g=KKsA*nyMTf>j%5h(5T zI7-V(BN8XO7J6!-kcO+`MN{@DtcUFUN+V

}i#Y+w}jrM`W`gY%MO}=H|7_4@S80 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

Qb=N5=mE47H;> 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

t|}f?~zm{)D4A^)SSUdG#yhx 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⪚=nB4Y$UYyGQ8d-T4?(ssP42^St&pR87 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 Gy#E3Cbcx{r literal 0 HcmV?d00001 From 9559b6238a1409fa43149556306dc3d56bba6cb4 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Wed, 28 Apr 2010 00:13:29 +0200 Subject: [PATCH 214/320] xbmc: - add patch to change LCD content --- .../patches/452-xbmc-change_lcd_content-0.1.diff | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 packages/mediacenter/xbmc/patches/452-xbmc-change_lcd_content-0.1.diff diff --git a/packages/mediacenter/xbmc/patches/452-xbmc-change_lcd_content-0.1.diff b/packages/mediacenter/xbmc/patches/452-xbmc-change_lcd_content-0.1.diff new file mode 100644 index 0000000000..d9c54b3756 --- /dev/null +++ b/packages/mediacenter/xbmc/patches/452-xbmc-change_lcd_content-0.1.diff @@ -0,0 +1,12 @@ +diff -Naur xbmc-29490/userdata/LCD.xml xbmc-29490.patch/userdata/LCD.xml +--- xbmc-29490/userdata/LCD.xml 2010-04-24 22:42:45.000000000 +0200 ++++ xbmc-29490.patch/userdata/LCD.xml 2010-04-27 17:26:02.946045110 +0200 +@@ -21,7 +21,7 @@ + Freemem: $INFO[System.FreeMemory] + + +- XBMC running... ++ *** OpenELEC.tv *** + $INFO[System.Time] $INFO[System.Date] + Freemem: $INFO[System.FreeMemory] + $INFO[System.ScreenWidth]x$INFO[System.ScreenHeight] $INFO[System.ScreenMode] From 81faecee0876c631cc6d0a88760b48a0ca27a3af Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Wed, 28 Apr 2010 00:13:51 +0200 Subject: [PATCH 215/320] busybox: - add clear applet --- packages/sysutils/busybox/config/busybox.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/sysutils/busybox/config/busybox.conf b/packages/sysutils/busybox/config/busybox.conf index 55d1bd1358..e19516e704 100644 --- a/packages/sysutils/busybox/config/busybox.conf +++ b/packages/sysutils/busybox/config/busybox.conf @@ -282,7 +282,7 @@ CONFIG_FEATURE_HUMAN_READABLE=y # Console Utilities # CONFIG_CHVT=y -# CONFIG_CLEAR is not set +CONFIG_CLEAR=y # CONFIG_DEALLOCVT is not set # CONFIG_DUMPKMAP is not set # CONFIG_KBD_MODE is not set From 917ed6e7acf10169536f60574df468f3a36ac172 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Wed, 28 Apr 2010 00:14:20 +0200 Subject: [PATCH 216/320] busybox: - clear screen on boot --- packages/sysutils/busybox/scripts/init | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packages/sysutils/busybox/scripts/init b/packages/sysutils/busybox/scripts/init index 0a0d1756d8..5c717a7157 100755 --- a/packages/sysutils/busybox/scripts/init +++ b/packages/sysutils/busybox/scripts/init @@ -1,5 +1,7 @@ #!/bin/sh -l +clear + # starting init scripts for wanted runlevel progress "Starting Init Scripts" RET=0 From eb4d89ee3d3d83f2b99f649521736151986bb41f Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Wed, 28 Apr 2010 00:15:31 +0200 Subject: [PATCH 217/320] busybox: - add simple progressbar on boot --- packages/sysutils/busybox/config/profile | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packages/sysutils/busybox/config/profile b/packages/sysutils/busybox/config/profile index 395c8918d1..f629dae7ff 100644 --- a/packages/sysutils/busybox/config/profile +++ b/packages/sysutils/busybox/config/profile @@ -22,6 +22,8 @@ progress() { if test "$DEBUG" = yes; then echo "### $1 ###" + else + echo -n "***" fi } From 79a0f312b07ef2f70bc8496413f000456b208208 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Wed, 28 Apr 2010 00:16:14 +0200 Subject: [PATCH 218/320] busybox-initramfs: - add applet echo --- .../busybox-initramfs/config/busybox-initramfs.conf | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/packages/sysutils/busybox-initramfs/config/busybox-initramfs.conf b/packages/sysutils/busybox-initramfs/config/busybox-initramfs.conf index c22aca4a05..584fc3a78d 100644 --- a/packages/sysutils/busybox-initramfs/config/busybox-initramfs.conf +++ b/packages/sysutils/busybox-initramfs/config/busybox-initramfs.conf @@ -1,7 +1,7 @@ # # Automatically generated make config: don't edit -# Busybox version: 1.16.0 -# Sat Jan 30 22:58:05 2010 +# Busybox version: 1.16.1 +# Tue Apr 27 18:57:48 2010 # CONFIG_HAVE_DOT_CONFIG=y @@ -172,8 +172,8 @@ CONFIG_CHROOT=y # CONFIG_UNIX2DOS is not set # CONFIG_DU is not set # CONFIG_FEATURE_DU_DEFAULT_BLOCKSIZE_1K is not set -# CONFIG_ECHO is not set -# CONFIG_FEATURE_FANCY_ECHO is not set +CONFIG_ECHO=y +CONFIG_FEATURE_FANCY_ECHO=y # CONFIG_ENV is not set # CONFIG_FEATURE_ENV_LONG_OPTIONS is not set # CONFIG_EXPAND is not set @@ -203,7 +203,7 @@ CONFIG_CHROOT=y # CONFIG_FEATURE_LS_COLOR_IS_DEFAULT is not set # CONFIG_MD5SUM is not set CONFIG_MKDIR=y -CONFIG_FEATURE_MKDIR_LONG_OPTIONS=y +# CONFIG_FEATURE_MKDIR_LONG_OPTIONS is not set # CONFIG_MKFIFO is not set # CONFIG_MKNOD is not set CONFIG_MV=y @@ -863,7 +863,7 @@ CONFIG_ASH_BASH_COMPAT=y # CONFIG_ASH_JOB_CONTROL is not set # CONFIG_ASH_ALIAS is not set # CONFIG_ASH_GETOPTS is not set -CONFIG_ASH_BUILTIN_ECHO=y +# CONFIG_ASH_BUILTIN_ECHO is not set # CONFIG_ASH_BUILTIN_PRINTF is not set CONFIG_ASH_BUILTIN_TEST=y # CONFIG_ASH_CMDCMD is not set From 8a215637bdcdd9077ce3b39c7f73e80e803b64f4 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Wed, 28 Apr 2010 00:18:18 +0200 Subject: [PATCH 219/320] irserver: - add udevrule to create /dev/irtrans* - add remote config for Philips RC197 - install remote config files - add patch to use /dev/irtrans* --- .../sysutils/irserver/config/81-irtrans.rules | 1 + packages/sysutils/irserver/init.d/30_irserver | 13 ++++- packages/sysutils/irserver/install | 6 ++- ...rver-add_support_for_dev_irtransX-0.1.diff | 30 +++++++++++ .../irserver/remotes/philips_rc197.rem | 51 +++++++++++++++++++ 5 files changed, 98 insertions(+), 3 deletions(-) create mode 100644 packages/sysutils/irserver/config/81-irtrans.rules create mode 100644 packages/sysutils/irserver/patches/01-irserver-add_support_for_dev_irtransX-0.1.diff create mode 100644 packages/sysutils/irserver/remotes/philips_rc197.rem diff --git a/packages/sysutils/irserver/config/81-irtrans.rules b/packages/sysutils/irserver/config/81-irtrans.rules new file mode 100644 index 0000000000..58495b5f37 --- /dev/null +++ b/packages/sysutils/irserver/config/81-irtrans.rules @@ -0,0 +1 @@ +BUS=="usb", ATTRS{interface}=="IRTrans USB", NAME="irtrans%n" diff --git a/packages/sysutils/irserver/init.d/30_irserver b/packages/sysutils/irserver/init.d/30_irserver index d13973dc6b..78fd21af88 100755 --- a/packages/sysutils/irserver/init.d/30_irserver +++ b/packages/sysutils/irserver/init.d/30_irserver @@ -2,9 +2,18 @@ # # runlevels: openelec, textmode +IRTRANS_DEV="/dev/irtrans0" +IRTRANS_LOG="/var/log/irserver.log" +IRTRANS_PID="/var/run/irserver.pid" + +[ "$DEBUG" = "yes" ] && \ + IRTRANS_ARG="$IRTRANS_ARG -loglevel 4" # set loglevel in debugmode + ( progress "Starting IRtrans daemon" - irtrans > /dev/null 2>&1 - + irtrans -logfile $IRTRANS_LOG \ + -pidfile $IRTRANS_PID \ + -daemon $IRTRANS_DEV \ + $IRTRANS_ARG > /dev/null 2>&1 )& diff --git a/packages/sysutils/irserver/install b/packages/sysutils/irserver/install index f38e5ec61b..8c196ca804 100755 --- a/packages/sysutils/irserver/install +++ b/packages/sysutils/irserver/install @@ -10,6 +10,10 @@ mkdir -p $INSTALL/usr/sbin [ $TARGET_ARCH = arm ] && cp -P $PKG_BUILD/irserver_arm $INSTALL/usr/sbin/irserver mkdir -p $INSTALL/usr/share/irtrans/remotes - cp $PKG_BUILD/remotes/ccf.rem $INSTALL/usr/share/irtrans/remotes cp $PKG_BUILD/remotes/irtrans.rem $INSTALL/usr/share/irtrans/remotes cp $PKG_BUILD/remotes/mediacenter.rem $INSTALL/usr/share/irtrans/remotes + cp $PKG_DIR/remotes/*.rem $INSTALL/usr/share/irtrans/remotes + + +mkdir -p $INSTALL/lib/udev/rules.d + cp $PKG_DIR/config/*.rules $INSTALL/lib/udev/rules.d diff --git a/packages/sysutils/irserver/patches/01-irserver-add_support_for_dev_irtransX-0.1.diff b/packages/sysutils/irserver/patches/01-irserver-add_support_for_dev_irtransX-0.1.diff new file mode 100644 index 0000000000..c9aa492d56 --- /dev/null +++ b/packages/sysutils/irserver/patches/01-irserver-add_support_for_dev_irtransX-0.1.diff @@ -0,0 +1,30 @@ +diff -Naur irserver-05.02.10/lowlevel.c irserver-05.02.10.patch/lowlevel.c +--- irserver-05.02.10/lowlevel.c 2010-02-05 01:14:44.000000000 +0100 ++++ irserver-05.02.10.patch/lowlevel.c 2010-04-26 13:22:40.171936190 +0200 +@@ -2638,10 +2638,17 @@ + #endif + #ifdef LINUX + //LINUX Autofind USB devices +- if ((!strncmp (st + q,"usb",3) || !strncmp (st + q,"USB",3)) && !autoflag) { ++ if( !strncmp( st, "/dev/irtrans", 12 ) && !autoflag ) { ++ autoflag = 1; ++ res = 0; ++ get_detail_deviceinfo ("",st,IF_USB); ++ } ++ else if ((!strncmp (st + q,"usb",3) || !strncmp (st + q,"USB",3)) && !autoflag) { + autoflag = 1; + res = 0; + for (i=0;i < 16;i++) { ++ sprintf (dst,"/dev/irtrans%d",i); ++ if (get_detail_deviceinfo ("",dst,IF_USB)) { + sprintf (dst,"/dev/ttyUSB%d",i); + if (get_detail_deviceinfo ("",dst,IF_USB)) { + sprintf (dst,"/dev/usb/ttyUSB%d",i); +@@ -2655,6 +2662,7 @@ + } + } + } ++ } + else if ((!strncmp (st + q,"/dev/usb/tty",12) || !strncmp (st + q,"/dev/ttyUSB",11) || !strncmp (st + q,"/dev/usb/tts",12) || + !strncmp (st + q,"/dev/ttyusb",11) || !strncmp (st + q,"/dev/tts/USB",12)) && !autoflag) { + if (st[q + strlen (st+q) - 1] == ']') { diff --git a/packages/sysutils/irserver/remotes/philips_rc197.rem b/packages/sysutils/irserver/remotes/philips_rc197.rem new file mode 100644 index 0000000000..e9ccb72d5b --- /dev/null +++ b/packages/sysutils/irserver/remotes/philips_rc197.rem @@ -0,0 +1,51 @@ +[REMOTE] + [NAME]philips_rc197 + +[TIMING] + [0][N]0[RC]2[RP]87[FREQ]36[SB][RS][RC6] + +[COMMANDS] + [1][T]0[D]S11101010000000000011110000010000000001 + [2][T]0[D]S11101010000000000011110000010000000010 + [3][T]0[D]S11101010000000000011110000010000000011 + [4][T]0[D]S11101010000000000011110000010000000100 + [5][T]0[D]S11101010000000000011110000010000000101 + [6][T]0[D]S11101010000000000011110000010000000110 + [7][T]0[D]S11101010000000000011110000010000000111 + [8][T]0[D]S11101010000000000011110000010000001000 + [9][T]0[D]S11101010000000000011110000010000001001 + [0][T]0[D]S11101010000000000011110000010000000000 + [ok][T]0[D]S11101010000000000011110000010000100010 + [left][T]0[D]S11101010000000000011110000010000100000 + [right][T]0[D]S11101010000000000011110000010000100001 + [down][T]0[D]S11101010000000000011110000010000011111 + [up][T]0[D]S11101010000000000011110000010000011110 + [play][T]0[D]S11101010000000000011110000010000010110 + [power][T]0[D]S11101010000000000011110000010000001100 + [Stop][T]0[D]S11101010000000000011110000010000011001 + [Rec][T]0[D]S11101010000000000011110000010000010111 + [Rew][T]0[D]S11101010000000000011110000010000010101 + [Fwd][T]0[D]S11101010000000000011110000010000010100 + [Pause][T]0[D]S11101010000000000011110000010000011000 + [Next][T]0[D]S11101010000000000011110000010000011010 + [Prev][T]0[D]S11101010000000000011110000010000011011 + [eHome][T]0[D]S11101010000000000011110000010000001101 + [Back][T]0[D]S11101010000000000011110000010000100011 + [EPG][T]0[D]S11101010000000000011110000010000100110 + [Info][T]0[D]S11101010000000000011110000010000001111 + [LiveTV][T]0[D]S11101010000000000011110000010000100101 + [TV][T]0[D]S11101010000000000011110000010001000110 + [Vol+][T]0[D]S11101010000000000011110000010000010000 + [Vol-][T]0[D]S11101010000000000011110000010000010001 + [Mute][T]0[D]S11101010000000000011110000010000001110 + [Ch+][T]0[D]S11101010000000000011110000010000010010 + [Ch-][T]0[D]S11101010000000000011110000010000010011 + [Enter][T]0[D]S11101010000000000011110000010000001011 + [Clear][T]0[D]S11101010000000000011110000010000001010 + [DVDMenu][T]0[D]S11101010000000000011110000010000100100 + [Rectv][T]0[D]S11101010000000000011110000010001001000 + [Teletext][T][0][D]S11101010000000000011110000010001011010 + [Red][T][0][D]S11101010000000000011110000010001011011 + [Green][T][0][D]S11101010000000000011110000010001011100 + [Yellow][T][0][D]S11101010000000000011110000010001011101 + [Blue][T][0][D]S11101010000000000011110000010001011110 From bf4ca416ab381dbfd159ca9b9017d9bfbfff39d9 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Wed, 28 Apr 2010 00:19:01 +0200 Subject: [PATCH 220/320] lcdproc: - some usefull settings to /etc/LCDd.conf --- packages/sysutils/lcdproc/build | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/packages/sysutils/lcdproc/build b/packages/sysutils/lcdproc/build index da38b67505..f35d8c9c57 100755 --- a/packages/sysutils/lcdproc/build +++ b/packages/sysutils/lcdproc/build @@ -17,4 +17,8 @@ make sed -i -e "s|^DriverPath=.*$|DriverPath=/usr/lib/lcdproc/|" LCDd.conf sed -i -e "s|^Driver=.*$|Driver=irtrans|" LCDd.conf -sed -i -e "s|^#Foreground=.*$|Foreground=no|" LCDd.conf \ No newline at end of file +sed -i -e "s|^#Foreground=.*$|Foreground=no|" LCDd.conf +sed -i -e "s|^#ServerScreen=.*$|ServerScreen=blank|" LCDd.conf +sed -i -e "s|^#Backlight=.*$|Backlight=open|" LCDd.conf +sed -i -e "s|^#Heartbeat=.*$|Heartbeat=open|" LCDd.conf +sed -i -e "s|^#TitleSpeed=.*$|TitleSpeed=10|" LCDd.conf From 5ca1b266eb515082cba220a4a04988b978b10ec1 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Wed, 28 Apr 2010 00:20:03 +0200 Subject: [PATCH 221/320] lcdproc: - add user and group nobody - dont install lcdproc bin - dont use /storage/.config for configfiles (not needed) --- packages/sysutils/lcdproc/install | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/packages/sysutils/lcdproc/install b/packages/sysutils/lcdproc/install index 1bd711dce1..969d25da3c 100755 --- a/packages/sysutils/lcdproc/install +++ b/packages/sysutils/lcdproc/install @@ -7,19 +7,14 @@ $SCRIPTS/install irserver PKG_DIR=`find $PACKAGES -type d -name $1` +add_user nobody x 999 999 "Nobody" "/" "/bin/sh" +add_group nobody 999 + mkdir -p $INSTALL/usr/sbin cp $PKG_BUILD/server/LCDd $INSTALL/usr/sbin -mkdir -p $INSTALL/usr/bin - cp $PKG_BUILD/clients/lcdproc/lcdproc $INSTALL/usr/bin - mkdir -p $INSTALL/usr/lib/lcdproc cp $PKG_BUILD/server/drivers/*.so $INSTALL/usr/lib/lcdproc mkdir -p $INSTALL/etc cp $PKG_BUILD/LCDd.conf $INSTALL/etc - cp $PKG_BUILD/clients/lcdproc/lcdproc.conf $INSTALL/etc - -mkdir -p $INSTALL/usr/config - cp $PKG_BUILD/LCDd.conf $INSTALL/usr/config/LCDd.conf.sample - cp $PKG_BUILD/clients/lcdproc/lcdproc.conf $INSTALL/usr/config/lcdproc.conf.sample From 60a051ce1b3652b9466cd0b82bbd883a3b158e7b Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Wed, 28 Apr 2010 00:20:26 +0200 Subject: [PATCH 222/320] lcdproc: - cleanup init script --- packages/sysutils/lcdproc/init.d/33_lcdproc | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) diff --git a/packages/sysutils/lcdproc/init.d/33_lcdproc b/packages/sysutils/lcdproc/init.d/33_lcdproc index d29efb58dd..119dbef8bc 100755 --- a/packages/sysutils/lcdproc/init.d/33_lcdproc +++ b/packages/sysutils/lcdproc/init.d/33_lcdproc @@ -5,16 +5,6 @@ ( progress "Starting LCD daemon" - LCD_USERCONF="/storage/.config/LCDd.conf" - LCD_DEFCONF="/etc/LCDd.conf" - LCD_ARG="" - - if [ -f $LCD_USERCONF ]; then - LCD_ARG="$LCD_ARG -c $LCD_USERCONF" - else - LCD_ARG="$LCD_ARG -c $LCD_DEFCONF" - fi - - LCDd $LCD_ARG > /dev/null 2>&1 + LCDd -c /etc/LCDd.conf > /dev/null 2>&1 )& From f6507cc11dc59b27b5bbb9049c102debef231279 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Wed, 28 Apr 2010 14:01:04 +0200 Subject: [PATCH 223/320] irserver: - fix irserver init script --- packages/sysutils/irserver/init.d/30_irserver | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/packages/sysutils/irserver/init.d/30_irserver b/packages/sysutils/irserver/init.d/30_irserver index 78fd21af88..16e8c106c5 100755 --- a/packages/sysutils/irserver/init.d/30_irserver +++ b/packages/sysutils/irserver/init.d/30_irserver @@ -3,17 +3,17 @@ # runlevels: openelec, textmode IRTRANS_DEV="/dev/irtrans0" -IRTRANS_LOG="/var/log/irserver.log" -IRTRANS_PID="/var/run/irserver.pid" +IRSERVER_LOG="/var/log/irserver.log" +IRSERVER_PID="/var/run/irserver.pid" [ "$DEBUG" = "yes" ] && \ - IRTRANS_ARG="$IRTRANS_ARG -loglevel 4" # set loglevel in debugmode + IRSERVER_ARG="$IRSERVER_ARG -loglevel 4" # set loglevel in debugmode ( progress "Starting IRtrans daemon" - irtrans -logfile $IRTRANS_LOG \ - -pidfile $IRTRANS_PID \ - -daemon $IRTRANS_DEV \ - $IRTRANS_ARG > /dev/null 2>&1 + irserver -logfile $IRSERVER_LOG \ + -pidfile $IRSERVER_PID \ + -daemon $IRTRANS_DEV \ + $IRSERVER_ARG > /dev/null 2>&1 )& From 8c7d320c038fc94d96427690230326592640f356 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Wed, 28 Apr 2010 14:03:08 +0200 Subject: [PATCH 224/320] irserver: - rename remote philips-rc197.rem configfile - add codes for "star" and "hash" --- .../irserver/remotes/{philips_rc197.rem => philips-rc197.rem} | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) rename packages/sysutils/irserver/remotes/{philips_rc197.rem => philips-rc197.rem} (94%) diff --git a/packages/sysutils/irserver/remotes/philips_rc197.rem b/packages/sysutils/irserver/remotes/philips-rc197.rem similarity index 94% rename from packages/sysutils/irserver/remotes/philips_rc197.rem rename to packages/sysutils/irserver/remotes/philips-rc197.rem index e9ccb72d5b..f3ca22a38f 100644 --- a/packages/sysutils/irserver/remotes/philips_rc197.rem +++ b/packages/sysutils/irserver/remotes/philips-rc197.rem @@ -1,5 +1,5 @@ [REMOTE] - [NAME]philips_rc197 + [NAME]philips-rc197 [TIMING] [0][N]0[RC]2[RP]87[FREQ]36[SB][RS][RC6] @@ -15,6 +15,8 @@ [8][T]0[D]S11101010000000000011110000010000001000 [9][T]0[D]S11101010000000000011110000010000001001 [0][T]0[D]S11101010000000000011110000010000000000 + [Star][T]0[D]S11101010000000000011110000010000011101 + [Hash][T]0[D]S11101010000000000011110000010000011100 [ok][T]0[D]S11101010000000000011110000010000100010 [left][T]0[D]S11101010000000000011110000010000100000 [right][T]0[D]S11101010000000000011110000010000100001 From 521d5de8ce2904a5d8e93259288bc8d7b02a77a5 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Wed, 28 Apr 2010 18:34:46 +0200 Subject: [PATCH 225/320] new package: - add theme xbmc-theme-PM3-HD --- packages/mediacenter/xbmc-theme-PM3-HD/install | 6 ++++++ packages/mediacenter/xbmc-theme-PM3-HD/url | 1 + 2 files changed, 7 insertions(+) create mode 100755 packages/mediacenter/xbmc-theme-PM3-HD/install create mode 100644 packages/mediacenter/xbmc-theme-PM3-HD/url diff --git a/packages/mediacenter/xbmc-theme-PM3-HD/install b/packages/mediacenter/xbmc-theme-PM3-HD/install new file mode 100755 index 0000000000..b9b7f8903c --- /dev/null +++ b/packages/mediacenter/xbmc-theme-PM3-HD/install @@ -0,0 +1,6 @@ +#!/bin/sh + +. config/options + +mkdir -p $INSTALL/usr/share/xbmc/addons/skin.pm3-hd + cp -R $PKG_BUILD/* $INSTALL/usr/share/xbmc/addons/skin.pm3-hd diff --git a/packages/mediacenter/xbmc-theme-PM3-HD/url b/packages/mediacenter/xbmc-theme-PM3-HD/url new file mode 100644 index 0000000000..1c5183dbb3 --- /dev/null +++ b/packages/mediacenter/xbmc-theme-PM3-HD/url @@ -0,0 +1 @@ +http://sources.openelec.tv/svn/xbmc-theme-PM3-HD-29605.tar.bz2 From 710de7f70c53d63db2c193b0964351d7badced70 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Wed, 28 Apr 2010 18:35:21 +0200 Subject: [PATCH 226/320] xbmc: - update to xbmc-29605 --- packages/mediacenter/xbmc/install | 2 -- packages/mediacenter/xbmc/url | 2 +- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/packages/mediacenter/xbmc/install b/packages/mediacenter/xbmc/install index 4ef6e081fd..4ea16a6758 100755 --- a/packages/mediacenter/xbmc/install +++ b/packages/mediacenter/xbmc/install @@ -85,8 +85,6 @@ mkdir -p $INSTALL/usr/share/xbmc/media cp -P $PKG_BUILD/media/icon.png $INSTALL/usr/share/xbmc/media/ cp -P $PKG_DIR/splash/Splash.png $INSTALL/usr/share/xbmc/media/ -mkdir -p $INSTALL/usr/share/xbmc/skin - mkdir -p $INSTALL/usr/share/xbmc/sounds cp -PR $PKG_BUILD/sounds/* $INSTALL/usr/share/xbmc/sounds diff --git a/packages/mediacenter/xbmc/url b/packages/mediacenter/xbmc/url index f995ab9a88..a97051b150 100644 --- a/packages/mediacenter/xbmc/url +++ b/packages/mediacenter/xbmc/url @@ -1 +1 @@ -http://sources.openelec.tv/svn/xbmc-29490.tar.bz2 +http://sources.openelec.tv/svn/xbmc-29605.tar.bz2 From 03c789329cebb37174a34d2e73006c986eadf858 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Wed, 28 Apr 2010 18:35:45 +0200 Subject: [PATCH 227/320] xbmc-theme-Confluence: - update to xbmc-theme-Confluence-29605 --- packages/mediacenter/xbmc-theme-Confluence/install | 4 ++-- packages/mediacenter/xbmc-theme-Confluence/url | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/mediacenter/xbmc-theme-Confluence/install b/packages/mediacenter/xbmc-theme-Confluence/install index ff3f06ff8c..e9d1d6b44c 100755 --- a/packages/mediacenter/xbmc-theme-Confluence/install +++ b/packages/mediacenter/xbmc-theme-Confluence/install @@ -2,5 +2,5 @@ . config/options -mkdir -p $INSTALL/usr/share/xbmc/skin/Confluence - cp -R $PKG_BUILD/* $INSTALL/usr/share/xbmc/skin/Confluence +mkdir -p $INSTALL/usr/share/xbmc/addons/skin.confluence + cp -R $PKG_BUILD/* $INSTALL/usr/share/xbmc/addons/skin.confluence diff --git a/packages/mediacenter/xbmc-theme-Confluence/url b/packages/mediacenter/xbmc-theme-Confluence/url index 537ae45965..6cbaee5ac4 100644 --- a/packages/mediacenter/xbmc-theme-Confluence/url +++ b/packages/mediacenter/xbmc-theme-Confluence/url @@ -1 +1 @@ -http://sources.openelec.tv/svn/xbmc-theme-Confluence-29490.tar.bz2 +http://sources.openelec.tv/svn/xbmc-theme-Confluence-29605.tar.bz2 From 5e452897dcb6d3d6af59c73d221d10938b15ad80 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Wed, 28 Apr 2010 18:36:19 +0200 Subject: [PATCH 228/320] mediacenter: - install theme PM3-HD (disabled) --- packages/mediacenter/install | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/mediacenter/install b/packages/mediacenter/install index 3dbd24daf4..18e85b7297 100755 --- a/packages/mediacenter/install +++ b/packages/mediacenter/install @@ -5,6 +5,7 @@ # Base $SCRIPTS/install $MEDIACENTER $SCRIPTS/install $MEDIACENTER-theme-Confluence +# $SCRIPTS/install $MEDIACENTER-theme-PM3-HD # Plugins $SCRIPTS/install plugins \ No newline at end of file From d31100aec095c07befc6fc9d91b50f802d2e306d Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Wed, 28 Apr 2010 18:38:50 +0200 Subject: [PATCH 229/320] glib: - cosmetics --- packages/devel/glib/install | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/devel/glib/install b/packages/devel/glib/install index 2a4172be3f..36e99db878 100755 --- a/packages/devel/glib/install +++ b/packages/devel/glib/install @@ -7,4 +7,5 @@ $SCRIPTS/install zlib mkdir -p $INSTALL/usr/lib cp -P `find $PKG_BUILD/.build-target/g{lib,module,object,thread,io} -name *.so*` $INSTALL/usr/lib rm -rf $INSTALL/usr/lib/libg{lib,module,object,thread,io}*.so*T - cp $PKG_BUILD/.build-target/glib/libcharset/charset.alias $INSTALL/usr/lib \ No newline at end of file + + cp $PKG_BUILD/.build-target/glib/libcharset/charset.alias $INSTALL/usr/lib From e5cc12d62fc1ae57a856e3729a243037e0410afa Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Wed, 28 Apr 2010 18:39:33 +0200 Subject: [PATCH 230/320] new package: - add package xbmc-theme-PM3-HD (disabled) --- packages/mediacenter/install | 1 + packages/mediacenter/xbmc-theme-PM3-HD/install | 6 ++++++ packages/mediacenter/xbmc-theme-PM3-HD/url | 1 + 3 files changed, 8 insertions(+) create mode 100644 packages/mediacenter/xbmc-theme-PM3-HD/install create mode 100644 packages/mediacenter/xbmc-theme-PM3-HD/url diff --git a/packages/mediacenter/install b/packages/mediacenter/install index 3dbd24daf4..18e85b7297 100755 --- a/packages/mediacenter/install +++ b/packages/mediacenter/install @@ -5,6 +5,7 @@ # Base $SCRIPTS/install $MEDIACENTER $SCRIPTS/install $MEDIACENTER-theme-Confluence +# $SCRIPTS/install $MEDIACENTER-theme-PM3-HD # Plugins $SCRIPTS/install plugins \ No newline at end of file diff --git a/packages/mediacenter/xbmc-theme-PM3-HD/install b/packages/mediacenter/xbmc-theme-PM3-HD/install new file mode 100644 index 0000000000..b9b7f8903c --- /dev/null +++ b/packages/mediacenter/xbmc-theme-PM3-HD/install @@ -0,0 +1,6 @@ +#!/bin/sh + +. config/options + +mkdir -p $INSTALL/usr/share/xbmc/addons/skin.pm3-hd + cp -R $PKG_BUILD/* $INSTALL/usr/share/xbmc/addons/skin.pm3-hd diff --git a/packages/mediacenter/xbmc-theme-PM3-HD/url b/packages/mediacenter/xbmc-theme-PM3-HD/url new file mode 100644 index 0000000000..1c5183dbb3 --- /dev/null +++ b/packages/mediacenter/xbmc-theme-PM3-HD/url @@ -0,0 +1 @@ +http://sources.openelec.tv/svn/xbmc-theme-PM3-HD-29605.tar.bz2 From 4f7859a5fc6ded08c5968581b97da00d94b64111 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Wed, 28 Apr 2010 18:39:57 +0200 Subject: [PATCH 231/320] xbmc: - update to xbmc-29605 --- packages/mediacenter/xbmc/install | 2 -- packages/mediacenter/xbmc/url | 2 +- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/packages/mediacenter/xbmc/install b/packages/mediacenter/xbmc/install index 4ef6e081fd..4ea16a6758 100755 --- a/packages/mediacenter/xbmc/install +++ b/packages/mediacenter/xbmc/install @@ -85,8 +85,6 @@ mkdir -p $INSTALL/usr/share/xbmc/media cp -P $PKG_BUILD/media/icon.png $INSTALL/usr/share/xbmc/media/ cp -P $PKG_DIR/splash/Splash.png $INSTALL/usr/share/xbmc/media/ -mkdir -p $INSTALL/usr/share/xbmc/skin - mkdir -p $INSTALL/usr/share/xbmc/sounds cp -PR $PKG_BUILD/sounds/* $INSTALL/usr/share/xbmc/sounds diff --git a/packages/mediacenter/xbmc/url b/packages/mediacenter/xbmc/url index f995ab9a88..a97051b150 100644 --- a/packages/mediacenter/xbmc/url +++ b/packages/mediacenter/xbmc/url @@ -1 +1 @@ -http://sources.openelec.tv/svn/xbmc-29490.tar.bz2 +http://sources.openelec.tv/svn/xbmc-29605.tar.bz2 From 1022adca8424861ca7b240c0e61de98f03d1f6c0 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Wed, 28 Apr 2010 18:40:26 +0200 Subject: [PATCH 232/320] xbmc-theme-Confluence: - update to xbmc-theme-Confluence-29605 --- packages/mediacenter/xbmc-theme-Confluence/install | 4 ++-- packages/mediacenter/xbmc-theme-Confluence/url | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/mediacenter/xbmc-theme-Confluence/install b/packages/mediacenter/xbmc-theme-Confluence/install index ff3f06ff8c..e9d1d6b44c 100755 --- a/packages/mediacenter/xbmc-theme-Confluence/install +++ b/packages/mediacenter/xbmc-theme-Confluence/install @@ -2,5 +2,5 @@ . config/options -mkdir -p $INSTALL/usr/share/xbmc/skin/Confluence - cp -R $PKG_BUILD/* $INSTALL/usr/share/xbmc/skin/Confluence +mkdir -p $INSTALL/usr/share/xbmc/addons/skin.confluence + cp -R $PKG_BUILD/* $INSTALL/usr/share/xbmc/addons/skin.confluence diff --git a/packages/mediacenter/xbmc-theme-Confluence/url b/packages/mediacenter/xbmc-theme-Confluence/url index 537ae45965..6cbaee5ac4 100644 --- a/packages/mediacenter/xbmc-theme-Confluence/url +++ b/packages/mediacenter/xbmc-theme-Confluence/url @@ -1 +1 @@ -http://sources.openelec.tv/svn/xbmc-theme-Confluence-29490.tar.bz2 +http://sources.openelec.tv/svn/xbmc-theme-Confluence-29605.tar.bz2 From 3201d39adaa79ca184efc163e142fd0bb60c8ba5 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Wed, 28 Apr 2010 18:40:53 +0200 Subject: [PATCH 233/320] projects/generic/options: - build with vaapi support --- projects/generic/options | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/projects/generic/options b/projects/generic/options index 5c1d29f96d..9445078e59 100644 --- a/projects/generic/options +++ b/projects/generic/options @@ -86,7 +86,7 @@ VDPAU="yes" # Use VAAPI video acceleration (needs intel i965 driver and a supported card) - VAAPI="no" + VAAPI="yes" # Use Broadcom CrystalHD Decoder Card for video acceleration # (needs Kernelsupport for Broadcom Decoder Card and a supported card) From d54bb9109e0192c5bfcc5a74f9f0b3ed8ff09cfc Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Wed, 28 Apr 2010 18:41:20 +0200 Subject: [PATCH 234/320] tools/mkpkg/mkpkg_xbmc: - update to the latest svn changes --- tools/mkpkg/mkpkg_xbmc | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/tools/mkpkg/mkpkg_xbmc b/tools/mkpkg/mkpkg_xbmc index 51f7959a2e..e22781a15e 100755 --- a/tools/mkpkg/mkpkg_xbmc +++ b/tools/mkpkg/mkpkg_xbmc @@ -18,13 +18,13 @@ echo "cleaning sources..." echo "seperating theme..." rm -rf xbmc-theme-Confluence-$SVN_REV - mv xbmc-$SVN_REV/skin/Confluence xbmc-theme-Confluence-$SVN_REV + mv xbmc-$SVN_REV/addons/skin.confluence xbmc-theme-Confluence-$SVN_REV + mv xbmc-$SVN_REV/addons/skin.pm3-hd xbmc-theme-PM3-HD-$SVN_REV echo "cleaning sources..." - rm -rf xbmc-$SVN_REV/visualizations/XBMCProjectM/win32 + rm -rf xbmc-$SVN_REV/visualisations rm -rf xbmc-$SVN_REV/lib/libSDL-* rm -rf xbmc-$SVN_REV/lib/libcurl-* - rm -rf xbmc-$SVN_REV/skin rm -rf xbmc-$SVN_REV/project for i in "Changelog" "Fake\ Episode\ Maker" "MingwBuildEnvironment" \ @@ -40,7 +40,9 @@ echo "cleaning sources..." echo "packing sources..." tar cvjf xbmc-$SVN_REV.tar.bz2 xbmc-$SVN_REV tar cvjf xbmc-theme-Confluence-$SVN_REV.tar.bz2 xbmc-theme-Confluence-$SVN_REV + tar cvjf xbmc-theme-PM3-HD-$SVN_REV.tar.bz2 xbmc-theme-PM3-HD-$SVN_REV echo "remove temporary sourcedir..." rm -rf xbmc-$SVN_REV rm -rf xbmc-theme-Confluence-$SVN_REV + rm -rf xbmc-theme-PM3-HD-$SVN_REV From b842ef757168aefdc5459c860185cdc68e7d71cb Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Wed, 28 Apr 2010 20:41:21 +0200 Subject: [PATCH 235/320] irserver: - move to sysutils/remote --- packages/sysutils/irserver/init.d/30_irserver | 19 -------------- packages/sysutils/{ => remote}/irserver/build | 0 .../irserver/config/81-irtrans.rules | 0 .../remote/irserver/init.d/30_irserver | 25 +++++++++++++++++++ .../sysutils/{ => remote}/irserver/install | 0 ...rver-add_support_for_dev_irtransX-0.1.diff | 0 .../irserver/remotes/philips-rc197.rem | 0 packages/sysutils/{ => remote}/irserver/url | 0 8 files changed, 25 insertions(+), 19 deletions(-) delete mode 100755 packages/sysutils/irserver/init.d/30_irserver rename packages/sysutils/{ => remote}/irserver/build (100%) rename packages/sysutils/{ => remote}/irserver/config/81-irtrans.rules (100%) create mode 100755 packages/sysutils/remote/irserver/init.d/30_irserver rename packages/sysutils/{ => remote}/irserver/install (100%) rename packages/sysutils/{ => remote}/irserver/patches/01-irserver-add_support_for_dev_irtransX-0.1.diff (100%) rename packages/sysutils/{ => remote}/irserver/remotes/philips-rc197.rem (100%) rename packages/sysutils/{ => remote}/irserver/url (100%) diff --git a/packages/sysutils/irserver/init.d/30_irserver b/packages/sysutils/irserver/init.d/30_irserver deleted file mode 100755 index 16e8c106c5..0000000000 --- a/packages/sysutils/irserver/init.d/30_irserver +++ /dev/null @@ -1,19 +0,0 @@ -# start the IRtrans daemon -# -# runlevels: openelec, textmode - -IRTRANS_DEV="/dev/irtrans0" -IRSERVER_LOG="/var/log/irserver.log" -IRSERVER_PID="/var/run/irserver.pid" - -[ "$DEBUG" = "yes" ] && \ - IRSERVER_ARG="$IRSERVER_ARG -loglevel 4" # set loglevel in debugmode - -( - progress "Starting IRtrans daemon" - - irserver -logfile $IRSERVER_LOG \ - -pidfile $IRSERVER_PID \ - -daemon $IRTRANS_DEV \ - $IRSERVER_ARG > /dev/null 2>&1 -)& diff --git a/packages/sysutils/irserver/build b/packages/sysutils/remote/irserver/build similarity index 100% rename from packages/sysutils/irserver/build rename to packages/sysutils/remote/irserver/build diff --git a/packages/sysutils/irserver/config/81-irtrans.rules b/packages/sysutils/remote/irserver/config/81-irtrans.rules similarity index 100% rename from packages/sysutils/irserver/config/81-irtrans.rules rename to packages/sysutils/remote/irserver/config/81-irtrans.rules diff --git a/packages/sysutils/remote/irserver/init.d/30_irserver b/packages/sysutils/remote/irserver/init.d/30_irserver new file mode 100755 index 0000000000..cc77fcf556 --- /dev/null +++ b/packages/sysutils/remote/irserver/init.d/30_irserver @@ -0,0 +1,25 @@ +# start the IRtrans daemon +# +# runlevels: openelec, textmode + +[ -f /storage/.config/remote.conf ] && . /storage/.config/remote.conf +[ -f /storage/.config/lcd.conf ] && . /storage/.config/lcd.conf + +if [ "$REMOTE_BACKEND" = "irtrans" -o "$LCD_DRIVER" = "irtrans" ]; then + + progress "Starting IRtrans daemon" + + IRTRANS_DEV="/dev/irtrans0" + IRSERVER_LOG="/var/log/irserver.log" + IRSERVER_PID="/var/run/irserver.pid" + + [ ! "$REMOTE_BACKEND" = "irtrans" ] && \ + IRSERVER_ARG="$IRSERVER_ARG -no_lirc" # dont run in lirc mode + + [ "$DEBUG" = "yes" ] && \ + IRSERVER_ARG="$IRSERVER_ARG -loglevel 4" # set loglevel in debugmode + + irserver -logfile $IRSERVER_LOG -pidfile $IRSERVER_PID \ + -daemon $IRTRANS_DEV $IRSERVER_ARG > /dev/null 2>&1 + +fi \ No newline at end of file diff --git a/packages/sysutils/irserver/install b/packages/sysutils/remote/irserver/install similarity index 100% rename from packages/sysutils/irserver/install rename to packages/sysutils/remote/irserver/install diff --git a/packages/sysutils/irserver/patches/01-irserver-add_support_for_dev_irtransX-0.1.diff b/packages/sysutils/remote/irserver/patches/01-irserver-add_support_for_dev_irtransX-0.1.diff similarity index 100% rename from packages/sysutils/irserver/patches/01-irserver-add_support_for_dev_irtransX-0.1.diff rename to packages/sysutils/remote/irserver/patches/01-irserver-add_support_for_dev_irtransX-0.1.diff diff --git a/packages/sysutils/irserver/remotes/philips-rc197.rem b/packages/sysutils/remote/irserver/remotes/philips-rc197.rem similarity index 100% rename from packages/sysutils/irserver/remotes/philips-rc197.rem rename to packages/sysutils/remote/irserver/remotes/philips-rc197.rem diff --git a/packages/sysutils/irserver/url b/packages/sysutils/remote/irserver/url similarity index 100% rename from packages/sysutils/irserver/url rename to packages/sysutils/remote/irserver/url From 71ccc96ca747aa7fb63a82228deeedf2a5cfd368 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Wed, 28 Apr 2010 20:41:48 +0200 Subject: [PATCH 236/320] lirc: - move to sysutils/remote --- packages/sysutils/lirc/init.d/32_lirc | 18 - packages/sysutils/{ => remote}/lirc/build | 0 .../lirc/config/lircd_mceusb.conf | 0 packages/sysutils/remote/lirc/init.d/32_lirc | 18 + packages/sysutils/{ => remote}/lirc/install | 0 .../lirc/lirc-use_lirc.h_from_kernel-0.1.diff | 504 ++++++++++++++++++ packages/sysutils/{ => remote}/lirc/url | 0 7 files changed, 522 insertions(+), 18 deletions(-) delete mode 100755 packages/sysutils/lirc/init.d/32_lirc rename packages/sysutils/{ => remote}/lirc/build (100%) rename packages/sysutils/{ => remote}/lirc/config/lircd_mceusb.conf (100%) create mode 100755 packages/sysutils/remote/lirc/init.d/32_lirc rename packages/sysutils/{ => remote}/lirc/install (100%) create mode 100644 packages/sysutils/remote/lirc/lirc-use_lirc.h_from_kernel-0.1.diff rename packages/sysutils/{ => remote}/lirc/url (100%) diff --git a/packages/sysutils/lirc/init.d/32_lirc b/packages/sysutils/lirc/init.d/32_lirc deleted file mode 100755 index 3501a9d8f2..0000000000 --- a/packages/sysutils/lirc/init.d/32_lirc +++ /dev/null @@ -1,18 +0,0 @@ -# start the LIRC daemon -# -# runlevels: openelec, textmode - -LIRC_DRIVER="default" -LIRC_DEVICE="/dev/lirc0" -LIRC_OUTPUT="/dev/lircd" - -( - progress "Starting LIRC daemon" - - - $IONICE mkdir -p /var/run/lirc - - lircd --driver=$LIRC_DRIVER \ - --device=$LIRC_DEVICE \ - --output=$LIRC_OUTPUT -)& diff --git a/packages/sysutils/lirc/build b/packages/sysutils/remote/lirc/build similarity index 100% rename from packages/sysutils/lirc/build rename to packages/sysutils/remote/lirc/build diff --git a/packages/sysutils/lirc/config/lircd_mceusb.conf b/packages/sysutils/remote/lirc/config/lircd_mceusb.conf similarity index 100% rename from packages/sysutils/lirc/config/lircd_mceusb.conf rename to packages/sysutils/remote/lirc/config/lircd_mceusb.conf diff --git a/packages/sysutils/remote/lirc/init.d/32_lirc b/packages/sysutils/remote/lirc/init.d/32_lirc new file mode 100755 index 0000000000..a1dd209292 --- /dev/null +++ b/packages/sysutils/remote/lirc/init.d/32_lirc @@ -0,0 +1,18 @@ +# start the LIRC daemon +# +# runlevels: openelec, textmode + +[ -f /storage/.config/remote.conf ] && . /storage/.config/remote.conf + +if [ "$REMOTE_BACKEND" = "lirc" ]; then + + progress "Starting LIRC daemon" + + LIRC_DRIVER="default" + LIRC_DEVICE="/dev/lirc0" + LIRC_OUTPUT="/dev/lircd" + + $IONICE mkdir -p /var/run/lirc + lircd --driver=$LIRC_DRIVER --device=$LIRC_DEVICE --output=$LIRC_OUTPUT + +fi diff --git a/packages/sysutils/lirc/install b/packages/sysutils/remote/lirc/install similarity index 100% rename from packages/sysutils/lirc/install rename to packages/sysutils/remote/lirc/install diff --git a/packages/sysutils/remote/lirc/lirc-use_lirc.h_from_kernel-0.1.diff b/packages/sysutils/remote/lirc/lirc-use_lirc.h_from_kernel-0.1.diff new file mode 100644 index 0000000000..f70d415552 --- /dev/null +++ b/packages/sysutils/remote/lirc/lirc-use_lirc.h_from_kernel-0.1.diff @@ -0,0 +1,504 @@ +diff -Naur lirc-20100408/daemons/hardware.h lirc-20100408.patch/daemons/hardware.h +--- lirc-20100408/daemons/hardware.h 2009-01-04 23:17:39.000000000 +0100 ++++ lirc-20100408.patch/daemons/hardware.h 2010-04-09 16:05:14.406356679 +0200 +@@ -13,7 +13,7 @@ + #ifndef _HARDWARE_H + #define _HARDWARE_H + +-#include "drivers/lirc.h" ++#include + #include "ir_remote_types.h" + + struct hardware +diff -Naur lirc-20100408/daemons/hw_accent.h lirc-20100408.patch/daemons/hw_accent.h +--- lirc-20100408/daemons/hw_accent.h 2007-07-29 20:20:06.000000000 +0200 ++++ lirc-20100408.patch/daemons/hw_accent.h 2010-04-09 16:05:14.356327542 +0200 +@@ -27,7 +27,7 @@ + #ifndef _HW_ACCENT_H + #define _HW_ACCENT_H + +-#include "drivers/lirc.h" ++#include + + int accent_decode (struct ir_remote *remote, + ir_code *prep, +diff -Naur lirc-20100408/daemons/hw_bte.h lirc-20100408.patch/daemons/hw_bte.h +--- lirc-20100408/daemons/hw_bte.h 2007-07-29 20:20:06.000000000 +0200 ++++ lirc-20100408.patch/daemons/hw_bte.h 2010-04-09 16:05:14.362326501 +0200 +@@ -26,7 +26,7 @@ + #ifndef HW_BTE_H + #define HW_BTE_H + +-#include "drivers/lirc.h" ++#include + + int bte_decode(struct ir_remote *remote, + ir_code *prep,ir_code *codep,ir_code *postp, +diff -Naur lirc-20100408/daemons/hw_caraca.h lirc-20100408.patch/daemons/hw_caraca.h +--- lirc-20100408/daemons/hw_caraca.h 2007-07-29 20:20:06.000000000 +0200 ++++ lirc-20100408.patch/daemons/hw_caraca.h 2010-04-09 16:05:14.400327269 +0200 +@@ -13,7 +13,7 @@ + #ifndef HW_CARACA_H + #define HW_CARACA_H + +-#include "drivers/lirc.h" ++#include + + int caraca_decode(struct ir_remote *remote, + ir_code *prep,ir_code *codep,ir_code *postp, +diff -Naur lirc-20100408/daemons/hw_creative.h lirc-20100408.patch/daemons/hw_creative.h +--- lirc-20100408/daemons/hw_creative.h 2007-07-29 20:20:07.000000000 +0200 ++++ lirc-20100408.patch/daemons/hw_creative.h 2010-04-09 16:05:14.393357176 +0200 +@@ -13,7 +13,7 @@ + #ifndef _HW_CREATIVE_H + #define _HW_CREATIVE_H + +-#include "drivers/lirc.h" ++#include + + int creative_decode(struct ir_remote *remote, + ir_code *prep,ir_code *codep,ir_code *postp, +diff -Naur lirc-20100408/daemons/hw_ea65.h lirc-20100408.patch/daemons/hw_ea65.h +--- lirc-20100408/daemons/hw_ea65.h 2007-07-29 20:20:07.000000000 +0200 ++++ lirc-20100408.patch/daemons/hw_ea65.h 2010-04-09 16:05:14.346327762 +0200 +@@ -24,7 +24,7 @@ + #ifndef HW_EA65_H + #define HW_EA65_H + +-#include "drivers/lirc.h" ++#include + + int ea65_decode(struct ir_remote *remote, + ir_code *prep,ir_code *codep,ir_code *postp, +diff -Naur lirc-20100408/daemons/hw_irlink.h lirc-20100408.patch/daemons/hw_irlink.h +--- lirc-20100408/daemons/hw_irlink.h 2008-01-13 21:50:43.000000000 +0100 ++++ lirc-20100408.patch/daemons/hw_irlink.h 2010-04-09 16:05:14.350327534 +0200 +@@ -23,7 +23,7 @@ + #ifndef HW_IRLINK_H + #define HW_IRLINK_H + +-#include "drivers/lirc.h" ++#include + + int irlink_decode (struct ir_remote *remote, + ir_code *prep, +diff -Naur lirc-20100408/daemons/hw_irman.h lirc-20100408.patch/daemons/hw_irman.h +--- lirc-20100408/daemons/hw_irman.h 2007-07-29 20:20:08.000000000 +0200 ++++ lirc-20100408.patch/daemons/hw_irman.h 2010-04-09 16:05:14.368352769 +0200 +@@ -13,7 +13,7 @@ + #ifndef _HW_IRMAN_H + #define _HW_IRMAN_H + +-#include "drivers/lirc.h" ++#include + + int irman_decode(struct ir_remote *remote, + ir_code *prep,ir_code *codep,ir_code *postp, +diff -Naur lirc-20100408/daemons/hw_logitech.h lirc-20100408.patch/daemons/hw_logitech.h +--- lirc-20100408/daemons/hw_logitech.h 2007-07-29 20:20:08.000000000 +0200 ++++ lirc-20100408.patch/daemons/hw_logitech.h 2010-04-09 16:05:14.348327369 +0200 +@@ -13,7 +13,7 @@ + #ifndef _HW_LOGITECH_H + #define _HW_LOGITECH_H + +-#include "drivers/lirc.h" ++#include + + int logitech_decode(struct ir_remote *remote, + ir_code *prep,ir_code *codep,ir_code *postp, +diff -Naur lirc-20100408/daemons/hw_mouseremote.h lirc-20100408.patch/daemons/hw_mouseremote.h +--- lirc-20100408/daemons/hw_mouseremote.h 2007-07-29 20:20:08.000000000 +0200 ++++ lirc-20100408.patch/daemons/hw_mouseremote.h 2010-04-09 16:05:14.395328008 +0200 +@@ -16,7 +16,7 @@ + #ifndef HW_MOUSEREMOTE_H + #define HW_MOUSEREMOTE_H + +-#include "drivers/lirc.h" ++#include + + int mouseremote_decode(struct ir_remote *remote, + ir_code *prep,ir_code *codep,ir_code *postp, +diff -Naur lirc-20100408/daemons/hw_mp3anywhere.h lirc-20100408.patch/daemons/hw_mp3anywhere.h +--- lirc-20100408/daemons/hw_mp3anywhere.h 2007-07-29 20:20:08.000000000 +0200 ++++ lirc-20100408.patch/daemons/hw_mp3anywhere.h 2010-04-09 16:05:14.364357606 +0200 +@@ -15,7 +15,7 @@ + #ifndef HW_MP3ANYWHERE_H + #define HW_MP3ANYWHERE_H + +-#include "drivers/lirc.h" ++#include + + int mp3anywhere_decode(struct ir_remote *remote, + ir_code *prep,ir_code *codep,ir_code *postp, +diff -Naur lirc-20100408/daemons/hw_mplay.h lirc-20100408.patch/daemons/hw_mplay.h +--- lirc-20100408/daemons/hw_mplay.h 2007-12-22 13:33:16.000000000 +0100 ++++ lirc-20100408.patch/daemons/hw_mplay.h 2010-04-09 16:05:14.389357823 +0200 +@@ -25,7 +25,7 @@ + #ifndef HW_MPLAY_H + #define HW_MPLAY_H + +-#include "drivers/lirc.h" ++#include + + extern int mplay_decode(struct ir_remote *remote, + ir_code *prep, +diff -Naur lirc-20100408/daemons/hw_pcmak.h lirc-20100408.patch/daemons/hw_pcmak.h +--- lirc-20100408/daemons/hw_pcmak.h 2007-07-29 20:20:08.000000000 +0200 ++++ lirc-20100408.patch/daemons/hw_pcmak.h 2010-04-09 16:05:14.402362075 +0200 +@@ -14,7 +14,7 @@ + #ifndef HW_PCMAK_H + #define HW_PCMAK_H + +-#include "drivers/lirc.h" ++#include + + int pcmak_decode(struct ir_remote *remote, + ir_code *prep,ir_code *codep,ir_code *postp, +diff -Naur lirc-20100408/daemons/hw_pinsys.h lirc-20100408.patch/daemons/hw_pinsys.h +--- lirc-20100408/daemons/hw_pinsys.h 2007-07-29 20:20:09.000000000 +0200 ++++ lirc-20100408.patch/daemons/hw_pinsys.h 2010-04-09 16:05:14.352327630 +0200 +@@ -14,7 +14,7 @@ + #ifndef _HW_PINSYS_H + #define _HW_PINSYS_H + +-#include "drivers/lirc.h" ++#include + + int is_it_is_it_huh(int port); + int autodetect(void); +diff -Naur lirc-20100408/daemons/hw_pixelview.h lirc-20100408.patch/daemons/hw_pixelview.h +--- lirc-20100408/daemons/hw_pixelview.h 2007-07-29 20:20:09.000000000 +0200 ++++ lirc-20100408.patch/daemons/hw_pixelview.h 2010-04-09 16:05:14.366327740 +0200 +@@ -13,7 +13,7 @@ + #ifndef _HW_PIXELVIEW_H + #define _HW_PIXELVIEW_H + +-#include "drivers/lirc.h" ++#include + + int pixelview_decode(struct ir_remote *remote, + ir_code *prep,ir_code *codep,ir_code *postp, +diff -Naur lirc-20100408/daemons/hw_silitek.h lirc-20100408.patch/daemons/hw_silitek.h +--- lirc-20100408/daemons/hw_silitek.h 2007-07-29 20:20:09.000000000 +0200 ++++ lirc-20100408.patch/daemons/hw_silitek.h 2010-04-09 16:05:14.358327986 +0200 +@@ -12,7 +12,7 @@ + #ifndef _HW_SILITEK_H + #define _HW_SILITEK_H + +-#include "drivers/lirc.h" ++#include + + int silitek_decode(struct ir_remote *remote, + ir_code *prep,ir_code *codep,ir_code *postp, +diff -Naur lirc-20100408/daemons/hw_slinke.h lirc-20100408.patch/daemons/hw_slinke.h +--- lirc-20100408/daemons/hw_slinke.h 2007-07-29 20:20:09.000000000 +0200 ++++ lirc-20100408.patch/daemons/hw_slinke.h 2010-04-09 16:05:14.360356926 +0200 +@@ -14,7 +14,7 @@ + #ifndef _HW_SLINKE_H + #define _HW_SLINKE_H + +-#include "drivers/lirc.h" ++#include + + int slinke_decode(struct ir_remote *remote, + ir_code *prep, +diff -Naur lirc-20100408/daemons/hw_tira.h lirc-20100408.patch/daemons/hw_tira.h +--- lirc-20100408/daemons/hw_tira.h 2010-03-20 17:18:30.000000000 +0100 ++++ lirc-20100408.patch/daemons/hw_tira.h 2010-04-09 16:05:14.391327119 +0200 +@@ -28,7 +28,7 @@ + #ifndef HW_TIRA_H + #define HW_TIRA_H + +-#include "drivers/lirc.h" ++#include + + int tira_decode (struct ir_remote *remote, + ir_code *prep, +diff -Naur lirc-20100408/daemons/hw_usbx.h lirc-20100408.patch/daemons/hw_usbx.h +--- lirc-20100408/daemons/hw_usbx.h 2007-07-29 20:20:12.000000000 +0200 ++++ lirc-20100408.patch/daemons/hw_usbx.h 2010-04-09 16:05:14.354327656 +0200 +@@ -23,7 +23,7 @@ + #ifndef HW_USBX_H + #define HW_USBX_H + +-#include "drivers/lirc.h" ++#include + + int usbx_decode (struct ir_remote *remote, + ir_code *prep, +diff -Naur lirc-20100408/daemons/irrecord.c lirc-20100408.patch/daemons/irrecord.c +--- lirc-20100408/daemons/irrecord.c 2010-03-20 17:18:30.000000000 +0100 ++++ lirc-20100408.patch/daemons/irrecord.c 2010-04-09 16:05:14.387327137 +0200 +@@ -44,7 +44,7 @@ + #include + #include + +-#include "drivers/lirc.h" ++#include + + #include "hardware.h" + #include "hw-types.h" +diff -Naur lirc-20100408/daemons/ir_remote.c lirc-20100408.patch/daemons/ir_remote.c +--- lirc-20100408/daemons/ir_remote.c 2010-04-02 12:26:57.000000000 +0200 ++++ lirc-20100408.patch/daemons/ir_remote.c 2010-04-09 16:05:14.413327192 +0200 +@@ -22,7 +22,7 @@ + + #include + +-#include "drivers/lirc.h" ++#include + + #include "lircd.h" + #include "ir_remote.h" +diff -Naur lirc-20100408/daemons/ir_remote.h lirc-20100408.patch/daemons/ir_remote.h +--- lirc-20100408/daemons/ir_remote.h 2009-05-24 12:46:52.000000000 +0200 ++++ lirc-20100408.patch/daemons/ir_remote.h 2010-04-09 16:05:14.398356646 +0200 +@@ -21,7 +21,7 @@ + #include + #include + +-#include "drivers/lirc.h" ++#include + #include "hardware.h" + + #include "ir_remote_types.h" +diff -Naur lirc-20100408/daemons/ir_remote_types.h lirc-20100408.patch/daemons/ir_remote_types.h +--- lirc-20100408/daemons/ir_remote_types.h 2010-04-02 12:26:57.000000000 +0200 ++++ lirc-20100408.patch/daemons/ir_remote_types.h 2010-04-09 16:05:14.404327809 +0200 +@@ -21,7 +21,7 @@ + #include + #include + +-#include "drivers/lirc.h" ++#include + + #ifdef LONG_IR_CODE + typedef unsigned long long ir_code; +diff -Naur lirc-20100408/drivers/lirc_atiusb/lirc_atiusb.c lirc-20100408.patch/drivers/lirc_atiusb/lirc_atiusb.c +--- lirc-20100408/drivers/lirc_atiusb/lirc_atiusb.c 2010-03-17 15:16:15.000000000 +0100 ++++ lirc-20100408.patch/drivers/lirc_atiusb/lirc_atiusb.c 2010-04-09 16:05:14.459351320 +0200 +@@ -65,7 +65,7 @@ + #include + #include + +-#include "drivers/lirc.h" ++#include + #include "drivers/kcompat.h" + #include "drivers/lirc_dev/lirc_dev.h" + +diff -Naur lirc-20100408/drivers/lirc_dev/lirc_dev.c lirc-20100408.patch/drivers/lirc_dev/lirc_dev.c +--- lirc-20100408/drivers/lirc_dev/lirc_dev.c 2010-03-17 15:16:15.000000000 +0100 ++++ lirc-20100408.patch/drivers/lirc_dev/lirc_dev.c 2010-04-09 16:05:14.516356068 +0200 +@@ -70,7 +70,7 @@ + #include + #endif + +-#include "drivers/lirc.h" ++#include + #include "lirc_dev.h" + + static int debug; +diff -Naur lirc-20100408/drivers/lirc_dev/lirc_dev.h lirc-20100408.patch/drivers/lirc_dev/lirc_dev.h +--- lirc-20100408/drivers/lirc_dev/lirc_dev.h 2010-01-30 16:01:29.000000000 +0100 ++++ lirc-20100408.patch/drivers/lirc_dev/lirc_dev.h 2010-04-09 16:05:14.520327275 +0200 +@@ -28,7 +28,7 @@ + #include + #endif + +-#include "drivers/lirc.h" ++#include + + struct lirc_buffer { + wait_queue_head_t wait_poll; +diff -Naur lirc-20100408/drivers/lirc_ene0100/lirc_ene0100.h lirc-20100408.patch/drivers/lirc_ene0100/lirc_ene0100.h +--- lirc-20100408/drivers/lirc_ene0100/lirc_ene0100.h 2009-08-25 14:27:53.000000000 +0200 ++++ lirc-20100408.patch/drivers/lirc_ene0100/lirc_ene0100.h 2010-04-09 16:05:14.447327629 +0200 +@@ -20,7 +20,7 @@ + */ + + #include "drivers/kcompat.h" +-#include "drivers/lirc.h" ++#include + #include "drivers/lirc_dev/lirc_dev.h" + + /* hardware address */ +diff -Naur lirc-20100408/drivers/lirc_igorplugusb/lirc_igorplugusb.c lirc-20100408.patch/drivers/lirc_igorplugusb/lirc_igorplugusb.c +--- lirc-20100408/drivers/lirc_igorplugusb/lirc_igorplugusb.c 2010-03-17 15:16:15.000000000 +0100 ++++ lirc-20100408.patch/drivers/lirc_igorplugusb/lirc_igorplugusb.c 2010-04-09 16:05:14.525356846 +0200 +@@ -63,7 +63,7 @@ + #include + + #include "drivers/kcompat.h" +-#include "drivers/lirc.h" ++#include + #include "drivers/lirc_dev/lirc_dev.h" + + #if !defined(KERNEL_2_5) +diff -Naur lirc-20100408/drivers/lirc_imon/lirc_imon.c lirc-20100408.patch/drivers/lirc_imon/lirc_imon.c +--- lirc-20100408/drivers/lirc_imon/lirc_imon.c 2010-03-17 15:27:19.000000000 +0100 ++++ lirc-20100408.patch/drivers/lirc_imon/lirc_imon.c 2010-04-09 16:05:14.500327646 +0200 +@@ -54,7 +54,7 @@ + #include + + #include "drivers/kcompat.h" +-#include "drivers/lirc.h" ++#include + #include "drivers/lirc_dev/lirc_dev.h" + + +diff -Naur lirc-20100408/drivers/lirc_it87/lirc_it87.c lirc-20100408.patch/drivers/lirc_it87/lirc_it87.c +--- lirc-20100408/drivers/lirc_it87/lirc_it87.c 2010-03-17 15:16:15.000000000 +0100 ++++ lirc-20100408.patch/drivers/lirc_it87/lirc_it87.c 2010-04-09 16:05:14.467327188 +0200 +@@ -71,7 +71,7 @@ + #include + #include + +-#include "drivers/lirc.h" ++#include + #include "drivers/lirc_dev/lirc_dev.h" + #include "drivers/kcompat.h" + +diff -Naur lirc-20100408/drivers/lirc_ite8709/lirc_ite8709.c lirc-20100408.patch/drivers/lirc_ite8709/lirc_ite8709.c +--- lirc-20100408/drivers/lirc_ite8709/lirc_ite8709.c 2010-01-13 20:56:13.000000000 +0100 ++++ lirc-20100408.patch/drivers/lirc_ite8709/lirc_ite8709.c 2010-04-09 16:05:14.479327272 +0200 +@@ -31,7 +31,7 @@ + #include + #endif + +-#include "drivers/lirc.h" ++#include + #include "drivers/lirc_dev/lirc_dev.h" + #include "drivers/kcompat.h" + +diff -Naur lirc-20100408/drivers/lirc_mceusb/lirc_mceusb.c lirc-20100408.patch/drivers/lirc_mceusb/lirc_mceusb.c +--- lirc-20100408/drivers/lirc_mceusb/lirc_mceusb.c 2010-03-31 06:51:02.000000000 +0200 ++++ lirc-20100408.patch/drivers/lirc_mceusb/lirc_mceusb.c 2010-04-09 16:05:14.439352599 +0200 +@@ -67,7 +67,7 @@ + #include + #include + +-#include "drivers/lirc.h" ++#include + #include "drivers/kcompat.h" + #include "drivers/lirc_dev/lirc_dev.h" + +diff -Naur lirc-20100408/drivers/lirc_parallel/lirc_parallel.c lirc-20100408.patch/drivers/lirc_parallel/lirc_parallel.c +--- lirc-20100408/drivers/lirc_parallel/lirc_parallel.c 2010-03-17 15:16:16.000000000 +0100 ++++ lirc-20100408.patch/drivers/lirc_parallel/lirc_parallel.c 2010-04-09 16:05:14.420351761 +0200 +@@ -70,7 +70,7 @@ + #include + #include + +-#include "drivers/lirc.h" ++#include + #include "drivers/kcompat.h" + #include "drivers/lirc_dev/lirc_dev.h" + +diff -Naur lirc-20100408/drivers/lirc_sasem/lirc_sasem.c lirc-20100408.patch/drivers/lirc_sasem/lirc_sasem.c +--- lirc-20100408/drivers/lirc_sasem/lirc_sasem.c 2010-03-17 15:16:16.000000000 +0100 ++++ lirc-20100408.patch/drivers/lirc_sasem/lirc_sasem.c 2010-04-09 16:05:14.534327175 +0200 +@@ -58,7 +58,7 @@ + #include + + #include "drivers/kcompat.h" +-#include "drivers/lirc.h" ++#include + #include "drivers/lirc_dev/lirc_dev.h" + + +diff -Naur lirc-20100408/drivers/lirc_serial/lirc_serial.c lirc-20100408.patch/drivers/lirc_serial/lirc_serial.c +--- lirc-20100408/drivers/lirc_serial/lirc_serial.c 2010-03-17 15:16:16.000000000 +0100 ++++ lirc-20100408.patch/drivers/lirc_serial/lirc_serial.c 2010-04-09 16:05:14.509327239 +0200 +@@ -120,7 +120,7 @@ + #endif + #endif + +-#include "drivers/lirc.h" ++#include + #include "drivers/kcompat.h" + #include "drivers/lirc_dev/lirc_dev.h" + +diff -Naur lirc-20100408/drivers/lirc_sir/lirc_sir.c lirc-20100408.patch/drivers/lirc_sir/lirc_sir.c +--- lirc-20100408/drivers/lirc_sir/lirc_sir.c 2010-03-17 15:16:16.000000000 +0100 ++++ lirc-20100408.patch/drivers/lirc_sir/lirc_sir.c 2010-04-09 16:05:14.429327188 +0200 +@@ -95,7 +95,7 @@ + + #include + +-#include "drivers/lirc.h" ++#include + #include "drivers/lirc_dev/lirc_dev.h" + #include "drivers/kcompat.h" + +diff -Naur lirc-20100408/drivers/lirc_streamzap/lirc_streamzap.c lirc-20100408.patch/drivers/lirc_streamzap/lirc_streamzap.c +--- lirc-20100408/drivers/lirc_streamzap/lirc_streamzap.c 2010-03-17 15:16:16.000000000 +0100 ++++ lirc-20100408.patch/drivers/lirc_streamzap/lirc_streamzap.c 2010-04-09 16:05:14.486358057 +0200 +@@ -52,7 +52,7 @@ + #endif + #include + +-#include "drivers/lirc.h" ++#include + #include "drivers/kcompat.h" + #include "drivers/lirc_dev/lirc_dev.h" + +diff -Naur lirc-20100408/drivers/lirc_ttusbir/lirc_ttusbir.c lirc-20100408.patch/drivers/lirc_ttusbir/lirc_ttusbir.c +--- lirc-20100408/drivers/lirc_ttusbir/lirc_ttusbir.c 2009-03-15 10:34:01.000000000 +0100 ++++ lirc-20100408.patch/drivers/lirc_ttusbir/lirc_ttusbir.c 2010-04-09 16:05:14.444327695 +0200 +@@ -38,7 +38,7 @@ + #include + #include + +-#include "drivers/lirc.h" ++#include + #include "drivers/kcompat.h" + #include "drivers/lirc_dev/lirc_dev.h" + +diff -Naur lirc-20100408/drivers/lirc_wpc8769l/lirc_wpc8769l.c lirc-20100408.patch/drivers/lirc_wpc8769l/lirc_wpc8769l.c +--- lirc-20100408/drivers/lirc_wpc8769l/lirc_wpc8769l.c 2010-03-17 15:16:16.000000000 +0100 ++++ lirc-20100408.patch/drivers/lirc_wpc8769l/lirc_wpc8769l.c 2010-04-09 16:05:14.475356554 +0200 +@@ -66,7 +66,7 @@ + #include + #endif + +-#include "drivers/lirc.h" ++#include + #include "drivers/kcompat.h" + #include "drivers/lirc_dev/lirc_dev.h" + +diff -Naur lirc-20100408/tools/mode2.c lirc-20100408.patch/tools/mode2.c +--- lirc-20100408/tools/mode2.c 2009-12-28 14:05:30.000000000 +0100 ++++ lirc-20100408.patch/tools/mode2.c 2010-04-09 16:05:14.543327535 +0200 +@@ -33,7 +33,7 @@ + #include + #include + +-#include "drivers/lirc.h" ++#include + #include "daemons/ir_remote.h" + #include "daemons/hardware.h" + #include "daemons/hw-types.h" +diff -Naur lirc-20100408/tools/smode2.c lirc-20100408.patch/tools/smode2.c +--- lirc-20100408/tools/smode2.c 2003-03-30 14:26:44.000000000 +0200 ++++ lirc-20100408.patch/tools/smode2.c 2010-04-09 16:05:14.546353310 +0200 +@@ -37,7 +37,7 @@ + #include + #include + +-#include "drivers/lirc.h" ++#include + + GraphicsContext *screen; + GraphicsContext *physicalscreen; +diff -Naur lirc-20100408/tools/xmode2.c lirc-20100408.patch/tools/xmode2.c +--- lirc-20100408/tools/xmode2.c 2009-12-27 20:04:10.000000000 +0100 ++++ lirc-20100408.patch/tools/xmode2.c 2010-04-09 16:05:14.539352347 +0200 +@@ -60,7 +60,7 @@ + #include + #include + +-#include "drivers/lirc.h" ++#include + #include "daemons/ir_remote.h" + #include "daemons/hardware.h" + #include "daemons/hw-types.h" diff --git a/packages/sysutils/lirc/url b/packages/sysutils/remote/lirc/url similarity index 100% rename from packages/sysutils/lirc/url rename to packages/sysutils/remote/lirc/url From 8f505e4e0af760c8219964890b27c3c1646a6a3e Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Wed, 28 Apr 2010 20:42:40 +0200 Subject: [PATCH 237/320] lcdproc: - add user config file - rework the init script --- packages/sysutils/lcdproc/init.d/33_lcdproc | 9 ++++++--- packages/sysutils/lcdproc/install | 3 +++ 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/packages/sysutils/lcdproc/init.d/33_lcdproc b/packages/sysutils/lcdproc/init.d/33_lcdproc index 119dbef8bc..a64dcfcb81 100755 --- a/packages/sysutils/lcdproc/init.d/33_lcdproc +++ b/packages/sysutils/lcdproc/init.d/33_lcdproc @@ -2,9 +2,12 @@ # # runlevels: openelec, textmode -( +[ -f /storage/.config/lcd.conf ] && . /storage/.config/lcd.conf + +if [ ! "$LCD_DRIVER" = "none" -a -z "$LCD_DRIVER" ]; then + progress "Starting LCD daemon" - LCDd -c /etc/LCDd.conf > /dev/null 2>&1 + LCDd -c /etc/LCDd.conf -d $LCD_DRIVER > /dev/null 2>&1 -)& +fi \ No newline at end of file diff --git a/packages/sysutils/lcdproc/install b/packages/sysutils/lcdproc/install index 969d25da3c..d395d781a0 100755 --- a/packages/sysutils/lcdproc/install +++ b/packages/sysutils/lcdproc/install @@ -16,5 +16,8 @@ mkdir -p $INSTALL/usr/sbin mkdir -p $INSTALL/usr/lib/lcdproc cp $PKG_BUILD/server/drivers/*.so $INSTALL/usr/lib/lcdproc +mkdir -p $INSTALL/usr/config + cp $PKG_DIR/config/lcd.conf $INSTALL/usr/config + mkdir -p $INSTALL/etc cp $PKG_BUILD/LCDd.conf $INSTALL/etc From ad59ede1560bcac2241d5fd458192efd479204e4 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Wed, 28 Apr 2010 20:43:04 +0200 Subject: [PATCH 238/320] xbmc: - install remote package --- packages/mediacenter/xbmc/install | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/mediacenter/xbmc/install b/packages/mediacenter/xbmc/install index 4ea16a6758..22bbae5fe0 100755 --- a/packages/mediacenter/xbmc/install +++ b/packages/mediacenter/xbmc/install @@ -127,7 +127,7 @@ mkdir -p $INSTALL/usr/share/xbmc/addons # other programs needed to run $SCRIPTS/install alsa - $SCRIPTS/install lirc + $SCRIPTS/install remote [ ! "$LCD_DRIVER" = none ] && $SCRIPTS/install lcdproc [ "$SENSOR_SUPPORT" = yes ] && $SCRIPTS/install lm_sensors [ "$UPDATE_SUPPORT" = yes ] && $SCRIPTS/install autoupdate From 6fd9bde9a1494f663c4049ee05c10dcee3bbd3cb Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Wed, 28 Apr 2010 20:43:37 +0200 Subject: [PATCH 239/320] xbmc: - add philips-rc197 remote controller support --- ...461-xbmc-add_remote_philips-rc197-0.1.diff | 55 +++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 packages/mediacenter/xbmc/patches/461-xbmc-add_remote_philips-rc197-0.1.diff diff --git a/packages/mediacenter/xbmc/patches/461-xbmc-add_remote_philips-rc197-0.1.diff b/packages/mediacenter/xbmc/patches/461-xbmc-add_remote_philips-rc197-0.1.diff new file mode 100644 index 0000000000..677aa8859e --- /dev/null +++ b/packages/mediacenter/xbmc/patches/461-xbmc-add_remote_philips-rc197-0.1.diff @@ -0,0 +1,55 @@ +diff -Naur xbmc-29490/system/Lircmap.xml xbmc-29490.patch/system/Lircmap.xml +--- xbmc-29490/system/Lircmap.xml 2010-04-24 22:45:26.000000000 +0200 ++++ xbmc-29490.patch/system/Lircmap.xml 2010-04-28 14:18:01.951408228 +0200 +@@ -362,4 +362,51 @@ + recordlist + teletext + ++ ++ ++ play ++ Pause ++ Stop ++ Fwd ++ Rew ++ left ++ right ++ up ++ down ++ ++ Ch+ ++ Ch- ++ Back ++ DVDMenu ++ EPG ++ Info ++ Next ++ Prev ++ eHome ++ Rec ++ Vol+ ++ Vol- ++ Mute ++ power ++ TV ++ 1 ++ 2 ++ 3 ++ 4 ++ 5 ++ 6 ++ 7 ++ 8 ++ 9 ++ 0 ++ Star ++ Hash ++ Clear ++ Enter ++ Red ++ Green ++ Yellow ++ Blue ++ Teletext ++ + From fef78f1c3f7c42e4d3f9b093f64fdd317f47bcf1 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Wed, 28 Apr 2010 23:39:14 +0200 Subject: [PATCH 240/320] lcdproc: - add lcd user config file --- packages/sysutils/lcdproc/config/lcd.conf | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 packages/sysutils/lcdproc/config/lcd.conf diff --git a/packages/sysutils/lcdproc/config/lcd.conf b/packages/sysutils/lcdproc/config/lcd.conf new file mode 100644 index 0000000000..6259b17772 --- /dev/null +++ b/packages/sysutils/lcdproc/config/lcd.conf @@ -0,0 +1,7 @@ +# Setup LCD/VFD driver ( none / irtrans ) +# +# none: no LCD/VFD hardware is installed +# +# irtrans: use irtrans as LCD/VFD driver + +LCD_DRIVER="none" From 92e9ff992a678ab11fd8569ccde9d13ecde04dfd Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Wed, 28 Apr 2010 23:39:50 +0200 Subject: [PATCH 241/320] remote: - add remote user config file --- packages/sysutils/remote/config/remote.conf | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 packages/sysutils/remote/config/remote.conf diff --git a/packages/sysutils/remote/config/remote.conf b/packages/sysutils/remote/config/remote.conf new file mode 100644 index 0000000000..aafd0b010e --- /dev/null +++ b/packages/sysutils/remote/config/remote.conf @@ -0,0 +1,9 @@ +# Setup remote control ( none / lirc / irtrans ) +# +# none: no remote control hardware is installed +# +# lirc: use lirc as remotecontrol backend (default) +# +# irtrans: use irtrans as remotecontrol backend + +REMOTE_BACKEND="lirc" From a593b42718cf35ffcaf33aa464d78c1cd45b15b6 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Wed, 28 Apr 2010 23:40:46 +0200 Subject: [PATCH 242/320] xbmc: - remove patch for adding philips remote - add patch to support irtrans mediacenter remote --- ...461-xbmc-add_remote_philips-rc197-0.1.diff | 55 ------------------- ...mc-add_remote_irtrans_mediacenter-0.1.diff | 52 ++++++++++++++++++ 2 files changed, 52 insertions(+), 55 deletions(-) delete mode 100644 packages/mediacenter/xbmc/patches/461-xbmc-add_remote_philips-rc197-0.1.diff create mode 100644 packages/mediacenter/xbmc/patches/462-xbmc-add_remote_irtrans_mediacenter-0.1.diff diff --git a/packages/mediacenter/xbmc/patches/461-xbmc-add_remote_philips-rc197-0.1.diff b/packages/mediacenter/xbmc/patches/461-xbmc-add_remote_philips-rc197-0.1.diff deleted file mode 100644 index 677aa8859e..0000000000 --- a/packages/mediacenter/xbmc/patches/461-xbmc-add_remote_philips-rc197-0.1.diff +++ /dev/null @@ -1,55 +0,0 @@ -diff -Naur xbmc-29490/system/Lircmap.xml xbmc-29490.patch/system/Lircmap.xml ---- xbmc-29490/system/Lircmap.xml 2010-04-24 22:45:26.000000000 +0200 -+++ xbmc-29490.patch/system/Lircmap.xml 2010-04-28 14:18:01.951408228 +0200 -@@ -362,4 +362,51 @@ - recordlist - teletext - -+ -+ -+ play -+ Pause -+ Stop -+ Fwd -+ Rew -+ left -+ right -+ up -+ down -+ -+ Ch+ -+ Ch- -+ Back -+ DVDMenu -+ EPG -+ Info -+ Next -+ Prev -+ eHome -+ Rec -+ Vol+ -+ Vol- -+ Mute -+ power -+ TV -+ 1 -+ 2 -+ 3 -+ 4 -+ 5 -+ 6 -+ 7 -+ 8 -+ 9 -+ 0 -+ Star -+ Hash -+ Clear -+ Enter -+ Red -+ Green -+ Yellow -+ Blue -+ Teletext -+ - diff --git a/packages/mediacenter/xbmc/patches/462-xbmc-add_remote_irtrans_mediacenter-0.1.diff b/packages/mediacenter/xbmc/patches/462-xbmc-add_remote_irtrans_mediacenter-0.1.diff new file mode 100644 index 0000000000..2b969b601e --- /dev/null +++ b/packages/mediacenter/xbmc/patches/462-xbmc-add_remote_irtrans_mediacenter-0.1.diff @@ -0,0 +1,52 @@ +diff -Naur xbmc-29490/system/Lircmap.xml xbmc-29490.patch/system/Lircmap.xml +--- xbmc-29490/system/Lircmap.xml 2010-04-24 22:45:26.000000000 +0200 ++++ xbmc-29490.patch/system/Lircmap.xml 2010-04-28 22:00:13.734656322 +0200 +@@ -362,4 +362,48 @@ + recordlist + teletext + ++ ++ pause ++ stop ++ fwd ++ rew ++ left ++ right ++ up ++ down ++ ++ ch+ ++ ch- ++ back ++ clear ++ play ++ info ++ next ++ prev ++ teletext ++ ehome ++ rec ++ vol+ ++ vol- ++ mute ++ power ++ video ++ music ++ pictures ++ tv ++ 1 ++ 2 ++ 3 ++ 4 ++ 5 ++ 6 ++ 7 ++ 8 ++ 9 ++ 0 ++ red ++ green ++ yellow ++ blue ++ + From 8c0006edf7e8e49c1fdd1252c0298f32b806e9f7 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Wed, 28 Apr 2010 23:41:25 +0200 Subject: [PATCH 243/320] remote: - add install script --- packages/sysutils/remote/install | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100755 packages/sysutils/remote/install diff --git a/packages/sysutils/remote/install b/packages/sysutils/remote/install new file mode 100755 index 0000000000..5f8129d2c2 --- /dev/null +++ b/packages/sysutils/remote/install @@ -0,0 +1,11 @@ +#!/bin/sh + +. config/options + +$SCRIPTS/install lirc +$SCRIPTS/install irserver + +PKG_DIR=`find $PACKAGES -type d -name $1` + +mkdir -p $INSTALL/usr/config + cp $PKG_DIR/config/*.conf $INSTALL/usr/config \ No newline at end of file From ce6296fae0f653880601f0d11c92a4b62f1bb8b7 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Wed, 28 Apr 2010 23:42:53 +0200 Subject: [PATCH 244/320] irserver: - remove philips-rc197 config file --- packages/sysutils/remote/irserver/install | 2 - .../remote/irserver/remotes/philips-rc197.rem | 53 ------------------- 2 files changed, 55 deletions(-) delete mode 100644 packages/sysutils/remote/irserver/remotes/philips-rc197.rem diff --git a/packages/sysutils/remote/irserver/install b/packages/sysutils/remote/irserver/install index 8c196ca804..4f33270239 100755 --- a/packages/sysutils/remote/irserver/install +++ b/packages/sysutils/remote/irserver/install @@ -12,8 +12,6 @@ mkdir -p $INSTALL/usr/sbin mkdir -p $INSTALL/usr/share/irtrans/remotes cp $PKG_BUILD/remotes/irtrans.rem $INSTALL/usr/share/irtrans/remotes cp $PKG_BUILD/remotes/mediacenter.rem $INSTALL/usr/share/irtrans/remotes - cp $PKG_DIR/remotes/*.rem $INSTALL/usr/share/irtrans/remotes - mkdir -p $INSTALL/lib/udev/rules.d cp $PKG_DIR/config/*.rules $INSTALL/lib/udev/rules.d diff --git a/packages/sysutils/remote/irserver/remotes/philips-rc197.rem b/packages/sysutils/remote/irserver/remotes/philips-rc197.rem deleted file mode 100644 index f3ca22a38f..0000000000 --- a/packages/sysutils/remote/irserver/remotes/philips-rc197.rem +++ /dev/null @@ -1,53 +0,0 @@ -[REMOTE] - [NAME]philips-rc197 - -[TIMING] - [0][N]0[RC]2[RP]87[FREQ]36[SB][RS][RC6] - -[COMMANDS] - [1][T]0[D]S11101010000000000011110000010000000001 - [2][T]0[D]S11101010000000000011110000010000000010 - [3][T]0[D]S11101010000000000011110000010000000011 - [4][T]0[D]S11101010000000000011110000010000000100 - [5][T]0[D]S11101010000000000011110000010000000101 - [6][T]0[D]S11101010000000000011110000010000000110 - [7][T]0[D]S11101010000000000011110000010000000111 - [8][T]0[D]S11101010000000000011110000010000001000 - [9][T]0[D]S11101010000000000011110000010000001001 - [0][T]0[D]S11101010000000000011110000010000000000 - [Star][T]0[D]S11101010000000000011110000010000011101 - [Hash][T]0[D]S11101010000000000011110000010000011100 - [ok][T]0[D]S11101010000000000011110000010000100010 - [left][T]0[D]S11101010000000000011110000010000100000 - [right][T]0[D]S11101010000000000011110000010000100001 - [down][T]0[D]S11101010000000000011110000010000011111 - [up][T]0[D]S11101010000000000011110000010000011110 - [play][T]0[D]S11101010000000000011110000010000010110 - [power][T]0[D]S11101010000000000011110000010000001100 - [Stop][T]0[D]S11101010000000000011110000010000011001 - [Rec][T]0[D]S11101010000000000011110000010000010111 - [Rew][T]0[D]S11101010000000000011110000010000010101 - [Fwd][T]0[D]S11101010000000000011110000010000010100 - [Pause][T]0[D]S11101010000000000011110000010000011000 - [Next][T]0[D]S11101010000000000011110000010000011010 - [Prev][T]0[D]S11101010000000000011110000010000011011 - [eHome][T]0[D]S11101010000000000011110000010000001101 - [Back][T]0[D]S11101010000000000011110000010000100011 - [EPG][T]0[D]S11101010000000000011110000010000100110 - [Info][T]0[D]S11101010000000000011110000010000001111 - [LiveTV][T]0[D]S11101010000000000011110000010000100101 - [TV][T]0[D]S11101010000000000011110000010001000110 - [Vol+][T]0[D]S11101010000000000011110000010000010000 - [Vol-][T]0[D]S11101010000000000011110000010000010001 - [Mute][T]0[D]S11101010000000000011110000010000001110 - [Ch+][T]0[D]S11101010000000000011110000010000010010 - [Ch-][T]0[D]S11101010000000000011110000010000010011 - [Enter][T]0[D]S11101010000000000011110000010000001011 - [Clear][T]0[D]S11101010000000000011110000010000001010 - [DVDMenu][T]0[D]S11101010000000000011110000010000100100 - [Rectv][T]0[D]S11101010000000000011110000010001001000 - [Teletext][T][0][D]S11101010000000000011110000010001011010 - [Red][T][0][D]S11101010000000000011110000010001011011 - [Green][T][0][D]S11101010000000000011110000010001011100 - [Yellow][T][0][D]S11101010000000000011110000010001011101 - [Blue][T][0][D]S11101010000000000011110000010001011110 From 2215a41c23fcf9eed335ae6c3d2533f55cfe8e86 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Thu, 29 Apr 2010 17:35:02 +0200 Subject: [PATCH 245/320] projects/*/linux: - adding suspend to ram support in kernel --- projects/ION/linux/linux.i386.conf | 19 +++++---- projects/ION/linux/linux.x86_64.conf | 19 +++++---- projects/generic/linux/linux.i386.conf | 21 ++++++---- projects/intel/linux/linux.i386.conf | 19 +++++---- projects/intel/linux/linux.x86_64.conf | 54 ++++++++++++++++++++------ 5 files changed, 93 insertions(+), 39 deletions(-) diff --git a/projects/ION/linux/linux.i386.conf b/projects/ION/linux/linux.i386.conf index cf1932b77a..43f33a7dc3 100644 --- a/projects/ION/linux/linux.i386.conf +++ b/projects/ION/linux/linux.i386.conf @@ -1,6 +1,6 @@ # # Automatically generated make config: don't edit -# Linux kernel version: 2.6.33.2 +# Linux kernel version: 2.6.33.3 # # CONFIG_64BIT is not set CONFIG_X86_32=y @@ -221,7 +221,7 @@ CONFIG_INLINE_WRITE_UNLOCK=y CONFIG_INLINE_WRITE_UNLOCK_IRQ=y # CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set CONFIG_MUTEX_SPIN_ON_OWNER=y -# CONFIG_FREEZER is not set +CONFIG_FREEZER=y # # Processor type and features @@ -376,16 +376,20 @@ CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y # CONFIG_PM=y # CONFIG_PM_DEBUG is not set -# CONFIG_SUSPEND is not set -# CONFIG_PM_RUNTIME is not set +CONFIG_PM_SLEEP_SMP=y +CONFIG_PM_SLEEP=y +CONFIG_SUSPEND=y +CONFIG_SUSPEND_FREEZER=y +CONFIG_PM_RUNTIME=y CONFIG_ACPI=y +CONFIG_ACPI_SLEEP=y # CONFIG_ACPI_PROCFS is not set # CONFIG_ACPI_PROCFS_POWER is not set # CONFIG_ACPI_POWER_METER is not set CONFIG_ACPI_SYSFS_POWER=y CONFIG_ACPI_PROC_EVENT=y -# CONFIG_ACPI_AC is not set -# CONFIG_ACPI_BATTERY is not set +CONFIG_ACPI_AC=y +CONFIG_ACPI_BATTERY=y CONFIG_ACPI_BUTTON=y CONFIG_ACPI_FAN=y CONFIG_ACPI_DOCK=y @@ -399,8 +403,9 @@ CONFIG_ACPI_BLACKLIST_YEAR=2000 CONFIG_ACPI_PCI_SLOT=y CONFIG_X86_PM_TIMER=y CONFIG_ACPI_CONTAINER=y -# CONFIG_ACPI_SBS is not set +CONFIG_ACPI_SBS=y # CONFIG_SFI is not set +# CONFIG_APM is not set # # CPU Frequency scaling diff --git a/projects/ION/linux/linux.x86_64.conf b/projects/ION/linux/linux.x86_64.conf index 3cbc4f2752..0750c2800a 100644 --- a/projects/ION/linux/linux.x86_64.conf +++ b/projects/ION/linux/linux.x86_64.conf @@ -1,6 +1,6 @@ # # Automatically generated make config: don't edit -# Linux kernel version: 2.6.33.2 +# Linux kernel version: 2.6.33.3 # CONFIG_64BIT=y # CONFIG_X86_32 is not set @@ -220,7 +220,7 @@ CONFIG_INLINE_WRITE_UNLOCK=y CONFIG_INLINE_WRITE_UNLOCK_IRQ=y # CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set CONFIG_MUTEX_SPIN_ON_OWNER=y -# CONFIG_FREEZER is not set +CONFIG_FREEZER=y # # Processor type and features @@ -360,16 +360,20 @@ CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y # CONFIG_PM=y # CONFIG_PM_DEBUG is not set -# CONFIG_SUSPEND is not set -# CONFIG_PM_RUNTIME is not set +CONFIG_PM_SLEEP_SMP=y +CONFIG_PM_SLEEP=y +CONFIG_SUSPEND=y +CONFIG_SUSPEND_FREEZER=y +CONFIG_PM_RUNTIME=y CONFIG_ACPI=y +CONFIG_ACPI_SLEEP=y # CONFIG_ACPI_PROCFS is not set # CONFIG_ACPI_PROCFS_POWER is not set # CONFIG_ACPI_POWER_METER is not set CONFIG_ACPI_SYSFS_POWER=y CONFIG_ACPI_PROC_EVENT=y -# CONFIG_ACPI_AC is not set -# CONFIG_ACPI_BATTERY is not set +CONFIG_ACPI_AC=y +CONFIG_ACPI_BATTERY=y CONFIG_ACPI_BUTTON=y CONFIG_ACPI_FAN=y CONFIG_ACPI_DOCK=y @@ -383,8 +387,9 @@ CONFIG_ACPI_BLACKLIST_YEAR=0 CONFIG_ACPI_PCI_SLOT=y CONFIG_X86_PM_TIMER=y CONFIG_ACPI_CONTAINER=y -# CONFIG_ACPI_SBS is not set +CONFIG_ACPI_SBS=y # CONFIG_SFI is not set +# CONFIG_APM is not set # # CPU Frequency scaling diff --git a/projects/generic/linux/linux.i386.conf b/projects/generic/linux/linux.i386.conf index abcdb5d6cb..67bc1b7c17 100644 --- a/projects/generic/linux/linux.i386.conf +++ b/projects/generic/linux/linux.i386.conf @@ -1,6 +1,6 @@ # # Automatically generated make config: don't edit -# Linux kernel version: 2.6.33.2 +# Linux kernel version: 2.6.33.3 # # CONFIG_64BIT is not set CONFIG_X86_32=y @@ -221,7 +221,7 @@ CONFIG_INLINE_WRITE_UNLOCK=y CONFIG_INLINE_WRITE_UNLOCK_IRQ=y # CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set CONFIG_MUTEX_SPIN_ON_OWNER=y -# CONFIG_FREEZER is not set +CONFIG_FREEZER=y # # Processor type and features @@ -377,16 +377,20 @@ CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y # CONFIG_PM=y # CONFIG_PM_DEBUG is not set -# CONFIG_SUSPEND is not set -# CONFIG_PM_RUNTIME is not set +CONFIG_PM_SLEEP_SMP=y +CONFIG_PM_SLEEP=y +CONFIG_SUSPEND=y +CONFIG_SUSPEND_FREEZER=y +CONFIG_PM_RUNTIME=y CONFIG_ACPI=y +CONFIG_ACPI_SLEEP=y # CONFIG_ACPI_PROCFS is not set # CONFIG_ACPI_PROCFS_POWER is not set # CONFIG_ACPI_POWER_METER is not set CONFIG_ACPI_SYSFS_POWER=y CONFIG_ACPI_PROC_EVENT=y -# CONFIG_ACPI_AC is not set -# CONFIG_ACPI_BATTERY is not set +CONFIG_ACPI_AC=y +CONFIG_ACPI_BATTERY=y CONFIG_ACPI_BUTTON=y CONFIG_ACPI_VIDEO=y CONFIG_ACPI_FAN=y @@ -401,8 +405,9 @@ CONFIG_ACPI_BLACKLIST_YEAR=2000 CONFIG_ACPI_PCI_SLOT=y CONFIG_X86_PM_TIMER=y CONFIG_ACPI_CONTAINER=y -# CONFIG_ACPI_SBS is not set +CONFIG_ACPI_SBS=y # CONFIG_SFI is not set +# CONFIG_APM is not set # # CPU Frequency scaling @@ -930,6 +935,7 @@ CONFIG_B43=m CONFIG_B43_PCI_AUTOSELECT=y CONFIG_B43_PCICORE_AUTOSELECT=y # CONFIG_B43_SDIO is not set +CONFIG_B43_PIO=y CONFIG_B43_PHY_LP=y CONFIG_B43_LEDS=y CONFIG_B43_HWRNG=y @@ -1373,6 +1379,7 @@ CONFIG_SSB_POSSIBLE=y # CONFIG_SSB=m CONFIG_SSB_SPROM=y +CONFIG_SSB_BLOCKIO=y CONFIG_SSB_PCIHOST_POSSIBLE=y CONFIG_SSB_PCIHOST=y CONFIG_SSB_B43_PCI_BRIDGE=y diff --git a/projects/intel/linux/linux.i386.conf b/projects/intel/linux/linux.i386.conf index 6473ae01ce..9f9571b24a 100644 --- a/projects/intel/linux/linux.i386.conf +++ b/projects/intel/linux/linux.i386.conf @@ -1,6 +1,6 @@ # # Automatically generated make config: don't edit -# Linux kernel version: 2.6.33.2 +# Linux kernel version: 2.6.33.3 # # CONFIG_64BIT is not set CONFIG_X86_32=y @@ -221,7 +221,7 @@ CONFIG_INLINE_WRITE_UNLOCK=y CONFIG_INLINE_WRITE_UNLOCK_IRQ=y # CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set CONFIG_MUTEX_SPIN_ON_OWNER=y -# CONFIG_FREEZER is not set +CONFIG_FREEZER=y # # Processor type and features @@ -377,16 +377,20 @@ CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y # CONFIG_PM=y # CONFIG_PM_DEBUG is not set -# CONFIG_SUSPEND is not set -# CONFIG_PM_RUNTIME is not set +CONFIG_PM_SLEEP_SMP=y +CONFIG_PM_SLEEP=y +CONFIG_SUSPEND=y +CONFIG_SUSPEND_FREEZER=y +CONFIG_PM_RUNTIME=y CONFIG_ACPI=y +CONFIG_ACPI_SLEEP=y # CONFIG_ACPI_PROCFS is not set # CONFIG_ACPI_PROCFS_POWER is not set # CONFIG_ACPI_POWER_METER is not set CONFIG_ACPI_SYSFS_POWER=y CONFIG_ACPI_PROC_EVENT=y -# CONFIG_ACPI_AC is not set -# CONFIG_ACPI_BATTERY is not set +CONFIG_ACPI_AC=y +CONFIG_ACPI_BATTERY=y CONFIG_ACPI_BUTTON=y CONFIG_ACPI_VIDEO=y CONFIG_ACPI_FAN=y @@ -401,8 +405,9 @@ CONFIG_ACPI_BLACKLIST_YEAR=2000 CONFIG_ACPI_PCI_SLOT=y CONFIG_X86_PM_TIMER=y CONFIG_ACPI_CONTAINER=y -# CONFIG_ACPI_SBS is not set +CONFIG_ACPI_SBS=y # CONFIG_SFI is not set +# CONFIG_APM is not set # # CPU Frequency scaling diff --git a/projects/intel/linux/linux.x86_64.conf b/projects/intel/linux/linux.x86_64.conf index e5b0f9c048..e2789b0706 100644 --- a/projects/intel/linux/linux.x86_64.conf +++ b/projects/intel/linux/linux.x86_64.conf @@ -1,6 +1,6 @@ # # Automatically generated make config: don't edit -# Linux kernel version: 2.6.33.2 +# Linux kernel version: 2.6.33.3 # CONFIG_64BIT=y # CONFIG_X86_32 is not set @@ -24,8 +24,8 @@ CONFIG_GENERIC_BUG=y CONFIG_GENERIC_BUG_RELATIVE_POINTERS=y CONFIG_GENERIC_HWEIGHT=y CONFIG_ARCH_MAY_HAVE_PC_FDC=y -CONFIG_RWSEM_GENERIC_SPINLOCK=y -# CONFIG_RWSEM_XCHGADD_ALGORITHM is not set +# CONFIG_RWSEM_GENERIC_SPINLOCK is not set +CONFIG_RWSEM_XCHGADD_ALGORITHM=y CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y CONFIG_GENERIC_CALIBRATE_DELAY=y CONFIG_GENERIC_TIME_VSYSCALL=y @@ -71,7 +71,7 @@ CONFIG_HAVE_KERNEL_LZO=y # CONFIG_KERNEL_BZIP2 is not set CONFIG_KERNEL_LZMA=y # CONFIG_KERNEL_LZO is not set -# CONFIG_SWAP is not set +CONFIG_SWAP=y CONFIG_SYSVIPC=y CONFIG_SYSVIPC_SYSCTL=y CONFIG_POSIX_MQUEUE=y @@ -220,7 +220,7 @@ CONFIG_INLINE_WRITE_UNLOCK=y CONFIG_INLINE_WRITE_UNLOCK_IRQ=y # CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set CONFIG_MUTEX_SPIN_ON_OWNER=y -# CONFIG_FREEZER is not set +CONFIG_FREEZER=y # # Processor type and features @@ -266,6 +266,7 @@ CONFIG_X86_CPU=y CONFIG_X86_INTERNODE_CACHE_SHIFT=6 CONFIG_X86_CMPXCHG=y CONFIG_X86_L1_CACHE_SHIFT=6 +CONFIG_X86_XADD=y CONFIG_X86_WP_WORKS_OK=y CONFIG_X86_INTEL_USERCOPY=y CONFIG_X86_USE_PPRO_CHECKSUM=y @@ -348,6 +349,7 @@ CONFIG_HZ=300 CONFIG_SCHED_HRTICK=y CONFIG_KEXEC=y CONFIG_CRASH_DUMP=y +# CONFIG_KEXEC_JUMP is not set CONFIG_PHYSICAL_START=0x400000 # CONFIG_RELOCATABLE is not set CONFIG_PHYSICAL_ALIGN=0x1000000 @@ -360,18 +362,47 @@ CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y # # Power management and ACPI options # +CONFIG_ARCH_HIBERNATION_HEADER=y CONFIG_PM=y # CONFIG_PM_DEBUG is not set -# CONFIG_SUSPEND is not set -# CONFIG_PM_RUNTIME is not set +CONFIG_PM_SLEEP_SMP=y +CONFIG_PM_SLEEP=y +CONFIG_SUSPEND=y +CONFIG_SUSPEND_FREEZER=y +CONFIG_HIBERNATION_NVS=y +CONFIG_HIBERNATION=y +CONFIG_PM_STD_PARTITION="" +CONFIG_TOI_CORE=y + +# +# Image Storage (you need at least one allocator) +# +CONFIG_TOI_FILE=y +# CONFIG_TOI_SWAP is not set + +# +# General Options +# +CONFIG_TOI_CRYPTO=y +CONFIG_TOI_USERUI=y +CONFIG_TOI_USERUI_DEFAULT_PATH="/usr/local/sbin/tuxoniceui_text" +CONFIG_TOI_KEEP_IMAGE=y +CONFIG_TOI_REPLACE_SWSUSP=y +# CONFIG_TOI_IGNORE_LATE_INITCALL is not set +CONFIG_TOI_DEFAULT_WAIT=25 +CONFIG_TOI_DEFAULT_EXTRA_PAGES_ALLOWANCE=2000 +# CONFIG_TOI_CHECKSUM is not set +CONFIG_TOI=y +CONFIG_PM_RUNTIME=y CONFIG_ACPI=y +CONFIG_ACPI_SLEEP=y # CONFIG_ACPI_PROCFS is not set # CONFIG_ACPI_PROCFS_POWER is not set # CONFIG_ACPI_POWER_METER is not set CONFIG_ACPI_SYSFS_POWER=y CONFIG_ACPI_PROC_EVENT=y -# CONFIG_ACPI_AC is not set -# CONFIG_ACPI_BATTERY is not set +CONFIG_ACPI_AC=y +CONFIG_ACPI_BATTERY=y CONFIG_ACPI_BUTTON=y CONFIG_ACPI_VIDEO=y CONFIG_ACPI_FAN=y @@ -386,7 +417,7 @@ CONFIG_ACPI_BLACKLIST_YEAR=0 CONFIG_ACPI_PCI_SLOT=y CONFIG_X86_PM_TIMER=y CONFIG_ACPI_CONTAINER=y -# CONFIG_ACPI_SBS is not set +CONFIG_ACPI_SBS=y # CONFIG_SFI is not set # @@ -1937,6 +1968,7 @@ CONFIG_STAGING=y # # CONFIG_RAR_REGISTER is not set # CONFIG_IIO is not set +# CONFIG_RAMZSWAP is not set # CONFIG_BATMAN_ADV is not set # CONFIG_SAMSUNG_LAPTOP is not set # CONFIG_STRIP is not set @@ -2278,6 +2310,7 @@ CONFIG_CRYPTO_DES=y # CONFIG_CRYPTO_DEFLATE is not set CONFIG_CRYPTO_ZLIB=y CONFIG_CRYPTO_LZO=y +CONFIG_CRYPTO_LZF=y # # Random Number Generation @@ -2302,7 +2335,6 @@ CONFIG_CRC_ITU_T=y CONFIG_CRC32=y # CONFIG_CRC7 is not set CONFIG_LIBCRC32C=y -CONFIG_AUDIT_GENERIC=y CONFIG_ZLIB_INFLATE=y CONFIG_ZLIB_DEFLATE=y CONFIG_LZO_COMPRESS=y From 71e3a025830ea55bf7c9bb1c356ee9c2180808da Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Thu, 29 Apr 2010 18:20:55 +0200 Subject: [PATCH 246/320] new package: - adding package upower --- packages/sysutils/upower/build | 31 ++++++++++++++++++++++++++++ packages/sysutils/upower/install | 35 ++++++++++++++++++++++++++++++++ packages/sysutils/upower/url | 1 + 3 files changed, 67 insertions(+) create mode 100755 packages/sysutils/upower/build create mode 100755 packages/sysutils/upower/install create mode 100644 packages/sysutils/upower/url diff --git a/packages/sysutils/upower/build b/packages/sysutils/upower/build new file mode 100755 index 0000000000..e3ed681c1d --- /dev/null +++ b/packages/sysutils/upower/build @@ -0,0 +1,31 @@ +#!/bin/sh + +. config/options + +$SCRIPTS/build toolchain +$SCRIPTS/build udev +$SCRIPTS/build glib +$SCRIPTS/build dbus +$SCRIPTS/build dbus-glib +$SCRIPTS/build polkit + +cd $PKG_BUILD +./configure --host=$TARGET_NAME \ + --build=$HOST_NAME \ + --prefix=/usr \ + --sysconfdir=/etc \ + --datadir=/usr/share \ + --libexecdir=/usr/lib/upower \ + --localstatedir=/var \ + --disable-static \ + --enable-shared \ + --with-backend=linux \ + --disable-man-pages \ + --disable-gtk-doc \ + --enable-gtk-doc-html \ + --enable-gtk-doc-pdf \ + --disable-nls \ + +make + +$MAKEINSTALL diff --git a/packages/sysutils/upower/install b/packages/sysutils/upower/install new file mode 100755 index 0000000000..0d4fad0654 --- /dev/null +++ b/packages/sysutils/upower/install @@ -0,0 +1,35 @@ +#!/bin/sh + +. config/options + +$SCRIPTS/install udev +$SCRIPTS/install glib +$SCRIPTS/install dbus +$SCRIPTS/install dbus-glib +$SCRIPTS/install polkit + +mkdir -p $INSTALL/etc/dbus-1/system.d + cp -P $PKG_BUILD/src/org.freedesktop.UPower.conf $INSTALL/etc/dbus-1/system.d + +mkdir -p $INSTALL/usr/bin + cp -P $PKG_BUILD/tools/.libs/upower $INSTALL/usr/bin + +mkdir -p $INSTALL/usr/lib + cp -P $PKG_BUILD/devkit-power-gobject/.libs/*.so* $INSTALL/usr/lib + cp -P $PKG_BUILD/libupower-glib/.libs/*.so* $INSTALL/usr/lib + +mkdir -p $INSTALL/usr/lib/upower + cp -P $PKG_BUILD/src/.libs/upowerd $INSTALL/usr/lib/upower + +mkdir -p $INSTALL/usr/share/dbus-1/interfaces + cp -P $PKG_BUILD/src/org.freedesktop.UPower.Device.xml $INSTALL/usr/share/dbus-1/interfaces + cp -P $PKG_BUILD/src/org.freedesktop.UPower.QoS.xml $INSTALL/usr/share/dbus-1/interfaces + cp -P $PKG_BUILD/src/org.freedesktop.UPower.Wakeups.xml $INSTALL/usr/share/dbus-1/interfaces + cp -P $PKG_BUILD/src/org.freedesktop.UPower.xml $INSTALL/usr/share/dbus-1/interfaces + +mkdir -p $INSTALL/usr/share/dbus-1/system-services + cp -P $PKG_BUILD/src/org.freedesktop.UPower.service $INSTALL/usr/share/dbus-1/system-services + +mkdir -p $INSTALL/usr/share/polkit-1/actions + cp -P $PKG_BUILD/policy/org.freedesktop.upower.policy $INSTALL/usr/share/polkit-1/actions + cp -P $PKG_BUILD/policy/org.freedesktop.upower.qos.policy $INSTALL/usr/share/polkit-1/actions diff --git a/packages/sysutils/upower/url b/packages/sysutils/upower/url new file mode 100644 index 0000000000..fe8dcb77e1 --- /dev/null +++ b/packages/sysutils/upower/url @@ -0,0 +1 @@ +http://upower.freedesktop.org/releases/upower-0.9.2.tar.bz2 \ No newline at end of file From e3006e500b95c2ea09ccbf1542d22c5dde95d5de Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Thu, 29 Apr 2010 18:21:28 +0200 Subject: [PATCH 247/320] busybox: - create /var/lib/upower at starttime --- packages/sysutils/busybox/init.d/06_make_directorys | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/sysutils/busybox/init.d/06_make_directorys b/packages/sysutils/busybox/init.d/06_make_directorys index 8f4690580d..fde0d0c8f8 100755 --- a/packages/sysutils/busybox/init.d/06_make_directorys +++ b/packages/sysutils/busybox/init.d/06_make_directorys @@ -21,4 +21,5 @@ progress "make variable directory structure" # others: $IONICE mkdir -p /var/lib/polkit-1 \ - /var/lib/udisks + /var/lib/udisks \ + /var/lib/upower From 7ad081a59a30b0851dfe17d0d602a1b6c20a8f35 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Thu, 29 Apr 2010 18:22:04 +0200 Subject: [PATCH 248/320] linux: - add tuxonice kernel support --- .../patches/tuxonice-3.1-for-2.6.33.diff | 21427 ++++++++++++++++ projects/ION/linux/linux.i386.conf | 28 +- projects/ION/linux/linux.x86_64.conf | 28 +- projects/generic/linux/linux.i386.conf | 29 +- projects/intel/linux/linux.i386.conf | 29 +- 5 files changed, 21537 insertions(+), 4 deletions(-) create mode 100644 packages/linux/patches/tuxonice-3.1-for-2.6.33.diff diff --git a/packages/linux/patches/tuxonice-3.1-for-2.6.33.diff b/packages/linux/patches/tuxonice-3.1-for-2.6.33.diff new file mode 100644 index 0000000000..fdd7bee0d9 --- /dev/null +++ b/packages/linux/patches/tuxonice-3.1-for-2.6.33.diff @@ -0,0 +1,21427 @@ +diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt +index e7848a0..616afc2 100644 +--- a/Documentation/kernel-parameters.txt ++++ b/Documentation/kernel-parameters.txt +@@ -2703,6 +2703,9 @@ and is between 256 and 4096 characters. It is defined in the file + medium is write-protected). + Example: quirks=0419:aaf5:rl,0421:0433:rc + ++ uuid_debug= (Boolean) whether to enable debugging of TuxOnIce's ++ uuid support. ++ + vdso= [X86,SH] + vdso=2: enable compat VDSO (default with COMPAT_VDSO) + vdso=1: enable VDSO (default) +diff --git a/Documentation/power/tuxonice-internals.txt b/Documentation/power/tuxonice-internals.txt +new file mode 100644 +index 0000000..7a96186 +--- /dev/null ++++ b/Documentation/power/tuxonice-internals.txt +@@ -0,0 +1,477 @@ ++ TuxOnIce 3.0 Internal Documentation. ++ Updated to 26 March 2009 ++ ++1. Introduction. ++ ++ TuxOnIce 3.0 is an addition to the Linux Kernel, designed to ++ allow the user to quickly shutdown and quickly boot a computer, without ++ needing to close documents or programs. It is equivalent to the ++ hibernate facility in some laptops. This implementation, however, ++ requires no special BIOS or hardware support. ++ ++ The code in these files is based upon the original implementation ++ prepared by Gabor Kuti and additional work by Pavel Machek and a ++ host of others. This code has been substantially reworked by Nigel ++ Cunningham, again with the help and testing of many others, not the ++ least of whom is Michael Frank. At its heart, however, the operation is ++ essentially the same as Gabor's version. ++ ++2. Overview of operation. ++ ++ The basic sequence of operations is as follows: ++ ++ a. Quiesce all other activity. ++ b. Ensure enough memory and storage space are available, and attempt ++ to free memory/storage if necessary. ++ c. Allocate the required memory and storage space. ++ d. Write the image. ++ e. Power down. ++ ++ There are a number of complicating factors which mean that things are ++ not as simple as the above would imply, however... ++ ++ o The activity of each process must be stopped at a point where it will ++ not be holding locks necessary for saving the image, or unexpectedly ++ restart operations due to something like a timeout and thereby make ++ our image inconsistent. ++ ++ o It is desirous that we sync outstanding I/O to disk before calculating ++ image statistics. This reduces corruption if one should suspend but ++ then not resume, and also makes later parts of the operation safer (see ++ below). ++ ++ o We need to get as close as we can to an atomic copy of the data. ++ Inconsistencies in the image will result in inconsistent memory contents at ++ resume time, and thus in instability of the system and/or file system ++ corruption. This would appear to imply a maximum image size of one half of ++ the amount of RAM, but we have a solution... (again, below). ++ ++ o In 2.6, we choose to play nicely with the other suspend-to-disk ++ implementations. ++ ++3. Detailed description of internals. ++ ++ a. Quiescing activity. ++ ++ Safely quiescing the system is achieved using three separate but related ++ aspects. ++ ++ First, we note that the vast majority of processes don't need to run during ++ suspend. They can be 'frozen'. We therefore implement a refrigerator ++ routine, which processes enter and in which they remain until the cycle is ++ complete. Processes enter the refrigerator via try_to_freeze() invocations ++ at appropriate places. A process cannot be frozen in any old place. It ++ must not be holding locks that will be needed for writing the image or ++ freezing other processes. For this reason, userspace processes generally ++ enter the refrigerator via the signal handling code, and kernel threads at ++ the place in their event loops where they drop locks and yield to other ++ processes or sleep. ++ ++ The task of freezing processes is complicated by the fact that there can be ++ interdependencies between processes. Freezing process A before process B may ++ mean that process B cannot be frozen, because it stops at waiting for ++ process A rather than in the refrigerator. This issue is seen where ++ userspace waits on freezeable kernel threads or fuse filesystem threads. To ++ address this issue, we implement the following algorithm for quiescing ++ activity: ++ ++ - Freeze filesystems (including fuse - userspace programs starting ++ new requests are immediately frozen; programs already running ++ requests complete their work before being frozen in the next ++ step) ++ - Freeze userspace ++ - Thaw filesystems (this is safe now that userspace is frozen and no ++ fuse requests are outstanding). ++ - Invoke sys_sync (noop on fuse). ++ - Freeze filesystems ++ - Freeze kernel threads ++ ++ If we need to free memory, we thaw kernel threads and filesystems, but not ++ userspace. We can then free caches without worrying about deadlocks due to ++ swap files being on frozen filesystems or such like. ++ ++ b. Ensure enough memory & storage are available. ++ ++ We have a number of constraints to meet in order to be able to successfully ++ suspend and resume. ++ ++ First, the image will be written in two parts, described below. One of these ++ parts needs to have an atomic copy made, which of course implies a maximum ++ size of one half of the amount of system memory. The other part ('pageset') ++ is not atomically copied, and can therefore be as large or small as desired. ++ ++ Second, we have constraints on the amount of storage available. In these ++ calculations, we may also consider any compression that will be done. The ++ cryptoapi module allows the user to configure an expected compression ratio. ++ ++ Third, the user can specify an arbitrary limit on the image size, in ++ megabytes. This limit is treated as a soft limit, so that we don't fail the ++ attempt to suspend if we cannot meet this constraint. ++ ++ c. Allocate the required memory and storage space. ++ ++ Having done the initial freeze, we determine whether the above constraints ++ are met, and seek to allocate the metadata for the image. If the constraints ++ are not met, or we fail to allocate the required space for the metadata, we ++ seek to free the amount of memory that we calculate is needed and try again. ++ We allow up to four iterations of this loop before aborting the cycle. If we ++ do fail, it should only be because of a bug in TuxOnIce's calculations. ++ ++ These steps are merged together in the prepare_image function, found in ++ prepare_image.c. The functions are merged because of the cyclical nature ++ of the problem of calculating how much memory and storage is needed. Since ++ the data structures containing the information about the image must ++ themselves take memory and use storage, the amount of memory and storage ++ required changes as we prepare the image. Since the changes are not large, ++ only one or two iterations will be required to achieve a solution. ++ ++ The recursive nature of the algorithm is miminised by keeping user space ++ frozen while preparing the image, and by the fact that our records of which ++ pages are to be saved and which pageset they are saved in use bitmaps (so ++ that changes in number or fragmentation of the pages to be saved don't ++ feedback via changes in the amount of memory needed for metadata). The ++ recursiveness is thus limited to any extra slab pages allocated to store the ++ extents that record storage used, and the effects of seeking to free memory. ++ ++ d. Write the image. ++ ++ We previously mentioned the need to create an atomic copy of the data, and ++ the half-of-memory limitation that is implied in this. This limitation is ++ circumvented by dividing the memory to be saved into two parts, called ++ pagesets. ++ ++ Pageset2 contains most of the page cache - the pages on the active and ++ inactive LRU lists that aren't needed or modified while TuxOnIce is ++ running, so they can be safely written without an atomic copy. They are ++ therefore saved first and reloaded last. While saving these pages, ++ TuxOnIce carefully ensures that the work of writing the pages doesn't make ++ the image inconsistent. With the support for Kernel (Video) Mode Setting ++ going into the kernel at the time of writing, we need to check for pages ++ on the LRU that are used by KMS, and exclude them from pageset2. They are ++ atomically copied as part of pageset 1. ++ ++ Once pageset2 has been saved, we prepare to do the atomic copy of remaining ++ memory. As part of the preparation, we power down drivers, thereby providing ++ them with the opportunity to have their state recorded in the image. The ++ amount of memory allocated by drivers for this is usually negligible, but if ++ DRI is in use, video drivers may require significants amounts. Ideally we ++ would be able to query drivers while preparing the image as to the amount of ++ memory they will need. Unfortunately no such mechanism exists at the time of ++ writing. For this reason, TuxOnIce allows the user to set an ++ 'extra_pages_allowance', which is used to seek to ensure sufficient memory ++ is available for drivers at this point. TuxOnIce also lets the user set this ++ value to 0. In this case, a test driver suspend is done while preparing the ++ image, and the difference (plus a margin) used instead. TuxOnIce will also ++ automatically restart the hibernation process (twice at most) if it finds ++ that the extra pages allowance is not sufficient. It will then use what was ++ actually needed (plus a margin, again). Failure to hibernate should thus ++ be an extremely rare occurence. ++ ++ Having suspended the drivers, we save the CPU context before making an ++ atomic copy of pageset1, resuming the drivers and saving the atomic copy. ++ After saving the two pagesets, we just need to save our metadata before ++ powering down. ++ ++ As we mentioned earlier, the contents of pageset2 pages aren't needed once ++ they've been saved. We therefore use them as the destination of our atomic ++ copy. In the unlikely event that pageset1 is larger, extra pages are ++ allocated while the image is being prepared. This is normally only a real ++ possibility when the system has just been booted and the page cache is ++ small. ++ ++ This is where we need to be careful about syncing, however. Pageset2 will ++ probably contain filesystem meta data. If this is overwritten with pageset1 ++ and then a sync occurs, the filesystem will be corrupted - at least until ++ resume time and another sync of the restored data. Since there is a ++ possibility that the user might not resume or (may it never be!) that ++ TuxOnIce might oops, we do our utmost to avoid syncing filesystems after ++ copying pageset1. ++ ++ e. Power down. ++ ++ Powering down uses standard kernel routines. TuxOnIce supports powering down ++ using the ACPI S3, S4 and S5 methods or the kernel's non-ACPI power-off. ++ Supporting suspend to ram (S3) as a power off option might sound strange, ++ but it allows the user to quickly get their system up and running again if ++ the battery doesn't run out (we just need to re-read the overwritten pages) ++ and if the battery does run out (or the user removes power), they can still ++ resume. ++ ++4. Data Structures. ++ ++ TuxOnIce uses three main structures to store its metadata and configuration ++ information: ++ ++ a) Pageflags bitmaps. ++ ++ TuxOnIce records which pages will be in pageset1, pageset2, the destination ++ of the atomic copy and the source of the atomically restored image using ++ bitmaps. The code used is that written for swsusp, with small improvements ++ to match TuxOnIce's requirements. ++ ++ The pageset1 bitmap is thus easily stored in the image header for use at ++ resume time. ++ ++ As mentioned above, using bitmaps also means that the amount of memory and ++ storage required for recording the above information is constant. This ++ greatly simplifies the work of preparing the image. In earlier versions of ++ TuxOnIce, extents were used to record which pages would be stored. In that ++ case, however, eating memory could result in greater fragmentation of the ++ lists of pages, which in turn required more memory to store the extents and ++ more storage in the image header. These could in turn require further ++ freeing of memory, and another iteration. All of this complexity is removed ++ by having bitmaps. ++ ++ Bitmaps also make a lot of sense because TuxOnIce only ever iterates ++ through the lists. There is therefore no cost to not being able to find the ++ nth page in order 0 time. We only need to worry about the cost of finding ++ the n+1th page, given the location of the nth page. Bitwise optimisations ++ help here. ++ ++ b) Extents for block data. ++ ++ TuxOnIce supports writing the image to multiple block devices. In the case ++ of swap, multiple partitions and/or files may be in use, and we happily use ++ them all (with the exception of compcache pages, which we allocate but do ++ not use). This use of multiple block devices is accomplished as follows: ++ ++ Whatever the actual source of the allocated storage, the destination of the ++ image can be viewed in terms of one or more block devices, and on each ++ device, a list of sectors. To simplify matters, we only use contiguous, ++ PAGE_SIZE aligned sectors, like the swap code does. ++ ++ Since sector numbers on each bdev may well not start at 0, it makes much ++ more sense to use extents here. Contiguous ranges of pages can thus be ++ represented in the extents by contiguous values. ++ ++ Variations in block size are taken account of in transforming this data ++ into the parameters for bio submission. ++ ++ We can thus implement a layer of abstraction wherein the core of TuxOnIce ++ doesn't have to worry about which device we're currently writing to or ++ where in the device we are. It simply requests that the next page in the ++ pageset or header be written, leaving the details to this lower layer. ++ The lower layer remembers where in the sequence of devices and blocks each ++ pageset starts. The header always starts at the beginning of the allocated ++ storage. ++ ++ So extents are: ++ ++ struct extent { ++ unsigned long minimum, maximum; ++ struct extent *next; ++ } ++ ++ These are combined into chains of extents for a device: ++ ++ struct extent_chain { ++ int size; /* size of the extent ie sum (max-min+1) */ ++ int allocs, frees; ++ char *name; ++ struct extent *first, *last_touched; ++ }; ++ ++ For each bdev, we need to store a little more info: ++ ++ struct suspend_bdev_info { ++ struct block_device *bdev; ++ dev_t dev_t; ++ int bmap_shift; ++ int blocks_per_page; ++ }; ++ ++ The dev_t is used to identify the device in the stored image. As a result, ++ we expect devices at resume time to have the same major and minor numbers ++ as they had while suspending. This is primarily a concern where the user ++ utilises LVM for storage, as they will need to dmsetup their partitions in ++ such a way as to maintain this consistency at resume time. ++ ++ bmap_shift and blocks_per_page apply the effects of variations in blocks ++ per page settings for the filesystem and underlying bdev. For most ++ filesystems, these are the same, but for xfs, they can have independant ++ values. ++ ++ Combining these two structures together, we have everything we need to ++ record what devices and what blocks on each device are being used to ++ store the image, and to submit i/o using bio_submit. ++ ++ The last elements in the picture are a means of recording how the storage ++ is being used. ++ ++ We do this first and foremost by implementing a layer of abstraction on ++ top of the devices and extent chains which allows us to view however many ++ devices there might be as one long storage tape, with a single 'head' that ++ tracks a 'current position' on the tape: ++ ++ struct extent_iterate_state { ++ struct extent_chain *chains; ++ int num_chains; ++ int current_chain; ++ struct extent *current_extent; ++ unsigned long current_offset; ++ }; ++ ++ That is, *chains points to an array of size num_chains of extent chains. ++ For the filewriter, this is always a single chain. For the swapwriter, the ++ array is of size MAX_SWAPFILES. ++ ++ current_chain, current_extent and current_offset thus point to the current ++ index in the chains array (and into a matching array of struct ++ suspend_bdev_info), the current extent in that chain (to optimise access), ++ and the current value in the offset. ++ ++ The image is divided into three parts: ++ - The header ++ - Pageset 1 ++ - Pageset 2 ++ ++ The header always starts at the first device and first block. We know its ++ size before we begin to save the image because we carefully account for ++ everything that will be stored in it. ++ ++ The second pageset (LRU) is stored first. It begins on the next page after ++ the end of the header. ++ ++ The first pageset is stored second. It's start location is only known once ++ pageset2 has been saved, since pageset2 may be compressed as it is written. ++ This location is thus recorded at the end of saving pageset2. It is page ++ aligned also. ++ ++ Since this information is needed at resume time, and the location of extents ++ in memory will differ at resume time, this needs to be stored in a portable ++ way: ++ ++ struct extent_iterate_saved_state { ++ int chain_num; ++ int extent_num; ++ unsigned long offset; ++ }; ++ ++ We can thus implement a layer of abstraction wherein the core of TuxOnIce ++ doesn't have to worry about which device we're currently writing to or ++ where in the device we are. It simply requests that the next page in the ++ pageset or header be written, leaving the details to this layer, and ++ invokes the routines to remember and restore the position, without having ++ to worry about the details of how the data is arranged on disk or such like. ++ ++ c) Modules ++ ++ One aim in designing TuxOnIce was to make it flexible. We wanted to allow ++ for the implementation of different methods of transforming a page to be ++ written to disk and different methods of getting the pages stored. ++ ++ In early versions (the betas and perhaps Suspend1), compression support was ++ inlined in the image writing code, and the data structures and code for ++ managing swap were intertwined with the rest of the code. A number of people ++ had expressed interest in implementing image encryption, and alternative ++ methods of storing the image. ++ ++ In order to achieve this, TuxOnIce was given a modular design. ++ ++ A module is a single file which encapsulates the functionality needed ++ to transform a pageset of data (encryption or compression, for example), ++ or to write the pageset to a device. The former type of module is called ++ a 'page-transformer', the later a 'writer'. ++ ++ Modules are linked together in pipeline fashion. There may be zero or more ++ page transformers in a pipeline, and there is always exactly one writer. ++ The pipeline follows this pattern: ++ ++ --------------------------------- ++ | TuxOnIce Core | ++ --------------------------------- ++ | ++ | ++ --------------------------------- ++ | Page transformer 1 | ++ --------------------------------- ++ | ++ | ++ --------------------------------- ++ | Page transformer 2 | ++ --------------------------------- ++ | ++ | ++ --------------------------------- ++ | Writer | ++ --------------------------------- ++ ++ During the writing of an image, the core code feeds pages one at a time ++ to the first module. This module performs whatever transformations it ++ implements on the incoming data, completely consuming the incoming data and ++ feeding output in a similar manner to the next module. ++ ++ All routines are SMP safe, and the final result of the transformations is ++ written with an index (provided by the core) and size of the output by the ++ writer. As a result, we can have multithreaded I/O without needing to ++ worry about the sequence in which pages are written (or read). ++ ++ During reading, the pipeline works in the reverse direction. The core code ++ calls the first module with the address of a buffer which should be filled. ++ (Note that the buffer size is always PAGE_SIZE at this time). This module ++ will in turn request data from the next module and so on down until the ++ writer is made to read from the stored image. ++ ++ Part of definition of the structure of a module thus looks like this: ++ ++ int (*rw_init) (int rw, int stream_number); ++ int (*rw_cleanup) (int rw); ++ int (*write_chunk) (struct page *buffer_page); ++ int (*read_chunk) (struct page *buffer_page, int sync); ++ ++ It should be noted that the _cleanup routine may be called before the ++ full stream of data has been read or written. While writing the image, ++ the user may (depending upon settings) choose to abort suspending, and ++ if we are in the midst of writing the last portion of the image, a portion ++ of the second pageset may be reread. This may also happen if an error ++ occurs and we seek to abort the process of writing the image. ++ ++ The modular design is also useful in a number of other ways. It provides ++ a means where by we can add support for: ++ ++ - providing overall initialisation and cleanup routines; ++ - serialising configuration information in the image header; ++ - providing debugging information to the user; ++ - determining memory and image storage requirements; ++ - dis/enabling components at run-time; ++ - configuring the module (see below); ++ ++ ...and routines for writers specific to their work: ++ - Parsing a resume= location; ++ - Determining whether an image exists; ++ - Marking a resume as having been attempted; ++ - Invalidating an image; ++ ++ Since some parts of the core - the user interface and storage manager ++ support - have use for some of these functions, they are registered as ++ 'miscellaneous' modules as well. ++ ++ d) Sysfs data structures. ++ ++ This brings us naturally to support for configuring TuxOnIce. We desired to ++ provide a way to make TuxOnIce as flexible and configurable as possible. ++ The user shouldn't have to reboot just because they want to now hibernate to ++ a file instead of a partition, for example. ++ ++ To accomplish this, TuxOnIce implements a very generic means whereby the ++ core and modules can register new sysfs entries. All TuxOnIce entries use ++ a single _store and _show routine, both of which are found in ++ tuxonice_sysfs.c in the kernel/power directory. These routines handle the ++ most common operations - getting and setting the values of bits, integers, ++ longs, unsigned longs and strings in one place, and allow overrides for ++ customised get and set options as well as side-effect routines for all ++ reads and writes. ++ ++ When combined with some simple macros, a new sysfs entry can then be defined ++ in just a couple of lines: ++ ++ SYSFS_INT("progress_granularity", SYSFS_RW, &progress_granularity, 1, ++ 2048, 0, NULL), ++ ++ This defines a sysfs entry named "progress_granularity" which is rw and ++ allows the user to access an integer stored at &progress_granularity, giving ++ it a value between 1 and 2048 inclusive. ++ ++ Sysfs entries are registered under /sys/power/tuxonice, and entries for ++ modules are located in a subdirectory named after the module. ++ +diff --git a/Documentation/power/tuxonice.txt b/Documentation/power/tuxonice.txt +new file mode 100644 +index 0000000..3bf0575 +--- /dev/null ++++ b/Documentation/power/tuxonice.txt +@@ -0,0 +1,948 @@ ++ --- TuxOnIce, version 3.0 --- ++ ++1. What is it? ++2. Why would you want it? ++3. What do you need to use it? ++4. Why not just use the version already in the kernel? ++5. How do you use it? ++6. What do all those entries in /sys/power/tuxonice do? ++7. How do you get support? ++8. I think I've found a bug. What should I do? ++9. When will XXX be supported? ++10 How does it work? ++11. Who wrote TuxOnIce? ++ ++1. What is it? ++ ++ Imagine you're sitting at your computer, working away. For some reason, you ++ need to turn off your computer for a while - perhaps it's time to go home ++ for the day. When you come back to your computer next, you're going to want ++ to carry on where you left off. Now imagine that you could push a button and ++ have your computer store the contents of its memory to disk and power down. ++ Then, when you next start up your computer, it loads that image back into ++ memory and you can carry on from where you were, just as if you'd never ++ turned the computer off. You have far less time to start up, no reopening of ++ applications or finding what directory you put that file in yesterday. ++ That's what TuxOnIce does. ++ ++ TuxOnIce has a long heritage. It began life as work by Gabor Kuti, who, ++ with some help from Pavel Machek, got an early version going in 1999. The ++ project was then taken over by Florent Chabaud while still in alpha version ++ numbers. Nigel Cunningham came on the scene when Florent was unable to ++ continue, moving the project into betas, then 1.0, 2.0 and so on up to ++ the present series. During the 2.0 series, the name was contracted to ++ Suspend2 and the website suspend2.net created. Beginning around July 2007, ++ a transition to calling the software TuxOnIce was made, to seek to help ++ make it clear that TuxOnIce is more concerned with hibernation than suspend ++ to ram. ++ ++ Pavel Machek's swsusp code, which was merged around 2.5.17 retains the ++ original name, and was essentially a fork of the beta code until Rafael ++ Wysocki came on the scene in 2005 and began to improve it further. ++ ++2. Why would you want it? ++ ++ Why wouldn't you want it? ++ ++ Being able to save the state of your system and quickly restore it improves ++ your productivity - you get a useful system in far less time than through ++ the normal boot process. You also get to be completely 'green', using zero ++ power, or as close to that as possible (the computer may still provide ++ minimal power to some devices, so they can initiate a power on, but that ++ will be the same amount of power as would be used if you told the computer ++ to shutdown. ++ ++3. What do you need to use it? ++ ++ a. Kernel Support. ++ ++ i) The TuxOnIce patch. ++ ++ TuxOnIce is part of the Linux Kernel. This version is not part of Linus's ++ 2.6 tree at the moment, so you will need to download the kernel source and ++ apply the latest patch. Having done that, enable the appropriate options in ++ make [menu|x]config (under Power Management Options - look for "Enhanced ++ Hibernation"), compile and install your kernel. TuxOnIce works with SMP, ++ Highmem, preemption, fuse filesystems, x86-32, PPC and x86_64. ++ ++ TuxOnIce patches are available from http://tuxonice.net. ++ ++ ii) Compression support. ++ ++ Compression support is implemented via the cryptoapi. You will therefore want ++ to select any Cryptoapi transforms that you want to use on your image from ++ the Cryptoapi menu while configuring your kernel. We recommend the use of the ++ LZO compression method - it is very fast and still achieves good compression. ++ ++ You can also tell TuxOnIce to write its image to an encrypted and/or ++ compressed filesystem/swap partition. In that case, you don't need to do ++ anything special for TuxOnIce when it comes to kernel configuration. ++ ++ iii) Configuring other options. ++ ++ While you're configuring your kernel, try to configure as much as possible ++ to build as modules. We recommend this because there are a number of drivers ++ that are still in the process of implementing proper power management ++ support. In those cases, the best way to work around their current lack is ++ to build them as modules and remove the modules while hibernating. You might ++ also bug the driver authors to get their support up to speed, or even help! ++ ++ b. Storage. ++ ++ i) Swap. ++ ++ TuxOnIce can store the hibernation image in your swap partition, a swap file or ++ a combination thereof. Whichever combination you choose, you will probably ++ want to create enough swap space to store the largest image you could have, ++ plus the space you'd normally use for swap. A good rule of thumb would be ++ to calculate the amount of swap you'd want without using TuxOnIce, and then ++ add the amount of memory you have. This swapspace can be arranged in any way ++ you'd like. It can be in one partition or file, or spread over a number. The ++ only requirement is that they be active when you start a hibernation cycle. ++ ++ There is one exception to this requirement. TuxOnIce has the ability to turn ++ on one swap file or partition at the start of hibernating and turn it back off ++ at the end. If you want to ensure you have enough memory to store a image ++ when your memory is fully used, you might want to make one swap partition or ++ file for 'normal' use, and another for TuxOnIce to activate & deactivate ++ automatically. (Further details below). ++ ++ ii) Normal files. ++ ++ TuxOnIce includes a 'file allocator'. The file allocator can store your ++ image in a simple file. Since Linux has the concept of everything being a ++ file, this is more powerful than it initially sounds. If, for example, you ++ were to set up a network block device file, you could hibernate to a network ++ server. This has been tested and works to a point, but nbd itself isn't ++ stateless enough for our purposes. ++ ++ Take extra care when setting up the file allocator. If you just type ++ commands without thinking and then try to hibernate, you could cause ++ irreversible corruption on your filesystems! Make sure you have backups. ++ ++ Most people will only want to hibernate to a local file. To achieve that, do ++ something along the lines of: ++ ++ echo "TuxOnIce" > /hibernation-file ++ dd if=/dev/zero bs=1M count=512 >> /hibernation-file ++ ++ This will create a 512MB file called /hibernation-file. To get TuxOnIce to use ++ it: ++ ++ echo /hibernation-file > /sys/power/tuxonice/file/target ++ ++ Then ++ ++ cat /sys/power/tuxonice/resume ++ ++ Put the results of this into your bootloader's configuration (see also step ++ C, below): ++ ++ ---EXAMPLE-ONLY-DON'T-COPY-AND-PASTE--- ++ # cat /sys/power/tuxonice/resume ++ file:/dev/hda2:0x1e001 ++ ++ In this example, we would edit the append= line of our lilo.conf|menu.lst ++ so that it included: ++ ++ resume=file:/dev/hda2:0x1e001 ++ ---EXAMPLE-ONLY-DON'T-COPY-AND-PASTE--- ++ ++ For those who are thinking 'Could I make the file sparse?', the answer is ++ 'No!'. At the moment, there is no way for TuxOnIce to fill in the holes in ++ a sparse file while hibernating. In the longer term (post merge!), I'd like ++ to change things so that the file could be dynamically resized and have ++ holes filled as needed. Right now, however, that's not possible and not a ++ priority. ++ ++ c. Bootloader configuration. ++ ++ Using TuxOnIce also requires that you add an extra parameter to ++ your lilo.conf or equivalent. Here's an example for a swap partition: ++ ++ append="resume=swap:/dev/hda1" ++ ++ This would tell TuxOnIce that /dev/hda1 is a swap partition you ++ have. TuxOnIce will use the swap signature of this partition as a ++ pointer to your data when you hibernate. This means that (in this example) ++ /dev/hda1 doesn't need to be _the_ swap partition where all of your data ++ is actually stored. It just needs to be a swap partition that has a ++ valid signature. ++ ++ You don't need to have a swap partition for this purpose. TuxOnIce ++ can also use a swap file, but usage is a little more complex. Having made ++ your swap file, turn it on and do ++ ++ cat /sys/power/tuxonice/swap/headerlocations ++ ++ (this assumes you've already compiled your kernel with TuxOnIce ++ support and booted it). The results of the cat command will tell you ++ what you need to put in lilo.conf: ++ ++ For swap partitions like /dev/hda1, simply use resume=/dev/hda1. ++ For swapfile `swapfile`, use resume=swap:/dev/hda2:0x242d. ++ ++ If the swapfile changes for any reason (it is moved to a different ++ location, it is deleted and recreated, or the filesystem is ++ defragmented) then you will have to check ++ /sys/power/tuxonice/swap/headerlocations for a new resume_block value. ++ ++ Once you've compiled and installed the kernel and adjusted your bootloader ++ configuration, you should only need to reboot for the most basic part ++ of TuxOnIce to be ready. ++ ++ If you only compile in the swap allocator, or only compile in the file ++ allocator, you don't need to add the "swap:" part of the resume= ++ parameters above. resume=/dev/hda2:0x242d will work just as well. If you ++ have compiled both and your storage is on swap, you can also use this ++ format (the swap allocator is the default allocator). ++ ++ When compiling your kernel, one of the options in the 'Power Management ++ Support' menu, just above the 'Enhanced Hibernation (TuxOnIce)' entry is ++ called 'Default resume partition'. This can be used to set a default value ++ for the resume= parameter. ++ ++ d. The hibernate script. ++ ++ Since the driver model in 2.6 kernels is still being developed, you may need ++ to do more than just configure TuxOnIce. Users of TuxOnIce usually start the ++ process via a script which prepares for the hibernation cycle, tells the ++ kernel to do its stuff and then restore things afterwards. This script might ++ involve: ++ ++ - Switching to a text console and back if X doesn't like the video card ++ status on resume. ++ - Un/reloading drivers that don't play well with hibernation. ++ ++ Note that you might not be able to unload some drivers if there are ++ processes using them. You might have to kill off processes that hold ++ devices open. Hint: if your X server accesses an USB mouse, doing a ++ 'chvt' to a text console releases the device and you can unload the ++ module. ++ ++ Check out the latest script (available on tuxonice.net). ++ ++ e. The userspace user interface. ++ ++ TuxOnIce has very limited support for displaying status if you only apply ++ the kernel patch - it can printk messages, but that is all. In addition, ++ some of the functions mentioned in this document (such as cancelling a cycle ++ or performing interactive debugging) are unavailable. To utilise these ++ functions, or simply get a nice display, you need the 'userui' component. ++ Userui comes in three flavours, usplash, fbsplash and text. Text should ++ work on any console. Usplash and fbsplash require the appropriate ++ (distro specific?) support. ++ ++ To utilise a userui, TuxOnIce just needs to be told where to find the ++ userspace binary: ++ ++ echo "/usr/local/sbin/tuxoniceui_fbsplash" > /sys/power/tuxonice/user_interface/program ++ ++ The hibernate script can do this for you, and a default value for this ++ setting can be configured when compiling the kernel. This path is also ++ stored in the image header, so if you have an initrd or initramfs, you can ++ use the userui during the first part of resuming (prior to the atomic ++ restore) by putting the binary in the same path in your initrd/ramfs. ++ Alternatively, you can put it in a different location and do an echo ++ similar to the above prior to the echo > do_resume. The value saved in the ++ image header will then be ignored. ++ ++4. Why not just use the version already in the kernel? ++ ++ The version in the vanilla kernel has a number of drawbacks. The most ++ serious of these are: ++ - it has a maximum image size of 1/2 total memory; ++ - it doesn't allocate storage until after it has snapshotted memory. ++ This means that you can't be sure hibernating will work until you ++ see it start to write the image; ++ - it does not allow you to press escape to cancel a cycle; ++ - it does not allow you to press escape to cancel resuming; ++ - it does not allow you to automatically swapon a file when ++ starting a cycle; ++ - it does not allow you to use multiple swap partitions or files; ++ - it does not allow you to use ordinary files; ++ - it just invalidates an image and continues to boot if you ++ accidentally boot the wrong kernel after hibernating; ++ - it doesn't support any sort of nice display while hibernating; ++ - it is moving toward requiring that you have an initrd/initramfs ++ to ever have a hope of resuming (uswsusp). While uswsusp will ++ address some of the concerns above, it won't address all of them, ++ and will be more complicated to get set up; ++ - it doesn't have support for suspend-to-both (write a hibernation ++ image, then suspend to ram; I think this is known as ReadySafe ++ under M$). ++ ++5. How do you use it? ++ ++ A hibernation cycle can be started directly by doing: ++ ++ echo > /sys/power/tuxonice/do_hibernate ++ ++ In practice, though, you'll probably want to use the hibernate script ++ to unload modules, configure the kernel the way you like it and so on. ++ In that case, you'd do (as root): ++ ++ hibernate ++ ++ See the hibernate script's man page for more details on the options it ++ takes. ++ ++ If you're using the text or splash user interface modules, one feature of ++ TuxOnIce that you might find useful is that you can press Escape at any time ++ during hibernating, and the process will be aborted. ++ ++ Due to the way hibernation works, this means you'll have your system back and ++ perfectly usable almost instantly. The only exception is when it's at the ++ very end of writing the image. Then it will need to reload a small (usually ++ 4-50MBs, depending upon the image characteristics) portion first. ++ ++ Likewise, when resuming, you can press escape and resuming will be aborted. ++ The computer will then powerdown again according to settings at that time for ++ the powerdown method or rebooting. ++ ++ You can change the settings for powering down while the image is being ++ written by pressing 'R' to toggle rebooting and 'O' to toggle between ++ suspending to ram and powering down completely). ++ ++ If you run into problems with resuming, adding the "noresume" option to ++ the kernel command line will let you skip the resume step and recover your ++ system. This option shouldn't normally be needed, because TuxOnIce modifies ++ the image header prior to the atomic restore, and will thus prompt you ++ if it detects that you've tried to resume an image before (this flag is ++ removed if you press Escape to cancel a resume, so you won't be prompted ++ then). ++ ++ Recent kernels (2.6.24 onwards) add support for resuming from a different ++ kernel to the one that was hibernated (thanks to Rafael for his work on ++ this - I've just embraced and enhanced the support for TuxOnIce). This ++ should further reduce the need for you to use the noresume option. ++ ++6. What do all those entries in /sys/power/tuxonice do? ++ ++ /sys/power/tuxonice is the directory which contains files you can use to ++ tune and configure TuxOnIce to your liking. The exact contents of ++ the directory will depend upon the version of TuxOnIce you're ++ running and the options you selected at compile time. In the following ++ descriptions, names in brackets refer to compile time options. ++ (Note that they're all dependant upon you having selected CONFIG_TUXONICE ++ in the first place!). ++ ++ Since the values of these settings can open potential security risks, the ++ writeable ones are accessible only to the root user. You may want to ++ configure sudo to allow you to invoke your hibernate script as an ordinary ++ user. ++ ++ - alloc/failure_test ++ ++ This debugging option provides a way of testing TuxOnIce's handling of ++ memory allocation failures. Each allocation type that TuxOnIce makes has ++ been given a unique number (see the source code). Echo the appropriate ++ number into this entry, and when TuxOnIce attempts to do that allocation, ++ it will pretend there was a failure and act accordingly. ++ ++ - alloc/find_max_mem_allocated ++ ++ This debugging option will cause TuxOnIce to find the maximum amount of ++ memory it used during a cycle, and report that information in debugging ++ information at the end of the cycle. ++ ++ - alt_resume_param ++ ++ Instead of powering down after writing a hibernation image, TuxOnIce ++ supports resuming from a different image. This entry lets you set the ++ location of the signature for that image (the resume= value you'd use ++ for it). Using an alternate image and keep_image mode, you can do things ++ like using an alternate image to power down an uninterruptible power ++ supply. ++ ++ - block_io/target_outstanding_io ++ ++ This value controls the amount of memory that the block I/O code says it ++ needs when the core code is calculating how much memory is needed for ++ hibernating and for resuming. It doesn't directly control the amount of ++ I/O that is submitted at any one time - that depends on the amount of ++ available memory (we may have more available than we asked for), the ++ throughput that is being achieved and the ability of the CPU to keep up ++ with disk throughput (particularly where we're compressing pages). ++ ++ - checksum/enabled ++ ++ Use cryptoapi hashing routines to verify that Pageset2 pages don't change ++ while we're saving the first part of the image, and to get any pages that ++ do change resaved in the atomic copy. This should normally not be needed, ++ but if you're seeing issues, please enable this. If your issues stop you ++ being able to resume, enable this option, hibernate and cancel the cycle ++ after the atomic copy is done. If the debugging info shows a non-zero ++ number of pages resaved, please report this to Nigel. ++ ++ - compression/algorithm ++ ++ Set the cryptoapi algorithm used for compressing the image. ++ ++ - compression/expected_compression ++ ++ These values allow you to set an expected compression ratio, which TuxOnice ++ will use in calculating whether it meets constraints on the image size. If ++ this expected compression ratio is not attained, the hibernation cycle will ++ abort, so it is wise to allow some spare. You can see what compression ++ ratio is achieved in the logs after hibernating. ++ ++ - debug_info: ++ ++ This file returns information about your configuration that may be helpful ++ in diagnosing problems with hibernating. ++ ++ - did_suspend_to_both: ++ ++ This file can be used when you hibernate with powerdown method 3 (ie suspend ++ to ram after writing the image). There can be two outcomes in this case. We ++ can resume from the suspend-to-ram before the battery runs out, or we can run ++ out of juice and and up resuming like normal. This entry lets you find out, ++ post resume, which way we went. If the value is 1, we resumed from suspend ++ to ram. This can be useful when actions need to be run post suspend-to-ram ++ that don't need to be run if we did the normal resume from power off. ++ ++ - do_hibernate: ++ ++ When anything is written to this file, the kernel side of TuxOnIce will ++ begin to attempt to write an image to disk and power down. You'll normally ++ want to run the hibernate script instead, to get modules unloaded first. ++ ++ - do_resume: ++ ++ When anything is written to this file TuxOnIce will attempt to read and ++ restore an image. If there is no image, it will return almost immediately. ++ If an image exists, the echo > will never return. Instead, the original ++ kernel context will be restored and the original echo > do_hibernate will ++ return. ++ ++ - */enabled ++ ++ These option can be used to temporarily disable various parts of TuxOnIce. ++ ++ - extra_pages_allowance ++ ++ When TuxOnIce does its atomic copy, it calls the driver model suspend ++ and resume methods. If you have DRI enabled with a driver such as fglrx, ++ this can result in the driver allocating a substantial amount of memory ++ for storing its state. Extra_pages_allowance tells TuxOnIce how much ++ extra memory it should ensure is available for those allocations. If ++ your attempts at hibernating end with a message in dmesg indicating that ++ insufficient extra pages were allowed, you need to increase this value. ++ ++ - file/target: ++ ++ Read this value to get the current setting. Write to it to point TuxOnice ++ at a new storage location for the file allocator. See section 3.b.ii above ++ for details of how to set up the file allocator. ++ ++ - freezer_test ++ ++ This entry can be used to get TuxOnIce to just test the freezer and prepare ++ an image without actually doing a hibernation cycle. It is useful for ++ diagnosing freezing and image preparation issues. ++ ++ - full_pageset2 ++ ++ TuxOnIce divides the pages that are stored in an image into two sets. The ++ difference between the two sets is that pages in pageset 1 are atomically ++ copied, and pages in pageset 2 are written to disk without being copied ++ first. A page CAN be written to disk without being copied first if and only ++ if its contents will not be modified or used at any time after userspace ++ processes are frozen. A page MUST be in pageset 1 if its contents are ++ modified or used at any time after userspace processes have been frozen. ++ ++ Normally (ie if this option is enabled), TuxOnIce will put all pages on the ++ per-zone LRUs in pageset2, then remove those pages used by any userspace ++ user interface helper and TuxOnIce storage manager that are running, ++ together with pages used by the GEM memory manager introduced around 2.6.28 ++ kernels. ++ ++ If this option is disabled, a much more conservative approach will be taken. ++ The only pages in pageset2 will be those belonging to userspace processes, ++ with the exclusion of those belonging to the TuxOnIce userspace helpers ++ mentioned above. This will result in a much smaller pageset2, and will ++ therefore result in smaller images than are possible with this option ++ enabled. ++ ++ - ignore_rootfs ++ ++ TuxOnIce records which device is mounted as the root filesystem when ++ writing the hibernation image. It will normally check at resume time that ++ this device isn't already mounted - that would be a cause of filesystem ++ corruption. In some particular cases (RAM based root filesystems), you ++ might want to disable this check. This option allows you to do that. ++ ++ - image_exists: ++ ++ Can be used in a script to determine whether a valid image exists at the ++ location currently pointed to by resume=. Returns up to three lines. ++ The first is whether an image exists (-1 for unsure, otherwise 0 or 1). ++ If an image eixsts, additional lines will return the machine and version. ++ Echoing anything to this entry removes any current image. ++ ++ - image_size_limit: ++ ++ The maximum size of hibernation image written to disk, measured in megabytes ++ (1024*1024). ++ ++ - last_result: ++ ++ The result of the last hibernation cycle, as defined in ++ include/linux/suspend-debug.h with the values SUSPEND_ABORTED to ++ SUSPEND_KEPT_IMAGE. This is a bitmask. ++ ++ - late_cpu_hotplug: ++ ++ This sysfs entry controls whether cpu hotplugging is done - as normal - just ++ before (unplug) and after (replug) the atomic copy/restore (so that all ++ CPUs/cores are available for multithreaded I/O). The alternative is to ++ unplug all secondary CPUs/cores at the start of hibernating/resuming, and ++ replug them at the end of resuming. No multithreaded I/O will be possible in ++ this configuration, but the odd machine has been reported to require it. ++ ++ - lid_file: ++ ++ This determines which ACPI button file we look in to determine whether the ++ lid is open or closed after resuming from suspend to disk or power off. ++ If the entry is set to "lid/LID", we'll open /proc/acpi/button/lid/LID/state ++ and check its contents at the appropriate moment. See post_wake_state below ++ for more details on how this entry is used. ++ ++ - log_everything (CONFIG_PM_DEBUG): ++ ++ Setting this option results in all messages printed being logged. Normally, ++ only a subset are logged, so as to not slow the process and not clutter the ++ logs. Useful for debugging. It can be toggled during a cycle by pressing ++ 'L'. ++ ++ - no_load_direct: ++ ++ This is a debugging option. If, when loading the atomically copied pages of ++ an image, TuxOnIce finds that the destination address for a page is free, ++ it will normally allocate the image, load the data directly into that ++ address and skip it in the atomic restore. If this option is disabled, the ++ page will be loaded somewhere else and atomically restored like other pages. ++ ++ - no_flusher_thread: ++ ++ When doing multithreaded I/O (see below), the first online CPU can be used ++ to _just_ submit compressed pages when writing the image, rather than ++ compressing and submitting data. This option is normally disabled, but has ++ been included because Nigel would like to see whether it will be more useful ++ as the number of cores/cpus in computers increases. ++ ++ - no_multithreaded_io: ++ ++ TuxOnIce will normally create one thread per cpu/core on your computer, ++ each of which will then perform I/O. This will generally result in ++ throughput that's the maximum the storage medium can handle. There ++ shouldn't be any reason to disable multithreaded I/O now, but this option ++ has been retained for debugging purposes. ++ ++ - no_pageset2 ++ ++ See the entry for full_pageset2 above for an explanation of pagesets. ++ Enabling this option causes TuxOnIce to do an atomic copy of all pages, ++ thereby limiting the maximum image size to 1/2 of memory, as swsusp does. ++ ++ - no_pageset2_if_unneeded ++ ++ See the entry for full_pageset2 above for an explanation of pagesets. ++ Enabling this option causes TuxOnIce to act like no_pageset2 was enabled ++ if and only it isn't needed anyway. This option may still make TuxOnIce ++ less reliable because pageset2 pages are normally used to store the ++ atomic copy - drivers that want to do allocations of larger amounts of ++ memory in one shot will be more likely to find that those amounts aren't ++ available if this option is enabled. ++ ++ - pause_between_steps (CONFIG_PM_DEBUG): ++ ++ This option is used during debugging, to make TuxOnIce pause between ++ each step of the process. It is ignored when the nice display is on. ++ ++ - post_wake_state: ++ ++ TuxOnIce provides support for automatically waking after a user-selected ++ delay, and using a different powerdown method if the lid is still closed. ++ (Yes, we're assuming a laptop). This entry lets you choose what state ++ should be entered next. The values are those described under ++ powerdown_method, below. It can be used to suspend to RAM after hibernating, ++ then powerdown properly (say) 20 minutes. It can also be used to power down ++ properly, then wake at (say) 6.30am and suspend to RAM until you're ready ++ to use the machine. ++ ++ - powerdown_method: ++ ++ Used to select a method by which TuxOnIce should powerdown after writing the ++ image. Currently: ++ ++ 0: Don't use ACPI to power off. ++ 3: Attempt to enter Suspend-to-ram. ++ 4: Attempt to enter ACPI S4 mode. ++ 5: Attempt to power down via ACPI S5 mode. ++ ++ Note that these options are highly dependant upon your hardware & software: ++ ++ 3: When succesful, your machine suspends to ram instead of powering off. ++ The advantage of using this mode is that it doesn't matter whether your ++ battery has enough charge to make it through to your next resume. If it ++ lasts, you will simply resume from suspend to ram (and the image on disk ++ will be discarded). If the battery runs out, you will resume from disk ++ instead. The disadvantage is that it takes longer than a normal ++ suspend-to-ram to enter the state, since the suspend-to-disk image needs ++ to be written first. ++ 4/5: When successful, your machine will be off and comsume (almost) no power. ++ But it might still react to some external events like opening the lid or ++ trafic on a network or usb device. For the bios, resume is then the same ++ as warm boot, similar to a situation where you used the command `reboot' ++ to reboot your machine. If your machine has problems on warm boot or if ++ you want to protect your machine with the bios password, this is probably ++ not the right choice. Mode 4 may be necessary on some machines where ACPI ++ wake up methods need to be run to properly reinitialise hardware after a ++ hibernation cycle. ++ 0: Switch the machine completely off. The only possible wakeup is the power ++ button. For the bios, resume is then the same as a cold boot, in ++ particular you would have to provide your bios boot password if your ++ machine uses that feature for booting. ++ ++ - progressbar_granularity_limit: ++ ++ This option can be used to limit the granularity of the progress bar ++ displayed with a bootsplash screen. The value is the maximum number of ++ steps. That is, 10 will make the progress bar jump in 10% increments. ++ ++ - reboot: ++ ++ This option causes TuxOnIce to reboot rather than powering down ++ at the end of saving an image. It can be toggled during a cycle by pressing ++ 'R'. ++ ++ - resume: ++ ++ This sysfs entry can be used to read and set the location in which TuxOnIce ++ will look for the signature of an image - the value set using resume= at ++ boot time or CONFIG_PM_STD_PARTITION ("Default resume partition"). By ++ writing to this file as well as modifying your bootloader's configuration ++ file (eg menu.lst), you can set or reset the location of your image or the ++ method of storing the image without rebooting. ++ ++ - replace_swsusp (CONFIG_TOI_REPLACE_SWSUSP): ++ ++ This option makes ++ ++ echo disk > /sys/power/state ++ ++ activate TuxOnIce instead of swsusp. Regardless of whether this option is ++ enabled, any invocation of swsusp's resume time trigger will cause TuxOnIce ++ to check for an image too. This is due to the fact that at resume time, we ++ can't know whether this option was enabled until we see if an image is there ++ for us to resume from. (And when an image exists, we don't care whether we ++ did replace swsusp anyway - we just want to resume). ++ ++ - resume_commandline: ++ ++ This entry can be read after resuming to see the commandline that was used ++ when resuming began. You might use this to set up two bootloader entries ++ that are the same apart from the fact that one includes a extra append= ++ argument "at_work=1". You could then grep resume_commandline in your ++ post-resume scripts and configure networking (for example) differently ++ depending upon whether you're at home or work. resume_commandline can be ++ set to arbitrary text if you wish to remove sensitive contents. ++ ++ - swap/swapfilename: ++ ++ This entry is used to specify the swapfile or partition that ++ TuxOnIce will attempt to swapon/swapoff automatically. Thus, if ++ I normally use /dev/hda1 for swap, and want to use /dev/hda2 for specifically ++ for my hibernation image, I would ++ ++ echo /dev/hda2 > /sys/power/tuxonice/swap/swapfile ++ ++ /dev/hda2 would then be automatically swapon'd and swapoff'd. Note that the ++ swapon and swapoff occur while other processes are frozen (including kswapd) ++ so this swap file will not be used up when attempting to free memory. The ++ parition/file is also given the highest priority, so other swapfiles/partitions ++ will only be used to save the image when this one is filled. ++ ++ The value of this file is used by headerlocations along with any currently ++ activated swapfiles/partitions. ++ ++ - swap/headerlocations: ++ ++ This option tells you the resume= options to use for swap devices you ++ currently have activated. It is particularly useful when you only want to ++ use a swap file to store your image. See above for further details. ++ ++ - test_bio ++ ++ This is a debugging option. When enabled, TuxOnIce will not hibernate. ++ Instead, when asked to write an image, it will skip the atomic copy, ++ just doing the writing of the image and then returning control to the ++ user at the point where it would have powered off. This is useful for ++ testing throughput in different configurations. ++ ++ - test_filter_speed ++ ++ This is a debugging option. When enabled, TuxOnIce will not hibernate. ++ Instead, when asked to write an image, it will not write anything or do ++ an atomic copy, but will only run any enabled compression algorithm on the ++ data that would have been written (the source pages of the atomic copy in ++ the case of pageset 1). This is useful for comparing the performance of ++ compression algorithms and for determining the extent to which an upgrade ++ to your storage method would improve hibernation speed. ++ ++ - user_interface/debug_sections (CONFIG_PM_DEBUG): ++ ++ This value, together with the console log level, controls what debugging ++ information is displayed. The console log level determines the level of ++ detail, and this value determines what detail is displayed. This value is ++ a bit vector, and the meaning of the bits can be found in the kernel tree ++ in include/linux/tuxonice.h. It can be overridden using the kernel's ++ command line option suspend_dbg. ++ ++ - user_interface/default_console_level (CONFIG_PM_DEBUG): ++ ++ This determines the value of the console log level at the start of a ++ hibernation cycle. If debugging is compiled in, the console log level can be ++ changed during a cycle by pressing the digit keys. Meanings are: ++ ++ 0: Nice display. ++ 1: Nice display plus numerical progress. ++ 2: Errors only. ++ 3: Low level debugging info. ++ 4: Medium level debugging info. ++ 5: High level debugging info. ++ 6: Verbose debugging info. ++ ++ - user_interface/enable_escape: ++ ++ Setting this to "1" will enable you abort a hibernation cycle or resuming by ++ pressing escape, "0" (default) disables this feature. Note that enabling ++ this option means that you cannot initiate a hibernation cycle and then walk ++ away from your computer, expecting it to be secure. With feature disabled, ++ you can validly have this expectation once TuxOnice begins to write the ++ image to disk. (Prior to this point, it is possible that TuxOnice might ++ about because of failure to freeze all processes or because constraints ++ on its ability to save the image are not met). ++ ++ - user_interface/program ++ ++ This entry is used to tell TuxOnice what userspace program to use for ++ providing a user interface while hibernating. The program uses a netlink ++ socket to pass messages back and forward to the kernel, allowing all of the ++ functions formerly implemented in the kernel user interface components. ++ ++ - version: ++ ++ The version of TuxOnIce you have compiled into the currently running kernel. ++ ++ - wake_alarm_dir: ++ ++ As mentioned above (post_wake_state), TuxOnIce supports automatically waking ++ after some delay. This entry allows you to select which wake alarm to use. ++ It should contain the value "rtc0" if you're wanting to use ++ /sys/class/rtc/rtc0. ++ ++ - wake_delay: ++ ++ This value determines the delay from the end of writing the image until the ++ wake alarm is triggered. You can set an absolute time by writing the desired ++ time into /sys/class/rtc//wakealarm and leaving these values ++ empty. ++ ++ Note that for the wakeup to actually occur, you may need to modify entries ++ in /proc/acpi/wakeup. This is done by echoing the name of the button in the ++ first column (eg PBTN) into the file. ++ ++7. How do you get support? ++ ++ Glad you asked. TuxOnIce is being actively maintained and supported ++ by Nigel (the guy doing most of the kernel coding at the moment), Bernard ++ (who maintains the hibernate script and userspace user interface components) ++ and its users. ++ ++ Resources availble include HowTos, FAQs and a Wiki, all available via ++ tuxonice.net. You can find the mailing lists there. ++ ++8. I think I've found a bug. What should I do? ++ ++ By far and a way, the most common problems people have with TuxOnIce ++ related to drivers not having adequate power management support. In this ++ case, it is not a bug with TuxOnIce, but we can still help you. As we ++ mentioned above, such issues can usually be worked around by building the ++ functionality as modules and unloading them while hibernating. Please visit ++ the Wiki for up-to-date lists of known issues and work arounds. ++ ++ If this information doesn't help, try running: ++ ++ hibernate --bug-report ++ ++ ..and sending the output to the users mailing list. ++ ++ Good information on how to provide us with useful information from an ++ oops is found in the file REPORTING-BUGS, in the top level directory ++ of the kernel tree. If you get an oops, please especially note the ++ information about running what is printed on the screen through ksymoops. ++ The raw information is useless. ++ ++9. When will XXX be supported? ++ ++ If there's a feature missing from TuxOnIce that you'd like, feel free to ++ ask. We try to be obliging, within reason. ++ ++ Patches are welcome. Please send to the list. ++ ++10. How does it work? ++ ++ TuxOnIce does its work in a number of steps. ++ ++ a. Freezing system activity. ++ ++ The first main stage in hibernating is to stop all other activity. This is ++ achieved in stages. Processes are considered in fours groups, which we will ++ describe in reverse order for clarity's sake: Threads with the PF_NOFREEZE ++ flag, kernel threads without this flag, userspace processes with the ++ PF_SYNCTHREAD flag and all other processes. The first set (PF_NOFREEZE) are ++ untouched by the refrigerator code. They are allowed to run during hibernating ++ and resuming, and are used to support user interaction, storage access or the ++ like. Other kernel threads (those unneeded while hibernating) are frozen last. ++ This leaves us with userspace processes that need to be frozen. When a ++ process enters one of the *_sync system calls, we set a PF_SYNCTHREAD flag on ++ that process for the duration of that call. Processes that have this flag are ++ frozen after processes without it, so that we can seek to ensure that dirty ++ data is synced to disk as quickly as possible in a situation where other ++ processes may be submitting writes at the same time. Freezing the processes ++ that are submitting data stops new I/O from being submitted. Syncthreads can ++ then cleanly finish their work. So the order is: ++ ++ - Userspace processes without PF_SYNCTHREAD or PF_NOFREEZE; ++ - Userspace processes with PF_SYNCTHREAD (they won't have NOFREEZE); ++ - Kernel processes without PF_NOFREEZE. ++ ++ b. Eating memory. ++ ++ For a successful hibernation cycle, you need to have enough disk space to store the ++ image and enough memory for the various limitations of TuxOnIce's ++ algorithm. You can also specify a maximum image size. In order to attain ++ to those constraints, TuxOnIce may 'eat' memory. If, after freezing ++ processes, the constraints aren't met, TuxOnIce will thaw all the ++ other processes and begin to eat memory until its calculations indicate ++ the constraints are met. It will then freeze processes again and recheck ++ its calculations. ++ ++ c. Allocation of storage. ++ ++ Next, TuxOnIce allocates the storage that will be used to save ++ the image. ++ ++ The core of TuxOnIce knows nothing about how or where pages are stored. We ++ therefore request the active allocator (remember you might have compiled in ++ more than one!) to allocate enough storage for our expect image size. If ++ this request cannot be fulfilled, we eat more memory and try again. If it ++ is fulfiled, we seek to allocate additional storage, just in case our ++ expected compression ratio (if any) isn't achieved. This time, however, we ++ just continue if we can't allocate enough storage. ++ ++ If these calls to our allocator change the characteristics of the image ++ such that we haven't allocated enough memory, we also loop. (The allocator ++ may well need to allocate space for its storage information). ++ ++ d. Write the first part of the image. ++ ++ TuxOnIce stores the image in two sets of pages called 'pagesets'. ++ Pageset 2 contains pages on the active and inactive lists; essentially ++ the page cache. Pageset 1 contains all other pages, including the kernel. ++ We use two pagesets for one important reason: We need to make an atomic copy ++ of the kernel to ensure consistency of the image. Without a second pageset, ++ that would limit us to an image that was at most half the amount of memory ++ available. Using two pagesets allows us to store a full image. Since pageset ++ 2 pages won't be needed in saving pageset 1, we first save pageset 2 pages. ++ We can then make our atomic copy of the remaining pages using both pageset 2 ++ pages and any other pages that are free. While saving both pagesets, we are ++ careful not to corrupt the image. Among other things, we use lowlevel block ++ I/O routines that don't change the pagecache contents. ++ ++ The next step, then, is writing pageset 2. ++ ++ e. Suspending drivers and storing processor context. ++ ++ Having written pageset2, TuxOnIce calls the power management functions to ++ notify drivers of the hibernation, and saves the processor state in preparation ++ for the atomic copy of memory we are about to make. ++ ++ f. Atomic copy. ++ ++ At this stage, everything else but the TuxOnIce code is halted. Processes ++ are frozen or idling, drivers are quiesced and have stored (ideally and where ++ necessary) their configuration in memory we are about to atomically copy. ++ In our lowlevel architecture specific code, we have saved the CPU state. ++ We can therefore now do our atomic copy before resuming drivers etc. ++ ++ g. Save the atomic copy (pageset 1). ++ ++ TuxOnice can then write the atomic copy of the remaining pages. Since we ++ have copied the pages into other locations, we can continue to use the ++ normal block I/O routines without fear of corruption our image. ++ ++ f. Save the image header. ++ ++ Nearly there! We save our settings and other parameters needed for ++ reloading pageset 1 in an 'image header'. We also tell our allocator to ++ serialise its data at this stage, so that it can reread the image at resume ++ time. ++ ++ g. Set the image header. ++ ++ Finally, we edit the header at our resume= location. The signature is ++ changed by the allocator to reflect the fact that an image exists, and to ++ point to the start of that data if necessary (swap allocator). ++ ++ h. Power down. ++ ++ Or reboot if we're debugging and the appropriate option is selected. ++ ++ Whew! ++ ++ Reloading the image. ++ -------------------- ++ ++ Reloading the image is essentially the reverse of all the above. We load ++ our copy of pageset 1, being careful to choose locations that aren't going ++ to be overwritten as we copy it back (We start very early in the boot ++ process, so there are no other processes to quiesce here). We then copy ++ pageset 1 back to its original location in memory and restore the process ++ context. We are now running with the original kernel. Next, we reload the ++ pageset 2 pages, free the memory and swap used by TuxOnIce, restore ++ the pageset header and restart processes. Sounds easy in comparison to ++ hibernating, doesn't it! ++ ++ There is of course more to TuxOnIce than this, but this explanation ++ should be a good start. If there's interest, I'll write further ++ documentation on range pages and the low level I/O. ++ ++11. Who wrote TuxOnIce? ++ ++ (Answer based on the writings of Florent Chabaud, credits in files and ++ Nigel's limited knowledge; apologies to anyone missed out!) ++ ++ The main developers of TuxOnIce have been... ++ ++ Gabor Kuti ++ Pavel Machek ++ Florent Chabaud ++ Bernard Blackham ++ Nigel Cunningham ++ ++ Significant portions of swsusp, the code in the vanilla kernel which ++ TuxOnIce enhances, have been worked on by Rafael Wysocki. Thanks should ++ also be expressed to him. ++ ++ The above mentioned developers have been aided in their efforts by a host ++ of hundreds, if not thousands of testers and people who have submitted bug ++ fixes & suggestions. Of special note are the efforts of Michael Frank, who ++ had his computers repetitively hibernate and resume for literally tens of ++ thousands of cycles and developed scripts to stress the system and test ++ TuxOnIce far beyond the point most of us (Nigel included!) would consider ++ testing. His efforts have contributed as much to TuxOnIce as any of the ++ names above. +diff --git a/MAINTAINERS b/MAINTAINERS +index 2533fc4..e14223f 100644 +--- a/MAINTAINERS ++++ b/MAINTAINERS +@@ -5380,6 +5380,13 @@ S: Maintained + F: drivers/tc/ + F: include/linux/tc.h + ++TUXONICE (ENHANCED HIBERNATION) ++P: Nigel Cunningham ++M: nigel@tuxonice.net ++L: tuxonice-devel@tuxonice.net ++W: http://tuxonice.net ++S: Maintained ++ + U14-34F SCSI DRIVER + M: Dario Ballabio + L: linux-scsi@vger.kernel.org +diff --git a/arch/powerpc/mm/pgtable_32.c b/arch/powerpc/mm/pgtable_32.c +index 573b3bd..073736f 100644 +--- a/arch/powerpc/mm/pgtable_32.c ++++ b/arch/powerpc/mm/pgtable_32.c +@@ -422,6 +422,7 @@ void kernel_map_pages(struct page *page, int numpages, int enable) + + change_page_attr(page, numpages, enable ? PAGE_KERNEL : __pgprot(0)); + } ++EXPORT_SYMBOL_GPL(kernel_map_pages); + #endif /* CONFIG_DEBUG_PAGEALLOC */ + + static int fixmaps; +diff --git a/arch/x86/kernel/reboot.c b/arch/x86/kernel/reboot.c +index 704bddc..acdf978 100644 +--- a/arch/x86/kernel/reboot.c ++++ b/arch/x86/kernel/reboot.c +@@ -710,6 +710,7 @@ void machine_restart(char *cmd) + { + machine_ops.restart(cmd); + } ++EXPORT_SYMBOL_GPL(machine_restart); + + void machine_halt(void) + { +diff --git a/arch/x86/mm/pageattr.c b/arch/x86/mm/pageattr.c +index 1d4eb93..035b423 100644 +--- a/arch/x86/mm/pageattr.c ++++ b/arch/x86/mm/pageattr.c +@@ -1296,6 +1296,7 @@ void kernel_map_pages(struct page *page, int numpages, int enable) + */ + __flush_tlb_all(); + } ++EXPORT_SYMBOL_GPL(kernel_map_pages); + + #ifdef CONFIG_HIBERNATION + +@@ -1310,7 +1311,7 @@ bool kernel_page_present(struct page *page) + pte = lookup_address((unsigned long)page_address(page), &level); + return (pte_val(*pte) & _PAGE_PRESENT); + } +- ++EXPORT_SYMBOL_GPL(kernel_page_present); + #endif /* CONFIG_HIBERNATION */ + + #endif /* CONFIG_DEBUG_PAGEALLOC */ +diff --git a/arch/x86/power/cpu.c b/arch/x86/power/cpu.c +index 0a979f3..7cdace5 100644 +--- a/arch/x86/power/cpu.c ++++ b/arch/x86/power/cpu.c +@@ -112,9 +112,7 @@ void save_processor_state(void) + { + __save_processor_state(&saved_context); + } +-#ifdef CONFIG_X86_32 + EXPORT_SYMBOL(save_processor_state); +-#endif + + static void do_fpu_end(void) + { +diff --git a/arch/x86/power/hibernate_32.c b/arch/x86/power/hibernate_32.c +index 81197c6..ff7e534 100644 +--- a/arch/x86/power/hibernate_32.c ++++ b/arch/x86/power/hibernate_32.c +@@ -8,6 +8,7 @@ + + #include + #include ++#include + + #include + #include +@@ -163,6 +164,7 @@ int swsusp_arch_resume(void) + restore_image(); + return 0; + } ++EXPORT_SYMBOL_GPL(swsusp_arch_resume); + + /* + * pfn_is_nosave - check if given pfn is in the 'nosave' section +diff --git a/arch/x86/power/hibernate_64.c b/arch/x86/power/hibernate_64.c +index 65fdc86..e5c31f6 100644 +--- a/arch/x86/power/hibernate_64.c ++++ b/arch/x86/power/hibernate_64.c +@@ -10,6 +10,7 @@ + + #include + #include ++#include + #include + #include + #include +@@ -118,6 +119,7 @@ int swsusp_arch_resume(void) + restore_image(); + return 0; + } ++EXPORT_SYMBOL_GPL(swsusp_arch_resume); + + /* + * pfn_is_nosave - check if given pfn is in the 'nosave' section +@@ -168,3 +170,4 @@ int arch_hibernation_header_restore(void *addr) + restore_cr3 = rdr->cr3; + return (rdr->magic == RESTORE_MAGIC) ? 0 : -EINVAL; + } ++EXPORT_SYMBOL_GPL(arch_hibernation_header_restore); +diff --git a/block/Makefile b/block/Makefile +index cb2d515..f35a848 100644 +--- a/block/Makefile ++++ b/block/Makefile +@@ -5,7 +5,7 @@ + obj-$(CONFIG_BLOCK) := elevator.o blk-core.o blk-tag.o blk-sysfs.o \ + blk-barrier.o blk-settings.o blk-ioc.o blk-map.o \ + blk-exec.o blk-merge.o blk-softirq.o blk-timeout.o \ +- blk-iopoll.o ioctl.o genhd.o scsi_ioctl.o ++ blk-iopoll.o ioctl.o genhd.o scsi_ioctl.o uuid.o + + obj-$(CONFIG_BLK_DEV_BSG) += bsg.o + obj-$(CONFIG_BLK_CGROUP) += blk-cgroup.o +diff --git a/block/blk-core.c b/block/blk-core.c +index d1a9a0a..d229a5b 100644 +--- a/block/blk-core.c ++++ b/block/blk-core.c +@@ -37,6 +37,9 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(block_remap); + EXPORT_TRACEPOINT_SYMBOL_GPL(block_rq_remap); + EXPORT_TRACEPOINT_SYMBOL_GPL(block_bio_complete); + ++int trap_non_toi_io; ++EXPORT_SYMBOL_GPL(trap_non_toi_io); ++ + static int __make_request(struct request_queue *q, struct bio *bio); + + /* +@@ -1555,6 +1558,9 @@ void submit_bio(int rw, struct bio *bio) + + bio->bi_rw |= rw; + ++ if (unlikely(trap_non_toi_io)) ++ BUG_ON(!bio_rw_flagged(bio, BIO_RW_TUXONICE)); ++ + /* + * If it's a regular read/write or a barrier with data attached, + * go through the normal accounting stuff before submission. +diff --git a/block/genhd.c b/block/genhd.c +index d13ba76..a69521c 100644 +--- a/block/genhd.c ++++ b/block/genhd.c +@@ -18,6 +18,8 @@ + #include + #include + #include ++#include ++#include + + #include "blk.h" + +@@ -1286,3 +1288,82 @@ int invalidate_partition(struct gendisk *disk, int partno) + } + + EXPORT_SYMBOL(invalidate_partition); ++ ++dev_t blk_lookup_uuid(const char *uuid) ++{ ++ dev_t devt = MKDEV(0, 0); ++ struct class_dev_iter iter; ++ struct device *dev; ++ ++ class_dev_iter_init(&iter, &block_class, NULL, &disk_type); ++ while (!devt && (dev = class_dev_iter_next(&iter))) { ++ struct gendisk *disk = dev_to_disk(dev); ++ struct disk_part_iter piter; ++ struct hd_struct *part; ++ ++ disk_part_iter_init(&piter, disk, DISK_PITER_INCL_PART0); ++ ++ while ((part = disk_part_iter_next(&piter))) { ++ if (part_matches_uuid(part, uuid)) { ++ devt = part_devt(part); ++ break; ++ } ++ } ++ disk_part_iter_exit(&piter); ++ } ++ class_dev_iter_exit(&iter); ++ return devt; ++} ++EXPORT_SYMBOL_GPL(blk_lookup_uuid); ++ ++/* Caller uses NULL, key to start. For each match found, we return a bdev on ++ * which we have done blkdev_get, and we do the blkdev_put on block devices ++ * that are passed to us. When no more matches are found, we return NULL. ++ */ ++struct block_device *next_bdev_of_type(struct block_device *last, ++ const char *key) ++{ ++ dev_t devt = MKDEV(0, 0); ++ struct class_dev_iter iter; ++ struct device *dev; ++ struct block_device *next = NULL, *bdev; ++ int got_last = 0; ++ ++ if (!key) ++ goto out; ++ ++ class_dev_iter_init(&iter, &block_class, NULL, &disk_type); ++ while (!devt && (dev = class_dev_iter_next(&iter))) { ++ struct gendisk *disk = dev_to_disk(dev); ++ struct disk_part_iter piter; ++ struct hd_struct *part; ++ ++ disk_part_iter_init(&piter, disk, DISK_PITER_INCL_PART0); ++ ++ while ((part = disk_part_iter_next(&piter))) { ++ bdev = bdget(part_devt(part)); ++ if (last && !got_last) { ++ if (last == bdev) ++ got_last = 1; ++ continue; ++ } ++ ++ if (blkdev_get(bdev, FMODE_READ)) ++ continue; ++ ++ if (bdev_matches_key(bdev, key)) { ++ next = bdev; ++ break; ++ } ++ ++ blkdev_put(bdev, FMODE_READ); ++ } ++ disk_part_iter_exit(&piter); ++ } ++ class_dev_iter_exit(&iter); ++out: ++ if (last) ++ blkdev_put(last, FMODE_READ); ++ return next; ++} ++EXPORT_SYMBOL_GPL(next_bdev_of_type); +diff --git a/block/uuid.c b/block/uuid.c +new file mode 100644 +index 0000000..3862685 +--- /dev/null ++++ b/block/uuid.c +@@ -0,0 +1,528 @@ ++#include ++#include ++#include ++ ++static int debug_enabled; ++ ++#define PRINTK(fmt, args...) do { \ ++ if (debug_enabled) \ ++ printk(KERN_DEBUG fmt, ## args); \ ++ } while(0) ++ ++#define PRINT_HEX_DUMP(v1, v2, v3, v4, v5, v6, v7, v8) \ ++ do { \ ++ if (debug_enabled) \ ++ print_hex_dump(v1, v2, v3, v4, v5, v6, v7, v8); \ ++ } while(0) ++ ++/* ++ * Simple UUID translation ++ */ ++ ++struct uuid_info { ++ const char *key; ++ const char *name; ++ long bkoff; ++ unsigned sboff; ++ unsigned sig_len; ++ const char *magic; ++ int uuid_offset; ++ int last_mount_offset; ++ int last_mount_size; ++}; ++ ++/* ++ * Based on libuuid's blkid_magic array. Note that I don't ++ * have uuid offsets for all of these yet - mssing ones are 0x0. ++ * Further information welcome. ++ * ++ * Rearranged by page of fs signature for optimisation. ++ */ ++static struct uuid_info uuid_list[] = { ++ { NULL, "oracleasm", 0, 32, 8, "ORCLDISK", 0x0, 0, 0 }, ++ { "ntfs", "ntfs", 0, 3, 8, "NTFS ", 0x0, 0, 0 }, ++ { "vfat", "vfat", 0, 0x52, 5, "MSWIN", 0x0, 0, 0 }, ++ { "vfat", "vfat", 0, 0x52, 8, "FAT32 ", 0x0, 0, 0 }, ++ { "vfat", "vfat", 0, 0x36, 5, "MSDOS", 0x0, 0, 0 }, ++ { "vfat", "vfat", 0, 0x36, 8, "FAT16 ", 0x0, 0, 0 }, ++ { "vfat", "vfat", 0, 0x36, 8, "FAT12 ", 0x0, 0, 0 }, ++ { "vfat", "vfat", 0, 0, 1, "\353", 0x0, 0, 0 }, ++ { "vfat", "vfat", 0, 0, 1, "\351", 0x0, 0, 0 }, ++ { "vfat", "vfat", 0, 0x1fe, 2, "\125\252", 0x0, 0, 0 }, ++ { "xfs", "xfs", 0, 0, 4, "XFSB", 0x14, 0, 0 }, ++ { "romfs", "romfs", 0, 0, 8, "-rom1fs-", 0x0, 0, 0 }, ++ { "bfs", "bfs", 0, 0, 4, "\316\372\173\033", 0, 0, 0 }, ++ { "cramfs", "cramfs", 0, 0, 4, "E=\315\050", 0x0, 0, 0 }, ++ { "qnx4", "qnx4", 0, 4, 6, "QNX4FS", 0, 0, 0 }, ++ { NULL, "crypt_LUKS", 0, 0, 6, "LUKS\xba\xbe", 0x0, 0, 0 }, ++ { "squashfs", "squashfs", 0, 0, 4, "sqsh", 0, 0, 0 }, ++ { "squashfs", "squashfs", 0, 0, 4, "hsqs", 0, 0, 0 }, ++ { "ocfs", "ocfs", 0, 8, 9, "OracleCFS", 0x0, 0, 0 }, ++ { "lvm2pv", "lvm2pv", 0, 0x018, 8, "LVM2 001", 0x0, 0, 0 }, ++ { "sysv", "sysv", 0, 0x3f8, 4, "\020~\030\375", 0, 0, 0 }, ++ { "ext", "ext", 1, 0x38, 2, "\123\357", 0x468, 0x42c, 4 }, ++ { "minix", "minix", 1, 0x10, 2, "\177\023", 0, 0, 0 }, ++ { "minix", "minix", 1, 0x10, 2, "\217\023", 0, 0, 0 }, ++ { "minix", "minix", 1, 0x10, 2, "\150\044", 0, 0, 0 }, ++ { "minix", "minix", 1, 0x10, 2, "\170\044", 0, 0, 0 }, ++ { "lvm2pv", "lvm2pv", 1, 0x018, 8, "LVM2 001", 0x0, 0, 0 }, ++ { "vxfs", "vxfs", 1, 0, 4, "\365\374\001\245", 0, 0, 0 }, ++ { "hfsplus", "hfsplus", 1, 0, 2, "BD", 0x0, 0, 0 }, ++ { "hfsplus", "hfsplus", 1, 0, 2, "H+", 0x0, 0, 0 }, ++ { "hfsplus", "hfsplus", 1, 0, 2, "HX", 0x0, 0, 0 }, ++ { "hfs", "hfs", 1, 0, 2, "BD", 0x0, 0, 0 }, ++ { "ocfs2", "ocfs2", 1, 0, 6, "OCFSV2", 0x0, 0, 0 }, ++ { "lvm2pv", "lvm2pv", 0, 0x218, 8, "LVM2 001", 0x0, 0, 0 }, ++ { "lvm2pv", "lvm2pv", 1, 0x218, 8, "LVM2 001", 0x0, 0, 0 }, ++ { "ocfs2", "ocfs2", 2, 0, 6, "OCFSV2", 0x0, 0, 0 }, ++ { "swap", "swap", 0, 0xff6, 10, "SWAP-SPACE", 0x40c, 0, 0 }, ++ { "swap", "swap", 0, 0xff6, 10, "SWAPSPACE2", 0x40c, 0, 0 }, ++ { "swap", "swsuspend", 0, 0xff6, 9, "S1SUSPEND", 0x40c, 0, 0 }, ++ { "swap", "swsuspend", 0, 0xff6, 9, "S2SUSPEND", 0x40c, 0, 0 }, ++ { "swap", "swsuspend", 0, 0xff6, 9, "ULSUSPEND", 0x40c, 0, 0 }, ++ { "ocfs2", "ocfs2", 4, 0, 6, "OCFSV2", 0x0, 0, 0 }, ++ { "ocfs2", "ocfs2", 8, 0, 6, "OCFSV2", 0x0, 0, 0 }, ++ { "hpfs", "hpfs", 8, 0, 4, "I\350\225\371", 0, 0, 0 }, ++ { "reiserfs", "reiserfs", 8, 0x34, 8, "ReIsErFs", 0x10054, 0, 0 }, ++ { "reiserfs", "reiserfs", 8, 20, 8, "ReIsErFs", 0x10054, 0, 0 }, ++ { "zfs", "zfs", 8, 0, 8, "\0\0\x02\xf5\xb0\x07\xb1\x0c", 0x0, 0, 0 }, ++ { "zfs", "zfs", 8, 0, 8, "\x0c\xb1\x07\xb0\xf5\x02\0\0", 0x0, 0, 0 }, ++ { "ufs", "ufs", 8, 0x55c, 4, "T\031\001\000", 0, 0, 0 }, ++ { "swap", "swap", 0, 0x1ff6, 10, "SWAP-SPACE", 0x40c, 0, 0 }, ++ { "swap", "swap", 0, 0x1ff6, 10, "SWAPSPACE2", 0x40c, 0, 0 }, ++ { "swap", "swsuspend", 0, 0x1ff6, 9, "S1SUSPEND", 0x40c, 0, 0 }, ++ { "swap", "swsuspend", 0, 0x1ff6, 9, "S2SUSPEND", 0x40c, 0, 0 }, ++ { "swap", "swsuspend", 0, 0x1ff6, 9, "ULSUSPEND", 0x40c, 0, 0 }, ++ { "reiserfs", "reiserfs", 64, 0x34, 9, "ReIsEr2Fs", 0x10054, 0, 0 }, ++ { "reiserfs", "reiserfs", 64, 0x34, 9, "ReIsEr3Fs", 0x10054, 0, 0 }, ++ { "reiserfs", "reiserfs", 64, 0x34, 8, "ReIsErFs", 0x10054, 0, 0 }, ++ { "reiser4", "reiser4", 64, 0, 7, "ReIsEr4", 0x100544, 0, 0 }, ++ { "gfs2", "gfs2", 64, 0, 4, "\x01\x16\x19\x70", 0x0, 0, 0 }, ++ { "gfs", "gfs", 64, 0, 4, "\x01\x16\x19\x70", 0x0, 0, 0 }, ++ { "btrfs", "btrfs", 64, 0x40, 8, "_BHRfS_M", 0x0, 0, 0 }, ++ { "swap", "swap", 0, 0x3ff6, 10, "SWAP-SPACE", 0x40c, 0, 0 }, ++ { "swap", "swap", 0, 0x3ff6, 10, "SWAPSPACE2", 0x40c, 0, 0 }, ++ { "swap", "swsuspend", 0, 0x3ff6, 9, "S1SUSPEND", 0x40c, 0, 0 }, ++ { "swap", "swsuspend", 0, 0x3ff6, 9, "S2SUSPEND", 0x40c, 0, 0 }, ++ { "swap", "swsuspend", 0, 0x3ff6, 9, "ULSUSPEND", 0x40c, 0, 0 }, ++ { "udf", "udf", 32, 1, 5, "BEA01", 0x0, 0, 0 }, ++ { "udf", "udf", 32, 1, 5, "BOOT2", 0x0, 0, 0 }, ++ { "udf", "udf", 32, 1, 5, "CD001", 0x0, 0, 0 }, ++ { "udf", "udf", 32, 1, 5, "CDW02", 0x0, 0, 0 }, ++ { "udf", "udf", 32, 1, 5, "NSR02", 0x0, 0, 0 }, ++ { "udf", "udf", 32, 1, 5, "NSR03", 0x0, 0, 0 }, ++ { "udf", "udf", 32, 1, 5, "TEA01", 0x0, 0, 0 }, ++ { "iso9660", "iso9660", 32, 1, 5, "CD001", 0x0, 0, 0 }, ++ { "iso9660", "iso9660", 32, 9, 5, "CDROM", 0x0, 0, 0 }, ++ { "jfs", "jfs", 32, 0, 4, "JFS1", 0x88, 0, 0 }, ++ { "swap", "swap", 0, 0x7ff6, 10, "SWAP-SPACE", 0x40c, 0, 0 }, ++ { "swap", "swap", 0, 0x7ff6, 10, "SWAPSPACE2", 0x40c, 0, 0 }, ++ { "swap", "swsuspend", 0, 0x7ff6, 9, "S1SUSPEND", 0x40c, 0, 0 }, ++ { "swap", "swsuspend", 0, 0x7ff6, 9, "S2SUSPEND", 0x40c, 0, 0 }, ++ { "swap", "swsuspend", 0, 0x7ff6, 9, "ULSUSPEND", 0x40c, 0, 0 }, ++ { "swap", "swap", 0, 0xfff6, 10, "SWAP-SPACE", 0x40c, 0, 0 }, ++ { "swap", "swap", 0, 0xfff6, 10, "SWAPSPACE2", 0x40c, 0, 0 }, ++ { "swap", "swsuspend", 0, 0xfff6, 9, "S1SUSPEND", 0x40c, 0, 0 }, ++ { "swap", "swsuspend", 0, 0xfff6, 9, "S2SUSPEND", 0x40c, 0, 0 }, ++ { "swap", "swsuspend", 0, 0xfff6, 9, "ULSUSPEND", 0x40c, 0, 0 }, ++ { "zfs", "zfs", 264, 0, 8, "\0\0\x02\xf5\xb0\x07\xb1\x0c", 0x0, 0, 0 }, ++ { "zfs", "zfs", 264, 0, 8, "\x0c\xb1\x07\xb0\xf5\x02\0\0", 0x0, 0, 0 }, ++ { NULL, NULL, 0, 0, 0, NULL, 0x0, 0, 0 } ++}; ++ ++static int null_uuid(const char *uuid) ++{ ++ int i; ++ ++ for (i = 0; i < 16 && !uuid[i]; i++); ++ ++ return (i == 16); ++} ++ ++ ++static void uuid_end_bio(struct bio *bio, int err) ++{ ++ struct page *page = bio->bi_io_vec[0].bv_page; ++ ++ BUG_ON(!test_bit(BIO_UPTODATE, &bio->bi_flags)); ++ ++ unlock_page(page); ++ bio_put(bio); ++} ++ ++ ++/** ++ * submit - submit BIO request ++ * @dev: The block device we're using. ++ * @page_num: The page we're reading. ++ * ++ * Based on Patrick Mochell's pmdisk code from long ago: "Straight from the ++ * textbook - allocate and initialize the bio. If we're writing, make sure ++ * the page is marked as dirty. Then submit it and carry on." ++ **/ ++static struct page *read_bdev_page(struct block_device *dev, int page_num) ++{ ++ struct bio *bio = NULL; ++ struct page *page = alloc_page(GFP_NOFS); ++ ++ if (!page) { ++ printk(KERN_ERR "Failed to allocate a page for reading data " ++ "in UUID checks."); ++ return NULL; ++ } ++ ++ bio = bio_alloc(GFP_NOFS, 1); ++ bio->bi_bdev = dev; ++ bio->bi_sector = page_num << 3; ++ bio->bi_end_io = uuid_end_bio; ++ ++ PRINTK("Submitting bio on device %lx, page %d.\n", ++ (unsigned long) dev->bd_dev, page_num); ++ ++ if (bio_add_page(bio, page, PAGE_SIZE, 0) < PAGE_SIZE) { ++ printk(KERN_DEBUG "ERROR: adding page to bio at %d\n", ++ page_num); ++ bio_put(bio); ++ __free_page(page); ++ printk(KERN_DEBUG "read_bdev_page freed page %p (in error " ++ "path).\n", page); ++ return ERR_PTR(-EFAULT); ++ } ++ ++ lock_page(page); ++ submit_bio(READ | (1 << BIO_RW_SYNCIO) | ++ (1 << BIO_RW_UNPLUG), bio); ++ ++ wait_on_page_locked(page); ++ return page; ++} ++ ++int bdev_matches_key(struct block_device *bdev, const char *key) ++{ ++ unsigned char *data = NULL; ++ struct page *data_page = NULL; ++ ++ int dev_offset, pg_num, pg_off, i; ++ int last_pg_num = -1; ++ int result = 0; ++ char buf[50]; ++ ++ if (null_uuid(key)) { ++ PRINTK("Refusing to find a NULL key.\n"); ++ return 0; ++ } ++ ++ if (!bdev->bd_disk) { ++ bdevname(bdev, buf); ++ PRINTK("bdev %s has no bd_disk.\n", buf); ++ return 0; ++ } ++ ++ if (!bdev->bd_disk->queue) { ++ bdevname(bdev, buf); ++ PRINTK("bdev %s has no queue.\n", buf); ++ return 0; ++ } ++ ++ for (i = 0; uuid_list[i].name; i++) { ++ struct uuid_info *dat = &uuid_list[i]; ++ ++ if (!dat->key || strcmp(dat->key, key)) ++ continue; ++ ++ dev_offset = (dat->bkoff << 10) + dat->sboff; ++ pg_num = dev_offset >> 12; ++ pg_off = dev_offset & 0xfff; ++ ++ if ((((pg_num + 1) << 3) - 1) > bdev->bd_part->nr_sects >> 1) ++ continue; ++ ++ if (pg_num != last_pg_num) { ++ if (data_page) ++ __free_page(data_page); ++ data_page = read_bdev_page(bdev, pg_num); ++ if (!data_page) { ++ result = -ENOMEM; ++ break; ++ } ++ data = page_address(data_page); ++ } ++ ++ last_pg_num = pg_num; ++ ++ if (strncmp(&data[pg_off], dat->magic, dat->sig_len)) ++ continue; ++ ++ result = 1; ++ break; ++ } ++ ++ if (data_page) ++ __free_page(data_page); ++ ++ return result; ++} ++ ++int part_matches_uuid(struct hd_struct *part, const char *uuid) ++{ ++ struct block_device *bdev; ++ unsigned char *data = NULL; ++ struct page *data_page = NULL; ++ ++ int dev_offset, pg_num, pg_off; ++ int uuid_pg_num, uuid_pg_off, i; ++ unsigned char *uuid_data = NULL; ++ struct page *uuid_data_page = NULL; ++ ++ int last_pg_num = -1, last_uuid_pg_num = 0; ++ int result = 0; ++ char buf[50]; ++ ++ if (null_uuid(uuid)) { ++ PRINTK("Refusing to find a NULL uuid.\n"); ++ return 0; ++ } ++ ++ bdev = bdget(part_devt(part)); ++ ++ PRINTK("blkdev_get %p.\n", part); ++ ++ if (blkdev_get(bdev, FMODE_READ)) { ++ PRINTK("blkdev_get failed.\n"); ++ return 0; ++ } ++ ++ if (!bdev->bd_disk) { ++ bdevname(bdev, buf); ++ PRINTK("bdev %s has no bd_disk.\n", buf); ++ goto out; ++ } ++ ++ if (!bdev->bd_disk->queue) { ++ bdevname(bdev, buf); ++ PRINTK("bdev %s has no queue.\n", buf); ++ goto out; ++ } ++ ++ PRINT_HEX_DUMP(KERN_EMERG, "part_matches_uuid looking for ", ++ DUMP_PREFIX_NONE, 16, 1, uuid, 16, 0); ++ ++ for (i = 0; uuid_list[i].name; i++) { ++ struct uuid_info *dat = &uuid_list[i]; ++ dev_offset = (dat->bkoff << 10) + dat->sboff; ++ pg_num = dev_offset >> 12; ++ pg_off = dev_offset & 0xfff; ++ uuid_pg_num = dat->uuid_offset >> 12; ++ uuid_pg_off = dat->uuid_offset & 0xfff; ++ ++ if ((((pg_num + 1) << 3) - 1) > part->nr_sects >> 1) ++ continue; ++ ++ /* Ignore partition types with no UUID offset */ ++ if (!dat->uuid_offset) ++ continue; ++ ++ if (pg_num != last_pg_num) { ++ if (data_page) ++ __free_page(data_page); ++ data_page = read_bdev_page(bdev, pg_num); ++ if (!data_page) { ++ result = -ENOMEM; ++ break; ++ } ++ data = page_address(data_page); ++ } ++ ++ last_pg_num = pg_num; ++ ++ if (strncmp(&data[pg_off], dat->magic, dat->sig_len)) ++ continue; ++ ++ /* Does the UUID match? */ ++ if (uuid_pg_num > part->nr_sects >> 3) ++ continue; ++ ++ if (!uuid_data || uuid_pg_num != last_uuid_pg_num) { ++ if (uuid_data_page) ++ __free_page(uuid_data_page); ++ uuid_data_page = read_bdev_page(bdev, uuid_pg_num); ++ if (!uuid_data_page) { ++ result = -ENOMEM; ++ break; ++ } ++ uuid_data = page_address(uuid_data_page); ++ } ++ ++ last_uuid_pg_num = uuid_pg_num; ++ ++ PRINT_HEX_DUMP(KERN_EMERG, "part_matches_uuid considering ", ++ DUMP_PREFIX_NONE, 16, 1, ++ &uuid_data[uuid_pg_off], 16, 0); ++ ++ if (!memcmp(&uuid_data[uuid_pg_off], uuid, 16)) { ++ PRINTK("We have a match.\n"); ++ result = 1; ++ break; ++ } ++ } ++ ++ if (data_page) ++ __free_page(data_page); ++ ++ if (uuid_data_page) ++ __free_page(uuid_data_page); ++ ++out: ++ blkdev_put(bdev, FMODE_READ); ++ return result; ++} ++ ++void free_fs_info(struct fs_info *fs_info) ++{ ++ if (!fs_info || IS_ERR(fs_info)) ++ return; ++ ++ if (fs_info->last_mount) ++ kfree(fs_info->last_mount); ++ ++ kfree(fs_info); ++} ++EXPORT_SYMBOL_GPL(free_fs_info); ++ ++struct fs_info *fs_info_from_block_dev(struct block_device *bdev) ++{ ++ unsigned char *data = NULL; ++ struct page *data_page = NULL; ++ ++ int dev_offset, pg_num, pg_off; ++ int uuid_pg_num, uuid_pg_off, i; ++ unsigned char *uuid_data = NULL; ++ struct page *uuid_data_page = NULL; ++ ++ int last_pg_num = -1, last_uuid_pg_num = 0; ++ char buf[50]; ++ struct fs_info *fs_info = NULL; ++ ++ bdevname(bdev, buf); ++ ++ PRINTK(KERN_EMERG "uuid_from_block_dev looking for partition type " ++ "of %s.\n", buf); ++ ++ for (i = 0; uuid_list[i].name; i++) { ++ struct uuid_info *dat = &uuid_list[i]; ++ dev_offset = (dat->bkoff << 10) + dat->sboff; ++ pg_num = dev_offset >> 12; ++ pg_off = dev_offset & 0xfff; ++ uuid_pg_num = dat->uuid_offset >> 12; ++ uuid_pg_off = dat->uuid_offset & 0xfff; ++ ++ if ((((pg_num + 1) << 3) - 1) > bdev->bd_part->nr_sects >> 1) ++ continue; ++ ++ /* Ignore partition types with no UUID offset */ ++ if (!dat->uuid_offset) ++ continue; ++ ++ if (pg_num != last_pg_num) { ++ if (data_page) ++ __free_page(data_page); ++ data_page = read_bdev_page(bdev, pg_num); ++ if (!data_page) { ++ fs_info = ERR_PTR(-ENOMEM); ++ break; ++ } ++ data = page_address(data_page); ++ } ++ ++ last_pg_num = pg_num; ++ ++ if (strncmp(&data[pg_off], dat->magic, dat->sig_len)) ++ continue; ++ ++ PRINTK("This partition looks like %s.\n", dat->name); ++ ++ fs_info = kzalloc(sizeof(struct fs_info), GFP_KERNEL); ++ ++ if (!fs_info) { ++ PRINTK("Failed to allocate fs_info struct."); ++ fs_info = ERR_PTR(-ENOMEM); ++ break; ++ } ++ ++ /* UUID can't be off the end of the disk */ ++ if ((uuid_pg_num > bdev->bd_part->nr_sects >> 3) || ++ !dat->uuid_offset) ++ goto no_uuid; ++ ++ if (!uuid_data || uuid_pg_num != last_uuid_pg_num) { ++ if (uuid_data_page) ++ __free_page(uuid_data_page); ++ uuid_data_page = read_bdev_page(bdev, uuid_pg_num); ++ if (!uuid_data_page) { ++ fs_info = ERR_PTR(-ENOMEM); ++ break; ++ } ++ uuid_data = page_address(uuid_data_page); ++ } ++ ++ last_uuid_pg_num = uuid_pg_num; ++ memcpy(&fs_info->uuid, &uuid_data[uuid_pg_off], 16); ++ ++no_uuid: ++ PRINT_HEX_DUMP(KERN_EMERG, "fs_info_from_block_dev " ++ "returning uuid ", DUMP_PREFIX_NONE, 16, 1, ++ fs_info->uuid, 16, 0); ++ ++ if (dat->last_mount_size) { ++ int pg = dat->last_mount_offset >> 12, sz; ++ int off = dat->last_mount_offset & 0xfff; ++ struct page *last_mount = read_bdev_page(bdev, pg); ++ unsigned char *last_mount_data; ++ char *ptr; ++ ++ if (!last_mount) { ++ fs_info = ERR_PTR(-ENOMEM); ++ break; ++ } ++ last_mount_data = page_address(last_mount); ++ sz = dat->last_mount_size; ++ ptr = kmalloc(sz, GFP_KERNEL); ++ ++ if (!ptr) { ++ printk(KERN_EMERG "fs_info_from_block_dev " ++ "failed to get memory for last mount " ++ "timestamp."); ++ free_fs_info(fs_info); ++ fs_info = ERR_PTR(-ENOMEM); ++ } else { ++ fs_info->last_mount = ptr; ++ fs_info->last_mount_size = sz; ++ memcpy(ptr, &last_mount_data[off], sz); ++ } ++ ++ __free_page(last_mount); ++ } ++ break; ++ } ++ ++ if (data_page) ++ __free_page(data_page); ++ ++ if (uuid_data_page) ++ __free_page(uuid_data_page); ++ ++ return fs_info; ++} ++EXPORT_SYMBOL_GPL(fs_info_from_block_dev); ++ ++static int __init uuid_debug_setup(char *str) ++{ ++ int value; ++ ++ if (sscanf(str, "=%d", &value)) ++ debug_enabled = value; ++ ++ return 1; ++} ++ ++__setup("uuid_debug", uuid_debug_setup); +diff --git a/crypto/Kconfig b/crypto/Kconfig +index 81c185a..94cb5e8 100644 +--- a/crypto/Kconfig ++++ b/crypto/Kconfig +@@ -806,6 +806,13 @@ config CRYPTO_LZO + help + This is the LZO algorithm. + ++config CRYPTO_LZF ++ tristate "LZF compression algorithm" ++ select CRYPTO_ALGAPI ++ help ++ This is the LZF algorithm. It is especially useful for TuxOnIce, ++ because it achieves good compression quickly. ++ + comment "Random Number Generation" + + config CRYPTO_ANSI_CPRNG +diff --git a/crypto/Makefile b/crypto/Makefile +index 9e8f619..a06b213 100644 +--- a/crypto/Makefile ++++ b/crypto/Makefile +@@ -77,6 +77,7 @@ obj-$(CONFIG_CRYPTO_DEFLATE) += deflate.o + obj-$(CONFIG_CRYPTO_ZLIB) += zlib.o + obj-$(CONFIG_CRYPTO_MICHAEL_MIC) += michael_mic.o + obj-$(CONFIG_CRYPTO_CRC32C) += crc32c.o ++obj-$(CONFIG_CRYPTO_LZF) += lzf.o + obj-$(CONFIG_CRYPTO_AUTHENC) += authenc.o + obj-$(CONFIG_CRYPTO_LZO) += lzo.o + obj-$(CONFIG_CRYPTO_RNG2) += rng.o +diff --git a/crypto/lzf.c b/crypto/lzf.c +new file mode 100644 +index 0000000..ccaf83a +--- /dev/null ++++ b/crypto/lzf.c +@@ -0,0 +1,326 @@ ++/* ++ * Cryptoapi LZF compression module. ++ * ++ * Copyright (c) 2004-2008 Nigel Cunningham ++ * ++ * based on the deflate.c file: ++ * ++ * Copyright (c) 2003 James Morris ++ * ++ * and upon the LZF compression module donated to the TuxOnIce project with ++ * the following copyright: ++ * ++ * This program is free software; you can redistribute it and/or modify it ++ * under the terms of the GNU General Public License as published by the Free ++ * Software Foundation; either version 2 of the License, or (at your option) ++ * any later version. ++ * Copyright (c) 2000-2003 Marc Alexander Lehmann ++ * ++ * Redistribution and use in source and binary forms, with or without modifica- ++ * tion, are permitted provided that the following conditions are met: ++ * ++ * 1. Redistributions of source code must retain the above copyright notice, ++ * this list of conditions and the following disclaimer. ++ * ++ * 2. Redistributions in binary form must reproduce the above copyright ++ * notice, this list of conditions and the following disclaimer in the ++ * documentation and/or other materials provided with the distribution. ++ * ++ * 3. The name of the author may not be used to endorse or promote products ++ * derived from this software without specific prior written permission. ++ * ++ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED ++ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MER- ++ * CHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO ++ * EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPE- ++ * CIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, ++ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; ++ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, ++ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTH- ++ * ERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED ++ * OF THE POSSIBILITY OF SUCH DAMAGE. ++ * ++ * Alternatively, the contents of this file may be used under the terms of ++ * the GNU General Public License version 2 (the "GPL"), in which case the ++ * provisions of the GPL are applicable instead of the above. If you wish to ++ * allow the use of your version of this file only under the terms of the ++ * GPL and not to allow others to use your version of this file under the ++ * BSD license, indicate your decision by deleting the provisions above and ++ * replace them with the notice and other provisions required by the GPL. If ++ * you do not delete the provisions above, a recipient may use your version ++ * of this file under either the BSD or the GPL. ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++struct lzf_ctx { ++ void *hbuf; ++ unsigned int bufofs; ++}; ++ ++/* ++ * size of hashtable is (1 << hlog) * sizeof (char *) ++ * decompression is independent of the hash table size ++ * the difference between 15 and 14 is very small ++ * for small blocks (and 14 is also faster). ++ * For a low-memory configuration, use hlog == 13; ++ * For best compression, use 15 or 16. ++ */ ++static const int hlog = 13; ++ ++/* ++ * don't play with this unless you benchmark! ++ * decompression is not dependent on the hash function ++ * the hashing function might seem strange, just believe me ++ * it works ;) ++ */ ++static inline u16 first(const u8 *p) ++{ ++ return ((p[0]) << 8) + p[1]; ++} ++ ++static inline u16 next(u8 v, const u8 *p) ++{ ++ return ((v) << 8) + p[2]; ++} ++ ++static inline u32 idx(unsigned int h) ++{ ++ return (((h ^ (h << 5)) >> (3*8 - hlog)) + h*3) & ((1 << hlog) - 1); ++} ++ ++/* ++ * IDX works because it is very similar to a multiplicative hash, e.g. ++ * (h * 57321 >> (3*8 - hlog)) ++ * the next one is also quite good, albeit slow ;) ++ * (int)(cos(h & 0xffffff) * 1e6) ++ */ ++ ++static const int max_lit = (1 << 5); ++static const int max_off = (1 << 13); ++static const int max_ref = ((1 << 8) + (1 << 3)); ++ ++/* ++ * compressed format ++ * ++ * 000LLLLL ; literal ++ * LLLOOOOO oooooooo ; backref L ++ * 111OOOOO LLLLLLLL oooooooo ; backref L+7 ++ * ++ */ ++ ++static void lzf_compress_exit(struct crypto_tfm *tfm) ++{ ++ struct lzf_ctx *ctx = crypto_tfm_ctx(tfm); ++ ++ if (!ctx->hbuf) ++ return; ++ ++ vfree(ctx->hbuf); ++ ctx->hbuf = NULL; ++} ++ ++static int lzf_compress_init(struct crypto_tfm *tfm) ++{ ++ struct lzf_ctx *ctx = crypto_tfm_ctx(tfm); ++ ++ /* Get LZF ready to go */ ++ ctx->hbuf = vmalloc_32((1 << hlog) * sizeof(char *)); ++ if (ctx->hbuf) ++ return 0; ++ ++ printk(KERN_WARNING "Failed to allocate %ld bytes for lzf workspace\n", ++ (long) ((1 << hlog) * sizeof(char *))); ++ return -ENOMEM; ++} ++ ++static int lzf_compress(struct crypto_tfm *tfm, const u8 *in_data, ++ unsigned int in_len, u8 *out_data, unsigned int *out_len) ++{ ++ struct lzf_ctx *ctx = crypto_tfm_ctx(tfm); ++ const u8 **htab = ctx->hbuf; ++ const u8 **hslot; ++ const u8 *ip = in_data; ++ u8 *op = out_data; ++ const u8 *in_end = ip + in_len; ++ u8 *out_end = op + *out_len - 3; ++ const u8 *ref; ++ ++ unsigned int hval = first(ip); ++ unsigned long off; ++ int lit = 0; ++ ++ memset(htab, 0, sizeof(htab)); ++ ++ for (;;) { ++ if (ip < in_end - 2) { ++ hval = next(hval, ip); ++ hslot = htab + idx(hval); ++ ref = *hslot; ++ *hslot = ip; ++ ++ off = ip - ref - 1; ++ if (off < max_off ++ && ip + 4 < in_end && ref > in_data ++ && *(u16 *) ref == *(u16 *) ip && ref[2] == ip[2] ++ ) { ++ /* match found at *ref++ */ ++ unsigned int len = 2; ++ unsigned int maxlen = in_end - ip - len; ++ maxlen = maxlen > max_ref ? max_ref : maxlen; ++ ++ do { ++ len++; ++ } while (len < maxlen && ref[len] == ip[len]); ++ ++ if (op + lit + 1 + 3 >= out_end) { ++ *out_len = PAGE_SIZE; ++ return 0; ++ } ++ ++ if (lit) { ++ *op++ = lit - 1; ++ lit = -lit; ++ do { ++ *op++ = ip[lit]; ++ } while (++lit); ++ } ++ ++ len -= 2; ++ ip++; ++ ++ if (len < 7) { ++ *op++ = (off >> 8) + (len << 5); ++ } else { ++ *op++ = (off >> 8) + (7 << 5); ++ *op++ = len - 7; ++ } ++ ++ *op++ = off; ++ ++ ip += len; ++ hval = first(ip); ++ hval = next(hval, ip); ++ htab[idx(hval)] = ip; ++ ip++; ++ continue; ++ } ++ } else if (ip == in_end) ++ break; ++ ++ /* one more literal byte we must copy */ ++ lit++; ++ ip++; ++ ++ if (lit == max_lit) { ++ if (op + 1 + max_lit >= out_end) { ++ *out_len = PAGE_SIZE; ++ return 0; ++ } ++ ++ *op++ = max_lit - 1; ++ memcpy(op, ip - max_lit, max_lit); ++ op += max_lit; ++ lit = 0; ++ } ++ } ++ ++ if (lit) { ++ if (op + lit + 1 >= out_end) { ++ *out_len = PAGE_SIZE; ++ return 0; ++ } ++ ++ *op++ = lit - 1; ++ lit = -lit; ++ do { ++ *op++ = ip[lit]; ++ } while (++lit); ++ } ++ ++ *out_len = op - out_data; ++ return 0; ++} ++ ++static int lzf_decompress(struct crypto_tfm *tfm, const u8 *src, ++ unsigned int slen, u8 *dst, unsigned int *dlen) ++{ ++ u8 const *ip = src; ++ u8 *op = dst; ++ u8 const *const in_end = ip + slen; ++ u8 *const out_end = op + *dlen; ++ ++ *dlen = PAGE_SIZE; ++ do { ++ unsigned int ctrl = *ip++; ++ ++ if (ctrl < (1 << 5)) { ++ /* literal run */ ++ ctrl++; ++ ++ if (op + ctrl > out_end) ++ return 0; ++ memcpy(op, ip, ctrl); ++ op += ctrl; ++ ip += ctrl; ++ } else { /* back reference */ ++ ++ unsigned int len = ctrl >> 5; ++ ++ u8 *ref = op - ((ctrl & 0x1f) << 8) - 1; ++ ++ if (len == 7) ++ len += *ip++; ++ ++ ref -= *ip++; ++ len += 2; ++ ++ if (op + len > out_end || ref < (u8 *) dst) ++ return 0; ++ ++ do { ++ *op++ = *ref++; ++ } while (--len); ++ } ++ } while (op < out_end && ip < in_end); ++ ++ *dlen = op - (u8 *) dst; ++ return 0; ++} ++ ++static struct crypto_alg alg = { ++ .cra_name = "lzf", ++ .cra_flags = CRYPTO_ALG_TYPE_COMPRESS, ++ .cra_ctxsize = sizeof(struct lzf_ctx), ++ .cra_module = THIS_MODULE, ++ .cra_list = LIST_HEAD_INIT(alg.cra_list), ++ .cra_init = lzf_compress_init, ++ .cra_exit = lzf_compress_exit, ++ .cra_u = { .compress = { ++ .coa_compress = lzf_compress, ++ .coa_decompress = lzf_decompress } } ++}; ++ ++static int __init init(void) ++{ ++ return crypto_register_alg(&alg); ++} ++ ++static void __exit fini(void) ++{ ++ crypto_unregister_alg(&alg); ++} ++ ++module_init(init); ++module_exit(fini); ++ ++MODULE_LICENSE("GPL"); ++MODULE_DESCRIPTION("LZF Compression Algorithm"); ++MODULE_AUTHOR("Marc Alexander Lehmann & Nigel Cunningham"); +diff --git a/drivers/base/power/main.c b/drivers/base/power/main.c +index a5142bd..3fed8b2 100644 +--- a/drivers/base/power/main.c ++++ b/drivers/base/power/main.c +@@ -66,6 +66,7 @@ void device_pm_lock(void) + { + mutex_lock(&dpm_list_mtx); + } ++EXPORT_SYMBOL_GPL(device_pm_lock); + + /** + * device_pm_unlock - Unlock the list of active devices used by the PM core. +@@ -74,6 +75,7 @@ void device_pm_unlock(void) + { + mutex_unlock(&dpm_list_mtx); + } ++EXPORT_SYMBOL_GPL(device_pm_unlock); + + /** + * device_pm_add - Add a device to the PM core's list of active devices. +diff --git a/drivers/char/vt.c b/drivers/char/vt.c +index 50faa1f..567839a 100644 +--- a/drivers/char/vt.c ++++ b/drivers/char/vt.c +@@ -2465,6 +2465,7 @@ int vt_kmsg_redirect(int new) + else + return kmsg_con; + } ++EXPORT_SYMBOL_GPL(vt_kmsg_redirect); + + /* + * Console on virtual terminal +diff --git a/drivers/gpu/drm/drm_gem.c b/drivers/gpu/drm/drm_gem.c +index 8bf3770..f1d1e03 100644 +--- a/drivers/gpu/drm/drm_gem.c ++++ b/drivers/gpu/drm/drm_gem.c +@@ -138,7 +138,8 @@ drm_gem_object_alloc(struct drm_device *dev, size_t size) + goto free; + + obj->dev = dev; +- obj->filp = shmem_file_setup("drm mm object", size, VM_NORESERVE); ++ obj->filp = shmem_file_setup("drm mm object", size, ++ VM_NORESERVE | VM_ATOMIC_COPY); + if (IS_ERR(obj->filp)) + goto free; + +diff --git a/drivers/md/md.c b/drivers/md/md.c +index a20a71e..6f221e5 100644 +--- a/drivers/md/md.c ++++ b/drivers/md/md.c +@@ -6469,6 +6469,9 @@ void md_do_sync(mddev_t *mddev) + mddev->curr_resync = 2; + + try_again: ++ while (freezer_is_on()) ++ yield(); ++ + if (kthread_should_stop()) + set_bit(MD_RECOVERY_INTR, &mddev->recovery); + +@@ -6491,6 +6494,10 @@ void md_do_sync(mddev_t *mddev) + * time 'round when curr_resync == 2 + */ + continue; ++ ++ while (freezer_is_on()) ++ yield(); ++ + /* We need to wait 'interruptible' so as not to + * contribute to the load average, and not to + * be caught by 'softlockup' +@@ -6503,6 +6510,7 @@ void md_do_sync(mddev_t *mddev) + " share one or more physical units)\n", + desc, mdname(mddev), mdname(mddev2)); + mddev_put(mddev2); ++ try_to_freeze(); + if (signal_pending(current)) + flush_signals(current); + schedule(); +@@ -6612,6 +6620,9 @@ void md_do_sync(mddev_t *mddev) + || kthread_should_stop()); + } + ++ while (freezer_is_on()) ++ yield(); ++ + if (kthread_should_stop()) + goto interrupted; + +@@ -6656,6 +6667,9 @@ void md_do_sync(mddev_t *mddev) + last_mark = next; + } + ++ while (freezer_is_on()) ++ yield(); ++ + + if (kthread_should_stop()) + goto interrupted; +diff --git a/fs/block_dev.c b/fs/block_dev.c +index d11d028..b2388cc 100644 +--- a/fs/block_dev.c ++++ b/fs/block_dev.c +@@ -335,6 +335,93 @@ out_unlock: + } + EXPORT_SYMBOL(thaw_bdev); + ++#ifdef CONFIG_FS_FREEZER_DEBUG ++#define FS_PRINTK(fmt, args...) printk(fmt, ## args) ++#else ++#define FS_PRINTK(fmt, args...) ++#endif ++ ++/* #define DEBUG_FS_FREEZING */ ++ ++/** ++ * freeze_filesystems - lock all filesystems and force them into a consistent ++ * state ++ * @which: What combination of fuse & non-fuse to freeze. ++ */ ++void freeze_filesystems(int which) ++{ ++ struct super_block *sb; ++ ++ lockdep_off(); ++ ++ /* ++ * Freeze in reverse order so filesystems dependant upon others are ++ * frozen in the right order (eg. loopback on ext3). ++ */ ++ list_for_each_entry_reverse(sb, &super_blocks, s_list) { ++ FS_PRINTK(KERN_INFO "Considering %s.%s: (root %p, bdev %x)", ++ sb->s_type->name ? sb->s_type->name : "?", ++ sb->s_subtype ? sb->s_subtype : "", sb->s_root, ++ sb->s_bdev ? sb->s_bdev->bd_dev : 0); ++ ++ if (sb->s_type->fs_flags & FS_IS_FUSE && ++ sb->s_frozen == SB_UNFROZEN && ++ which & FS_FREEZER_FUSE) { ++ sb->s_frozen = SB_FREEZE_TRANS; ++ sb->s_flags |= MS_FROZEN; ++ FS_PRINTK("Fuse filesystem done.\n"); ++ continue; ++ } ++ ++ if (!sb->s_root || !sb->s_bdev || ++ (sb->s_frozen == SB_FREEZE_TRANS) || ++ (sb->s_flags & MS_RDONLY) || ++ (sb->s_flags & MS_FROZEN) || ++ !(which & FS_FREEZER_NORMAL)) { ++ FS_PRINTK(KERN_INFO "Nope.\n"); ++ continue; ++ } ++ ++ FS_PRINTK(KERN_INFO "Freezing %x... ", sb->s_bdev->bd_dev); ++ freeze_bdev(sb->s_bdev); ++ sb->s_flags |= MS_FROZEN; ++ FS_PRINTK(KERN_INFO "Done.\n"); ++ } ++ ++ lockdep_on(); ++} ++ ++/** ++ * thaw_filesystems - unlock all filesystems ++ * @which: What combination of fuse & non-fuse to thaw. ++ */ ++void thaw_filesystems(int which) ++{ ++ struct super_block *sb; ++ ++ lockdep_off(); ++ ++ list_for_each_entry(sb, &super_blocks, s_list) { ++ if (!(sb->s_flags & MS_FROZEN)) ++ continue; ++ ++ if (sb->s_type->fs_flags & FS_IS_FUSE) { ++ if (!(which & FS_FREEZER_FUSE)) ++ continue; ++ ++ sb->s_frozen = SB_UNFROZEN; ++ } else { ++ if (!(which & FS_FREEZER_NORMAL)) ++ continue; ++ ++ thaw_bdev(sb->s_bdev, sb); ++ } ++ sb->s_flags &= ~MS_FROZEN; ++ } ++ ++ lockdep_on(); ++} ++ + static int blkdev_writepage(struct page *page, struct writeback_control *wbc) + { + return block_write_full_page(page, blkdev_get_block, wbc); +diff --git a/fs/drop_caches.c b/fs/drop_caches.c +index 31f4b0e..ff7df7a 100644 +--- a/fs/drop_caches.c ++++ b/fs/drop_caches.c +@@ -8,6 +8,7 @@ + #include + #include + #include ++#include + + /* A global variable is a bit ugly, but it keeps the code simple */ + int sysctl_drop_caches; +@@ -33,7 +34,7 @@ static void drop_pagecache_sb(struct super_block *sb) + iput(toput_inode); + } + +-static void drop_pagecache(void) ++void drop_pagecache(void) + { + struct super_block *sb; + +@@ -61,6 +62,7 @@ static void drop_slab(void) + nr_objects = shrink_slab(1000, GFP_KERNEL, 1000); + } while (nr_objects > 10); + } ++EXPORT_SYMBOL_GPL(drop_pagecache); + + int drop_caches_sysctl_handler(ctl_table *table, int write, + void __user *buffer, size_t *length, loff_t *ppos) +diff --git a/fs/fuse/control.c b/fs/fuse/control.c +index 3773fd6..6272b60 100644 +--- a/fs/fuse/control.c ++++ b/fs/fuse/control.c +@@ -341,6 +341,7 @@ static void fuse_ctl_kill_sb(struct super_block *sb) + static struct file_system_type fuse_ctl_fs_type = { + .owner = THIS_MODULE, + .name = "fusectl", ++ .fs_flags = FS_IS_FUSE, + .get_sb = fuse_ctl_get_sb, + .kill_sb = fuse_ctl_kill_sb, + }; +diff --git a/fs/fuse/dev.c b/fs/fuse/dev.c +index 51d9e33..12ad477 100644 +--- a/fs/fuse/dev.c ++++ b/fs/fuse/dev.c +@@ -7,6 +7,7 @@ + */ + + #include "fuse_i.h" ++#include "fuse.h" + + #include + #include +@@ -16,6 +17,7 @@ + #include + #include + #include ++#include + + MODULE_ALIAS_MISCDEV(FUSE_MINOR); + +@@ -758,6 +760,8 @@ static ssize_t fuse_dev_read(struct kiocb *iocb, const struct iovec *iov, + if (!fc) + return -EPERM; + ++ FUSE_MIGHT_FREEZE(file->f_mapping->host->i_sb, "fuse_dev_read"); ++ + restart: + spin_lock(&fc->lock); + err = -EAGAIN; +@@ -999,6 +1003,9 @@ static ssize_t fuse_dev_write(struct kiocb *iocb, const struct iovec *iov, + if (!fc) + return -EPERM; + ++ FUSE_MIGHT_FREEZE(iocb->ki_filp->f_mapping->host->i_sb, ++ "fuse_dev_write"); ++ + fuse_copy_init(&cs, fc, 0, NULL, iov, nr_segs); + if (nbytes < sizeof(struct fuse_out_header)) + return -EINVAL; +diff --git a/fs/fuse/dir.c b/fs/fuse/dir.c +index 4787ae6..797b7dd 100644 +--- a/fs/fuse/dir.c ++++ b/fs/fuse/dir.c +@@ -7,12 +7,14 @@ + */ + + #include "fuse_i.h" ++#include "fuse.h" + + #include + #include + #include + #include + #include ++#include + + #if BITS_PER_LONG >= 64 + static inline void fuse_dentry_settime(struct dentry *entry, u64 time) +@@ -174,6 +176,9 @@ static int fuse_dentry_revalidate(struct dentry *entry, struct nameidata *nd) + return 0; + + fc = get_fuse_conn(inode); ++ ++ FUSE_MIGHT_FREEZE(inode->i_sb, "fuse_dentry_revalidate"); ++ + req = fuse_get_req(fc); + if (IS_ERR(req)) + return 0; +@@ -268,6 +273,8 @@ int fuse_lookup_name(struct super_block *sb, u64 nodeid, struct qstr *name, + if (name->len > FUSE_NAME_MAX) + goto out; + ++ FUSE_MIGHT_FREEZE(sb, "fuse_lookup_name"); ++ + req = fuse_get_req(fc); + err = PTR_ERR(req); + if (IS_ERR(req)) +@@ -331,6 +338,8 @@ static struct dentry *fuse_lookup(struct inode *dir, struct dentry *entry, + if (err) + goto out_err; + ++ FUSE_MIGHT_FREEZE(dir->i_sb, "fuse_lookup"); ++ + err = -EIO; + if (inode && get_node_id(inode) == FUSE_ROOT_ID) + goto out_iput; +@@ -392,6 +401,8 @@ static int fuse_create_open(struct inode *dir, struct dentry *entry, int mode, + if (IS_ERR(forget_req)) + return PTR_ERR(forget_req); + ++ FUSE_MIGHT_FREEZE(dir->i_sb, "fuse_create_open"); ++ + req = fuse_get_req(fc); + err = PTR_ERR(req); + if (IS_ERR(req)) +@@ -485,6 +496,8 @@ static int create_new_entry(struct fuse_conn *fc, struct fuse_req *req, + int err; + struct fuse_req *forget_req; + ++ FUSE_MIGHT_FREEZE(dir->i_sb, "create_new_entry"); ++ + forget_req = fuse_get_req(fc); + if (IS_ERR(forget_req)) { + fuse_put_request(fc, req); +@@ -587,7 +600,11 @@ static int fuse_mkdir(struct inode *dir, struct dentry *entry, int mode) + { + struct fuse_mkdir_in inarg; + struct fuse_conn *fc = get_fuse_conn(dir); +- struct fuse_req *req = fuse_get_req(fc); ++ struct fuse_req *req; ++ ++ FUSE_MIGHT_FREEZE(dir->i_sb, "fuse_mkdir"); ++ ++ req = fuse_get_req(fc); + if (IS_ERR(req)) + return PTR_ERR(req); + +@@ -611,7 +628,11 @@ static int fuse_symlink(struct inode *dir, struct dentry *entry, + { + struct fuse_conn *fc = get_fuse_conn(dir); + unsigned len = strlen(link) + 1; +- struct fuse_req *req = fuse_get_req(fc); ++ struct fuse_req *req; ++ ++ FUSE_MIGHT_FREEZE(dir->i_sb, "fuse_symlink"); ++ ++ req = fuse_get_req(fc); + if (IS_ERR(req)) + return PTR_ERR(req); + +@@ -628,7 +649,11 @@ static int fuse_unlink(struct inode *dir, struct dentry *entry) + { + int err; + struct fuse_conn *fc = get_fuse_conn(dir); +- struct fuse_req *req = fuse_get_req(fc); ++ struct fuse_req *req; ++ ++ FUSE_MIGHT_FREEZE(dir->i_sb, "fuse_unlink"); ++ ++ req = fuse_get_req(fc); + if (IS_ERR(req)) + return PTR_ERR(req); + +@@ -661,7 +686,11 @@ static int fuse_rmdir(struct inode *dir, struct dentry *entry) + { + int err; + struct fuse_conn *fc = get_fuse_conn(dir); +- struct fuse_req *req = fuse_get_req(fc); ++ struct fuse_req *req; ++ ++ FUSE_MIGHT_FREEZE(dir->i_sb, "fuse_rmdir"); ++ ++ req = fuse_get_req(fc); + if (IS_ERR(req)) + return PTR_ERR(req); + +diff --git a/fs/fuse/file.c b/fs/fuse/file.c +index a9f5e13..4647e11 100644 +--- a/fs/fuse/file.c ++++ b/fs/fuse/file.c +@@ -7,11 +7,13 @@ + */ + + #include "fuse_i.h" ++#include "fuse.h" + + #include + #include + #include + #include ++#include + #include + + static const struct file_operations fuse_direct_io_file_operations; +@@ -109,6 +111,8 @@ int fuse_do_open(struct fuse_conn *fc, u64 nodeid, struct file *file, + int err; + int opcode = isdir ? FUSE_OPENDIR : FUSE_OPEN; + ++ FUSE_MIGHT_FREEZE(file->f_path.dentry->d_inode->i_sb, "fuse_send_open"); ++ + ff = fuse_file_alloc(fc); + if (!ff) + return -ENOMEM; +@@ -316,6 +320,8 @@ static int fuse_flush(struct file *file, fl_owner_t id) + if (fc->no_flush) + return 0; + ++ FUSE_MIGHT_FREEZE(inode->i_sb, "fuse_flush"); ++ + req = fuse_get_req_nofail(fc, file); + memset(&inarg, 0, sizeof(inarg)); + inarg.fh = ff->fh; +@@ -367,6 +373,8 @@ int fuse_fsync_common(struct file *file, struct dentry *de, int datasync, + if ((!isdir && fc->no_fsync) || (isdir && fc->no_fsyncdir)) + return 0; + ++ FUSE_MIGHT_FREEZE(inode->i_sb, "fuse_fsync_common"); ++ + /* + * Start writeback against all dirty pages of the inode, then + * wait for all outstanding writes, before sending the FSYNC +@@ -474,6 +482,8 @@ static int fuse_readpage(struct file *file, struct page *page) + if (is_bad_inode(inode)) + goto out; + ++ FUSE_MIGHT_FREEZE(file->f_mapping->host->i_sb, "fuse_readpage"); ++ + /* + * Page writeback can extend beyond the liftime of the + * page-cache page, so make sure we read a properly synced +@@ -576,6 +586,9 @@ static int fuse_readpages_fill(void *_data, struct page *page) + struct inode *inode = data->inode; + struct fuse_conn *fc = get_fuse_conn(inode); + ++ FUSE_MIGHT_FREEZE(data->file->f_mapping->host->i_sb, ++ "fuse_readpages_fill"); ++ + fuse_wait_on_page_writeback(inode, page->index); + + if (req->num_pages && +@@ -606,6 +619,8 @@ static int fuse_readpages(struct file *file, struct address_space *mapping, + if (is_bad_inode(inode)) + goto out; + ++ FUSE_MIGHT_FREEZE(inode->i_sb, "fuse_readpages"); ++ + data.file = file; + data.inode = inode; + data.req = fuse_get_req(fc); +@@ -719,6 +734,8 @@ static int fuse_buffered_write(struct file *file, struct inode *inode, + if (is_bad_inode(inode)) + return -EIO; + ++ FUSE_MIGHT_FREEZE(inode->i_sb, "fuse_buffered_write"); ++ + /* + * Make sure writepages on the same page are not mixed up with + * plain writes. +@@ -878,6 +895,8 @@ static ssize_t fuse_perform_write(struct file *file, + struct fuse_req *req; + ssize_t count; + ++ FUSE_MIGHT_FREEZE(inode->i_sb, "fuse_perform_write"); ++ + req = fuse_get_req(fc); + if (IS_ERR(req)) { + err = PTR_ERR(req); +@@ -1025,6 +1044,8 @@ ssize_t fuse_direct_io(struct file *file, const char __user *buf, + ssize_t res = 0; + struct fuse_req *req; + ++ FUSE_MIGHT_FREEZE(file->f_mapping->host->i_sb, "fuse_direct_io"); ++ + req = fuse_get_req(fc); + if (IS_ERR(req)) + return PTR_ERR(req); +@@ -1412,6 +1433,8 @@ static int fuse_getlk(struct file *file, struct file_lock *fl) + struct fuse_lk_out outarg; + int err; + ++ FUSE_MIGHT_FREEZE(file->f_mapping->host->i_sb, "fuse_getlk"); ++ + req = fuse_get_req(fc); + if (IS_ERR(req)) + return PTR_ERR(req); +@@ -1447,6 +1470,8 @@ static int fuse_setlk(struct file *file, struct file_lock *fl, int flock) + if (fl->fl_flags & FL_CLOSE) + return 0; + ++ FUSE_MIGHT_FREEZE(file->f_mapping->host->i_sb, "fuse_setlk"); ++ + req = fuse_get_req(fc); + if (IS_ERR(req)) + return PTR_ERR(req); +@@ -1513,6 +1538,8 @@ static sector_t fuse_bmap(struct address_space *mapping, sector_t block) + if (!inode->i_sb->s_bdev || fc->no_bmap) + return 0; + ++ FUSE_MIGHT_FREEZE(inode->i_sb, "fuse_bmap"); ++ + req = fuse_get_req(fc); + if (IS_ERR(req)) + return 0; +diff --git a/fs/fuse/fuse.h b/fs/fuse/fuse.h +new file mode 100644 +index 0000000..170e49a +--- /dev/null ++++ b/fs/fuse/fuse.h +@@ -0,0 +1,13 @@ ++#define FUSE_MIGHT_FREEZE(superblock, desc) \ ++do { \ ++ int printed = 0; \ ++ while (superblock->s_frozen != SB_UNFROZEN) { \ ++ if (!printed) { \ ++ printk(KERN_INFO "%d frozen in " desc ".\n", \ ++ current->pid); \ ++ printed = 1; \ ++ } \ ++ try_to_freeze(); \ ++ yield(); \ ++ } \ ++} while (0) +diff --git a/fs/fuse/inode.c b/fs/fuse/inode.c +index 1a822ce..9b69d61 100644 +--- a/fs/fuse/inode.c ++++ b/fs/fuse/inode.c +@@ -1062,7 +1062,7 @@ static void fuse_kill_sb_anon(struct super_block *sb) + static struct file_system_type fuse_fs_type = { + .owner = THIS_MODULE, + .name = "fuse", +- .fs_flags = FS_HAS_SUBTYPE, ++ .fs_flags = FS_HAS_SUBTYPE | FS_IS_FUSE, + .get_sb = fuse_get_sb, + .kill_sb = fuse_kill_sb_anon, + }; +@@ -1094,7 +1094,7 @@ static struct file_system_type fuseblk_fs_type = { + .name = "fuseblk", + .get_sb = fuse_get_sb_blk, + .kill_sb = fuse_kill_sb_blk, +- .fs_flags = FS_REQUIRES_DEV | FS_HAS_SUBTYPE, ++ .fs_flags = FS_REQUIRES_DEV | FS_HAS_SUBTYPE | FS_IS_FUSE, + }; + + static inline int register_fuseblk(void) +diff --git a/fs/namei.c b/fs/namei.c +index a4855af..3d57581 100644 +--- a/fs/namei.c ++++ b/fs/namei.c +@@ -2268,6 +2268,8 @@ int vfs_unlink(struct inode *dir, struct dentry *dentry) + if (!dir->i_op->unlink) + return -EPERM; + ++ vfs_check_frozen(dir->i_sb, SB_FREEZE_WRITE); ++ + vfs_dq_init(dir); + + mutex_lock(&dentry->d_inode->i_mutex); +diff --git a/fs/super.c b/fs/super.c +index aff046b..affb662 100644 +--- a/fs/super.c ++++ b/fs/super.c +@@ -42,6 +42,8 @@ + + + LIST_HEAD(super_blocks); ++EXPORT_SYMBOL_GPL(super_blocks); ++ + DEFINE_SPINLOCK(sb_lock); + + /** +diff --git a/include/linux/Kbuild b/include/linux/Kbuild +index 756f831..9953b39 100644 +--- a/include/linux/Kbuild ++++ b/include/linux/Kbuild +@@ -213,6 +213,7 @@ unifdef-y += filter.h + unifdef-y += flat.h + unifdef-y += futex.h + unifdef-y += fs.h ++unifdef-y += freezer.h + unifdef-y += gameport.h + unifdef-y += generic_serial.h + unifdef-y += hdlcdrv.h +diff --git a/include/linux/bio.h b/include/linux/bio.h +index 7fc5606..07e9b97 100644 +--- a/include/linux/bio.h ++++ b/include/linux/bio.h +@@ -175,8 +175,11 @@ enum bio_rw_flags { + BIO_RW_META, + BIO_RW_DISCARD, + BIO_RW_NOIDLE, ++ BIO_RW_TUXONICE, + }; + ++extern int trap_non_toi_io; ++ + /* + * First four bits must match between bio->bi_rw and rq->cmd_flags, make + * that explicit here. +diff --git a/include/linux/freezer.h b/include/linux/freezer.h +index 5a361f8..a66f2a9 100644 +--- a/include/linux/freezer.h ++++ b/include/linux/freezer.h +@@ -121,6 +121,19 @@ static inline void set_freezable(void) + current->flags &= ~PF_NOFREEZE; + } + ++extern int freezer_state; ++#define FREEZER_OFF 0 ++#define FREEZER_FILESYSTEMS_FROZEN 1 ++#define FREEZER_USERSPACE_FROZEN 2 ++#define FREEZER_FULLY_ON 3 ++ ++static inline int freezer_is_on(void) ++{ ++ return freezer_state == FREEZER_FULLY_ON; ++} ++ ++extern void thaw_kernel_threads(void); ++ + /* + * Tell the freezer that the current task should be frozen by it and that it + * should send a fake signal to the task to freeze it. +@@ -172,6 +185,8 @@ static inline int freeze_processes(void) { BUG(); return 0; } + static inline void thaw_processes(void) {} + + static inline int try_to_freeze(void) { return 0; } ++static inline int freezer_is_on(void) { return 0; } ++static inline void thaw_kernel_threads(void) { } + + static inline void freezer_do_not_count(void) {} + static inline void freezer_count(void) {} +diff --git a/include/linux/fs.h b/include/linux/fs.h +index ebb1cd5..e30e318 100644 +--- a/include/linux/fs.h ++++ b/include/linux/fs.h +@@ -173,6 +173,7 @@ struct inodes_stat_t { + #define FS_REQUIRES_DEV 1 + #define FS_BINARY_MOUNTDATA 2 + #define FS_HAS_SUBTYPE 4 ++#define FS_IS_FUSE 8 /* Fuse filesystem - bdev freeze these too */ + #define FS_REVAL_DOT 16384 /* Check the paths ".", ".." for staleness */ + #define FS_RENAME_DOES_D_MOVE 32768 /* FS will handle d_move() + * during rename() internally. +@@ -206,6 +207,7 @@ struct inodes_stat_t { + #define MS_KERNMOUNT (1<<22) /* this is a kern_mount call */ + #define MS_I_VERSION (1<<23) /* Update inode I_version field */ + #define MS_STRICTATIME (1<<24) /* Always perform atime updates */ ++#define MS_FROZEN (1<<25) /* Frozen by freeze_filesystems() */ + #define MS_ACTIVE (1<<30) + #define MS_NOUSER (1<<31) + +@@ -232,6 +234,8 @@ struct inodes_stat_t { + #define S_NOCMTIME 128 /* Do not update file c/mtime */ + #define S_SWAPFILE 256 /* Do not truncate: swapon got its bmaps */ + #define S_PRIVATE 512 /* Inode is fs-internal */ ++#define S_ATOMIC_COPY 1024 /* Pages mapped with this inode need to be ++ atomically copied (gem) */ + + /* + * Note that nosuid etc flags are inode-specific: setting some file-system +@@ -379,6 +383,7 @@ struct inodes_stat_t { + #include + #include + #include ++#include + + #include + #include +@@ -1391,8 +1396,11 @@ enum { + SB_FREEZE_TRANS = 2, + }; + +-#define vfs_check_frozen(sb, level) \ +- wait_event((sb)->s_wait_unfrozen, ((sb)->s_frozen < (level))) ++#define vfs_check_frozen(sb, level) do { \ ++ freezer_do_not_count(); \ ++ wait_event((sb)->s_wait_unfrozen, ((sb)->s_frozen < (level))); \ ++ freezer_count(); \ ++} while (0) + + #define get_fs_excl() atomic_inc(¤t->fs_excl) + #define put_fs_excl() atomic_dec(¤t->fs_excl) +@@ -1947,6 +1955,13 @@ extern struct super_block *freeze_bdev(struct block_device *); + extern void emergency_thaw_all(void); + extern int thaw_bdev(struct block_device *bdev, struct super_block *sb); + extern int fsync_bdev(struct block_device *); ++extern int fsync_super(struct super_block *); ++extern int fsync_no_super(struct block_device *); ++#define FS_FREEZER_FUSE 1 ++#define FS_FREEZER_NORMAL 2 ++#define FS_FREEZER_ALL (FS_FREEZER_FUSE | FS_FREEZER_NORMAL) ++void freeze_filesystems(int which); ++void thaw_filesystems(int which); + #else + static inline void bd_forget(struct inode *inode) {} + static inline int sync_blockdev(struct block_device *bdev) { return 0; } +diff --git a/include/linux/mm.h b/include/linux/mm.h +index 60c467b..1e722c2 100644 +--- a/include/linux/mm.h ++++ b/include/linux/mm.h +@@ -97,6 +97,7 @@ extern unsigned int kobjsize(const void *objp); + #define VM_HUGETLB 0x00400000 /* Huge TLB Page VM */ + #define VM_NONLINEAR 0x00800000 /* Is non-linear (remap_file_pages) */ + #define VM_MAPPED_COPY 0x01000000 /* T if mapped copy of data (nommu mmap) */ ++#define VM_ATOMIC_COPY 0x01000000 /* TOI should do atomic copy (mmu) */ + #define VM_INSERTPAGE 0x02000000 /* The vma has had "vm_insert_page()" done on it */ + #define VM_ALWAYSDUMP 0x04000000 /* Always include in core dumps */ + +@@ -1309,6 +1310,7 @@ int drop_caches_sysctl_handler(struct ctl_table *, int, + void __user *, size_t *, loff_t *); + unsigned long shrink_slab(unsigned long scanned, gfp_t gfp_mask, + unsigned long lru_pages); ++void drop_pagecache(void); + + #ifndef CONFIG_MMU + #define randomize_va_space 0 +diff --git a/include/linux/netlink.h b/include/linux/netlink.h +index fde27c0..0d86cc7 100644 +--- a/include/linux/netlink.h ++++ b/include/linux/netlink.h +@@ -24,6 +24,8 @@ + /* leave room for NETLINK_DM (DM Events) */ + #define NETLINK_SCSITRANSPORT 18 /* SCSI Transports */ + #define NETLINK_ECRYPTFS 19 ++#define NETLINK_TOI_USERUI 20 /* TuxOnIce's userui */ ++#define NETLINK_TOI_USM 21 /* Userspace storage manager */ + + #define MAX_LINKS 32 + +diff --git a/include/linux/suspend.h b/include/linux/suspend.h +index 5e781d8..a1c07f3 100644 +--- a/include/linux/suspend.h ++++ b/include/linux/suspend.h +@@ -329,4 +329,70 @@ static inline void unlock_system_sleep(void) + } + #endif + ++enum { ++ TOI_CAN_HIBERNATE, ++ TOI_CAN_RESUME, ++ TOI_RESUME_DEVICE_OK, ++ TOI_NORESUME_SPECIFIED, ++ TOI_SANITY_CHECK_PROMPT, ++ TOI_CONTINUE_REQ, ++ TOI_RESUMED_BEFORE, ++ TOI_BOOT_TIME, ++ TOI_NOW_RESUMING, ++ TOI_IGNORE_LOGLEVEL, ++ TOI_TRYING_TO_RESUME, ++ TOI_LOADING_ALT_IMAGE, ++ TOI_STOP_RESUME, ++ TOI_IO_STOPPED, ++ TOI_NOTIFIERS_PREPARE, ++ TOI_CLUSTER_MODE, ++ TOI_BOOT_KERNEL, ++}; ++ ++#ifdef CONFIG_TOI ++ ++/* Used in init dir files */ ++extern unsigned long toi_state; ++#define set_toi_state(bit) (set_bit(bit, &toi_state)) ++#define clear_toi_state(bit) (clear_bit(bit, &toi_state)) ++#define test_toi_state(bit) (test_bit(bit, &toi_state)) ++extern int toi_running; ++ ++#define test_action_state(bit) (test_bit(bit, &toi_bkd.toi_action)) ++extern int try_tuxonice_hibernate(void); ++ ++#else /* !CONFIG_TOI */ ++ ++#define toi_state (0) ++#define set_toi_state(bit) do { } while (0) ++#define clear_toi_state(bit) do { } while (0) ++#define test_toi_state(bit) (0) ++#define toi_running (0) ++ ++static inline int try_tuxonice_hibernate(void) { return 0; } ++#define test_action_state(bit) (0) ++ ++#endif /* CONFIG_TOI */ ++ ++#ifdef CONFIG_HIBERNATION ++#ifdef CONFIG_TOI ++extern void try_tuxonice_resume(void); ++#else ++#define try_tuxonice_resume() do { } while (0) ++#endif ++ ++extern int resume_attempted; ++extern int software_resume(void); ++ ++static inline void check_resume_attempted(void) ++{ ++ if (resume_attempted) ++ return; ++ ++ software_resume(); ++} ++#else ++#define check_resume_attempted() do { } while (0) ++#define resume_attempted (0) ++#endif + #endif /* _LINUX_SUSPEND_H */ +diff --git a/include/linux/swap.h b/include/linux/swap.h +index a2602a8..06c4630 100644 +--- a/include/linux/swap.h ++++ b/include/linux/swap.h +@@ -196,6 +196,7 @@ struct swap_list_t { + extern unsigned long totalram_pages; + extern unsigned long totalreserve_pages; + extern unsigned int nr_free_buffer_pages(void); ++extern unsigned int nr_unallocated_buffer_pages(void); + extern unsigned int nr_free_pagecache_pages(void); + + /* Definition of global_page_state not available yet */ +@@ -325,8 +326,10 @@ extern void swapcache_free(swp_entry_t, struct page *page); + extern int free_swap_and_cache(swp_entry_t); + extern int swap_type_of(dev_t, sector_t, struct block_device **); + extern unsigned int count_swap_pages(int, int); ++extern sector_t map_swap_entry(swp_entry_t entry, struct block_device **); + extern sector_t map_swap_page(struct page *, struct block_device **); + extern sector_t swapdev_block(int, pgoff_t); ++extern struct swap_info_struct *get_swap_info_struct(unsigned); + extern int reuse_swap_page(struct page *); + extern int try_to_free_swap(struct page *); + struct backing_dev_info; +diff --git a/include/linux/uuid.h b/include/linux/uuid.h +new file mode 100644 +index 0000000..a968f0f +--- /dev/null ++++ b/include/linux/uuid.h +@@ -0,0 +1,18 @@ ++#include ++ ++struct hd_struct; ++struct block_device; ++ ++struct fs_info { ++ char uuid[16]; ++ char *last_mount; ++ int last_mount_size; ++}; ++ ++int part_matches_uuid(struct hd_struct *part, const char *uuid); ++dev_t blk_lookup_uuid(const char *uuid); ++struct fs_info *fs_info_from_block_dev(struct block_device *bdev); ++void free_fs_info(struct fs_info *fs_info); ++int bdev_matches_key(struct block_device *bdev, const char *key); ++struct block_device *next_bdev_of_type(struct block_device *last, ++ const char *key); +diff --git a/init/do_mounts.c b/init/do_mounts.c +index bb008d0..5273dc9 100644 +--- a/init/do_mounts.c ++++ b/init/do_mounts.c +@@ -143,6 +143,7 @@ fail: + done: + return res; + } ++EXPORT_SYMBOL_GPL(name_to_dev_t); + + static int __init root_dev_setup(char *line) + { +@@ -413,6 +414,8 @@ void __init prepare_namespace(void) + if (is_floppy && rd_doload && rd_load_disk(0)) + ROOT_DEV = Root_RAM0; + ++ check_resume_attempted(); ++ + mount_root(); + out: + devtmpfs_mount("dev"); +diff --git a/init/do_mounts_initrd.c b/init/do_mounts_initrd.c +index 614241b..f3ea292 100644 +--- a/init/do_mounts_initrd.c ++++ b/init/do_mounts_initrd.c +@@ -6,6 +6,7 @@ + #include + #include + #include ++#include + #include + + #include "do_mounts.h" +@@ -68,6 +69,11 @@ static void __init handle_initrd(void) + + current->flags &= ~PF_FREEZER_SKIP; + ++ if (!resume_attempted) ++ printk(KERN_ERR "TuxOnIce: No attempt was made to resume from " ++ "any image that might exist.\n"); ++ clear_toi_state(TOI_BOOT_TIME); ++ + /* move initrd to rootfs' /old */ + sys_fchdir(old_fd); + sys_mount("/", ".", NULL, MS_MOVE, NULL); +diff --git a/init/main.c b/init/main.c +index 4cb47a1..36eac80 100644 +--- a/init/main.c ++++ b/init/main.c +@@ -116,6 +116,7 @@ extern void softirq_init(void); + char __initdata boot_command_line[COMMAND_LINE_SIZE]; + /* Untouched saved command line (eg. for /proc) */ + char *saved_command_line; ++EXPORT_SYMBOL_GPL(saved_command_line); + /* Command line for parameter parsing */ + static char *static_command_line; + +diff --git a/kernel/cpu.c b/kernel/cpu.c +index 677f253..aad27c8 100644 +--- a/kernel/cpu.c ++++ b/kernel/cpu.c +@@ -402,6 +402,7 @@ int disable_nonboot_cpus(void) + stop_machine_destroy(); + return error; + } ++EXPORT_SYMBOL_GPL(disable_nonboot_cpus); + + void __weak arch_enable_nonboot_cpus_begin(void) + { +@@ -440,6 +441,7 @@ void __ref enable_nonboot_cpus(void) + out: + cpu_maps_update_done(); + } ++EXPORT_SYMBOL_GPL(enable_nonboot_cpus); + + static int alloc_frozen_cpus(void) + { +diff --git a/kernel/fork.c b/kernel/fork.c +index f88bd98..17bbf09 100644 +--- a/kernel/fork.c ++++ b/kernel/fork.c +@@ -86,6 +86,7 @@ int max_threads; /* tunable limit on nr_threads */ + DEFINE_PER_CPU(unsigned long, process_counts) = 0; + + __cacheline_aligned DEFINE_RWLOCK(tasklist_lock); /* outer */ ++EXPORT_SYMBOL_GPL(tasklist_lock); + + int nr_processes(void) + { +diff --git a/kernel/kmod.c b/kernel/kmod.c +index bf0e231..de63918 100644 +--- a/kernel/kmod.c ++++ b/kernel/kmod.c +@@ -326,6 +326,7 @@ int usermodehelper_disable(void) + usermodehelper_disabled = 0; + return -EAGAIN; + } ++EXPORT_SYMBOL_GPL(usermodehelper_disable); + + /** + * usermodehelper_enable - allow new helpers to be started again +@@ -334,6 +335,7 @@ void usermodehelper_enable(void) + { + usermodehelper_disabled = 0; + } ++EXPORT_SYMBOL_GPL(usermodehelper_enable); + + static void helper_lock(void) + { +diff --git a/kernel/pid.c b/kernel/pid.c +index 2e17c9c..f83eb67 100644 +--- a/kernel/pid.c ++++ b/kernel/pid.c +@@ -382,6 +382,7 @@ struct task_struct *find_task_by_pid_ns(pid_t nr, struct pid_namespace *ns) + { + return pid_task(find_pid_ns(nr, ns), PIDTYPE_PID); + } ++EXPORT_SYMBOL_GPL(find_task_by_pid_ns); + + struct task_struct *find_task_by_vpid(pid_t vnr) + { +diff --git a/kernel/power/Kconfig b/kernel/power/Kconfig +index 91e09d3..733ff64 100644 +--- a/kernel/power/Kconfig ++++ b/kernel/power/Kconfig +@@ -38,6 +38,13 @@ config CAN_PM_TRACE + def_bool y + depends on PM_DEBUG && PM_SLEEP && EXPERIMENTAL + ++config FS_FREEZER_DEBUG ++ bool "Filesystem freezer debugging" ++ depends on PM_DEBUG ++ default n ++ ---help--- ++ This option enables debugging of the filesystem freezing code. ++ + config PM_TRACE + bool + help +@@ -183,6 +190,238 @@ config PM_STD_PARTITION + suspended image to. It will simply pick the first available swap + device. + ++menuconfig TOI_CORE ++ tristate "Enhanced Hibernation (TuxOnIce)" ++ depends on HIBERNATION ++ default y ++ ---help--- ++ TuxOnIce is the 'new and improved' suspend support. ++ ++ See the TuxOnIce home page (tuxonice.net) ++ for FAQs, HOWTOs and other documentation. ++ ++ comment "Image Storage (you need at least one allocator)" ++ depends on TOI_CORE ++ ++ config TOI_FILE ++ tristate "File Allocator" ++ depends on TOI_CORE ++ default y ++ ---help--- ++ This option enables support for storing an image in a ++ simple file. You might want this if your swap is ++ sometimes full enough that you don't have enough spare ++ space to store an image. ++ ++ config TOI_SWAP ++ tristate "Swap Allocator" ++ depends on TOI_CORE && SWAP ++ default y ++ ---help--- ++ This option enables support for storing an image in your ++ swap space. ++ ++ comment "General Options" ++ depends on TOI_CORE ++ ++ config TOI_CRYPTO ++ tristate "Compression support" ++ depends on TOI_CORE && CRYPTO ++ default y ++ ---help--- ++ This option adds support for using cryptoapi compression ++ algorithms. Compression is particularly useful as it can ++ more than double your suspend and resume speed (depending ++ upon how well your image compresses). ++ ++ You probably want this, so say Y here. ++ ++ comment "No compression support available without Cryptoapi support." ++ depends on TOI_CORE && !CRYPTO ++ ++ config TOI_USERUI ++ tristate "Userspace User Interface support" ++ depends on TOI_CORE && NET && (VT || SERIAL_CONSOLE) ++ default y ++ ---help--- ++ This option enabled support for a userspace based user interface ++ to TuxOnIce, which allows you to have a nice display while suspending ++ and resuming, and also enables features such as pressing escape to ++ cancel a cycle or interactive debugging. ++ ++ config TOI_USERUI_DEFAULT_PATH ++ string "Default userui program location" ++ default "/usr/local/sbin/tuxoniceui_text" ++ depends on TOI_USERUI ++ ---help--- ++ This entry allows you to specify a default path to the userui binary. ++ ++ config TOI_KEEP_IMAGE ++ bool "Allow Keep Image Mode" ++ depends on TOI_CORE ++ ---help--- ++ This option allows you to keep and image and reuse it. It is intended ++ __ONLY__ for use with systems where all filesystems are mounted read- ++ only (kiosks, for example). To use it, compile this option in and boot ++ normally. Set the KEEP_IMAGE flag in /sys/power/tuxonice and suspend. ++ When you resume, the image will not be removed. You will be unable to turn ++ off swap partitions (assuming you are using the swap allocator), but future ++ suspends simply do a power-down. The image can be updated using the ++ kernel command line parameter suspend_act= to turn off the keep image ++ bit. Keep image mode is a little less user friendly on purpose - it ++ should not be used without thought! ++ ++ config TOI_REPLACE_SWSUSP ++ bool "Replace swsusp by default" ++ default y ++ depends on TOI_CORE ++ ---help--- ++ TuxOnIce can replace swsusp. This option makes that the default state, ++ requiring you to echo 0 > /sys/power/tuxonice/replace_swsusp if you want ++ to use the vanilla kernel functionality. Note that your initrd/ramfs will ++ need to do this before trying to resume, too. ++ With overriding swsusp enabled, echoing disk to /sys/power/state will ++ start a TuxOnIce cycle. If resume= doesn't specify an allocator and both ++ the swap and file allocators are compiled in, the swap allocator will be ++ used by default. ++ ++ config TOI_IGNORE_LATE_INITCALL ++ bool "Wait for initrd/ramfs to run, by default" ++ default n ++ depends on TOI_CORE ++ ---help--- ++ When booting, TuxOnIce can check for an image and start to resume prior ++ to any initrd/ramfs running (via a late initcall). ++ ++ If you don't have an initrd/ramfs, this is what you want to happen - ++ otherwise you won't be able to safely resume. You should set this option ++ to 'No'. ++ ++ If, however, you want your initrd/ramfs to run anyway before resuming, ++ you need to tell TuxOnIce to ignore that earlier opportunity to resume. ++ This can be done either by using this compile time option, or by ++ overriding this option with the boot-time parameter toi_initramfs_resume_only=1. ++ ++ Note that if TuxOnIce can't resume at the earlier opportunity, the ++ value of this option won't matter - the initramfs/initrd (if any) will ++ run anyway. ++ ++ menuconfig TOI_CLUSTER ++ tristate "Cluster support" ++ default n ++ depends on TOI_CORE && NET && BROKEN ++ ---help--- ++ Support for linking multiple machines in a cluster so that they suspend ++ and resume together. ++ ++ config TOI_DEFAULT_CLUSTER_INTERFACE ++ string "Default cluster interface" ++ depends on TOI_CLUSTER ++ ---help--- ++ The default interface on which to communicate with other nodes in ++ the cluster. ++ ++ If no value is set here, cluster support will be disabled by default. ++ ++ config TOI_DEFAULT_CLUSTER_KEY ++ string "Default cluster key" ++ default "Default" ++ depends on TOI_CLUSTER ++ ---help--- ++ The default key used by this node. All nodes in the same cluster ++ have the same key. Multiple clusters may coexist on the same lan ++ by using different values for this key. ++ ++ config TOI_CLUSTER_IMAGE_TIMEOUT ++ int "Timeout when checking for image" ++ default 15 ++ depends on TOI_CLUSTER ++ ---help--- ++ Timeout (seconds) before continuing to boot when waiting to see ++ whether other nodes might have an image. Set to -1 to wait ++ indefinitely. In WAIT_UNTIL_NODES is non zero, we might continue ++ booting sooner than this timeout. ++ ++ config TOI_CLUSTER_WAIT_UNTIL_NODES ++ int "Nodes without image before continuing" ++ default 0 ++ depends on TOI_CLUSTER ++ ---help--- ++ When booting and no image is found, we wait to see if other nodes ++ have an image before continuing to boot. This value lets us ++ continue after seeing a certain number of nodes without an image, ++ instead of continuing to wait for the timeout. Set to 0 to only ++ use the timeout. ++ ++ config TOI_DEFAULT_CLUSTER_PRE_HIBERNATE ++ string "Default pre-hibernate script" ++ depends on TOI_CLUSTER ++ ---help--- ++ The default script to be called when starting to hibernate. ++ ++ config TOI_DEFAULT_CLUSTER_POST_HIBERNATE ++ string "Default post-hibernate script" ++ depends on TOI_CLUSTER ++ ---help--- ++ The default script to be called after resuming from hibernation. ++ ++ config TOI_DEFAULT_WAIT ++ int "Default waiting time for emergency boot messages" ++ default "25" ++ range -1 32768 ++ depends on TOI_CORE ++ help ++ TuxOnIce can display warnings very early in the process of resuming, ++ if (for example) it appears that you have booted a kernel that doesn't ++ match an image on disk. It can then give you the opportunity to either ++ continue booting that kernel, or reboot the machine. This option can be ++ used to control how long to wait in such circumstances. -1 means wait ++ forever. 0 means don't wait at all (do the default action, which will ++ generally be to continue booting and remove the image). Values of 1 or ++ more indicate a number of seconds (up to 255) to wait before doing the ++ default. ++ ++ config TOI_DEFAULT_EXTRA_PAGES_ALLOWANCE ++ int "Default extra pages allowance" ++ default "2000" ++ range 500 32768 ++ depends on TOI_CORE ++ help ++ This value controls the default for the allowance TuxOnIce makes for ++ drivers to allocate extra memory during the atomic copy. The default ++ value of 2000 will be okay in most cases. If you are using ++ DRI, the easiest way to find what value to use is to try to hibernate ++ and look at how many pages were actually needed in the sysfs entry ++ /sys/power/tuxonice/debug_info (first number on the last line), adding ++ a little extra because the value is not always the same. ++ ++ config TOI_CHECKSUM ++ bool "Checksum pageset2" ++ default n ++ depends on TOI_CORE ++ select CRYPTO ++ select CRYPTO_ALGAPI ++ select CRYPTO_MD4 ++ ---help--- ++ Adds support for checksumming pageset2 pages, to ensure you really get an ++ atomic copy. Since some filesystems (XFS especially) change metadata even ++ when there's no other activity, we need this to check for pages that have ++ been changed while we were saving the page cache. If your debugging output ++ always says no pages were resaved, you may be able to safely disable this ++ option. ++ ++config TOI ++ bool ++ depends on TOI_CORE!=n ++ default y ++ ++config TOI_EXPORTS ++ bool ++ depends on TOI_SWAP=m || TOI_FILE=m || \ ++ TOI_CRYPTO=m || TOI_CLUSTER=m || \ ++ TOI_USERUI=m || TOI_CORE=m ++ default y ++ + config APM_EMULATION + tristate "Advanced Power Management Emulation" + depends on PM && SYS_SUPPORTS_APM_EMULATION +diff --git a/kernel/power/Makefile b/kernel/power/Makefile +index 4319181..18c4733 100644 +--- a/kernel/power/Makefile ++++ b/kernel/power/Makefile +@@ -3,6 +3,35 @@ ifeq ($(CONFIG_PM_DEBUG),y) + EXTRA_CFLAGS += -DDEBUG + endif + ++tuxonice_core-y := tuxonice_modules.o ++ ++obj-$(CONFIG_TOI) += tuxonice_builtin.o ++ ++tuxonice_core-$(CONFIG_PM_DEBUG) += tuxonice_alloc.o ++ ++# Compile these in after allocation debugging, if used. ++ ++tuxonice_core-y += tuxonice_sysfs.o tuxonice_highlevel.o \ ++ tuxonice_io.o tuxonice_pagedir.o tuxonice_prepare_image.o \ ++ tuxonice_extent.o tuxonice_pageflags.o tuxonice_ui.o \ ++ tuxonice_power_off.o tuxonice_atomic_copy.o ++ ++tuxonice_core-$(CONFIG_TOI_CHECKSUM) += tuxonice_checksum.o ++ ++tuxonice_core-$(CONFIG_NET) += tuxonice_storage.o tuxonice_netlink.o ++ ++obj-$(CONFIG_TOI_CORE) += tuxonice_core.o ++obj-$(CONFIG_TOI_CRYPTO) += tuxonice_compress.o ++ ++tuxonice_bio-y := tuxonice_bio_core.o tuxonice_bio_chains.o \ ++ tuxonice_bio_signature.o ++ ++obj-$(CONFIG_TOI_SWAP) += tuxonice_bio.o tuxonice_swap.o ++obj-$(CONFIG_TOI_FILE) += tuxonice_bio.o tuxonice_file.o ++obj-$(CONFIG_TOI_CLUSTER) += tuxonice_cluster.o ++ ++obj-$(CONFIG_TOI_USERUI) += tuxonice_userui.o ++ + obj-$(CONFIG_PM) += main.o + obj-$(CONFIG_PM_SLEEP) += console.o + obj-$(CONFIG_FREEZER) += process.o +diff --git a/kernel/power/console.c b/kernel/power/console.c +index 218e5af..95a6bdc 100644 +--- a/kernel/power/console.c ++++ b/kernel/power/console.c +@@ -24,6 +24,7 @@ int pm_prepare_console(void) + orig_kmsg = vt_kmsg_redirect(SUSPEND_CONSOLE); + return 0; + } ++EXPORT_SYMBOL_GPL(pm_prepare_console); + + void pm_restore_console(void) + { +@@ -32,4 +33,5 @@ void pm_restore_console(void) + vt_kmsg_redirect(orig_kmsg); + } + } ++EXPORT_SYMBOL_GPL(pm_restore_console); + #endif +diff --git a/kernel/power/hibernate.c b/kernel/power/hibernate.c +index bbfe472..07c550b 100644 +--- a/kernel/power/hibernate.c ++++ b/kernel/power/hibernate.c +@@ -25,11 +25,12 @@ + #include + #include + +-#include "power.h" ++#include "tuxonice.h" + + + static int noresume = 0; +-static char resume_file[256] = CONFIG_PM_STD_PARTITION; ++char resume_file[256] = CONFIG_PM_STD_PARTITION; ++EXPORT_SYMBOL_GPL(resume_file); + dev_t swsusp_resume_device; + sector_t swsusp_resume_block; + int in_suspend __nosavedata = 0; +@@ -116,55 +117,60 @@ static int hibernation_test(int level) { return 0; } + * hibernation + */ + +-static int platform_begin(int platform_mode) ++int platform_begin(int platform_mode) + { + return (platform_mode && hibernation_ops) ? + hibernation_ops->begin() : 0; + } ++EXPORT_SYMBOL_GPL(platform_begin); + + /** + * platform_end - tell the platform driver that we've entered the + * working state + */ + +-static void platform_end(int platform_mode) ++void platform_end(int platform_mode) + { + if (platform_mode && hibernation_ops) + hibernation_ops->end(); + } ++EXPORT_SYMBOL_GPL(platform_end); + + /** + * platform_pre_snapshot - prepare the machine for hibernation using the + * platform driver if so configured and return an error code if it fails + */ + +-static int platform_pre_snapshot(int platform_mode) ++int platform_pre_snapshot(int platform_mode) + { + return (platform_mode && hibernation_ops) ? + hibernation_ops->pre_snapshot() : 0; + } ++EXPORT_SYMBOL_GPL(platform_pre_snapshot); + + /** + * platform_leave - prepare the machine for switching to the normal mode + * of operation using the platform driver (called with interrupts disabled) + */ + +-static void platform_leave(int platform_mode) ++void platform_leave(int platform_mode) + { + if (platform_mode && hibernation_ops) + hibernation_ops->leave(); + } ++EXPORT_SYMBOL_GPL(platform_leave); + + /** + * platform_finish - switch the machine to the normal mode of operation + * using the platform driver (must be called after platform_prepare()) + */ + +-static void platform_finish(int platform_mode) ++void platform_finish(int platform_mode) + { + if (platform_mode && hibernation_ops) + hibernation_ops->finish(); + } ++EXPORT_SYMBOL_GPL(platform_finish); + + /** + * platform_pre_restore - prepare the platform for the restoration from a +@@ -172,11 +178,12 @@ static void platform_finish(int platform_mode) + * called, platform_restore_cleanup() must be called. + */ + +-static int platform_pre_restore(int platform_mode) ++int platform_pre_restore(int platform_mode) + { + return (platform_mode && hibernation_ops) ? + hibernation_ops->pre_restore() : 0; + } ++EXPORT_SYMBOL_GPL(platform_pre_restore); + + /** + * platform_restore_cleanup - switch the platform to the normal mode of +@@ -185,22 +192,24 @@ static int platform_pre_restore(int platform_mode) + * regardless of the result of platform_pre_restore(). + */ + +-static void platform_restore_cleanup(int platform_mode) ++void platform_restore_cleanup(int platform_mode) + { + if (platform_mode && hibernation_ops) + hibernation_ops->restore_cleanup(); + } ++EXPORT_SYMBOL_GPL(platform_restore_cleanup); + + /** + * platform_recover - recover the platform from a failure to suspend + * devices. + */ + +-static void platform_recover(int platform_mode) ++void platform_recover(int platform_mode) + { + if (platform_mode && hibernation_ops && hibernation_ops->recover) + hibernation_ops->recover(); + } ++EXPORT_SYMBOL_GPL(platform_recover); + + /** + * swsusp_show_speed - print the time elapsed between two events. +@@ -525,6 +534,7 @@ int hibernation_platform_enter(void) + + return error; + } ++EXPORT_SYMBOL_GPL(hibernation_platform_enter); + + /** + * power_down - Shut the machine down for hibernation. +@@ -576,6 +586,9 @@ int hibernate(void) + { + int error; + ++ if (test_action_state(TOI_REPLACE_SWSUSP)) ++ return try_tuxonice_hibernate(); ++ + mutex_lock(&pm_mutex); + /* The snapshot device should not be opened while we're running */ + if (!atomic_add_unless(&snapshot_device_available, -1, 0)) { +@@ -656,11 +669,19 @@ int hibernate(void) + * + */ + +-static int software_resume(void) ++int software_resume(void) + { + int error; + unsigned int flags; + ++ resume_attempted = 1; ++ ++ /* ++ * We can't know (until an image header - if any - is loaded), whether ++ * we did override swsusp. We therefore ensure that both are tried. ++ */ ++ try_tuxonice_resume(); ++ + /* + * If the user said "noresume".. bail out early. + */ +@@ -989,6 +1010,7 @@ static int __init resume_offset_setup(char *str) + static int __init noresume_setup(char *str) + { + noresume = 1; ++ set_toi_state(TOI_NORESUME_SPECIFIED); + return 1; + } + +diff --git a/kernel/power/main.c b/kernel/power/main.c +index 0998c71..9509733 100644 +--- a/kernel/power/main.c ++++ b/kernel/power/main.c +@@ -16,6 +16,7 @@ + #include "power.h" + + DEFINE_MUTEX(pm_mutex); ++EXPORT_SYMBOL_GPL(pm_mutex); + + unsigned int pm_flags; + EXPORT_SYMBOL(pm_flags); +@@ -24,7 +25,8 @@ EXPORT_SYMBOL(pm_flags); + + /* Routines for PM-transition notifications */ + +-static BLOCKING_NOTIFIER_HEAD(pm_chain_head); ++BLOCKING_NOTIFIER_HEAD(pm_chain_head); ++EXPORT_SYMBOL_GPL(pm_chain_head); + + int register_pm_notifier(struct notifier_block *nb) + { +@@ -43,6 +45,7 @@ int pm_notifier_call_chain(unsigned long val) + return (blocking_notifier_call_chain(&pm_chain_head, val, NULL) + == NOTIFY_BAD) ? -EINVAL : 0; + } ++EXPORT_SYMBOL_GPL(pm_notifier_call_chain); + + #ifdef CONFIG_PM_DEBUG + int pm_test_level = TEST_NONE; +@@ -110,6 +113,7 @@ power_attr(pm_test); + #endif /* CONFIG_PM_SLEEP */ + + struct kobject *power_kobj; ++EXPORT_SYMBOL_GPL(power_kobj); + + /** + * state - control system power state. +diff --git a/kernel/power/power.h b/kernel/power/power.h +index 46c5a26..d8c8f32 100644 +--- a/kernel/power/power.h ++++ b/kernel/power/power.h +@@ -31,8 +31,12 @@ static inline char *check_image_kernel(struct swsusp_info *info) + return arch_hibernation_header_restore(info) ? + "architecture specific data" : NULL; + } ++#else ++extern char *check_image_kernel(struct swsusp_info *info); + #endif /* CONFIG_ARCH_HIBERNATION_HEADER */ ++extern int init_header(struct swsusp_info *info); + ++extern char resume_file[256]; + /* + * Keep some memory free so that I/O operations can succeed without paging + * [Might this be more than 4 MB?] +@@ -49,6 +53,7 @@ static inline char *check_image_kernel(struct swsusp_info *info) + extern int hibernation_snapshot(int platform_mode); + extern int hibernation_restore(int platform_mode); + extern int hibernation_platform_enter(void); ++extern void platform_recover(int platform_mode); + #endif + + extern int pfn_is_nosave(unsigned long); +@@ -63,6 +68,8 @@ static struct kobj_attribute _name##_attr = { \ + .store = _name##_store, \ + } + ++extern struct pbe *restore_pblist; ++ + /* Preferred image size in bytes (default 500 MB) */ + extern unsigned long image_size; + extern int in_suspend; +@@ -236,3 +243,86 @@ static inline void suspend_thaw_processes(void) + { + } + #endif ++ ++extern struct page *saveable_page(struct zone *z, unsigned long p); ++#ifdef CONFIG_HIGHMEM ++extern struct page *saveable_highmem_page(struct zone *z, unsigned long p); ++#else ++static ++inline struct page *saveable_highmem_page(struct zone *z, unsigned long p) ++{ ++ return NULL; ++} ++#endif ++ ++#define PBES_PER_PAGE (PAGE_SIZE / sizeof(struct pbe)) ++extern struct list_head nosave_regions; ++ ++/** ++ * This structure represents a range of page frames the contents of which ++ * should not be saved during the suspend. ++ */ ++ ++struct nosave_region { ++ struct list_head list; ++ unsigned long start_pfn; ++ unsigned long end_pfn; ++}; ++ ++#ifndef PHYS_PFN_OFFSET ++#define PHYS_PFN_OFFSET 0 ++#endif ++ ++#define ZONE_START(thiszone) ((thiszone)->zone_start_pfn - PHYS_PFN_OFFSET) ++ ++#define BM_END_OF_MAP (~0UL) ++ ++#define BM_BITS_PER_BLOCK (PAGE_SIZE * BITS_PER_BYTE) ++ ++struct bm_block { ++ struct list_head hook; /* hook into a list of bitmap blocks */ ++ unsigned long start_pfn; /* pfn represented by the first bit */ ++ unsigned long end_pfn; /* pfn represented by the last bit plus 1 */ ++ unsigned long *data; /* bitmap representing pages */ ++}; ++ ++/* struct bm_position is used for browsing memory bitmaps */ ++ ++struct bm_position { ++ struct bm_block *block; ++ int bit; ++}; ++ ++struct memory_bitmap { ++ struct list_head blocks; /* list of bitmap blocks */ ++ struct linked_page *p_list; /* list of pages used to store zone ++ * bitmap objects and bitmap block ++ * objects ++ */ ++ struct bm_position cur; /* most recently used bit position */ ++ struct bm_position iter; /* most recently used bit position ++ * when iterating over a bitmap. ++ */ ++}; ++ ++extern int memory_bm_create(struct memory_bitmap *bm, gfp_t gfp_mask, ++ int safe_needed); ++extern void memory_bm_free(struct memory_bitmap *bm, int clear_nosave_free); ++extern void memory_bm_set_bit(struct memory_bitmap *bm, unsigned long pfn); ++extern void memory_bm_clear_bit(struct memory_bitmap *bm, unsigned long pfn); ++extern int memory_bm_test_bit(struct memory_bitmap *bm, unsigned long pfn); ++extern unsigned long memory_bm_next_pfn(struct memory_bitmap *bm); ++extern void memory_bm_position_reset(struct memory_bitmap *bm); ++extern void memory_bm_clear(struct memory_bitmap *bm); ++extern void memory_bm_copy(struct memory_bitmap *source, ++ struct memory_bitmap *dest); ++extern void memory_bm_dup(struct memory_bitmap *source, ++ struct memory_bitmap *dest); ++ ++#ifdef CONFIG_TOI ++struct toi_module_ops; ++extern int memory_bm_read(struct memory_bitmap *bm, int (*rw_chunk) ++ (int rw, struct toi_module_ops *owner, char *buffer, int buffer_size)); ++extern int memory_bm_write(struct memory_bitmap *bm, int (*rw_chunk) ++ (int rw, struct toi_module_ops *owner, char *buffer, int buffer_size)); ++#endif +diff --git a/kernel/power/process.c b/kernel/power/process.c +index 5ade1bd..e24a702 100644 +--- a/kernel/power/process.c ++++ b/kernel/power/process.c +@@ -15,6 +15,13 @@ + #include + #include + #include ++#include ++ ++int freezer_state; ++EXPORT_SYMBOL_GPL(freezer_state); ++ ++int freezer_sync; ++EXPORT_SYMBOL_GPL(freezer_sync); + + /* + * Timeout for stopping processes +@@ -93,7 +100,8 @@ static int try_to_freeze_tasks(bool sig_only) + do_each_thread(g, p) { + task_lock(p); + if (freezing(p) && !freezer_should_skip(p)) +- printk(KERN_ERR " %s\n", p->comm); ++ printk(KERN_ERR " %s (%d) failed to freeze.\n", ++ p->comm, p->pid); + cancel_freezing(p); + task_unlock(p); + } while_each_thread(g, p); +@@ -113,17 +121,26 @@ int freeze_processes(void) + { + int error; + +- printk("Freezing user space processes ... "); ++ printk(KERN_INFO "Stopping fuse filesystems.\n"); ++ freeze_filesystems(FS_FREEZER_FUSE); ++ freezer_state = FREEZER_FILESYSTEMS_FROZEN; ++ printk(KERN_INFO "Freezing user space processes ... "); + error = try_to_freeze_tasks(true); + if (error) + goto Exit; + printk("done.\n"); + +- printk("Freezing remaining freezable tasks ... "); ++ if (freezer_sync) ++ sys_sync(); ++ printk(KERN_INFO "Stopping normal filesystems.\n"); ++ freeze_filesystems(FS_FREEZER_NORMAL); ++ freezer_state = FREEZER_USERSPACE_FROZEN; ++ printk(KERN_INFO "Freezing remaining freezable tasks ... "); + error = try_to_freeze_tasks(false); + if (error) + goto Exit; + printk("done."); ++ freezer_state = FREEZER_FULLY_ON; + + oom_killer_disable(); + Exit: +@@ -132,6 +149,7 @@ int freeze_processes(void) + + return error; + } ++EXPORT_SYMBOL_GPL(freeze_processes); + + static void thaw_tasks(bool nosig_only) + { +@@ -155,12 +173,39 @@ static void thaw_tasks(bool nosig_only) + + void thaw_processes(void) + { ++ int old_state = freezer_state; ++ ++ if (old_state == FREEZER_OFF) ++ return; ++ ++ freezer_state = FREEZER_OFF; ++ + oom_killer_enable(); + ++ printk(KERN_INFO "Restarting all filesystems ...\n"); ++ thaw_filesystems(FS_FREEZER_ALL); ++ ++ printk(KERN_INFO "Restarting tasks ... "); ++ if (old_state == FREEZER_FULLY_ON) ++ thaw_tasks(true); ++ + printk("Restarting tasks ... "); +- thaw_tasks(true); + thaw_tasks(false); + schedule(); + printk("done.\n"); + } ++EXPORT_SYMBOL_GPL(thaw_processes); + ++void thaw_kernel_threads(void) ++{ ++ freezer_state = FREEZER_USERSPACE_FROZEN; ++ printk(KERN_INFO "Restarting normal filesystems.\n"); ++ thaw_filesystems(FS_FREEZER_NORMAL); ++ thaw_tasks(true); ++} ++ ++/* ++ * It's ugly putting this EXPORT down here, but it's necessary so that it ++ * doesn't matter whether the fs-freezing patch is applied or not. ++ */ ++EXPORT_SYMBOL_GPL(thaw_kernel_threads); +diff --git a/kernel/power/snapshot.c b/kernel/power/snapshot.c +index 36cb168..7f6da8f 100644 +--- a/kernel/power/snapshot.c ++++ b/kernel/power/snapshot.c +@@ -34,6 +34,8 @@ + #include + + #include "power.h" ++#include "tuxonice_builtin.h" ++#include "tuxonice_pagedir.h" + + static int swsusp_page_is_free(struct page *); + static void swsusp_set_page_forbidden(struct page *); +@@ -53,6 +55,10 @@ unsigned long image_size = 500 * 1024 * 1024; + * directly to their "original" page frames. + */ + struct pbe *restore_pblist; ++EXPORT_SYMBOL_GPL(restore_pblist); ++ ++int resume_attempted; ++EXPORT_SYMBOL_GPL(resume_attempted); + + /* Pointer to an auxiliary buffer (1 page) */ + static void *buffer; +@@ -95,6 +101,9 @@ static void *get_image_page(gfp_t gfp_mask, int safe_needed) + + unsigned long get_safe_page(gfp_t gfp_mask) + { ++ if (toi_running) ++ return toi_get_nonconflicting_page(); ++ + return (unsigned long)get_image_page(gfp_mask, PG_SAFE); + } + +@@ -231,47 +240,22 @@ static void *chain_alloc(struct chain_allocator *ca, unsigned int size) + * the represented memory area. + */ + +-#define BM_END_OF_MAP (~0UL) +- +-#define BM_BITS_PER_BLOCK (PAGE_SIZE * BITS_PER_BYTE) +- +-struct bm_block { +- struct list_head hook; /* hook into a list of bitmap blocks */ +- unsigned long start_pfn; /* pfn represented by the first bit */ +- unsigned long end_pfn; /* pfn represented by the last bit plus 1 */ +- unsigned long *data; /* bitmap representing pages */ +-}; +- + static inline unsigned long bm_block_bits(struct bm_block *bb) + { + return bb->end_pfn - bb->start_pfn; + } + +-/* strcut bm_position is used for browsing memory bitmaps */ +- +-struct bm_position { +- struct bm_block *block; +- int bit; +-}; +- +-struct memory_bitmap { +- struct list_head blocks; /* list of bitmap blocks */ +- struct linked_page *p_list; /* list of pages used to store zone +- * bitmap objects and bitmap block +- * objects +- */ +- struct bm_position cur; /* most recently used bit position */ +-}; +- + /* Functions that operate on memory bitmaps */ + +-static void memory_bm_position_reset(struct memory_bitmap *bm) ++void memory_bm_position_reset(struct memory_bitmap *bm) + { + bm->cur.block = list_entry(bm->blocks.next, struct bm_block, hook); + bm->cur.bit = 0; +-} + +-static void memory_bm_free(struct memory_bitmap *bm, int clear_nosave_free); ++ bm->iter.block = list_entry(bm->blocks.next, struct bm_block, hook); ++ bm->iter.bit = 0; ++} ++EXPORT_SYMBOL_GPL(memory_bm_position_reset); + + /** + * create_bm_block_list - create a list of block bitmap objects +@@ -379,7 +363,7 @@ static int create_mem_extents(struct list_head *list, gfp_t gfp_mask) + /** + * memory_bm_create - allocate memory for a memory bitmap + */ +-static int ++int + memory_bm_create(struct memory_bitmap *bm, gfp_t gfp_mask, int safe_needed) + { + struct chain_allocator ca; +@@ -435,11 +419,12 @@ memory_bm_create(struct memory_bitmap *bm, gfp_t gfp_mask, int safe_needed) + memory_bm_free(bm, PG_UNSAFE_CLEAR); + goto Exit; + } ++EXPORT_SYMBOL_GPL(memory_bm_create); + + /** + * memory_bm_free - free memory occupied by the memory bitmap @bm + */ +-static void memory_bm_free(struct memory_bitmap *bm, int clear_nosave_free) ++void memory_bm_free(struct memory_bitmap *bm, int clear_nosave_free) + { + struct bm_block *bb; + +@@ -451,6 +436,7 @@ static void memory_bm_free(struct memory_bitmap *bm, int clear_nosave_free) + + INIT_LIST_HEAD(&bm->blocks); + } ++EXPORT_SYMBOL_GPL(memory_bm_free); + + /** + * memory_bm_find_bit - find the bit in the bitmap @bm that corresponds +@@ -489,7 +475,7 @@ static int memory_bm_find_bit(struct memory_bitmap *bm, unsigned long pfn, + return 0; + } + +-static void memory_bm_set_bit(struct memory_bitmap *bm, unsigned long pfn) ++void memory_bm_set_bit(struct memory_bitmap *bm, unsigned long pfn) + { + void *addr; + unsigned int bit; +@@ -499,6 +485,7 @@ static void memory_bm_set_bit(struct memory_bitmap *bm, unsigned long pfn) + BUG_ON(error); + set_bit(bit, addr); + } ++EXPORT_SYMBOL_GPL(memory_bm_set_bit); + + static int mem_bm_set_bit_check(struct memory_bitmap *bm, unsigned long pfn) + { +@@ -512,7 +499,7 @@ static int mem_bm_set_bit_check(struct memory_bitmap *bm, unsigned long pfn) + return error; + } + +-static void memory_bm_clear_bit(struct memory_bitmap *bm, unsigned long pfn) ++void memory_bm_clear_bit(struct memory_bitmap *bm, unsigned long pfn) + { + void *addr; + unsigned int bit; +@@ -522,8 +509,9 @@ static void memory_bm_clear_bit(struct memory_bitmap *bm, unsigned long pfn) + BUG_ON(error); + clear_bit(bit, addr); + } ++EXPORT_SYMBOL_GPL(memory_bm_clear_bit); + +-static int memory_bm_test_bit(struct memory_bitmap *bm, unsigned long pfn) ++int memory_bm_test_bit(struct memory_bitmap *bm, unsigned long pfn) + { + void *addr; + unsigned int bit; +@@ -533,6 +521,7 @@ static int memory_bm_test_bit(struct memory_bitmap *bm, unsigned long pfn) + BUG_ON(error); + return test_bit(bit, addr); + } ++EXPORT_SYMBOL_GPL(memory_bm_test_bit); + + static bool memory_bm_pfn_present(struct memory_bitmap *bm, unsigned long pfn) + { +@@ -551,43 +540,178 @@ static bool memory_bm_pfn_present(struct memory_bitmap *bm, unsigned long pfn) + * this function. + */ + +-static unsigned long memory_bm_next_pfn(struct memory_bitmap *bm) ++unsigned long memory_bm_next_pfn(struct memory_bitmap *bm) + { + struct bm_block *bb; + int bit; + +- bb = bm->cur.block; ++ bb = bm->iter.block; + do { +- bit = bm->cur.bit; ++ bit = bm->iter.bit; + bit = find_next_bit(bb->data, bm_block_bits(bb), bit); + if (bit < bm_block_bits(bb)) + goto Return_pfn; + + bb = list_entry(bb->hook.next, struct bm_block, hook); +- bm->cur.block = bb; +- bm->cur.bit = 0; ++ bm->iter.block = bb; ++ bm->iter.bit = 0; + } while (&bb->hook != &bm->blocks); + + memory_bm_position_reset(bm); + return BM_END_OF_MAP; + + Return_pfn: +- bm->cur.bit = bit + 1; ++ bm->iter.bit = bit + 1; + return bb->start_pfn + bit; + } ++EXPORT_SYMBOL_GPL(memory_bm_next_pfn); + +-/** +- * This structure represents a range of page frames the contents of which +- * should not be saved during the suspend. +- */ ++void memory_bm_clear(struct memory_bitmap *bm) ++{ ++ unsigned long pfn; + +-struct nosave_region { +- struct list_head list; +- unsigned long start_pfn; +- unsigned long end_pfn; +-}; ++ memory_bm_position_reset(bm); ++ pfn = memory_bm_next_pfn(bm); ++ while (pfn != BM_END_OF_MAP) { ++ memory_bm_clear_bit(bm, pfn); ++ pfn = memory_bm_next_pfn(bm); ++ } ++} ++EXPORT_SYMBOL_GPL(memory_bm_clear); ++ ++void memory_bm_copy(struct memory_bitmap *source, struct memory_bitmap *dest) ++{ ++ unsigned long pfn; ++ ++ memory_bm_position_reset(source); ++ pfn = memory_bm_next_pfn(source); ++ while (pfn != BM_END_OF_MAP) { ++ memory_bm_set_bit(dest, pfn); ++ pfn = memory_bm_next_pfn(source); ++ } ++} ++EXPORT_SYMBOL_GPL(memory_bm_copy); ++ ++void memory_bm_dup(struct memory_bitmap *source, struct memory_bitmap *dest) ++{ ++ memory_bm_clear(dest); ++ memory_bm_copy(source, dest); ++} ++EXPORT_SYMBOL_GPL(memory_bm_dup); ++ ++#ifdef CONFIG_TOI ++#define DEFINE_MEMORY_BITMAP(name) \ ++struct memory_bitmap *name; \ ++EXPORT_SYMBOL_GPL(name) ++ ++DEFINE_MEMORY_BITMAP(pageset1_map); ++DEFINE_MEMORY_BITMAP(pageset1_copy_map); ++DEFINE_MEMORY_BITMAP(pageset2_map); ++DEFINE_MEMORY_BITMAP(page_resave_map); ++DEFINE_MEMORY_BITMAP(io_map); ++DEFINE_MEMORY_BITMAP(nosave_map); ++DEFINE_MEMORY_BITMAP(free_map); ++ ++int memory_bm_write(struct memory_bitmap *bm, int (*rw_chunk) ++ (int rw, struct toi_module_ops *owner, char *buffer, int buffer_size)) ++{ ++ int result = 0; ++ unsigned int nr = 0; ++ struct bm_block *bb; ++ ++ if (!bm) ++ return result; + +-static LIST_HEAD(nosave_regions); ++ list_for_each_entry(bb, &bm->blocks, hook) ++ nr++; ++ ++ result = (*rw_chunk)(WRITE, NULL, (char *) &nr, sizeof(unsigned int)); ++ if (result) ++ return result; ++ ++ list_for_each_entry(bb, &bm->blocks, hook) { ++ result = (*rw_chunk)(WRITE, NULL, (char *) &bb->start_pfn, ++ 2 * sizeof(unsigned long)); ++ if (result) ++ return result; ++ ++ result = (*rw_chunk)(WRITE, NULL, (char *) bb->data, PAGE_SIZE); ++ if (result) ++ return result; ++ } ++ ++ return 0; ++} ++EXPORT_SYMBOL_GPL(memory_bm_write); ++ ++int memory_bm_read(struct memory_bitmap *bm, int (*rw_chunk) ++ (int rw, struct toi_module_ops *owner, char *buffer, int buffer_size)) ++{ ++ int result = 0; ++ unsigned int nr, i; ++ struct bm_block *bb; ++ ++ if (!bm) ++ return result; ++ ++ result = memory_bm_create(bm, GFP_KERNEL, 0); ++ ++ if (result) ++ return result; ++ ++ result = (*rw_chunk)(READ, NULL, (char *) &nr, sizeof(unsigned int)); ++ if (result) ++ goto Free; ++ ++ for (i = 0; i < nr; i++) { ++ unsigned long pfn; ++ ++ result = (*rw_chunk)(READ, NULL, (char *) &pfn, ++ sizeof(unsigned long)); ++ if (result) ++ goto Free; ++ ++ list_for_each_entry(bb, &bm->blocks, hook) ++ if (bb->start_pfn == pfn) ++ break; ++ ++ if (&bb->hook == &bm->blocks) { ++ printk(KERN_ERR ++ "TuxOnIce: Failed to load memory bitmap.\n"); ++ result = -EINVAL; ++ goto Free; ++ } ++ ++ result = (*rw_chunk)(READ, NULL, (char *) &pfn, ++ sizeof(unsigned long)); ++ if (result) ++ goto Free; ++ ++ if (pfn != bb->end_pfn) { ++ printk(KERN_ERR ++ "TuxOnIce: Failed to load memory bitmap. " ++ "End PFN doesn't match what was saved.\n"); ++ result = -EINVAL; ++ goto Free; ++ } ++ ++ result = (*rw_chunk)(READ, NULL, (char *) bb->data, PAGE_SIZE); ++ ++ if (result) ++ goto Free; ++ } ++ ++ return 0; ++ ++Free: ++ memory_bm_free(bm, PG_ANY); ++ return result; ++} ++EXPORT_SYMBOL_GPL(memory_bm_read); ++#endif ++ ++LIST_HEAD(nosave_regions); ++EXPORT_SYMBOL_GPL(nosave_regions); + + /** + * register_nosave_region - register a range of page frames the contents +@@ -823,7 +947,7 @@ static unsigned int count_free_highmem_pages(void) + * We should save the page if it isn't Nosave or NosaveFree, or Reserved, + * and it isn't a part of a free chunk of pages. + */ +-static struct page *saveable_highmem_page(struct zone *zone, unsigned long pfn) ++struct page *saveable_highmem_page(struct zone *zone, unsigned long pfn) + { + struct page *page; + +@@ -842,6 +966,7 @@ static struct page *saveable_highmem_page(struct zone *zone, unsigned long pfn) + + return page; + } ++EXPORT_SYMBOL_GPL(saveable_highmem_page); + + /** + * count_highmem_pages - compute the total number of saveable highmem +@@ -867,11 +992,6 @@ static unsigned int count_highmem_pages(void) + } + return n; + } +-#else +-static inline void *saveable_highmem_page(struct zone *z, unsigned long p) +-{ +- return NULL; +-} + #endif /* CONFIG_HIGHMEM */ + + /** +@@ -882,7 +1002,7 @@ static inline void *saveable_highmem_page(struct zone *z, unsigned long p) + * of pages statically defined as 'unsaveable', and it isn't a part of + * a free chunk of pages. + */ +-static struct page *saveable_page(struct zone *zone, unsigned long pfn) ++struct page *saveable_page(struct zone *zone, unsigned long pfn) + { + struct page *page; + +@@ -904,6 +1024,7 @@ static struct page *saveable_page(struct zone *zone, unsigned long pfn) + + return page; + } ++EXPORT_SYMBOL_GPL(saveable_page); + + /** + * count_data_pages - compute the total number of saveable non-highmem +@@ -1500,6 +1621,9 @@ asmlinkage int swsusp_save(void) + { + unsigned int nr_pages, nr_highmem; + ++ if (toi_running) ++ return toi_post_context_save(); ++ + printk(KERN_INFO "PM: Creating hibernation image: \n"); + + drain_local_pages(NULL); +@@ -1540,14 +1664,14 @@ asmlinkage int swsusp_save(void) + } + + #ifndef CONFIG_ARCH_HIBERNATION_HEADER +-static int init_header_complete(struct swsusp_info *info) ++int init_header_complete(struct swsusp_info *info) + { + memcpy(&info->uts, init_utsname(), sizeof(struct new_utsname)); + info->version_code = LINUX_VERSION_CODE; + return 0; + } + +-static char *check_image_kernel(struct swsusp_info *info) ++char *check_image_kernel(struct swsusp_info *info) + { + if (info->version_code != LINUX_VERSION_CODE) + return "kernel version"; +@@ -1561,6 +1685,7 @@ static char *check_image_kernel(struct swsusp_info *info) + return "machine"; + return NULL; + } ++EXPORT_SYMBOL_GPL(check_image_kernel); + #endif /* CONFIG_ARCH_HIBERNATION_HEADER */ + + unsigned long snapshot_get_image_size(void) +@@ -1568,7 +1693,7 @@ unsigned long snapshot_get_image_size(void) + return nr_copy_pages + nr_meta_pages + 1; + } + +-static int init_header(struct swsusp_info *info) ++int init_header(struct swsusp_info *info) + { + memset(info, 0, sizeof(struct swsusp_info)); + info->num_physpages = num_physpages; +@@ -1578,6 +1703,7 @@ static int init_header(struct swsusp_info *info) + info->size <<= PAGE_SHIFT; + return init_header_complete(info); + } ++EXPORT_SYMBOL_GPL(init_header); + + /** + * pack_pfns - pfns corresponding to the set bits found in the bitmap @bm +diff --git a/kernel/power/suspend.c b/kernel/power/suspend.c +index 6f10dfc..cecd9a8 100644 +--- a/kernel/power/suspend.c ++++ b/kernel/power/suspend.c +@@ -226,6 +226,7 @@ int suspend_devices_and_enter(suspend_state_t state) + suspend_ops->recover(); + goto Resume_devices; + } ++EXPORT_SYMBOL_GPL(suspend_devices_and_enter); + + /** + * suspend_finish - Do final work before exiting suspend sequence. +diff --git a/kernel/power/tuxonice.h b/kernel/power/tuxonice.h +new file mode 100644 +index 0000000..e7bc111 +--- /dev/null ++++ b/kernel/power/tuxonice.h +@@ -0,0 +1,211 @@ ++/* ++ * kernel/power/tuxonice.h ++ * ++ * Copyright (C) 2004-2010 Nigel Cunningham (nigel at tuxonice net) ++ * ++ * This file is released under the GPLv2. ++ * ++ * It contains declarations used throughout swsusp. ++ * ++ */ ++ ++#ifndef KERNEL_POWER_TOI_H ++#define KERNEL_POWER_TOI_H ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include "tuxonice_pageflags.h" ++#include "power.h" ++ ++#define TOI_CORE_VERSION "3.1" ++#define TOI_HEADER_VERSION 2 ++#define MY_BOOT_KERNEL_DATA_VERSION 3 ++ ++struct toi_boot_kernel_data { ++ int version; ++ int size; ++ unsigned long toi_action; ++ unsigned long toi_debug_state; ++ u32 toi_default_console_level; ++ int toi_io_time[2][2]; ++ char toi_nosave_commandline[COMMAND_LINE_SIZE]; ++ unsigned long pages_used[33]; ++ unsigned long compress_bytes_in; ++ unsigned long compress_bytes_out; ++}; ++ ++extern struct toi_boot_kernel_data toi_bkd; ++ ++/* Location of book kernel data struct in kernel being resumed */ ++extern unsigned long boot_kernel_data_buffer; ++ ++/* == Action states == */ ++ ++enum { ++ TOI_REBOOT, ++ TOI_PAUSE, ++ TOI_LOGALL, ++ TOI_CAN_CANCEL, ++ TOI_KEEP_IMAGE, ++ TOI_FREEZER_TEST, ++ TOI_SINGLESTEP, ++ TOI_PAUSE_NEAR_PAGESET_END, ++ TOI_TEST_FILTER_SPEED, ++ TOI_TEST_BIO, ++ TOI_NO_PAGESET2, ++ TOI_IGNORE_ROOTFS, ++ TOI_REPLACE_SWSUSP, ++ TOI_PAGESET2_FULL, ++ TOI_ABORT_ON_RESAVE_NEEDED, ++ TOI_NO_MULTITHREADED_IO, ++ TOI_NO_DIRECT_LOAD, /* Obsolete */ ++ TOI_LATE_CPU_HOTPLUG, ++ TOI_GET_MAX_MEM_ALLOCD, ++ TOI_NO_FLUSHER_THREAD, ++ TOI_NO_PS2_IF_UNNEEDED ++}; ++ ++#define clear_action_state(bit) (test_and_clear_bit(bit, &toi_bkd.toi_action)) ++ ++/* == Result states == */ ++ ++enum { ++ TOI_ABORTED, ++ TOI_ABORT_REQUESTED, ++ TOI_NOSTORAGE_AVAILABLE, ++ TOI_INSUFFICIENT_STORAGE, ++ TOI_FREEZING_FAILED, ++ TOI_KEPT_IMAGE, ++ TOI_WOULD_EAT_MEMORY, ++ TOI_UNABLE_TO_FREE_ENOUGH_MEMORY, ++ TOI_PM_SEM, ++ TOI_DEVICE_REFUSED, ++ TOI_SYSDEV_REFUSED, ++ TOI_EXTRA_PAGES_ALLOW_TOO_SMALL, ++ TOI_UNABLE_TO_PREPARE_IMAGE, ++ TOI_FAILED_MODULE_INIT, ++ TOI_FAILED_MODULE_CLEANUP, ++ TOI_FAILED_IO, ++ TOI_OUT_OF_MEMORY, ++ TOI_IMAGE_ERROR, ++ TOI_PLATFORM_PREP_FAILED, ++ TOI_CPU_HOTPLUG_FAILED, ++ TOI_ARCH_PREPARE_FAILED, ++ TOI_RESAVE_NEEDED, ++ TOI_CANT_SUSPEND, ++ TOI_NOTIFIERS_PREPARE_FAILED, ++ TOI_PRE_SNAPSHOT_FAILED, ++ TOI_PRE_RESTORE_FAILED, ++ TOI_USERMODE_HELPERS_ERR, ++ TOI_CANT_USE_ALT_RESUME, ++ TOI_HEADER_TOO_BIG, ++ TOI_NUM_RESULT_STATES /* Used in printing debug info only */ ++}; ++ ++extern unsigned long toi_result; ++ ++#define set_result_state(bit) (test_and_set_bit(bit, &toi_result)) ++#define set_abort_result(bit) (test_and_set_bit(TOI_ABORTED, &toi_result), \ ++ test_and_set_bit(bit, &toi_result)) ++#define clear_result_state(bit) (test_and_clear_bit(bit, &toi_result)) ++#define test_result_state(bit) (test_bit(bit, &toi_result)) ++ ++/* == Debug sections and levels == */ ++ ++/* debugging levels. */ ++enum { ++ TOI_STATUS = 0, ++ TOI_ERROR = 2, ++ TOI_LOW, ++ TOI_MEDIUM, ++ TOI_HIGH, ++ TOI_VERBOSE, ++}; ++ ++enum { ++ TOI_ANY_SECTION, ++ TOI_EAT_MEMORY, ++ TOI_IO, ++ TOI_HEADER, ++ TOI_WRITER, ++ TOI_MEMORY, ++}; ++ ++#define set_debug_state(bit) (test_and_set_bit(bit, &toi_bkd.toi_debug_state)) ++#define clear_debug_state(bit) \ ++ (test_and_clear_bit(bit, &toi_bkd.toi_debug_state)) ++#define test_debug_state(bit) (test_bit(bit, &toi_bkd.toi_debug_state)) ++ ++/* == Steps in hibernating == */ ++ ++enum { ++ STEP_HIBERNATE_PREPARE_IMAGE, ++ STEP_HIBERNATE_SAVE_IMAGE, ++ STEP_HIBERNATE_POWERDOWN, ++ STEP_RESUME_CAN_RESUME, ++ STEP_RESUME_LOAD_PS1, ++ STEP_RESUME_DO_RESTORE, ++ STEP_RESUME_READ_PS2, ++ STEP_RESUME_GO, ++ STEP_RESUME_ALT_IMAGE, ++ STEP_CLEANUP, ++ STEP_QUIET_CLEANUP ++}; ++ ++/* == TuxOnIce states == ++ (see also include/linux/suspend.h) */ ++ ++#define get_toi_state() (toi_state) ++#define restore_toi_state(saved_state) \ ++ do { toi_state = saved_state; } while (0) ++ ++/* == Module support == */ ++ ++struct toi_core_fns { ++ int (*post_context_save)(void); ++ unsigned long (*get_nonconflicting_page)(void); ++ int (*try_hibernate)(void); ++ void (*try_resume)(void); ++}; ++ ++extern struct toi_core_fns *toi_core_fns; ++ ++/* == All else == */ ++#define KB(x) ((x) << (PAGE_SHIFT - 10)) ++#define MB(x) ((x) >> (20 - PAGE_SHIFT)) ++ ++extern int toi_start_anything(int toi_or_resume); ++extern void toi_finish_anything(int toi_or_resume); ++ ++extern int save_image_part1(void); ++extern int toi_atomic_restore(void); ++ ++extern int toi_try_hibernate(void); ++extern void toi_try_resume(void); ++ ++extern int __toi_post_context_save(void); ++ ++extern unsigned int nr_hibernates; ++extern char alt_resume_param[256]; ++ ++extern void copyback_post(void); ++extern int toi_hibernate(void); ++extern unsigned long extra_pd1_pages_used; ++ ++#define SECTOR_SIZE 512 ++ ++extern void toi_early_boot_message(int can_erase_image, int default_answer, ++ char *warning_reason, ...); ++ ++extern int do_check_can_resume(void); ++extern int do_toi_step(int step); ++extern int toi_launch_userspace_program(char *command, int channel_no, ++ enum umh_wait wait, int debug); ++ ++extern char tuxonice_signature[9]; ++extern int freezer_sync; ++#endif +diff --git a/kernel/power/tuxonice_alloc.c b/kernel/power/tuxonice_alloc.c +new file mode 100644 +index 0000000..891c5b2 +--- /dev/null ++++ b/kernel/power/tuxonice_alloc.c +@@ -0,0 +1,313 @@ ++/* ++ * kernel/power/tuxonice_alloc.c ++ * ++ * Copyright (C) 2008-2010 Nigel Cunningham (nigel at tuxonice net) ++ * ++ * This file is released under the GPLv2. ++ * ++ */ ++ ++#ifdef CONFIG_PM_DEBUG ++#include ++#include ++#include "tuxonice_modules.h" ++#include "tuxonice_alloc.h" ++#include "tuxonice_sysfs.h" ++#include "tuxonice.h" ++ ++#define TOI_ALLOC_PATHS 40 ++ ++static DEFINE_MUTEX(toi_alloc_mutex); ++ ++static struct toi_module_ops toi_alloc_ops; ++ ++static int toi_fail_num; ++static int trace_allocs; ++static atomic_t toi_alloc_count[TOI_ALLOC_PATHS], ++ toi_free_count[TOI_ALLOC_PATHS], ++ toi_test_count[TOI_ALLOC_PATHS], ++ toi_fail_count[TOI_ALLOC_PATHS]; ++static int toi_cur_allocd[TOI_ALLOC_PATHS], toi_max_allocd[TOI_ALLOC_PATHS]; ++static int cur_allocd, max_allocd; ++ ++static char *toi_alloc_desc[TOI_ALLOC_PATHS] = { ++ "", /* 0 */ ++ "get_io_info_struct", ++ "extent", ++ "extent (loading chain)", ++ "userui channel", ++ "userui arg", /* 5 */ ++ "attention list metadata", ++ "extra pagedir memory metadata", ++ "bdev metadata", ++ "extra pagedir memory", ++ "header_locations_read", /* 10 */ ++ "bio queue", ++ "prepare_readahead", ++ "i/o buffer", ++ "writer buffer in bio_init", ++ "checksum buffer", /* 15 */ ++ "compression buffer", ++ "filewriter signature op", ++ "set resume param alloc1", ++ "set resume param alloc2", ++ "debugging info buffer", /* 20 */ ++ "check can resume buffer", ++ "write module config buffer", ++ "read module config buffer", ++ "write image header buffer", ++ "read pageset1 buffer", /* 25 */ ++ "get_have_image_data buffer", ++ "checksum page", ++ "worker rw loop", ++ "get nonconflicting page", ++ "ps1 load addresses", /* 30 */ ++ "remove swap image", ++ "swap image exists", ++ "swap parse sig location", ++ "sysfs kobj", ++ "swap mark resume attempted buffer", /* 35 */ ++ "cluster member", ++ "boot kernel data buffer", ++ "setting swap signature", ++ "block i/o bdev struct" ++}; ++ ++#define MIGHT_FAIL(FAIL_NUM, FAIL_VAL) \ ++ do { \ ++ BUG_ON(FAIL_NUM >= TOI_ALLOC_PATHS); \ ++ \ ++ if (FAIL_NUM == toi_fail_num) { \ ++ atomic_inc(&toi_test_count[FAIL_NUM]); \ ++ toi_fail_num = 0; \ ++ return FAIL_VAL; \ ++ } \ ++ } while (0) ++ ++static void alloc_update_stats(int fail_num, void *result, int size) ++{ ++ if (!result) { ++ atomic_inc(&toi_fail_count[fail_num]); ++ return; ++ } ++ ++ atomic_inc(&toi_alloc_count[fail_num]); ++ if (unlikely(test_action_state(TOI_GET_MAX_MEM_ALLOCD))) { ++ mutex_lock(&toi_alloc_mutex); ++ toi_cur_allocd[fail_num]++; ++ cur_allocd += size; ++ if (unlikely(cur_allocd > max_allocd)) { ++ int i; ++ ++ for (i = 0; i < TOI_ALLOC_PATHS; i++) ++ toi_max_allocd[i] = toi_cur_allocd[i]; ++ max_allocd = cur_allocd; ++ } ++ mutex_unlock(&toi_alloc_mutex); ++ } ++} ++ ++static void free_update_stats(int fail_num, int size) ++{ ++ BUG_ON(fail_num >= TOI_ALLOC_PATHS); ++ atomic_inc(&toi_free_count[fail_num]); ++ if (unlikely(atomic_read(&toi_free_count[fail_num]) > ++ atomic_read(&toi_alloc_count[fail_num]))) ++ dump_stack(); ++ if (unlikely(test_action_state(TOI_GET_MAX_MEM_ALLOCD))) { ++ mutex_lock(&toi_alloc_mutex); ++ cur_allocd -= size; ++ toi_cur_allocd[fail_num]--; ++ mutex_unlock(&toi_alloc_mutex); ++ } ++} ++ ++void *toi_kzalloc(int fail_num, size_t size, gfp_t flags) ++{ ++ void *result; ++ ++ if (toi_alloc_ops.enabled) ++ MIGHT_FAIL(fail_num, NULL); ++ result = kzalloc(size, flags); ++ if (toi_alloc_ops.enabled) ++ alloc_update_stats(fail_num, result, size); ++ if (fail_num == trace_allocs) ++ dump_stack(); ++ return result; ++} ++EXPORT_SYMBOL_GPL(toi_kzalloc); ++ ++unsigned long toi_get_free_pages(int fail_num, gfp_t mask, ++ unsigned int order) ++{ ++ unsigned long result; ++ ++ if (toi_alloc_ops.enabled) ++ MIGHT_FAIL(fail_num, 0); ++ result = __get_free_pages(mask, order); ++ if (toi_alloc_ops.enabled) ++ alloc_update_stats(fail_num, (void *) result, ++ PAGE_SIZE << order); ++ if (fail_num == trace_allocs) ++ dump_stack(); ++ return result; ++} ++EXPORT_SYMBOL_GPL(toi_get_free_pages); ++ ++struct page *toi_alloc_page(int fail_num, gfp_t mask) ++{ ++ struct page *result; ++ ++ if (toi_alloc_ops.enabled) ++ MIGHT_FAIL(fail_num, NULL); ++ result = alloc_page(mask); ++ if (toi_alloc_ops.enabled) ++ alloc_update_stats(fail_num, (void *) result, PAGE_SIZE); ++ if (fail_num == trace_allocs) ++ dump_stack(); ++ return result; ++} ++EXPORT_SYMBOL_GPL(toi_alloc_page); ++ ++unsigned long toi_get_zeroed_page(int fail_num, gfp_t mask) ++{ ++ unsigned long result; ++ ++ if (fail_num == trace_allocs) ++ dump_stack(); ++ if (toi_alloc_ops.enabled) ++ MIGHT_FAIL(fail_num, 0); ++ result = get_zeroed_page(mask); ++ if (toi_alloc_ops.enabled) ++ alloc_update_stats(fail_num, (void *) result, PAGE_SIZE); ++ if (fail_num == trace_allocs) ++ dump_stack(); ++ return result; ++} ++EXPORT_SYMBOL_GPL(toi_get_zeroed_page); ++ ++void toi_kfree(int fail_num, const void *arg, int size) ++{ ++ if (arg && toi_alloc_ops.enabled) ++ free_update_stats(fail_num, size); ++ ++ if (fail_num == trace_allocs) ++ dump_stack(); ++ kfree(arg); ++} ++EXPORT_SYMBOL_GPL(toi_kfree); ++ ++void toi_free_page(int fail_num, unsigned long virt) ++{ ++ if (virt && toi_alloc_ops.enabled) ++ free_update_stats(fail_num, PAGE_SIZE); ++ ++ if (fail_num == trace_allocs) ++ dump_stack(); ++ free_page(virt); ++} ++EXPORT_SYMBOL_GPL(toi_free_page); ++ ++void toi__free_page(int fail_num, struct page *page) ++{ ++ if (page && toi_alloc_ops.enabled) ++ free_update_stats(fail_num, PAGE_SIZE); ++ ++ if (fail_num == trace_allocs) ++ dump_stack(); ++ __free_page(page); ++} ++EXPORT_SYMBOL_GPL(toi__free_page); ++ ++void toi_free_pages(int fail_num, struct page *page, int order) ++{ ++ if (page && toi_alloc_ops.enabled) ++ free_update_stats(fail_num, PAGE_SIZE << order); ++ ++ if (fail_num == trace_allocs) ++ dump_stack(); ++ __free_pages(page, order); ++} ++ ++void toi_alloc_print_debug_stats(void) ++{ ++ int i, header_done = 0; ++ ++ if (!toi_alloc_ops.enabled) ++ return; ++ ++ for (i = 0; i < TOI_ALLOC_PATHS; i++) ++ if (atomic_read(&toi_alloc_count[i]) != ++ atomic_read(&toi_free_count[i])) { ++ if (!header_done) { ++ printk(KERN_INFO "Idx Allocs Frees Tests " ++ " Fails Max Description\n"); ++ header_done = 1; ++ } ++ ++ printk(KERN_INFO "%3d %7d %7d %7d %7d %7d %s\n", i, ++ atomic_read(&toi_alloc_count[i]), ++ atomic_read(&toi_free_count[i]), ++ atomic_read(&toi_test_count[i]), ++ atomic_read(&toi_fail_count[i]), ++ toi_max_allocd[i], ++ toi_alloc_desc[i]); ++ } ++} ++EXPORT_SYMBOL_GPL(toi_alloc_print_debug_stats); ++ ++static int toi_alloc_initialise(int starting_cycle) ++{ ++ int i; ++ ++ if (!starting_cycle) ++ return 0; ++ ++ for (i = 0; i < TOI_ALLOC_PATHS; i++) { ++ atomic_set(&toi_alloc_count[i], 0); ++ atomic_set(&toi_free_count[i], 0); ++ atomic_set(&toi_test_count[i], 0); ++ atomic_set(&toi_fail_count[i], 0); ++ toi_cur_allocd[i] = 0; ++ toi_max_allocd[i] = 0; ++ }; ++ ++ max_allocd = 0; ++ cur_allocd = 0; ++ return 0; ++} ++ ++static struct toi_sysfs_data sysfs_params[] = { ++ SYSFS_INT("failure_test", SYSFS_RW, &toi_fail_num, 0, 99, 0, NULL), ++ SYSFS_INT("trace", SYSFS_RW, &trace_allocs, 0, TOI_ALLOC_PATHS, 0, ++ NULL), ++ SYSFS_BIT("find_max_mem_allocated", SYSFS_RW, &toi_bkd.toi_action, ++ TOI_GET_MAX_MEM_ALLOCD, 0), ++ SYSFS_INT("enabled", SYSFS_RW, &toi_alloc_ops.enabled, 0, 1, 0, ++ NULL) ++}; ++ ++static struct toi_module_ops toi_alloc_ops = { ++ .type = MISC_HIDDEN_MODULE, ++ .name = "allocation debugging", ++ .directory = "alloc", ++ .module = THIS_MODULE, ++ .early = 1, ++ .initialise = toi_alloc_initialise, ++ ++ .sysfs_data = sysfs_params, ++ .num_sysfs_entries = sizeof(sysfs_params) / ++ sizeof(struct toi_sysfs_data), ++}; ++ ++int toi_alloc_init(void) ++{ ++ int result = toi_register_module(&toi_alloc_ops); ++ return result; ++} ++ ++void toi_alloc_exit(void) ++{ ++ toi_unregister_module(&toi_alloc_ops); ++} ++#endif +diff --git a/kernel/power/tuxonice_alloc.h b/kernel/power/tuxonice_alloc.h +new file mode 100644 +index 0000000..6cd19ba +--- /dev/null ++++ b/kernel/power/tuxonice_alloc.h +@@ -0,0 +1,51 @@ ++/* ++ * kernel/power/tuxonice_alloc.h ++ * ++ * Copyright (C) 2008-2010 Nigel Cunningham (nigel at tuxonice net) ++ * ++ * This file is released under the GPLv2. ++ * ++ */ ++ ++#define TOI_WAIT_GFP (GFP_NOFS | __GFP_NOWARN) ++#define TOI_ATOMIC_GFP (GFP_ATOMIC | __GFP_NOWARN) ++ ++#ifdef CONFIG_PM_DEBUG ++extern void *toi_kzalloc(int fail_num, size_t size, gfp_t flags); ++extern void toi_kfree(int fail_num, const void *arg, int size); ++ ++extern unsigned long toi_get_free_pages(int fail_num, gfp_t mask, ++ unsigned int order); ++#define toi_get_free_page(FAIL_NUM, MASK) toi_get_free_pages(FAIL_NUM, MASK, 0) ++extern unsigned long toi_get_zeroed_page(int fail_num, gfp_t mask); ++extern void toi_free_page(int fail_num, unsigned long buf); ++extern void toi__free_page(int fail_num, struct page *page); ++extern void toi_free_pages(int fail_num, struct page *page, int order); ++extern struct page *toi_alloc_page(int fail_num, gfp_t mask); ++extern int toi_alloc_init(void); ++extern void toi_alloc_exit(void); ++ ++extern void toi_alloc_print_debug_stats(void); ++ ++#else /* CONFIG_PM_DEBUG */ ++ ++#define toi_kzalloc(FAIL, SIZE, FLAGS) (kzalloc(SIZE, FLAGS)) ++#define toi_kfree(FAIL, ALLOCN, SIZE) (kfree(ALLOCN)) ++ ++#define toi_get_free_pages(FAIL, FLAGS, ORDER) __get_free_pages(FLAGS, ORDER) ++#define toi_get_free_page(FAIL, FLAGS) __get_free_page(FLAGS) ++#define toi_get_zeroed_page(FAIL, FLAGS) get_zeroed_page(FLAGS) ++#define toi_free_page(FAIL, ALLOCN) do { free_page(ALLOCN); } while (0) ++#define toi__free_page(FAIL, PAGE) __free_page(PAGE) ++#define toi_free_pages(FAIL, PAGE, ORDER) __free_pages(PAGE, ORDER) ++#define toi_alloc_page(FAIL, MASK) alloc_page(MASK) ++static inline int toi_alloc_init(void) ++{ ++ return 0; ++} ++ ++static inline void toi_alloc_exit(void) { } ++ ++static inline void toi_alloc_print_debug_stats(void) { } ++ ++#endif +diff --git a/kernel/power/tuxonice_atomic_copy.c b/kernel/power/tuxonice_atomic_copy.c +new file mode 100644 +index 0000000..1807f8b +--- /dev/null ++++ b/kernel/power/tuxonice_atomic_copy.c +@@ -0,0 +1,418 @@ ++/* ++ * kernel/power/tuxonice_atomic_copy.c ++ * ++ * Copyright 2004-2010 Nigel Cunningham (nigel at tuxonice net) ++ * ++ * Distributed under GPLv2. ++ * ++ * Routines for doing the atomic save/restore. ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include "tuxonice.h" ++#include "tuxonice_storage.h" ++#include "tuxonice_power_off.h" ++#include "tuxonice_ui.h" ++#include "tuxonice_io.h" ++#include "tuxonice_prepare_image.h" ++#include "tuxonice_pageflags.h" ++#include "tuxonice_checksum.h" ++#include "tuxonice_builtin.h" ++#include "tuxonice_atomic_copy.h" ++#include "tuxonice_alloc.h" ++#include "tuxonice_modules.h" ++ ++unsigned long extra_pd1_pages_used; ++ ++/** ++ * free_pbe_list - free page backup entries used by the atomic copy code. ++ * @list: List to free. ++ * @highmem: Whether the list is in highmem. ++ * ++ * Normally, this function isn't used. If, however, we need to abort before ++ * doing the atomic copy, we use this to free the pbes previously allocated. ++ **/ ++static void free_pbe_list(struct pbe **list, int highmem) ++{ ++ while (*list) { ++ int i; ++ struct pbe *free_pbe, *next_page = NULL; ++ struct page *page; ++ ++ if (highmem) { ++ page = (struct page *) *list; ++ free_pbe = (struct pbe *) kmap(page); ++ } else { ++ page = virt_to_page(*list); ++ free_pbe = *list; ++ } ++ ++ for (i = 0; i < PBES_PER_PAGE; i++) { ++ if (!free_pbe) ++ break; ++ if (highmem) ++ toi__free_page(29, free_pbe->address); ++ else ++ toi_free_page(29, ++ (unsigned long) free_pbe->address); ++ free_pbe = free_pbe->next; ++ } ++ ++ if (highmem) { ++ if (free_pbe) ++ next_page = free_pbe; ++ kunmap(page); ++ } else { ++ if (free_pbe) ++ next_page = free_pbe; ++ } ++ ++ toi__free_page(29, page); ++ *list = (struct pbe *) next_page; ++ }; ++} ++ ++/** ++ * copyback_post - post atomic-restore actions ++ * ++ * After doing the atomic restore, we have a few more things to do: ++ * 1) We want to retain some values across the restore, so we now copy ++ * these from the nosave variables to the normal ones. ++ * 2) Set the status flags. ++ * 3) Resume devices. ++ * 4) Tell userui so it can redraw & restore settings. ++ * 5) Reread the page cache. ++ **/ ++void copyback_post(void) ++{ ++ struct toi_boot_kernel_data *bkd = ++ (struct toi_boot_kernel_data *) boot_kernel_data_buffer; ++ ++ /* ++ * The boot kernel's data may be larger (newer version) or ++ * smaller (older version) than ours. Copy the minimum ++ * of the two sizes, so that we don't overwrite valid values ++ * from pre-atomic copy. ++ */ ++ ++ memcpy(&toi_bkd, (char *) boot_kernel_data_buffer, ++ min_t(int, sizeof(struct toi_boot_kernel_data), ++ bkd->size)); ++ ++ if (toi_activate_storage(1)) ++ panic("Failed to reactivate our storage."); ++ ++ toi_post_atomic_restore_modules(bkd); ++ ++ toi_cond_pause(1, "About to reload secondary pagedir."); ++ ++ if (read_pageset2(0)) ++ panic("Unable to successfully reread the page cache."); ++ ++ /* ++ * If the user wants to sleep again after resuming from full-off, ++ * it's most likely to be in order to suspend to ram, so we'll ++ * do this check after loading pageset2, to give them the fastest ++ * wakeup when they are ready to use the computer again. ++ */ ++ toi_check_resleep(); ++} ++ ++/** ++ * toi_copy_pageset1 - do the atomic copy of pageset1 ++ * ++ * Make the atomic copy of pageset1. We can't use copy_page (as we once did) ++ * because we can't be sure what side effects it has. On my old Duron, with ++ * 3DNOW, kernel_fpu_begin increments preempt count, making our preempt ++ * count at resume time 4 instead of 3. ++ * ++ * We don't want to call kmap_atomic unconditionally because it has the side ++ * effect of incrementing the preempt count, which will leave it one too high ++ * post resume (the page containing the preempt count will be copied after ++ * its incremented. This is essentially the same problem. ++ **/ ++void toi_copy_pageset1(void) ++{ ++ int i; ++ unsigned long source_index, dest_index; ++ ++ memory_bm_position_reset(pageset1_map); ++ memory_bm_position_reset(pageset1_copy_map); ++ ++ source_index = memory_bm_next_pfn(pageset1_map); ++ dest_index = memory_bm_next_pfn(pageset1_copy_map); ++ ++ for (i = 0; i < pagedir1.size; i++) { ++ unsigned long *origvirt, *copyvirt; ++ struct page *origpage, *copypage; ++ int loop = (PAGE_SIZE / sizeof(unsigned long)) - 1, ++ was_present1, was_present2; ++ ++ origpage = pfn_to_page(source_index); ++ copypage = pfn_to_page(dest_index); ++ ++ origvirt = PageHighMem(origpage) ? ++ kmap_atomic(origpage, KM_USER0) : ++ page_address(origpage); ++ ++ copyvirt = PageHighMem(copypage) ? ++ kmap_atomic(copypage, KM_USER1) : ++ page_address(copypage); ++ ++ was_present1 = kernel_page_present(origpage); ++ if (!was_present1) ++ kernel_map_pages(origpage, 1, 1); ++ ++ was_present2 = kernel_page_present(copypage); ++ if (!was_present2) ++ kernel_map_pages(copypage, 1, 1); ++ ++ while (loop >= 0) { ++ *(copyvirt + loop) = *(origvirt + loop); ++ loop--; ++ } ++ ++ if (!was_present1) ++ kernel_map_pages(origpage, 1, 0); ++ ++ if (!was_present2) ++ kernel_map_pages(copypage, 1, 0); ++ ++ if (PageHighMem(origpage)) ++ kunmap_atomic(origvirt, KM_USER0); ++ ++ if (PageHighMem(copypage)) ++ kunmap_atomic(copyvirt, KM_USER1); ++ ++ source_index = memory_bm_next_pfn(pageset1_map); ++ dest_index = memory_bm_next_pfn(pageset1_copy_map); ++ } ++} ++ ++/** ++ * __toi_post_context_save - steps after saving the cpu context ++ * ++ * Steps taken after saving the CPU state to make the actual ++ * atomic copy. ++ * ++ * Called from swsusp_save in snapshot.c via toi_post_context_save. ++ **/ ++int __toi_post_context_save(void) ++{ ++ unsigned long old_ps1_size = pagedir1.size; ++ ++ check_checksums(); ++ ++ free_checksum_pages(); ++ ++ toi_recalculate_image_contents(1); ++ ++ extra_pd1_pages_used = pagedir1.size > old_ps1_size ? ++ pagedir1.size - old_ps1_size : 0; ++ ++ if (extra_pd1_pages_used > extra_pd1_pages_allowance) { ++ printk(KERN_INFO "Pageset1 has grown by %lu pages. " ++ "extra_pages_allowance is currently only %lu.\n", ++ pagedir1.size - old_ps1_size, ++ extra_pd1_pages_allowance); ++ ++ /* ++ * Highlevel code will see this, clear the state and ++ * retry if we haven't already done so twice. ++ */ ++ set_abort_result(TOI_EXTRA_PAGES_ALLOW_TOO_SMALL); ++ return 1; ++ } ++ ++ if (!test_action_state(TOI_TEST_FILTER_SPEED) && ++ !test_action_state(TOI_TEST_BIO)) ++ toi_copy_pageset1(); ++ ++ return 0; ++} ++ ++/** ++ * toi_hibernate - high level code for doing the atomic copy ++ * ++ * High-level code which prepares to do the atomic copy. Loosely based ++ * on the swsusp version, but with the following twists: ++ * - We set toi_running so the swsusp code uses our code paths. ++ * - We give better feedback regarding what goes wrong if there is a ++ * problem. ++ * - We use an extra function to call the assembly, just in case this code ++ * is in a module (return address). ++ **/ ++int toi_hibernate(void) ++{ ++ int error; ++ ++ toi_running = 1; /* For the swsusp code we use :< */ ++ ++ error = toi_lowlevel_builtin(); ++ ++ toi_running = 0; ++ return error; ++} ++ ++/** ++ * toi_atomic_restore - prepare to do the atomic restore ++ * ++ * Get ready to do the atomic restore. This part gets us into the same ++ * state we are in prior to do calling do_toi_lowlevel while ++ * hibernating: hot-unplugging secondary cpus and freeze processes, ++ * before starting the thread that will do the restore. ++ **/ ++int toi_atomic_restore(void) ++{ ++ int error; ++ ++ toi_running = 1; ++ ++ toi_prepare_status(DONT_CLEAR_BAR, "Atomic restore."); ++ ++ memcpy(&toi_bkd.toi_nosave_commandline, saved_command_line, ++ strlen(saved_command_line)); ++ ++ toi_pre_atomic_restore_modules(&toi_bkd); ++ ++ if (add_boot_kernel_data_pbe()) ++ goto Failed; ++ ++ toi_prepare_status(DONT_CLEAR_BAR, "Doing atomic copy/restore."); ++ ++ if (toi_go_atomic(PMSG_QUIESCE, 0)) ++ goto Failed; ++ ++ /* We'll ignore saved state, but this gets preempt count (etc) right */ ++ save_processor_state(); ++ ++ error = swsusp_arch_resume(); ++ /* ++ * Code below is only ever reached in case of failure. Otherwise ++ * execution continues at place where swsusp_arch_suspend was called. ++ * ++ * We don't know whether it's safe to continue (this shouldn't happen), ++ * so lets err on the side of caution. ++ */ ++ BUG(); ++ ++Failed: ++ free_pbe_list(&restore_pblist, 0); ++#ifdef CONFIG_HIGHMEM ++ free_pbe_list(&restore_highmem_pblist, 1); ++#endif ++ toi_running = 0; ++ return 1; ++} ++ ++/** ++ * toi_go_atomic - do the actual atomic copy/restore ++ * @state: The state to use for dpm_suspend_start & power_down calls. ++ * @suspend_time: Whether we're suspending or resuming. ++ **/ ++int toi_go_atomic(pm_message_t state, int suspend_time) ++{ ++ if (suspend_time && platform_begin(1)) { ++ set_abort_result(TOI_PLATFORM_PREP_FAILED); ++ return 1; ++ } ++ ++ suspend_console(); ++ ++ if (dpm_suspend_start(state)) { ++ set_abort_result(TOI_DEVICE_REFUSED); ++ toi_end_atomic(ATOMIC_STEP_DEVICE_RESUME, suspend_time, 3); ++ return 1; ++ } ++ ++ if (suspend_time && arch_prepare_suspend()) { ++ set_abort_result(TOI_ARCH_PREPARE_FAILED); ++ toi_end_atomic(ATOMIC_STEP_DEVICE_RESUME, suspend_time, 1); ++ return 1; ++ } ++ ++ /* At this point, dpm_suspend_start() has been called, but *not* ++ * dpm_suspend_noirq(). We *must* dpm_suspend_noirq() now. ++ * Otherwise, drivers for some devices (e.g. interrupt controllers) ++ * become desynchronized with the actual state of the hardware ++ * at resume time, and evil weirdness ensues. ++ */ ++ ++ if (dpm_suspend_noirq(state)) { ++ set_abort_result(TOI_DEVICE_REFUSED); ++ toi_end_atomic(ATOMIC_STEP_DEVICE_RESUME, suspend_time, 1); ++ return 1; ++ } ++ ++ if (suspend_time && platform_pre_snapshot(1)) { ++ set_abort_result(TOI_PRE_SNAPSHOT_FAILED); ++ toi_end_atomic(ATOMIC_STEP_PLATFORM_FINISH, suspend_time, 1); ++ return 1; ++ } ++ ++ if (!suspend_time && platform_pre_restore(1)) { ++ set_abort_result(TOI_PRE_RESTORE_FAILED); ++ toi_end_atomic(ATOMIC_STEP_PLATFORM_FINISH, suspend_time, 1); ++ return 1; ++ } ++ ++ if (test_action_state(TOI_LATE_CPU_HOTPLUG)) { ++ if (disable_nonboot_cpus()) { ++ set_abort_result(TOI_CPU_HOTPLUG_FAILED); ++ toi_end_atomic(ATOMIC_STEP_CPU_HOTPLUG, ++ suspend_time, 1); ++ return 1; ++ } ++ } ++ ++ local_irq_disable(); ++ ++ if (sysdev_suspend(state)) { ++ set_abort_result(TOI_SYSDEV_REFUSED); ++ toi_end_atomic(ATOMIC_STEP_IRQS, suspend_time, 1); ++ return 1; ++ } ++ ++ return 0; ++} ++ ++/** ++ * toi_end_atomic - post atomic copy/restore routines ++ * @stage: What step to start at. ++ * @suspend_time: Whether we're suspending or resuming. ++ * @error: Whether we're recovering from an error. ++ **/ ++void toi_end_atomic(int stage, int suspend_time, int error) ++{ ++ switch (stage) { ++ case ATOMIC_ALL_STEPS: ++ if (!suspend_time) ++ platform_leave(1); ++ sysdev_resume(); ++ case ATOMIC_STEP_IRQS: ++ local_irq_enable(); ++ case ATOMIC_STEP_CPU_HOTPLUG: ++ if (test_action_state(TOI_LATE_CPU_HOTPLUG)) ++ enable_nonboot_cpus(); ++ platform_restore_cleanup(1); ++ case ATOMIC_STEP_PLATFORM_FINISH: ++ platform_finish(1); ++ dpm_resume_noirq(suspend_time ? ++ (error ? PMSG_RECOVER : PMSG_THAW) : PMSG_RESTORE); ++ case ATOMIC_STEP_DEVICE_RESUME: ++ if (suspend_time && (error & 2)) ++ platform_recover(1); ++ dpm_resume_end(suspend_time ? ++ ((error & 1) ? PMSG_RECOVER : PMSG_THAW) : ++ PMSG_RESTORE); ++ resume_console(); ++ platform_end(1); ++ ++ toi_prepare_status(DONT_CLEAR_BAR, "Post atomic."); ++ } ++} +diff --git a/kernel/power/tuxonice_atomic_copy.h b/kernel/power/tuxonice_atomic_copy.h +new file mode 100644 +index 0000000..e61b27b +--- /dev/null ++++ b/kernel/power/tuxonice_atomic_copy.h +@@ -0,0 +1,20 @@ ++/* ++ * kernel/power/tuxonice_atomic_copy.h ++ * ++ * Copyright 2008-2010 Nigel Cunningham (nigel at tuxonice net) ++ * ++ * Distributed under GPLv2. ++ * ++ * Routines for doing the atomic save/restore. ++ */ ++ ++enum { ++ ATOMIC_ALL_STEPS, ++ ATOMIC_STEP_IRQS, ++ ATOMIC_STEP_CPU_HOTPLUG, ++ ATOMIC_STEP_PLATFORM_FINISH, ++ ATOMIC_STEP_DEVICE_RESUME, ++}; ++ ++int toi_go_atomic(pm_message_t state, int toi_time); ++void toi_end_atomic(int stage, int toi_time, int error); +diff --git a/kernel/power/tuxonice_bio.h b/kernel/power/tuxonice_bio.h +new file mode 100644 +index 0000000..9627ccc +--- /dev/null ++++ b/kernel/power/tuxonice_bio.h +@@ -0,0 +1,77 @@ ++/* ++ * kernel/power/tuxonice_bio.h ++ * ++ * Copyright (C) 2004-2010 Nigel Cunningham (nigel at tuxonice net) ++ * ++ * Distributed under GPLv2. ++ * ++ * This file contains declarations for functions exported from ++ * tuxonice_bio.c, which contains low level io functions. ++ */ ++ ++#include ++#include "tuxonice_extent.h" ++ ++void toi_put_extent_chain(struct hibernate_extent_chain *chain); ++int toi_add_to_extent_chain(struct hibernate_extent_chain *chain, ++ unsigned long start, unsigned long end); ++ ++struct hibernate_extent_saved_state { ++ int extent_num; ++ struct hibernate_extent *extent_ptr; ++ unsigned long offset; ++}; ++ ++struct toi_bdev_info { ++ struct toi_bdev_info *next; ++ struct hibernate_extent_chain blocks; ++ struct block_device *bdev; ++ struct toi_module_ops *allocator; ++ int allocator_index; ++ struct hibernate_extent_chain allocations; ++ char name[266]; /* "swap on " or "file " + up to 256 chars */ ++ ++ /* Saved in header */ ++ char uuid[17]; ++ dev_t dev_t; ++ int prio; ++ int bmap_shift; ++ int blocks_per_page; ++ unsigned long pages_used; ++ struct hibernate_extent_saved_state saved_state[4]; ++}; ++ ++struct toi_extent_iterate_state { ++ struct toi_bdev_info *current_chain; ++ int num_chains; ++ int saved_chain_number[4]; ++ struct toi_bdev_info *saved_chain_ptr[4]; ++}; ++ ++/* ++ * Our exported interface so the swapwriter and filewriter don't ++ * need these functions duplicated. ++ */ ++struct toi_bio_ops { ++ int (*bdev_page_io) (int rw, struct block_device *bdev, long pos, ++ struct page *page); ++ int (*register_storage)(struct toi_bdev_info *new); ++ void (*free_storage)(void); ++}; ++ ++struct toi_allocator_ops { ++ unsigned long (*toi_swap_storage_available) (void); ++}; ++ ++extern struct toi_bio_ops toi_bio_ops; ++ ++extern char *toi_writer_buffer; ++extern int toi_writer_buffer_posn; ++ ++struct toi_bio_allocator_ops { ++ int (*register_storage) (void); ++ unsigned long (*storage_available)(void); ++ int (*allocate_storage) (struct toi_bdev_info *, unsigned long); ++ int (*bmap) (struct toi_bdev_info *); ++ void (*free_storage) (struct toi_bdev_info *); ++}; +diff --git a/kernel/power/tuxonice_bio_chains.c b/kernel/power/tuxonice_bio_chains.c +new file mode 100644 +index 0000000..2ac2042 +--- /dev/null ++++ b/kernel/power/tuxonice_bio_chains.c +@@ -0,0 +1,1044 @@ ++/* ++ * kernel/power/tuxonice_bio_devinfo.c ++ * ++ * Copyright (C) 2009-2010 Nigel Cunningham (nigel at tuxonice net) ++ * ++ * Distributed under GPLv2. ++ * ++ */ ++ ++#include ++#include "tuxonice_bio.h" ++#include "tuxonice_bio_internal.h" ++#include "tuxonice_alloc.h" ++#include "tuxonice_ui.h" ++#include "tuxonice.h" ++#include "tuxonice_io.h" ++ ++static struct toi_bdev_info *prio_chain_head; ++static int num_chains; ++ ++/* Pointer to current entry being loaded/saved. */ ++struct toi_extent_iterate_state toi_writer_posn; ++ ++#define metadata_size (sizeof(struct toi_bdev_info) - \ ++ offsetof(struct toi_bdev_info, uuid)) ++ ++/* ++ * After section 0 (header) comes 2 => next_section[0] = 2 ++ */ ++static int next_section[3] = { 2, 3, 1 }; ++ ++/** ++ * dump_block_chains - print the contents of the bdev info array. ++ **/ ++void dump_block_chains(void) ++{ ++ int i = 0; ++ int j; ++ struct toi_bdev_info *cur_chain = prio_chain_head; ++ ++ while (cur_chain) { ++ struct hibernate_extent *this = cur_chain->blocks.first; ++ ++ printk(KERN_DEBUG "Chain %d (prio %d):", i, cur_chain->prio); ++ ++ while (this) { ++ printk(KERN_CONT " [%lu-%lu]%s", this->start, ++ this->end, this->next ? "," : ""); ++ this = this->next; ++ } ++ ++ printk("\n"); ++ cur_chain = cur_chain->next; ++ i++; ++ } ++ ++ printk(KERN_DEBUG "Saved states:\n"); ++ for (i = 0; i < 4; i++) { ++ printk(KERN_DEBUG "Slot %d: Chain %d.\n", ++ i, toi_writer_posn.saved_chain_number[i]); ++ ++ cur_chain = prio_chain_head; ++ j = 0; ++ while (cur_chain) { ++ printk(KERN_DEBUG " Chain %d: Extent %d. Offset %lu.\n", ++ j, cur_chain->saved_state[i].extent_num, ++ cur_chain->saved_state[i].offset); ++ cur_chain = cur_chain->next; ++ j++; ++ } ++ printk(KERN_CONT "\n"); ++ } ++} ++ ++/** ++ * ++ **/ ++static void toi_extent_chain_next(void) ++{ ++ struct toi_bdev_info *this = toi_writer_posn.current_chain; ++ ++ if (!this->blocks.current_extent) ++ return; ++ ++ if (this->blocks.current_offset == this->blocks.current_extent->end) { ++ if (this->blocks.current_extent->next) { ++ this->blocks.current_extent = ++ this->blocks.current_extent->next; ++ this->blocks.current_offset = ++ this->blocks.current_extent->start; ++ } else { ++ this->blocks.current_extent = NULL; ++ this->blocks.current_offset = 0; ++ } ++ } else ++ this->blocks.current_offset++; ++} ++ ++/** ++ * ++ */ ++ ++static struct toi_bdev_info *__find_next_chain_same_prio(void) ++{ ++ struct toi_bdev_info *start_chain = toi_writer_posn.current_chain; ++ struct toi_bdev_info *this = start_chain; ++ int orig_prio = this->prio; ++ ++ do { ++ this = this->next; ++ ++ if (!this) ++ this = prio_chain_head; ++ ++ /* Back on original chain? Use it again. */ ++ if (this == start_chain) ++ return start_chain; ++ ++ } while (!this->blocks.current_extent || this->prio != orig_prio); ++ ++ return this; ++} ++ ++static void find_next_chain(void) ++{ ++ struct toi_bdev_info *this; ++ ++ this = __find_next_chain_same_prio(); ++ ++ /* ++ * If we didn't get another chain of the same priority that we ++ * can use, look for the next priority. ++ */ ++ while (this && !this->blocks.current_extent) ++ this = this->next; ++ ++ toi_writer_posn.current_chain = this; ++} ++ ++/** ++ * toi_extent_state_next - go to the next extent ++ * @blocks: The number of values to progress. ++ * @stripe_mode: Whether to spread usage across all chains. ++ * ++ * Given a state, progress to the next valid entry. We may begin in an ++ * invalid state, as we do when invoked after extent_state_goto_start below. ++ * ++ * When using compression and expected_compression > 0, we let the image size ++ * be larger than storage, so we can validly run out of data to return. ++ **/ ++static unsigned long toi_extent_state_next(int blocks, int current_stream) ++{ ++ int i; ++ ++ if (!toi_writer_posn.current_chain) ++ return -ENOSPC; ++ ++ /* Assume chains always have lengths that are multiples of @blocks */ ++ for (i = 0; i < blocks; i++) ++ toi_extent_chain_next(); ++ ++ /* The header stream is not striped */ ++ if (current_stream || ++ !toi_writer_posn.current_chain->blocks.current_extent) ++ find_next_chain(); ++ ++ return toi_writer_posn.current_chain ? 0 : -ENOSPC; ++} ++ ++static void toi_insert_chain_in_prio_list(struct toi_bdev_info *this) ++{ ++ struct toi_bdev_info **prev_ptr; ++ struct toi_bdev_info *cur; ++ ++ /* Loop through the existing chain, finding where to insert it */ ++ prev_ptr = &prio_chain_head; ++ cur = prio_chain_head; ++ ++ while (cur && cur->prio >= this->prio) { ++ prev_ptr = &cur->next; ++ cur = cur->next; ++ } ++ ++ this->next = *prev_ptr; ++ *prev_ptr = this; ++ ++ this = prio_chain_head; ++ while (this) ++ this = this->next; ++ num_chains++; ++} ++ ++/** ++ * toi_extent_state_goto_start - reinitialize an extent chain iterator ++ * @state: Iterator to reinitialize ++ **/ ++void toi_extent_state_goto_start(void) ++{ ++ struct toi_bdev_info *this = prio_chain_head; ++ ++ while (this) { ++ toi_message(TOI_IO, TOI_VERBOSE, 0, ++ "Setting current extent to %p.", this->blocks.first); ++ this->blocks.current_extent = this->blocks.first; ++ if (this->blocks.current_extent) { ++ toi_message(TOI_IO, TOI_VERBOSE, 0, ++ "Setting current offset to %lu.", ++ this->blocks.current_extent->start); ++ this->blocks.current_offset = ++ this->blocks.current_extent->start; ++ } ++ ++ this = this->next; ++ } ++ ++ toi_message(TOI_IO, TOI_VERBOSE, 0, "Setting current chain to %p.", ++ prio_chain_head); ++ toi_writer_posn.current_chain = prio_chain_head; ++ toi_message(TOI_IO, TOI_VERBOSE, 0, "Leaving extent state goto start."); ++} ++ ++/** ++ * toi_extent_state_save - save state of the iterator ++ * @state: Current state of the chain ++ * @saved_state: Iterator to populate ++ * ++ * Given a state and a struct hibernate_extent_state_store, save the current ++ * position in a format that can be used with relocated chains (at ++ * resume time). ++ **/ ++void toi_extent_state_save(int slot) ++{ ++ struct toi_bdev_info *cur_chain = prio_chain_head; ++ struct hibernate_extent *extent; ++ struct hibernate_extent_saved_state *chain_state; ++ int i = 0; ++ ++ toi_message(TOI_IO, TOI_VERBOSE, 0, "toi_extent_state_save, slot %d.", ++ slot); ++ ++ if (!toi_writer_posn.current_chain) { ++ toi_message(TOI_IO, TOI_VERBOSE, 0, "No current chain => " ++ "chain_num = -1."); ++ toi_writer_posn.saved_chain_number[slot] = -1; ++ return; ++ } ++ ++ while (cur_chain) { ++ i++; ++ toi_message(TOI_IO, TOI_VERBOSE, 0, "Saving chain %d (%p) " ++ "state, slot %d.", i, cur_chain, slot); ++ ++ chain_state = &cur_chain->saved_state[slot]; ++ ++ chain_state->offset = cur_chain->blocks.current_offset; ++ ++ if (toi_writer_posn.current_chain == cur_chain) { ++ toi_writer_posn.saved_chain_number[slot] = i; ++ toi_message(TOI_IO, TOI_VERBOSE, 0, "This is the chain " ++ "we were on => chain_num is %d.", i); ++ } ++ ++ if (!cur_chain->blocks.current_extent) { ++ chain_state->extent_num = 0; ++ toi_message(TOI_IO, TOI_VERBOSE, 0, "No current extent " ++ "for this chain => extent_num %d is 0.", ++ i); ++ cur_chain = cur_chain->next; ++ continue; ++ } ++ ++ extent = cur_chain->blocks.first; ++ chain_state->extent_num = 1; ++ ++ while (extent != cur_chain->blocks.current_extent) { ++ chain_state->extent_num++; ++ extent = extent->next; ++ } ++ ++ toi_message(TOI_IO, TOI_VERBOSE, 0, "extent num %d is %d.", i, ++ chain_state->extent_num); ++ ++ cur_chain = cur_chain->next; ++ } ++ toi_message(TOI_IO, TOI_VERBOSE, 0, ++ "Completed saving extent state slot %d.", slot); ++} ++ ++/** ++ * toi_extent_state_restore - restore the position saved by extent_state_save ++ * @state: State to populate ++ * @saved_state: Iterator saved to restore ++ **/ ++void toi_extent_state_restore(int slot) ++{ ++ int i = 0; ++ struct toi_bdev_info *cur_chain = prio_chain_head; ++ struct hibernate_extent_saved_state *chain_state; ++ ++ toi_message(TOI_IO, TOI_VERBOSE, 0, ++ "toi_extent_state_restore - slot %d.", slot); ++ ++ if (toi_writer_posn.saved_chain_number[slot] == -1) { ++ toi_writer_posn.current_chain = NULL; ++ return; ++ } ++ ++ while (cur_chain) { ++ int posn; ++ int j; ++ i++; ++ toi_message(TOI_IO, TOI_VERBOSE, 0, "Restoring chain %d (%p) " ++ "state, slot %d.", i, cur_chain, slot); ++ ++ chain_state = &cur_chain->saved_state[slot]; ++ ++ posn = chain_state->extent_num; ++ ++ cur_chain->blocks.current_extent = cur_chain->blocks.first; ++ cur_chain->blocks.current_offset = chain_state->offset; ++ ++ if (i == toi_writer_posn.saved_chain_number[slot]) { ++ toi_writer_posn.current_chain = cur_chain; ++ toi_message(TOI_IO, TOI_VERBOSE, 0, ++ "Found current chain."); ++ } ++ ++ for (j = 0; j < 4; j++) ++ if (i == toi_writer_posn.saved_chain_number[j]) { ++ toi_writer_posn.saved_chain_ptr[j] = cur_chain; ++ toi_message(TOI_IO, TOI_VERBOSE, 0, ++ "Found saved chain ptr %d (%p) (offset" ++ " %d).", j, cur_chain, ++ cur_chain->saved_state[j].offset); ++ } ++ ++ if (posn) { ++ while (--posn) ++ cur_chain->blocks.current_extent = ++ cur_chain->blocks.current_extent->next; ++ } else ++ cur_chain->blocks.current_extent = NULL; ++ ++ cur_chain = cur_chain->next; ++ } ++ toi_message(TOI_IO, TOI_VERBOSE, 0, "Done."); ++ if (test_action_state(TOI_LOGALL)) ++ dump_block_chains(); ++} ++ ++/* ++ * Storage needed ++ * ++ * Returns amount of space in the image header required ++ * for the chain data. This ignores the links between ++ * pages, which we factor in when allocating the space. ++ */ ++int toi_bio_devinfo_storage_needed(void) ++{ ++ int result = sizeof(num_chains); ++ struct toi_bdev_info *chain = prio_chain_head; ++ ++ while (chain) { ++ result += metadata_size; ++ ++ /* Chain size */ ++ result += sizeof(int); ++ ++ /* Extents */ ++ result += (2 * sizeof(unsigned long) * ++ chain->blocks.num_extents); ++ ++ chain = chain->next; ++ } ++ ++ result += 4 * sizeof(int); ++ return result; ++} ++ ++static unsigned long chain_pages_used(struct toi_bdev_info *chain) ++{ ++ struct hibernate_extent *this = chain->blocks.first; ++ struct hibernate_extent_saved_state *state = &chain->saved_state[3]; ++ unsigned long size = 0; ++ int extent_idx = 1; ++ ++ if (!state->extent_num) { ++ if (!this) ++ return 0; ++ else ++ return chain->blocks.size; ++ } ++ ++ while (extent_idx < state->extent_num) { ++ size += (this->end - this->start + 1); ++ this = this->next; ++ extent_idx++; ++ } ++ ++ /* We didn't use the one we're sitting on, so don't count it */ ++ return size + state->offset - this->start; ++} ++ ++/** ++ * toi_serialise_extent_chain - write a chain in the image ++ * @chain: Chain to write. ++ **/ ++static int toi_serialise_extent_chain(struct toi_bdev_info *chain) ++{ ++ struct hibernate_extent *this; ++ int ret; ++ int i = 1; ++ ++ chain->pages_used = chain_pages_used(chain); ++ ++ if (test_action_state(TOI_LOGALL)) ++ dump_block_chains(); ++ toi_message(TOI_IO, TOI_VERBOSE, 0, "Serialising chain (dev_t %lx).", ++ chain->dev_t); ++ /* Device info - dev_t, prio, bmap_shift, blocks per page, positions */ ++ ret = toiActiveAllocator->rw_header_chunk(WRITE, &toi_blockwriter_ops, ++ (char *) &chain->uuid, metadata_size); ++ if (ret) ++ return ret; ++ ++ /* Num extents */ ++ ret = toiActiveAllocator->rw_header_chunk(WRITE, &toi_blockwriter_ops, ++ (char *) &chain->blocks.num_extents, sizeof(int)); ++ if (ret) ++ return ret; ++ ++ toi_message(TOI_IO, TOI_VERBOSE, 0, "%d extents.", ++ chain->blocks.num_extents); ++ ++ this = chain->blocks.first; ++ while (this) { ++ toi_message(TOI_IO, TOI_VERBOSE, 0, "Extent %d.", i); ++ ret = toiActiveAllocator->rw_header_chunk(WRITE, ++ &toi_blockwriter_ops, ++ (char *) this, 2 * sizeof(this->start)); ++ if (ret) ++ return ret; ++ this = this->next; ++ i++; ++ } ++ ++ return ret; ++} ++ ++int toi_serialise_extent_chains(void) ++{ ++ struct toi_bdev_info *this = prio_chain_head; ++ int result; ++ ++ /* Write the number of chains */ ++ toi_message(TOI_IO, TOI_VERBOSE, 0, "Write number of chains (%d)", ++ num_chains); ++ result = toiActiveAllocator->rw_header_chunk(WRITE, ++ &toi_blockwriter_ops, (char *) &num_chains, ++ sizeof(int)); ++ if (result) ++ return result; ++ ++ /* Then the chains themselves */ ++ while (this) { ++ result = toi_serialise_extent_chain(this); ++ if (result) ++ return result; ++ this = this->next; ++ } ++ ++ /* ++ * Finally, the chain we should be on at the start of each ++ * section. ++ */ ++ toi_message(TOI_IO, TOI_VERBOSE, 0, "Saved chain numbers."); ++ result = toiActiveAllocator->rw_header_chunk(WRITE, ++ &toi_blockwriter_ops, ++ (char *) &toi_writer_posn.saved_chain_number[0], ++ 4 * sizeof(int)); ++ ++ return result; ++} ++ ++int toi_register_storage_chain(struct toi_bdev_info *new) ++{ ++ toi_message(TOI_IO, TOI_VERBOSE, 0, "Inserting chain %p into list.", ++ new); ++ toi_insert_chain_in_prio_list(new); ++ return 0; ++} ++ ++static void free_bdev_info(struct toi_bdev_info *chain) ++{ ++ toi_message(TOI_IO, TOI_VERBOSE, 0, "Free chain %p.", chain); ++ ++ toi_message(TOI_IO, TOI_VERBOSE, 0, " - Block extents."); ++ toi_put_extent_chain(&chain->blocks); ++ ++ /* ++ * The allocator may need to do more than just free the chains ++ * (swap_free, for example). Don't call from boot kernel. ++ */ ++ toi_message(TOI_IO, TOI_VERBOSE, 0, " - Allocator extents."); ++ if (chain->allocator) ++ chain->allocator->bio_allocator_ops->free_storage(chain); ++ ++ /* ++ * Dropping out of reading atomic copy? Need to undo ++ * toi_open_by_devnum. ++ */ ++ toi_message(TOI_IO, TOI_VERBOSE, 0, " - Bdev."); ++ if (chain->bdev && !IS_ERR(chain->bdev) && ++ chain->bdev != resume_block_device && ++ chain->bdev != header_block_device && ++ test_toi_state(TOI_TRYING_TO_RESUME)) ++ toi_close_bdev(chain->bdev); ++ ++ /* Poison */ ++ toi_message(TOI_IO, TOI_VERBOSE, 0, " - Struct."); ++ toi_kfree(39, chain, sizeof(*chain)); ++ ++ if (prio_chain_head == chain) ++ prio_chain_head = NULL; ++ ++ num_chains--; ++} ++ ++void free_all_bdev_info(void) ++{ ++ struct toi_bdev_info *this = prio_chain_head; ++ ++ while (this) { ++ struct toi_bdev_info *next = this->next; ++ free_bdev_info(this); ++ this = next; ++ } ++ ++ memset((char *) &toi_writer_posn, 0, sizeof(toi_writer_posn)); ++ prio_chain_head = NULL; ++} ++ ++static void set_up_start_position(void) ++{ ++ toi_writer_posn.current_chain = prio_chain_head; ++ go_next_page(0, 0); ++} ++ ++/** ++ * toi_load_extent_chain - read back a chain saved in the image ++ * @chain: Chain to load ++ * ++ * The linked list of extents is reconstructed from the disk. chain will point ++ * to the first entry. ++ **/ ++int toi_load_extent_chain(int index, int *num_loaded) ++{ ++ struct toi_bdev_info *chain = toi_kzalloc(39, ++ sizeof(struct toi_bdev_info), GFP_ATOMIC); ++ struct hibernate_extent *this, *last = NULL; ++ int i, ret; ++ ++ toi_message(TOI_IO, TOI_VERBOSE, 0, "Loading extent chain %d.", index); ++ /* Get dev_t, prio, bmap_shift, blocks per page, positions */ ++ ret = toiActiveAllocator->rw_header_chunk_noreadahead(READ, NULL, ++ (char *) &chain->uuid, metadata_size); ++ ++ if (ret) { ++ printk(KERN_ERR "Failed to read the size of extent chain.\n"); ++ toi_kfree(39, chain, sizeof(*chain)); ++ return 1; ++ } ++ ++ toi_bkd.pages_used[index] = chain->pages_used; ++ ++ ret = toiActiveAllocator->rw_header_chunk_noreadahead(READ, NULL, ++ (char *) &chain->blocks.num_extents, sizeof(int)); ++ if (ret) { ++ printk(KERN_ERR "Failed to read the size of extent chain.\n"); ++ toi_kfree(39, chain, sizeof(*chain)); ++ return 1; ++ } ++ ++ toi_message(TOI_IO, TOI_VERBOSE, 0, "%d extents.", ++ chain->blocks.num_extents); ++ ++ for (i = 0; i < chain->blocks.num_extents; i++) { ++ toi_message(TOI_IO, TOI_VERBOSE, 0, "Extent %d.", i + 1); ++ ++ this = toi_kzalloc(2, sizeof(struct hibernate_extent), ++ TOI_ATOMIC_GFP); ++ if (!this) { ++ printk(KERN_INFO "Failed to allocate a new extent.\n"); ++ free_bdev_info(chain); ++ return -ENOMEM; ++ } ++ this->next = NULL; ++ /* Get the next page */ ++ ret = toiActiveAllocator->rw_header_chunk_noreadahead(READ, ++ NULL, (char *) this, 2 * sizeof(this->start)); ++ if (ret) { ++ printk(KERN_INFO "Failed to read an extent.\n"); ++ toi_kfree(2, this, sizeof(struct hibernate_extent)); ++ free_bdev_info(chain); ++ return 1; ++ } ++ ++ if (last) ++ last->next = this; ++ else { ++ char b1[32], b2[32], b3[32]; ++ /* ++ * Open the bdev ++ */ ++ toi_message(TOI_IO, TOI_VERBOSE, 0, ++ "Chain dev_t is %s. Resume dev t is %s. Header" ++ " bdev_t is %s.\n", ++ format_dev_t(b1, chain->dev_t), ++ format_dev_t(b2, resume_dev_t), ++ format_dev_t(b3, toi_sig_data->header_dev_t)); ++ ++ if (chain->dev_t == resume_dev_t) ++ chain->bdev = resume_block_device; ++ else if (chain->dev_t == toi_sig_data->header_dev_t) ++ chain->bdev = header_block_device; ++ else { ++ chain->bdev = toi_open_bdev(chain->uuid, ++ chain->dev_t, 1); ++ if (IS_ERR(chain->bdev)) { ++ free_bdev_info(chain); ++ return -ENODEV; ++ } ++ } ++ ++ toi_message(TOI_IO, TOI_VERBOSE, 0, "Chain bmap shift " ++ "is %d and blocks per page is %d.", ++ chain->bmap_shift, ++ chain->blocks_per_page); ++ ++ chain->blocks.first = this; ++ ++ /* ++ * Couldn't do this earlier, but can't do ++ * goto_start now - we may have already used blocks ++ * in the first chain. ++ */ ++ chain->blocks.current_extent = this; ++ chain->blocks.current_offset = this->start; ++ ++ /* ++ * Can't wait until we've read the whole chain ++ * before we insert it in the list. We might need ++ * this chain to read the next page in the header ++ */ ++ toi_insert_chain_in_prio_list(chain); ++ } ++ ++ /* ++ * We have to wait until 2 extents are loaded before setting up ++ * properly because if the first extent has only one page, we ++ * will need to put the position on the second extent. Sounds ++ * obvious, but it wasn't! ++ */ ++ (*num_loaded)++; ++ if ((*num_loaded) == 2) ++ set_up_start_position(); ++ last = this; ++ } ++ ++ /* ++ * Shouldn't get empty chains, but it's not impossible. Link them in so ++ * they get freed properly later. ++ */ ++ if (!chain->blocks.num_extents) ++ toi_insert_chain_in_prio_list(chain); ++ ++ if (!chain->blocks.current_extent) { ++ chain->blocks.current_extent = chain->blocks.first; ++ if (chain->blocks.current_extent) ++ chain->blocks.current_offset = ++ chain->blocks.current_extent->start; ++ } ++ return 0; ++} ++ ++int toi_load_extent_chains(void) ++{ ++ int result; ++ int to_load; ++ int i; ++ int extents_loaded = 0; ++ ++ result = toiActiveAllocator->rw_header_chunk_noreadahead(READ, NULL, ++ (char *) &to_load, ++ sizeof(int)); ++ if (result) ++ return result; ++ toi_message(TOI_IO, TOI_VERBOSE, 0, "%d chains to read.", to_load); ++ ++ for (i = 0; i < to_load; i++) { ++ toi_message(TOI_IO, TOI_VERBOSE, 0, " >> Loading chain %d/%d.", ++ i, to_load); ++ result = toi_load_extent_chain(i, &extents_loaded); ++ if (result) ++ return result; ++ } ++ ++ /* If we never got to a second extent, we still need to do this. */ ++ if (extents_loaded == 1) ++ set_up_start_position(); ++ ++ toi_message(TOI_IO, TOI_VERBOSE, 0, "Save chain numbers."); ++ result = toiActiveAllocator->rw_header_chunk_noreadahead(READ, ++ &toi_blockwriter_ops, ++ (char *) &toi_writer_posn.saved_chain_number[0], ++ 4 * sizeof(int)); ++ ++ return result; ++} ++ ++static int toi_end_of_stream(int writing, int section_barrier) ++{ ++ struct toi_bdev_info *cur_chain = toi_writer_posn.current_chain; ++ int compare_to = next_section[current_stream]; ++ struct toi_bdev_info *compare_chain = ++ toi_writer_posn.saved_chain_ptr[compare_to]; ++ int compare_offset = compare_chain ? ++ compare_chain->saved_state[compare_to].offset : 0; ++ ++ if (!section_barrier) ++ return 0; ++ ++ if (!cur_chain) ++ return 1; ++ ++ if (cur_chain == compare_chain && ++ cur_chain->blocks.current_offset == compare_offset) { ++ if (writing) { ++ if (!current_stream) { ++ debug_broken_header(); ++ return 1; ++ } ++ } else { ++ more_readahead = 0; ++ toi_message(TOI_IO, TOI_VERBOSE, 0, ++ "Reached the end of stream %d " ++ "(not an error).", current_stream); ++ return 1; ++ } ++ } ++ ++ return 0; ++} ++ ++/** ++ * go_next_page - skip blocks to the start of the next page ++ * @writing: Whether we're reading or writing the image. ++ * ++ * Go forward one page. ++ **/ ++int go_next_page(int writing, int section_barrier) ++{ ++ struct toi_bdev_info *cur_chain = toi_writer_posn.current_chain; ++ int max = cur_chain ? cur_chain->blocks_per_page : 1; ++ ++ /* Nope. Go foward a page - or maybe two. Don't stripe the header, ++ * so that bad fragmentation doesn't put the extent data containing ++ * the location of the second page out of the first header page. ++ */ ++ if (toi_extent_state_next(max, current_stream)) { ++ /* Don't complain if readahead falls off the end */ ++ if (writing && section_barrier) { ++ toi_message(TOI_IO, TOI_VERBOSE, 0, "Extent state eof. " ++ "Expected compression ratio too optimistic?"); ++ if (test_action_state(TOI_LOGALL)) ++ dump_block_chains(); ++ } ++ toi_message(TOI_IO, TOI_VERBOSE, 0, "Ran out of extents to " ++ "read/write. (Not necessarily a fatal error."); ++ return -ENOSPC; ++ } ++ ++ return 0; ++} ++ ++int devices_of_same_priority(struct toi_bdev_info *this) ++{ ++ struct toi_bdev_info *check = prio_chain_head; ++ int i = 0; ++ ++ while (check) { ++ if (check->prio == this->prio) ++ i++; ++ check = check->next; ++ } ++ ++ return i; ++} ++ ++/** ++ * toi_bio_rw_page - do i/o on the next disk page in the image ++ * @writing: Whether reading or writing. ++ * @page: Page to do i/o on. ++ * @is_readahead: Whether we're doing readahead ++ * @free_group: The group used in allocating the page ++ * ++ * Submit a page for reading or writing, possibly readahead. ++ * Pass the group used in allocating the page as well, as it should ++ * be freed on completion of the bio if we're writing the page. ++ **/ ++int toi_bio_rw_page(int writing, struct page *page, ++ int is_readahead, int free_group) ++{ ++ int result = toi_end_of_stream(writing, 1); ++ struct toi_bdev_info *dev_info = toi_writer_posn.current_chain; ++ ++ if (result) { ++ toi_message(TOI_IO, TOI_VERBOSE, 0, "Seeking to read/write " ++ "another page when stream has ended."); ++ return -ENOSPC; ++ } ++ ++ toi_message(TOI_IO, TOI_VERBOSE, 0, ++ "%sing device %lx, sector %d << %d.", ++ writing ? "Writ" : "Read", ++ dev_info->bdev, dev_info->blocks.current_offset, ++ dev_info->bmap_shift); ++ ++ result = toi_do_io(writing, dev_info->bdev, ++ dev_info->blocks.current_offset << dev_info->bmap_shift, ++ page, is_readahead, 0, free_group); ++ ++ /* Ignore the result here - will check end of stream if come in again */ ++ go_next_page(writing, 1); ++ ++ if (result) ++ printk(KERN_ERR "toi_do_io returned %d.\n", result); ++ return result; ++} ++ ++dev_t get_header_dev_t(void) ++{ ++ return prio_chain_head->dev_t; ++} ++ ++struct block_device *get_header_bdev(void) ++{ ++ return prio_chain_head->bdev; ++} ++ ++unsigned long get_headerblock(void) ++{ ++ return prio_chain_head->blocks.first->start << ++ prio_chain_head->bmap_shift; ++} ++ ++int get_main_pool_phys_params(void) ++{ ++ struct toi_bdev_info *this = prio_chain_head; ++ int result; ++ ++ while (this) { ++ result = this->allocator->bio_allocator_ops->bmap(this); ++ if (result) ++ return result; ++ this = this->next; ++ } ++ ++ return 0; ++} ++ ++static int apply_header_reservation(void) ++{ ++ int i; ++ ++ if (!header_pages_reserved) { ++ toi_message(TOI_IO, TOI_VERBOSE, 0, ++ "No header pages reserved at the moment."); ++ return 0; ++ } ++ ++ toi_message(TOI_IO, TOI_VERBOSE, 0, "Applying header reservation."); ++ ++ /* Apply header space reservation */ ++ toi_extent_state_goto_start(); ++ ++ for (i = 0; i < header_pages_reserved; i++) ++ if (go_next_page(1, 0)) ++ return -ENOSPC; ++ ++ /* The end of header pages will be the start of pageset 2 */ ++ toi_extent_state_save(2); ++ ++ toi_message(TOI_IO, TOI_VERBOSE, 0, ++ "Finished applying header reservation."); ++ return 0; ++} ++ ++static int toi_bio_register_storage(void) ++{ ++ int result = 0; ++ struct toi_module_ops *this_module; ++ ++ list_for_each_entry(this_module, &toi_modules, module_list) { ++ if (!this_module->enabled || ++ this_module->type != BIO_ALLOCATOR_MODULE) ++ continue; ++ toi_message(TOI_IO, TOI_VERBOSE, 0, ++ "Registering storage from %s.", ++ this_module->name); ++ result = this_module->bio_allocator_ops->register_storage(); ++ if (result) ++ break; ++ } ++ ++ return result; ++} ++ ++int toi_bio_allocate_storage(unsigned long request) ++{ ++ struct toi_bdev_info *chain = prio_chain_head; ++ unsigned long to_get = request; ++ unsigned long extra_pages, needed; ++ int no_free = 0; ++ ++ if (!chain) { ++ int result = toi_bio_register_storage(); ++ toi_message(TOI_IO, TOI_VERBOSE, 0, "toi_bio_allocate_storage: " ++ "Registering storage."); ++ if (result) ++ return 0; ++ chain = prio_chain_head; ++ if (!chain) { ++ printk("TuxOnIce: No storage was registered.\n"); ++ return 0; ++ } ++ } ++ ++ toi_message(TOI_IO, TOI_VERBOSE, 0, "toi_bio_allocate_storage: " ++ "Request is %lu pages.", request); ++ extra_pages = DIV_ROUND_UP(request * (sizeof(unsigned long) ++ + sizeof(int)), PAGE_SIZE); ++ needed = request + extra_pages + header_pages_reserved; ++ toi_message(TOI_IO, TOI_VERBOSE, 0, "Adding %lu extra pages and %lu " ++ "for header => %lu.", ++ extra_pages, header_pages_reserved, needed); ++ toi_message(TOI_IO, TOI_VERBOSE, 0, "Already allocated %lu pages.", ++ raw_pages_allocd); ++ ++ to_get = needed > raw_pages_allocd ? needed - raw_pages_allocd : 0; ++ toi_message(TOI_IO, TOI_VERBOSE, 0, "Need to get %lu pages.", to_get); ++ ++ if (!to_get) ++ return apply_header_reservation(); ++ ++ while (to_get && chain) { ++ int num_group = devices_of_same_priority(chain); ++ int divisor = num_group - no_free; ++ int i; ++ unsigned long portion = DIV_ROUND_UP(to_get, divisor); ++ unsigned long got = 0; ++ unsigned long got_this_round = 0; ++ struct toi_bdev_info *top = chain; ++ ++ toi_message(TOI_IO, TOI_VERBOSE, 0, ++ " Start of loop. To get is %lu. Divisor is %d.", ++ to_get, divisor); ++ no_free = 0; ++ ++ /* ++ * We're aiming to spread the allocated storage as evenly ++ * as possible, but we also want to get all the storage we ++ * can off this priority. ++ */ ++ for (i = 0; i < num_group; i++) { ++ struct toi_bio_allocator_ops *ops = ++ chain->allocator->bio_allocator_ops; ++ toi_message(TOI_IO, TOI_VERBOSE, 0, ++ " Asking for %lu pages from chain %p.", ++ portion, chain); ++ got = ops->allocate_storage(chain, portion); ++ toi_message(TOI_IO, TOI_VERBOSE, 0, ++ " Got %lu pages from allocator %p.", ++ got, chain); ++ if (!got) ++ no_free++; ++ got_this_round += got; ++ chain = chain->next; ++ } ++ toi_message(TOI_IO, TOI_VERBOSE, 0, " Loop finished. Got a " ++ "total of %lu pages from %d allocators.", ++ got_this_round, divisor - no_free); ++ ++ raw_pages_allocd += got_this_round; ++ to_get = needed > raw_pages_allocd ? needed - raw_pages_allocd : ++ 0; ++ ++ /* ++ * If we got anything from chains of this priority and we ++ * still have storage to allocate, go over this priority ++ * again. ++ */ ++ if (got_this_round && to_get) ++ chain = top; ++ else ++ no_free = 0; ++ } ++ ++ toi_message(TOI_IO, TOI_VERBOSE, 0, "Finished allocating. Calling " ++ "get_main_pool_phys_params"); ++ /* Now let swap allocator bmap the pages */ ++ get_main_pool_phys_params(); ++ ++ toi_message(TOI_IO, TOI_VERBOSE, 0, "Done. Reserving header."); ++ return apply_header_reservation(); ++} ++ ++void toi_bio_chains_post_atomic(struct toi_boot_kernel_data *bkd) ++{ ++ int i = 0; ++ struct toi_bdev_info *cur_chain = prio_chain_head; ++ ++ while (cur_chain) { ++ cur_chain->pages_used = bkd->pages_used[i]; ++ cur_chain = cur_chain->next; ++ i++; ++ } ++} ++ ++int toi_bio_chains_debug_info(char *buffer, int size) ++{ ++ /* Show what we actually used */ ++ struct toi_bdev_info *cur_chain = prio_chain_head; ++ int len = 0; ++ ++ while (cur_chain) { ++ len += scnprintf(buffer + len, size - len, " Used %lu pages " ++ "from %s.\n", cur_chain->pages_used, ++ cur_chain->name); ++ cur_chain = cur_chain->next; ++ } ++ ++ return len; ++} +diff --git a/kernel/power/tuxonice_bio_core.c b/kernel/power/tuxonice_bio_core.c +new file mode 100644 +index 0000000..b8ae996 +--- /dev/null ++++ b/kernel/power/tuxonice_bio_core.c +@@ -0,0 +1,1810 @@ ++/* ++ * kernel/power/tuxonice_bio.c ++ * ++ * Copyright (C) 2004-2010 Nigel Cunningham (nigel at tuxonice net) ++ * ++ * Distributed under GPLv2. ++ * ++ * This file contains block io functions for TuxOnIce. These are ++ * used by the swapwriter and it is planned that they will also ++ * be used by the NFSwriter. ++ * ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include "tuxonice.h" ++#include "tuxonice_sysfs.h" ++#include "tuxonice_modules.h" ++#include "tuxonice_prepare_image.h" ++#include "tuxonice_bio.h" ++#include "tuxonice_ui.h" ++#include "tuxonice_alloc.h" ++#include "tuxonice_io.h" ++#include "tuxonice_builtin.h" ++#include "tuxonice_bio_internal.h" ++ ++#define MEMORY_ONLY 1 ++#define THROTTLE_WAIT 2 ++ ++/* #define MEASURE_MUTEX_CONTENTION */ ++#ifndef MEASURE_MUTEX_CONTENTION ++#define my_mutex_lock(index, the_lock) mutex_lock(the_lock) ++#define my_mutex_unlock(index, the_lock) mutex_unlock(the_lock) ++#else ++unsigned long mutex_times[2][2][NR_CPUS]; ++#define my_mutex_lock(index, the_lock) do { \ ++ int have_mutex; \ ++ have_mutex = mutex_trylock(the_lock); \ ++ if (!have_mutex) { \ ++ mutex_lock(the_lock); \ ++ mutex_times[index][0][smp_processor_id()]++; \ ++ } else { \ ++ mutex_times[index][1][smp_processor_id()]++; \ ++ } ++ ++#define my_mutex_unlock(index, the_lock) \ ++ mutex_unlock(the_lock); \ ++} while (0) ++#endif ++ ++static int page_idx, reset_idx; ++ ++static int target_outstanding_io = 1024; ++static int max_outstanding_writes, max_outstanding_reads; ++ ++static struct page *bio_queue_head, *bio_queue_tail; ++static atomic_t toi_bio_queue_size; ++static DEFINE_SPINLOCK(bio_queue_lock); ++ ++static int free_mem_throttle, throughput_throttle; ++int more_readahead = 1; ++static struct page *readahead_list_head, *readahead_list_tail; ++ ++static struct page *waiting_on; ++ ++static atomic_t toi_io_in_progress, toi_io_done; ++static DECLARE_WAIT_QUEUE_HEAD(num_in_progress_wait); ++ ++int current_stream; ++/* Not static, so that the allocators can setup and complete ++ * writing the header */ ++char *toi_writer_buffer; ++int toi_writer_buffer_posn; ++ ++static DEFINE_MUTEX(toi_bio_mutex); ++static DEFINE_MUTEX(toi_bio_readahead_mutex); ++ ++static struct task_struct *toi_queue_flusher; ++static int toi_bio_queue_flush_pages(int dedicated_thread); ++ ++struct toi_module_ops toi_blockwriter_ops; ++ ++#define TOTAL_OUTSTANDING_IO (atomic_read(&toi_io_in_progress) + \ ++ atomic_read(&toi_bio_queue_size)) ++ ++unsigned long raw_pages_allocd, header_pages_reserved; ++ ++/** ++ * set_free_mem_throttle - set the point where we pause to avoid oom. ++ * ++ * Initially, this value is zero, but when we first fail to allocate memory, ++ * we set it (plus a buffer) and thereafter throttle i/o once that limit is ++ * reached. ++ **/ ++static void set_free_mem_throttle(void) ++{ ++ int new_throttle = nr_unallocated_buffer_pages() + 256; ++ ++ if (new_throttle > free_mem_throttle) ++ free_mem_throttle = new_throttle; ++} ++ ++#define NUM_REASONS 7 ++static atomic_t reasons[NUM_REASONS]; ++static char *reason_name[NUM_REASONS] = { ++ "readahead not ready", ++ "bio allocation", ++ "synchronous I/O", ++ "toi_bio_get_new_page", ++ "memory low", ++ "readahead buffer allocation", ++ "throughput_throttle", ++}; ++ ++/* User Specified Parameters. */ ++unsigned long resume_firstblock; ++dev_t resume_dev_t; ++struct block_device *resume_block_device; ++static atomic_t resume_bdev_open_count; ++ ++struct block_device *header_block_device; ++ ++/** ++ * toi_open_bdev: Open a bdev at resume time. ++ * ++ * index: The swap index. May be MAX_SWAPFILES for the resume_dev_t ++ * (the user can have resume= pointing at a swap partition/file that isn't ++ * swapon'd when they hibernate. MAX_SWAPFILES+1 for the first page of the ++ * header. It will be from a swap partition that was enabled when we hibernated, ++ * but we don't know it's real index until we read that first page. ++ * dev_t: The device major/minor. ++ * display_errs: Whether to try to do this quietly. ++ * ++ * We stored a dev_t in the image header. Open the matching device without ++ * requiring /dev/ in most cases and record the details needed ++ * to close it later and avoid duplicating work. ++ */ ++struct block_device *toi_open_bdev(char *uuid, dev_t default_device, ++ int display_errs) ++{ ++ struct block_device *bdev; ++ dev_t device = default_device; ++ char buf[32]; ++ ++ if (uuid) { ++ device = blk_lookup_uuid(uuid); ++ if (!device) { ++ device = default_device; ++ printk(KERN_DEBUG "Unable to resolve uuid. Falling back" ++ " to dev_t.\n"); ++ } else ++ printk(KERN_DEBUG "Resolved uuid to device %s.\n", ++ format_dev_t(buf, device)); ++ } ++ ++ if (!device) { ++ printk(KERN_ERR "TuxOnIce attempting to open a " ++ "blank dev_t!\n"); ++ dump_stack(); ++ return NULL; ++ } ++ bdev = toi_open_by_devnum(device); ++ ++ if (IS_ERR(bdev) || !bdev) { ++ if (display_errs) ++ toi_early_boot_message(1, TOI_CONTINUE_REQ, ++ "Failed to get access to block device " ++ "\"%x\" (error %d).\n Maybe you need " ++ "to run mknod and/or lvmsetup in an " ++ "initrd/ramfs?", device, bdev); ++ return ERR_PTR(-EINVAL); ++ } ++ toi_message(TOI_IO, TOI_VERBOSE, 0, ++ "TuxOnIce got bdev %p for dev_t %x.", ++ bdev, device); ++ ++ return bdev; ++} ++ ++static void toi_bio_reserve_header_space(unsigned long request) ++{ ++ header_pages_reserved = request; ++} ++ ++/** ++ * do_bio_wait - wait for some TuxOnIce I/O to complete ++ * @reason: The array index of the reason we're waiting. ++ * ++ * Wait for a particular page of I/O if we're after a particular page. ++ * If we're not after a particular page, wait instead for all in flight ++ * I/O to be completed or for us to have enough free memory to be able ++ * to submit more I/O. ++ * ++ * If we wait, we also update our statistics regarding why we waited. ++ **/ ++static void do_bio_wait(int reason) ++{ ++ struct page *was_waiting_on = waiting_on; ++ ++ /* On SMP, waiting_on can be reset, so we make a copy */ ++ if (was_waiting_on) { ++ wait_on_page_locked(was_waiting_on); ++ atomic_inc(&reasons[reason]); ++ } else { ++ atomic_inc(&reasons[reason]); ++ ++ wait_event(num_in_progress_wait, ++ !atomic_read(&toi_io_in_progress) || ++ nr_unallocated_buffer_pages() > free_mem_throttle); ++ } ++} ++ ++/** ++ * throttle_if_needed - wait for I/O completion if throttle points are reached ++ * @flags: What to check and how to act. ++ * ++ * Check whether we need to wait for some I/O to complete. We always check ++ * whether we have enough memory available, but may also (depending upon ++ * @reason) check if the throughput throttle limit has been reached. ++ **/ ++static int throttle_if_needed(int flags) ++{ ++ int free_pages = nr_unallocated_buffer_pages(); ++ ++ /* Getting low on memory and I/O is in progress? */ ++ while (unlikely(free_pages < free_mem_throttle) && ++ atomic_read(&toi_io_in_progress) && ++ !test_result_state(TOI_ABORTED)) { ++ if (!(flags & THROTTLE_WAIT)) ++ return -ENOMEM; ++ do_bio_wait(4); ++ free_pages = nr_unallocated_buffer_pages(); ++ } ++ ++ while (!(flags & MEMORY_ONLY) && throughput_throttle && ++ TOTAL_OUTSTANDING_IO >= throughput_throttle && ++ !test_result_state(TOI_ABORTED)) { ++ int result = toi_bio_queue_flush_pages(0); ++ if (result) ++ return result; ++ atomic_inc(&reasons[6]); ++ wait_event(num_in_progress_wait, ++ !atomic_read(&toi_io_in_progress) || ++ TOTAL_OUTSTANDING_IO < throughput_throttle); ++ } ++ ++ return 0; ++} ++ ++/** ++ * update_throughput_throttle - update the raw throughput throttle ++ * @jif_index: The number of times this function has been called. ++ * ++ * This function is called four times per second by the core, and used to limit ++ * the amount of I/O we submit at once, spreading out our waiting through the ++ * whole job and letting userui get an opportunity to do its work. ++ * ++ * We don't start limiting I/O until 1/4s has gone so that we get a ++ * decent sample for our initial limit, and keep updating it because ++ * throughput may vary (on rotating media, eg) with our block number. ++ * ++ * We throttle to 1/10s worth of I/O. ++ **/ ++static void update_throughput_throttle(int jif_index) ++{ ++ int done = atomic_read(&toi_io_done); ++ throughput_throttle = done * 2 / 5 / jif_index; ++} ++ ++/** ++ * toi_finish_all_io - wait for all outstanding i/o to complete ++ * ++ * Flush any queued but unsubmitted I/O and wait for it all to complete. ++ **/ ++static int toi_finish_all_io(void) ++{ ++ int result = toi_bio_queue_flush_pages(0); ++ wait_event(num_in_progress_wait, !TOTAL_OUTSTANDING_IO); ++ return result; ++} ++ ++/** ++ * toi_end_bio - bio completion function. ++ * @bio: bio that has completed. ++ * @err: Error value. Yes, like end_swap_bio_read, we ignore it. ++ * ++ * Function called by the block driver from interrupt context when I/O is ++ * completed. If we were writing the page, we want to free it and will have ++ * set bio->bi_private to the parameter we should use in telling the page ++ * allocation accounting code what the page was allocated for. If we're ++ * reading the page, it will be in the singly linked list made from ++ * page->private pointers. ++ **/ ++static void toi_end_bio(struct bio *bio, int err) ++{ ++ struct page *page = bio->bi_io_vec[0].bv_page; ++ ++ BUG_ON(!test_bit(BIO_UPTODATE, &bio->bi_flags)); ++ ++ unlock_page(page); ++ bio_put(bio); ++ ++ if (waiting_on == page) ++ waiting_on = NULL; ++ ++ put_page(page); ++ ++ if (bio->bi_private) ++ toi__free_page((int) ((unsigned long) bio->bi_private) , page); ++ ++ bio_put(bio); ++ ++ atomic_dec(&toi_io_in_progress); ++ atomic_inc(&toi_io_done); ++ ++ wake_up(&num_in_progress_wait); ++} ++ ++/** ++ * submit - submit BIO request ++ * @writing: READ or WRITE. ++ * @dev: The block device we're using. ++ * @first_block: The first sector we're using. ++ * @page: The page being used for I/O. ++ * @free_group: If writing, the group that was used in allocating the page ++ * and which will be used in freeing the page from the completion ++ * routine. ++ * ++ * Based on Patrick Mochell's pmdisk code from long ago: "Straight from the ++ * textbook - allocate and initialize the bio. If we're writing, make sure ++ * the page is marked as dirty. Then submit it and carry on." ++ * ++ * If we're just testing the speed of our own code, we fake having done all ++ * the hard work and all toi_end_bio immediately. ++ **/ ++static int submit(int writing, struct block_device *dev, sector_t first_block, ++ struct page *page, int free_group) ++{ ++ struct bio *bio = NULL; ++ int cur_outstanding_io, result; ++ ++ /* ++ * Shouldn't throttle if reading - can deadlock in the single ++ * threaded case as pages are only freed when we use the ++ * readahead. ++ */ ++ if (writing) { ++ result = throttle_if_needed(MEMORY_ONLY | THROTTLE_WAIT); ++ if (result) ++ return result; ++ } ++ ++ while (!bio) { ++ bio = bio_alloc(TOI_ATOMIC_GFP, 1); ++ if (!bio) { ++ set_free_mem_throttle(); ++ do_bio_wait(1); ++ } ++ } ++ ++ bio->bi_bdev = dev; ++ bio->bi_sector = first_block; ++ bio->bi_private = (void *) ((unsigned long) free_group); ++ bio->bi_end_io = toi_end_bio; ++ ++ if (bio_add_page(bio, page, PAGE_SIZE, 0) < PAGE_SIZE) { ++ printk(KERN_DEBUG "ERROR: adding page to bio at %lld\n", ++ (unsigned long long) first_block); ++ bio_put(bio); ++ return -EFAULT; ++ } ++ ++ bio_get(bio); ++ ++ cur_outstanding_io = atomic_add_return(1, &toi_io_in_progress); ++ if (writing) { ++ if (cur_outstanding_io > max_outstanding_writes) ++ max_outstanding_writes = cur_outstanding_io; ++ } else { ++ if (cur_outstanding_io > max_outstanding_reads) ++ max_outstanding_reads = cur_outstanding_io; ++ } ++ ++ ++ if (unlikely(test_action_state(TOI_TEST_BIO))) { ++ /* Fake having done the hard work */ ++ set_bit(BIO_UPTODATE, &bio->bi_flags); ++ toi_end_bio(bio, 0); ++ } else ++ submit_bio(writing | (1 << BIO_RW_SYNCIO) | ++ (1 << BIO_RW_TUXONICE) | ++ (1 << BIO_RW_UNPLUG), bio); ++ ++ return 0; ++} ++ ++/** ++ * toi_do_io: Prepare to do some i/o on a page and submit or batch it. ++ * ++ * @writing: Whether reading or writing. ++ * @bdev: The block device which we're using. ++ * @block0: The first sector we're reading or writing. ++ * @page: The page on which I/O is being done. ++ * @readahead_index: If doing readahead, the index (reset this flag when done). ++ * @syncio: Whether the i/o is being done synchronously. ++ * ++ * Prepare and start a read or write operation. ++ * ++ * Note that we always work with our own page. If writing, we might be given a ++ * compression buffer that will immediately be used to start compressing the ++ * next page. For reading, we do readahead and therefore don't know the final ++ * address where the data needs to go. ++ **/ ++int toi_do_io(int writing, struct block_device *bdev, long block0, ++ struct page *page, int is_readahead, int syncio, int free_group) ++{ ++ page->private = 0; ++ ++ /* Do here so we don't race against toi_bio_get_next_page_read */ ++ lock_page(page); ++ ++ if (is_readahead) { ++ if (readahead_list_head) ++ readahead_list_tail->private = (unsigned long) page; ++ else ++ readahead_list_head = page; ++ ++ readahead_list_tail = page; ++ } ++ ++ /* Done before submitting to avoid races. */ ++ if (syncio) ++ waiting_on = page; ++ ++ /* Submit the page */ ++ get_page(page); ++ ++ if (submit(writing, bdev, block0, page, free_group)) ++ return -EFAULT; ++ ++ if (syncio) ++ do_bio_wait(2); ++ ++ return 0; ++} ++ ++/** ++ * toi_bdev_page_io - simpler interface to do directly i/o on a single page ++ * @writing: Whether reading or writing. ++ * @bdev: Block device on which we're operating. ++ * @pos: Sector at which page to read or write starts. ++ * @page: Page to be read/written. ++ * ++ * A simple interface to submit a page of I/O and wait for its completion. ++ * The caller must free the page used. ++ **/ ++static int toi_bdev_page_io(int writing, struct block_device *bdev, ++ long pos, struct page *page) ++{ ++ return toi_do_io(writing, bdev, pos, page, 0, 1, 0); ++} ++ ++/** ++ * toi_bio_memory_needed - report the amount of memory needed for block i/o ++ * ++ * We want to have at least enough memory so as to have target_outstanding_io ++ * or more transactions on the fly at once. If we can do more, fine. ++ **/ ++static int toi_bio_memory_needed(void) ++{ ++ return target_outstanding_io * (PAGE_SIZE + sizeof(struct request) + ++ sizeof(struct bio)); ++} ++ ++/** ++ * toi_bio_print_debug_stats - put out debugging info in the buffer provided ++ * @buffer: A buffer of size @size into which text should be placed. ++ * @size: The size of @buffer. ++ * ++ * Fill a buffer with debugging info. This is used for both our debug_info sysfs ++ * entry and for recording the same info in dmesg. ++ **/ ++static int toi_bio_print_debug_stats(char *buffer, int size) ++{ ++ int len = 0; ++ ++ if (toiActiveAllocator != &toi_blockwriter_ops) { ++ len = scnprintf(buffer, size, ++ "- Block I/O inactive.\n"); ++ return len; ++ } ++ ++ len = scnprintf(buffer, size, "- Block I/O active.\n"); ++ ++ len += toi_bio_chains_debug_info(buffer + len, size - len); ++ ++ len += scnprintf(buffer + len, size - len, ++ "- Max outstanding reads %d. Max writes %d.\n", ++ max_outstanding_reads, max_outstanding_writes); ++ ++ len += scnprintf(buffer + len, size - len, ++ " Memory_needed: %d x (%lu + %u + %u) = %d bytes.\n", ++ target_outstanding_io, ++ PAGE_SIZE, (unsigned int) sizeof(struct request), ++ (unsigned int) sizeof(struct bio), toi_bio_memory_needed()); ++ ++#ifdef MEASURE_MUTEX_CONTENTION ++ { ++ int i; ++ ++ len += scnprintf(buffer + len, size - len, ++ " Mutex contention while reading:\n Contended Free\n"); ++ ++ for_each_online_cpu(i) ++ len += scnprintf(buffer + len, size - len, ++ " %9lu %9lu\n", ++ mutex_times[0][0][i], mutex_times[0][1][i]); ++ ++ len += scnprintf(buffer + len, size - len, ++ " Mutex contention while writing:\n Contended Free\n"); ++ ++ for_each_online_cpu(i) ++ len += scnprintf(buffer + len, size - len, ++ " %9lu %9lu\n", ++ mutex_times[1][0][i], mutex_times[1][1][i]); ++ ++ } ++#endif ++ ++ return len + scnprintf(buffer + len, size - len, ++ " Free mem throttle point reached %d.\n", free_mem_throttle); ++} ++ ++static int total_header_bytes; ++static int unowned; ++ ++void debug_broken_header(void) ++{ ++ printk(KERN_DEBUG "Image header too big for size allocated!\n"); ++ print_toi_header_storage_for_modules(); ++ printk(KERN_DEBUG "Page flags : %d.\n", toi_pageflags_space_needed()); ++ printk(KERN_DEBUG "toi_header : %zu.\n", sizeof(struct toi_header)); ++ printk(KERN_DEBUG "Total unowned : %d.\n", unowned); ++ printk(KERN_DEBUG "Total used : %d (%ld pages).\n", total_header_bytes, ++ DIV_ROUND_UP(total_header_bytes, PAGE_SIZE)); ++ printk(KERN_DEBUG "Space needed now : %ld.\n", ++ get_header_storage_needed()); ++ dump_block_chains(); ++ abort_hibernate(TOI_HEADER_TOO_BIG, "Header reservation too small."); ++} ++ ++/** ++ * toi_rw_init - prepare to read or write a stream in the image ++ * @writing: Whether reading or writing. ++ * @stream number: Section of the image being processed. ++ * ++ * Prepare to read or write a section ('stream') in the image. ++ **/ ++static int toi_rw_init(int writing, int stream_number) ++{ ++ if (stream_number) ++ toi_extent_state_restore(stream_number); ++ else ++ toi_extent_state_goto_start(); ++ ++ if (writing) { ++ reset_idx = 0; ++ if (!current_stream) ++ page_idx = 0; ++ } else { ++ reset_idx = 1; ++ } ++ ++ atomic_set(&toi_io_done, 0); ++ if (!toi_writer_buffer) ++ toi_writer_buffer = (char *) toi_get_zeroed_page(11, ++ TOI_ATOMIC_GFP); ++ toi_writer_buffer_posn = writing ? 0 : PAGE_SIZE; ++ ++ current_stream = stream_number; ++ ++ more_readahead = 1; ++ ++ return toi_writer_buffer ? 0 : -ENOMEM; ++} ++ ++/** ++ * toi_bio_queue_write - queue a page for writing ++ * @full_buffer: Pointer to a page to be queued ++ * ++ * Add a page to the queue to be submitted. If we're the queue flusher, ++ * we'll do this once we've dropped toi_bio_mutex, so other threads can ++ * continue to submit I/O while we're on the slow path doing the actual ++ * submission. ++ **/ ++static void toi_bio_queue_write(char **full_buffer) ++{ ++ struct page *page = virt_to_page(*full_buffer); ++ unsigned long flags; ++ ++ *full_buffer = NULL; ++ page->private = 0; ++ ++ spin_lock_irqsave(&bio_queue_lock, flags); ++ if (!bio_queue_head) ++ bio_queue_head = page; ++ else ++ bio_queue_tail->private = (unsigned long) page; ++ ++ bio_queue_tail = page; ++ atomic_inc(&toi_bio_queue_size); ++ ++ spin_unlock_irqrestore(&bio_queue_lock, flags); ++ wake_up(&toi_io_queue_flusher); ++} ++ ++/** ++ * toi_rw_cleanup - Cleanup after i/o. ++ * @writing: Whether we were reading or writing. ++ * ++ * Flush all I/O and clean everything up after reading or writing a ++ * section of the image. ++ **/ ++static int toi_rw_cleanup(int writing) ++{ ++ int i, result = 0; ++ ++ toi_message(TOI_IO, TOI_VERBOSE, 0, "toi_rw_cleanup."); ++ if (writing) { ++ if (toi_writer_buffer_posn && !test_result_state(TOI_ABORTED)) ++ toi_bio_queue_write(&toi_writer_buffer); ++ ++ while (bio_queue_head && !result) ++ result = toi_bio_queue_flush_pages(0); ++ ++ if (result) ++ return result; ++ ++ if (current_stream == 2) ++ toi_extent_state_save(1); ++ else if (current_stream == 1) ++ toi_extent_state_save(3); ++ } ++ ++ result = toi_finish_all_io(); ++ ++ while (readahead_list_head) { ++ void *next = (void *) readahead_list_head->private; ++ toi__free_page(12, readahead_list_head); ++ readahead_list_head = next; ++ } ++ ++ readahead_list_tail = NULL; ++ ++ if (!current_stream) ++ return result; ++ ++ for (i = 0; i < NUM_REASONS; i++) { ++ if (!atomic_read(&reasons[i])) ++ continue; ++ printk(KERN_DEBUG "Waited for i/o due to %s %d times.\n", ++ reason_name[i], atomic_read(&reasons[i])); ++ atomic_set(&reasons[i], 0); ++ } ++ ++ current_stream = 0; ++ return result; ++} ++ ++/** ++ * toi_start_one_readahead - start one page of readahead ++ * @dedicated_thread: Is this a thread dedicated to doing readahead? ++ * ++ * Start one new page of readahead. If this is being called by a thread ++ * whose only just is to submit readahead, don't quit because we failed ++ * to allocate a page. ++ **/ ++static int toi_start_one_readahead(int dedicated_thread) ++{ ++ char *buffer = NULL; ++ int oom = 0, result; ++ ++ result = throttle_if_needed(dedicated_thread ? THROTTLE_WAIT : 0); ++ if (result) ++ return result; ++ ++ mutex_lock(&toi_bio_readahead_mutex); ++ ++ while (!buffer) { ++ buffer = (char *) toi_get_zeroed_page(12, ++ TOI_ATOMIC_GFP); ++ if (!buffer) { ++ if (oom && !dedicated_thread) { ++ mutex_unlock(&toi_bio_readahead_mutex); ++ return -ENOMEM; ++ } ++ ++ oom = 1; ++ set_free_mem_throttle(); ++ do_bio_wait(5); ++ } ++ } ++ ++ result = toi_bio_rw_page(READ, virt_to_page(buffer), 1, 0); ++ if (result == -ENOSPC) ++ toi__free_page(12, virt_to_page(buffer)); ++ mutex_unlock(&toi_bio_readahead_mutex); ++ if (result) { ++ if (result == -ENOSPC) ++ toi_message(TOI_IO, TOI_VERBOSE, 0, ++ "Last readahead page submitted."); ++ else ++ printk(KERN_DEBUG "toi_bio_rw_page returned %d.\n", ++ result); ++ } ++ return result; ++} ++ ++/** ++ * toi_start_new_readahead - start new readahead ++ * @dedicated_thread: Are we dedicated to this task? ++ * ++ * Start readahead of image pages. ++ * ++ * We can be called as a thread dedicated to this task (may be helpful on ++ * systems with lots of CPUs), in which case we don't exit until there's no ++ * more readahead. ++ * ++ * If this is not called by a dedicated thread, we top up our queue until ++ * there's no more readahead to submit, we've submitted the number given ++ * in target_outstanding_io or the number in progress exceeds the target ++ * outstanding I/O value. ++ * ++ * No mutex needed because this is only ever called by the first cpu. ++ **/ ++static int toi_start_new_readahead(int dedicated_thread) ++{ ++ int last_result, num_submitted = 0; ++ ++ /* Start a new readahead? */ ++ if (!more_readahead) ++ return 0; ++ ++ do { ++ last_result = toi_start_one_readahead(dedicated_thread); ++ ++ if (last_result) { ++ if (last_result == -ENOMEM || last_result == -ENOSPC) ++ return 0; ++ ++ printk(KERN_DEBUG ++ "Begin read chunk returned %d.\n", ++ last_result); ++ } else ++ num_submitted++; ++ ++ } while (more_readahead && !last_result && ++ (dedicated_thread || ++ (num_submitted < target_outstanding_io && ++ atomic_read(&toi_io_in_progress) < target_outstanding_io))); ++ ++ return last_result; ++} ++ ++/** ++ * bio_io_flusher - start the dedicated I/O flushing routine ++ * @writing: Whether we're writing the image. ++ **/ ++static int bio_io_flusher(int writing) ++{ ++ ++ if (writing) ++ return toi_bio_queue_flush_pages(1); ++ else ++ return toi_start_new_readahead(1); ++} ++ ++/** ++ * toi_bio_get_next_page_read - read a disk page, perhaps with readahead ++ * @no_readahead: Whether we can use readahead ++ * ++ * Read a page from disk, submitting readahead and cleaning up finished i/o ++ * while we wait for the page we're after. ++ **/ ++static int toi_bio_get_next_page_read(int no_readahead) ++{ ++ unsigned long *virt; ++ struct page *next; ++ ++ /* ++ * When reading the second page of the header, we have to ++ * delay submitting the read until after we've gotten the ++ * extents out of the first page. ++ */ ++ if (unlikely(no_readahead && toi_start_one_readahead(0))) { ++ printk(KERN_EMERG "No readahead and toi_start_one_readahead " ++ "returned non-zero.\n"); ++ return -EIO; ++ } ++ ++ if (unlikely(!readahead_list_head)) { ++ /* ++ * If the last page finishes exactly on the page ++ * boundary, we will be called one extra time and ++ * have no data to return. In this case, we should ++ * not BUG(), like we used to! ++ */ ++ if (!more_readahead) { ++ printk(KERN_EMERG "No more readahead.\n"); ++ return -ENOSPC; ++ } ++ if (unlikely(toi_start_one_readahead(0))) { ++ printk(KERN_EMERG "No readahead and " ++ "toi_start_one_readahead returned non-zero.\n"); ++ return -EIO; ++ } ++ } ++ ++ if (PageLocked(readahead_list_head)) { ++ waiting_on = readahead_list_head; ++ do_bio_wait(0); ++ } ++ ++ virt = page_address(readahead_list_head); ++ memcpy(toi_writer_buffer, virt, PAGE_SIZE); ++ ++ next = (struct page *) readahead_list_head->private; ++ toi__free_page(12, readahead_list_head); ++ readahead_list_head = next; ++ return 0; ++} ++ ++/** ++ * toi_bio_queue_flush_pages - flush the queue of pages queued for writing ++ * @dedicated_thread: Whether we're a dedicated thread ++ * ++ * Flush the queue of pages ready to be written to disk. ++ * ++ * If we're a dedicated thread, stay in here until told to leave, ++ * sleeping in wait_event. ++ * ++ * The first thread is normally the only one to come in here. Another ++ * thread can enter this routine too, though, via throttle_if_needed. ++ * Since that's the case, we must be careful to only have one thread ++ * doing this work at a time. Otherwise we have a race and could save ++ * pages out of order. ++ * ++ * If an error occurs, free all remaining pages without submitting them ++ * for I/O. ++ **/ ++ ++int toi_bio_queue_flush_pages(int dedicated_thread) ++{ ++ unsigned long flags; ++ int result = 0; ++ static DEFINE_MUTEX(busy); ++ ++ if (!mutex_trylock(&busy)) ++ return 0; ++ ++top: ++ spin_lock_irqsave(&bio_queue_lock, flags); ++ while (bio_queue_head) { ++ struct page *page = bio_queue_head; ++ bio_queue_head = (struct page *) page->private; ++ if (bio_queue_tail == page) ++ bio_queue_tail = NULL; ++ atomic_dec(&toi_bio_queue_size); ++ spin_unlock_irqrestore(&bio_queue_lock, flags); ++ ++ /* Don't generate more error messages if already had one */ ++ if (!result) ++ result = toi_bio_rw_page(WRITE, page, 0, 11); ++ /* ++ * If writing the page failed, don't drop out. ++ * Flush the rest of the queue too. ++ */ ++ if (result) ++ toi__free_page(11 , page); ++ spin_lock_irqsave(&bio_queue_lock, flags); ++ } ++ spin_unlock_irqrestore(&bio_queue_lock, flags); ++ ++ if (dedicated_thread) { ++ wait_event(toi_io_queue_flusher, bio_queue_head || ++ toi_bio_queue_flusher_should_finish); ++ if (likely(!toi_bio_queue_flusher_should_finish)) ++ goto top; ++ toi_bio_queue_flusher_should_finish = 0; ++ } ++ ++ mutex_unlock(&busy); ++ return result; ++} ++ ++/** ++ * toi_bio_get_new_page - get a new page for I/O ++ * @full_buffer: Pointer to a page to allocate. ++ **/ ++static int toi_bio_get_new_page(char **full_buffer) ++{ ++ int result = throttle_if_needed(THROTTLE_WAIT); ++ if (result) ++ return result; ++ ++ while (!*full_buffer) { ++ *full_buffer = (char *) toi_get_zeroed_page(11, TOI_ATOMIC_GFP); ++ if (!*full_buffer) { ++ set_free_mem_throttle(); ++ do_bio_wait(3); ++ } ++ } ++ ++ return 0; ++} ++ ++/** ++ * toi_rw_buffer - combine smaller buffers into PAGE_SIZE I/O ++ * @writing: Bool - whether writing (or reading). ++ * @buffer: The start of the buffer to write or fill. ++ * @buffer_size: The size of the buffer to write or fill. ++ * @no_readahead: Don't try to start readhead (when getting extents). ++ **/ ++static int toi_rw_buffer(int writing, char *buffer, int buffer_size, ++ int no_readahead) ++{ ++ int bytes_left = buffer_size, result = 0; ++ ++ while (bytes_left) { ++ char *source_start = buffer + buffer_size - bytes_left; ++ char *dest_start = toi_writer_buffer + toi_writer_buffer_posn; ++ int capacity = PAGE_SIZE - toi_writer_buffer_posn; ++ char *to = writing ? dest_start : source_start; ++ char *from = writing ? source_start : dest_start; ++ ++ if (bytes_left <= capacity) { ++ memcpy(to, from, bytes_left); ++ toi_writer_buffer_posn += bytes_left; ++ return 0; ++ } ++ ++ /* Complete this page and start a new one */ ++ memcpy(to, from, capacity); ++ bytes_left -= capacity; ++ ++ if (!writing) { ++ /* ++ * Perform actual I/O: ++ * read readahead_list_head into toi_writer_buffer ++ */ ++ int result = toi_bio_get_next_page_read(no_readahead); ++ if (result) { ++ printk("toi_bio_get_next_page_read " ++ "returned %d.\n", result); ++ return result; ++ } ++ } else { ++ toi_bio_queue_write(&toi_writer_buffer); ++ result = toi_bio_get_new_page(&toi_writer_buffer); ++ if (result) { ++ printk(KERN_ERR "toi_bio_get_new_page returned " ++ "%d.\n", result); ++ return result; ++ } ++ } ++ ++ toi_writer_buffer_posn = 0; ++ toi_cond_pause(0, NULL); ++ } ++ ++ return 0; ++} ++ ++/** ++ * toi_bio_read_page - read a page of the image ++ * @pfn: The pfn where the data belongs. ++ * @buffer_page: The page containing the (possibly compressed) data. ++ * @buf_size: The number of bytes on @buffer_page used (PAGE_SIZE). ++ * ++ * Read a (possibly compressed) page from the image, into buffer_page, ++ * returning its pfn and the buffer size. ++ **/ ++static int toi_bio_read_page(unsigned long *pfn, struct page *buffer_page, ++ unsigned int *buf_size) ++{ ++ int result = 0; ++ int this_idx; ++ char *buffer_virt = kmap(buffer_page); ++ ++ /* ++ * Only call start_new_readahead if we don't have a dedicated thread ++ * and we're the queue flusher. ++ */ ++ if (current == toi_queue_flusher && more_readahead) { ++ int result2 = toi_start_new_readahead(0); ++ if (result2) { ++ printk(KERN_DEBUG "Queue flusher and " ++ "toi_start_one_readahead returned non-zero.\n"); ++ result = -EIO; ++ goto out; ++ } ++ } ++ ++ my_mutex_lock(0, &toi_bio_mutex); ++ ++ /* ++ * Structure in the image: ++ * [destination pfn|page size|page data] ++ * buf_size is PAGE_SIZE ++ */ ++ if (toi_rw_buffer(READ, (char *) &this_idx, sizeof(int), 0) || ++ toi_rw_buffer(READ, (char *) pfn, sizeof(unsigned long), 0) || ++ toi_rw_buffer(READ, (char *) buf_size, sizeof(int), 0) || ++ toi_rw_buffer(READ, buffer_virt, *buf_size, 0)) { ++ abort_hibernate(TOI_FAILED_IO, "Read of data failed."); ++ result = 1; ++ } ++ ++ if (reset_idx) { ++ page_idx = this_idx; ++ reset_idx = 0; ++ } else { ++ page_idx++; ++ if (page_idx != this_idx) ++ printk(KERN_ERR "Got page index %d, expected %d.\n", ++ this_idx, page_idx); ++ } ++ ++ my_mutex_unlock(0, &toi_bio_mutex); ++out: ++ kunmap(buffer_page); ++ return result; ++} ++ ++/** ++ * toi_bio_write_page - write a page of the image ++ * @pfn: The pfn where the data belongs. ++ * @buffer_page: The page containing the (possibly compressed) data. ++ * @buf_size: The number of bytes on @buffer_page used. ++ * ++ * Write a (possibly compressed) page to the image from the buffer, together ++ * with it's index and buffer size. ++ **/ ++static int toi_bio_write_page(unsigned long pfn, struct page *buffer_page, ++ unsigned int buf_size) ++{ ++ char *buffer_virt; ++ int result = 0, result2 = 0; ++ ++ if (unlikely(test_action_state(TOI_TEST_FILTER_SPEED))) ++ return 0; ++ ++ my_mutex_lock(1, &toi_bio_mutex); ++ ++ if (test_result_state(TOI_ABORTED)) { ++ my_mutex_unlock(1, &toi_bio_mutex); ++ return -EIO; ++ } ++ ++ buffer_virt = kmap(buffer_page); ++ page_idx++; ++ ++ /* ++ * Structure in the image: ++ * [destination pfn|page size|page data] ++ * buf_size is PAGE_SIZE ++ */ ++ if (toi_rw_buffer(WRITE, (char *) &page_idx, sizeof(int), 0) || ++ toi_rw_buffer(WRITE, (char *) &pfn, sizeof(unsigned long), 0) || ++ toi_rw_buffer(WRITE, (char *) &buf_size, sizeof(int), 0) || ++ toi_rw_buffer(WRITE, buffer_virt, buf_size, 0)) { ++ printk(KERN_DEBUG "toi_rw_buffer returned non-zero to " ++ "toi_bio_write_page.\n"); ++ result = -EIO; ++ } ++ ++ kunmap(buffer_page); ++ my_mutex_unlock(1, &toi_bio_mutex); ++ ++ if (current == toi_queue_flusher) ++ result2 = toi_bio_queue_flush_pages(0); ++ ++ return result ? result : result2; ++} ++ ++/** ++ * _toi_rw_header_chunk - read or write a portion of the image header ++ * @writing: Whether reading or writing. ++ * @owner: The module for which we're writing. ++ * Used for confirming that modules ++ * don't use more header space than they asked for. ++ * @buffer: Address of the data to write. ++ * @buffer_size: Size of the data buffer. ++ * @no_readahead: Don't try to start readhead (when getting extents). ++ * ++ * Perform PAGE_SIZE I/O. Start readahead if needed. ++ **/ ++static int _toi_rw_header_chunk(int writing, struct toi_module_ops *owner, ++ char *buffer, int buffer_size, int no_readahead) ++{ ++ int result = 0; ++ ++ if (owner) { ++ owner->header_used += buffer_size; ++ toi_message(TOI_HEADER, TOI_LOW, 1, ++ "Header: %s : %d bytes (%d/%d) from offset %d.", ++ owner->name, ++ buffer_size, owner->header_used, ++ owner->header_requested, ++ toi_writer_buffer_posn); ++ if (owner->header_used > owner->header_requested && writing) { ++ printk(KERN_EMERG "TuxOnIce module %s is using more " ++ "header space (%u) than it requested (%u).\n", ++ owner->name, ++ owner->header_used, ++ owner->header_requested); ++ return buffer_size; ++ } ++ } else { ++ unowned += buffer_size; ++ toi_message(TOI_HEADER, TOI_LOW, 1, ++ "Header: (No owner): %d bytes (%d total so far) from " ++ "offset %d.", buffer_size, unowned, ++ toi_writer_buffer_posn); ++ } ++ ++ if (!writing && !no_readahead && more_readahead) { ++ result = toi_start_new_readahead(0); ++ toi_message(TOI_IO, TOI_VERBOSE, 0, "Start new readahead " ++ "returned %d.", result); ++ } ++ ++ if (!result) { ++ result = toi_rw_buffer(writing, buffer, buffer_size, ++ no_readahead); ++ toi_message(TOI_IO, TOI_VERBOSE, 0, "rw_buffer returned " ++ "%d.", result); ++ } ++ ++ total_header_bytes += buffer_size; ++ toi_message(TOI_IO, TOI_VERBOSE, 0, "_toi_rw_header_chunk returning " ++ "%d.", result); ++ return result; ++} ++ ++static int toi_rw_header_chunk(int writing, struct toi_module_ops *owner, ++ char *buffer, int size) ++{ ++ return _toi_rw_header_chunk(writing, owner, buffer, size, 1); ++} ++ ++static int toi_rw_header_chunk_noreadahead(int writing, ++ struct toi_module_ops *owner, char *buffer, int size) ++{ ++ return _toi_rw_header_chunk(writing, owner, buffer, size, 1); ++} ++ ++/** ++ * toi_bio_storage_needed - get the amount of storage needed for my fns ++ **/ ++static int toi_bio_storage_needed(void) ++{ ++ return sizeof(int) + PAGE_SIZE + toi_bio_devinfo_storage_needed(); ++} ++ ++/** ++ * toi_bio_save_config_info - save block I/O config to image header ++ * @buf: PAGE_SIZE'd buffer into which data should be saved. ++ **/ ++static int toi_bio_save_config_info(char *buf) ++{ ++ int *ints = (int *) buf; ++ ints[0] = target_outstanding_io; ++ return sizeof(int); ++} ++ ++/** ++ * toi_bio_load_config_info - restore block I/O config ++ * @buf: Data to be reloaded. ++ * @size: Size of the buffer saved. ++ **/ ++static void toi_bio_load_config_info(char *buf, int size) ++{ ++ int *ints = (int *) buf; ++ target_outstanding_io = ints[0]; ++} ++ ++void close_resume_dev_t(int force) ++{ ++ if (!resume_block_device) ++ return; ++ ++ if (force) ++ atomic_set(&resume_bdev_open_count, 0); ++ else ++ atomic_dec(&resume_bdev_open_count); ++ ++ if (!atomic_read(&resume_bdev_open_count)) { ++ toi_close_bdev(resume_block_device); ++ resume_block_device = NULL; ++ } ++} ++ ++int open_resume_dev_t(int force, int quiet) ++{ ++ if (force) { ++ close_resume_dev_t(1); ++ atomic_set(&resume_bdev_open_count, 1); ++ } else ++ atomic_inc(&resume_bdev_open_count); ++ ++ if (resume_block_device) ++ return 0; ++ ++ resume_block_device = toi_open_bdev(NULL, resume_dev_t, 0); ++ if (IS_ERR(resume_block_device)) { ++ if (!quiet) ++ toi_early_boot_message(1, TOI_CONTINUE_REQ, ++ "Failed to open device %x, where" ++ " the header should be found.", ++ resume_dev_t); ++ resume_block_device = NULL; ++ atomic_set(&resume_bdev_open_count, 0); ++ return 1; ++ } ++ ++ return 0; ++} ++ ++/** ++ * toi_bio_initialise - initialise bio code at start of some action ++ * @starting_cycle: Whether starting a hibernation cycle, or just reading or ++ * writing a sysfs value. ++ **/ ++static int toi_bio_initialise(int starting_cycle) ++{ ++ int result; ++ ++ if (!starting_cycle || !resume_dev_t) ++ return 0; ++ ++ max_outstanding_writes = 0; ++ max_outstanding_reads = 0; ++ current_stream = 0; ++ toi_queue_flusher = current; ++#ifdef MEASURE_MUTEX_CONTENTION ++ { ++ int i, j, k; ++ ++ for (i = 0; i < 2; i++) ++ for (j = 0; j < 2; j++) ++ for_each_online_cpu(k) ++ mutex_times[i][j][k] = 0; ++ } ++#endif ++ result = open_resume_dev_t(0, 1); ++ ++ if (result) ++ return result; ++ ++ return get_signature_page(); ++} ++ ++static unsigned long raw_to_real(unsigned long raw) ++{ ++ unsigned long result; ++ ++ result = raw - (raw * (sizeof(unsigned long) + sizeof(int)) + ++ (PAGE_SIZE + sizeof(unsigned long) + sizeof(int) + 1)) / ++ (PAGE_SIZE + sizeof(unsigned long) + sizeof(int)); ++ ++ return result < 0 ? 0 : result; ++} ++ ++static unsigned long toi_bio_storage_available(void) ++{ ++ unsigned long sum = 0; ++ struct toi_module_ops *this_module; ++ ++ list_for_each_entry(this_module, &toi_modules, module_list) { ++ if (!this_module->enabled || ++ this_module->type != BIO_ALLOCATOR_MODULE) ++ continue; ++ toi_message(TOI_IO, TOI_VERBOSE, 0, "Seeking storage " ++ "available from %s.", this_module->name); ++ sum += this_module->bio_allocator_ops->storage_available(); ++ } ++ ++ toi_message(TOI_IO, TOI_VERBOSE, 0, "Total storage available is %lu " ++ "pages.", sum); ++ return raw_to_real(sum - header_pages_reserved); ++ ++} ++ ++static unsigned long toi_bio_storage_allocated(void) ++{ ++ return raw_pages_allocd > header_pages_reserved ? ++ raw_to_real(raw_pages_allocd - header_pages_reserved) : 0; ++} ++ ++/* ++ * If we have read part of the image, we might have filled memory with ++ * data that should be zeroed out. ++ */ ++static void toi_bio_noresume_reset(void) ++{ ++ toi_message(TOI_IO, TOI_VERBOSE, 0, "toi_bio_noresume_reset."); ++ toi_rw_cleanup(READ); ++ free_all_bdev_info(); ++} ++ ++/** ++ * toi_bio_cleanup - cleanup after some action ++ * @finishing_cycle: Whether completing a cycle. ++ **/ ++static void toi_bio_cleanup(int finishing_cycle) ++{ ++ if (!finishing_cycle) ++ return; ++ ++ if (toi_writer_buffer) { ++ toi_free_page(11, (unsigned long) toi_writer_buffer); ++ toi_writer_buffer = NULL; ++ } ++ ++ forget_signature_page(); ++ ++ if (header_block_device && toi_sig_data && ++ toi_sig_data->header_dev_t != resume_dev_t) ++ toi_close_bdev(header_block_device); ++ ++ header_block_device = NULL; ++ ++ close_resume_dev_t(0); ++} ++ ++static int toi_bio_write_header_init(void) ++{ ++ int result; ++ ++ toi_message(TOI_IO, TOI_VERBOSE, 0, "toi_bio_write_header_init"); ++ toi_rw_init(WRITE, 0); ++ toi_writer_buffer_posn = 0; ++ ++ /* Info needed to bootstrap goes at the start of the header. ++ * First we save the positions and devinfo, including the number ++ * of header pages. Then we save the structs containing data needed ++ * for reading the header pages back. ++ * Note that even if header pages take more than one page, when we ++ * read back the info, we will have restored the location of the ++ * next header page by the time we go to use it. ++ */ ++ ++ toi_message(TOI_IO, TOI_VERBOSE, 0, "serialise extent chains."); ++ result = toi_serialise_extent_chains(); ++ ++ if (result) ++ return result; ++ ++ /* ++ * Signature page hasn't been modified at this point. Write it in ++ * the header so we can restore it later. ++ */ ++ toi_message(TOI_IO, TOI_VERBOSE, 0, "serialise signature page."); ++ return toi_rw_header_chunk_noreadahead(WRITE, &toi_blockwriter_ops, ++ (char *) toi_cur_sig_page, ++ PAGE_SIZE); ++} ++ ++static int toi_bio_write_header_cleanup(void) ++{ ++ int result = 0; ++ ++ if (toi_writer_buffer_posn) ++ toi_bio_queue_write(&toi_writer_buffer); ++ ++ result = toi_finish_all_io(); ++ ++ unowned = 0; ++ total_header_bytes = 0; ++ ++ /* Set signature to save we have an image */ ++ if (!result) ++ result = toi_bio_mark_have_image(); ++ ++ return result; ++} ++ ++/* ++ * toi_bio_read_header_init() ++ * ++ * Description: ++ * 1. Attempt to read the device specified with resume=. ++ * 2. Check the contents of the swap header for our signature. ++ * 3. Warn, ignore, reset and/or continue as appropriate. ++ * 4. If continuing, read the toi_swap configuration section ++ * of the header and set up block device info so we can read ++ * the rest of the header & image. ++ * ++ * Returns: ++ * May not return if user choose to reboot at a warning. ++ * -EINVAL if cannot resume at this time. Booting should continue ++ * normally. ++ */ ++ ++static int toi_bio_read_header_init(void) ++{ ++ int result = 0; ++ char buf[32]; ++ ++ toi_writer_buffer_posn = 0; ++ ++ toi_message(TOI_IO, TOI_VERBOSE, 0, "toi_bio_read_header_init"); ++ ++ if (!toi_sig_data) { ++ printk(KERN_INFO "toi_bio_read_header_init called when we " ++ "haven't verified there is an image!\n"); ++ return -EINVAL; ++ } ++ ++ /* ++ * If the header is not on the resume_swap_dev_t, get the resume device ++ * first. ++ */ ++ toi_message(TOI_IO, TOI_VERBOSE, 0, "Header dev_t is %lx.", ++ toi_sig_data->header_dev_t); ++ if (toi_sig_data->have_uuid) { ++ dev_t device; ++ device = blk_lookup_uuid(toi_sig_data->header_uuid); ++ if (device) { ++ printk("Using dev_t %s, returned by blk_lookup_uuid.\n", ++ format_dev_t(buf, device)); ++ toi_sig_data->header_dev_t = device; ++ } ++ } ++ if (toi_sig_data->header_dev_t != resume_dev_t) { ++ header_block_device = toi_open_bdev(NULL, ++ toi_sig_data->header_dev_t, 1); ++ ++ if (IS_ERR(header_block_device)) ++ return PTR_ERR(header_block_device); ++ } else ++ header_block_device = resume_block_device; ++ ++ if (!toi_writer_buffer) ++ toi_writer_buffer = (char *) toi_get_zeroed_page(11, ++ TOI_ATOMIC_GFP); ++ more_readahead = 1; ++ ++ /* ++ * Read toi_swap configuration. ++ * Headerblock size taken into account already. ++ */ ++ result = toi_bio_ops.bdev_page_io(READ, header_block_device, ++ toi_sig_data->first_header_block, ++ virt_to_page((unsigned long) toi_writer_buffer)); ++ if (result) ++ return result; ++ ++ toi_message(TOI_IO, TOI_VERBOSE, 0, "load extent chains."); ++ result = toi_load_extent_chains(); ++ ++ toi_message(TOI_IO, TOI_VERBOSE, 0, "load original signature page."); ++ toi_orig_sig_page = (char *) toi_get_zeroed_page(38, TOI_ATOMIC_GFP); ++ if (!toi_orig_sig_page) { ++ printk(KERN_ERR "Failed to allocate memory for the current" ++ " image signature.\n"); ++ return -ENOMEM; ++ } ++ ++ return toi_rw_header_chunk_noreadahead(READ, &toi_blockwriter_ops, ++ (char *) toi_orig_sig_page, ++ PAGE_SIZE); ++} ++ ++static int toi_bio_read_header_cleanup(void) ++{ ++ toi_message(TOI_IO, TOI_VERBOSE, 0, "toi_bio_read_header_cleanup."); ++ return toi_rw_cleanup(READ); ++} ++ ++/* Works only for digits and letters, but small and fast */ ++#define TOLOWER(x) ((x) | 0x20) ++ ++/* ++ * UUID must be 32 chars long. It may have dashes, but nothing ++ * else. ++ */ ++char *uuid_from_commandline(char *commandline) ++{ ++ int low = 0; ++ char *result = NULL, *output, *ptr; ++ ++ if (strncmp(commandline, "UUID=", 5)) ++ return NULL; ++ ++ result = kzalloc(17, GFP_KERNEL); ++ if (!result) { ++ printk("Failed to kzalloc UUID text memory.\n"); ++ return NULL; ++ } ++ ++ ptr = commandline + 5; ++ output = result; ++ ++ while (*ptr && (output - result) < 16) { ++ if (isxdigit(*ptr)) { ++ int value = isdigit(*ptr) ? *ptr - '0' : ++ TOLOWER(*ptr) - 'a' + 10; ++ if (low) { ++ *output += value; ++ output++; ++ } else { ++ *output = value << 4; ++ } ++ low = !low; ++ } else if (*ptr != '-') ++ break; ++ ptr++; ++ } ++ ++ if ((output - result) < 16 || *ptr) { ++ printk(KERN_DEBUG "Found resume=UUID=, but the value looks " ++ "invalid.\n"); ++ kfree(result); ++ result = NULL; ++ } ++ ++ return result; ++} ++ ++#define retry_if_fails(command) \ ++do { \ ++ command; \ ++ if (!resume_dev_t && !waited_for_device_probe) { \ ++ wait_for_device_probe(); \ ++ scsi_complete_async_scans(); \ ++ command; \ ++ waited_for_device_probe = 1; \ ++ } \ ++} while(0) ++ ++/** ++ * try_to_open_resume_device: Try to parse and open resume= ++ * ++ * Any "swap:" has been stripped away and we just have the path to deal with. ++ * We attempt to do name_to_dev_t, open and stat the file. Having opened the ++ * file, get the struct block_device * to match. ++ */ ++static int try_to_open_resume_device(char *commandline, int quiet) ++{ ++ struct kstat stat; ++ int error = 0; ++ char *uuid = uuid_from_commandline(commandline); ++ int waited_for_device_probe = 0; ++ ++ resume_dev_t = MKDEV(0, 0); ++ ++ if (!strlen(commandline)) ++ retry_if_fails(toi_bio_scan_for_image(quiet)); ++ ++ if (uuid) { ++ retry_if_fails(resume_dev_t = blk_lookup_uuid(uuid)); ++ kfree(uuid); ++ } ++ ++ if (!resume_dev_t) ++ retry_if_fails(resume_dev_t = name_to_dev_t(commandline)); ++ ++ if (!resume_dev_t) { ++ struct file *file = filp_open(commandline, ++ O_RDONLY|O_LARGEFILE, 0); ++ ++ if (!IS_ERR(file) && file) { ++ vfs_getattr(file->f_vfsmnt, file->f_dentry, &stat); ++ filp_close(file, NULL); ++ } else ++ error = vfs_stat(commandline, &stat); ++ if (!error) ++ resume_dev_t = stat.rdev; ++ } ++ ++ if (!resume_dev_t) { ++ if (quiet) ++ return 1; ++ ++ if (test_toi_state(TOI_TRYING_TO_RESUME)) ++ toi_early_boot_message(1, toi_translate_err_default, ++ "Failed to translate \"%s\" into a device id.\n", ++ commandline); ++ else ++ printk("TuxOnIce: Can't translate \"%s\" into a device " ++ "id yet.\n", commandline); ++ return 1; ++ } ++ ++ return open_resume_dev_t(1, quiet); ++} ++ ++/* ++ * Parse Image Location ++ * ++ * Attempt to parse a resume= parameter. ++ * Swap Writer accepts: ++ * resume=[swap:|file:]DEVNAME[:FIRSTBLOCK][@BLOCKSIZE] ++ * ++ * Where: ++ * DEVNAME is convertable to a dev_t by name_to_dev_t ++ * FIRSTBLOCK is the location of the first block in the swap file ++ * (specifying for a swap partition is nonsensical but not prohibited). ++ * Data is validated by attempting to read a swap header from the ++ * location given. Failure will result in toi_swap refusing to ++ * save an image, and a reboot with correct parameters will be ++ * necessary. ++ */ ++static int toi_bio_parse_sig_location(char *commandline, ++ int only_allocator, int quiet) ++{ ++ char *thischar, *devstart, *colon = NULL; ++ int signature_found, result = -EINVAL, temp_result = 0; ++ ++ if (strncmp(commandline, "swap:", 5) && ++ strncmp(commandline, "file:", 5)) { ++ /* ++ * Failing swap:, we'll take a simple resume=/dev/hda2, or a ++ * blank value (scan) but fall through to other allocators ++ * if /dev/ or UUID= isn't matched. ++ */ ++ if (strncmp(commandline, "/dev/", 5) && ++ strncmp(commandline, "UUID=", 5) && ++ strlen(commandline)) ++ return 1; ++ } else ++ commandline += 5; ++ ++ devstart = commandline; ++ thischar = commandline; ++ while ((*thischar != ':') && (*thischar != '@') && ++ ((thischar - commandline) < 250) && (*thischar)) ++ thischar++; ++ ++ if (*thischar == ':') { ++ colon = thischar; ++ *colon = 0; ++ thischar++; ++ } ++ ++ while ((thischar - commandline) < 250 && *thischar) ++ thischar++; ++ ++ if (colon) { ++ unsigned long block; ++ temp_result = strict_strtoul(colon + 1, 0, &block); ++ if (!temp_result) ++ resume_firstblock = (int) block; ++ } else ++ resume_firstblock = 0; ++ ++ clear_toi_state(TOI_CAN_HIBERNATE); ++ clear_toi_state(TOI_CAN_RESUME); ++ ++ if (!temp_result) ++ temp_result = try_to_open_resume_device(devstart, quiet); ++ ++ if (colon) ++ *colon = ':'; ++ ++ /* No error if we only scanned */ ++ if (temp_result) ++ return strlen(commandline) ? -EINVAL : 1; ++ ++ signature_found = toi_bio_image_exists(quiet); ++ ++ if (signature_found != -1) { ++ result = 0; ++ /* ++ * TODO: If only file storage, CAN_HIBERNATE should only be ++ * set if file allocator's target is valid. ++ */ ++ set_toi_state(TOI_CAN_HIBERNATE); ++ set_toi_state(TOI_CAN_RESUME); ++ } else ++ if (!quiet) ++ printk(KERN_ERR "TuxOnIce: Block I/O: No " ++ "signature found at %s.\n", devstart); ++ ++ close_resume_dev_t(0); ++ return result; ++} ++ ++static void toi_bio_release_storage(void) ++{ ++ header_pages_reserved = 0; ++ raw_pages_allocd = 0; ++ ++ free_all_bdev_info(); ++} ++ ++/* toi_swap_remove_image ++ * ++ */ ++static int toi_bio_remove_image(void) ++{ ++ int result; ++ ++ toi_message(TOI_IO, TOI_VERBOSE, 0, "toi_bio_remove_image."); ++ ++ result = toi_bio_restore_original_signature(); ++ ++ /* ++ * We don't do a sanity check here: we want to restore the swap ++ * whatever version of kernel made the hibernate image. ++ * ++ * We need to write swap, but swap may not be enabled so ++ * we write the device directly ++ * ++ * If we don't have an current_signature_page, we didn't ++ * read an image header, so don't change anything. ++ */ ++ ++ toi_bio_release_storage(); ++ ++ return result; ++} ++ ++struct toi_bio_ops toi_bio_ops = { ++ .bdev_page_io = toi_bdev_page_io, ++ .register_storage = toi_register_storage_chain, ++ .free_storage = toi_bio_release_storage, ++}; ++EXPORT_SYMBOL_GPL(toi_bio_ops); ++ ++static struct toi_sysfs_data sysfs_params[] = { ++ SYSFS_INT("target_outstanding_io", SYSFS_RW, &target_outstanding_io, ++ 0, 16384, 0, NULL), ++}; ++ ++struct toi_module_ops toi_blockwriter_ops = { ++ .type = WRITER_MODULE, ++ .name = "block i/o", ++ .directory = "block_io", ++ .module = THIS_MODULE, ++ .memory_needed = toi_bio_memory_needed, ++ .print_debug_info = toi_bio_print_debug_stats, ++ .storage_needed = toi_bio_storage_needed, ++ .save_config_info = toi_bio_save_config_info, ++ .load_config_info = toi_bio_load_config_info, ++ .initialise = toi_bio_initialise, ++ .cleanup = toi_bio_cleanup, ++ .post_atomic_restore = toi_bio_chains_post_atomic, ++ ++ .rw_init = toi_rw_init, ++ .rw_cleanup = toi_rw_cleanup, ++ .read_page = toi_bio_read_page, ++ .write_page = toi_bio_write_page, ++ .rw_header_chunk = toi_rw_header_chunk, ++ .rw_header_chunk_noreadahead = toi_rw_header_chunk_noreadahead, ++ .io_flusher = bio_io_flusher, ++ .update_throughput_throttle = update_throughput_throttle, ++ .finish_all_io = toi_finish_all_io, ++ ++ .noresume_reset = toi_bio_noresume_reset, ++ .storage_available = toi_bio_storage_available, ++ .storage_allocated = toi_bio_storage_allocated, ++ .reserve_header_space = toi_bio_reserve_header_space, ++ .allocate_storage = toi_bio_allocate_storage, ++ .image_exists = toi_bio_image_exists, ++ .mark_resume_attempted = toi_bio_mark_resume_attempted, ++ .write_header_init = toi_bio_write_header_init, ++ .write_header_cleanup = toi_bio_write_header_cleanup, ++ .read_header_init = toi_bio_read_header_init, ++ .read_header_cleanup = toi_bio_read_header_cleanup, ++ .get_header_version = toi_bio_get_header_version, ++ .remove_image = toi_bio_remove_image, ++ .parse_sig_location = toi_bio_parse_sig_location, ++ ++ .sysfs_data = sysfs_params, ++ .num_sysfs_entries = sizeof(sysfs_params) / ++ sizeof(struct toi_sysfs_data), ++}; ++ ++/** ++ * toi_block_io_load - load time routine for block I/O module ++ * ++ * Register block i/o ops and sysfs entries. ++ **/ ++static __init int toi_block_io_load(void) ++{ ++ return toi_register_module(&toi_blockwriter_ops); ++} ++ ++#ifdef MODULE ++static __exit void toi_block_io_unload(void) ++{ ++ toi_unregister_module(&toi_blockwriter_ops); ++} ++ ++module_init(toi_block_io_load); ++module_exit(toi_block_io_unload); ++MODULE_LICENSE("GPL"); ++MODULE_AUTHOR("Nigel Cunningham"); ++MODULE_DESCRIPTION("TuxOnIce block io functions"); ++#else ++late_initcall(toi_block_io_load); ++#endif +diff --git a/kernel/power/tuxonice_bio_internal.h b/kernel/power/tuxonice_bio_internal.h +new file mode 100644 +index 0000000..58c2481 +--- /dev/null ++++ b/kernel/power/tuxonice_bio_internal.h +@@ -0,0 +1,86 @@ ++/* ++ * kernel/power/tuxonice_bio_internal.h ++ * ++ * Copyright (C) 2009-2010 Nigel Cunningham (nigel at tuxonice net) ++ * ++ * Distributed under GPLv2. ++ * ++ * This file contains declarations for functions exported from ++ * tuxonice_bio.c, which contains low level io functions. ++ */ ++ ++/* Extent chains */ ++void toi_extent_state_goto_start(void); ++void toi_extent_state_save(int slot); ++int go_next_page(int writing, int section_barrier); ++void toi_extent_state_restore(int slot); ++void free_all_bdev_info(void); ++int devices_of_same_priority(struct toi_bdev_info *this); ++int toi_register_storage_chain(struct toi_bdev_info *new); ++int toi_serialise_extent_chains(void); ++int toi_load_extent_chains(void); ++int toi_bio_rw_page(int writing, struct page *page, int is_readahead, ++ int free_group); ++int toi_bio_restore_original_signature(void); ++int toi_bio_devinfo_storage_needed(void); ++unsigned long get_headerblock(void); ++dev_t get_header_dev_t(void); ++struct block_device *get_header_bdev(void); ++int toi_bio_allocate_storage(unsigned long request); ++ ++/* Signature functions */ ++#define HaveImage "HaveImage" ++#define NoImage "TuxOnIce" ++#define sig_size (sizeof(HaveImage)) ++ ++struct sig_data { ++ char sig[sig_size]; ++ int have_image; ++ int resumed_before; ++ ++ char have_uuid; ++ char header_uuid[17]; ++ dev_t header_dev_t; ++ unsigned long first_header_block; ++ ++ /* Repeat the signature to be sure we have a header version */ ++ char sig2[sig_size]; ++ int header_version; ++}; ++ ++void forget_signature_page(void); ++int toi_check_for_signature(void); ++int toi_bio_image_exists(int quiet); ++int get_signature_page(void); ++int toi_bio_mark_resume_attempted(int); ++extern char *toi_cur_sig_page; ++extern char *toi_orig_sig_page; ++int toi_bio_mark_have_image(void); ++extern struct sig_data *toi_sig_data; ++extern dev_t resume_dev_t; ++extern struct block_device *resume_block_device; ++extern struct block_device *header_block_device; ++extern unsigned long resume_firstblock; ++ ++struct block_device *open_bdev(dev_t device, int display_errs); ++extern int current_stream; ++extern int more_readahead; ++int toi_do_io(int writing, struct block_device *bdev, long block0, ++ struct page *page, int is_readahead, int syncio, int free_group); ++int get_main_pool_phys_params(void); ++ ++void toi_close_bdev(struct block_device *bdev); ++struct block_device *toi_open_bdev(char *uuid, dev_t default_device, ++ int display_errs); ++ ++extern struct toi_module_ops toi_blockwriter_ops; ++void dump_block_chains(void); ++void debug_broken_header(void); ++extern unsigned long raw_pages_allocd, header_pages_reserved; ++int toi_bio_chains_debug_info(char *buffer, int size); ++void toi_bio_chains_post_atomic(struct toi_boot_kernel_data *bkd); ++int toi_bio_scan_for_image(int quiet); ++int toi_bio_get_header_version(void); ++ ++void close_resume_dev_t(int force); ++int open_resume_dev_t(int force, int quiet); +diff --git a/kernel/power/tuxonice_bio_signature.c b/kernel/power/tuxonice_bio_signature.c +new file mode 100644 +index 0000000..e6f6cc8 +--- /dev/null ++++ b/kernel/power/tuxonice_bio_signature.c +@@ -0,0 +1,410 @@ ++/* ++ * kernel/power/tuxonice_bio_signature.c ++ * ++ * Copyright (C) 2004-2010 Nigel Cunningham (nigel at tuxonice net) ++ * ++ * Distributed under GPLv2. ++ * ++ */ ++ ++#include ++ ++#include "tuxonice.h" ++#include "tuxonice_sysfs.h" ++#include "tuxonice_modules.h" ++#include "tuxonice_prepare_image.h" ++#include "tuxonice_bio.h" ++#include "tuxonice_ui.h" ++#include "tuxonice_alloc.h" ++#include "tuxonice_io.h" ++#include "tuxonice_builtin.h" ++#include "tuxonice_bio_internal.h" ++ ++struct sig_data *toi_sig_data; ++ ++/* Struct of swap header pages */ ++ ++struct old_sig_data { ++ dev_t device; ++ unsigned long sector; ++ int resume_attempted; ++ int orig_sig_type; ++}; ++ ++union diskpage { ++ union swap_header swh; /* swh.magic is the only member used */ ++ struct sig_data sig_data; ++ struct old_sig_data old_sig_data; ++}; ++ ++union p_diskpage { ++ union diskpage *pointer; ++ char *ptr; ++ unsigned long address; ++}; ++ ++char *toi_cur_sig_page; ++char *toi_orig_sig_page; ++int have_image; ++int have_old_image; ++ ++int get_signature_page(void) ++{ ++ if (!toi_cur_sig_page) { ++ toi_message(TOI_IO, TOI_VERBOSE, 0, ++ "Allocating current signature page."); ++ toi_cur_sig_page = (char *) toi_get_zeroed_page(38, ++ TOI_ATOMIC_GFP); ++ if (!toi_cur_sig_page) { ++ printk(KERN_ERR "Failed to allocate memory for the " ++ "current image signature.\n"); ++ return -ENOMEM; ++ } ++ ++ toi_sig_data = (struct sig_data *) toi_cur_sig_page; ++ } ++ ++ toi_message(TOI_IO, TOI_VERBOSE, 0, "Reading signature from dev %lx," ++ " sector %d.", ++ resume_block_device->bd_dev, resume_firstblock); ++ ++ return toi_bio_ops.bdev_page_io(READ, resume_block_device, ++ resume_firstblock, virt_to_page(toi_cur_sig_page)); ++} ++ ++void forget_signature_page(void) ++{ ++ if (toi_cur_sig_page) { ++ toi_sig_data = NULL; ++ toi_message(TOI_IO, TOI_VERBOSE, 0, "Freeing toi_cur_sig_page" ++ " (%p).", toi_cur_sig_page); ++ toi_free_page(38, (unsigned long) toi_cur_sig_page); ++ toi_cur_sig_page = NULL; ++ } ++ ++ if (toi_orig_sig_page) { ++ toi_message(TOI_IO, TOI_VERBOSE, 0, "Freeing toi_orig_sig_page" ++ " (%p).", toi_orig_sig_page); ++ toi_free_page(38, (unsigned long) toi_orig_sig_page); ++ toi_orig_sig_page = NULL; ++ } ++} ++ ++/* ++ * We need to ensure we use the signature page that's currently on disk, ++ * so as to not remove the image header. Post-atomic-restore, the orig sig ++ * page will be empty, so we can use that as our method of knowing that we ++ * need to load the on-disk signature and not use the non-image sig in ++ * memory. (We're going to powerdown after writing the change, so it's safe. ++ */ ++int toi_bio_mark_resume_attempted(int flag) ++{ ++ toi_message(TOI_IO, TOI_VERBOSE, 0, "Make resume attempted = %d.", ++ flag); ++ if (!toi_orig_sig_page) { ++ forget_signature_page(); ++ get_signature_page(); ++ } ++ toi_sig_data->resumed_before = flag; ++ return toi_bio_ops.bdev_page_io(WRITE, resume_block_device, ++ resume_firstblock, virt_to_page(toi_cur_sig_page)); ++} ++ ++int toi_bio_mark_have_image(void) ++{ ++ int result = 0; ++ char buf[32]; ++ struct fs_info *fs_info; ++ ++ toi_message(TOI_IO, TOI_VERBOSE, 0, "Recording that an image exists."); ++ memcpy(toi_sig_data->sig, tuxonice_signature, ++ sizeof(tuxonice_signature)); ++ toi_sig_data->have_image = 1; ++ toi_sig_data->resumed_before = 0; ++ toi_sig_data->header_dev_t = get_header_dev_t(); ++ toi_sig_data->have_uuid = 0; ++ ++ fs_info = fs_info_from_block_dev(get_header_bdev()); ++ if (fs_info && !IS_ERR(fs_info)) { ++ memcpy(toi_sig_data->header_uuid, &fs_info->uuid, 16); ++ free_fs_info(fs_info); ++ } else ++ result = (int) PTR_ERR(fs_info); ++ ++ if (!result) { ++ toi_message(TOI_IO, TOI_VERBOSE, 0, "Got uuid for dev_t %s.", ++ format_dev_t(buf, get_header_dev_t())); ++ toi_sig_data->have_uuid = 1; ++ } else ++ toi_message(TOI_IO, TOI_VERBOSE, 0, "Could not get uuid for " ++ "dev_t %s.", ++ format_dev_t(buf, get_header_dev_t())); ++ ++ toi_sig_data->first_header_block = get_headerblock(); ++ have_image = 1; ++ toi_message(TOI_IO, TOI_VERBOSE, 0, "header dev_t is %x. First block " ++ "is %d.", toi_sig_data->header_dev_t, ++ toi_sig_data->first_header_block); ++ ++ memcpy(toi_sig_data->sig2, tuxonice_signature, ++ sizeof(tuxonice_signature)); ++ toi_sig_data->header_version = TOI_HEADER_VERSION; ++ ++ return toi_bio_ops.bdev_page_io(WRITE, resume_block_device, ++ resume_firstblock, virt_to_page(toi_cur_sig_page)); ++} ++ ++int remove_old_signature(void) ++{ ++ union p_diskpage swap_header_page = (union p_diskpage) toi_cur_sig_page; ++ char *orig_sig, *no_image_signature_contents; ++ char *header_start = (char *) toi_get_zeroed_page(38, TOI_ATOMIC_GFP); ++ int result; ++ struct block_device *header_bdev; ++ struct old_sig_data *old_sig_data = ++ &swap_header_page.pointer->old_sig_data; ++ ++ header_bdev = toi_open_bdev(NULL, old_sig_data->device, 1); ++ result = toi_bio_ops.bdev_page_io(READ, header_bdev, ++ old_sig_data->sector, virt_to_page(header_start)); ++ ++ if (result) ++ goto out; ++ ++ /* ++ * TODO: Get the original contents of the first bytes of the swap ++ * header page. ++ */ ++ if (!old_sig_data->orig_sig_type) ++ orig_sig = "SWAP-SPACE"; ++ else ++ orig_sig = "SWAPSPACE2"; ++ ++ memcpy(swap_header_page.pointer->swh.magic.magic, orig_sig, 10); ++ memcpy(swap_header_page.ptr, header_start, ++ sizeof(no_image_signature_contents)); ++ ++ result = toi_bio_ops.bdev_page_io(WRITE, resume_block_device, ++ resume_firstblock, virt_to_page(swap_header_page.ptr)); ++ ++out: ++ toi_close_bdev(header_bdev); ++ have_old_image = 0; ++ toi_free_page(38, (unsigned long) header_start); ++ return result; ++} ++ ++/* ++ * toi_bio_restore_original_signature - restore the original signature ++ * ++ * At boot time (aborting pre atomic-restore), toi_orig_sig_page gets used. ++ * It will have the original signature page contents, stored in the image ++ * header. Post atomic-restore, we use :toi_cur_sig_page, which will contain ++ * the contents that were loaded when we started the cycle. ++ */ ++int toi_bio_restore_original_signature(void) ++{ ++ char *use = toi_orig_sig_page ? toi_orig_sig_page : toi_cur_sig_page; ++ ++ if (have_old_image) ++ return remove_old_signature(); ++ ++ if (!use) { ++ printk("toi_bio_restore_original_signature: No signature " ++ "page loaded.\n"); ++ return 0; ++ } ++ ++ toi_message(TOI_IO, TOI_VERBOSE, 0, "Recording that no image exists."); ++ have_image = 0; ++ toi_sig_data->have_image = 0; ++ return toi_bio_ops.bdev_page_io(WRITE, resume_block_device, ++ resume_firstblock, virt_to_page(use)); ++} ++ ++/* ++ * check_for_signature - See whether we have an image. ++ * ++ * Returns 0 if no image, 1 if there is one, -1 if indeterminate. ++ */ ++int toi_check_for_signature(void) ++{ ++ union p_diskpage swap_header_page; ++ int type; ++ const char *normal_sigs[] = {"SWAP-SPACE", "SWAPSPACE2" }; ++ const char *swsusp_sigs[] = {"S1SUSP", "S2SUSP", "S1SUSPEND" }; ++ char *swap_header; ++ ++ if (!toi_cur_sig_page) { ++ int result = get_signature_page(); ++ ++ if (result) ++ return result; ++ } ++ ++ /* ++ * Start by looking for the binary header. ++ */ ++ if (!memcmp(tuxonice_signature, toi_cur_sig_page, ++ sizeof(tuxonice_signature))) { ++ have_image = toi_sig_data->have_image; ++ toi_message(TOI_IO, TOI_VERBOSE, 0, "Have binary signature. " ++ "Have image is %d.", have_image); ++ if (have_image) ++ toi_message(TOI_IO, TOI_VERBOSE, 0, "header dev_t is " ++ "%x. First block is %d.", ++ toi_sig_data->header_dev_t, ++ toi_sig_data->first_header_block); ++ return toi_sig_data->have_image; ++ } ++ ++ /* ++ * Failing that, try old file allocator headers. ++ */ ++ ++ if (!memcmp(HaveImage, toi_cur_sig_page, strlen(HaveImage))) { ++ have_image = 1; ++ return 1; ++ } ++ ++ have_image = 0; ++ ++ if (!memcmp(NoImage, toi_cur_sig_page, strlen(NoImage))) ++ return 0; ++ ++ /* ++ * Nope? How about swap? ++ */ ++ swap_header_page = (union p_diskpage) toi_cur_sig_page; ++ swap_header = swap_header_page.pointer->swh.magic.magic; ++ ++ /* Normal swapspace? */ ++ for (type = 0; type < 2; type++) ++ if (!memcmp(normal_sigs[type], swap_header, ++ strlen(normal_sigs[type]))) ++ return 0; ++ ++ /* Swsusp or uswsusp? */ ++ for (type = 0; type < 3; type++) ++ if (!memcmp(swsusp_sigs[type], swap_header, ++ strlen(swsusp_sigs[type]))) ++ return 2; ++ ++ /* Old TuxOnIce version? */ ++ if (!memcmp(tuxonice_signature, swap_header, ++ sizeof(tuxonice_signature) - 1)) { ++ toi_message(TOI_IO, TOI_VERBOSE, 0, "Found old TuxOnIce " ++ "signature."); ++ have_old_image = 1; ++ return 3; ++ } ++ ++ return -1; ++} ++ ++/* ++ * Image_exists ++ * ++ * Returns -1 if don't know, otherwise 0 (no) or 1 (yes). ++ */ ++int toi_bio_image_exists(int quiet) ++{ ++ int result; ++ char *orig_sig_page = toi_cur_sig_page; ++ char *msg = NULL; ++ ++ toi_message(TOI_IO, TOI_VERBOSE, 0, "toi_bio_image_exists."); ++ ++ if (!resume_dev_t) { ++ if (!quiet) ++ printk(KERN_INFO "Not even trying to read header " ++ "because resume_dev_t is not set.\n"); ++ return -1; ++ } ++ ++ if (open_resume_dev_t(0, quiet)) ++ return -1; ++ ++ result = toi_check_for_signature(); ++ ++ clear_toi_state(TOI_RESUMED_BEFORE); ++ if (toi_sig_data->resumed_before) ++ set_toi_state(TOI_RESUMED_BEFORE); ++ ++ if (quiet || result == -ENOMEM) ++ goto out; ++ ++ if (result == -1) ++ msg = "TuxOnIce: Unable to find a signature." ++ " Could you have moved a swap file?\n"; ++ else if (!result) ++ msg = "TuxOnIce: No image found.\n"; ++ else if (result == 1) ++ msg = "TuxOnIce: Image found.\n"; ++ else if (result == 2) ++ msg = "TuxOnIce: uswsusp or swsusp image found.\n"; ++ else if (result == 3) ++ msg = "TuxOnIce: Old implementation's signature found.\n"; ++ ++ printk(KERN_INFO "%s", msg); ++ ++out: ++ if (!orig_sig_page) ++ forget_signature_page(); ++ ++ close_resume_dev_t(0); ++ return result; ++} ++ ++int toi_bio_scan_for_image(int quiet) ++{ ++ struct block_device *bdev; ++ char default_name[255] = ""; ++ ++ if (!quiet) ++ printk(KERN_DEBUG "Scanning swap devices for TuxOnIce " ++ "signature...\n"); ++ for (bdev = next_bdev_of_type(NULL, "swap"); bdev; ++ bdev = next_bdev_of_type(bdev, "swap")) { ++ int result; ++ char name[255] = ""; ++ sprintf(name, "%u:%u", MAJOR(bdev->bd_dev), ++ MINOR(bdev->bd_dev)); ++ if (!quiet) ++ printk(KERN_DEBUG "- Trying %s.\n", name); ++ resume_block_device = bdev; ++ resume_dev_t = bdev->bd_dev; ++ ++ result = toi_check_for_signature(); ++ ++ resume_block_device = NULL; ++ resume_dev_t = MKDEV(0, 0); ++ ++ if (!default_name[0]) ++ strcpy(default_name, name); ++ ++ if (result == 1) { ++ /* Got one! */ ++ strcpy(resume_file, name); ++ next_bdev_of_type(bdev, NULL); ++ if (!quiet) ++ printk(KERN_DEBUG " ==> Image found on %s.\n", ++ resume_file); ++ return 1; ++ } ++ forget_signature_page(); ++ } ++ ++ if (!quiet) ++ printk(KERN_DEBUG "TuxOnIce scan: No image found.\n"); ++ strcpy(resume_file, default_name); ++ return 0; ++} ++ ++int toi_bio_get_header_version(void) ++{ ++ return (memcmp(toi_sig_data->sig2, tuxonice_signature, ++ sizeof(tuxonice_signature))) ? ++ 0 : toi_sig_data->header_version; ++ ++} +diff --git a/kernel/power/tuxonice_builtin.c b/kernel/power/tuxonice_builtin.c +new file mode 100644 +index 0000000..d9704f2 +--- /dev/null ++++ b/kernel/power/tuxonice_builtin.c +@@ -0,0 +1,360 @@ ++/* ++ * Copyright (C) 2004-2010 Nigel Cunningham (nigel at tuxonice net) ++ * ++ * This file is released under the GPLv2. ++ */ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include "tuxonice_io.h" ++#include "tuxonice.h" ++#include "tuxonice_extent.h" ++#include "tuxonice_netlink.h" ++#include "tuxonice_prepare_image.h" ++#include "tuxonice_ui.h" ++#include "tuxonice_sysfs.h" ++#include "tuxonice_pagedir.h" ++#include "tuxonice_modules.h" ++#include "tuxonice_builtin.h" ++#include "tuxonice_power_off.h" ++ ++/* ++ * Highmem related functions (x86 only). ++ */ ++ ++#ifdef CONFIG_HIGHMEM ++ ++/** ++ * copyback_high: Restore highmem pages. ++ * ++ * Highmem data and pbe lists are/can be stored in highmem. ++ * The format is slightly different to the lowmem pbe lists ++ * used for the assembly code: the last pbe in each page is ++ * a struct page * instead of struct pbe *, pointing to the ++ * next page where pbes are stored (or NULL if happens to be ++ * the end of the list). Since we don't want to generate ++ * unnecessary deltas against swsusp code, we use a cast ++ * instead of a union. ++ **/ ++ ++static void copyback_high(void) ++{ ++ struct page *pbe_page = (struct page *) restore_highmem_pblist; ++ struct pbe *this_pbe, *first_pbe; ++ unsigned long *origpage, *copypage; ++ int pbe_index = 1; ++ ++ if (!pbe_page) ++ return; ++ ++ this_pbe = (struct pbe *) kmap_atomic(pbe_page, KM_BOUNCE_READ); ++ first_pbe = this_pbe; ++ ++ while (this_pbe) { ++ int loop = (PAGE_SIZE / sizeof(unsigned long)) - 1; ++ ++ origpage = kmap_atomic((struct page *) this_pbe->orig_address, ++ KM_BIO_DST_IRQ); ++ copypage = kmap_atomic((struct page *) this_pbe->address, ++ KM_BIO_SRC_IRQ); ++ ++ while (loop >= 0) { ++ *(origpage + loop) = *(copypage + loop); ++ loop--; ++ } ++ ++ kunmap_atomic(origpage, KM_BIO_DST_IRQ); ++ kunmap_atomic(copypage, KM_BIO_SRC_IRQ); ++ ++ if (!this_pbe->next) ++ break; ++ ++ if (pbe_index < PBES_PER_PAGE) { ++ this_pbe++; ++ pbe_index++; ++ } else { ++ pbe_page = (struct page *) this_pbe->next; ++ kunmap_atomic(first_pbe, KM_BOUNCE_READ); ++ if (!pbe_page) ++ return; ++ this_pbe = (struct pbe *) kmap_atomic(pbe_page, ++ KM_BOUNCE_READ); ++ first_pbe = this_pbe; ++ pbe_index = 1; ++ } ++ } ++ kunmap_atomic(first_pbe, KM_BOUNCE_READ); ++} ++ ++#else /* CONFIG_HIGHMEM */ ++static void copyback_high(void) { } ++#endif ++ ++char toi_wait_for_keypress_dev_console(int timeout) ++{ ++ int fd, this_timeout = 255; ++ char key = '\0'; ++ struct termios t, t_backup; ++ ++ /* We should be guaranteed /dev/console exists after populate_rootfs() ++ * in init/main.c. ++ */ ++ fd = sys_open("/dev/console", O_RDONLY, 0); ++ if (fd < 0) { ++ printk(KERN_INFO "Couldn't open /dev/console.\n"); ++ return key; ++ } ++ ++ if (sys_ioctl(fd, TCGETS, (long)&t) < 0) ++ goto out_close; ++ ++ memcpy(&t_backup, &t, sizeof(t)); ++ ++ t.c_lflag &= ~(ISIG|ICANON|ECHO); ++ t.c_cc[VMIN] = 0; ++ ++new_timeout: ++ if (timeout > 0) { ++ this_timeout = timeout < 26 ? timeout : 25; ++ timeout -= this_timeout; ++ this_timeout *= 10; ++ } ++ ++ t.c_cc[VTIME] = this_timeout; ++ ++ if (sys_ioctl(fd, TCSETS, (long)&t) < 0) ++ goto out_restore; ++ ++ while (1) { ++ if (sys_read(fd, &key, 1) <= 0) { ++ if (timeout) ++ goto new_timeout; ++ key = '\0'; ++ break; ++ } ++ key = tolower(key); ++ if (test_toi_state(TOI_SANITY_CHECK_PROMPT)) { ++ if (key == 'c') { ++ set_toi_state(TOI_CONTINUE_REQ); ++ break; ++ } else if (key == ' ') ++ break; ++ } else ++ break; ++ } ++ ++out_restore: ++ sys_ioctl(fd, TCSETS, (long)&t_backup); ++out_close: ++ sys_close(fd); ++ ++ return key; ++} ++EXPORT_SYMBOL_GPL(toi_wait_for_keypress_dev_console); ++ ++struct toi_boot_kernel_data toi_bkd __nosavedata ++ __attribute__((aligned(PAGE_SIZE))) = { ++ MY_BOOT_KERNEL_DATA_VERSION, ++ 0, ++#ifdef CONFIG_TOI_REPLACE_SWSUSP ++ (1 << TOI_REPLACE_SWSUSP) | ++#endif ++ (1 << TOI_NO_FLUSHER_THREAD) | ++ (1 << TOI_PAGESET2_FULL) | (1 << TOI_LATE_CPU_HOTPLUG), ++}; ++EXPORT_SYMBOL_GPL(toi_bkd); ++ ++struct block_device *toi_open_by_devnum(dev_t dev) ++{ ++ struct block_device *bdev = bdget(dev); ++ int err = -ENOMEM; ++ if (bdev) ++ err = blkdev_get(bdev, FMODE_READ | FMODE_NDELAY); ++ return err ? ERR_PTR(err) : bdev; ++} ++EXPORT_SYMBOL_GPL(toi_open_by_devnum); ++ ++/** ++ * toi_close_bdev: Close a swap bdev. ++ * ++ * int: The swap entry number to close. ++ */ ++void toi_close_bdev(struct block_device *bdev) ++{ ++ blkdev_put(bdev, FMODE_READ | FMODE_NDELAY); ++} ++EXPORT_SYMBOL_GPL(toi_close_bdev); ++ ++int toi_wait = CONFIG_TOI_DEFAULT_WAIT; ++EXPORT_SYMBOL_GPL(toi_wait); ++ ++struct toi_core_fns *toi_core_fns; ++EXPORT_SYMBOL_GPL(toi_core_fns); ++ ++unsigned long toi_result; ++EXPORT_SYMBOL_GPL(toi_result); ++ ++struct pagedir pagedir1 = {1}; ++EXPORT_SYMBOL_GPL(pagedir1); ++ ++unsigned long toi_get_nonconflicting_page(void) ++{ ++ return toi_core_fns->get_nonconflicting_page(); ++} ++ ++int toi_post_context_save(void) ++{ ++ return toi_core_fns->post_context_save(); ++} ++ ++int try_tuxonice_hibernate(void) ++{ ++ if (!toi_core_fns) ++ return -ENODEV; ++ ++ return toi_core_fns->try_hibernate(); ++} ++ ++static int num_resume_calls; ++#ifdef CONFIG_TOI_IGNORE_LATE_INITCALL ++static int ignore_late_initcall = 1; ++#else ++static int ignore_late_initcall; ++#endif ++ ++int toi_translate_err_default = TOI_CONTINUE_REQ; ++EXPORT_SYMBOL_GPL(toi_translate_err_default); ++ ++void try_tuxonice_resume(void) ++{ ++ /* Don't let it wrap around eventually */ ++ if (num_resume_calls < 2) ++ num_resume_calls++; ++ ++ if (num_resume_calls == 1 && ignore_late_initcall) { ++ printk(KERN_INFO "TuxOnIce: Ignoring late initcall, as requested.\n"); ++ return; ++ } ++ ++ if (toi_core_fns) ++ toi_core_fns->try_resume(); ++ else ++ printk(KERN_INFO "TuxOnIce core not loaded yet.\n"); ++} ++ ++int toi_lowlevel_builtin(void) ++{ ++ int error = 0; ++ ++ save_processor_state(); ++ error = swsusp_arch_suspend(); ++ if (error) ++ printk(KERN_ERR "Error %d hibernating\n", error); ++ ++ /* Restore control flow appears here */ ++ if (!toi_in_hibernate) { ++ copyback_high(); ++ set_toi_state(TOI_NOW_RESUMING); ++ } ++ ++ restore_processor_state(); ++ ++ return error; ++} ++EXPORT_SYMBOL_GPL(toi_lowlevel_builtin); ++ ++unsigned long toi_compress_bytes_in; ++EXPORT_SYMBOL_GPL(toi_compress_bytes_in); ++ ++unsigned long toi_compress_bytes_out; ++EXPORT_SYMBOL_GPL(toi_compress_bytes_out); ++ ++unsigned long toi_state = ((1 << TOI_BOOT_TIME) | ++ (1 << TOI_IGNORE_LOGLEVEL) | ++ (1 << TOI_IO_STOPPED)); ++EXPORT_SYMBOL_GPL(toi_state); ++ ++/* The number of hibernates we have started (some may have been cancelled) */ ++unsigned int nr_hibernates; ++EXPORT_SYMBOL_GPL(nr_hibernates); ++ ++int toi_running; ++EXPORT_SYMBOL_GPL(toi_running); ++ ++__nosavedata int toi_in_hibernate; ++EXPORT_SYMBOL_GPL(toi_in_hibernate); ++ ++__nosavedata struct pbe *restore_highmem_pblist; ++EXPORT_SYMBOL_GPL(restore_highmem_pblist); ++ ++static int __init toi_wait_setup(char *str) ++{ ++ int value; ++ ++ if (sscanf(str, "=%d", &value)) { ++ if (value < -1 || value > 255) ++ printk(KERN_INFO "TuxOnIce_wait outside range -1 to " ++ "255.\n"); ++ else ++ toi_wait = value; ++ } ++ ++ return 1; ++} ++ ++__setup("toi_wait", toi_wait_setup); ++ ++static int __init toi_translate_retry_setup(char *str) ++{ ++ toi_translate_err_default = 0; ++ return 1; ++} ++ ++__setup("toi_translate_retry", toi_translate_retry_setup); ++ ++static int __init toi_debug_setup(char *str) ++{ ++ toi_bkd.toi_action |= (1 << TOI_LOGALL) | (1 << TOI_PAUSE); ++ toi_bkd.toi_debug_state = 255; ++ toi_bkd.toi_default_console_level = 7; ++ return 1; ++} ++ ++__setup("toi_debug_setup", toi_debug_setup); ++ ++static int __init toi_ignore_late_initcall_setup(char *str) ++{ ++ int value; ++ ++ if (sscanf(str, "=%d", &value)) ++ ignore_late_initcall = value; ++ ++ return 1; ++} ++ ++__setup("toi_initramfs_resume_only", toi_ignore_late_initcall_setup); ++ ++int toi_force_no_multithreaded; ++EXPORT_SYMBOL_GPL(toi_force_no_multithreaded); ++ ++static int __init toi_force_no_multithreaded_setup(char *str) ++{ ++ int value; ++ ++ if (sscanf(str, "=%d", &value)) ++ toi_force_no_multithreaded = value; ++ ++ return 1; ++} ++ ++__setup("toi_no_multithreaded", toi_force_no_multithreaded_setup); +diff --git a/kernel/power/tuxonice_builtin.h b/kernel/power/tuxonice_builtin.h +new file mode 100644 +index 0000000..56ede35 +--- /dev/null ++++ b/kernel/power/tuxonice_builtin.h +@@ -0,0 +1,30 @@ ++/* ++ * Copyright (C) 2004-2010 Nigel Cunningham (nigel at tuxonice net) ++ * ++ * This file is released under the GPLv2. ++ */ ++#include ++ ++extern struct toi_core_fns *toi_core_fns; ++extern unsigned long toi_compress_bytes_in, toi_compress_bytes_out; ++extern unsigned int nr_hibernates; ++extern int toi_in_hibernate; ++ ++extern __nosavedata struct pbe *restore_highmem_pblist; ++ ++int toi_lowlevel_builtin(void); ++ ++#ifdef CONFIG_HIGHMEM ++extern __nosavedata struct zone_data *toi_nosave_zone_list; ++extern __nosavedata unsigned long toi_nosave_max_pfn; ++#endif ++ ++extern unsigned long toi_get_nonconflicting_page(void); ++extern int toi_post_context_save(void); ++ ++extern char toi_wait_for_keypress_dev_console(int timeout); ++extern struct block_device *toi_open_by_devnum(dev_t dev); ++extern void toi_close_bdev(struct block_device *bdev); ++extern int toi_wait; ++extern int toi_translate_err_default; ++extern int toi_force_no_multithreaded; +diff --git a/kernel/power/tuxonice_checksum.c b/kernel/power/tuxonice_checksum.c +new file mode 100644 +index 0000000..3ec2c76 +--- /dev/null ++++ b/kernel/power/tuxonice_checksum.c +@@ -0,0 +1,377 @@ ++/* ++ * kernel/power/tuxonice_checksum.c ++ * ++ * Copyright (C) 2006-2010 Nigel Cunningham (nigel at tuxonice net) ++ * ++ * This file is released under the GPLv2. ++ * ++ * This file contains data checksum routines for TuxOnIce, ++ * using cryptoapi. They are used to locate any modifications ++ * made to pageset 2 while we're saving it. ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++ ++#include "tuxonice.h" ++#include "tuxonice_modules.h" ++#include "tuxonice_sysfs.h" ++#include "tuxonice_io.h" ++#include "tuxonice_pageflags.h" ++#include "tuxonice_checksum.h" ++#include "tuxonice_pagedir.h" ++#include "tuxonice_alloc.h" ++ ++static struct toi_module_ops toi_checksum_ops; ++ ++/* Constant at the mo, but I might allow tuning later */ ++static char toi_checksum_name[32] = "md4"; ++/* Bytes per checksum */ ++#define CHECKSUM_SIZE (16) ++ ++#define CHECKSUMS_PER_PAGE ((PAGE_SIZE - sizeof(void *)) / CHECKSUM_SIZE) ++ ++struct cpu_context { ++ struct crypto_hash *transform; ++ struct hash_desc desc; ++ struct scatterlist sg[2]; ++ char *buf; ++}; ++ ++static DEFINE_PER_CPU(struct cpu_context, contexts); ++static int pages_allocated; ++static unsigned long page_list; ++ ++static int toi_num_resaved; ++ ++static unsigned long this_checksum, next_page; ++static int checksum_index; ++ ++static inline int checksum_pages_needed(void) ++{ ++ return DIV_ROUND_UP(pagedir2.size, CHECKSUMS_PER_PAGE); ++} ++ ++/* ---- Local buffer management ---- */ ++ ++/* ++ * toi_checksum_cleanup ++ * ++ * Frees memory allocated for our labours. ++ */ ++static void toi_checksum_cleanup(int ending_cycle) ++{ ++ int cpu; ++ ++ if (ending_cycle) { ++ for_each_online_cpu(cpu) { ++ struct cpu_context *this = &per_cpu(contexts, cpu); ++ if (this->transform) { ++ crypto_free_hash(this->transform); ++ this->transform = NULL; ++ this->desc.tfm = NULL; ++ } ++ ++ if (this->buf) { ++ toi_free_page(27, (unsigned long) this->buf); ++ this->buf = NULL; ++ } ++ } ++ } ++} ++ ++/* ++ * toi_crypto_initialise ++ * ++ * Prepare to do some work by allocating buffers and transforms. ++ * Returns: Int: Zero. Even if we can't set up checksum, we still ++ * seek to hibernate. ++ */ ++static int toi_checksum_initialise(int starting_cycle) ++{ ++ int cpu; ++ ++ if (!(starting_cycle & SYSFS_HIBERNATE) || !toi_checksum_ops.enabled) ++ return 0; ++ ++ if (!*toi_checksum_name) { ++ printk(KERN_INFO "TuxOnIce: No checksum algorithm name set.\n"); ++ return 1; ++ } ++ ++ for_each_online_cpu(cpu) { ++ struct cpu_context *this = &per_cpu(contexts, cpu); ++ struct page *page; ++ ++ this->transform = crypto_alloc_hash(toi_checksum_name, 0, 0); ++ if (IS_ERR(this->transform)) { ++ printk(KERN_INFO "TuxOnIce: Failed to initialise the " ++ "%s checksum algorithm: %ld.\n", ++ toi_checksum_name, (long) this->transform); ++ this->transform = NULL; ++ return 1; ++ } ++ ++ this->desc.tfm = this->transform; ++ this->desc.flags = 0; ++ ++ page = toi_alloc_page(27, GFP_KERNEL); ++ if (!page) ++ return 1; ++ this->buf = page_address(page); ++ sg_init_one(&this->sg[0], this->buf, PAGE_SIZE); ++ } ++ return 0; ++} ++ ++/* ++ * toi_checksum_print_debug_stats ++ * @buffer: Pointer to a buffer into which the debug info will be printed. ++ * @size: Size of the buffer. ++ * ++ * Print information to be recorded for debugging purposes into a buffer. ++ * Returns: Number of characters written to the buffer. ++ */ ++ ++static int toi_checksum_print_debug_stats(char *buffer, int size) ++{ ++ int len; ++ ++ if (!toi_checksum_ops.enabled) ++ return scnprintf(buffer, size, ++ "- Checksumming disabled.\n"); ++ ++ len = scnprintf(buffer, size, "- Checksum method is '%s'.\n", ++ toi_checksum_name); ++ len += scnprintf(buffer + len, size - len, ++ " %d pages resaved in atomic copy.\n", toi_num_resaved); ++ return len; ++} ++ ++static int toi_checksum_memory_needed(void) ++{ ++ return toi_checksum_ops.enabled ? ++ checksum_pages_needed() << PAGE_SHIFT : 0; ++} ++ ++static int toi_checksum_storage_needed(void) ++{ ++ if (toi_checksum_ops.enabled) ++ return strlen(toi_checksum_name) + sizeof(int) + 1; ++ else ++ return 0; ++} ++ ++/* ++ * toi_checksum_save_config_info ++ * @buffer: Pointer to a buffer of size PAGE_SIZE. ++ * ++ * Save informaton needed when reloading the image at resume time. ++ * Returns: Number of bytes used for saving our data. ++ */ ++static int toi_checksum_save_config_info(char *buffer) ++{ ++ int namelen = strlen(toi_checksum_name) + 1; ++ int total_len; ++ ++ *((unsigned int *) buffer) = namelen; ++ strncpy(buffer + sizeof(unsigned int), toi_checksum_name, namelen); ++ total_len = sizeof(unsigned int) + namelen; ++ return total_len; ++} ++ ++/* toi_checksum_load_config_info ++ * @buffer: Pointer to the start of the data. ++ * @size: Number of bytes that were saved. ++ * ++ * Description: Reload information needed for dechecksuming the image at ++ * resume time. ++ */ ++static void toi_checksum_load_config_info(char *buffer, int size) ++{ ++ int namelen; ++ ++ namelen = *((unsigned int *) (buffer)); ++ strncpy(toi_checksum_name, buffer + sizeof(unsigned int), ++ namelen); ++ return; ++} ++ ++/* ++ * Free Checksum Memory ++ */ ++ ++void free_checksum_pages(void) ++{ ++ while (pages_allocated) { ++ unsigned long next = *((unsigned long *) page_list); ++ ClearPageNosave(virt_to_page(page_list)); ++ toi_free_page(15, (unsigned long) page_list); ++ page_list = next; ++ pages_allocated--; ++ } ++} ++ ++/* ++ * Allocate Checksum Memory ++ */ ++ ++int allocate_checksum_pages(void) ++{ ++ int pages_needed = checksum_pages_needed(); ++ ++ if (!toi_checksum_ops.enabled) ++ return 0; ++ ++ while (pages_allocated < pages_needed) { ++ unsigned long *new_page = ++ (unsigned long *) toi_get_zeroed_page(15, TOI_ATOMIC_GFP); ++ if (!new_page) { ++ printk(KERN_ERR "Unable to allocate checksum pages.\n"); ++ return -ENOMEM; ++ } ++ SetPageNosave(virt_to_page(new_page)); ++ (*new_page) = page_list; ++ page_list = (unsigned long) new_page; ++ pages_allocated++; ++ } ++ ++ next_page = (unsigned long) page_list; ++ checksum_index = 0; ++ ++ return 0; ++} ++ ++char *tuxonice_get_next_checksum(void) ++{ ++ if (!toi_checksum_ops.enabled) ++ return NULL; ++ ++ if (checksum_index % CHECKSUMS_PER_PAGE) ++ this_checksum += CHECKSUM_SIZE; ++ else { ++ this_checksum = next_page + sizeof(void *); ++ next_page = *((unsigned long *) next_page); ++ } ++ ++ checksum_index++; ++ return (char *) this_checksum; ++} ++ ++int tuxonice_calc_checksum(struct page *page, char *checksum_locn) ++{ ++ char *pa; ++ int result, cpu = smp_processor_id(); ++ struct cpu_context *ctx = &per_cpu(contexts, cpu); ++ ++ if (!toi_checksum_ops.enabled) ++ return 0; ++ ++ pa = kmap(page); ++ memcpy(ctx->buf, pa, PAGE_SIZE); ++ kunmap(page); ++ result = crypto_hash_digest(&ctx->desc, ctx->sg, PAGE_SIZE, ++ checksum_locn); ++ if (result) ++ printk(KERN_ERR "TuxOnIce checksumming: crypto_hash_digest " ++ "returned %d.\n", result); ++ return result; ++} ++/* ++ * Calculate checksums ++ */ ++ ++void check_checksums(void) ++{ ++ int pfn, index = 0, cpu = smp_processor_id(); ++ char current_checksum[CHECKSUM_SIZE]; ++ struct cpu_context *ctx = &per_cpu(contexts, cpu); ++ ++ if (!toi_checksum_ops.enabled) ++ return; ++ ++ next_page = (unsigned long) page_list; ++ ++ toi_num_resaved = 0; ++ this_checksum = 0; ++ ++ memory_bm_position_reset(pageset2_map); ++ for (pfn = memory_bm_next_pfn(pageset2_map); pfn != BM_END_OF_MAP; ++ pfn = memory_bm_next_pfn(pageset2_map)) { ++ int ret; ++ char *pa; ++ struct page *page = pfn_to_page(pfn); ++ ++ if (index % CHECKSUMS_PER_PAGE) { ++ this_checksum += CHECKSUM_SIZE; ++ } else { ++ this_checksum = next_page + sizeof(void *); ++ next_page = *((unsigned long *) next_page); ++ } ++ ++ /* Done when IRQs disabled so must be atomic */ ++ pa = kmap_atomic(page, KM_USER1); ++ memcpy(ctx->buf, pa, PAGE_SIZE); ++ kunmap_atomic(pa, KM_USER1); ++ ret = crypto_hash_digest(&ctx->desc, ctx->sg, PAGE_SIZE, ++ current_checksum); ++ ++ if (ret) { ++ printk(KERN_INFO "Digest failed. Returned %d.\n", ret); ++ return; ++ } ++ ++ if (memcmp(current_checksum, (char *) this_checksum, ++ CHECKSUM_SIZE)) { ++ SetPageResave(pfn_to_page(pfn)); ++ toi_num_resaved++; ++ if (test_action_state(TOI_ABORT_ON_RESAVE_NEEDED)) ++ set_abort_result(TOI_RESAVE_NEEDED); ++ } ++ ++ index++; ++ } ++} ++ ++static struct toi_sysfs_data sysfs_params[] = { ++ SYSFS_INT("enabled", SYSFS_RW, &toi_checksum_ops.enabled, 0, 1, 0, ++ NULL), ++ SYSFS_BIT("abort_if_resave_needed", SYSFS_RW, &toi_bkd.toi_action, ++ TOI_ABORT_ON_RESAVE_NEEDED, 0) ++}; ++ ++/* ++ * Ops structure. ++ */ ++static struct toi_module_ops toi_checksum_ops = { ++ .type = MISC_MODULE, ++ .name = "checksumming", ++ .directory = "checksum", ++ .module = THIS_MODULE, ++ .initialise = toi_checksum_initialise, ++ .cleanup = toi_checksum_cleanup, ++ .print_debug_info = toi_checksum_print_debug_stats, ++ .save_config_info = toi_checksum_save_config_info, ++ .load_config_info = toi_checksum_load_config_info, ++ .memory_needed = toi_checksum_memory_needed, ++ .storage_needed = toi_checksum_storage_needed, ++ ++ .sysfs_data = sysfs_params, ++ .num_sysfs_entries = sizeof(sysfs_params) / ++ sizeof(struct toi_sysfs_data), ++}; ++ ++/* ---- Registration ---- */ ++int toi_checksum_init(void) ++{ ++ int result = toi_register_module(&toi_checksum_ops); ++ return result; ++} ++ ++void toi_checksum_exit(void) ++{ ++ toi_unregister_module(&toi_checksum_ops); ++} +diff --git a/kernel/power/tuxonice_checksum.h b/kernel/power/tuxonice_checksum.h +new file mode 100644 +index 0000000..0f2812e +--- /dev/null ++++ b/kernel/power/tuxonice_checksum.h +@@ -0,0 +1,31 @@ ++/* ++ * kernel/power/tuxonice_checksum.h ++ * ++ * Copyright (C) 2006-2010 Nigel Cunningham (nigel at tuxonice net) ++ * ++ * This file is released under the GPLv2. ++ * ++ * This file contains data checksum routines for TuxOnIce, ++ * using cryptoapi. They are used to locate any modifications ++ * made to pageset 2 while we're saving it. ++ */ ++ ++#if defined(CONFIG_TOI_CHECKSUM) ++extern int toi_checksum_init(void); ++extern void toi_checksum_exit(void); ++void check_checksums(void); ++int allocate_checksum_pages(void); ++void free_checksum_pages(void); ++char *tuxonice_get_next_checksum(void); ++int tuxonice_calc_checksum(struct page *page, char *checksum_locn); ++#else ++static inline int toi_checksum_init(void) { return 0; } ++static inline void toi_checksum_exit(void) { } ++static inline void check_checksums(void) { }; ++static inline int allocate_checksum_pages(void) { return 0; }; ++static inline void free_checksum_pages(void) { }; ++static inline char *tuxonice_get_next_checksum(void) { return NULL; }; ++static inline int tuxonice_calc_checksum(struct page *page, char *checksum_locn) ++ { return 0; } ++#endif ++ +diff --git a/kernel/power/tuxonice_cluster.c b/kernel/power/tuxonice_cluster.c +new file mode 100644 +index 0000000..0e5a262 +--- /dev/null ++++ b/kernel/power/tuxonice_cluster.c +@@ -0,0 +1,1069 @@ ++/* ++ * kernel/power/tuxonice_cluster.c ++ * ++ * Copyright (C) 2006-2010 Nigel Cunningham (nigel at tuxonice net) ++ * ++ * This file is released under the GPLv2. ++ * ++ * This file contains routines for cluster hibernation support. ++ * ++ * Based on ip autoconfiguration code in net/ipv4/ipconfig.c. ++ * ++ * How does it work? ++ * ++ * There is no 'master' node that tells everyone else what to do. All nodes ++ * send messages to the broadcast address/port, maintain a list of peers ++ * and figure out when to progress to the next step in hibernating or resuming. ++ * This makes us more fault tolerant when it comes to nodes coming and going ++ * (which may be more of an issue if we're hibernating when power supplies ++ * are being unreliable). ++ * ++ * At boot time, we start a ktuxonice thread that handles communication with ++ * other nodes. This node maintains a state machine that controls our progress ++ * through hibernating and resuming, keeping us in step with other nodes. Nodes ++ * are identified by their hw address. ++ * ++ * On startup, the node sends CLUSTER_PING on the configured interface's ++ * broadcast address, port $toi_cluster_port (see below) and begins to listen ++ * for other broadcast messages. CLUSTER_PING messages are repeated at ++ * intervals of 5 minutes, with a random offset to spread traffic out. ++ * ++ * A hibernation cycle is initiated from any node via ++ * ++ * echo > /sys/power/tuxonice/do_hibernate ++ * ++ * and (possibily) the hibernate script. At each step of the process, the node ++ * completes its work, and waits for all other nodes to signal completion of ++ * their work (or timeout) before progressing to the next step. ++ * ++ * Request/state Action before reply Possible reply Next state ++ * HIBERNATE capable, pre-script HIBERNATE|ACK NODE_PREP ++ * HIBERNATE|NACK INIT_0 ++ * ++ * PREP prepare_image PREP|ACK IMAGE_WRITE ++ * PREP|NACK INIT_0 ++ * ABORT RUNNING ++ * ++ * IO write image IO|ACK power off ++ * ABORT POST_RESUME ++ * ++ * (Boot time) check for image IMAGE|ACK RESUME_PREP ++ * (Note 1) ++ * IMAGE|NACK (Note 2) ++ * ++ * PREP prepare read image PREP|ACK IMAGE_READ ++ * PREP|NACK (As NACK_IMAGE) ++ * ++ * IO read image IO|ACK POST_RESUME ++ * ++ * POST_RESUME thaw, post-script RUNNING ++ * ++ * INIT_0 init 0 ++ * ++ * Other messages: ++ * ++ * - PING: Request for all other live nodes to send a PONG. Used at startup to ++ * announce presence, when a node is suspected dead and periodically, in case ++ * segments of the network are [un]plugged. ++ * ++ * - PONG: Response to a PING. ++ * ++ * - ABORT: Request to cancel writing an image. ++ * ++ * - BYE: Notification that this node is shutting down. ++ * ++ * Note 1: Repeated at 3s intervals until we continue to boot/resume, so that ++ * nodes which are slower to start up can get state synchronised. If a node ++ * starting up sees other nodes sending RESUME_PREP or IMAGE_READ, it may send ++ * ACK_IMAGE and they will wait for it to catch up. If it sees ACK_READ, it ++ * must invalidate its image (if any) and boot normally. ++ * ++ * Note 2: May occur when one node lost power or powered off while others ++ * hibernated. This node waits for others to complete resuming (ACK_READ) ++ * before completing its boot, so that it appears as a fail node restarting. ++ * ++ * If any node has an image, then it also has a list of nodes that hibernated ++ * in synchronisation with it. The node will wait for other nodes to appear ++ * or timeout before beginning its restoration. ++ * ++ * If a node has no image, it needs to wait, in case other nodes which do have ++ * an image are going to resume, but are taking longer to announce their ++ * presence. For this reason, the user can specify a timeout value and a number ++ * of nodes detected before we just continue. (We might want to assume in a ++ * cluster of, say, 15 nodes, if 8 others have booted without finding an image, ++ * the remaining nodes will too. This might help in situations where some nodes ++ * are much slower to boot, or more subject to hardware failures or such like). ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include "tuxonice.h" ++#include "tuxonice_modules.h" ++#include "tuxonice_sysfs.h" ++#include "tuxonice_alloc.h" ++#include "tuxonice_io.h" ++ ++#if 1 ++#define PRINTK(a, b...) do { printk(a, ##b); } while (0) ++#else ++#define PRINTK(a, b...) do { } while (0) ++#endif ++ ++static int loopback_mode; ++static int num_local_nodes = 1; ++#define MAX_LOCAL_NODES 8 ++#define SADDR (loopback_mode ? b->sid : h->saddr) ++ ++#define MYNAME "TuxOnIce Clustering" ++ ++enum cluster_message { ++ MSG_ACK = 1, ++ MSG_NACK = 2, ++ MSG_PING = 4, ++ MSG_ABORT = 8, ++ MSG_BYE = 16, ++ MSG_HIBERNATE = 32, ++ MSG_IMAGE = 64, ++ MSG_IO = 128, ++ MSG_RUNNING = 256 ++}; ++ ++static char *str_message(int message) ++{ ++ switch (message) { ++ case 4: ++ return "Ping"; ++ case 8: ++ return "Abort"; ++ case 9: ++ return "Abort acked"; ++ case 10: ++ return "Abort nacked"; ++ case 16: ++ return "Bye"; ++ case 17: ++ return "Bye acked"; ++ case 18: ++ return "Bye nacked"; ++ case 32: ++ return "Hibernate request"; ++ case 33: ++ return "Hibernate ack"; ++ case 34: ++ return "Hibernate nack"; ++ case 64: ++ return "Image exists?"; ++ case 65: ++ return "Image does exist"; ++ case 66: ++ return "No image here"; ++ case 128: ++ return "I/O"; ++ case 129: ++ return "I/O okay"; ++ case 130: ++ return "I/O failed"; ++ case 256: ++ return "Running"; ++ default: ++ printk(KERN_ERR "Unrecognised message %d.\n", message); ++ return "Unrecognised message (see dmesg)"; ++ } ++} ++ ++#define MSG_ACK_MASK (MSG_ACK | MSG_NACK) ++#define MSG_STATE_MASK (~MSG_ACK_MASK) ++ ++struct node_info { ++ struct list_head member_list; ++ wait_queue_head_t member_events; ++ spinlock_t member_list_lock; ++ spinlock_t receive_lock; ++ int peer_count, ignored_peer_count; ++ struct toi_sysfs_data sysfs_data; ++ enum cluster_message current_message; ++}; ++ ++struct node_info node_array[MAX_LOCAL_NODES]; ++ ++struct cluster_member { ++ __be32 addr; ++ enum cluster_message message; ++ struct list_head list; ++ int ignore; ++}; ++ ++#define toi_cluster_port_send 3501 ++#define toi_cluster_port_recv 3502 ++ ++static struct net_device *net_dev; ++static struct toi_module_ops toi_cluster_ops; ++ ++static int toi_recv(struct sk_buff *skb, struct net_device *dev, ++ struct packet_type *pt, struct net_device *orig_dev); ++ ++static struct packet_type toi_cluster_packet_type = { ++ .type = __constant_htons(ETH_P_IP), ++ .func = toi_recv, ++}; ++ ++struct toi_pkt { /* BOOTP packet format */ ++ struct iphdr iph; /* IP header */ ++ struct udphdr udph; /* UDP header */ ++ u8 htype; /* HW address type */ ++ u8 hlen; /* HW address length */ ++ __be32 xid; /* Transaction ID */ ++ __be16 secs; /* Seconds since we started */ ++ __be16 flags; /* Just what it says */ ++ u8 hw_addr[16]; /* Sender's HW address */ ++ u16 message; /* Message */ ++ unsigned long sid; /* Source ID for loopback testing */ ++}; ++ ++static char toi_cluster_iface[IFNAMSIZ] = CONFIG_TOI_DEFAULT_CLUSTER_INTERFACE; ++ ++static int added_pack; ++ ++static int others_have_image; ++ ++/* Key used to allow multiple clusters on the same lan */ ++static char toi_cluster_key[32] = CONFIG_TOI_DEFAULT_CLUSTER_KEY; ++static char pre_hibernate_script[255] = ++ CONFIG_TOI_DEFAULT_CLUSTER_PRE_HIBERNATE; ++static char post_hibernate_script[255] = ++ CONFIG_TOI_DEFAULT_CLUSTER_POST_HIBERNATE; ++ ++/* List of cluster members */ ++static unsigned long continue_delay = 5 * HZ; ++static unsigned long cluster_message_timeout = 3 * HZ; ++ ++/* === Membership list === */ ++ ++static void print_member_info(int index) ++{ ++ struct cluster_member *this; ++ ++ printk(KERN_INFO "==> Dumping node %d.\n", index); ++ ++ list_for_each_entry(this, &node_array[index].member_list, list) ++ printk(KERN_INFO "%d.%d.%d.%d last message %s. %s\n", ++ NIPQUAD(this->addr), ++ str_message(this->message), ++ this->ignore ? "(Ignored)" : ""); ++ printk(KERN_INFO "== Done ==\n"); ++} ++ ++static struct cluster_member *__find_member(int index, __be32 addr) ++{ ++ struct cluster_member *this; ++ ++ list_for_each_entry(this, &node_array[index].member_list, list) { ++ if (this->addr != addr) ++ continue; ++ ++ return this; ++ } ++ ++ return NULL; ++} ++ ++static void set_ignore(int index, __be32 addr, struct cluster_member *this) ++{ ++ if (this->ignore) { ++ PRINTK("Node %d already ignoring %d.%d.%d.%d.\n", ++ index, NIPQUAD(addr)); ++ return; ++ } ++ ++ PRINTK("Node %d sees node %d.%d.%d.%d now being ignored.\n", ++ index, NIPQUAD(addr)); ++ this->ignore = 1; ++ node_array[index].ignored_peer_count++; ++} ++ ++static int __add_update_member(int index, __be32 addr, int message) ++{ ++ struct cluster_member *this; ++ ++ this = __find_member(index, addr); ++ if (this) { ++ if (this->message != message) { ++ this->message = message; ++ if ((message & MSG_NACK) && ++ (message & (MSG_HIBERNATE | MSG_IMAGE | MSG_IO))) ++ set_ignore(index, addr, this); ++ PRINTK("Node %d sees node %d.%d.%d.%d now sending " ++ "%s.\n", index, NIPQUAD(addr), ++ str_message(message)); ++ wake_up(&node_array[index].member_events); ++ } ++ return 0; ++ } ++ ++ this = (struct cluster_member *) toi_kzalloc(36, ++ sizeof(struct cluster_member), GFP_KERNEL); ++ ++ if (!this) ++ return -1; ++ ++ this->addr = addr; ++ this->message = message; ++ this->ignore = 0; ++ INIT_LIST_HEAD(&this->list); ++ ++ node_array[index].peer_count++; ++ ++ PRINTK("Node %d sees node %d.%d.%d.%d sending %s.\n", index, ++ NIPQUAD(addr), str_message(message)); ++ ++ if ((message & MSG_NACK) && ++ (message & (MSG_HIBERNATE | MSG_IMAGE | MSG_IO))) ++ set_ignore(index, addr, this); ++ list_add_tail(&this->list, &node_array[index].member_list); ++ return 1; ++} ++ ++static int add_update_member(int index, __be32 addr, int message) ++{ ++ int result; ++ unsigned long flags; ++ spin_lock_irqsave(&node_array[index].member_list_lock, flags); ++ result = __add_update_member(index, addr, message); ++ spin_unlock_irqrestore(&node_array[index].member_list_lock, flags); ++ ++ print_member_info(index); ++ ++ wake_up(&node_array[index].member_events); ++ ++ return result; ++} ++ ++static void del_member(int index, __be32 addr) ++{ ++ struct cluster_member *this; ++ unsigned long flags; ++ ++ spin_lock_irqsave(&node_array[index].member_list_lock, flags); ++ this = __find_member(index, addr); ++ ++ if (this) { ++ list_del_init(&this->list); ++ toi_kfree(36, this, sizeof(*this)); ++ node_array[index].peer_count--; ++ } ++ ++ spin_unlock_irqrestore(&node_array[index].member_list_lock, flags); ++} ++ ++/* === Message transmission === */ ++ ++static void toi_send_if(int message, unsigned long my_id); ++ ++/* ++ * Process received TOI packet. ++ */ ++static int toi_recv(struct sk_buff *skb, struct net_device *dev, ++ struct packet_type *pt, struct net_device *orig_dev) ++{ ++ struct toi_pkt *b; ++ struct iphdr *h; ++ int len, result, index; ++ unsigned long addr, message, ack; ++ ++ /* Perform verifications before taking the lock. */ ++ if (skb->pkt_type == PACKET_OTHERHOST) ++ goto drop; ++ ++ if (dev != net_dev) ++ goto drop; ++ ++ skb = skb_share_check(skb, GFP_ATOMIC); ++ if (!skb) ++ return NET_RX_DROP; ++ ++ if (!pskb_may_pull(skb, ++ sizeof(struct iphdr) + ++ sizeof(struct udphdr))) ++ goto drop; ++ ++ b = (struct toi_pkt *)skb_network_header(skb); ++ h = &b->iph; ++ ++ if (h->ihl != 5 || h->version != 4 || h->protocol != IPPROTO_UDP) ++ goto drop; ++ ++ /* Fragments are not supported */ ++ if (h->frag_off & htons(IP_OFFSET | IP_MF)) { ++ if (net_ratelimit()) ++ printk(KERN_ERR "TuxOnIce: Ignoring fragmented " ++ "cluster message.\n"); ++ goto drop; ++ } ++ ++ if (skb->len < ntohs(h->tot_len)) ++ goto drop; ++ ++ if (ip_fast_csum((char *) h, h->ihl)) ++ goto drop; ++ ++ if (b->udph.source != htons(toi_cluster_port_send) || ++ b->udph.dest != htons(toi_cluster_port_recv)) ++ goto drop; ++ ++ if (ntohs(h->tot_len) < ntohs(b->udph.len) + sizeof(struct iphdr)) ++ goto drop; ++ ++ len = ntohs(b->udph.len) - sizeof(struct udphdr); ++ ++ /* Ok the front looks good, make sure we can get at the rest. */ ++ if (!pskb_may_pull(skb, skb->len)) ++ goto drop; ++ ++ b = (struct toi_pkt *)skb_network_header(skb); ++ h = &b->iph; ++ ++ addr = SADDR; ++ PRINTK(">>> Message %s received from " NIPQUAD_FMT ".\n", ++ str_message(b->message), NIPQUAD(addr)); ++ ++ message = b->message & MSG_STATE_MASK; ++ ack = b->message & MSG_ACK_MASK; ++ ++ for (index = 0; index < num_local_nodes; index++) { ++ int new_message = node_array[index].current_message, ++ old_message = new_message; ++ ++ if (index == SADDR || !old_message) { ++ PRINTK("Ignoring node %d (offline or self).\n", index); ++ continue; ++ } ++ ++ /* One message at a time, please. */ ++ spin_lock(&node_array[index].receive_lock); ++ ++ result = add_update_member(index, SADDR, b->message); ++ if (result == -1) { ++ printk(KERN_INFO "Failed to add new cluster member " ++ NIPQUAD_FMT ".\n", ++ NIPQUAD(addr)); ++ goto drop_unlock; ++ } ++ ++ switch (b->message & MSG_STATE_MASK) { ++ case MSG_PING: ++ break; ++ case MSG_ABORT: ++ break; ++ case MSG_BYE: ++ break; ++ case MSG_HIBERNATE: ++ /* Can I hibernate? */ ++ new_message = MSG_HIBERNATE | ++ ((index & 1) ? MSG_NACK : MSG_ACK); ++ break; ++ case MSG_IMAGE: ++ /* Can I resume? */ ++ new_message = MSG_IMAGE | ++ ((index & 1) ? MSG_NACK : MSG_ACK); ++ if (new_message != old_message) ++ printk(KERN_ERR "Setting whether I can resume " ++ "to %d.\n", new_message); ++ break; ++ case MSG_IO: ++ new_message = MSG_IO | MSG_ACK; ++ break; ++ case MSG_RUNNING: ++ break; ++ default: ++ if (net_ratelimit()) ++ printk(KERN_ERR "Unrecognised TuxOnIce cluster" ++ " message %d from " NIPQUAD_FMT ".\n", ++ b->message, NIPQUAD(addr)); ++ }; ++ ++ if (old_message != new_message) { ++ node_array[index].current_message = new_message; ++ printk(KERN_INFO ">>> Sending new message for node " ++ "%d.\n", index); ++ toi_send_if(new_message, index); ++ } else if (!ack) { ++ printk(KERN_INFO ">>> Resending message for node %d.\n", ++ index); ++ toi_send_if(new_message, index); ++ } ++drop_unlock: ++ spin_unlock(&node_array[index].receive_lock); ++ }; ++ ++drop: ++ /* Throw the packet out. */ ++ kfree_skb(skb); ++ ++ return 0; ++} ++ ++/* ++ * Send cluster message to single interface. ++ */ ++static void toi_send_if(int message, unsigned long my_id) ++{ ++ struct sk_buff *skb; ++ struct toi_pkt *b; ++ int hh_len = LL_RESERVED_SPACE(net_dev); ++ struct iphdr *h; ++ ++ /* Allocate packet */ ++ skb = alloc_skb(sizeof(struct toi_pkt) + hh_len + 15, GFP_KERNEL); ++ if (!skb) ++ return; ++ skb_reserve(skb, hh_len); ++ b = (struct toi_pkt *) skb_put(skb, sizeof(struct toi_pkt)); ++ memset(b, 0, sizeof(struct toi_pkt)); ++ ++ /* Construct IP header */ ++ skb_reset_network_header(skb); ++ h = ip_hdr(skb); ++ h->version = 4; ++ h->ihl = 5; ++ h->tot_len = htons(sizeof(struct toi_pkt)); ++ h->frag_off = htons(IP_DF); ++ h->ttl = 64; ++ h->protocol = IPPROTO_UDP; ++ h->daddr = htonl(INADDR_BROADCAST); ++ h->check = ip_fast_csum((unsigned char *) h, h->ihl); ++ ++ /* Construct UDP header */ ++ b->udph.source = htons(toi_cluster_port_send); ++ b->udph.dest = htons(toi_cluster_port_recv); ++ b->udph.len = htons(sizeof(struct toi_pkt) - sizeof(struct iphdr)); ++ /* UDP checksum not calculated -- explicitly allowed in BOOTP RFC */ ++ ++ /* Construct message */ ++ b->message = message; ++ b->sid = my_id; ++ b->htype = net_dev->type; /* can cause undefined behavior */ ++ b->hlen = net_dev->addr_len; ++ memcpy(b->hw_addr, net_dev->dev_addr, net_dev->addr_len); ++ b->secs = htons(3); /* 3 seconds */ ++ ++ /* Chain packet down the line... */ ++ skb->dev = net_dev; ++ skb->protocol = htons(ETH_P_IP); ++ if ((dev_hard_header(skb, net_dev, ntohs(skb->protocol), ++ net_dev->broadcast, net_dev->dev_addr, skb->len) < 0) || ++ dev_queue_xmit(skb) < 0) ++ printk(KERN_INFO "E"); ++} ++ ++/* ========================================= */ ++ ++/* kTOICluster */ ++ ++static atomic_t num_cluster_threads; ++static DECLARE_WAIT_QUEUE_HEAD(clusterd_events); ++ ++static int kTOICluster(void *data) ++{ ++ unsigned long my_id; ++ ++ my_id = atomic_add_return(1, &num_cluster_threads) - 1; ++ node_array[my_id].current_message = (unsigned long) data; ++ ++ PRINTK("kTOICluster daemon %lu starting.\n", my_id); ++ ++ current->flags |= PF_NOFREEZE; ++ ++ while (node_array[my_id].current_message) { ++ toi_send_if(node_array[my_id].current_message, my_id); ++ sleep_on_timeout(&clusterd_events, ++ cluster_message_timeout); ++ PRINTK("Link state %lu is %d.\n", my_id, ++ node_array[my_id].current_message); ++ } ++ ++ toi_send_if(MSG_BYE, my_id); ++ atomic_dec(&num_cluster_threads); ++ wake_up(&clusterd_events); ++ ++ PRINTK("kTOICluster daemon %lu exiting.\n", my_id); ++ __set_current_state(TASK_RUNNING); ++ return 0; ++} ++ ++static void kill_clusterd(void) ++{ ++ int i; ++ ++ for (i = 0; i < num_local_nodes; i++) { ++ if (node_array[i].current_message) { ++ PRINTK("Seeking to kill clusterd %d.\n", i); ++ node_array[i].current_message = 0; ++ } ++ } ++ wait_event(clusterd_events, ++ !atomic_read(&num_cluster_threads)); ++ PRINTK("All cluster daemons have exited.\n"); ++} ++ ++static int peers_not_in_message(int index, int message, int precise) ++{ ++ struct cluster_member *this; ++ unsigned long flags; ++ int result = 0; ++ ++ spin_lock_irqsave(&node_array[index].member_list_lock, flags); ++ list_for_each_entry(this, &node_array[index].member_list, list) { ++ if (this->ignore) ++ continue; ++ ++ PRINTK("Peer %d.%d.%d.%d sending %s. " ++ "Seeking %s.\n", ++ NIPQUAD(this->addr), ++ str_message(this->message), str_message(message)); ++ if ((precise ? this->message : ++ this->message & MSG_STATE_MASK) != ++ message) ++ result++; ++ } ++ spin_unlock_irqrestore(&node_array[index].member_list_lock, flags); ++ PRINTK("%d peers in sought message.\n", result); ++ return result; ++} ++ ++static void reset_ignored(int index) ++{ ++ struct cluster_member *this; ++ unsigned long flags; ++ ++ spin_lock_irqsave(&node_array[index].member_list_lock, flags); ++ list_for_each_entry(this, &node_array[index].member_list, list) ++ this->ignore = 0; ++ node_array[index].ignored_peer_count = 0; ++ spin_unlock_irqrestore(&node_array[index].member_list_lock, flags); ++} ++ ++static int peers_in_message(int index, int message, int precise) ++{ ++ return node_array[index].peer_count - ++ node_array[index].ignored_peer_count - ++ peers_not_in_message(index, message, precise); ++} ++ ++static int time_to_continue(int index, unsigned long start, int message) ++{ ++ int first = peers_not_in_message(index, message, 0); ++ int second = peers_in_message(index, message, 1); ++ ++ PRINTK("First part returns %d, second returns %d.\n", first, second); ++ ++ if (!first && !second) { ++ PRINTK("All peers answered message %d.\n", ++ message); ++ return 1; ++ } ++ ++ if (time_after(jiffies, start + continue_delay)) { ++ PRINTK("Timeout reached.\n"); ++ return 1; ++ } ++ ++ PRINTK("Not time to continue yet (%lu < %lu).\n", jiffies, ++ start + continue_delay); ++ return 0; ++} ++ ++void toi_initiate_cluster_hibernate(void) ++{ ++ int result; ++ unsigned long start; ++ ++ result = do_toi_step(STEP_HIBERNATE_PREPARE_IMAGE); ++ if (result) ++ return; ++ ++ toi_send_if(MSG_HIBERNATE, 0); ++ ++ start = jiffies; ++ wait_event(node_array[0].member_events, ++ time_to_continue(0, start, MSG_HIBERNATE)); ++ ++ if (test_action_state(TOI_FREEZER_TEST)) { ++ toi_send_if(MSG_ABORT, 0); ++ ++ start = jiffies; ++ wait_event(node_array[0].member_events, ++ time_to_continue(0, start, MSG_RUNNING)); ++ ++ do_toi_step(STEP_QUIET_CLEANUP); ++ return; ++ } ++ ++ toi_send_if(MSG_IO, 0); ++ ++ result = do_toi_step(STEP_HIBERNATE_SAVE_IMAGE); ++ if (result) ++ return; ++ ++ /* This code runs at resume time too! */ ++ if (toi_in_hibernate) ++ result = do_toi_step(STEP_HIBERNATE_POWERDOWN); ++} ++EXPORT_SYMBOL_GPL(toi_initiate_cluster_hibernate); ++ ++/* toi_cluster_print_debug_stats ++ * ++ * Description: Print information to be recorded for debugging purposes into a ++ * buffer. ++ * Arguments: buffer: Pointer to a buffer into which the debug info will be ++ * printed. ++ * size: Size of the buffer. ++ * Returns: Number of characters written to the buffer. ++ */ ++static int toi_cluster_print_debug_stats(char *buffer, int size) ++{ ++ int len; ++ ++ if (strlen(toi_cluster_iface)) ++ len = scnprintf(buffer, size, ++ "- Cluster interface is '%s'.\n", ++ toi_cluster_iface); ++ else ++ len = scnprintf(buffer, size, ++ "- Cluster support is disabled.\n"); ++ return len; ++} ++ ++/* cluster_memory_needed ++ * ++ * Description: Tell the caller how much memory we need to operate during ++ * hibernate/resume. ++ * Returns: Unsigned long. Maximum number of bytes of memory required for ++ * operation. ++ */ ++static int toi_cluster_memory_needed(void) ++{ ++ return 0; ++} ++ ++static int toi_cluster_storage_needed(void) ++{ ++ return 1 + strlen(toi_cluster_iface); ++} ++ ++/* toi_cluster_save_config_info ++ * ++ * Description: Save informaton needed when reloading the image at resume time. ++ * Arguments: Buffer: Pointer to a buffer of size PAGE_SIZE. ++ * Returns: Number of bytes used for saving our data. ++ */ ++static int toi_cluster_save_config_info(char *buffer) ++{ ++ strcpy(buffer, toi_cluster_iface); ++ return strlen(toi_cluster_iface + 1); ++} ++ ++/* toi_cluster_load_config_info ++ * ++ * Description: Reload information needed for declustering the image at ++ * resume time. ++ * Arguments: Buffer: Pointer to the start of the data. ++ * Size: Number of bytes that were saved. ++ */ ++static void toi_cluster_load_config_info(char *buffer, int size) ++{ ++ strncpy(toi_cluster_iface, buffer, size); ++ return; ++} ++ ++static void cluster_startup(void) ++{ ++ int have_image = do_check_can_resume(), i; ++ unsigned long start = jiffies, initial_message; ++ struct task_struct *p; ++ ++ initial_message = MSG_IMAGE; ++ ++ have_image = 1; ++ ++ for (i = 0; i < num_local_nodes; i++) { ++ PRINTK("Starting ktoiclusterd %d.\n", i); ++ p = kthread_create(kTOICluster, (void *) initial_message, ++ "ktoiclusterd/%d", i); ++ if (IS_ERR(p)) { ++ printk(KERN_ERR "Failed to start ktoiclusterd.\n"); ++ return; ++ } ++ ++ wake_up_process(p); ++ } ++ ++ /* Wait for delay or someone else sending first message */ ++ wait_event(node_array[0].member_events, time_to_continue(0, start, ++ MSG_IMAGE)); ++ ++ others_have_image = peers_in_message(0, MSG_IMAGE | MSG_ACK, 1); ++ ++ printk(KERN_INFO "Continuing. I %shave an image. Peers with image:" ++ " %d.\n", have_image ? "" : "don't ", others_have_image); ++ ++ if (have_image) { ++ int result; ++ ++ /* Start to resume */ ++ printk(KERN_INFO " === Starting to resume === \n"); ++ node_array[0].current_message = MSG_IO; ++ toi_send_if(MSG_IO, 0); ++ ++ /* result = do_toi_step(STEP_RESUME_LOAD_PS1); */ ++ result = 0; ++ ++ if (!result) { ++ /* ++ * Atomic restore - we'll come back in the hibernation ++ * path. ++ */ ++ ++ /* result = do_toi_step(STEP_RESUME_DO_RESTORE); */ ++ result = 0; ++ ++ /* do_toi_step(STEP_QUIET_CLEANUP); */ ++ } ++ ++ node_array[0].current_message |= MSG_NACK; ++ ++ /* For debugging - disable for real life? */ ++ wait_event(node_array[0].member_events, ++ time_to_continue(0, start, MSG_IO)); ++ } ++ ++ if (others_have_image) { ++ /* Wait for them to resume */ ++ printk(KERN_INFO "Waiting for other nodes to resume.\n"); ++ start = jiffies; ++ wait_event(node_array[0].member_events, ++ time_to_continue(0, start, MSG_RUNNING)); ++ if (peers_not_in_message(0, MSG_RUNNING, 0)) ++ printk(KERN_INFO "Timed out while waiting for other " ++ "nodes to resume.\n"); ++ } ++ ++ /* Find out whether an image exists here. Send ACK_IMAGE or NACK_IMAGE ++ * as appropriate. ++ * ++ * If we don't have an image: ++ * - Wait until someone else says they have one, or conditions are met ++ * for continuing to boot (n machines or t seconds). ++ * - If anyone has an image, wait for them to resume before continuing ++ * to boot. ++ * ++ * If we have an image: ++ * - Wait until conditions are met before continuing to resume (n ++ * machines or t seconds). Send RESUME_PREP and freeze processes. ++ * NACK_PREP if freezing fails (shouldn't) and follow logic for ++ * us having no image above. On success, wait for [N]ACK_PREP from ++ * other machines. Read image (including atomic restore) until done. ++ * Wait for ACK_READ from others (should never fail). Thaw processes ++ * and do post-resume. (The section after the atomic restore is done ++ * via the code for hibernating). ++ */ ++ ++ node_array[0].current_message = MSG_RUNNING; ++} ++ ++/* toi_cluster_open_iface ++ * ++ * Description: Prepare to use an interface. ++ */ ++ ++static int toi_cluster_open_iface(void) ++{ ++ struct net_device *dev; ++ ++ rtnl_lock(); ++ ++ for_each_netdev(&init_net, dev) { ++ if (/* dev == &init_net.loopback_dev || */ ++ strcmp(dev->name, toi_cluster_iface)) ++ continue; ++ ++ net_dev = dev; ++ break; ++ } ++ ++ rtnl_unlock(); ++ ++ if (!net_dev) { ++ printk(KERN_ERR MYNAME ": Device %s not found.\n", ++ toi_cluster_iface); ++ return -ENODEV; ++ } ++ ++ dev_add_pack(&toi_cluster_packet_type); ++ added_pack = 1; ++ ++ loopback_mode = (net_dev == init_net.loopback_dev); ++ num_local_nodes = loopback_mode ? 8 : 1; ++ ++ PRINTK("Loopback mode is %s. Number of local nodes is %d.\n", ++ loopback_mode ? "on" : "off", num_local_nodes); ++ ++ cluster_startup(); ++ return 0; ++} ++ ++/* toi_cluster_close_iface ++ * ++ * Description: Stop using an interface. ++ */ ++ ++static int toi_cluster_close_iface(void) ++{ ++ kill_clusterd(); ++ if (added_pack) { ++ dev_remove_pack(&toi_cluster_packet_type); ++ added_pack = 0; ++ } ++ return 0; ++} ++ ++static void write_side_effect(void) ++{ ++ if (toi_cluster_ops.enabled) { ++ toi_cluster_open_iface(); ++ set_toi_state(TOI_CLUSTER_MODE); ++ } else { ++ toi_cluster_close_iface(); ++ clear_toi_state(TOI_CLUSTER_MODE); ++ } ++} ++ ++static void node_write_side_effect(void) ++{ ++} ++ ++/* ++ * data for our sysfs entries. ++ */ ++static struct toi_sysfs_data sysfs_params[] = { ++ SYSFS_STRING("interface", SYSFS_RW, toi_cluster_iface, IFNAMSIZ, 0, ++ NULL), ++ SYSFS_INT("enabled", SYSFS_RW, &toi_cluster_ops.enabled, 0, 1, 0, ++ write_side_effect), ++ SYSFS_STRING("cluster_name", SYSFS_RW, toi_cluster_key, 32, 0, NULL), ++ SYSFS_STRING("pre-hibernate-script", SYSFS_RW, pre_hibernate_script, ++ 256, 0, NULL), ++ SYSFS_STRING("post-hibernate-script", SYSFS_RW, post_hibernate_script, ++ 256, 0, STRING), ++ SYSFS_UL("continue_delay", SYSFS_RW, &continue_delay, HZ / 2, 60 * HZ, ++ 0) ++}; ++ ++/* ++ * Ops structure. ++ */ ++ ++static struct toi_module_ops toi_cluster_ops = { ++ .type = FILTER_MODULE, ++ .name = "Cluster", ++ .directory = "cluster", ++ .module = THIS_MODULE, ++ .memory_needed = toi_cluster_memory_needed, ++ .print_debug_info = toi_cluster_print_debug_stats, ++ .save_config_info = toi_cluster_save_config_info, ++ .load_config_info = toi_cluster_load_config_info, ++ .storage_needed = toi_cluster_storage_needed, ++ ++ .sysfs_data = sysfs_params, ++ .num_sysfs_entries = sizeof(sysfs_params) / ++ sizeof(struct toi_sysfs_data), ++}; ++ ++/* ---- Registration ---- */ ++ ++#ifdef MODULE ++#define INIT static __init ++#define EXIT static __exit ++#else ++#define INIT ++#define EXIT ++#endif ++ ++INIT int toi_cluster_init(void) ++{ ++ int temp = toi_register_module(&toi_cluster_ops), i; ++ struct kobject *kobj = toi_cluster_ops.dir_kobj; ++ ++ for (i = 0; i < MAX_LOCAL_NODES; i++) { ++ node_array[i].current_message = 0; ++ INIT_LIST_HEAD(&node_array[i].member_list); ++ init_waitqueue_head(&node_array[i].member_events); ++ spin_lock_init(&node_array[i].member_list_lock); ++ spin_lock_init(&node_array[i].receive_lock); ++ ++ /* Set up sysfs entry */ ++ node_array[i].sysfs_data.attr.name = toi_kzalloc(8, ++ sizeof(node_array[i].sysfs_data.attr.name), ++ GFP_KERNEL); ++ sprintf((char *) node_array[i].sysfs_data.attr.name, "node_%d", ++ i); ++ node_array[i].sysfs_data.attr.mode = SYSFS_RW; ++ node_array[i].sysfs_data.type = TOI_SYSFS_DATA_INTEGER; ++ node_array[i].sysfs_data.flags = 0; ++ node_array[i].sysfs_data.data.integer.variable = ++ (int *) &node_array[i].current_message; ++ node_array[i].sysfs_data.data.integer.minimum = 0; ++ node_array[i].sysfs_data.data.integer.maximum = INT_MAX; ++ node_array[i].sysfs_data.write_side_effect = ++ node_write_side_effect; ++ toi_register_sysfs_file(kobj, &node_array[i].sysfs_data); ++ } ++ ++ toi_cluster_ops.enabled = (strlen(toi_cluster_iface) > 0); ++ ++ if (toi_cluster_ops.enabled) ++ toi_cluster_open_iface(); ++ ++ return temp; ++} ++ ++EXIT void toi_cluster_exit(void) ++{ ++ int i; ++ toi_cluster_close_iface(); ++ ++ for (i = 0; i < MAX_LOCAL_NODES; i++) ++ toi_unregister_sysfs_file(toi_cluster_ops.dir_kobj, ++ &node_array[i].sysfs_data); ++ toi_unregister_module(&toi_cluster_ops); ++} ++ ++static int __init toi_cluster_iface_setup(char *iface) ++{ ++ toi_cluster_ops.enabled = (*iface && ++ strcmp(iface, "off")); ++ ++ if (toi_cluster_ops.enabled) ++ strncpy(toi_cluster_iface, iface, strlen(iface)); ++} ++ ++__setup("toi_cluster=", toi_cluster_iface_setup); ++ ++#ifdef MODULE ++MODULE_LICENSE("GPL"); ++module_init(toi_cluster_init); ++module_exit(toi_cluster_exit); ++MODULE_AUTHOR("Nigel Cunningham"); ++MODULE_DESCRIPTION("Cluster Support for TuxOnIce"); ++#endif +diff --git a/kernel/power/tuxonice_cluster.h b/kernel/power/tuxonice_cluster.h +new file mode 100644 +index 0000000..051feb3 +--- /dev/null ++++ b/kernel/power/tuxonice_cluster.h +@@ -0,0 +1,18 @@ ++/* ++ * kernel/power/tuxonice_cluster.h ++ * ++ * Copyright (C) 2006-2010 Nigel Cunningham (nigel at tuxonice net) ++ * ++ * This file is released under the GPLv2. ++ */ ++ ++#ifdef CONFIG_TOI_CLUSTER ++extern int toi_cluster_init(void); ++extern void toi_cluster_exit(void); ++extern void toi_initiate_cluster_hibernate(void); ++#else ++static inline int toi_cluster_init(void) { return 0; } ++static inline void toi_cluster_exit(void) { } ++static inline void toi_initiate_cluster_hibernate(void) { } ++#endif ++ +diff --git a/kernel/power/tuxonice_compress.c b/kernel/power/tuxonice_compress.c +new file mode 100644 +index 0000000..6bbc446 +--- /dev/null ++++ b/kernel/power/tuxonice_compress.c +@@ -0,0 +1,497 @@ ++/* ++ * kernel/power/compression.c ++ * ++ * Copyright (C) 2003-2010 Nigel Cunningham (nigel at tuxonice net) ++ * ++ * This file is released under the GPLv2. ++ * ++ * This file contains data compression routines for TuxOnIce, ++ * using cryptoapi. ++ */ ++ ++#include ++#include ++#include ++#include ++ ++#include "tuxonice_builtin.h" ++#include "tuxonice.h" ++#include "tuxonice_modules.h" ++#include "tuxonice_sysfs.h" ++#include "tuxonice_io.h" ++#include "tuxonice_ui.h" ++#include "tuxonice_alloc.h" ++ ++static int toi_expected_compression; ++ ++static struct toi_module_ops toi_compression_ops; ++static struct toi_module_ops *next_driver; ++ ++static char toi_compressor_name[32] = "lzo"; ++ ++static DEFINE_MUTEX(stats_lock); ++ ++struct cpu_context { ++ u8 *page_buffer; ++ struct crypto_comp *transform; ++ unsigned int len; ++ char *buffer_start; ++ char *output_buffer; ++ char *check_buffer; ++}; ++ ++static DEFINE_PER_CPU(struct cpu_context, contexts); ++static int toi_check_compression; ++ ++/* ++ * toi_crypto_prepare ++ * ++ * Prepare to do some work by allocating buffers and transforms. ++ */ ++static int toi_compress_crypto_prepare(void) ++{ ++ int cpu; ++ ++ if (!*toi_compressor_name) { ++ printk(KERN_INFO "TuxOnIce: Compression enabled but no " ++ "compressor name set.\n"); ++ return 1; ++ } ++ ++ for_each_online_cpu(cpu) { ++ struct cpu_context *this = &per_cpu(contexts, cpu); ++ this->transform = crypto_alloc_comp(toi_compressor_name, 0, 0); ++ if (IS_ERR(this->transform)) { ++ printk(KERN_INFO "TuxOnIce: Failed to initialise the " ++ "%s compression transform.\n", ++ toi_compressor_name); ++ this->transform = NULL; ++ return 1; ++ } ++ ++ this->page_buffer = ++ (char *) toi_get_zeroed_page(16, TOI_ATOMIC_GFP); ++ ++ if (!this->page_buffer) { ++ printk(KERN_ERR ++ "Failed to allocate a page buffer for TuxOnIce " ++ "compression driver.\n"); ++ return -ENOMEM; ++ } ++ ++ this->output_buffer = ++ (char *) vmalloc_32(2 * PAGE_SIZE); ++ ++ if (!this->output_buffer) { ++ printk(KERN_ERR ++ "Failed to allocate a output buffer for TuxOnIce " ++ "compression driver.\n"); ++ return -ENOMEM; ++ } ++ ++ this->check_buffer = ++ (char *) toi_get_zeroed_page(16, TOI_ATOMIC_GFP); ++ ++ if (!this->check_buffer) { ++ printk(KERN_ERR ++ "Failed to allocate a check buffer for TuxOnIce " ++ "compression driver.\n"); ++ return -ENOMEM; ++ } ++ ++ } ++ ++ return 0; ++} ++ ++static int toi_compress_rw_cleanup(int writing) ++{ ++ int cpu; ++ ++ for_each_online_cpu(cpu) { ++ struct cpu_context *this = &per_cpu(contexts, cpu); ++ if (this->transform) { ++ crypto_free_comp(this->transform); ++ this->transform = NULL; ++ } ++ ++ if (this->page_buffer) ++ toi_free_page(16, (unsigned long) this->page_buffer); ++ ++ this->page_buffer = NULL; ++ ++ if (this->output_buffer) ++ vfree(this->output_buffer); ++ ++ this->output_buffer = NULL; ++ ++ if (this->check_buffer) ++ toi_free_page(16, (unsigned long) this->check_buffer); ++ ++ this->check_buffer = NULL; ++ } ++ ++ return 0; ++} ++ ++/* ++ * toi_compress_init ++ */ ++ ++static int toi_compress_init(int toi_or_resume) ++{ ++ if (!toi_or_resume) ++ return 0; ++ ++ toi_compress_bytes_in = 0; ++ toi_compress_bytes_out = 0; ++ ++ next_driver = toi_get_next_filter(&toi_compression_ops); ++ ++ return next_driver ? 0 : -ECHILD; ++} ++ ++/* ++ * toi_compress_rw_init() ++ */ ++ ++static int toi_compress_rw_init(int rw, int stream_number) ++{ ++ if (toi_compress_crypto_prepare()) { ++ printk(KERN_ERR "Failed to initialise compression " ++ "algorithm.\n"); ++ if (rw == READ) { ++ printk(KERN_INFO "Unable to read the image.\n"); ++ return -ENODEV; ++ } else { ++ printk(KERN_INFO "Continuing without " ++ "compressing the image.\n"); ++ toi_compression_ops.enabled = 0; ++ } ++ } ++ ++ return 0; ++} ++ ++static int check_compression(struct cpu_context *ctx, struct page *buffer_page, ++ int buf_size) ++{ ++ char *original = kmap(buffer_page); ++ int output_size = PAGE_SIZE, okay, ret; ++ ++ ret = crypto_comp_decompress(ctx->transform, ctx->output_buffer, ++ ctx->len, ctx->check_buffer, &output_size); ++ okay = (!ret && output_size == PAGE_SIZE && ++ !memcmp(ctx->check_buffer, original, PAGE_SIZE)); ++ ++ if (!okay) { ++ printk("Compression test failed.\n"); ++ print_hex_dump(KERN_ERR, "Original page: ", DUMP_PREFIX_NONE, ++ 16, 1, original, PAGE_SIZE, 0); ++ printk(KERN_ERR "\nOutput %d bytes. Result %d.", ctx->len, ret); ++ print_hex_dump(KERN_ERR, "Compressed to: ", DUMP_PREFIX_NONE, ++ 16, 1, ctx->output_buffer, ctx->len, 0); ++ printk(KERN_ERR "\nRestored to %d bytes.\n", output_size); ++ print_hex_dump(KERN_ERR, "Decompressed : ", DUMP_PREFIX_NONE, ++ 16, 1, ctx->check_buffer, output_size, 0); ++ } ++ kunmap(buffer_page); ++ ++ return okay; ++} ++ ++/* ++ * toi_compress_write_page() ++ * ++ * Compress a page of data, buffering output and passing on filled ++ * pages to the next module in the pipeline. ++ * ++ * Buffer_page: Pointer to a buffer of size PAGE_SIZE, containing ++ * data to be compressed. ++ * ++ * Returns: 0 on success. Otherwise the error is that returned by later ++ * modules, -ECHILD if we have a broken pipeline or -EIO if ++ * zlib errs. ++ */ ++static int toi_compress_write_page(unsigned long index, ++ struct page *buffer_page, unsigned int buf_size) ++{ ++ int ret, cpu = smp_processor_id(); ++ struct cpu_context *ctx = &per_cpu(contexts, cpu); ++ ++ if (!ctx->transform) ++ return next_driver->write_page(index, buffer_page, buf_size); ++ ++ ctx->buffer_start = kmap(buffer_page); ++ ++ ctx->len = PAGE_SIZE; ++ ++ ret = crypto_comp_compress(ctx->transform, ++ ctx->buffer_start, buf_size, ++ ctx->output_buffer, &ctx->len); ++ ++ kunmap(buffer_page); ++ ++ mutex_lock(&stats_lock); ++ toi_compress_bytes_in += buf_size; ++ toi_compress_bytes_out += ctx->len; ++ mutex_unlock(&stats_lock); ++ ++ if (!ret && ctx->len < buf_size) { /* some compression */ ++ if (unlikely(toi_check_compression)) { ++ ret = check_compression(ctx, buffer_page, buf_size); ++ if (!ret) ++ return next_driver->write_page(index, ++ buffer_page, buf_size); ++ } ++ ++ memcpy(ctx->page_buffer, ctx->output_buffer, ctx->len); ++ return next_driver->write_page(index, ++ virt_to_page(ctx->page_buffer), ++ ctx->len); ++ } else ++ return next_driver->write_page(index, buffer_page, buf_size); ++} ++ ++/* ++ * toi_compress_read_page() ++ * @buffer_page: struct page *. Pointer to a buffer of size PAGE_SIZE. ++ * ++ * Retrieve data from later modules and decompress it until the input buffer ++ * is filled. ++ * Zero if successful. Error condition from me or from downstream on failure. ++ */ ++static int toi_compress_read_page(unsigned long *index, ++ struct page *buffer_page, unsigned int *buf_size) ++{ ++ int ret, cpu = smp_processor_id(); ++ unsigned int len; ++ unsigned int outlen = PAGE_SIZE; ++ char *buffer_start; ++ struct cpu_context *ctx = &per_cpu(contexts, cpu); ++ ++ if (!ctx->transform) ++ return next_driver->read_page(index, buffer_page, buf_size); ++ ++ /* ++ * All our reads must be synchronous - we can't decompress ++ * data that hasn't been read yet. ++ */ ++ ++ ret = next_driver->read_page(index, buffer_page, &len); ++ ++ /* Error or uncompressed data */ ++ if (ret || len == PAGE_SIZE) ++ return ret; ++ ++ buffer_start = kmap(buffer_page); ++ memcpy(ctx->page_buffer, buffer_start, len); ++ ret = crypto_comp_decompress( ++ ctx->transform, ++ ctx->page_buffer, ++ len, buffer_start, &outlen); ++ if (ret) ++ abort_hibernate(TOI_FAILED_IO, ++ "Compress_read returned %d.\n", ret); ++ else if (outlen != PAGE_SIZE) { ++ abort_hibernate(TOI_FAILED_IO, ++ "Decompression yielded %d bytes instead of %ld.\n", ++ outlen, PAGE_SIZE); ++ printk(KERN_ERR "Decompression yielded %d bytes instead of " ++ "%ld.\n", outlen, PAGE_SIZE); ++ ret = -EIO; ++ *buf_size = outlen; ++ } ++ kunmap(buffer_page); ++ return ret; ++} ++ ++/* ++ * toi_compress_print_debug_stats ++ * @buffer: Pointer to a buffer into which the debug info will be printed. ++ * @size: Size of the buffer. ++ * ++ * Print information to be recorded for debugging purposes into a buffer. ++ * Returns: Number of characters written to the buffer. ++ */ ++ ++static int toi_compress_print_debug_stats(char *buffer, int size) ++{ ++ unsigned long pages_in = toi_compress_bytes_in >> PAGE_SHIFT, ++ pages_out = toi_compress_bytes_out >> PAGE_SHIFT; ++ int len; ++ ++ /* Output the compression ratio achieved. */ ++ if (*toi_compressor_name) ++ len = scnprintf(buffer, size, "- Compressor is '%s'.\n", ++ toi_compressor_name); ++ else ++ len = scnprintf(buffer, size, "- Compressor is not set.\n"); ++ ++ if (pages_in) ++ len += scnprintf(buffer+len, size - len, " Compressed " ++ "%lu bytes into %lu (%ld percent compression).\n", ++ toi_compress_bytes_in, ++ toi_compress_bytes_out, ++ (pages_in - pages_out) * 100 / pages_in); ++ return len; ++} ++ ++/* ++ * toi_compress_compression_memory_needed ++ * ++ * Tell the caller how much memory we need to operate during hibernate/resume. ++ * Returns: Unsigned long. Maximum number of bytes of memory required for ++ * operation. ++ */ ++static int toi_compress_memory_needed(void) ++{ ++ return 2 * PAGE_SIZE; ++} ++ ++static int toi_compress_storage_needed(void) ++{ ++ return 4 * sizeof(unsigned long) + strlen(toi_compressor_name) + 1; ++} ++ ++/* ++ * toi_compress_save_config_info ++ * @buffer: Pointer to a buffer of size PAGE_SIZE. ++ * ++ * Save informaton needed when reloading the image at resume time. ++ * Returns: Number of bytes used for saving our data. ++ */ ++static int toi_compress_save_config_info(char *buffer) ++{ ++ int namelen = strlen(toi_compressor_name) + 1; ++ int total_len; ++ ++ *((unsigned long *) buffer) = toi_compress_bytes_in; ++ *((unsigned long *) (buffer + 1 * sizeof(unsigned long))) = ++ toi_compress_bytes_out; ++ *((unsigned long *) (buffer + 2 * sizeof(unsigned long))) = ++ toi_expected_compression; ++ *((unsigned long *) (buffer + 3 * sizeof(unsigned long))) = namelen; ++ strncpy(buffer + 4 * sizeof(unsigned long), toi_compressor_name, ++ namelen); ++ total_len = 4 * sizeof(unsigned long) + namelen; ++ return total_len; ++} ++ ++/* toi_compress_load_config_info ++ * @buffer: Pointer to the start of the data. ++ * @size: Number of bytes that were saved. ++ * ++ * Description: Reload information needed for decompressing the image at ++ * resume time. ++ */ ++static void toi_compress_load_config_info(char *buffer, int size) ++{ ++ int namelen; ++ ++ toi_compress_bytes_in = *((unsigned long *) buffer); ++ toi_compress_bytes_out = *((unsigned long *) (buffer + 1 * ++ sizeof(unsigned long))); ++ toi_expected_compression = *((unsigned long *) (buffer + 2 * ++ sizeof(unsigned long))); ++ namelen = *((unsigned long *) (buffer + 3 * sizeof(unsigned long))); ++ if (strncmp(toi_compressor_name, buffer + 4 * sizeof(unsigned long), ++ namelen)) ++ strncpy(toi_compressor_name, buffer + 4 * sizeof(unsigned long), ++ namelen); ++ return; ++} ++ ++static void toi_compress_pre_atomic_restore(struct toi_boot_kernel_data *bkd) ++{ ++ bkd->compress_bytes_in = toi_compress_bytes_in; ++ bkd->compress_bytes_out = toi_compress_bytes_out; ++} ++ ++static void toi_compress_post_atomic_restore(struct toi_boot_kernel_data *bkd) ++{ ++ toi_compress_bytes_in = bkd->compress_bytes_in; ++ toi_compress_bytes_out = bkd->compress_bytes_out; ++} ++ ++/* ++ * toi_expected_compression_ratio ++ * ++ * Description: Returns the expected ratio between data passed into this module ++ * and the amount of data output when writing. ++ * Returns: 100 if the module is disabled. Otherwise the value set by the ++ * user via our sysfs entry. ++ */ ++ ++static int toi_compress_expected_ratio(void) ++{ ++ if (!toi_compression_ops.enabled) ++ return 100; ++ else ++ return 100 - toi_expected_compression; ++} ++ ++/* ++ * data for our sysfs entries. ++ */ ++static struct toi_sysfs_data sysfs_params[] = { ++ SYSFS_INT("expected_compression", SYSFS_RW, &toi_expected_compression, ++ 0, 99, 0, NULL), ++ SYSFS_INT("enabled", SYSFS_RW, &toi_compression_ops.enabled, 0, 1, 0, ++ NULL), ++ SYSFS_INT("check", SYSFS_RW, &toi_check_compression, 0, 1, 0, ++ NULL), ++ SYSFS_STRING("algorithm", SYSFS_RW, toi_compressor_name, 31, 0, NULL), ++}; ++ ++/* ++ * Ops structure. ++ */ ++static struct toi_module_ops toi_compression_ops = { ++ .type = FILTER_MODULE, ++ .name = "compression", ++ .directory = "compression", ++ .module = THIS_MODULE, ++ .initialise = toi_compress_init, ++ .memory_needed = toi_compress_memory_needed, ++ .print_debug_info = toi_compress_print_debug_stats, ++ .save_config_info = toi_compress_save_config_info, ++ .load_config_info = toi_compress_load_config_info, ++ .storage_needed = toi_compress_storage_needed, ++ .expected_compression = toi_compress_expected_ratio, ++ ++ .pre_atomic_restore = toi_compress_pre_atomic_restore, ++ .post_atomic_restore = toi_compress_post_atomic_restore, ++ ++ .rw_init = toi_compress_rw_init, ++ .rw_cleanup = toi_compress_rw_cleanup, ++ ++ .write_page = toi_compress_write_page, ++ .read_page = toi_compress_read_page, ++ ++ .sysfs_data = sysfs_params, ++ .num_sysfs_entries = sizeof(sysfs_params) / ++ sizeof(struct toi_sysfs_data), ++}; ++ ++/* ---- Registration ---- */ ++ ++static __init int toi_compress_load(void) ++{ ++ return toi_register_module(&toi_compression_ops); ++} ++ ++#ifdef MODULE ++static __exit void toi_compress_unload(void) ++{ ++ toi_unregister_module(&toi_compression_ops); ++} ++ ++module_init(toi_compress_load); ++module_exit(toi_compress_unload); ++MODULE_LICENSE("GPL"); ++MODULE_AUTHOR("Nigel Cunningham"); ++MODULE_DESCRIPTION("Compression Support for TuxOnIce"); ++#else ++late_initcall(toi_compress_load); ++#endif +diff --git a/kernel/power/tuxonice_extent.c b/kernel/power/tuxonice_extent.c +new file mode 100644 +index 0000000..e84572c +--- /dev/null ++++ b/kernel/power/tuxonice_extent.c +@@ -0,0 +1,123 @@ ++/* ++ * kernel/power/tuxonice_extent.c ++ * ++ * Copyright (C) 2003-2010 Nigel Cunningham (nigel at tuxonice net) ++ * ++ * Distributed under GPLv2. ++ * ++ * These functions encapsulate the manipulation of storage metadata. ++ */ ++ ++#include ++#include "tuxonice_modules.h" ++#include "tuxonice_extent.h" ++#include "tuxonice_alloc.h" ++#include "tuxonice_ui.h" ++#include "tuxonice.h" ++ ++/** ++ * toi_get_extent - return a free extent ++ * ++ * May fail, returning NULL instead. ++ **/ ++static struct hibernate_extent *toi_get_extent(void) ++{ ++ return (struct hibernate_extent *) toi_kzalloc(2, ++ sizeof(struct hibernate_extent), TOI_ATOMIC_GFP); ++} ++ ++/** ++ * toi_put_extent_chain - free a whole chain of extents ++ * @chain: Chain to free. ++ **/ ++void toi_put_extent_chain(struct hibernate_extent_chain *chain) ++{ ++ struct hibernate_extent *this; ++ ++ this = chain->first; ++ ++ while (this) { ++ struct hibernate_extent *next = this->next; ++ toi_kfree(2, this, sizeof(*this)); ++ chain->num_extents--; ++ this = next; ++ } ++ ++ chain->first = NULL; ++ chain->last_touched = NULL; ++ chain->current_extent = NULL; ++ chain->size = 0; ++} ++EXPORT_SYMBOL_GPL(toi_put_extent_chain); ++ ++/** ++ * toi_add_to_extent_chain - add an extent to an existing chain ++ * @chain: Chain to which the extend should be added ++ * @start: Start of the extent (first physical block) ++ * @end: End of the extent (last physical block) ++ * ++ * The chain information is updated if the insertion is successful. ++ **/ ++int toi_add_to_extent_chain(struct hibernate_extent_chain *chain, ++ unsigned long start, unsigned long end) ++{ ++ struct hibernate_extent *new_ext = NULL, *cur_ext = NULL; ++ ++ toi_message(TOI_IO, TOI_VERBOSE, 0, ++ "Adding extent %lu-%lu to chain %p.\n", start, end, chain); ++ ++ /* Find the right place in the chain */ ++ if (chain->last_touched && chain->last_touched->start < start) ++ cur_ext = chain->last_touched; ++ else if (chain->first && chain->first->start < start) ++ cur_ext = chain->first; ++ ++ if (cur_ext) { ++ while (cur_ext->next && cur_ext->next->start < start) ++ cur_ext = cur_ext->next; ++ ++ if (cur_ext->end == (start - 1)) { ++ struct hibernate_extent *next_ext = cur_ext->next; ++ cur_ext->end = end; ++ ++ /* Merge with the following one? */ ++ if (next_ext && cur_ext->end + 1 == next_ext->start) { ++ cur_ext->end = next_ext->end; ++ cur_ext->next = next_ext->next; ++ toi_kfree(2, next_ext, sizeof(*next_ext)); ++ chain->num_extents--; ++ } ++ ++ chain->last_touched = cur_ext; ++ chain->size += (end - start + 1); ++ ++ return 0; ++ } ++ } ++ ++ new_ext = toi_get_extent(); ++ if (!new_ext) { ++ printk(KERN_INFO "Error unable to append a new extent to the " ++ "chain.\n"); ++ return -ENOMEM; ++ } ++ ++ chain->num_extents++; ++ chain->size += (end - start + 1); ++ new_ext->start = start; ++ new_ext->end = end; ++ ++ chain->last_touched = new_ext; ++ ++ if (cur_ext) { ++ new_ext->next = cur_ext->next; ++ cur_ext->next = new_ext; ++ } else { ++ if (chain->first) ++ new_ext->next = chain->first; ++ chain->first = new_ext; ++ } ++ ++ return 0; ++} ++EXPORT_SYMBOL_GPL(toi_add_to_extent_chain); +diff --git a/kernel/power/tuxonice_extent.h b/kernel/power/tuxonice_extent.h +new file mode 100644 +index 0000000..157446c +--- /dev/null ++++ b/kernel/power/tuxonice_extent.h +@@ -0,0 +1,44 @@ ++/* ++ * kernel/power/tuxonice_extent.h ++ * ++ * Copyright (C) 2003-2010 Nigel Cunningham (nigel at tuxonice net) ++ * ++ * This file is released under the GPLv2. ++ * ++ * It contains declarations related to extents. Extents are ++ * TuxOnIce's method of storing some of the metadata for the image. ++ * See tuxonice_extent.c for more info. ++ * ++ */ ++ ++#include "tuxonice_modules.h" ++ ++#ifndef EXTENT_H ++#define EXTENT_H ++ ++struct hibernate_extent { ++ unsigned long start, end; ++ struct hibernate_extent *next; ++}; ++ ++struct hibernate_extent_chain { ++ unsigned long size; /* size of the chain ie sum (max-min+1) */ ++ int num_extents; ++ struct hibernate_extent *first, *last_touched; ++ struct hibernate_extent *current_extent; ++ unsigned long current_offset; ++}; ++ ++/* Simplify iterating through all the values in an extent chain */ ++#define toi_extent_for_each(extent_chain, extentpointer, value) \ ++if ((extent_chain)->first) \ ++ for ((extentpointer) = (extent_chain)->first, (value) = \ ++ (extentpointer)->start; \ ++ ((extentpointer) && ((extentpointer)->next || (value) <= \ ++ (extentpointer)->end)); \ ++ (((value) == (extentpointer)->end) ? \ ++ ((extentpointer) = (extentpointer)->next, (value) = \ ++ ((extentpointer) ? (extentpointer)->start : 0)) : \ ++ (value)++)) ++ ++#endif +diff --git a/kernel/power/tuxonice_file.c b/kernel/power/tuxonice_file.c +new file mode 100644 +index 0000000..39f2aea +--- /dev/null ++++ b/kernel/power/tuxonice_file.c +@@ -0,0 +1,496 @@ ++/* ++ * kernel/power/tuxonice_file.c ++ * ++ * Copyright (C) 2005-2010 Nigel Cunningham (nigel at tuxonice net) ++ * ++ * Distributed under GPLv2. ++ * ++ * This file encapsulates functions for usage of a simple file as a ++ * backing store. It is based upon the swapallocator, and shares the ++ * same basic working. Here, though, we have nothing to do with ++ * swapspace, and only one device to worry about. ++ * ++ * The user can just ++ * ++ * echo TuxOnIce > /path/to/my_file ++ * ++ * dd if=/dev/zero bs=1M count= >> /path/to/my_file ++ * ++ * and ++ * ++ * echo /path/to/my_file > /sys/power/tuxonice/file/target ++ * ++ * then put what they find in /sys/power/tuxonice/resume ++ * as their resume= parameter in lilo.conf (and rerun lilo if using it). ++ * ++ * Having done this, they're ready to hibernate and resume. ++ * ++ * TODO: ++ * - File resizing. ++ */ ++ ++#include ++#include ++#include ++#include ++ ++#include "tuxonice.h" ++#include "tuxonice_modules.h" ++#include "tuxonice_bio.h" ++#include "tuxonice_alloc.h" ++#include "tuxonice_builtin.h" ++#include "tuxonice_sysfs.h" ++#include "tuxonice_ui.h" ++#include "tuxonice_io.h" ++ ++#define target_is_normal_file() (S_ISREG(target_inode->i_mode)) ++ ++static struct toi_module_ops toi_fileops; ++ ++static struct file *target_file; ++static struct block_device *toi_file_target_bdev; ++static unsigned long pages_available, pages_allocated; ++static char toi_file_target[256]; ++static struct inode *target_inode; ++static int file_target_priority; ++static int used_devt; ++static int target_claim; ++static dev_t toi_file_dev_t; ++static int sig_page_index; ++ ++/* For test_toi_file_target */ ++static struct toi_bdev_info *file_chain; ++ ++static int has_contiguous_blocks(struct toi_bdev_info *dev_info, int page_num) ++{ ++ int j; ++ sector_t last = 0; ++ ++ for (j = 0; j < dev_info->blocks_per_page; j++) { ++ sector_t this = bmap(target_inode, ++ page_num * dev_info->blocks_per_page + j); ++ ++ if (!this || (last && (last + 1) != this)) ++ break; ++ ++ last = this; ++ } ++ ++ return j == dev_info->blocks_per_page; ++} ++ ++static unsigned long get_usable_pages(struct toi_bdev_info *dev_info) ++{ ++ unsigned long result = 0; ++ struct block_device *bdev = dev_info->bdev; ++ int i; ++ ++ switch (target_inode->i_mode & S_IFMT) { ++ case S_IFSOCK: ++ case S_IFCHR: ++ case S_IFIFO: /* Socket, Char, Fifo */ ++ return -1; ++ case S_IFREG: /* Regular file: current size - holes + free ++ space on part */ ++ for (i = 0; i < (target_inode->i_size >> PAGE_SHIFT) ; i++) { ++ if (has_contiguous_blocks(dev_info, i)) ++ result++; ++ } ++ break; ++ case S_IFBLK: /* Block device */ ++ if (!bdev->bd_disk) { ++ toi_message(TOI_IO, TOI_VERBOSE, 0, ++ "bdev->bd_disk null."); ++ return 0; ++ } ++ ++ result = (bdev->bd_part ? ++ bdev->bd_part->nr_sects : ++ get_capacity(bdev->bd_disk)) >> (PAGE_SHIFT - 9); ++ } ++ ++ ++ return result; ++} ++ ++static int toi_file_register_storage(void) ++{ ++ struct toi_bdev_info *devinfo; ++ int result = 0; ++ struct fs_info *fs_info; ++ ++ toi_message(TOI_IO, TOI_VERBOSE, 0, "toi_file_register_storage."); ++ if (!strlen(toi_file_target)) { ++ toi_message(TOI_IO, TOI_VERBOSE, 0, "Register file storage: " ++ "No target filename set."); ++ return 0; ++ } ++ ++ target_file = filp_open(toi_file_target, O_RDONLY|O_LARGEFILE, 0); ++ toi_message(TOI_IO, TOI_VERBOSE, 0, "filp_open %s returned %p.", ++ toi_file_target, target_file); ++ ++ if (IS_ERR(target_file) || !target_file) { ++ target_file = NULL; ++ toi_file_dev_t = name_to_dev_t(toi_file_target); ++ if (!toi_file_dev_t) { ++ struct kstat stat; ++ int error = vfs_stat(toi_file_target, &stat); ++ printk(KERN_INFO "Open file %s returned %p and " ++ "name_to_devt failed.\n", ++ toi_file_target, target_file); ++ if (error) { ++ printk(KERN_INFO "Stating the file also failed." ++ " Nothing more we can do.\n"); ++ return 0; ++ } else ++ toi_file_dev_t = stat.rdev; ++ } ++ ++ toi_file_target_bdev = toi_open_by_devnum(toi_file_dev_t); ++ if (IS_ERR(toi_file_target_bdev)) { ++ printk(KERN_INFO "Got a dev_num (%lx) but failed to " ++ "open it.\n", ++ (unsigned long) toi_file_dev_t); ++ toi_file_target_bdev = NULL; ++ return 0; ++ } ++ used_devt = 1; ++ target_inode = toi_file_target_bdev->bd_inode; ++ } else ++ target_inode = target_file->f_mapping->host; ++ ++ toi_message(TOI_IO, TOI_VERBOSE, 0, "Succeeded in opening the target."); ++ if (S_ISLNK(target_inode->i_mode) || S_ISDIR(target_inode->i_mode) || ++ S_ISSOCK(target_inode->i_mode) || S_ISFIFO(target_inode->i_mode)) { ++ printk(KERN_INFO "File support works with regular files," ++ " character files and block devices.\n"); ++ /* Cleanup routine will undo the above */ ++ return 0; ++ } ++ ++ if (!used_devt) { ++ if (S_ISBLK(target_inode->i_mode)) { ++ toi_file_target_bdev = I_BDEV(target_inode); ++ if (!bd_claim(toi_file_target_bdev, &toi_fileops)) ++ target_claim = 1; ++ } else ++ toi_file_target_bdev = target_inode->i_sb->s_bdev; ++ if (!toi_file_target_bdev) { ++ printk(KERN_INFO "%s is not a valid file allocator " ++ "target.\n", toi_file_target); ++ return 0; ++ } ++ toi_file_dev_t = toi_file_target_bdev->bd_dev; ++ } ++ ++ devinfo = toi_kzalloc(39, sizeof(struct toi_bdev_info), GFP_ATOMIC); ++ if (!devinfo) { ++ printk("Failed to allocate a toi_bdev_info struct for the file allocator.\n"); ++ return -ENOMEM; ++ } ++ ++ devinfo->bdev = toi_file_target_bdev; ++ devinfo->allocator = &toi_fileops; ++ devinfo->allocator_index = 0; ++ ++ fs_info = fs_info_from_block_dev(toi_file_target_bdev); ++ if (fs_info && !IS_ERR(fs_info)) { ++ memcpy(devinfo->uuid, &fs_info->uuid, 16); ++ free_fs_info(fs_info); ++ } else ++ result = (int) PTR_ERR(fs_info); ++ ++ /* Unlike swap code, only complain if fs_info_from_block_dev returned ++ * -ENOMEM. The 'file' might be a full partition, so might validly not ++ * have an identifiable type, UUID etc. ++ */ ++ if (result) ++ printk(KERN_DEBUG "Failed to get fs_info for file device (%d).\n", ++ result); ++ devinfo->dev_t = toi_file_dev_t; ++ devinfo->prio = file_target_priority; ++ devinfo->bmap_shift = target_inode->i_blkbits - 9; ++ devinfo->blocks_per_page = ++ (1 << (PAGE_SHIFT - target_inode->i_blkbits)); ++ sprintf(devinfo->name, "file %s", toi_file_target); ++ file_chain = devinfo; ++ toi_message(TOI_IO, TOI_VERBOSE, 0, "Dev_t is %lx. Prio is %d. Bmap " ++ "shift is %d. Blocks per page %d.", ++ devinfo->dev_t, devinfo->prio, devinfo->bmap_shift, ++ devinfo->blocks_per_page); ++ ++ /* Keep one aside for the signature */ ++ pages_available = get_usable_pages(devinfo) - 1; ++ ++ toi_message(TOI_IO, TOI_VERBOSE, 0, "Registering file storage, %lu " ++ "pages.", pages_available); ++ ++ toi_bio_ops.register_storage(devinfo); ++ return 0; ++} ++ ++static unsigned long toi_file_storage_available(void) ++{ ++ return pages_available; ++} ++ ++static int toi_file_allocate_storage(struct toi_bdev_info *chain, ++ unsigned long request) ++{ ++ unsigned long available = pages_available - pages_allocated; ++ unsigned long to_add = min(available, request); ++ ++ toi_message(TOI_IO, TOI_VERBOSE, 0, "Pages available is %lu. Allocated " ++ "is %lu. Allocating %lu pages from file.", ++ pages_available, pages_allocated, to_add); ++ pages_allocated += to_add; ++ ++ return to_add; ++} ++ ++/** ++ * __populate_block_list - add an extent to the chain ++ * @min: Start of the extent (first physical block = sector) ++ * @max: End of the extent (last physical block = sector) ++ * ++ * If TOI_TEST_BIO is set, print a debug message, outputting the min and max ++ * fs block numbers. ++ **/ ++static int __populate_block_list(struct toi_bdev_info *chain, int min, int max) ++{ ++ if (test_action_state(TOI_TEST_BIO)) ++ toi_message(TOI_IO, TOI_VERBOSE, 0, "Adding extent %d-%d.", ++ min << chain->bmap_shift, ++ ((max + 1) << chain->bmap_shift) - 1); ++ ++ return toi_add_to_extent_chain(&chain->blocks, min, max); ++} ++ ++static int get_main_pool_phys_params(struct toi_bdev_info *chain) ++{ ++ int i, extent_min = -1, extent_max = -1, result = 0, have_sig_page = 0; ++ unsigned long pages_mapped = 0; ++ ++ toi_message(TOI_IO, TOI_VERBOSE, 0, "Getting file allocator blocks."); ++ ++ if (chain->blocks.first) ++ toi_put_extent_chain(&chain->blocks); ++ ++ if (!target_is_normal_file()) { ++ result = (pages_available > 0) ? ++ __populate_block_list(chain, chain->blocks_per_page, ++ (pages_allocated + 1) * ++ chain->blocks_per_page - 1) : 0; ++ return result; ++ } ++ ++ /* ++ * FIXME: We are assuming the first page is contiguous. Is that ++ * assumption always right? ++ */ ++ ++ for (i = 0; i < (target_inode->i_size >> PAGE_SHIFT); i++) { ++ sector_t new_sector; ++ ++ if (!has_contiguous_blocks(chain, i)) ++ continue; ++ ++ if (!have_sig_page) { ++ have_sig_page = 1; ++ sig_page_index = i; ++ continue; ++ } ++ ++ pages_mapped++; ++ ++ /* Ignore first page - it has the header */ ++ if (pages_mapped == 1) ++ continue; ++ ++ new_sector = bmap(target_inode, (i * chain->blocks_per_page)); ++ ++ /* ++ * I'd love to be able to fill in holes and resize ++ * files, but not yet... ++ */ ++ ++ if (new_sector == extent_max + 1) ++ extent_max += chain->blocks_per_page; ++ else { ++ if (extent_min > -1) { ++ result = __populate_block_list(chain, ++ extent_min, extent_max); ++ if (result) ++ return result; ++ } ++ ++ extent_min = new_sector; ++ extent_max = extent_min + ++ chain->blocks_per_page - 1; ++ } ++ ++ if (pages_mapped == pages_allocated) ++ break; ++ } ++ ++ if (extent_min > -1) { ++ result = __populate_block_list(chain, extent_min, extent_max); ++ if (result) ++ return result; ++ } ++ ++ return 0; ++} ++ ++static void toi_file_free_storage(struct toi_bdev_info *chain) ++{ ++ pages_allocated = 0; ++ file_chain = NULL; ++} ++ ++/** ++ * toi_file_print_debug_stats - print debug info ++ * @buffer: Buffer to data to populate ++ * @size: Size of the buffer ++ **/ ++static int toi_file_print_debug_stats(char *buffer, int size) ++{ ++ int len = scnprintf(buffer, size, "- File Allocator active.\n"); ++ ++ len += scnprintf(buffer+len, size-len, " Storage available for " ++ "image: %lu pages.\n", pages_available); ++ ++ return len; ++} ++ ++static void toi_file_cleanup(int finishing_cycle) ++{ ++ if (toi_file_target_bdev) { ++ if (target_claim) { ++ bd_release(toi_file_target_bdev); ++ target_claim = 0; ++ } ++ ++ if (used_devt) { ++ blkdev_put(toi_file_target_bdev, ++ FMODE_READ | FMODE_NDELAY); ++ used_devt = 0; ++ } ++ toi_file_target_bdev = NULL; ++ target_inode = NULL; ++ } ++ ++ if (target_file) { ++ filp_close(target_file, NULL); ++ target_file = NULL; ++ } ++ ++ pages_available = 0; ++} ++ ++/** ++ * test_toi_file_target - sysfs callback for /sys/power/tuxonince/file/target ++ * ++ * Test wheter the target file is valid for hibernating. ++ **/ ++static void test_toi_file_target(void) ++{ ++ int result = toi_file_register_storage(); ++ sector_t sector; ++ char buf[33]; ++ struct fs_info *fs_info; ++ ++ if (result || !file_chain) ++ return; ++ ++ /* This doesn't mean we're in business. Is any storage available? */ ++ if (!pages_available) ++ goto out; ++ ++ toi_file_allocate_storage(file_chain, 1); ++ result = get_main_pool_phys_params(file_chain); ++ if (result) ++ goto out; ++ ++ ++ sector = bmap(target_inode, sig_page_index * ++ file_chain->blocks_per_page) << file_chain->bmap_shift; ++ ++ /* Use the uuid, or the dev_t if that fails */ ++ fs_info = fs_info_from_block_dev(toi_file_target_bdev); ++ if (!fs_info || IS_ERR(fs_info)) { ++ bdevname(toi_file_target_bdev, buf); ++ sprintf(resume_file, "/dev/%s:%llu", buf, ++ (unsigned long long) sector); ++ } else { ++ int i; ++ hex_dump_to_buffer(fs_info->uuid, 16, 32, 1, buf, 50, 0); ++ ++ /* Remove the spaces */ ++ for (i = 1; i < 16; i++) { ++ buf[2 * i] = buf[3 * i]; ++ buf[2 * i + 1] = buf[3 * i + 1]; ++ } ++ buf[32] = 0; ++ sprintf(resume_file, "UUID=%s:0x%llx", buf, ++ (unsigned long long) sector); ++ free_fs_info(fs_info); ++ } ++ ++ toi_attempt_to_parse_resume_device(0); ++out: ++ toi_file_free_storage(file_chain); ++ toi_bio_ops.free_storage(); ++} ++ ++static struct toi_sysfs_data sysfs_params[] = { ++ SYSFS_STRING("target", SYSFS_RW, toi_file_target, 256, ++ SYSFS_NEEDS_SM_FOR_WRITE, test_toi_file_target), ++ SYSFS_INT("enabled", SYSFS_RW, &toi_fileops.enabled, 0, 1, 0, NULL), ++ SYSFS_INT("priority", SYSFS_RW, &file_target_priority, -4095, ++ 4096, 0, NULL), ++}; ++ ++static struct toi_bio_allocator_ops toi_bio_fileops = { ++ .register_storage = toi_file_register_storage, ++ .storage_available = toi_file_storage_available, ++ .allocate_storage = toi_file_allocate_storage, ++ .bmap = get_main_pool_phys_params, ++ .free_storage = toi_file_free_storage, ++}; ++ ++static struct toi_module_ops toi_fileops = { ++ .type = BIO_ALLOCATOR_MODULE, ++ .name = "file storage", ++ .directory = "file", ++ .module = THIS_MODULE, ++ .print_debug_info = toi_file_print_debug_stats, ++ .cleanup = toi_file_cleanup, ++ .bio_allocator_ops = &toi_bio_fileops, ++ ++ .sysfs_data = sysfs_params, ++ .num_sysfs_entries = sizeof(sysfs_params) / ++ sizeof(struct toi_sysfs_data), ++}; ++ ++/* ---- Registration ---- */ ++static __init int toi_file_load(void) ++{ ++ return toi_register_module(&toi_fileops); ++} ++ ++#ifdef MODULE ++static __exit void toi_file_unload(void) ++{ ++ toi_unregister_module(&toi_fileops); ++} ++ ++module_init(toi_file_load); ++module_exit(toi_file_unload); ++MODULE_LICENSE("GPL"); ++MODULE_AUTHOR("Nigel Cunningham"); ++MODULE_DESCRIPTION("TuxOnIce FileAllocator"); ++#else ++late_initcall(toi_file_load); ++#endif +diff --git a/kernel/power/tuxonice_highlevel.c b/kernel/power/tuxonice_highlevel.c +new file mode 100644 +index 0000000..c4bbb49 +--- /dev/null ++++ b/kernel/power/tuxonice_highlevel.c +@@ -0,0 +1,1313 @@ ++/* ++ * kernel/power/tuxonice_highlevel.c ++ */ ++/** \mainpage TuxOnIce. ++ * ++ * TuxOnIce provides support for saving and restoring an image of ++ * system memory to an arbitrary storage device, either on the local computer, ++ * or across some network. The support is entirely OS based, so TuxOnIce ++ * works without requiring BIOS, APM or ACPI support. The vast majority of the ++ * code is also architecture independant, so it should be very easy to port ++ * the code to new architectures. TuxOnIce includes support for SMP, 4G HighMem ++ * and preemption. Initramfses and initrds are also supported. ++ * ++ * TuxOnIce uses a modular design, in which the method of storing the image is ++ * completely abstracted from the core code, as are transformations on the data ++ * such as compression and/or encryption (multiple 'modules' can be used to ++ * provide arbitrary combinations of functionality). The user interface is also ++ * modular, so that arbitrarily simple or complex interfaces can be used to ++ * provide anything from debugging information through to eye candy. ++ * ++ * \section Copyright ++ * ++ * TuxOnIce is released under the GPLv2. ++ * ++ * Copyright (C) 1998-2001 Gabor Kuti
++ * Copyright (C) 1998,2001,2002 Pavel Machek
++ * Copyright (C) 2002-2003 Florent Chabaud
++ * Copyright (C) 2002-2010 Nigel Cunningham (nigel at tuxonice net)
++ * ++ * \section Credits ++ * ++ * Nigel would like to thank the following people for their work: ++ * ++ * Bernard Blackham
++ * Web page & Wiki administration, some coding. A person without whom ++ * TuxOnIce would not be where it is. ++ * ++ * Michael Frank
++ * Extensive testing and help with improving stability. I was constantly ++ * amazed by the quality and quantity of Michael's help. ++ * ++ * Pavel Machek
++ * Modifications, defectiveness pointing, being with Gabor at the very ++ * beginning, suspend to swap space, stop all tasks. Port to 2.4.18-ac and ++ * 2.5.17. Even though Pavel and I disagree on the direction suspend to ++ * disk should take, I appreciate the valuable work he did in helping Gabor ++ * get the concept working. ++ * ++ * ..and of course the myriads of TuxOnIce users who have helped diagnose ++ * and fix bugs, made suggestions on how to improve the code, proofread ++ * documentation, and donated time and money. ++ * ++ * Thanks also to corporate sponsors: ++ * ++ * Redhat.Sometime employer from May 2006 (my fault, not Redhat's!). ++ * ++ * Cyclades.com. Nigel's employers from Dec 2004 until May 2006, who ++ * allowed him to work on TuxOnIce and PM related issues on company time. ++ * ++ * LinuxFund.org. Sponsored Nigel's work on TuxOnIce for four months Oct ++ * 2003 to Jan 2004. ++ * ++ * LAC Linux. Donated P4 hardware that enabled development and ongoing ++ * maintenance of SMP and Highmem support. ++ * ++ * OSDL. Provided access to various hardware configurations, make ++ * occasional small donations to the project. ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include /* for get/set_fs & KERNEL_DS on i386 */ ++#include ++ ++#include "tuxonice.h" ++#include "tuxonice_modules.h" ++#include "tuxonice_sysfs.h" ++#include "tuxonice_prepare_image.h" ++#include "tuxonice_io.h" ++#include "tuxonice_ui.h" ++#include "tuxonice_power_off.h" ++#include "tuxonice_storage.h" ++#include "tuxonice_checksum.h" ++#include "tuxonice_builtin.h" ++#include "tuxonice_atomic_copy.h" ++#include "tuxonice_alloc.h" ++#include "tuxonice_cluster.h" ++ ++/*! Pageset metadata. */ ++struct pagedir pagedir2 = {2}; ++EXPORT_SYMBOL_GPL(pagedir2); ++ ++static mm_segment_t oldfs; ++static DEFINE_MUTEX(tuxonice_in_use); ++static int block_dump_save; ++ ++/* Binary signature if an image is present */ ++char tuxonice_signature[9] = "\xed\xc3\x02\xe9\x98\x56\xe5\x0c"; ++EXPORT_SYMBOL_GPL(tuxonice_signature); ++ ++unsigned long boot_kernel_data_buffer; ++ ++static char *result_strings[] = { ++ "Hibernation was aborted", ++ "The user requested that we cancel the hibernation", ++ "No storage was available", ++ "Insufficient storage was available", ++ "Freezing filesystems and/or tasks failed", ++ "A pre-existing image was used", ++ "We would free memory, but image size limit doesn't allow this", ++ "Unable to free enough memory to hibernate", ++ "Unable to obtain the Power Management Semaphore", ++ "A device suspend/resume returned an error", ++ "A system device suspend/resume returned an error", ++ "The extra pages allowance is too small", ++ "We were unable to successfully prepare an image", ++ "TuxOnIce module initialisation failed", ++ "TuxOnIce module cleanup failed", ++ "I/O errors were encountered", ++ "Ran out of memory", ++ "An error was encountered while reading the image", ++ "Platform preparation failed", ++ "CPU Hotplugging failed", ++ "Architecture specific preparation failed", ++ "Pages needed resaving, but we were told to abort if this happens", ++ "We can't hibernate at the moment (invalid resume= or filewriter " ++ "target?)", ++ "A hibernation preparation notifier chain member cancelled the " ++ "hibernation", ++ "Pre-snapshot preparation failed", ++ "Pre-restore preparation failed", ++ "Failed to disable usermode helpers", ++ "Can't resume from alternate image", ++ "Header reservation too small", ++}; ++ ++/** ++ * toi_finish_anything - cleanup after doing anything ++ * @hibernate_or_resume: Whether finishing a cycle or attempt at ++ * resuming. ++ * ++ * This is our basic clean-up routine, matching start_anything below. We ++ * call cleanup routines, drop module references and restore process fs and ++ * cpus allowed masks, together with the global block_dump variable's value. ++ **/ ++void toi_finish_anything(int hibernate_or_resume) ++{ ++ toi_cleanup_modules(hibernate_or_resume); ++ toi_put_modules(); ++ if (hibernate_or_resume) { ++ block_dump = block_dump_save; ++ set_cpus_allowed_ptr(current, cpu_all_mask); ++ toi_alloc_print_debug_stats(); ++ atomic_inc(&snapshot_device_available); ++ mutex_unlock(&pm_mutex); ++ } ++ ++ set_fs(oldfs); ++ mutex_unlock(&tuxonice_in_use); ++} ++ ++/** ++ * toi_start_anything - basic initialisation for TuxOnIce ++ * @toi_or_resume: Whether starting a cycle or attempt at resuming. ++ * ++ * Our basic initialisation routine. Take references on modules, use the ++ * kernel segment, recheck resume= if no active allocator is set, initialise ++ * modules, save and reset block_dump and ensure we're running on CPU0. ++ **/ ++int toi_start_anything(int hibernate_or_resume) ++{ ++ mutex_lock(&tuxonice_in_use); ++ ++ oldfs = get_fs(); ++ set_fs(KERNEL_DS); ++ ++ if (hibernate_or_resume) { ++ mutex_lock(&pm_mutex); ++ ++ if (!atomic_add_unless(&snapshot_device_available, -1, 0)) ++ goto snapshotdevice_unavailable; ++ } ++ ++ if (hibernate_or_resume == SYSFS_HIBERNATE) ++ toi_print_modules(); ++ ++ if (toi_get_modules()) { ++ printk(KERN_INFO "TuxOnIce: Get modules failed!\n"); ++ goto prehibernate_err; ++ } ++ ++ if (hibernate_or_resume) { ++ block_dump_save = block_dump; ++ block_dump = 0; ++ set_cpus_allowed_ptr(current, ++ &cpumask_of_cpu(first_cpu(cpu_online_map))); ++ } ++ ++ if (toi_initialise_modules_early(hibernate_or_resume)) ++ goto early_init_err; ++ ++ if (!toiActiveAllocator) ++ toi_attempt_to_parse_resume_device(!hibernate_or_resume); ++ ++ if (!toi_initialise_modules_late(hibernate_or_resume)) ++ return 0; ++ ++ toi_cleanup_modules(hibernate_or_resume); ++early_init_err: ++ if (hibernate_or_resume) { ++ block_dump_save = block_dump; ++ set_cpus_allowed_ptr(current, cpu_all_mask); ++ } ++ toi_put_modules(); ++prehibernate_err: ++ if (hibernate_or_resume) ++ atomic_inc(&snapshot_device_available); ++snapshotdevice_unavailable: ++ if (hibernate_or_resume) ++ mutex_unlock(&pm_mutex); ++ set_fs(oldfs); ++ mutex_unlock(&tuxonice_in_use); ++ return -EBUSY; ++} ++ ++/* ++ * Nosave page tracking. ++ * ++ * Here rather than in prepare_image because we want to do it once only at the ++ * start of a cycle. ++ */ ++ ++/** ++ * mark_nosave_pages - set up our Nosave bitmap ++ * ++ * Build a bitmap of Nosave pages from the list. The bitmap allows faster ++ * use when preparing the image. ++ **/ ++static void mark_nosave_pages(void) ++{ ++ struct nosave_region *region; ++ ++ list_for_each_entry(region, &nosave_regions, list) { ++ unsigned long pfn; ++ ++ for (pfn = region->start_pfn; pfn < region->end_pfn; pfn++) ++ if (pfn_valid(pfn)) ++ SetPageNosave(pfn_to_page(pfn)); ++ } ++} ++ ++static int alloc_a_bitmap(struct memory_bitmap **bm) ++{ ++ int result = 0; ++ ++ *bm = kzalloc(sizeof(struct memory_bitmap), GFP_KERNEL); ++ if (!*bm) { ++ printk(KERN_ERR "Failed to kzalloc memory for a bitmap.\n"); ++ return -ENOMEM; ++ } ++ ++ result = memory_bm_create(*bm, GFP_KERNEL, 0); ++ ++ if (result) { ++ printk(KERN_ERR "Failed to create a bitmap.\n"); ++ kfree(*bm); ++ } ++ ++ return result; ++} ++ ++/** ++ * allocate_bitmaps - allocate bitmaps used to record page states ++ * ++ * Allocate the bitmaps we use to record the various TuxOnIce related ++ * page states. ++ **/ ++static int allocate_bitmaps(void) ++{ ++ if (alloc_a_bitmap(&pageset1_map) || ++ alloc_a_bitmap(&pageset1_copy_map) || ++ alloc_a_bitmap(&pageset2_map) || ++ alloc_a_bitmap(&io_map) || ++ alloc_a_bitmap(&nosave_map) || ++ alloc_a_bitmap(&free_map) || ++ alloc_a_bitmap(&page_resave_map)) ++ return 1; ++ ++ return 0; ++} ++ ++static void free_a_bitmap(struct memory_bitmap **bm) ++{ ++ if (!*bm) ++ return; ++ ++ memory_bm_free(*bm, 0); ++ kfree(*bm); ++ *bm = NULL; ++} ++ ++/** ++ * free_bitmaps - free the bitmaps used to record page states ++ * ++ * Free the bitmaps allocated above. It is not an error to call ++ * memory_bm_free on a bitmap that isn't currently allocated. ++ **/ ++static void free_bitmaps(void) ++{ ++ free_a_bitmap(&pageset1_map); ++ free_a_bitmap(&pageset1_copy_map); ++ free_a_bitmap(&pageset2_map); ++ free_a_bitmap(&io_map); ++ free_a_bitmap(&nosave_map); ++ free_a_bitmap(&free_map); ++ free_a_bitmap(&page_resave_map); ++} ++ ++/** ++ * io_MB_per_second - return the number of MB/s read or written ++ * @write: Whether to return the speed at which we wrote. ++ * ++ * Calculate the number of megabytes per second that were read or written. ++ **/ ++static int io_MB_per_second(int write) ++{ ++ return (toi_bkd.toi_io_time[write][1]) ? ++ MB((unsigned long) toi_bkd.toi_io_time[write][0]) * HZ / ++ toi_bkd.toi_io_time[write][1] : 0; ++} ++ ++#define SNPRINTF(a...) do { len += scnprintf(((char *) buffer) + len, \ ++ count - len - 1, ## a); } while (0) ++ ++/** ++ * get_debug_info - fill a buffer with debugging information ++ * @buffer: The buffer to be filled. ++ * @count: The size of the buffer, in bytes. ++ * ++ * Fill a (usually PAGE_SIZEd) buffer with the debugging info that we will ++ * either printk or return via sysfs. ++ **/ ++static int get_toi_debug_info(const char *buffer, int count) ++{ ++ int len = 0, i, first_result = 1; ++ ++ SNPRINTF("TuxOnIce debugging info:\n"); ++ SNPRINTF("- TuxOnIce core : " TOI_CORE_VERSION "\n"); ++ SNPRINTF("- Kernel Version : " UTS_RELEASE "\n"); ++ SNPRINTF("- Compiler vers. : %d.%d\n", __GNUC__, __GNUC_MINOR__); ++ SNPRINTF("- Attempt number : %d\n", nr_hibernates); ++ SNPRINTF("- Parameters : %ld %ld %ld %d %ld %ld\n", ++ toi_result, ++ toi_bkd.toi_action, ++ toi_bkd.toi_debug_state, ++ toi_bkd.toi_default_console_level, ++ image_size_limit, ++ toi_poweroff_method); ++ SNPRINTF("- Overall expected compression percentage: %d.\n", ++ 100 - toi_expected_compression_ratio()); ++ len += toi_print_module_debug_info(((char *) buffer) + len, ++ count - len - 1); ++ if (toi_bkd.toi_io_time[0][1]) { ++ if ((io_MB_per_second(0) < 5) || (io_MB_per_second(1) < 5)) { ++ SNPRINTF("- I/O speed: Write %ld KB/s", ++ (KB((unsigned long) toi_bkd.toi_io_time[0][0]) * HZ / ++ toi_bkd.toi_io_time[0][1])); ++ if (toi_bkd.toi_io_time[1][1]) ++ SNPRINTF(", Read %ld KB/s", ++ (KB((unsigned long) ++ toi_bkd.toi_io_time[1][0]) * HZ / ++ toi_bkd.toi_io_time[1][1])); ++ } else { ++ SNPRINTF("- I/O speed: Write %ld MB/s", ++ (MB((unsigned long) toi_bkd.toi_io_time[0][0]) * HZ / ++ toi_bkd.toi_io_time[0][1])); ++ if (toi_bkd.toi_io_time[1][1]) ++ SNPRINTF(", Read %ld MB/s", ++ (MB((unsigned long) ++ toi_bkd.toi_io_time[1][0]) * HZ / ++ toi_bkd.toi_io_time[1][1])); ++ } ++ SNPRINTF(".\n"); ++ } else ++ SNPRINTF("- No I/O speed stats available.\n"); ++ SNPRINTF("- Extra pages : %lu used/%lu.\n", ++ extra_pd1_pages_used, extra_pd1_pages_allowance); ++ ++ for (i = 0; i < TOI_NUM_RESULT_STATES; i++) ++ if (test_result_state(i)) { ++ SNPRINTF("%s: %s.\n", first_result ? ++ "- Result " : ++ " ", ++ result_strings[i]); ++ first_result = 0; ++ } ++ if (first_result) ++ SNPRINTF("- Result : %s.\n", nr_hibernates ? ++ "Succeeded" : ++ "No hibernation attempts so far"); ++ return len; ++} ++ ++/** ++ * do_cleanup - cleanup after attempting to hibernate or resume ++ * @get_debug_info: Whether to allocate and return debugging info. ++ * ++ * Cleanup after attempting to hibernate or resume, possibly getting ++ * debugging info as we do so. ++ **/ ++static void do_cleanup(int get_debug_info, int restarting) ++{ ++ int i = 0; ++ char *buffer = NULL; ++ ++ trap_non_toi_io = 0; ++ ++ if (get_debug_info) ++ toi_prepare_status(DONT_CLEAR_BAR, "Cleaning up..."); ++ ++ free_checksum_pages(); ++ ++ if (get_debug_info) ++ buffer = (char *) toi_get_zeroed_page(20, TOI_ATOMIC_GFP); ++ ++ if (buffer) ++ i = get_toi_debug_info(buffer, PAGE_SIZE); ++ ++ toi_free_extra_pagedir_memory(); ++ ++ pagedir1.size = 0; ++ pagedir2.size = 0; ++ set_highmem_size(pagedir1, 0); ++ set_highmem_size(pagedir2, 0); ++ ++ if (boot_kernel_data_buffer) { ++ if (!test_toi_state(TOI_BOOT_KERNEL)) ++ toi_free_page(37, boot_kernel_data_buffer); ++ boot_kernel_data_buffer = 0; ++ } ++ ++ clear_toi_state(TOI_BOOT_KERNEL); ++ thaw_processes(); ++ ++ if (test_action_state(TOI_KEEP_IMAGE) && ++ !test_result_state(TOI_ABORTED)) { ++ toi_message(TOI_ANY_SECTION, TOI_LOW, 1, ++ "TuxOnIce: Not invalidating the image due " ++ "to Keep Image being enabled."); ++ set_result_state(TOI_KEPT_IMAGE); ++ } else ++ if (toiActiveAllocator) ++ toiActiveAllocator->remove_image(); ++ ++ free_bitmaps(); ++ usermodehelper_enable(); ++ ++ if (test_toi_state(TOI_NOTIFIERS_PREPARE)) { ++ pm_notifier_call_chain(PM_POST_HIBERNATION); ++ clear_toi_state(TOI_NOTIFIERS_PREPARE); ++ } ++ ++ if (buffer && i) { ++ /* Printk can only handle 1023 bytes, including ++ * its level mangling. */ ++ for (i = 0; i < 3; i++) ++ printk(KERN_ERR "%s", buffer + (1023 * i)); ++ toi_free_page(20, (unsigned long) buffer); ++ } ++ ++ if (!test_action_state(TOI_LATE_CPU_HOTPLUG)) ++ enable_nonboot_cpus(); ++ ++ if (!restarting) ++ toi_cleanup_console(); ++ ++ free_attention_list(); ++ ++ if (!restarting) ++ toi_deactivate_storage(0); ++ ++ clear_toi_state(TOI_IGNORE_LOGLEVEL); ++ clear_toi_state(TOI_TRYING_TO_RESUME); ++ clear_toi_state(TOI_NOW_RESUMING); ++} ++ ++/** ++ * check_still_keeping_image - we kept an image; check whether to reuse it. ++ * ++ * We enter this routine when we have kept an image. If the user has said they ++ * want to still keep it, all we need to do is powerdown. If powering down ++ * means hibernating to ram and the power doesn't run out, we'll return 1. ++ * If we do power off properly or the battery runs out, we'll resume via the ++ * normal paths. ++ * ++ * If the user has said they want to remove the previously kept image, we ++ * remove it, and return 0. We'll then store a new image. ++ **/ ++static int check_still_keeping_image(void) ++{ ++ if (test_action_state(TOI_KEEP_IMAGE)) { ++ printk(KERN_INFO "Image already stored: powering down " ++ "immediately."); ++ do_toi_step(STEP_HIBERNATE_POWERDOWN); ++ return 1; /* Just in case we're using S3 */ ++ } ++ ++ printk(KERN_INFO "Invalidating previous image.\n"); ++ toiActiveAllocator->remove_image(); ++ ++ return 0; ++} ++ ++/** ++ * toi_init - prepare to hibernate to disk ++ * ++ * Initialise variables & data structures, in preparation for ++ * hibernating to disk. ++ **/ ++static int toi_init(int restarting) ++{ ++ int result, i, j; ++ ++ toi_result = 0; ++ ++ printk(KERN_INFO "Initiating a hibernation cycle.\n"); ++ ++ nr_hibernates++; ++ ++ for (i = 0; i < 2; i++) ++ for (j = 0; j < 2; j++) ++ toi_bkd.toi_io_time[i][j] = 0; ++ ++ if (!test_toi_state(TOI_CAN_HIBERNATE) || ++ allocate_bitmaps()) ++ return 1; ++ ++ mark_nosave_pages(); ++ ++ if (!restarting) ++ toi_prepare_console(); ++ ++ result = pm_notifier_call_chain(PM_HIBERNATION_PREPARE); ++ if (result) { ++ set_result_state(TOI_NOTIFIERS_PREPARE_FAILED); ++ return 1; ++ } ++ set_toi_state(TOI_NOTIFIERS_PREPARE); ++ ++ result = usermodehelper_disable(); ++ if (result) { ++ printk(KERN_ERR "TuxOnIce: Failed to disable usermode " ++ "helpers\n"); ++ set_result_state(TOI_USERMODE_HELPERS_ERR); ++ return 1; ++ } ++ ++ boot_kernel_data_buffer = toi_get_zeroed_page(37, TOI_ATOMIC_GFP); ++ if (!boot_kernel_data_buffer) { ++ printk(KERN_ERR "TuxOnIce: Failed to allocate " ++ "boot_kernel_data_buffer.\n"); ++ set_result_state(TOI_OUT_OF_MEMORY); ++ return 1; ++ } ++ ++ if (test_action_state(TOI_LATE_CPU_HOTPLUG) || ++ !disable_nonboot_cpus()) ++ return 1; ++ ++ set_abort_result(TOI_CPU_HOTPLUG_FAILED); ++ return 0; ++} ++ ++/** ++ * can_hibernate - perform basic 'Can we hibernate?' tests ++ * ++ * Perform basic tests that must pass if we're going to be able to hibernate: ++ * Can we get the pm_mutex? Is resume= valid (we need to know where to write ++ * the image header). ++ **/ ++static int can_hibernate(void) ++{ ++ if (!test_toi_state(TOI_CAN_HIBERNATE)) ++ toi_attempt_to_parse_resume_device(0); ++ ++ if (!test_toi_state(TOI_CAN_HIBERNATE)) { ++ printk(KERN_INFO "TuxOnIce: Hibernation is disabled.\n" ++ "This may be because you haven't put something along " ++ "the lines of\n\nresume=swap:/dev/hda1\n\n" ++ "in lilo.conf or equivalent. (Where /dev/hda1 is your " ++ "swap partition).\n"); ++ set_abort_result(TOI_CANT_SUSPEND); ++ return 0; ++ } ++ ++ if (strlen(alt_resume_param)) { ++ attempt_to_parse_alt_resume_param(); ++ ++ if (!strlen(alt_resume_param)) { ++ printk(KERN_INFO "Alternate resume parameter now " ++ "invalid. Aborting.\n"); ++ set_abort_result(TOI_CANT_USE_ALT_RESUME); ++ return 0; ++ } ++ } ++ ++ return 1; ++} ++ ++/** ++ * do_post_image_write - having written an image, figure out what to do next ++ * ++ * After writing an image, we might load an alternate image or power down. ++ * Powering down might involve hibernating to ram, in which case we also ++ * need to handle reloading pageset2. ++ **/ ++static int do_post_image_write(void) ++{ ++ /* If switching images fails, do normal powerdown */ ++ if (alt_resume_param[0]) ++ do_toi_step(STEP_RESUME_ALT_IMAGE); ++ ++ toi_power_down(); ++ ++ barrier(); ++ mb(); ++ return 0; ++} ++ ++/** ++ * __save_image - do the hard work of saving the image ++ * ++ * High level routine for getting the image saved. The key assumptions made ++ * are that processes have been frozen and sufficient memory is available. ++ * ++ * We also exit through here at resume time, coming back from toi_hibernate ++ * after the atomic restore. This is the reason for the toi_in_hibernate ++ * test. ++ **/ ++static int __save_image(void) ++{ ++ int temp_result, did_copy = 0; ++ ++ toi_prepare_status(DONT_CLEAR_BAR, "Starting to save the image.."); ++ ++ toi_message(TOI_ANY_SECTION, TOI_LOW, 1, ++ " - Final values: %d and %d.", ++ pagedir1.size, pagedir2.size); ++ ++ toi_cond_pause(1, "About to write pagedir2."); ++ ++ temp_result = write_pageset(&pagedir2); ++ ++ if (temp_result == -1 || test_result_state(TOI_ABORTED)) ++ return 1; ++ ++ toi_cond_pause(1, "About to copy pageset 1."); ++ ++ if (test_result_state(TOI_ABORTED)) ++ return 1; ++ ++ toi_deactivate_storage(1); ++ ++ toi_prepare_status(DONT_CLEAR_BAR, "Doing atomic copy/restore."); ++ ++ toi_in_hibernate = 1; ++ ++ if (toi_go_atomic(PMSG_FREEZE, 1)) ++ goto Failed; ++ ++ temp_result = toi_hibernate(); ++ if (!temp_result) ++ did_copy = 1; ++ ++ /* We return here at resume time too! */ ++ toi_end_atomic(ATOMIC_ALL_STEPS, toi_in_hibernate, temp_result); ++ ++Failed: ++ if (toi_activate_storage(1)) ++ panic("Failed to reactivate our storage."); ++ ++ /* Resume time? */ ++ if (!toi_in_hibernate) { ++ copyback_post(); ++ return 0; ++ } ++ ++ /* Nope. Hibernating. So, see if we can save the image... */ ++ ++ if (temp_result || test_result_state(TOI_ABORTED)) { ++ if (did_copy) ++ goto abort_reloading_pagedir_two; ++ else ++ return 1; ++ } ++ ++ toi_update_status(pagedir2.size, pagedir1.size + pagedir2.size, ++ NULL); ++ ++ if (test_result_state(TOI_ABORTED)) ++ goto abort_reloading_pagedir_two; ++ ++ toi_cond_pause(1, "About to write pageset1."); ++ ++ toi_message(TOI_ANY_SECTION, TOI_LOW, 1, "-- Writing pageset1"); ++ ++ temp_result = write_pageset(&pagedir1); ++ ++ /* We didn't overwrite any memory, so no reread needs to be done. */ ++ if (test_action_state(TOI_TEST_FILTER_SPEED)) ++ return 1; ++ ++ if (temp_result == 1 || test_result_state(TOI_ABORTED)) ++ goto abort_reloading_pagedir_two; ++ ++ toi_cond_pause(1, "About to write header."); ++ ++ if (test_result_state(TOI_ABORTED)) ++ goto abort_reloading_pagedir_two; ++ ++ temp_result = write_image_header(); ++ ++ if (test_action_state(TOI_TEST_BIO)) ++ return 1; ++ ++ if (!temp_result && !test_result_state(TOI_ABORTED)) ++ return 0; ++ ++abort_reloading_pagedir_two: ++ temp_result = read_pageset2(1); ++ ++ /* If that failed, we're sunk. Panic! */ ++ if (temp_result) ++ panic("Attempt to reload pagedir 2 while aborting " ++ "a hibernate failed."); ++ ++ return 1; ++} ++ ++static void map_ps2_pages(int enable) ++{ ++ unsigned long pfn = 0; ++ ++ pfn = memory_bm_next_pfn(pageset2_map); ++ ++ while (pfn != BM_END_OF_MAP) { ++ struct page *page = pfn_to_page(pfn); ++ kernel_map_pages(page, 1, enable); ++ pfn = memory_bm_next_pfn(pageset2_map); ++ } ++} ++ ++/** ++ * do_save_image - save the image and handle the result ++ * ++ * Save the prepared image. If we fail or we're in the path returning ++ * from the atomic restore, cleanup. ++ **/ ++static int do_save_image(void) ++{ ++ int result; ++ map_ps2_pages(0); ++ result = __save_image(); ++ map_ps2_pages(1); ++ return result; ++} ++ ++/** ++ * do_prepare_image - try to prepare an image ++ * ++ * Seek to initialise and prepare an image to be saved. On failure, ++ * cleanup. ++ **/ ++static int do_prepare_image(void) ++{ ++ int restarting = test_result_state(TOI_EXTRA_PAGES_ALLOW_TOO_SMALL); ++ ++ if (!restarting && toi_activate_storage(0)) ++ return 1; ++ ++ /* ++ * If kept image and still keeping image and hibernating to RAM, we will ++ * return 1 after hibernating and resuming (provided the power doesn't ++ * run out. In that case, we skip directly to cleaning up and exiting. ++ */ ++ ++ if (!can_hibernate() || ++ (test_result_state(TOI_KEPT_IMAGE) && ++ check_still_keeping_image())) ++ return 1; ++ ++ if (toi_init(restarting) && !toi_prepare_image() && ++ !test_result_state(TOI_ABORTED)) ++ return 0; ++ ++ trap_non_toi_io = 1; ++ ++ return 1; ++} ++ ++/** ++ * do_check_can_resume - find out whether an image has been stored ++ * ++ * Read whether an image exists. We use the same routine as the ++ * image_exists sysfs entry, and just look to see whether the ++ * first character in the resulting buffer is a '1'. ++ **/ ++int do_check_can_resume(void) ++{ ++ int result = -1; ++ ++ if (toi_activate_storage(0)) ++ return -1; ++ ++ if (!test_toi_state(TOI_RESUME_DEVICE_OK)) ++ toi_attempt_to_parse_resume_device(1); ++ ++ if (toiActiveAllocator) ++ result = toiActiveAllocator->image_exists(1); ++ ++ toi_deactivate_storage(0); ++ return result; ++} ++EXPORT_SYMBOL_GPL(do_check_can_resume); ++ ++/** ++ * do_load_atomic_copy - load the first part of an image, if it exists ++ * ++ * Check whether we have an image. If one exists, do sanity checking ++ * (possibly invalidating the image or even rebooting if the user ++ * requests that) before loading it into memory in preparation for the ++ * atomic restore. ++ * ++ * If and only if we have an image loaded and ready to restore, we return 1. ++ **/ ++static int do_load_atomic_copy(void) ++{ ++ int read_image_result = 0; ++ ++ if (sizeof(swp_entry_t) != sizeof(long)) { ++ printk(KERN_WARNING "TuxOnIce: The size of swp_entry_t != size" ++ " of long. Please report this!\n"); ++ return 1; ++ } ++ ++ if (!resume_file[0]) ++ printk(KERN_WARNING "TuxOnIce: " ++ "You need to use a resume= command line parameter to " ++ "tell TuxOnIce where to look for an image.\n"); ++ ++ toi_activate_storage(0); ++ ++ if (!(test_toi_state(TOI_RESUME_DEVICE_OK)) && ++ !toi_attempt_to_parse_resume_device(0)) { ++ /* ++ * Without a usable storage device we can do nothing - ++ * even if noresume is given ++ */ ++ ++ if (!toiNumAllocators) ++ printk(KERN_ALERT "TuxOnIce: " ++ "No storage allocators have been registered.\n"); ++ else ++ printk(KERN_ALERT "TuxOnIce: " ++ "Missing or invalid storage location " ++ "(resume= parameter). Please correct and " ++ "rerun lilo (or equivalent) before " ++ "hibernating.\n"); ++ toi_deactivate_storage(0); ++ return 1; ++ } ++ ++ if (allocate_bitmaps()) ++ return 1; ++ ++ read_image_result = read_pageset1(); /* non fatal error ignored */ ++ ++ if (test_toi_state(TOI_NORESUME_SPECIFIED)) ++ clear_toi_state(TOI_NORESUME_SPECIFIED); ++ ++ toi_deactivate_storage(0); ++ ++ if (read_image_result) ++ return 1; ++ ++ return 0; ++} ++ ++/** ++ * prepare_restore_load_alt_image - save & restore alt image variables ++ * ++ * Save and restore the pageset1 maps, when loading an alternate image. ++ **/ ++static void prepare_restore_load_alt_image(int prepare) ++{ ++ static struct memory_bitmap *pageset1_map_save, *pageset1_copy_map_save; ++ ++ if (prepare) { ++ pageset1_map_save = pageset1_map; ++ pageset1_map = NULL; ++ pageset1_copy_map_save = pageset1_copy_map; ++ pageset1_copy_map = NULL; ++ set_toi_state(TOI_LOADING_ALT_IMAGE); ++ toi_reset_alt_image_pageset2_pfn(); ++ } else { ++ memory_bm_free(pageset1_map, 0); ++ pageset1_map = pageset1_map_save; ++ memory_bm_free(pageset1_copy_map, 0); ++ pageset1_copy_map = pageset1_copy_map_save; ++ clear_toi_state(TOI_NOW_RESUMING); ++ clear_toi_state(TOI_LOADING_ALT_IMAGE); ++ } ++} ++ ++/** ++ * do_toi_step - perform a step in hibernating or resuming ++ * ++ * Perform a step in hibernating or resuming an image. This abstraction ++ * is in preparation for implementing cluster support, and perhaps replacing ++ * uswsusp too (haven't looked whether that's possible yet). ++ **/ ++int do_toi_step(int step) ++{ ++ switch (step) { ++ case STEP_HIBERNATE_PREPARE_IMAGE: ++ return do_prepare_image(); ++ case STEP_HIBERNATE_SAVE_IMAGE: ++ return do_save_image(); ++ case STEP_HIBERNATE_POWERDOWN: ++ return do_post_image_write(); ++ case STEP_RESUME_CAN_RESUME: ++ return do_check_can_resume(); ++ case STEP_RESUME_LOAD_PS1: ++ return do_load_atomic_copy(); ++ case STEP_RESUME_DO_RESTORE: ++ /* ++ * If we succeed, this doesn't return. ++ * Instead, we return from do_save_image() in the ++ * hibernated kernel. ++ */ ++ return toi_atomic_restore(); ++ case STEP_RESUME_ALT_IMAGE: ++ printk(KERN_INFO "Trying to resume alternate image.\n"); ++ toi_in_hibernate = 0; ++ save_restore_alt_param(SAVE, NOQUIET); ++ prepare_restore_load_alt_image(1); ++ if (!do_check_can_resume()) { ++ printk(KERN_INFO "Nothing to resume from.\n"); ++ goto out; ++ } ++ if (!do_load_atomic_copy()) ++ toi_atomic_restore(); ++ ++ printk(KERN_INFO "Failed to load image.\n"); ++out: ++ prepare_restore_load_alt_image(0); ++ save_restore_alt_param(RESTORE, NOQUIET); ++ break; ++ case STEP_CLEANUP: ++ do_cleanup(1, 0); ++ break; ++ case STEP_QUIET_CLEANUP: ++ do_cleanup(0, 0); ++ break; ++ } ++ ++ return 0; ++} ++EXPORT_SYMBOL_GPL(do_toi_step); ++ ++/* -- Functions for kickstarting a hibernate or resume --- */ ++ ++/** ++ * toi_try_resume - try to do the steps in resuming ++ * ++ * Check if we have an image and if so try to resume. Clear the status ++ * flags too. ++ **/ ++void toi_try_resume(void) ++{ ++ set_toi_state(TOI_TRYING_TO_RESUME); ++ resume_attempted = 1; ++ ++ current->flags |= PF_MEMALLOC; ++ ++ if (do_toi_step(STEP_RESUME_CAN_RESUME) && ++ !do_toi_step(STEP_RESUME_LOAD_PS1)) ++ do_toi_step(STEP_RESUME_DO_RESTORE); ++ ++ do_cleanup(0, 0); ++ ++ current->flags &= ~PF_MEMALLOC; ++ ++ clear_toi_state(TOI_IGNORE_LOGLEVEL); ++ clear_toi_state(TOI_TRYING_TO_RESUME); ++ clear_toi_state(TOI_NOW_RESUMING); ++} ++ ++/** ++ * toi_sys_power_disk_try_resume - wrapper calling toi_try_resume ++ * ++ * Wrapper for when __toi_try_resume is called from swsusp resume path, ++ * rather than from echo > /sys/power/tuxonice/do_resume. ++ **/ ++static void toi_sys_power_disk_try_resume(void) ++{ ++ resume_attempted = 1; ++ ++ /* ++ * There's a comment in kernel/power/disk.c that indicates ++ * we should be able to use mutex_lock_nested below. That ++ * doesn't seem to cut it, though, so let's just turn lockdep ++ * off for now. ++ */ ++ lockdep_off(); ++ ++ if (toi_start_anything(SYSFS_RESUMING)) ++ goto out; ++ ++ toi_try_resume(); ++ ++ /* ++ * For initramfs, we have to clear the boot time ++ * flag after trying to resume ++ */ ++ clear_toi_state(TOI_BOOT_TIME); ++ ++ toi_finish_anything(SYSFS_RESUMING); ++out: ++ lockdep_on(); ++} ++ ++/** ++ * toi_try_hibernate - try to start a hibernation cycle ++ * ++ * Start a hibernation cycle, coming in from either ++ * echo > /sys/power/tuxonice/do_suspend ++ * ++ * or ++ * ++ * echo disk > /sys/power/state ++ * ++ * In the later case, we come in without pm_sem taken; in the ++ * former, it has been taken. ++ **/ ++int toi_try_hibernate(void) ++{ ++ int result = 0, sys_power_disk = 0, retries = 0; ++ ++ if (!mutex_is_locked(&tuxonice_in_use)) { ++ /* Came in via /sys/power/disk */ ++ if (toi_start_anything(SYSFS_HIBERNATING)) ++ return -EBUSY; ++ sys_power_disk = 1; ++ } ++ ++ current->flags |= PF_MEMALLOC; ++ ++ if (test_toi_state(TOI_CLUSTER_MODE)) { ++ toi_initiate_cluster_hibernate(); ++ goto out; ++ } ++ ++prepare: ++ result = do_toi_step(STEP_HIBERNATE_PREPARE_IMAGE); ++ ++ if (result || test_action_state(TOI_FREEZER_TEST)) ++ goto out; ++ ++ result = do_toi_step(STEP_HIBERNATE_SAVE_IMAGE); ++ ++ if (test_result_state(TOI_EXTRA_PAGES_ALLOW_TOO_SMALL)) { ++ if (retries < 2) { ++ do_cleanup(0, 1); ++ retries++; ++ clear_result_state(TOI_ABORTED); ++ extra_pd1_pages_allowance = extra_pd1_pages_used + 500; ++ printk(KERN_INFO "Automatically adjusting the extra" ++ " pages allowance to %ld and restarting.\n", ++ extra_pd1_pages_allowance); ++ goto prepare; ++ } ++ ++ printk(KERN_INFO "Adjusted extra pages allowance twice and " ++ "still couldn't hibernate successfully. Giving up."); ++ } ++ ++ /* This code runs at resume time too! */ ++ if (!result && toi_in_hibernate) ++ result = do_toi_step(STEP_HIBERNATE_POWERDOWN); ++out: ++ do_cleanup(1, 0); ++ current->flags &= ~PF_MEMALLOC; ++ ++ if (sys_power_disk) ++ toi_finish_anything(SYSFS_HIBERNATING); ++ ++ return result; ++} ++ ++/* ++ * channel_no: If !0, -c is added to args (userui). ++ */ ++int toi_launch_userspace_program(char *command, int channel_no, ++ enum umh_wait wait, int debug) ++{ ++ int retval; ++ static char *envp[] = { ++ "HOME=/", ++ "TERM=linux", ++ "PATH=/sbin:/usr/sbin:/bin:/usr/bin", ++ NULL }; ++ static char *argv[] = { NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL ++ }; ++ char *channel = NULL; ++ int arg = 0, size; ++ char test_read[255]; ++ char *orig_posn = command; ++ ++ if (!strlen(orig_posn)) ++ return 1; ++ ++ if (channel_no) { ++ channel = toi_kzalloc(4, 6, GFP_KERNEL); ++ if (!channel) { ++ printk(KERN_INFO "Failed to allocate memory in " ++ "preparing to launch userspace program.\n"); ++ return 1; ++ } ++ } ++ ++ /* Up to 6 args supported */ ++ while (arg < 6) { ++ sscanf(orig_posn, "%s", test_read); ++ size = strlen(test_read); ++ if (!(size)) ++ break; ++ argv[arg] = toi_kzalloc(5, size + 1, TOI_ATOMIC_GFP); ++ strcpy(argv[arg], test_read); ++ orig_posn += size + 1; ++ *test_read = 0; ++ arg++; ++ } ++ ++ if (channel_no) { ++ sprintf(channel, "-c%d", channel_no); ++ argv[arg] = channel; ++ } else ++ arg--; ++ ++ if (debug) { ++ argv[++arg] = toi_kzalloc(5, 8, TOI_ATOMIC_GFP); ++ strcpy(argv[arg], "--debug"); ++ } ++ ++ retval = call_usermodehelper(argv[0], argv, envp, wait); ++ ++ /* ++ * If the program reports an error, retval = 256. Don't complain ++ * about that here. ++ */ ++ if (retval && retval != 256) ++ printk(KERN_ERR "Failed to launch userspace program '%s': " ++ "Error %d\n", command, retval); ++ ++ { ++ int i; ++ for (i = 0; i < arg; i++) ++ if (argv[i] && argv[i] != channel) ++ toi_kfree(5, argv[i], sizeof(*argv[i])); ++ } ++ ++ toi_kfree(4, channel, sizeof(*channel)); ++ ++ return retval; ++} ++ ++/* ++ * This array contains entries that are automatically registered at ++ * boot. Modules and the console code register their own entries separately. ++ */ ++static struct toi_sysfs_data sysfs_params[] = { ++ SYSFS_INT("freezer_sync", SYSFS_RW, &freezer_sync, 0, 1, 0, NULL), ++ SYSFS_LONG("extra_pages_allowance", SYSFS_RW, ++ &extra_pd1_pages_allowance, 0, LONG_MAX, 0), ++ SYSFS_CUSTOM("image_exists", SYSFS_RW, image_exists_read, ++ image_exists_write, SYSFS_NEEDS_SM_FOR_BOTH, NULL), ++ SYSFS_STRING("resume", SYSFS_RW, resume_file, 255, ++ SYSFS_NEEDS_SM_FOR_WRITE, ++ attempt_to_parse_resume_device2), ++ SYSFS_STRING("alt_resume_param", SYSFS_RW, alt_resume_param, 255, ++ SYSFS_NEEDS_SM_FOR_WRITE, ++ attempt_to_parse_alt_resume_param), ++ SYSFS_CUSTOM("debug_info", SYSFS_READONLY, get_toi_debug_info, NULL, 0, ++ NULL), ++ SYSFS_BIT("ignore_rootfs", SYSFS_RW, &toi_bkd.toi_action, ++ TOI_IGNORE_ROOTFS, 0), ++ SYSFS_LONG("image_size_limit", SYSFS_RW, &image_size_limit, -2, ++ INT_MAX, 0), ++ SYSFS_UL("last_result", SYSFS_RW, &toi_result, 0, 0, 0), ++ SYSFS_BIT("no_multithreaded_io", SYSFS_RW, &toi_bkd.toi_action, ++ TOI_NO_MULTITHREADED_IO, 0), ++ SYSFS_BIT("no_flusher_thread", SYSFS_RW, &toi_bkd.toi_action, ++ TOI_NO_FLUSHER_THREAD, 0), ++ SYSFS_BIT("full_pageset2", SYSFS_RW, &toi_bkd.toi_action, ++ TOI_PAGESET2_FULL, 0), ++ SYSFS_BIT("reboot", SYSFS_RW, &toi_bkd.toi_action, TOI_REBOOT, 0), ++ SYSFS_BIT("replace_swsusp", SYSFS_RW, &toi_bkd.toi_action, ++ TOI_REPLACE_SWSUSP, 0), ++ SYSFS_STRING("resume_commandline", SYSFS_RW, ++ toi_bkd.toi_nosave_commandline, COMMAND_LINE_SIZE, 0, ++ NULL), ++ SYSFS_STRING("version", SYSFS_READONLY, TOI_CORE_VERSION, 0, 0, NULL), ++ SYSFS_BIT("freezer_test", SYSFS_RW, &toi_bkd.toi_action, ++ TOI_FREEZER_TEST, 0), ++ SYSFS_BIT("test_bio", SYSFS_RW, &toi_bkd.toi_action, TOI_TEST_BIO, 0), ++ SYSFS_BIT("test_filter_speed", SYSFS_RW, &toi_bkd.toi_action, ++ TOI_TEST_FILTER_SPEED, 0), ++ SYSFS_BIT("no_pageset2", SYSFS_RW, &toi_bkd.toi_action, ++ TOI_NO_PAGESET2, 0), ++ SYSFS_BIT("no_pageset2_if_unneeded", SYSFS_RW, &toi_bkd.toi_action, ++ TOI_NO_PS2_IF_UNNEEDED, 0), ++ SYSFS_BIT("late_cpu_hotplug", SYSFS_RW, &toi_bkd.toi_action, ++ TOI_LATE_CPU_HOTPLUG, 0), ++ SYSFS_STRING("binary_signature", SYSFS_READONLY, ++ tuxonice_signature, 9, 0, NULL), ++ SYSFS_INT("max_workers", SYSFS_RW, &toi_max_workers, 0, NR_CPUS, 0, ++ NULL), ++#ifdef CONFIG_TOI_KEEP_IMAGE ++ SYSFS_BIT("keep_image", SYSFS_RW , &toi_bkd.toi_action, TOI_KEEP_IMAGE, ++ 0), ++#endif ++}; ++ ++static struct toi_core_fns my_fns = { ++ .get_nonconflicting_page = __toi_get_nonconflicting_page, ++ .post_context_save = __toi_post_context_save, ++ .try_hibernate = toi_try_hibernate, ++ .try_resume = toi_sys_power_disk_try_resume, ++}; ++ ++/** ++ * core_load - initialisation of TuxOnIce core ++ * ++ * Initialise the core, beginning with sysfs. Checksum and so on are part of ++ * the core, but have their own initialisation routines because they either ++ * aren't compiled in all the time or have their own subdirectories. ++ **/ ++static __init int core_load(void) ++{ ++ int i, ++ numfiles = sizeof(sysfs_params) / sizeof(struct toi_sysfs_data); ++ ++ printk(KERN_INFO "TuxOnIce " TOI_CORE_VERSION ++ " (http://tuxonice.net)\n"); ++ ++ if (toi_sysfs_init()) ++ return 1; ++ ++ for (i = 0; i < numfiles; i++) ++ toi_register_sysfs_file(tuxonice_kobj, &sysfs_params[i]); ++ ++ toi_core_fns = &my_fns; ++ ++ if (toi_alloc_init()) ++ return 1; ++ if (toi_checksum_init()) ++ return 1; ++ if (toi_usm_init()) ++ return 1; ++ if (toi_ui_init()) ++ return 1; ++ if (toi_poweroff_init()) ++ return 1; ++ if (toi_cluster_init()) ++ return 1; ++ ++ return 0; ++} ++ ++#ifdef MODULE ++/** ++ * core_unload: Prepare to unload the core code. ++ **/ ++static __exit void core_unload(void) ++{ ++ int i, ++ numfiles = sizeof(sysfs_params) / sizeof(struct toi_sysfs_data); ++ ++ toi_alloc_exit(); ++ toi_checksum_exit(); ++ toi_poweroff_exit(); ++ toi_ui_exit(); ++ toi_usm_exit(); ++ toi_cluster_exit(); ++ ++ for (i = 0; i < numfiles; i++) ++ toi_unregister_sysfs_file(tuxonice_kobj, &sysfs_params[i]); ++ ++ toi_core_fns = NULL; ++ ++ toi_sysfs_exit(); ++} ++MODULE_LICENSE("GPL"); ++module_init(core_load); ++module_exit(core_unload); ++#else ++late_initcall(core_load); ++#endif +diff --git a/kernel/power/tuxonice_io.c b/kernel/power/tuxonice_io.c +new file mode 100644 +index 0000000..02be4d9 +--- /dev/null ++++ b/kernel/power/tuxonice_io.c +@@ -0,0 +1,1822 @@ ++/* ++ * kernel/power/tuxonice_io.c ++ * ++ * Copyright (C) 1998-2001 Gabor Kuti ++ * Copyright (C) 1998,2001,2002 Pavel Machek ++ * Copyright (C) 2002-2003 Florent Chabaud ++ * Copyright (C) 2002-2010 Nigel Cunningham (nigel at tuxonice net) ++ * ++ * This file is released under the GPLv2. ++ * ++ * It contains high level IO routines for hibernating. ++ * ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include "tuxonice.h" ++#include "tuxonice_modules.h" ++#include "tuxonice_pageflags.h" ++#include "tuxonice_io.h" ++#include "tuxonice_ui.h" ++#include "tuxonice_storage.h" ++#include "tuxonice_prepare_image.h" ++#include "tuxonice_extent.h" ++#include "tuxonice_sysfs.h" ++#include "tuxonice_builtin.h" ++#include "tuxonice_checksum.h" ++#include "tuxonice_alloc.h" ++char alt_resume_param[256]; ++ ++/* Version read from image header at resume */ ++static int toi_image_header_version; ++ ++#define read_if_version(VERS, VAR, DESC) do { \ ++ if (likely(toi_image_header_version >= VERS)) \ ++ if (toiActiveAllocator->rw_header_chunk(READ, NULL, \ ++ (char *) &VAR, sizeof(VAR))) { \ ++ abort_hibernate(TOI_FAILED_IO, "Failed to read DESC."); \ ++ goto out_remove_image; \ ++ } \ ++} while(0) \ ++ ++/* Variables shared between threads and updated under the mutex */ ++static int io_write, io_finish_at, io_base, io_barmax, io_pageset, io_result; ++static int io_index, io_nextupdate, io_pc, io_pc_step; ++static DEFINE_MUTEX(io_mutex); ++static DEFINE_PER_CPU(struct page *, last_sought); ++static DEFINE_PER_CPU(struct page *, last_high_page); ++static DEFINE_PER_CPU(char *, checksum_locn); ++static DEFINE_PER_CPU(struct pbe *, last_low_page); ++static atomic_t io_count; ++atomic_t toi_io_workers; ++EXPORT_SYMBOL_GPL(toi_io_workers); ++ ++DECLARE_WAIT_QUEUE_HEAD(toi_io_queue_flusher); ++EXPORT_SYMBOL_GPL(toi_io_queue_flusher); ++ ++int toi_bio_queue_flusher_should_finish; ++EXPORT_SYMBOL_GPL(toi_bio_queue_flusher_should_finish); ++ ++/* Indicates that this thread should be used for checking throughput */ ++#define MONITOR ((void *) 1) ++ ++int toi_max_workers; ++ ++static char *image_version_error = "The image header version is newer than " \ ++ "this kernel supports."; ++ ++/** ++ * toi_attempt_to_parse_resume_device - determine if we can hibernate ++ * ++ * Can we hibernate, using the current resume= parameter? ++ **/ ++int toi_attempt_to_parse_resume_device(int quiet) ++{ ++ struct list_head *Allocator; ++ struct toi_module_ops *thisAllocator; ++ int result, returning = 0; ++ ++ if (toi_activate_storage(0)) ++ return 0; ++ ++ toiActiveAllocator = NULL; ++ clear_toi_state(TOI_RESUME_DEVICE_OK); ++ clear_toi_state(TOI_CAN_RESUME); ++ clear_result_state(TOI_ABORTED); ++ ++ if (!toiNumAllocators) { ++ if (!quiet) ++ printk(KERN_INFO "TuxOnIce: No storage allocators have " ++ "been registered. Hibernating will be " ++ "disabled.\n"); ++ goto cleanup; ++ } ++ ++ list_for_each(Allocator, &toiAllocators) { ++ thisAllocator = list_entry(Allocator, struct toi_module_ops, ++ type_list); ++ ++ /* ++ * Not sure why you'd want to disable an allocator, but ++ * we should honour the flag if we're providing it ++ */ ++ if (!thisAllocator->enabled) ++ continue; ++ ++ result = thisAllocator->parse_sig_location( ++ resume_file, (toiNumAllocators == 1), ++ quiet); ++ ++ switch (result) { ++ case -EINVAL: ++ /* For this allocator, but not a valid ++ * configuration. Error already printed. */ ++ goto cleanup; ++ ++ case 0: ++ /* For this allocator and valid. */ ++ toiActiveAllocator = thisAllocator; ++ ++ set_toi_state(TOI_RESUME_DEVICE_OK); ++ set_toi_state(TOI_CAN_RESUME); ++ returning = 1; ++ goto cleanup; ++ } ++ } ++ if (!quiet) ++ printk(KERN_INFO "TuxOnIce: No matching enabled allocator " ++ "found. Resuming disabled.\n"); ++cleanup: ++ toi_deactivate_storage(0); ++ return returning; ++} ++EXPORT_SYMBOL_GPL(toi_attempt_to_parse_resume_device); ++ ++void attempt_to_parse_resume_device2(void) ++{ ++ toi_prepare_usm(); ++ toi_attempt_to_parse_resume_device(0); ++ toi_cleanup_usm(); ++} ++EXPORT_SYMBOL_GPL(attempt_to_parse_resume_device2); ++ ++void save_restore_alt_param(int replace, int quiet) ++{ ++ static char resume_param_save[255]; ++ static unsigned long toi_state_save; ++ ++ if (replace) { ++ toi_state_save = toi_state; ++ strcpy(resume_param_save, resume_file); ++ strcpy(resume_file, alt_resume_param); ++ } else { ++ strcpy(resume_file, resume_param_save); ++ toi_state = toi_state_save; ++ } ++ toi_attempt_to_parse_resume_device(quiet); ++} ++ ++void attempt_to_parse_alt_resume_param(void) ++{ ++ int ok = 0; ++ ++ /* Temporarily set resume_param to the poweroff value */ ++ if (!strlen(alt_resume_param)) ++ return; ++ ++ printk(KERN_INFO "=== Trying Poweroff Resume2 ===\n"); ++ save_restore_alt_param(SAVE, NOQUIET); ++ if (test_toi_state(TOI_CAN_RESUME)) ++ ok = 1; ++ ++ printk(KERN_INFO "=== Done ===\n"); ++ save_restore_alt_param(RESTORE, QUIET); ++ ++ /* If not ok, clear the string */ ++ if (ok) ++ return; ++ ++ printk(KERN_INFO "Can't resume from that location; clearing " ++ "alt_resume_param.\n"); ++ alt_resume_param[0] = '\0'; ++} ++ ++/** ++ * noresume_reset_modules - reset data structures in case of non resuming ++ * ++ * When we read the start of an image, modules (and especially the ++ * active allocator) might need to reset data structures if we ++ * decide to remove the image rather than resuming from it. ++ **/ ++static void noresume_reset_modules(void) ++{ ++ struct toi_module_ops *this_filter; ++ ++ list_for_each_entry(this_filter, &toi_filters, type_list) ++ if (this_filter->noresume_reset) ++ this_filter->noresume_reset(); ++ ++ if (toiActiveAllocator && toiActiveAllocator->noresume_reset) ++ toiActiveAllocator->noresume_reset(); ++} ++ ++/** ++ * fill_toi_header - fill the hibernate header structure ++ * @struct toi_header: Header data structure to be filled. ++ **/ ++static int fill_toi_header(struct toi_header *sh) ++{ ++ int i, error; ++ ++ error = init_header((struct swsusp_info *) sh); ++ if (error) ++ return error; ++ ++ sh->pagedir = pagedir1; ++ sh->pageset_2_size = pagedir2.size; ++ sh->param0 = toi_result; ++ sh->param1 = toi_bkd.toi_action; ++ sh->param2 = toi_bkd.toi_debug_state; ++ sh->param3 = toi_bkd.toi_default_console_level; ++ sh->root_fs = current->fs->root.mnt->mnt_sb->s_dev; ++ for (i = 0; i < 4; i++) ++ sh->io_time[i/2][i%2] = toi_bkd.toi_io_time[i/2][i%2]; ++ sh->bkd = boot_kernel_data_buffer; ++ return 0; ++} ++ ++/** ++ * rw_init_modules - initialize modules ++ * @rw: Whether we are reading of writing an image. ++ * @which: Section of the image being processed. ++ * ++ * Iterate over modules, preparing the ones that will be used to read or write ++ * data. ++ **/ ++static int rw_init_modules(int rw, int which) ++{ ++ struct toi_module_ops *this_module; ++ /* Initialise page transformers */ ++ list_for_each_entry(this_module, &toi_filters, type_list) { ++ if (!this_module->enabled) ++ continue; ++ if (this_module->rw_init && this_module->rw_init(rw, which)) { ++ abort_hibernate(TOI_FAILED_MODULE_INIT, ++ "Failed to initialize the %s filter.", ++ this_module->name); ++ return 1; ++ } ++ } ++ ++ /* Initialise allocator */ ++ if (toiActiveAllocator->rw_init(rw, which)) { ++ abort_hibernate(TOI_FAILED_MODULE_INIT, ++ "Failed to initialise the allocator."); ++ return 1; ++ } ++ ++ /* Initialise other modules */ ++ list_for_each_entry(this_module, &toi_modules, module_list) { ++ if (!this_module->enabled || ++ this_module->type == FILTER_MODULE || ++ this_module->type == WRITER_MODULE) ++ continue; ++ if (this_module->rw_init && this_module->rw_init(rw, which)) { ++ set_abort_result(TOI_FAILED_MODULE_INIT); ++ printk(KERN_INFO "Setting aborted flag due to module " ++ "init failure.\n"); ++ return 1; ++ } ++ } ++ ++ return 0; ++} ++ ++/** ++ * rw_cleanup_modules - cleanup modules ++ * @rw: Whether we are reading of writing an image. ++ * ++ * Cleanup components after reading or writing a set of pages. ++ * Only the allocator may fail. ++ **/ ++static int rw_cleanup_modules(int rw) ++{ ++ struct toi_module_ops *this_module; ++ int result = 0; ++ ++ /* Cleanup other modules */ ++ list_for_each_entry(this_module, &toi_modules, module_list) { ++ if (!this_module->enabled || ++ this_module->type == FILTER_MODULE || ++ this_module->type == WRITER_MODULE) ++ continue; ++ if (this_module->rw_cleanup) ++ result |= this_module->rw_cleanup(rw); ++ } ++ ++ /* Flush data and cleanup */ ++ list_for_each_entry(this_module, &toi_filters, type_list) { ++ if (!this_module->enabled) ++ continue; ++ if (this_module->rw_cleanup) ++ result |= this_module->rw_cleanup(rw); ++ } ++ ++ result |= toiActiveAllocator->rw_cleanup(rw); ++ ++ return result; ++} ++ ++static struct page *copy_page_from_orig_page(struct page *orig_page) ++{ ++ int is_high = PageHighMem(orig_page), index, min, max; ++ struct page *high_page = NULL, ++ **my_last_high_page = &__get_cpu_var(last_high_page), ++ **my_last_sought = &__get_cpu_var(last_sought); ++ struct pbe *this, **my_last_low_page = &__get_cpu_var(last_low_page); ++ void *compare; ++ ++ if (is_high) { ++ if (*my_last_sought && *my_last_high_page && ++ *my_last_sought < orig_page) ++ high_page = *my_last_high_page; ++ else ++ high_page = (struct page *) restore_highmem_pblist; ++ this = (struct pbe *) kmap(high_page); ++ compare = orig_page; ++ } else { ++ if (*my_last_sought && *my_last_low_page && ++ *my_last_sought < orig_page) ++ this = *my_last_low_page; ++ else ++ this = restore_pblist; ++ compare = page_address(orig_page); ++ } ++ ++ *my_last_sought = orig_page; ++ ++ /* Locate page containing pbe */ ++ while (this[PBES_PER_PAGE - 1].next && ++ this[PBES_PER_PAGE - 1].orig_address < compare) { ++ if (is_high) { ++ struct page *next_high_page = (struct page *) ++ this[PBES_PER_PAGE - 1].next; ++ kunmap(high_page); ++ this = kmap(next_high_page); ++ high_page = next_high_page; ++ } else ++ this = this[PBES_PER_PAGE - 1].next; ++ } ++ ++ /* Do a binary search within the page */ ++ min = 0; ++ max = PBES_PER_PAGE; ++ index = PBES_PER_PAGE / 2; ++ while (max - min) { ++ if (!this[index].orig_address || ++ this[index].orig_address > compare) ++ max = index; ++ else if (this[index].orig_address == compare) { ++ if (is_high) { ++ struct page *page = this[index].address; ++ *my_last_high_page = high_page; ++ kunmap(high_page); ++ return page; ++ } ++ *my_last_low_page = this; ++ return virt_to_page(this[index].address); ++ } else ++ min = index; ++ index = ((max + min) / 2); ++ }; ++ ++ if (is_high) ++ kunmap(high_page); ++ ++ abort_hibernate(TOI_FAILED_IO, "Failed to get destination page for" ++ " orig page %p. This[min].orig_address=%p.\n", orig_page, ++ this[index].orig_address); ++ return NULL; ++} ++ ++/** ++ * write_next_page - write the next page in a pageset ++ * @data_pfn: The pfn where the next data to write is located. ++ * @my_io_index: The index of the page in the pageset. ++ * @write_pfn: The pfn number to write in the image (where the data belongs). ++ * @first_filter: Where to send the page (optimisation). ++ * ++ * Get the pfn of the next page to write, map the page if necessary and do the ++ * write. ++ **/ ++static int write_next_page(unsigned long *data_pfn, int *my_io_index, ++ unsigned long *write_pfn, struct toi_module_ops *first_filter) ++{ ++ struct page *page; ++ char **my_checksum_locn = &__get_cpu_var(checksum_locn); ++ int result = 0, was_present; ++ ++ *data_pfn = memory_bm_next_pfn(io_map); ++ ++ /* Another thread could have beaten us to it. */ ++ if (*data_pfn == BM_END_OF_MAP) { ++ if (atomic_read(&io_count)) { ++ printk(KERN_INFO "Ran out of pfns but io_count is " ++ "still %d.\n", atomic_read(&io_count)); ++ BUG(); ++ } ++ mutex_unlock(&io_mutex); ++ return -ENODATA; ++ } ++ ++ *my_io_index = io_finish_at - atomic_sub_return(1, &io_count); ++ ++ memory_bm_clear_bit(io_map, *data_pfn); ++ page = pfn_to_page(*data_pfn); ++ ++ was_present = kernel_page_present(page); ++ if (!was_present) ++ kernel_map_pages(page, 1, 1); ++ ++ if (io_pageset == 1) ++ *write_pfn = memory_bm_next_pfn(pageset1_map); ++ else { ++ *write_pfn = *data_pfn; ++ *my_checksum_locn = tuxonice_get_next_checksum(); ++ } ++ ++ mutex_unlock(&io_mutex); ++ ++ if (io_pageset == 2 && tuxonice_calc_checksum(page, *my_checksum_locn)) ++ return 1; ++ ++ result = first_filter->write_page(*write_pfn, page, PAGE_SIZE); ++ ++ if (!was_present) ++ kernel_map_pages(page, 1, 0); ++ ++ return result; ++} ++ ++/** ++ * read_next_page - read the next page in a pageset ++ * @my_io_index: The index of the page in the pageset. ++ * @write_pfn: The pfn in which the data belongs. ++ * ++ * Read a page of the image into our buffer. It can happen (here and in the ++ * write routine) that threads don't get run until after other CPUs have done ++ * all the work. This was the cause of the long standing issue with ++ * occasionally getting -ENODATA errors at the end of reading the image. We ++ * therefore need to check there's actually a page to read before trying to ++ * retrieve one. ++ **/ ++ ++static int read_next_page(int *my_io_index, unsigned long *write_pfn, ++ struct page *buffer, struct toi_module_ops *first_filter) ++{ ++ unsigned int buf_size = PAGE_SIZE; ++ unsigned long left = atomic_read(&io_count); ++ ++ if (left) ++ *my_io_index = io_finish_at - atomic_sub_return(1, &io_count); ++ ++ mutex_unlock(&io_mutex); ++ ++ /* ++ * Are we aborting? If so, don't submit any more I/O as ++ * resetting the resume_attempted flag (from ui.c) will ++ * clear the bdev flags, making this thread oops. ++ */ ++ if (unlikely(test_toi_state(TOI_STOP_RESUME))) { ++ atomic_dec(&toi_io_workers); ++ if (!atomic_read(&toi_io_workers)) { ++ /* ++ * So we can be sure we'll have memory for ++ * marking that we haven't resumed. ++ */ ++ rw_cleanup_modules(READ); ++ set_toi_state(TOI_IO_STOPPED); ++ } ++ while (1) ++ schedule(); ++ } ++ ++ if (!left) ++ return -ENODATA; ++ ++ /* ++ * See toi_bio_read_page in tuxonice_bio.c: ++ * read the next page in the image. ++ */ ++ return first_filter->read_page(write_pfn, buffer, &buf_size); ++} ++ ++static void use_read_page(unsigned long write_pfn, struct page *buffer) ++{ ++ struct page *final_page = pfn_to_page(write_pfn), ++ *copy_page = final_page; ++ char *virt, *buffer_virt; ++ ++ if (io_pageset == 1 && !PagePageset1Copy(final_page)) { ++ copy_page = copy_page_from_orig_page(final_page); ++ BUG_ON(!copy_page); ++ } ++ ++ if (memory_bm_test_bit(io_map, write_pfn)) { ++ int was_present; ++ ++ virt = kmap(copy_page); ++ buffer_virt = kmap(buffer); ++ was_present = kernel_page_present(copy_page); ++ if (!was_present) ++ kernel_map_pages(copy_page, 1, 1); ++ memcpy(virt, buffer_virt, PAGE_SIZE); ++ if (!was_present) ++ kernel_map_pages(copy_page, 1, 0); ++ kunmap(copy_page); ++ kunmap(buffer); ++ memory_bm_clear_bit(io_map, write_pfn); ++ } else { ++ mutex_lock(&io_mutex); ++ atomic_inc(&io_count); ++ mutex_unlock(&io_mutex); ++ } ++} ++ ++static unsigned long status_update(int writing, unsigned long done, ++ unsigned long ticks) ++{ ++ int cs_index = writing ? 0 : 1; ++ unsigned long ticks_so_far = toi_bkd.toi_io_time[cs_index][1] + ticks; ++ unsigned long msec = jiffies_to_msecs(abs(ticks_so_far)); ++ unsigned long pgs_per_s, estimate = 0, pages_left; ++ ++ if (msec) { ++ pages_left = io_barmax - done; ++ pgs_per_s = 1000 * done / msec; ++ if (pgs_per_s) ++ estimate = pages_left / pgs_per_s; ++ } ++ ++ if (estimate && ticks > HZ / 2) ++ return toi_update_status(done, io_barmax, ++ " %d/%d MB (%lu sec left)", ++ MB(done+1), MB(io_barmax), estimate); ++ ++ return toi_update_status(done, io_barmax, " %d/%d MB", ++ MB(done+1), MB(io_barmax)); ++} ++ ++/** ++ * worker_rw_loop - main loop to read/write pages ++ * ++ * The main I/O loop for reading or writing pages. The io_map bitmap is used to ++ * track the pages to read/write. ++ * If we are reading, the pages are loaded to their final (mapped) pfn. ++ **/ ++static int worker_rw_loop(void *data) ++{ ++ unsigned long data_pfn, write_pfn, next_jiffies = jiffies + HZ / 4, ++ jif_index = 1, start_time = jiffies; ++ int result = 0, my_io_index = 0, last_worker; ++ struct toi_module_ops *first_filter = toi_get_next_filter(NULL); ++ struct page *buffer = toi_alloc_page(28, TOI_ATOMIC_GFP); ++ ++ current->flags |= PF_NOFREEZE; ++ ++ mutex_lock(&io_mutex); ++ ++ do { ++ if (data && jiffies > next_jiffies) { ++ next_jiffies += HZ / 4; ++ if (toiActiveAllocator->update_throughput_throttle) ++ toiActiveAllocator->update_throughput_throttle( ++ jif_index); ++ jif_index++; ++ } ++ ++ /* ++ * What page to use? If reading, don't know yet which page's ++ * data will be read, so always use the buffer. If writing, ++ * use the copy (Pageset1) or original page (Pageset2), but ++ * always write the pfn of the original page. ++ */ ++ if (io_write) ++ result = write_next_page(&data_pfn, &my_io_index, ++ &write_pfn, first_filter); ++ else /* Reading */ ++ result = read_next_page(&my_io_index, &write_pfn, ++ buffer, first_filter); ++ ++ if (result) { ++ mutex_lock(&io_mutex); ++ /* Nothing to do? */ ++ if (result == -ENODATA) ++ break; ++ ++ io_result = result; ++ ++ if (io_write) { ++ printk(KERN_INFO "Write chunk returned %d.\n", ++ result); ++ abort_hibernate(TOI_FAILED_IO, ++ "Failed to write a chunk of the " ++ "image."); ++ break; ++ } ++ ++ if (io_pageset == 1) { ++ printk(KERN_ERR "\nBreaking out of I/O loop " ++ "because of result code %d.\n", result); ++ break; ++ } ++ panic("Read chunk returned (%d)", result); ++ } ++ ++ /* ++ * Discard reads of resaved pages while reading ps2 ++ * and unwanted pages while rereading ps2 when aborting. ++ */ ++ if (!io_write && !PageResave(pfn_to_page(write_pfn))) ++ use_read_page(write_pfn, buffer); ++ ++ if (my_io_index + io_base == io_nextupdate) ++ io_nextupdate = status_update(io_write, my_io_index + ++ io_base, jiffies - start_time); ++ ++ if (my_io_index == io_pc) { ++ printk(KERN_CONT "...%d%%", 20 * io_pc_step); ++ io_pc_step++; ++ io_pc = io_finish_at * io_pc_step / 5; ++ } ++ ++ toi_cond_pause(0, NULL); ++ ++ /* ++ * Subtle: If there's less I/O still to be done than threads ++ * running, quit. This stops us doing I/O beyond the end of ++ * the image when reading. ++ * ++ * Possible race condition. Two threads could do the test at ++ * the same time; one should exit and one should continue. ++ * Therefore we take the mutex before comparing and exiting. ++ */ ++ ++ mutex_lock(&io_mutex); ++ ++ } while (atomic_read(&io_count) >= atomic_read(&toi_io_workers) && ++ !(io_write && test_result_state(TOI_ABORTED))); ++ ++ last_worker = atomic_dec_and_test(&toi_io_workers); ++ mutex_unlock(&io_mutex); ++ ++ if (last_worker) { ++ toi_bio_queue_flusher_should_finish = 1; ++ wake_up(&toi_io_queue_flusher); ++ result = toiActiveAllocator->finish_all_io(); ++ printk(KERN_CONT "\n"); ++ } ++ ++ toi__free_page(28, buffer); ++ ++ return result; ++} ++ ++static int start_other_threads(void) ++{ ++ int cpu, num_started = 0; ++ struct task_struct *p; ++ int to_start = (toi_max_workers ? toi_max_workers : num_online_cpus()) - 1; ++ ++ atomic_set(&toi_io_workers, to_start); ++ ++ for_each_online_cpu(cpu) { ++ if (num_started == to_start) ++ break; ++ ++ if (cpu == smp_processor_id()) ++ continue; ++ ++ p = kthread_create(worker_rw_loop, num_started ? NULL : MONITOR, ++ "ktoi_io/%d", cpu); ++ if (IS_ERR(p)) { ++ printk(KERN_ERR "ktoi_io for %i failed\n", cpu); ++ atomic_dec(&toi_io_workers); ++ continue; ++ } ++ kthread_bind(p, cpu); ++ p->flags |= PF_MEMALLOC; ++ wake_up_process(p); ++ num_started++; ++ } ++ ++ return num_started; ++} ++ ++/** ++ * do_rw_loop - main highlevel function for reading or writing pages ++ * ++ * Create the io_map bitmap and call worker_rw_loop to perform I/O operations. ++ **/ ++static int do_rw_loop(int write, int finish_at, struct memory_bitmap *pageflags, ++ int base, int barmax, int pageset) ++{ ++ int index = 0, cpu, num_other_threads = 0, result = 0; ++ unsigned long pfn; ++ ++ if (!finish_at) ++ return 0; ++ ++ io_write = write; ++ io_finish_at = finish_at; ++ io_base = base; ++ io_barmax = barmax; ++ io_pageset = pageset; ++ io_index = 0; ++ io_pc = io_finish_at / 5; ++ io_pc_step = 1; ++ io_result = 0; ++ io_nextupdate = base + 1; ++ toi_bio_queue_flusher_should_finish = 0; ++ ++ for_each_online_cpu(cpu) { ++ per_cpu(last_sought, cpu) = NULL; ++ per_cpu(last_low_page, cpu) = NULL; ++ per_cpu(last_high_page, cpu) = NULL; ++ } ++ ++ /* Ensure all bits clear */ ++ memory_bm_clear(io_map); ++ ++ /* Set the bits for the pages to write */ ++ memory_bm_position_reset(pageflags); ++ ++ pfn = memory_bm_next_pfn(pageflags); ++ ++ while (pfn != BM_END_OF_MAP && index < finish_at) { ++ memory_bm_set_bit(io_map, pfn); ++ pfn = memory_bm_next_pfn(pageflags); ++ index++; ++ } ++ ++ BUG_ON(index < finish_at); ++ ++ atomic_set(&io_count, finish_at); ++ ++ memory_bm_position_reset(pageset1_map); ++ ++ clear_toi_state(TOI_IO_STOPPED); ++ memory_bm_position_reset(io_map); ++ ++ if (!test_action_state(TOI_NO_MULTITHREADED_IO) && ++ (write || !toi_force_no_multithreaded)) ++ num_other_threads = start_other_threads(); ++ ++ if (!num_other_threads || !toiActiveAllocator->io_flusher || ++ test_action_state(TOI_NO_FLUSHER_THREAD)) { ++ atomic_inc(&toi_io_workers); ++ worker_rw_loop(num_other_threads ? NULL : MONITOR); ++ } else ++ result = toiActiveAllocator->io_flusher(write); ++ ++ while (atomic_read(&toi_io_workers)) ++ schedule(); ++ ++ if (unlikely(test_toi_state(TOI_STOP_RESUME))) { ++ if (!atomic_read(&toi_io_workers)) { ++ rw_cleanup_modules(READ); ++ set_toi_state(TOI_IO_STOPPED); ++ } ++ while (1) ++ schedule(); ++ } ++ set_toi_state(TOI_IO_STOPPED); ++ ++ if (!io_result && !result && !test_result_state(TOI_ABORTED)) { ++ unsigned long next; ++ ++ toi_update_status(io_base + io_finish_at, io_barmax, ++ " %d/%d MB ", ++ MB(io_base + io_finish_at), MB(io_barmax)); ++ ++ memory_bm_position_reset(io_map); ++ next = memory_bm_next_pfn(io_map); ++ if (next != BM_END_OF_MAP) { ++ printk(KERN_INFO "Finished I/O loop but still work to " ++ "do?\nFinish at = %d. io_count = %d.\n", ++ finish_at, atomic_read(&io_count)); ++ printk(KERN_INFO "I/O bitmap still records work to do." ++ "%ld.\n", next); ++ do { ++ cpu_relax(); ++ } while (0); ++ } ++ } ++ ++ return io_result ? io_result : result; ++} ++ ++/** ++ * write_pageset - write a pageset to disk. ++ * @pagedir: Which pagedir to write. ++ * ++ * Returns: ++ * Zero on success or -1 on failure. ++ **/ ++int write_pageset(struct pagedir *pagedir) ++{ ++ int finish_at, base = 0; ++ int barmax = pagedir1.size + pagedir2.size; ++ long error = 0; ++ struct memory_bitmap *pageflags; ++ unsigned long start_time, end_time; ++ ++ /* ++ * Even if there is nothing to read or write, the allocator ++ * may need the init/cleanup for it's housekeeping. (eg: ++ * Pageset1 may start where pageset2 ends when writing). ++ */ ++ finish_at = pagedir->size; ++ ++ if (pagedir->id == 1) { ++ toi_prepare_status(DONT_CLEAR_BAR, ++ "Writing kernel & process data..."); ++ base = pagedir2.size; ++ if (test_action_state(TOI_TEST_FILTER_SPEED) || ++ test_action_state(TOI_TEST_BIO)) ++ pageflags = pageset1_map; ++ else ++ pageflags = pageset1_copy_map; ++ } else { ++ toi_prepare_status(DONT_CLEAR_BAR, "Writing caches..."); ++ pageflags = pageset2_map; ++ } ++ ++ start_time = jiffies; ++ ++ if (rw_init_modules(1, pagedir->id)) { ++ abort_hibernate(TOI_FAILED_MODULE_INIT, ++ "Failed to initialise modules for writing."); ++ error = 1; ++ } ++ ++ if (!error) ++ error = do_rw_loop(1, finish_at, pageflags, base, barmax, ++ pagedir->id); ++ ++ if (rw_cleanup_modules(WRITE) && !error) { ++ abort_hibernate(TOI_FAILED_MODULE_CLEANUP, ++ "Failed to cleanup after writing."); ++ error = 1; ++ } ++ ++ end_time = jiffies; ++ ++ if ((end_time - start_time) && (!test_result_state(TOI_ABORTED))) { ++ toi_bkd.toi_io_time[0][0] += finish_at, ++ toi_bkd.toi_io_time[0][1] += (end_time - start_time); ++ } ++ ++ return error; ++} ++ ++/** ++ * read_pageset - highlevel function to read a pageset from disk ++ * @pagedir: pageset to read ++ * @overwrittenpagesonly: Whether to read the whole pageset or ++ * only part of it. ++ * ++ * Returns: ++ * Zero on success or -1 on failure. ++ **/ ++static int read_pageset(struct pagedir *pagedir, int overwrittenpagesonly) ++{ ++ int result = 0, base = 0; ++ int finish_at = pagedir->size; ++ int barmax = pagedir1.size + pagedir2.size; ++ struct memory_bitmap *pageflags; ++ unsigned long start_time, end_time; ++ ++ if (pagedir->id == 1) { ++ toi_prepare_status(DONT_CLEAR_BAR, ++ "Reading kernel & process data..."); ++ pageflags = pageset1_map; ++ } else { ++ toi_prepare_status(DONT_CLEAR_BAR, "Reading caches..."); ++ if (overwrittenpagesonly) { ++ barmax = min(pagedir1.size, pagedir2.size); ++ finish_at = min(pagedir1.size, pagedir2.size); ++ } else ++ base = pagedir1.size; ++ pageflags = pageset2_map; ++ } ++ ++ start_time = jiffies; ++ ++ if (rw_init_modules(0, pagedir->id)) { ++ toiActiveAllocator->remove_image(); ++ result = 1; ++ } else ++ result = do_rw_loop(0, finish_at, pageflags, base, barmax, ++ pagedir->id); ++ ++ if (rw_cleanup_modules(READ) && !result) { ++ abort_hibernate(TOI_FAILED_MODULE_CLEANUP, ++ "Failed to cleanup after reading."); ++ result = 1; ++ } ++ ++ /* Statistics */ ++ end_time = jiffies; ++ ++ if ((end_time - start_time) && (!test_result_state(TOI_ABORTED))) { ++ toi_bkd.toi_io_time[1][0] += finish_at, ++ toi_bkd.toi_io_time[1][1] += (end_time - start_time); ++ } ++ ++ return result; ++} ++ ++/** ++ * write_module_configs - store the modules configuration ++ * ++ * The configuration for each module is stored in the image header. ++ * Returns: Int ++ * Zero on success, Error value otherwise. ++ **/ ++static int write_module_configs(void) ++{ ++ struct toi_module_ops *this_module; ++ char *buffer = (char *) toi_get_zeroed_page(22, TOI_ATOMIC_GFP); ++ int len, index = 1; ++ struct toi_module_header toi_module_header; ++ ++ if (!buffer) { ++ printk(KERN_INFO "Failed to allocate a buffer for saving " ++ "module configuration info.\n"); ++ return -ENOMEM; ++ } ++ ++ /* ++ * We have to know which data goes with which module, so we at ++ * least write a length of zero for a module. Note that we are ++ * also assuming every module's config data takes <= PAGE_SIZE. ++ */ ++ ++ /* For each module (in registration order) */ ++ list_for_each_entry(this_module, &toi_modules, module_list) { ++ if (!this_module->enabled || !this_module->storage_needed || ++ (this_module->type == WRITER_MODULE && ++ toiActiveAllocator != this_module)) ++ continue; ++ ++ /* Get the data from the module */ ++ len = 0; ++ if (this_module->save_config_info) ++ len = this_module->save_config_info(buffer); ++ ++ /* Save the details of the module */ ++ toi_module_header.enabled = this_module->enabled; ++ toi_module_header.type = this_module->type; ++ toi_module_header.index = index++; ++ strncpy(toi_module_header.name, this_module->name, ++ sizeof(toi_module_header.name)); ++ toiActiveAllocator->rw_header_chunk(WRITE, ++ this_module, ++ (char *) &toi_module_header, ++ sizeof(toi_module_header)); ++ ++ /* Save the size of the data and any data returned */ ++ toiActiveAllocator->rw_header_chunk(WRITE, ++ this_module, ++ (char *) &len, sizeof(int)); ++ if (len) ++ toiActiveAllocator->rw_header_chunk( ++ WRITE, this_module, buffer, len); ++ } ++ ++ /* Write a blank header to terminate the list */ ++ toi_module_header.name[0] = '\0'; ++ toiActiveAllocator->rw_header_chunk(WRITE, NULL, ++ (char *) &toi_module_header, sizeof(toi_module_header)); ++ ++ toi_free_page(22, (unsigned long) buffer); ++ return 0; ++} ++ ++/** ++ * read_one_module_config - read and configure one module ++ * ++ * Read the configuration for one module, and configure the module ++ * to match if it is loaded. ++ * ++ * Returns: Int ++ * Zero on success, Error value otherwise. ++ **/ ++static int read_one_module_config(struct toi_module_header *header) ++{ ++ struct toi_module_ops *this_module; ++ int result, len; ++ char *buffer; ++ ++ /* Find the module */ ++ this_module = toi_find_module_given_name(header->name); ++ ++ if (!this_module) { ++ if (header->enabled) { ++ toi_early_boot_message(1, TOI_CONTINUE_REQ, ++ "It looks like we need module %s for reading " ++ "the image but it hasn't been registered.\n", ++ header->name); ++ if (!(test_toi_state(TOI_CONTINUE_REQ))) ++ return -EINVAL; ++ } else ++ printk(KERN_INFO "Module %s configuration data found, " ++ "but the module hasn't registered. Looks like " ++ "it was disabled, so we're ignoring its data.", ++ header->name); ++ } ++ ++ /* Get the length of the data (if any) */ ++ result = toiActiveAllocator->rw_header_chunk(READ, NULL, (char *) &len, ++ sizeof(int)); ++ if (result) { ++ printk(KERN_ERR "Failed to read the length of the module %s's" ++ " configuration data.\n", ++ header->name); ++ return -EINVAL; ++ } ++ ++ /* Read any data and pass to the module (if we found one) */ ++ if (!len) ++ return 0; ++ ++ buffer = (char *) toi_get_zeroed_page(23, TOI_ATOMIC_GFP); ++ ++ if (!buffer) { ++ printk(KERN_ERR "Failed to allocate a buffer for reloading " ++ "module configuration info.\n"); ++ return -ENOMEM; ++ } ++ ++ toiActiveAllocator->rw_header_chunk(READ, NULL, buffer, len); ++ ++ if (!this_module) ++ goto out; ++ ++ if (!this_module->save_config_info) ++ printk(KERN_ERR "Huh? Module %s appears to have a " ++ "save_config_info, but not a load_config_info " ++ "function!\n", this_module->name); ++ else ++ this_module->load_config_info(buffer, len); ++ ++ /* ++ * Now move this module to the tail of its lists. This will put it in ++ * order. Any new modules will end up at the top of the lists. They ++ * should have been set to disabled when loaded (people will ++ * normally not edit an initrd to load a new module and then hibernate ++ * without using it!). ++ */ ++ ++ toi_move_module_tail(this_module); ++ ++ this_module->enabled = header->enabled; ++ ++out: ++ toi_free_page(23, (unsigned long) buffer); ++ return 0; ++} ++ ++/** ++ * read_module_configs - reload module configurations from the image header. ++ * ++ * Returns: Int ++ * Zero on success or an error code. ++ **/ ++static int read_module_configs(void) ++{ ++ int result = 0; ++ struct toi_module_header toi_module_header; ++ struct toi_module_ops *this_module; ++ ++ /* All modules are initially disabled. That way, if we have a module ++ * loaded now that wasn't loaded when we hibernated, it won't be used ++ * in trying to read the data. ++ */ ++ list_for_each_entry(this_module, &toi_modules, module_list) ++ this_module->enabled = 0; ++ ++ /* Get the first module header */ ++ result = toiActiveAllocator->rw_header_chunk(READ, NULL, ++ (char *) &toi_module_header, ++ sizeof(toi_module_header)); ++ if (result) { ++ printk(KERN_ERR "Failed to read the next module header.\n"); ++ return -EINVAL; ++ } ++ ++ /* For each module (in registration order) */ ++ while (toi_module_header.name[0]) { ++ result = read_one_module_config(&toi_module_header); ++ ++ if (result) ++ return -EINVAL; ++ ++ /* Get the next module header */ ++ result = toiActiveAllocator->rw_header_chunk(READ, NULL, ++ (char *) &toi_module_header, ++ sizeof(toi_module_header)); ++ ++ if (result) { ++ printk(KERN_ERR "Failed to read the next module " ++ "header.\n"); ++ return -EINVAL; ++ } ++ } ++ ++ return 0; ++} ++ ++static inline int save_fs_info(struct fs_info *fs, struct block_device *bdev) ++{ ++ return (!fs || IS_ERR(fs) || !fs->last_mount_size) ? 0 : 1; ++} ++ ++int fs_info_space_needed(void) ++{ ++ const struct super_block *sb; ++ int result = sizeof(int); ++ ++ list_for_each_entry(sb, &super_blocks, s_list) { ++ struct fs_info *fs; ++ ++ if (!sb->s_bdev) ++ continue; ++ ++ fs = fs_info_from_block_dev(sb->s_bdev); ++ if (save_fs_info(fs, sb->s_bdev)) ++ result += 16 + sizeof(int) + fs->last_mount_size; ++ free_fs_info(fs); ++ } ++ return result; ++} ++ ++static int fs_info_num_to_save(void) ++{ ++ const struct super_block *sb; ++ int to_save = 0; ++ ++ list_for_each_entry(sb, &super_blocks, s_list) { ++ struct fs_info *fs; ++ ++ if (!sb->s_bdev) ++ continue; ++ ++ fs = fs_info_from_block_dev(sb->s_bdev); ++ if (save_fs_info(fs, sb->s_bdev)) ++ to_save++; ++ free_fs_info(fs); ++ } ++ ++ return to_save; ++} ++ ++static int fs_info_save(void) ++{ ++ const struct super_block *sb; ++ int to_save = fs_info_num_to_save(); ++ ++ if (toiActiveAllocator->rw_header_chunk(WRITE, NULL, (char *) &to_save, ++ sizeof(int))) { ++ abort_hibernate(TOI_FAILED_IO, "Failed to write num fs_info" ++ " to save."); ++ return -EIO; ++ } ++ ++ list_for_each_entry(sb, &super_blocks, s_list) { ++ struct fs_info *fs; ++ ++ if (!sb->s_bdev) ++ continue; ++ ++ fs = fs_info_from_block_dev(sb->s_bdev); ++ if (save_fs_info(fs, sb->s_bdev)) { ++ if (toiActiveAllocator->rw_header_chunk(WRITE, NULL, ++ &fs->uuid[0], 16)) { ++ abort_hibernate(TOI_FAILED_IO, "Failed to " ++ "write uuid."); ++ return -EIO; ++ } ++ if (toiActiveAllocator->rw_header_chunk(WRITE, NULL, ++ (char *) &fs->last_mount_size, sizeof(int))) { ++ abort_hibernate(TOI_FAILED_IO, "Failed to " ++ "write last mount length."); ++ return -EIO; ++ } ++ if (toiActiveAllocator->rw_header_chunk(WRITE, NULL, ++ fs->last_mount, fs->last_mount_size)) { ++ abort_hibernate(TOI_FAILED_IO, "Failed to " ++ "write uuid."); ++ return -EIO; ++ } ++ } ++ free_fs_info(fs); ++ } ++ return 0; ++} ++ ++static int fs_info_load_and_check_one(void) ++{ ++ char uuid[16], *last_mount; ++ int result = 0, ln; ++ dev_t dev_t; ++ struct block_device *dev; ++ struct fs_info *fs_info; ++ ++ if (toiActiveAllocator->rw_header_chunk(READ, NULL, uuid, 16)) { ++ abort_hibernate(TOI_FAILED_IO, "Failed to read uuid."); ++ return -EIO; ++ } ++ ++ if (toiActiveAllocator->rw_header_chunk(READ, NULL, (char *) &ln, ++ sizeof(int))) { ++ abort_hibernate(TOI_FAILED_IO, ++ "Failed to read last mount size."); ++ return -EIO; ++ } ++ ++ last_mount = kzalloc(ln, GFP_KERNEL); ++ ++ if (!last_mount) ++ return -ENOMEM; ++ ++ if (toiActiveAllocator->rw_header_chunk(READ, NULL, last_mount, ln)) { ++ abort_hibernate(TOI_FAILED_IO, ++ "Failed to read last mount timestamp."); ++ result = -EIO; ++ goto out_lmt; ++ } ++ ++ dev_t = blk_lookup_uuid(uuid); ++ if (!dev_t) ++ goto out_lmt; ++ ++ dev = toi_open_by_devnum(dev_t); ++ ++ fs_info = fs_info_from_block_dev(dev); ++ if (fs_info && !IS_ERR(fs_info)) { ++ if (ln != fs_info->last_mount_size) { ++ printk(KERN_EMERG "Found matching uuid but last mount " ++ "time lengths differ?! " ++ "(%d vs %d).\n", ln, ++ fs_info->last_mount_size); ++ result = -EINVAL; ++ } else { ++ char buf[BDEVNAME_SIZE]; ++ result = !!memcmp(fs_info->last_mount, last_mount, ln); ++ if (result) ++ printk(KERN_EMERG "Last mount time for %s has " ++ "changed!\n", bdevname(dev, buf)); ++ } ++ } ++ toi_close_bdev(dev); ++ free_fs_info(fs_info); ++out_lmt: ++ kfree(last_mount); ++ return result; ++} ++ ++static int fs_info_load_and_check(void) ++{ ++ int to_do, result; ++ ++ if (toiActiveAllocator->rw_header_chunk(READ, NULL, (char *) &to_do, ++ sizeof(int))) { ++ abort_hibernate(TOI_FAILED_IO, "Failed to read num fs_info " ++ "to load."); ++ return -EIO; ++ } ++ ++ while(to_do--) ++ result |= fs_info_load_and_check_one(); ++ ++ return result; ++} ++ ++/** ++ * write_image_header - write the image header after write the image proper ++ * ++ * Returns: Int ++ * Zero on success, error value otherwise. ++ **/ ++int write_image_header(void) ++{ ++ int ret; ++ int total = pagedir1.size + pagedir2.size+2; ++ char *header_buffer = NULL; ++ ++ /* Now prepare to write the header */ ++ ret = toiActiveAllocator->write_header_init(); ++ if (ret) { ++ abort_hibernate(TOI_FAILED_MODULE_INIT, ++ "Active allocator's write_header_init" ++ " function failed."); ++ goto write_image_header_abort; ++ } ++ ++ /* Get a buffer */ ++ header_buffer = (char *) toi_get_zeroed_page(24, TOI_ATOMIC_GFP); ++ if (!header_buffer) { ++ abort_hibernate(TOI_OUT_OF_MEMORY, ++ "Out of memory when trying to get page for header!"); ++ goto write_image_header_abort; ++ } ++ ++ /* Write hibernate header */ ++ if (fill_toi_header((struct toi_header *) header_buffer)) { ++ abort_hibernate(TOI_OUT_OF_MEMORY, ++ "Failure to fill header information!"); ++ goto write_image_header_abort; ++ } ++ ++ if (toiActiveAllocator->rw_header_chunk(WRITE, NULL, ++ header_buffer, sizeof(struct toi_header))) { ++ abort_hibernate(TOI_OUT_OF_MEMORY, ++ "Failure to write header info."); ++ goto write_image_header_abort; ++ } ++ ++ if (toiActiveAllocator->rw_header_chunk(WRITE, NULL, ++ (char *) &toi_max_workers, sizeof(toi_max_workers))) { ++ abort_hibernate(TOI_OUT_OF_MEMORY, ++ "Failure to number of workers to use."); ++ goto write_image_header_abort; ++ } ++ ++ /* Write filesystem info */ ++ if (fs_info_save()) ++ goto write_image_header_abort; ++ ++ /* Write module configurations */ ++ ret = write_module_configs(); ++ if (ret) { ++ abort_hibernate(TOI_FAILED_IO, ++ "Failed to write module configs."); ++ goto write_image_header_abort; ++ } ++ ++ if (memory_bm_write(pageset1_map, ++ toiActiveAllocator->rw_header_chunk)) { ++ abort_hibernate(TOI_FAILED_IO, ++ "Failed to write bitmaps."); ++ goto write_image_header_abort; ++ } ++ ++ /* Flush data and let allocator cleanup */ ++ if (toiActiveAllocator->write_header_cleanup()) { ++ abort_hibernate(TOI_FAILED_IO, ++ "Failed to cleanup writing header."); ++ goto write_image_header_abort_no_cleanup; ++ } ++ ++ if (test_result_state(TOI_ABORTED)) ++ goto write_image_header_abort_no_cleanup; ++ ++ toi_update_status(total, total, NULL); ++ ++out: ++ if (header_buffer) ++ toi_free_page(24, (unsigned long) header_buffer); ++ return ret; ++ ++write_image_header_abort: ++ toiActiveAllocator->write_header_cleanup(); ++write_image_header_abort_no_cleanup: ++ ret = -1; ++ goto out; ++} ++ ++/** ++ * sanity_check - check the header ++ * @sh: the header which was saved at hibernate time. ++ * ++ * Perform a few checks, seeking to ensure that the kernel being ++ * booted matches the one hibernated. They need to match so we can ++ * be _sure_ things will work. It is not absolutely impossible for ++ * resuming from a different kernel to work, just not assured. ++ **/ ++static char *sanity_check(struct toi_header *sh) ++{ ++ char *reason = check_image_kernel((struct swsusp_info *) sh); ++ ++ if (reason) ++ return reason; ++ ++ if (!test_action_state(TOI_IGNORE_ROOTFS)) { ++ const struct super_block *sb; ++ list_for_each_entry(sb, &super_blocks, s_list) { ++ if ((!(sb->s_flags & MS_RDONLY)) && ++ (sb->s_type->fs_flags & FS_REQUIRES_DEV)) ++ return "Device backed fs has been mounted " ++ "rw prior to resume or initrd/ramfs " ++ "is mounted rw."; ++ } ++ } ++ ++ return NULL; ++} ++ ++static DECLARE_WAIT_QUEUE_HEAD(freeze_wait); ++ ++#define FREEZE_IN_PROGRESS (~0) ++ ++static int freeze_result; ++ ++static void do_freeze(struct work_struct *dummy) ++{ ++ freeze_result = freeze_processes(); ++ wake_up(&freeze_wait); ++ trap_non_toi_io = 1; ++} ++ ++static DECLARE_WORK(freeze_work, do_freeze); ++ ++/** ++ * __read_pageset1 - test for the existence of an image and attempt to load it ++ * ++ * Returns: Int ++ * Zero if image found and pageset1 successfully loaded. ++ * Error if no image found or loaded. ++ **/ ++static int __read_pageset1(void) ++{ ++ int i, result = 0; ++ char *header_buffer = (char *) toi_get_zeroed_page(25, TOI_ATOMIC_GFP), ++ *sanity_error = NULL; ++ struct toi_header *toi_header; ++ ++ if (!header_buffer) { ++ printk(KERN_INFO "Unable to allocate a page for reading the " ++ "signature.\n"); ++ return -ENOMEM; ++ } ++ ++ /* Check for an image */ ++ result = toiActiveAllocator->image_exists(1); ++ if (result == 3) { ++ result = -ENODATA; ++ toi_early_boot_message(1, 0, "The signature from an older " ++ "version of TuxOnIce has been detected."); ++ goto out_remove_image; ++ } ++ ++ if (result != 1) { ++ result = -ENODATA; ++ noresume_reset_modules(); ++ printk(KERN_INFO "TuxOnIce: No image found.\n"); ++ goto out; ++ } ++ ++ /* ++ * Prepare the active allocator for reading the image header. The ++ * activate allocator might read its own configuration. ++ * ++ * NB: This call may never return because there might be a signature ++ * for a different image such that we warn the user and they choose ++ * to reboot. (If the device ids look erroneous (2.4 vs 2.6) or the ++ * location of the image might be unavailable if it was stored on a ++ * network connection). ++ */ ++ ++ result = toiActiveAllocator->read_header_init(); ++ if (result) { ++ printk(KERN_INFO "TuxOnIce: Failed to initialise, reading the " ++ "image header.\n"); ++ goto out_remove_image; ++ } ++ ++ /* Check for noresume command line option */ ++ if (test_toi_state(TOI_NORESUME_SPECIFIED)) { ++ printk(KERN_INFO "TuxOnIce: Noresume on command line. Removed " ++ "image.\n"); ++ goto out_remove_image; ++ } ++ ++ /* Check whether we've resumed before */ ++ if (test_toi_state(TOI_RESUMED_BEFORE)) { ++ toi_early_boot_message(1, 0, NULL); ++ if (!(test_toi_state(TOI_CONTINUE_REQ))) { ++ printk(KERN_INFO "TuxOnIce: Tried to resume before: " ++ "Invalidated image.\n"); ++ goto out_remove_image; ++ } ++ } ++ ++ clear_toi_state(TOI_CONTINUE_REQ); ++ ++ toi_image_header_version = toiActiveAllocator->get_header_version(); ++ ++ if (unlikely(toi_image_header_version > TOI_HEADER_VERSION)) { ++ toi_early_boot_message(1, 0, image_version_error); ++ if (!(test_toi_state(TOI_CONTINUE_REQ))) { ++ printk(KERN_INFO "TuxOnIce: Header version too new: " ++ "Invalidated image.\n"); ++ goto out_remove_image; ++ } ++ } ++ ++ /* Read hibernate header */ ++ result = toiActiveAllocator->rw_header_chunk(READ, NULL, ++ header_buffer, sizeof(struct toi_header)); ++ if (result < 0) { ++ printk(KERN_ERR "TuxOnIce: Failed to read the image " ++ "signature.\n"); ++ goto out_remove_image; ++ } ++ ++ toi_header = (struct toi_header *) header_buffer; ++ ++ /* ++ * NB: This call may also result in a reboot rather than returning. ++ */ ++ ++ sanity_error = sanity_check(toi_header); ++ if (sanity_error) { ++ toi_early_boot_message(1, TOI_CONTINUE_REQ, ++ sanity_error); ++ printk(KERN_INFO "TuxOnIce: Sanity check failed.\n"); ++ goto out_remove_image; ++ } ++ ++ /* ++ * We have an image and it looks like it will load okay. ++ * ++ * Get metadata from header. Don't override commandline parameters. ++ * ++ * We don't need to save the image size limit because it's not used ++ * during resume and will be restored with the image anyway. ++ */ ++ ++ memcpy((char *) &pagedir1, ++ (char *) &toi_header->pagedir, sizeof(pagedir1)); ++ toi_result = toi_header->param0; ++ if (!toi_bkd.toi_debug_state) { ++ toi_bkd.toi_action = toi_header->param1; ++ toi_bkd.toi_debug_state = toi_header->param2; ++ toi_bkd.toi_default_console_level = toi_header->param3; ++ } ++ clear_toi_state(TOI_IGNORE_LOGLEVEL); ++ pagedir2.size = toi_header->pageset_2_size; ++ for (i = 0; i < 4; i++) ++ toi_bkd.toi_io_time[i/2][i%2] = ++ toi_header->io_time[i/2][i%2]; ++ ++ set_toi_state(TOI_BOOT_KERNEL); ++ boot_kernel_data_buffer = toi_header->bkd; ++ ++ read_if_version(1, toi_max_workers, "TuxOnIce max workers"); ++ ++ /* Read filesystem info */ ++ if (fs_info_load_and_check()) { ++ printk(KERN_EMERG "TuxOnIce: File system mount time checks " ++ "failed. Refusing to corrupt your filesystems!\n"); ++ goto out_remove_image; ++ } ++ ++ /* Read module configurations */ ++ result = read_module_configs(); ++ if (result) { ++ pagedir1.size = 0; ++ pagedir2.size = 0; ++ printk(KERN_INFO "TuxOnIce: Failed to read TuxOnIce module " ++ "configurations.\n"); ++ clear_action_state(TOI_KEEP_IMAGE); ++ goto out_remove_image; ++ } ++ ++ toi_prepare_console(); ++ ++ set_toi_state(TOI_NOW_RESUMING); ++ ++ if (!test_action_state(TOI_LATE_CPU_HOTPLUG)) { ++ toi_prepare_status(DONT_CLEAR_BAR, "Disable nonboot cpus."); ++ if (disable_nonboot_cpus()) { ++ set_abort_result(TOI_CPU_HOTPLUG_FAILED); ++ goto out_reset_console; ++ } ++ } ++ ++ if (usermodehelper_disable()) ++ goto out_enable_nonboot_cpus; ++ ++ current->flags |= PF_NOFREEZE; ++ freeze_result = FREEZE_IN_PROGRESS; ++ ++ schedule_work_on(first_cpu(cpu_online_map), &freeze_work); ++ ++ toi_cond_pause(1, "About to read original pageset1 locations."); ++ ++ /* ++ * See _toi_rw_header_chunk in tuxonice_bio.c: ++ * Initialize pageset1_map by reading the map from the image. ++ */ ++ if (memory_bm_read(pageset1_map, toiActiveAllocator->rw_header_chunk)) ++ goto out_thaw; ++ ++ /* ++ * See toi_rw_cleanup in tuxonice_bio.c: ++ * Clean up after reading the header. ++ */ ++ result = toiActiveAllocator->read_header_cleanup(); ++ if (result) { ++ printk(KERN_ERR "TuxOnIce: Failed to cleanup after reading the " ++ "image header.\n"); ++ goto out_thaw; ++ } ++ ++ toi_cond_pause(1, "About to read pagedir."); ++ ++ /* ++ * Get the addresses of pages into which we will load the kernel to ++ * be copied back and check if they conflict with the ones we are using. ++ */ ++ if (toi_get_pageset1_load_addresses()) { ++ printk(KERN_INFO "TuxOnIce: Failed to get load addresses for " ++ "pageset1.\n"); ++ goto out_thaw; ++ } ++ ++ /* Read the original kernel back */ ++ toi_cond_pause(1, "About to read pageset 1."); ++ ++ /* Given the pagemap, read back the data from disk */ ++ if (read_pageset(&pagedir1, 0)) { ++ toi_prepare_status(DONT_CLEAR_BAR, "Failed to read pageset 1."); ++ result = -EIO; ++ goto out_thaw; ++ } ++ ++ toi_cond_pause(1, "About to restore original kernel."); ++ result = 0; ++ ++ if (!test_action_state(TOI_KEEP_IMAGE) && ++ toiActiveAllocator->mark_resume_attempted) ++ toiActiveAllocator->mark_resume_attempted(1); ++ ++ wait_event(freeze_wait, freeze_result != FREEZE_IN_PROGRESS); ++out: ++ current->flags &= ~PF_NOFREEZE; ++ toi_free_page(25, (unsigned long) header_buffer); ++ return result; ++ ++out_thaw: ++ wait_event(freeze_wait, freeze_result != FREEZE_IN_PROGRESS); ++ trap_non_toi_io = 0; ++ thaw_processes(); ++ usermodehelper_enable(); ++out_enable_nonboot_cpus: ++ enable_nonboot_cpus(); ++out_reset_console: ++ toi_cleanup_console(); ++out_remove_image: ++ result = -EINVAL; ++ if (!test_action_state(TOI_KEEP_IMAGE)) ++ toiActiveAllocator->remove_image(); ++ toiActiveAllocator->read_header_cleanup(); ++ noresume_reset_modules(); ++ goto out; ++} ++ ++/** ++ * read_pageset1 - highlevel function to read the saved pages ++ * ++ * Attempt to read the header and pageset1 of a hibernate image. ++ * Handle the outcome, complaining where appropriate. ++ **/ ++int read_pageset1(void) ++{ ++ int error; ++ ++ error = __read_pageset1(); ++ ++ if (error && error != -ENODATA && error != -EINVAL && ++ !test_result_state(TOI_ABORTED)) ++ abort_hibernate(TOI_IMAGE_ERROR, ++ "TuxOnIce: Error %d resuming\n", error); ++ ++ return error; ++} ++ ++/** ++ * get_have_image_data - check the image header ++ **/ ++static char *get_have_image_data(void) ++{ ++ char *output_buffer = (char *) toi_get_zeroed_page(26, TOI_ATOMIC_GFP); ++ struct toi_header *toi_header; ++ ++ if (!output_buffer) { ++ printk(KERN_INFO "Output buffer null.\n"); ++ return NULL; ++ } ++ ++ /* Check for an image */ ++ if (!toiActiveAllocator->image_exists(1) || ++ toiActiveAllocator->read_header_init() || ++ toiActiveAllocator->rw_header_chunk(READ, NULL, ++ output_buffer, sizeof(struct toi_header))) { ++ sprintf(output_buffer, "0\n"); ++ /* ++ * From an initrd/ramfs, catting have_image and ++ * getting a result of 0 is sufficient. ++ */ ++ clear_toi_state(TOI_BOOT_TIME); ++ goto out; ++ } ++ ++ toi_header = (struct toi_header *) output_buffer; ++ ++ sprintf(output_buffer, "1\n%s\n%s\n", ++ toi_header->uts.machine, ++ toi_header->uts.version); ++ ++ /* Check whether we've resumed before */ ++ if (test_toi_state(TOI_RESUMED_BEFORE)) ++ strcat(output_buffer, "Resumed before.\n"); ++ ++out: ++ noresume_reset_modules(); ++ return output_buffer; ++} ++ ++/** ++ * read_pageset2 - read second part of the image ++ * @overwrittenpagesonly: Read only pages which would have been ++ * verwritten by pageset1? ++ * ++ * Read in part or all of pageset2 of an image, depending upon ++ * whether we are hibernating and have only overwritten a portion ++ * with pageset1 pages, or are resuming and need to read them ++ * all. ++ * ++ * Returns: Int ++ * Zero if no error, otherwise the error value. ++ **/ ++int read_pageset2(int overwrittenpagesonly) ++{ ++ int result = 0; ++ ++ if (!pagedir2.size) ++ return 0; ++ ++ result = read_pageset(&pagedir2, overwrittenpagesonly); ++ ++ toi_cond_pause(1, "Pagedir 2 read."); ++ ++ return result; ++} ++ ++/** ++ * image_exists_read - has an image been found? ++ * @page: Output buffer ++ * ++ * Store 0 or 1 in page, depending on whether an image is found. ++ * Incoming buffer is PAGE_SIZE and result is guaranteed ++ * to be far less than that, so we don't worry about ++ * overflow. ++ **/ ++int image_exists_read(const char *page, int count) ++{ ++ int len = 0; ++ char *result; ++ ++ if (toi_activate_storage(0)) ++ return count; ++ ++ if (!test_toi_state(TOI_RESUME_DEVICE_OK)) ++ toi_attempt_to_parse_resume_device(0); ++ ++ if (!toiActiveAllocator) { ++ len = sprintf((char *) page, "-1\n"); ++ } else { ++ result = get_have_image_data(); ++ if (result) { ++ len = sprintf((char *) page, "%s", result); ++ toi_free_page(26, (unsigned long) result); ++ } ++ } ++ ++ toi_deactivate_storage(0); ++ ++ return len; ++} ++ ++/** ++ * image_exists_write - invalidate an image if one exists ++ **/ ++int image_exists_write(const char *buffer, int count) ++{ ++ if (toi_activate_storage(0)) ++ return count; ++ ++ if (toiActiveAllocator && toiActiveAllocator->image_exists(1)) ++ toiActiveAllocator->remove_image(); ++ ++ toi_deactivate_storage(0); ++ ++ clear_result_state(TOI_KEPT_IMAGE); ++ ++ return count; ++} +diff --git a/kernel/power/tuxonice_io.h b/kernel/power/tuxonice_io.h +new file mode 100644 +index 0000000..fe37713 +--- /dev/null ++++ b/kernel/power/tuxonice_io.h +@@ -0,0 +1,74 @@ ++/* ++ * kernel/power/tuxonice_io.h ++ * ++ * Copyright (C) 2005-2010 Nigel Cunningham (nigel at tuxonice net) ++ * ++ * This file is released under the GPLv2. ++ * ++ * It contains high level IO routines for hibernating. ++ * ++ */ ++ ++#include ++#include "tuxonice_pagedir.h" ++ ++/* Non-module data saved in our image header */ ++struct toi_header { ++ /* ++ * Mirror struct swsusp_info, but without ++ * the page aligned attribute ++ */ ++ struct new_utsname uts; ++ u32 version_code; ++ unsigned long num_physpages; ++ int cpus; ++ unsigned long image_pages; ++ unsigned long pages; ++ unsigned long size; ++ ++ /* Our own data */ ++ unsigned long orig_mem_free; ++ int page_size; ++ int pageset_2_size; ++ int param0; ++ int param1; ++ int param2; ++ int param3; ++ int progress0; ++ int progress1; ++ int progress2; ++ int progress3; ++ int io_time[2][2]; ++ struct pagedir pagedir; ++ dev_t root_fs; ++ unsigned long bkd; /* Boot kernel data locn */ ++}; ++ ++extern int write_pageset(struct pagedir *pagedir); ++extern int write_image_header(void); ++extern int read_pageset1(void); ++extern int read_pageset2(int overwrittenpagesonly); ++ ++extern int toi_attempt_to_parse_resume_device(int quiet); ++extern void attempt_to_parse_resume_device2(void); ++extern void attempt_to_parse_alt_resume_param(void); ++int image_exists_read(const char *page, int count); ++int image_exists_write(const char *buffer, int count); ++extern void save_restore_alt_param(int replace, int quiet); ++extern atomic_t toi_io_workers; ++ ++/* Args to save_restore_alt_param */ ++#define RESTORE 0 ++#define SAVE 1 ++ ++#define NOQUIET 0 ++#define QUIET 1 ++ ++extern dev_t name_to_dev_t(char *line); ++ ++extern wait_queue_head_t toi_io_queue_flusher; ++extern int toi_bio_queue_flusher_should_finish; ++ ++int fs_info_space_needed(void); ++ ++extern int toi_max_workers; +diff --git a/kernel/power/tuxonice_modules.c b/kernel/power/tuxonice_modules.c +new file mode 100644 +index 0000000..4cc24a9 +--- /dev/null ++++ b/kernel/power/tuxonice_modules.c +@@ -0,0 +1,522 @@ ++/* ++ * kernel/power/tuxonice_modules.c ++ * ++ * Copyright (C) 2004-2010 Nigel Cunningham (nigel at tuxonice net) ++ * ++ */ ++ ++#include ++#include "tuxonice.h" ++#include "tuxonice_modules.h" ++#include "tuxonice_sysfs.h" ++#include "tuxonice_ui.h" ++ ++LIST_HEAD(toi_filters); ++LIST_HEAD(toiAllocators); ++ ++LIST_HEAD(toi_modules); ++EXPORT_SYMBOL_GPL(toi_modules); ++ ++struct toi_module_ops *toiActiveAllocator; ++EXPORT_SYMBOL_GPL(toiActiveAllocator); ++ ++static int toi_num_filters; ++int toiNumAllocators, toi_num_modules; ++ ++/* ++ * toi_header_storage_for_modules ++ * ++ * Returns the amount of space needed to store configuration ++ * data needed by the modules prior to copying back the original ++ * kernel. We can exclude data for pageset2 because it will be ++ * available anyway once the kernel is copied back. ++ */ ++long toi_header_storage_for_modules(void) ++{ ++ struct toi_module_ops *this_module; ++ int bytes = 0; ++ ++ list_for_each_entry(this_module, &toi_modules, module_list) { ++ if (!this_module->enabled || ++ (this_module->type == WRITER_MODULE && ++ toiActiveAllocator != this_module)) ++ continue; ++ if (this_module->storage_needed) { ++ int this = this_module->storage_needed() + ++ sizeof(struct toi_module_header) + ++ sizeof(int); ++ this_module->header_requested = this; ++ bytes += this; ++ } ++ } ++ ++ /* One more for the empty terminator */ ++ return bytes + sizeof(struct toi_module_header); ++} ++ ++void print_toi_header_storage_for_modules(void) ++{ ++ struct toi_module_ops *this_module; ++ int bytes = 0; ++ ++ printk(KERN_DEBUG "Header storage:\n"); ++ list_for_each_entry(this_module, &toi_modules, module_list) { ++ if (!this_module->enabled || ++ (this_module->type == WRITER_MODULE && ++ toiActiveAllocator != this_module)) ++ continue; ++ if (this_module->storage_needed) { ++ int this = this_module->storage_needed() + ++ sizeof(struct toi_module_header) + ++ sizeof(int); ++ this_module->header_requested = this; ++ bytes += this; ++ printk(KERN_DEBUG "+ %16s : %-4d/%d.\n", ++ this_module->name, ++ this_module->header_used, this); ++ } ++ } ++ ++ printk(KERN_DEBUG "+ empty terminator : %zu.\n", ++ sizeof(struct toi_module_header)); ++ printk(KERN_DEBUG " ====\n"); ++ printk(KERN_DEBUG " %zu\n", ++ bytes + sizeof(struct toi_module_header)); ++} ++EXPORT_SYMBOL_GPL(print_toi_header_storage_for_modules); ++ ++/* ++ * toi_memory_for_modules ++ * ++ * Returns the amount of memory requested by modules for ++ * doing their work during the cycle. ++ */ ++ ++long toi_memory_for_modules(int print_parts) ++{ ++ long bytes = 0, result; ++ struct toi_module_ops *this_module; ++ ++ if (print_parts) ++ printk(KERN_INFO "Memory for modules:\n===================\n"); ++ list_for_each_entry(this_module, &toi_modules, module_list) { ++ int this; ++ if (!this_module->enabled) ++ continue; ++ if (this_module->memory_needed) { ++ this = this_module->memory_needed(); ++ if (print_parts) ++ printk(KERN_INFO "%10d bytes (%5ld pages) for " ++ "module '%s'.\n", this, ++ DIV_ROUND_UP(this, PAGE_SIZE), ++ this_module->name); ++ bytes += this; ++ } ++ } ++ ++ result = DIV_ROUND_UP(bytes, PAGE_SIZE); ++ if (print_parts) ++ printk(KERN_INFO " => %ld bytes, %ld pages.\n", bytes, result); ++ ++ return result; ++} ++ ++/* ++ * toi_expected_compression_ratio ++ * ++ * Returns the compression ratio expected when saving the image. ++ */ ++ ++int toi_expected_compression_ratio(void) ++{ ++ int ratio = 100; ++ struct toi_module_ops *this_module; ++ ++ list_for_each_entry(this_module, &toi_modules, module_list) { ++ if (!this_module->enabled) ++ continue; ++ if (this_module->expected_compression) ++ ratio = ratio * this_module->expected_compression() ++ / 100; ++ } ++ ++ return ratio; ++} ++ ++/* toi_find_module_given_dir ++ * Functionality : Return a module (if found), given a pointer ++ * to its directory name ++ */ ++ ++static struct toi_module_ops *toi_find_module_given_dir(char *name) ++{ ++ struct toi_module_ops *this_module, *found_module = NULL; ++ ++ list_for_each_entry(this_module, &toi_modules, module_list) { ++ if (!strcmp(name, this_module->directory)) { ++ found_module = this_module; ++ break; ++ } ++ } ++ ++ return found_module; ++} ++ ++/* toi_find_module_given_name ++ * Functionality : Return a module (if found), given a pointer ++ * to its name ++ */ ++ ++struct toi_module_ops *toi_find_module_given_name(char *name) ++{ ++ struct toi_module_ops *this_module, *found_module = NULL; ++ ++ list_for_each_entry(this_module, &toi_modules, module_list) { ++ if (!strcmp(name, this_module->name)) { ++ found_module = this_module; ++ break; ++ } ++ } ++ ++ return found_module; ++} ++ ++/* ++ * toi_print_module_debug_info ++ * Functionality : Get debugging info from modules into a buffer. ++ */ ++int toi_print_module_debug_info(char *buffer, int buffer_size) ++{ ++ struct toi_module_ops *this_module; ++ int len = 0; ++ ++ list_for_each_entry(this_module, &toi_modules, module_list) { ++ if (!this_module->enabled) ++ continue; ++ if (this_module->print_debug_info) { ++ int result; ++ result = this_module->print_debug_info(buffer + len, ++ buffer_size - len); ++ len += result; ++ } ++ } ++ ++ /* Ensure null terminated */ ++ buffer[buffer_size] = 0; ++ ++ return len; ++} ++ ++/* ++ * toi_register_module ++ * ++ * Register a module. ++ */ ++int toi_register_module(struct toi_module_ops *module) ++{ ++ int i; ++ struct kobject *kobj; ++ ++ module->enabled = 1; ++ ++ if (toi_find_module_given_name(module->name)) { ++ printk(KERN_INFO "TuxOnIce: Trying to load module %s," ++ " which is already registered.\n", ++ module->name); ++ return -EBUSY; ++ } ++ ++ switch (module->type) { ++ case FILTER_MODULE: ++ list_add_tail(&module->type_list, &toi_filters); ++ toi_num_filters++; ++ break; ++ case WRITER_MODULE: ++ list_add_tail(&module->type_list, &toiAllocators); ++ toiNumAllocators++; ++ break; ++ case MISC_MODULE: ++ case MISC_HIDDEN_MODULE: ++ case BIO_ALLOCATOR_MODULE: ++ break; ++ default: ++ printk(KERN_ERR "Hmmm. Module '%s' has an invalid type." ++ " It has been ignored.\n", module->name); ++ return -EINVAL; ++ } ++ list_add_tail(&module->module_list, &toi_modules); ++ toi_num_modules++; ++ ++ if ((!module->directory && !module->shared_directory) || ++ !module->sysfs_data || !module->num_sysfs_entries) ++ return 0; ++ ++ /* ++ * Modules may share a directory, but those with shared_dir ++ * set must be loaded (via symbol dependencies) after parents ++ * and unloaded beforehand. ++ */ ++ if (module->shared_directory) { ++ struct toi_module_ops *shared = ++ toi_find_module_given_dir(module->shared_directory); ++ if (!shared) { ++ printk(KERN_ERR "TuxOnIce: Module %s wants to share " ++ "%s's directory but %s isn't loaded.\n", ++ module->name, module->shared_directory, ++ module->shared_directory); ++ toi_unregister_module(module); ++ return -ENODEV; ++ } ++ kobj = shared->dir_kobj; ++ } else { ++ if (!strncmp(module->directory, "[ROOT]", 6)) ++ kobj = tuxonice_kobj; ++ else ++ kobj = make_toi_sysdir(module->directory); ++ } ++ module->dir_kobj = kobj; ++ for (i = 0; i < module->num_sysfs_entries; i++) { ++ int result = toi_register_sysfs_file(kobj, ++ &module->sysfs_data[i]); ++ if (result) ++ return result; ++ } ++ return 0; ++} ++EXPORT_SYMBOL_GPL(toi_register_module); ++ ++/* ++ * toi_unregister_module ++ * ++ * Remove a module. ++ */ ++void toi_unregister_module(struct toi_module_ops *module) ++{ ++ int i; ++ ++ if (module->dir_kobj) ++ for (i = 0; i < module->num_sysfs_entries; i++) ++ toi_unregister_sysfs_file(module->dir_kobj, ++ &module->sysfs_data[i]); ++ ++ if (!module->shared_directory && module->directory && ++ strncmp(module->directory, "[ROOT]", 6)) ++ remove_toi_sysdir(module->dir_kobj); ++ ++ switch (module->type) { ++ case FILTER_MODULE: ++ list_del(&module->type_list); ++ toi_num_filters--; ++ break; ++ case WRITER_MODULE: ++ list_del(&module->type_list); ++ toiNumAllocators--; ++ if (toiActiveAllocator == module) { ++ toiActiveAllocator = NULL; ++ clear_toi_state(TOI_CAN_RESUME); ++ clear_toi_state(TOI_CAN_HIBERNATE); ++ } ++ break; ++ case MISC_MODULE: ++ case MISC_HIDDEN_MODULE: ++ case BIO_ALLOCATOR_MODULE: ++ break; ++ default: ++ printk(KERN_ERR "Module '%s' has an invalid type." ++ " It has been ignored.\n", module->name); ++ return; ++ } ++ list_del(&module->module_list); ++ toi_num_modules--; ++} ++EXPORT_SYMBOL_GPL(toi_unregister_module); ++ ++/* ++ * toi_move_module_tail ++ * ++ * Rearrange modules when reloading the config. ++ */ ++void toi_move_module_tail(struct toi_module_ops *module) ++{ ++ switch (module->type) { ++ case FILTER_MODULE: ++ if (toi_num_filters > 1) ++ list_move_tail(&module->type_list, &toi_filters); ++ break; ++ case WRITER_MODULE: ++ if (toiNumAllocators > 1) ++ list_move_tail(&module->type_list, &toiAllocators); ++ break; ++ case MISC_MODULE: ++ case MISC_HIDDEN_MODULE: ++ case BIO_ALLOCATOR_MODULE: ++ break; ++ default: ++ printk(KERN_ERR "Module '%s' has an invalid type." ++ " It has been ignored.\n", module->name); ++ return; ++ } ++ if ((toi_num_filters + toiNumAllocators) > 1) ++ list_move_tail(&module->module_list, &toi_modules); ++} ++ ++/* ++ * toi_initialise_modules ++ * ++ * Get ready to do some work! ++ */ ++int toi_initialise_modules(int starting_cycle, int early) ++{ ++ struct toi_module_ops *this_module; ++ int result; ++ ++ list_for_each_entry(this_module, &toi_modules, module_list) { ++ this_module->header_requested = 0; ++ this_module->header_used = 0; ++ if (!this_module->enabled) ++ continue; ++ if (this_module->early != early) ++ continue; ++ if (this_module->initialise) { ++ result = this_module->initialise(starting_cycle); ++ if (result) { ++ toi_cleanup_modules(starting_cycle); ++ return result; ++ } ++ this_module->initialised = 1; ++ } ++ } ++ ++ return 0; ++} ++ ++/* ++ * toi_cleanup_modules ++ * ++ * Tell modules the work is done. ++ */ ++void toi_cleanup_modules(int finishing_cycle) ++{ ++ struct toi_module_ops *this_module; ++ ++ list_for_each_entry(this_module, &toi_modules, module_list) { ++ if (!this_module->enabled || !this_module->initialised) ++ continue; ++ if (this_module->cleanup) ++ this_module->cleanup(finishing_cycle); ++ this_module->initialised = 0; ++ } ++} ++ ++/* ++ * toi_pre_atomic_restore_modules ++ * ++ * Get ready to do some work! ++ */ ++void toi_pre_atomic_restore_modules(struct toi_boot_kernel_data *bkd) ++{ ++ struct toi_module_ops *this_module; ++ ++ list_for_each_entry(this_module, &toi_modules, module_list) { ++ if (this_module->enabled && this_module->pre_atomic_restore) ++ this_module->pre_atomic_restore(bkd); ++ } ++} ++ ++/* ++ * toi_post_atomic_restore_modules ++ * ++ * Get ready to do some work! ++ */ ++void toi_post_atomic_restore_modules(struct toi_boot_kernel_data *bkd) ++{ ++ struct toi_module_ops *this_module; ++ ++ list_for_each_entry(this_module, &toi_modules, module_list) { ++ if (this_module->enabled && this_module->post_atomic_restore) ++ this_module->post_atomic_restore(bkd); ++ } ++} ++ ++/* ++ * toi_get_next_filter ++ * ++ * Get the next filter in the pipeline. ++ */ ++struct toi_module_ops *toi_get_next_filter(struct toi_module_ops *filter_sought) ++{ ++ struct toi_module_ops *last_filter = NULL, *this_filter = NULL; ++ ++ list_for_each_entry(this_filter, &toi_filters, type_list) { ++ if (!this_filter->enabled) ++ continue; ++ if ((last_filter == filter_sought) || (!filter_sought)) ++ return this_filter; ++ last_filter = this_filter; ++ } ++ ++ return toiActiveAllocator; ++} ++EXPORT_SYMBOL_GPL(toi_get_next_filter); ++ ++/** ++ * toi_show_modules: Printk what support is loaded. ++ */ ++void toi_print_modules(void) ++{ ++ struct toi_module_ops *this_module; ++ int prev = 0; ++ ++ printk(KERN_INFO "TuxOnIce " TOI_CORE_VERSION ", with support for"); ++ ++ list_for_each_entry(this_module, &toi_modules, module_list) { ++ if (this_module->type == MISC_HIDDEN_MODULE) ++ continue; ++ printk("%s %s%s%s", prev ? "," : "", ++ this_module->enabled ? "" : "[", ++ this_module->name, ++ this_module->enabled ? "" : "]"); ++ prev = 1; ++ } ++ ++ printk(".\n"); ++} ++ ++/* toi_get_modules ++ * ++ * Take a reference to modules so they can't go away under us. ++ */ ++ ++int toi_get_modules(void) ++{ ++ struct toi_module_ops *this_module; ++ ++ list_for_each_entry(this_module, &toi_modules, module_list) { ++ struct toi_module_ops *this_module2; ++ ++ if (try_module_get(this_module->module)) ++ continue; ++ ++ /* Failed! Reverse gets and return error */ ++ list_for_each_entry(this_module2, &toi_modules, ++ module_list) { ++ if (this_module == this_module2) ++ return -EINVAL; ++ module_put(this_module2->module); ++ } ++ } ++ return 0; ++} ++ ++/* toi_put_modules ++ * ++ * Release our references to modules we used. ++ */ ++ ++void toi_put_modules(void) ++{ ++ struct toi_module_ops *this_module; ++ ++ list_for_each_entry(this_module, &toi_modules, module_list) ++ module_put(this_module->module); ++} +diff --git a/kernel/power/tuxonice_modules.h b/kernel/power/tuxonice_modules.h +new file mode 100644 +index 0000000..9e198c4 +--- /dev/null ++++ b/kernel/power/tuxonice_modules.h +@@ -0,0 +1,197 @@ ++/* ++ * kernel/power/tuxonice_modules.h ++ * ++ * Copyright (C) 2004-2010 Nigel Cunningham (nigel at tuxonice net) ++ * ++ * This file is released under the GPLv2. ++ * ++ * It contains declarations for modules. Modules are additions to ++ * TuxOnIce that provide facilities such as image compression or ++ * encryption, backends for storage of the image and user interfaces. ++ * ++ */ ++ ++#ifndef TOI_MODULES_H ++#define TOI_MODULES_H ++ ++/* This is the maximum size we store in the image header for a module name */ ++#define TOI_MAX_MODULE_NAME_LENGTH 30 ++ ++struct toi_boot_kernel_data; ++ ++/* Per-module metadata */ ++struct toi_module_header { ++ char name[TOI_MAX_MODULE_NAME_LENGTH]; ++ int enabled; ++ int type; ++ int index; ++ int data_length; ++ unsigned long signature; ++}; ++ ++enum { ++ FILTER_MODULE, ++ WRITER_MODULE, ++ BIO_ALLOCATOR_MODULE, ++ MISC_MODULE, ++ MISC_HIDDEN_MODULE, ++}; ++ ++enum { ++ TOI_ASYNC, ++ TOI_SYNC ++}; ++ ++struct toi_module_ops { ++ /* Functions common to all modules */ ++ int type; ++ char *name; ++ char *directory; ++ char *shared_directory; ++ struct kobject *dir_kobj; ++ struct module *module; ++ int enabled, early, initialised; ++ struct list_head module_list; ++ ++ /* List of filters or allocators */ ++ struct list_head list, type_list; ++ ++ /* ++ * Requirements for memory and storage in ++ * the image header.. ++ */ ++ int (*memory_needed) (void); ++ int (*storage_needed) (void); ++ ++ int header_requested, header_used; ++ ++ int (*expected_compression) (void); ++ ++ /* ++ * Debug info ++ */ ++ int (*print_debug_info) (char *buffer, int size); ++ int (*save_config_info) (char *buffer); ++ void (*load_config_info) (char *buffer, int len); ++ ++ /* ++ * Initialise & cleanup - general routines called ++ * at the start and end of a cycle. ++ */ ++ int (*initialise) (int starting_cycle); ++ void (*cleanup) (int finishing_cycle); ++ ++ void (*pre_atomic_restore) (struct toi_boot_kernel_data *bkd); ++ void (*post_atomic_restore) (struct toi_boot_kernel_data *bkd); ++ ++ /* ++ * Calls for allocating storage (allocators only). ++ * ++ * Header space is requested separately and cannot fail, but the ++ * reservation is only applied when main storage is allocated. ++ * The header space reservation is thus always set prior to ++ * requesting the allocation of storage - and prior to querying ++ * how much storage is available. ++ */ ++ ++ unsigned long (*storage_available) (void); ++ void (*reserve_header_space) (unsigned long space_requested); ++ int (*register_storage) (void); ++ int (*allocate_storage) (unsigned long space_requested); ++ unsigned long (*storage_allocated) (void); ++ ++ /* ++ * Routines used in image I/O. ++ */ ++ int (*rw_init) (int rw, int stream_number); ++ int (*rw_cleanup) (int rw); ++ int (*write_page) (unsigned long index, struct page *buffer_page, ++ unsigned int buf_size); ++ int (*read_page) (unsigned long *index, struct page *buffer_page, ++ unsigned int *buf_size); ++ int (*io_flusher) (int rw); ++ ++ /* Reset module if image exists but reading aborted */ ++ void (*noresume_reset) (void); ++ ++ /* Read and write the metadata */ ++ int (*write_header_init) (void); ++ int (*write_header_cleanup) (void); ++ ++ int (*read_header_init) (void); ++ int (*read_header_cleanup) (void); ++ ++ /* To be called after read_header_init */ ++ int (*get_header_version) (void); ++ ++ int (*rw_header_chunk) (int rw, struct toi_module_ops *owner, ++ char *buffer_start, int buffer_size); ++ ++ int (*rw_header_chunk_noreadahead) (int rw, ++ struct toi_module_ops *owner, char *buffer_start, ++ int buffer_size); ++ ++ /* Attempt to parse an image location */ ++ int (*parse_sig_location) (char *buffer, int only_writer, int quiet); ++ ++ /* Throttle I/O according to throughput */ ++ void (*update_throughput_throttle) (int jif_index); ++ ++ /* Flush outstanding I/O */ ++ int (*finish_all_io) (void); ++ ++ /* Determine whether image exists that we can restore */ ++ int (*image_exists) (int quiet); ++ ++ /* Mark the image as having tried to resume */ ++ int (*mark_resume_attempted) (int); ++ ++ /* Destroy image if one exists */ ++ int (*remove_image) (void); ++ ++ /* Sysfs Data */ ++ struct toi_sysfs_data *sysfs_data; ++ int num_sysfs_entries; ++ ++ /* Block I/O allocator */ ++ struct toi_bio_allocator_ops *bio_allocator_ops; ++}; ++ ++extern int toi_num_modules, toiNumAllocators; ++ ++extern struct toi_module_ops *toiActiveAllocator; ++extern struct list_head toi_filters, toiAllocators, toi_modules; ++ ++extern void toi_prepare_console_modules(void); ++extern void toi_cleanup_console_modules(void); ++ ++extern struct toi_module_ops *toi_find_module_given_name(char *name); ++extern struct toi_module_ops *toi_get_next_filter(struct toi_module_ops *); ++ ++extern int toi_register_module(struct toi_module_ops *module); ++extern void toi_move_module_tail(struct toi_module_ops *module); ++ ++extern long toi_header_storage_for_modules(void); ++extern long toi_memory_for_modules(int print_parts); ++extern void print_toi_header_storage_for_modules(void); ++extern int toi_expected_compression_ratio(void); ++ ++extern int toi_print_module_debug_info(char *buffer, int buffer_size); ++extern int toi_register_module(struct toi_module_ops *module); ++extern void toi_unregister_module(struct toi_module_ops *module); ++ ++extern int toi_initialise_modules(int starting_cycle, int early); ++#define toi_initialise_modules_early(starting) \ ++ toi_initialise_modules(starting, 1) ++#define toi_initialise_modules_late(starting) \ ++ toi_initialise_modules(starting, 0) ++extern void toi_cleanup_modules(int finishing_cycle); ++ ++extern void toi_post_atomic_restore_modules(struct toi_boot_kernel_data *bkd); ++extern void toi_pre_atomic_restore_modules(struct toi_boot_kernel_data *bkd); ++ ++extern void toi_print_modules(void); ++ ++int toi_get_modules(void); ++void toi_put_modules(void); ++#endif +diff --git a/kernel/power/tuxonice_netlink.c b/kernel/power/tuxonice_netlink.c +new file mode 100644 +index 0000000..4c599d5 +--- /dev/null ++++ b/kernel/power/tuxonice_netlink.c +@@ -0,0 +1,344 @@ ++/* ++ * kernel/power/tuxonice_netlink.c ++ * ++ * Copyright (C) 2004-2010 Nigel Cunningham (nigel at tuxonice net) ++ * ++ * This file is released under the GPLv2. ++ * ++ * Functions for communicating with a userspace helper via netlink. ++ */ ++ ++ ++#include ++#include ++#include "tuxonice_netlink.h" ++#include "tuxonice.h" ++#include "tuxonice_modules.h" ++#include "tuxonice_alloc.h" ++ ++static struct user_helper_data *uhd_list; ++ ++/* ++ * Refill our pool of SKBs for use in emergencies (eg, when eating memory and ++ * none can be allocated). ++ */ ++static void toi_fill_skb_pool(struct user_helper_data *uhd) ++{ ++ while (uhd->pool_level < uhd->pool_limit) { ++ struct sk_buff *new_skb = ++ alloc_skb(NLMSG_SPACE(uhd->skb_size), TOI_ATOMIC_GFP); ++ ++ if (!new_skb) ++ break; ++ ++ new_skb->next = uhd->emerg_skbs; ++ uhd->emerg_skbs = new_skb; ++ uhd->pool_level++; ++ } ++} ++ ++/* ++ * Try to allocate a single skb. If we can't get one, try to use one from ++ * our pool. ++ */ ++static struct sk_buff *toi_get_skb(struct user_helper_data *uhd) ++{ ++ struct sk_buff *skb = ++ alloc_skb(NLMSG_SPACE(uhd->skb_size), TOI_ATOMIC_GFP); ++ ++ if (skb) ++ return skb; ++ ++ skb = uhd->emerg_skbs; ++ if (skb) { ++ uhd->pool_level--; ++ uhd->emerg_skbs = skb->next; ++ skb->next = NULL; ++ } ++ ++ return skb; ++} ++ ++static void put_skb(struct user_helper_data *uhd, struct sk_buff *skb) ++{ ++ if (uhd->pool_level < uhd->pool_limit) { ++ skb->next = uhd->emerg_skbs; ++ uhd->emerg_skbs = skb; ++ } else ++ kfree_skb(skb); ++} ++ ++void toi_send_netlink_message(struct user_helper_data *uhd, ++ int type, void *params, size_t len) ++{ ++ struct sk_buff *skb; ++ struct nlmsghdr *nlh; ++ void *dest; ++ struct task_struct *t; ++ ++ if (uhd->pid == -1) ++ return; ++ ++ if (uhd->debug) ++ printk(KERN_ERR "toi_send_netlink_message: Send " ++ "message type %d.\n", type); ++ ++ skb = toi_get_skb(uhd); ++ if (!skb) { ++ printk(KERN_INFO "toi_netlink: Can't allocate skb!\n"); ++ return; ++ } ++ ++ /* NLMSG_PUT contains a hidden goto nlmsg_failure */ ++ nlh = NLMSG_PUT(skb, 0, uhd->sock_seq, type, len); ++ uhd->sock_seq++; ++ ++ dest = NLMSG_DATA(nlh); ++ if (params && len > 0) ++ memcpy(dest, params, len); ++ ++ netlink_unicast(uhd->nl, skb, uhd->pid, 0); ++ ++ read_lock(&tasklist_lock); ++ t = find_task_by_pid_ns(uhd->pid, &init_pid_ns); ++ if (!t) { ++ read_unlock(&tasklist_lock); ++ if (uhd->pid > -1) ++ printk(KERN_INFO "Hmm. Can't find the userspace task" ++ " %d.\n", uhd->pid); ++ return; ++ } ++ wake_up_process(t); ++ read_unlock(&tasklist_lock); ++ ++ yield(); ++ ++ return; ++ ++nlmsg_failure: ++ if (skb) ++ put_skb(uhd, skb); ++ ++ if (uhd->debug) ++ printk(KERN_ERR "toi_send_netlink_message: Failed to send " ++ "message type %d.\n", type); ++} ++EXPORT_SYMBOL_GPL(toi_send_netlink_message); ++ ++static void send_whether_debugging(struct user_helper_data *uhd) ++{ ++ static u8 is_debugging = 1; ++ ++ toi_send_netlink_message(uhd, NETLINK_MSG_IS_DEBUGGING, ++ &is_debugging, sizeof(u8)); ++} ++ ++/* ++ * Set the PF_NOFREEZE flag on the given process to ensure it can run whilst we ++ * are hibernating. ++ */ ++static int nl_set_nofreeze(struct user_helper_data *uhd, __u32 pid) ++{ ++ struct task_struct *t; ++ ++ if (uhd->debug) ++ printk(KERN_ERR "nl_set_nofreeze for pid %d.\n", pid); ++ ++ read_lock(&tasklist_lock); ++ t = find_task_by_pid_ns(pid, &init_pid_ns); ++ if (!t) { ++ read_unlock(&tasklist_lock); ++ printk(KERN_INFO "Strange. Can't find the userspace task %d.\n", ++ pid); ++ return -EINVAL; ++ } ++ ++ t->flags |= PF_NOFREEZE; ++ ++ read_unlock(&tasklist_lock); ++ uhd->pid = pid; ++ ++ toi_send_netlink_message(uhd, NETLINK_MSG_NOFREEZE_ACK, NULL, 0); ++ ++ return 0; ++} ++ ++/* ++ * Called when the userspace process has informed us that it's ready to roll. ++ */ ++static int nl_ready(struct user_helper_data *uhd, u32 version) ++{ ++ if (version != uhd->interface_version) { ++ printk(KERN_INFO "%s userspace process using invalid interface" ++ " version (%d - kernel wants %d). Trying to " ++ "continue without it.\n", ++ uhd->name, version, uhd->interface_version); ++ if (uhd->not_ready) ++ uhd->not_ready(); ++ return -EINVAL; ++ } ++ ++ complete(&uhd->wait_for_process); ++ ++ return 0; ++} ++ ++void toi_netlink_close_complete(struct user_helper_data *uhd) ++{ ++ if (uhd->nl) { ++ netlink_kernel_release(uhd->nl); ++ uhd->nl = NULL; ++ } ++ ++ while (uhd->emerg_skbs) { ++ struct sk_buff *next = uhd->emerg_skbs->next; ++ kfree_skb(uhd->emerg_skbs); ++ uhd->emerg_skbs = next; ++ } ++ ++ uhd->pid = -1; ++} ++EXPORT_SYMBOL_GPL(toi_netlink_close_complete); ++ ++static int toi_nl_gen_rcv_msg(struct user_helper_data *uhd, ++ struct sk_buff *skb, struct nlmsghdr *nlh) ++{ ++ int type = nlh->nlmsg_type; ++ int *data; ++ int err; ++ ++ if (uhd->debug) ++ printk(KERN_ERR "toi_user_rcv_skb: Received message %d.\n", ++ type); ++ ++ /* Let the more specific handler go first. It returns ++ * 1 for valid messages that it doesn't know. */ ++ err = uhd->rcv_msg(skb, nlh); ++ if (err != 1) ++ return err; ++ ++ /* Only allow one task to receive NOFREEZE privileges */ ++ if (type == NETLINK_MSG_NOFREEZE_ME && uhd->pid != -1) { ++ printk(KERN_INFO "Received extra nofreeze me requests.\n"); ++ return -EBUSY; ++ } ++ ++ data = NLMSG_DATA(nlh); ++ ++ switch (type) { ++ case NETLINK_MSG_NOFREEZE_ME: ++ return nl_set_nofreeze(uhd, nlh->nlmsg_pid); ++ case NETLINK_MSG_GET_DEBUGGING: ++ send_whether_debugging(uhd); ++ return 0; ++ case NETLINK_MSG_READY: ++ if (nlh->nlmsg_len != NLMSG_LENGTH(sizeof(u32))) { ++ printk(KERN_INFO "Invalid ready mesage.\n"); ++ if (uhd->not_ready) ++ uhd->not_ready(); ++ return -EINVAL; ++ } ++ return nl_ready(uhd, (u32) *data); ++ case NETLINK_MSG_CLEANUP: ++ toi_netlink_close_complete(uhd); ++ return 0; ++ } ++ ++ return -EINVAL; ++} ++ ++static void toi_user_rcv_skb(struct sk_buff *skb) ++{ ++ int err; ++ struct nlmsghdr *nlh; ++ struct user_helper_data *uhd = uhd_list; ++ ++ while (uhd && uhd->netlink_id != skb->sk->sk_protocol) ++ uhd = uhd->next; ++ ++ if (!uhd) ++ return; ++ ++ while (skb->len >= NLMSG_SPACE(0)) { ++ u32 rlen; ++ ++ nlh = (struct nlmsghdr *) skb->data; ++ if (nlh->nlmsg_len < sizeof(*nlh) || skb->len < nlh->nlmsg_len) ++ return; ++ ++ rlen = NLMSG_ALIGN(nlh->nlmsg_len); ++ if (rlen > skb->len) ++ rlen = skb->len; ++ ++ err = toi_nl_gen_rcv_msg(uhd, skb, nlh); ++ if (err) ++ netlink_ack(skb, nlh, err); ++ else if (nlh->nlmsg_flags & NLM_F_ACK) ++ netlink_ack(skb, nlh, 0); ++ skb_pull(skb, rlen); ++ } ++} ++ ++static int netlink_prepare(struct user_helper_data *uhd) ++{ ++ uhd->next = uhd_list; ++ uhd_list = uhd; ++ ++ uhd->sock_seq = 0x42c0ffee; ++ uhd->nl = netlink_kernel_create(&init_net, uhd->netlink_id, 0, ++ toi_user_rcv_skb, NULL, THIS_MODULE); ++ if (!uhd->nl) { ++ printk(KERN_INFO "Failed to allocate netlink socket for %s.\n", ++ uhd->name); ++ return -ENOMEM; ++ } ++ ++ toi_fill_skb_pool(uhd); ++ ++ return 0; ++} ++ ++void toi_netlink_close(struct user_helper_data *uhd) ++{ ++ struct task_struct *t; ++ ++ read_lock(&tasklist_lock); ++ t = find_task_by_pid_ns(uhd->pid, &init_pid_ns); ++ if (t) ++ t->flags &= ~PF_NOFREEZE; ++ read_unlock(&tasklist_lock); ++ ++ toi_send_netlink_message(uhd, NETLINK_MSG_CLEANUP, NULL, 0); ++} ++EXPORT_SYMBOL_GPL(toi_netlink_close); ++ ++int toi_netlink_setup(struct user_helper_data *uhd) ++{ ++ /* In case userui didn't cleanup properly on us */ ++ toi_netlink_close_complete(uhd); ++ ++ if (netlink_prepare(uhd) < 0) { ++ printk(KERN_INFO "Netlink prepare failed.\n"); ++ return 1; ++ } ++ ++ if (toi_launch_userspace_program(uhd->program, uhd->netlink_id, ++ UMH_WAIT_EXEC, uhd->debug) < 0) { ++ printk(KERN_INFO "Launch userspace program failed.\n"); ++ toi_netlink_close_complete(uhd); ++ return 1; ++ } ++ ++ /* Wait 2 seconds for the userspace process to make contact */ ++ wait_for_completion_timeout(&uhd->wait_for_process, 2*HZ); ++ ++ if (uhd->pid == -1) { ++ printk(KERN_INFO "%s: Failed to contact userspace process.\n", ++ uhd->name); ++ toi_netlink_close_complete(uhd); ++ return 1; ++ } ++ ++ return 0; ++} ++EXPORT_SYMBOL_GPL(toi_netlink_setup); +diff --git a/kernel/power/tuxonice_netlink.h b/kernel/power/tuxonice_netlink.h +new file mode 100644 +index 0000000..b8ef06e +--- /dev/null ++++ b/kernel/power/tuxonice_netlink.h +@@ -0,0 +1,62 @@ ++/* ++ * kernel/power/tuxonice_netlink.h ++ * ++ * Copyright (C) 2004-2010 Nigel Cunningham (nigel at tuxonice net) ++ * ++ * This file is released under the GPLv2. ++ * ++ * Declarations for functions for communicating with a userspace helper ++ * via netlink. ++ */ ++ ++#include ++#include ++ ++#define NETLINK_MSG_BASE 0x10 ++ ++#define NETLINK_MSG_READY 0x10 ++#define NETLINK_MSG_NOFREEZE_ME 0x16 ++#define NETLINK_MSG_GET_DEBUGGING 0x19 ++#define NETLINK_MSG_CLEANUP 0x24 ++#define NETLINK_MSG_NOFREEZE_ACK 0x27 ++#define NETLINK_MSG_IS_DEBUGGING 0x28 ++ ++struct user_helper_data { ++ int (*rcv_msg) (struct sk_buff *skb, struct nlmsghdr *nlh); ++ void (*not_ready) (void); ++ struct sock *nl; ++ u32 sock_seq; ++ pid_t pid; ++ char *comm; ++ char program[256]; ++ int pool_level; ++ int pool_limit; ++ struct sk_buff *emerg_skbs; ++ int skb_size; ++ int netlink_id; ++ char *name; ++ struct user_helper_data *next; ++ struct completion wait_for_process; ++ u32 interface_version; ++ int must_init; ++ int debug; ++}; ++ ++#ifdef CONFIG_NET ++int toi_netlink_setup(struct user_helper_data *uhd); ++void toi_netlink_close(struct user_helper_data *uhd); ++void toi_send_netlink_message(struct user_helper_data *uhd, ++ int type, void *params, size_t len); ++void toi_netlink_close_complete(struct user_helper_data *uhd); ++#else ++static inline int toi_netlink_setup(struct user_helper_data *uhd) ++{ ++ return 0; ++} ++ ++static inline void toi_netlink_close(struct user_helper_data *uhd) { }; ++static inline void toi_send_netlink_message(struct user_helper_data *uhd, ++ int type, void *params, size_t len) { }; ++static inline void toi_netlink_close_complete(struct user_helper_data *uhd) ++ { }; ++#endif +diff --git a/kernel/power/tuxonice_pagedir.c b/kernel/power/tuxonice_pagedir.c +new file mode 100644 +index 0000000..091c9e3 +--- /dev/null ++++ b/kernel/power/tuxonice_pagedir.c +@@ -0,0 +1,339 @@ ++/* ++ * kernel/power/tuxonice_pagedir.c ++ * ++ * Copyright (C) 1998-2001 Gabor Kuti ++ * Copyright (C) 1998,2001,2002 Pavel Machek ++ * Copyright (C) 2002-2003 Florent Chabaud ++ * Copyright (C) 2006-2010 Nigel Cunningham (nigel at tuxonice net) ++ * ++ * This file is released under the GPLv2. ++ * ++ * Routines for handling pagesets. ++ * Note that pbes aren't actually stored as such. They're stored as ++ * bitmaps and extents. ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include "tuxonice_pageflags.h" ++#include "tuxonice_ui.h" ++#include "tuxonice_pagedir.h" ++#include "tuxonice_prepare_image.h" ++#include "tuxonice.h" ++#include "tuxonice_builtin.h" ++#include "tuxonice_alloc.h" ++ ++static int ptoi_pfn; ++static struct pbe *this_low_pbe; ++static struct pbe **last_low_pbe_ptr; ++static struct memory_bitmap dup_map1, dup_map2; ++ ++void toi_reset_alt_image_pageset2_pfn(void) ++{ ++ memory_bm_position_reset(pageset2_map); ++} ++ ++static struct page *first_conflicting_page; ++ ++/* ++ * free_conflicting_pages ++ */ ++ ++static void free_conflicting_pages(void) ++{ ++ while (first_conflicting_page) { ++ struct page *next = ++ *((struct page **) kmap(first_conflicting_page)); ++ kunmap(first_conflicting_page); ++ toi__free_page(29, first_conflicting_page); ++ first_conflicting_page = next; ++ } ++} ++ ++/* __toi_get_nonconflicting_page ++ * ++ * Description: Gets order zero pages that won't be overwritten ++ * while copying the original pages. ++ */ ++ ++struct page *___toi_get_nonconflicting_page(int can_be_highmem) ++{ ++ struct page *page; ++ gfp_t flags = TOI_ATOMIC_GFP; ++ if (can_be_highmem) ++ flags |= __GFP_HIGHMEM; ++ ++ ++ if (test_toi_state(TOI_LOADING_ALT_IMAGE) && ++ pageset2_map && ++ (ptoi_pfn != BM_END_OF_MAP)) { ++ do { ++ ptoi_pfn = memory_bm_next_pfn(pageset2_map); ++ if (ptoi_pfn != BM_END_OF_MAP) { ++ page = pfn_to_page(ptoi_pfn); ++ if (!PagePageset1(page) && ++ (can_be_highmem || !PageHighMem(page))) ++ return page; ++ } ++ } while (ptoi_pfn != BM_END_OF_MAP); ++ } ++ ++ do { ++ page = toi_alloc_page(29, flags); ++ if (!page) { ++ printk(KERN_INFO "Failed to get nonconflicting " ++ "page.\n"); ++ return NULL; ++ } ++ if (PagePageset1(page)) { ++ struct page **next = (struct page **) kmap(page); ++ *next = first_conflicting_page; ++ first_conflicting_page = page; ++ kunmap(page); ++ } ++ } while (PagePageset1(page)); ++ ++ return page; ++} ++ ++unsigned long __toi_get_nonconflicting_page(void) ++{ ++ struct page *page = ___toi_get_nonconflicting_page(0); ++ return page ? (unsigned long) page_address(page) : 0; ++} ++ ++static struct pbe *get_next_pbe(struct page **page_ptr, struct pbe *this_pbe, ++ int highmem) ++{ ++ if (((((unsigned long) this_pbe) & (PAGE_SIZE - 1)) ++ + 2 * sizeof(struct pbe)) > PAGE_SIZE) { ++ struct page *new_page = ++ ___toi_get_nonconflicting_page(highmem); ++ if (!new_page) ++ return ERR_PTR(-ENOMEM); ++ this_pbe = (struct pbe *) kmap(new_page); ++ memset(this_pbe, 0, PAGE_SIZE); ++ *page_ptr = new_page; ++ } else ++ this_pbe++; ++ ++ return this_pbe; ++} ++ ++/** ++ * get_pageset1_load_addresses - generate pbes for conflicting pages ++ * ++ * We check here that pagedir & pages it points to won't collide ++ * with pages where we're going to restore from the loaded pages ++ * later. ++ * ++ * Returns: ++ * Zero on success, one if couldn't find enough pages (shouldn't ++ * happen). ++ **/ ++int toi_get_pageset1_load_addresses(void) ++{ ++ int pfn, highallocd = 0, lowallocd = 0; ++ int low_needed = pagedir1.size - get_highmem_size(pagedir1); ++ int high_needed = get_highmem_size(pagedir1); ++ int low_pages_for_highmem = 0; ++ gfp_t flags = GFP_ATOMIC | __GFP_NOWARN | __GFP_HIGHMEM; ++ struct page *page, *high_pbe_page = NULL, *last_high_pbe_page = NULL, ++ *low_pbe_page; ++ struct pbe **last_high_pbe_ptr = &restore_highmem_pblist, ++ *this_high_pbe = NULL; ++ int orig_low_pfn, orig_high_pfn; ++ int high_pbes_done = 0, low_pbes_done = 0; ++ int low_direct = 0, high_direct = 0, result = 0, i; ++ ++ /* ++ * We need to duplicate pageset1's map because memory_bm_next_pfn's ++ * state gets stomped on by the PagePageset1() test in setup_pbes. ++ */ ++ memory_bm_create(&dup_map1, GFP_ATOMIC, 0); ++ memory_bm_dup(pageset1_map, &dup_map1); ++ ++ memory_bm_create(&dup_map2, GFP_ATOMIC, 0); ++ memory_bm_dup(pageset1_map, &dup_map2); ++ ++ memory_bm_position_reset(pageset1_map); ++ memory_bm_position_reset(&dup_map1); ++ memory_bm_position_reset(&dup_map2); ++ ++ last_low_pbe_ptr = &restore_pblist; ++ ++ /* First, allocate pages for the start of our pbe lists. */ ++ if (high_needed) { ++ high_pbe_page = ___toi_get_nonconflicting_page(1); ++ if (!high_pbe_page) { ++ result = -ENOMEM; ++ goto out; ++ } ++ this_high_pbe = (struct pbe *) kmap(high_pbe_page); ++ memset(this_high_pbe, 0, PAGE_SIZE); ++ } ++ ++ low_pbe_page = ___toi_get_nonconflicting_page(0); ++ if (!low_pbe_page) { ++ result = -ENOMEM; ++ goto out; ++ } ++ this_low_pbe = (struct pbe *) page_address(low_pbe_page); ++ ++ /* ++ * Next, allocate the number of pages we need. ++ */ ++ ++ i = low_needed + high_needed; ++ ++ do { ++ int is_high; ++ ++ if (i == low_needed) ++ flags &= ~__GFP_HIGHMEM; ++ ++ page = toi_alloc_page(30, flags); ++ BUG_ON(!page); ++ ++ SetPagePageset1Copy(page); ++ is_high = PageHighMem(page); ++ ++ if (PagePageset1(page)) { ++ if (is_high) ++ high_direct++; ++ else ++ low_direct++; ++ } else { ++ if (is_high) ++ highallocd++; ++ else ++ lowallocd++; ++ } ++ } while (--i); ++ ++ high_needed -= high_direct; ++ low_needed -= low_direct; ++ ++ /* ++ * Do we need to use some lowmem pages for the copies of highmem ++ * pages? ++ */ ++ if (high_needed > highallocd) { ++ low_pages_for_highmem = high_needed - highallocd; ++ high_needed -= low_pages_for_highmem; ++ low_needed += low_pages_for_highmem; ++ } ++ ++ /* ++ * Now generate our pbes (which will be used for the atomic restore), ++ * and free unneeded pages. ++ */ ++ memory_bm_position_reset(pageset1_copy_map); ++ for (pfn = memory_bm_next_pfn(pageset1_copy_map); pfn != BM_END_OF_MAP; ++ pfn = memory_bm_next_pfn(pageset1_copy_map)) { ++ int is_high; ++ page = pfn_to_page(pfn); ++ is_high = PageHighMem(page); ++ ++ if (PagePageset1(page)) ++ continue; ++ ++ /* Nope. We're going to use this page. Add a pbe. */ ++ if (is_high || low_pages_for_highmem) { ++ struct page *orig_page; ++ high_pbes_done++; ++ if (!is_high) ++ low_pages_for_highmem--; ++ do { ++ orig_high_pfn = memory_bm_next_pfn(&dup_map1); ++ BUG_ON(orig_high_pfn == BM_END_OF_MAP); ++ orig_page = pfn_to_page(orig_high_pfn); ++ } while (!PageHighMem(orig_page) || ++ PagePageset1Copy(orig_page)); ++ ++ this_high_pbe->orig_address = orig_page; ++ this_high_pbe->address = page; ++ this_high_pbe->next = NULL; ++ if (last_high_pbe_page != high_pbe_page) { ++ *last_high_pbe_ptr = ++ (struct pbe *) high_pbe_page; ++ if (!last_high_pbe_page) ++ last_high_pbe_page = high_pbe_page; ++ } else ++ *last_high_pbe_ptr = this_high_pbe; ++ last_high_pbe_ptr = &this_high_pbe->next; ++ if (last_high_pbe_page != high_pbe_page) { ++ kunmap(last_high_pbe_page); ++ last_high_pbe_page = high_pbe_page; ++ } ++ this_high_pbe = get_next_pbe(&high_pbe_page, ++ this_high_pbe, 1); ++ if (IS_ERR(this_high_pbe)) { ++ printk(KERN_INFO ++ "This high pbe is an error.\n"); ++ return -ENOMEM; ++ } ++ } else { ++ struct page *orig_page; ++ low_pbes_done++; ++ do { ++ orig_low_pfn = memory_bm_next_pfn(&dup_map2); ++ BUG_ON(orig_low_pfn == BM_END_OF_MAP); ++ orig_page = pfn_to_page(orig_low_pfn); ++ } while (PageHighMem(orig_page) || ++ PagePageset1Copy(orig_page)); ++ ++ this_low_pbe->orig_address = page_address(orig_page); ++ this_low_pbe->address = page_address(page); ++ this_low_pbe->next = NULL; ++ *last_low_pbe_ptr = this_low_pbe; ++ last_low_pbe_ptr = &this_low_pbe->next; ++ this_low_pbe = get_next_pbe(&low_pbe_page, ++ this_low_pbe, 0); ++ if (IS_ERR(this_low_pbe)) { ++ printk(KERN_INFO "this_low_pbe is an error.\n"); ++ return -ENOMEM; ++ } ++ } ++ } ++ ++ if (high_pbe_page) ++ kunmap(high_pbe_page); ++ ++ if (last_high_pbe_page != high_pbe_page) { ++ if (last_high_pbe_page) ++ kunmap(last_high_pbe_page); ++ toi__free_page(29, high_pbe_page); ++ } ++ ++ free_conflicting_pages(); ++ ++out: ++ memory_bm_free(&dup_map1, 0); ++ memory_bm_free(&dup_map2, 0); ++ ++ return result; ++} ++ ++int add_boot_kernel_data_pbe(void) ++{ ++ this_low_pbe->address = (char *) __toi_get_nonconflicting_page(); ++ if (!this_low_pbe->address) { ++ printk(KERN_INFO "Failed to get bkd atomic restore buffer."); ++ return -ENOMEM; ++ } ++ ++ toi_bkd.size = sizeof(toi_bkd); ++ memcpy(this_low_pbe->address, &toi_bkd, sizeof(toi_bkd)); ++ ++ *last_low_pbe_ptr = this_low_pbe; ++ this_low_pbe->orig_address = (char *) boot_kernel_data_buffer; ++ this_low_pbe->next = NULL; ++ return 0; ++} +diff --git a/kernel/power/tuxonice_pagedir.h b/kernel/power/tuxonice_pagedir.h +new file mode 100644 +index 0000000..d08e4b1 +--- /dev/null ++++ b/kernel/power/tuxonice_pagedir.h +@@ -0,0 +1,50 @@ ++/* ++ * kernel/power/tuxonice_pagedir.h ++ * ++ * Copyright (C) 2006-2010 Nigel Cunningham (nigel at tuxonice net) ++ * ++ * This file is released under the GPLv2. ++ * ++ * Declarations for routines for handling pagesets. ++ */ ++ ++#ifndef KERNEL_POWER_PAGEDIR_H ++#define KERNEL_POWER_PAGEDIR_H ++ ++/* Pagedir ++ * ++ * Contains the metadata for a set of pages saved in the image. ++ */ ++ ++struct pagedir { ++ int id; ++ unsigned long size; ++#ifdef CONFIG_HIGHMEM ++ unsigned long size_high; ++#endif ++}; ++ ++#ifdef CONFIG_HIGHMEM ++#define get_highmem_size(pagedir) (pagedir.size_high) ++#define set_highmem_size(pagedir, sz) do { pagedir.size_high = sz; } while (0) ++#define inc_highmem_size(pagedir) do { pagedir.size_high++; } while (0) ++#define get_lowmem_size(pagedir) (pagedir.size - pagedir.size_high) ++#else ++#define get_highmem_size(pagedir) (0) ++#define set_highmem_size(pagedir, sz) do { } while (0) ++#define inc_highmem_size(pagedir) do { } while (0) ++#define get_lowmem_size(pagedir) (pagedir.size) ++#endif ++ ++extern struct pagedir pagedir1, pagedir2; ++ ++extern void toi_copy_pageset1(void); ++ ++extern int toi_get_pageset1_load_addresses(void); ++ ++extern unsigned long __toi_get_nonconflicting_page(void); ++struct page *___toi_get_nonconflicting_page(int can_be_highmem); ++ ++extern void toi_reset_alt_image_pageset2_pfn(void); ++extern int add_boot_kernel_data_pbe(void); ++#endif +diff --git a/kernel/power/tuxonice_pageflags.c b/kernel/power/tuxonice_pageflags.c +new file mode 100644 +index 0000000..e9ec5b5 +--- /dev/null ++++ b/kernel/power/tuxonice_pageflags.c +@@ -0,0 +1,28 @@ ++/* ++ * kernel/power/tuxonice_pageflags.c ++ * ++ * Copyright (C) 2004-2010 Nigel Cunningham (nigel at tuxonice net) ++ * ++ * This file is released under the GPLv2. ++ * ++ * Routines for serialising and relocating pageflags in which we ++ * store our image metadata. ++ */ ++ ++#include ++#include "tuxonice_pageflags.h" ++#include "power.h" ++ ++int toi_pageflags_space_needed(void) ++{ ++ int total = 0; ++ struct bm_block *bb; ++ ++ total = sizeof(unsigned int); ++ ++ list_for_each_entry(bb, &pageset1_map->blocks, hook) ++ total += 2 * sizeof(unsigned long) + PAGE_SIZE; ++ ++ return total; ++} ++EXPORT_SYMBOL_GPL(toi_pageflags_space_needed); +diff --git a/kernel/power/tuxonice_pageflags.h b/kernel/power/tuxonice_pageflags.h +new file mode 100644 +index 0000000..d5aa7b1 +--- /dev/null ++++ b/kernel/power/tuxonice_pageflags.h +@@ -0,0 +1,72 @@ ++/* ++ * kernel/power/tuxonice_pageflags.h ++ * ++ * Copyright (C) 2004-2010 Nigel Cunningham (nigel at tuxonice net) ++ * ++ * This file is released under the GPLv2. ++ */ ++ ++#ifndef KERNEL_POWER_TUXONICE_PAGEFLAGS_H ++#define KERNEL_POWER_TUXONICE_PAGEFLAGS_H ++ ++extern struct memory_bitmap *pageset1_map; ++extern struct memory_bitmap *pageset1_copy_map; ++extern struct memory_bitmap *pageset2_map; ++extern struct memory_bitmap *page_resave_map; ++extern struct memory_bitmap *io_map; ++extern struct memory_bitmap *nosave_map; ++extern struct memory_bitmap *free_map; ++ ++#define PagePageset1(page) \ ++ (memory_bm_test_bit(pageset1_map, page_to_pfn(page))) ++#define SetPagePageset1(page) \ ++ (memory_bm_set_bit(pageset1_map, page_to_pfn(page))) ++#define ClearPagePageset1(page) \ ++ (memory_bm_clear_bit(pageset1_map, page_to_pfn(page))) ++ ++#define PagePageset1Copy(page) \ ++ (memory_bm_test_bit(pageset1_copy_map, page_to_pfn(page))) ++#define SetPagePageset1Copy(page) \ ++ (memory_bm_set_bit(pageset1_copy_map, page_to_pfn(page))) ++#define ClearPagePageset1Copy(page) \ ++ (memory_bm_clear_bit(pageset1_copy_map, page_to_pfn(page))) ++ ++#define PagePageset2(page) \ ++ (memory_bm_test_bit(pageset2_map, page_to_pfn(page))) ++#define SetPagePageset2(page) \ ++ (memory_bm_set_bit(pageset2_map, page_to_pfn(page))) ++#define ClearPagePageset2(page) \ ++ (memory_bm_clear_bit(pageset2_map, page_to_pfn(page))) ++ ++#define PageWasRW(page) \ ++ (memory_bm_test_bit(pageset2_map, page_to_pfn(page))) ++#define SetPageWasRW(page) \ ++ (memory_bm_set_bit(pageset2_map, page_to_pfn(page))) ++#define ClearPageWasRW(page) \ ++ (memory_bm_clear_bit(pageset2_map, page_to_pfn(page))) ++ ++#define PageResave(page) (page_resave_map ? \ ++ memory_bm_test_bit(page_resave_map, page_to_pfn(page)) : 0) ++#define SetPageResave(page) \ ++ (memory_bm_set_bit(page_resave_map, page_to_pfn(page))) ++#define ClearPageResave(page) \ ++ (memory_bm_clear_bit(page_resave_map, page_to_pfn(page))) ++ ++#define PageNosave(page) (nosave_map ? \ ++ memory_bm_test_bit(nosave_map, page_to_pfn(page)) : 0) ++#define SetPageNosave(page) \ ++ (memory_bm_set_bit(nosave_map, page_to_pfn(page))) ++#define ClearPageNosave(page) \ ++ (memory_bm_clear_bit(nosave_map, page_to_pfn(page))) ++ ++#define PageNosaveFree(page) (free_map ? \ ++ memory_bm_test_bit(free_map, page_to_pfn(page)) : 0) ++#define SetPageNosaveFree(page) \ ++ (memory_bm_set_bit(free_map, page_to_pfn(page))) ++#define ClearPageNosaveFree(page) \ ++ (memory_bm_clear_bit(free_map, page_to_pfn(page))) ++ ++extern void save_pageflags(struct memory_bitmap *pagemap); ++extern int load_pageflags(struct memory_bitmap *pagemap); ++extern int toi_pageflags_space_needed(void); ++#endif +diff --git a/kernel/power/tuxonice_power_off.c b/kernel/power/tuxonice_power_off.c +new file mode 100644 +index 0000000..07e39c0 +--- /dev/null ++++ b/kernel/power/tuxonice_power_off.c +@@ -0,0 +1,285 @@ ++/* ++ * kernel/power/tuxonice_power_off.c ++ * ++ * Copyright (C) 2006-2010 Nigel Cunningham (nigel at tuxonice net) ++ * ++ * This file is released under the GPLv2. ++ * ++ * Support for powering down. ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include "tuxonice.h" ++#include "tuxonice_ui.h" ++#include "tuxonice_power_off.h" ++#include "tuxonice_sysfs.h" ++#include "tuxonice_modules.h" ++#include "tuxonice_io.h" ++ ++unsigned long toi_poweroff_method; /* 0 - Kernel power off */ ++EXPORT_SYMBOL_GPL(toi_poweroff_method); ++ ++static int wake_delay; ++static char lid_state_file[256], wake_alarm_dir[256]; ++static struct file *lid_file, *alarm_file, *epoch_file; ++static int post_wake_state = -1; ++ ++static int did_suspend_to_both; ++ ++/* ++ * __toi_power_down ++ * Functionality : Powers down or reboots the computer once the image ++ * has been written to disk. ++ * Key Assumptions : Able to reboot/power down via code called or that ++ * the warning emitted if the calls fail will be visible ++ * to the user (ie printk resumes devices). ++ */ ++ ++static void __toi_power_down(int method) ++{ ++ int error; ++ ++ toi_cond_pause(1, test_action_state(TOI_REBOOT) ? "Ready to reboot." : ++ "Powering down."); ++ ++ if (test_result_state(TOI_ABORTED)) ++ goto out; ++ ++ if (test_action_state(TOI_REBOOT)) ++ kernel_restart(NULL); ++ ++ switch (method) { ++ case 0: ++ break; ++ case 3: ++ /* ++ * Re-read the overwritten part of pageset2 to make post-resume ++ * faster. ++ */ ++ if (read_pageset2(1)) ++ panic("Attempt to reload pagedir 2 failed. " ++ "Try rebooting."); ++ ++ pm_prepare_console(); ++ ++ error = pm_notifier_call_chain(PM_SUSPEND_PREPARE); ++ if (!error) { ++ error = suspend_devices_and_enter(PM_SUSPEND_MEM); ++ if (!error) ++ did_suspend_to_both = 1; ++ } ++ pm_notifier_call_chain(PM_POST_SUSPEND); ++ pm_restore_console(); ++ ++ /* Success - we're now post-resume-from-ram */ ++ if (did_suspend_to_both) ++ return; ++ ++ /* Failed to suspend to ram - do normal power off */ ++ break; ++ case 4: ++ /* ++ * If succeeds, doesn't return. If fails, do a simple ++ * powerdown. ++ */ ++ hibernation_platform_enter(); ++ break; ++ case 5: ++ /* Historic entry only now */ ++ break; ++ } ++ ++ if (method && method != 5) ++ toi_cond_pause(1, ++ "Falling back to alternate power off method."); ++ ++ if (test_result_state(TOI_ABORTED)) ++ goto out; ++ ++ kernel_power_off(); ++ kernel_halt(); ++ toi_cond_pause(1, "Powerdown failed."); ++ while (1) ++ cpu_relax(); ++ ++out: ++ if (read_pageset2(1)) ++ panic("Attempt to reload pagedir 2 failed. Try rebooting."); ++ return; ++} ++ ++#define CLOSE_FILE(file) \ ++ if (file) { \ ++ filp_close(file, NULL); file = NULL; \ ++ } ++ ++static void powerdown_cleanup(int toi_or_resume) ++{ ++ if (!toi_or_resume) ++ return; ++ ++ CLOSE_FILE(lid_file); ++ CLOSE_FILE(alarm_file); ++ CLOSE_FILE(epoch_file); ++} ++ ++static void open_file(char *format, char *arg, struct file **var, int mode, ++ char *desc) ++{ ++ char buf[256]; ++ ++ if (strlen(arg)) { ++ sprintf(buf, format, arg); ++ *var = filp_open(buf, mode, 0); ++ if (IS_ERR(*var) || !*var) { ++ printk(KERN_INFO "Failed to open %s file '%s' (%p).\n", ++ desc, buf, *var); ++ *var = NULL; ++ } ++ } ++} ++ ++static int powerdown_init(int toi_or_resume) ++{ ++ if (!toi_or_resume) ++ return 0; ++ ++ did_suspend_to_both = 0; ++ ++ open_file("/proc/acpi/button/%s/state", lid_state_file, &lid_file, ++ O_RDONLY, "lid"); ++ ++ if (strlen(wake_alarm_dir)) { ++ open_file("/sys/class/rtc/%s/wakealarm", wake_alarm_dir, ++ &alarm_file, O_WRONLY, "alarm"); ++ ++ open_file("/sys/class/rtc/%s/since_epoch", wake_alarm_dir, ++ &epoch_file, O_RDONLY, "epoch"); ++ } ++ ++ return 0; ++} ++ ++static int lid_closed(void) ++{ ++ char array[25]; ++ ssize_t size; ++ loff_t pos = 0; ++ ++ if (!lid_file) ++ return 0; ++ ++ size = vfs_read(lid_file, (char __user *) array, 25, &pos); ++ if ((int) size < 1) { ++ printk(KERN_INFO "Failed to read lid state file (%d).\n", ++ (int) size); ++ return 0; ++ } ++ ++ if (!strcmp(array, "state: closed\n")) ++ return 1; ++ ++ return 0; ++} ++ ++static void write_alarm_file(int value) ++{ ++ ssize_t size; ++ char buf[40]; ++ loff_t pos = 0; ++ ++ if (!alarm_file) ++ return; ++ ++ sprintf(buf, "%d\n", value); ++ ++ size = vfs_write(alarm_file, (char __user *)buf, strlen(buf), &pos); ++ ++ if (size < 0) ++ printk(KERN_INFO "Error %d writing alarm value %s.\n", ++ (int) size, buf); ++} ++ ++/** ++ * toi_check_resleep: See whether to powerdown again after waking. ++ * ++ * After waking, check whether we should powerdown again in a (usually ++ * different) way. We only do this if the lid switch is still closed. ++ */ ++void toi_check_resleep(void) ++{ ++ /* We only return if we suspended to ram and woke. */ ++ if (lid_closed() && post_wake_state >= 0) ++ __toi_power_down(post_wake_state); ++} ++ ++void toi_power_down(void) ++{ ++ if (alarm_file && wake_delay) { ++ char array[25]; ++ loff_t pos = 0; ++ size_t size = vfs_read(epoch_file, (char __user *) array, 25, ++ &pos); ++ ++ if (((int) size) < 1) ++ printk(KERN_INFO "Failed to read epoch file (%d).\n", ++ (int) size); ++ else { ++ unsigned long since_epoch; ++ if (!strict_strtoul(array, 0, &since_epoch)) { ++ /* Clear any wakeup time. */ ++ write_alarm_file(0); ++ ++ /* Set new wakeup time. */ ++ write_alarm_file(since_epoch + wake_delay); ++ } ++ } ++ } ++ ++ __toi_power_down(toi_poweroff_method); ++ ++ toi_check_resleep(); ++} ++EXPORT_SYMBOL_GPL(toi_power_down); ++ ++static struct toi_sysfs_data sysfs_params[] = { ++#if defined(CONFIG_ACPI) ++ SYSFS_STRING("lid_file", SYSFS_RW, lid_state_file, 256, 0, NULL), ++ SYSFS_INT("wake_delay", SYSFS_RW, &wake_delay, 0, INT_MAX, 0, NULL), ++ SYSFS_STRING("wake_alarm_dir", SYSFS_RW, wake_alarm_dir, 256, 0, NULL), ++ SYSFS_INT("post_wake_state", SYSFS_RW, &post_wake_state, -1, 5, 0, ++ NULL), ++ SYSFS_UL("powerdown_method", SYSFS_RW, &toi_poweroff_method, 0, 5, 0), ++ SYSFS_INT("did_suspend_to_both", SYSFS_READONLY, &did_suspend_to_both, ++ 0, 0, 0, NULL) ++#endif ++}; ++ ++static struct toi_module_ops powerdown_ops = { ++ .type = MISC_HIDDEN_MODULE, ++ .name = "poweroff", ++ .initialise = powerdown_init, ++ .cleanup = powerdown_cleanup, ++ .directory = "[ROOT]", ++ .module = THIS_MODULE, ++ .sysfs_data = sysfs_params, ++ .num_sysfs_entries = sizeof(sysfs_params) / ++ sizeof(struct toi_sysfs_data), ++}; ++ ++int toi_poweroff_init(void) ++{ ++ return toi_register_module(&powerdown_ops); ++} ++ ++void toi_poweroff_exit(void) ++{ ++ toi_unregister_module(&powerdown_ops); ++} +diff --git a/kernel/power/tuxonice_power_off.h b/kernel/power/tuxonice_power_off.h +new file mode 100644 +index 0000000..9aa0ea8 +--- /dev/null ++++ b/kernel/power/tuxonice_power_off.h +@@ -0,0 +1,24 @@ ++/* ++ * kernel/power/tuxonice_power_off.h ++ * ++ * Copyright (C) 2006-2010 Nigel Cunningham (nigel at tuxonice net) ++ * ++ * This file is released under the GPLv2. ++ * ++ * Support for the powering down. ++ */ ++ ++int toi_pm_state_finish(void); ++void toi_power_down(void); ++extern unsigned long toi_poweroff_method; ++int toi_poweroff_init(void); ++void toi_poweroff_exit(void); ++void toi_check_resleep(void); ++ ++extern int platform_begin(int platform_mode); ++extern int platform_pre_snapshot(int platform_mode); ++extern void platform_leave(int platform_mode); ++extern void platform_end(int platform_mode); ++extern void platform_finish(int platform_mode); ++extern int platform_pre_restore(int platform_mode); ++extern void platform_restore_cleanup(int platform_mode); +diff --git a/kernel/power/tuxonice_prepare_image.c b/kernel/power/tuxonice_prepare_image.c +new file mode 100644 +index 0000000..e58225e +--- /dev/null ++++ b/kernel/power/tuxonice_prepare_image.c +@@ -0,0 +1,1093 @@ ++/* ++ * kernel/power/tuxonice_prepare_image.c ++ * ++ * Copyright (C) 2003-2010 Nigel Cunningham (nigel at tuxonice net) ++ * ++ * This file is released under the GPLv2. ++ * ++ * We need to eat memory until we can: ++ * 1. Perform the save without changing anything (RAM_NEEDED < #pages) ++ * 2. Fit it all in available space (toiActiveAllocator->available_space() >= ++ * main_storage_needed()) ++ * 3. Reload the pagedir and pageset1 to places that don't collide with their ++ * final destinations, not knowing to what extent the resumed kernel will ++ * overlap with the one loaded at boot time. I think the resumed kernel ++ * should overlap completely, but I don't want to rely on this as it is ++ * an unproven assumption. We therefore assume there will be no overlap at ++ * all (worse case). ++ * 4. Meet the user's requested limit (if any) on the size of the image. ++ * The limit is in MB, so pages/256 (assuming 4K pages). ++ * ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++ ++#include "tuxonice_pageflags.h" ++#include "tuxonice_modules.h" ++#include "tuxonice_io.h" ++#include "tuxonice_ui.h" ++#include "tuxonice_prepare_image.h" ++#include "tuxonice.h" ++#include "tuxonice_extent.h" ++#include "tuxonice_checksum.h" ++#include "tuxonice_sysfs.h" ++#include "tuxonice_alloc.h" ++#include "tuxonice_atomic_copy.h" ++ ++static unsigned long num_nosave, main_storage_allocated, storage_limit, ++ header_storage_needed; ++unsigned long extra_pd1_pages_allowance = ++ CONFIG_TOI_DEFAULT_EXTRA_PAGES_ALLOWANCE; ++long image_size_limit; ++static int no_ps2_needed; ++ ++struct attention_list { ++ struct task_struct *task; ++ struct attention_list *next; ++}; ++ ++static struct attention_list *attention_list; ++ ++#define PAGESET1 0 ++#define PAGESET2 1 ++ ++void free_attention_list(void) ++{ ++ struct attention_list *last = NULL; ++ ++ while (attention_list) { ++ last = attention_list; ++ attention_list = attention_list->next; ++ toi_kfree(6, last, sizeof(*last)); ++ } ++} ++ ++static int build_attention_list(void) ++{ ++ int i, task_count = 0; ++ struct task_struct *p; ++ struct attention_list *next; ++ ++ /* ++ * Count all userspace process (with task->mm) marked PF_NOFREEZE. ++ */ ++ read_lock(&tasklist_lock); ++ for_each_process(p) ++ if ((p->flags & PF_NOFREEZE) || p == current) ++ task_count++; ++ read_unlock(&tasklist_lock); ++ ++ /* ++ * Allocate attention list structs. ++ */ ++ for (i = 0; i < task_count; i++) { ++ struct attention_list *this = ++ toi_kzalloc(6, sizeof(struct attention_list), ++ TOI_WAIT_GFP); ++ if (!this) { ++ printk(KERN_INFO "Failed to allocate slab for " ++ "attention list.\n"); ++ free_attention_list(); ++ return 1; ++ } ++ this->next = NULL; ++ if (attention_list) ++ this->next = attention_list; ++ attention_list = this; ++ } ++ ++ next = attention_list; ++ read_lock(&tasklist_lock); ++ for_each_process(p) ++ if ((p->flags & PF_NOFREEZE) || p == current) { ++ next->task = p; ++ next = next->next; ++ } ++ read_unlock(&tasklist_lock); ++ return 0; ++} ++ ++static void pageset2_full(void) ++{ ++ struct zone *zone; ++ struct page *page; ++ unsigned long flags; ++ int i; ++ ++ for_each_populated_zone(zone) { ++ spin_lock_irqsave(&zone->lru_lock, flags); ++ for_each_lru(i) { ++ if (!zone_page_state(zone, NR_LRU_BASE + i)) ++ continue; ++ ++ list_for_each_entry(page, &zone->lru[i].list, lru) { ++ struct address_space *mapping; ++ ++ mapping = page_mapping(page); ++ if (!mapping || !mapping->host || ++ !(mapping->host->i_flags & S_ATOMIC_COPY)) ++ SetPagePageset2(page); ++ } ++ } ++ spin_unlock_irqrestore(&zone->lru_lock, flags); ++ } ++} ++ ++/* ++ * toi_mark_task_as_pageset ++ * Functionality : Marks all the saveable pages belonging to a given process ++ * as belonging to a particular pageset. ++ */ ++ ++static void toi_mark_task_as_pageset(struct task_struct *t, int pageset2) ++{ ++ struct vm_area_struct *vma; ++ struct mm_struct *mm; ++ ++ mm = t->active_mm; ++ ++ if (!mm || !mm->mmap) ++ return; ++ ++ if (!irqs_disabled()) ++ down_read(&mm->mmap_sem); ++ ++ for (vma = mm->mmap; vma; vma = vma->vm_next) { ++ unsigned long posn; ++ ++ if (!vma->vm_start || ++ vma->vm_flags & (VM_IO | VM_RESERVED | VM_PFNMAP)) ++ continue; ++ ++ for (posn = vma->vm_start; posn < vma->vm_end; ++ posn += PAGE_SIZE) { ++ struct page *page = follow_page(vma, posn, 0); ++ struct address_space *mapping; ++ ++ if (!page || !pfn_valid(page_to_pfn(page))) ++ continue; ++ ++ mapping = page_mapping(page); ++ if (mapping && mapping->host && ++ mapping->host->i_flags & S_ATOMIC_COPY) ++ continue; ++ ++ if (pageset2) ++ SetPagePageset2(page); ++ else { ++ ClearPagePageset2(page); ++ SetPagePageset1(page); ++ } ++ } ++ } ++ ++ if (!irqs_disabled()) ++ up_read(&mm->mmap_sem); ++} ++ ++static void mark_tasks(int pageset) ++{ ++ struct task_struct *p; ++ ++ read_lock(&tasklist_lock); ++ for_each_process(p) { ++ if (!p->mm) ++ continue; ++ ++ if (p->flags & PF_KTHREAD) ++ continue; ++ ++ toi_mark_task_as_pageset(p, pageset); ++ } ++ read_unlock(&tasklist_lock); ++ ++} ++ ++/* mark_pages_for_pageset2 ++ * ++ * Description: Mark unshared pages in processes not needed for hibernate as ++ * being able to be written out in a separate pagedir. ++ * HighMem pages are simply marked as pageset2. They won't be ++ * needed during hibernate. ++ */ ++ ++static void toi_mark_pages_for_pageset2(void) ++{ ++ struct attention_list *this = attention_list; ++ ++ memory_bm_clear(pageset2_map); ++ ++ if (test_action_state(TOI_NO_PAGESET2) || no_ps2_needed) ++ return; ++ ++ if (test_action_state(TOI_PAGESET2_FULL)) ++ pageset2_full(); ++ else ++ mark_tasks(PAGESET2); ++ ++ /* ++ * Because the tasks in attention_list are ones related to hibernating, ++ * we know that they won't go away under us. ++ */ ++ ++ while (this) { ++ if (!test_result_state(TOI_ABORTED)) ++ toi_mark_task_as_pageset(this->task, PAGESET1); ++ this = this->next; ++ } ++} ++ ++/* ++ * The atomic copy of pageset1 is stored in pageset2 pages. ++ * But if pageset1 is larger (normally only just after boot), ++ * we need to allocate extra pages to store the atomic copy. ++ * The following data struct and functions are used to handle ++ * the allocation and freeing of that memory. ++ */ ++ ++static unsigned long extra_pages_allocated; ++ ++struct extras { ++ struct page *page; ++ int order; ++ struct extras *next; ++}; ++ ++static struct extras *extras_list; ++ ++/* toi_free_extra_pagedir_memory ++ * ++ * Description: Free previously allocated extra pagedir memory. ++ */ ++void toi_free_extra_pagedir_memory(void) ++{ ++ /* Free allocated pages */ ++ while (extras_list) { ++ struct extras *this = extras_list; ++ int i; ++ ++ extras_list = this->next; ++ ++ for (i = 0; i < (1 << this->order); i++) ++ ClearPageNosave(this->page + i); ++ ++ toi_free_pages(9, this->page, this->order); ++ toi_kfree(7, this, sizeof(*this)); ++ } ++ ++ extra_pages_allocated = 0; ++} ++ ++/* toi_allocate_extra_pagedir_memory ++ * ++ * Description: Allocate memory for making the atomic copy of pagedir1 in the ++ * case where it is bigger than pagedir2. ++ * Arguments: int num_to_alloc: Number of extra pages needed. ++ * Result: int. Number of extra pages we now have allocated. ++ */ ++static int toi_allocate_extra_pagedir_memory(int extra_pages_needed) ++{ ++ int j, order, num_to_alloc = extra_pages_needed - extra_pages_allocated; ++ gfp_t flags = TOI_ATOMIC_GFP; ++ ++ if (num_to_alloc < 1) ++ return 0; ++ ++ order = fls(num_to_alloc); ++ if (order >= MAX_ORDER) ++ order = MAX_ORDER - 1; ++ ++ while (num_to_alloc) { ++ struct page *newpage; ++ unsigned long virt; ++ struct extras *extras_entry; ++ ++ while ((1 << order) > num_to_alloc) ++ order--; ++ ++ extras_entry = (struct extras *) toi_kzalloc(7, ++ sizeof(struct extras), TOI_ATOMIC_GFP); ++ ++ if (!extras_entry) ++ return extra_pages_allocated; ++ ++ virt = toi_get_free_pages(9, flags, order); ++ while (!virt && order) { ++ order--; ++ virt = toi_get_free_pages(9, flags, order); ++ } ++ ++ if (!virt) { ++ toi_kfree(7, extras_entry, sizeof(*extras_entry)); ++ return extra_pages_allocated; ++ } ++ ++ newpage = virt_to_page(virt); ++ ++ extras_entry->page = newpage; ++ extras_entry->order = order; ++ extras_entry->next = NULL; ++ ++ if (extras_list) ++ extras_entry->next = extras_list; ++ ++ extras_list = extras_entry; ++ ++ for (j = 0; j < (1 << order); j++) { ++ SetPageNosave(newpage + j); ++ SetPagePageset1Copy(newpage + j); ++ } ++ ++ extra_pages_allocated += (1 << order); ++ num_to_alloc -= (1 << order); ++ } ++ ++ return extra_pages_allocated; ++} ++ ++/* ++ * real_nr_free_pages: Count pcp pages for a zone type or all zones ++ * (-1 for all, otherwise zone_idx() result desired). ++ */ ++unsigned long real_nr_free_pages(unsigned long zone_idx_mask) ++{ ++ struct zone *zone; ++ int result = 0, cpu; ++ ++ /* PCP lists */ ++ for_each_populated_zone(zone) { ++ if (!(zone_idx_mask & (1 << zone_idx(zone)))) ++ continue; ++ ++ for_each_online_cpu(cpu) { ++ struct per_cpu_pageset *pset = zone_pcp(zone, cpu); ++ struct per_cpu_pages *pcp = &pset->pcp; ++ result += pcp->count; ++ } ++ ++ result += zone_page_state(zone, NR_FREE_PAGES); ++ } ++ return result; ++} ++EXPORT_SYMBOL_GPL(real_nr_free_pages); ++ ++/* ++ * Discover how much extra memory will be required by the drivers ++ * when they're asked to hibernate. We can then ensure that amount ++ * of memory is available when we really want it. ++ */ ++static void get_extra_pd1_allowance(void) ++{ ++ unsigned long orig_num_free = real_nr_free_pages(all_zones_mask), final; ++ ++ toi_prepare_status(CLEAR_BAR, "Finding allowance for drivers."); ++ ++ if (toi_go_atomic(PMSG_FREEZE, 1)) ++ return; ++ ++ final = real_nr_free_pages(all_zones_mask); ++ toi_end_atomic(ATOMIC_ALL_STEPS, 1, 0); ++ ++ extra_pd1_pages_allowance = (orig_num_free > final) ? ++ orig_num_free - final + MIN_EXTRA_PAGES_ALLOWANCE : ++ MIN_EXTRA_PAGES_ALLOWANCE; ++} ++ ++/* ++ * Amount of storage needed, possibly taking into account the ++ * expected compression ratio and possibly also ignoring our ++ * allowance for extra pages. ++ */ ++static unsigned long main_storage_needed(int use_ecr, ++ int ignore_extra_pd1_allow) ++{ ++ return (pagedir1.size + pagedir2.size + ++ (ignore_extra_pd1_allow ? 0 : extra_pd1_pages_allowance)) * ++ (use_ecr ? toi_expected_compression_ratio() : 100) / 100; ++} ++ ++/* ++ * Storage needed for the image header, in bytes until the return. ++ */ ++unsigned long get_header_storage_needed(void) ++{ ++ unsigned long bytes = sizeof(struct toi_header) + ++ toi_header_storage_for_modules() + ++ toi_pageflags_space_needed() + ++ fs_info_space_needed(); ++ ++ return DIV_ROUND_UP(bytes, PAGE_SIZE); ++} ++EXPORT_SYMBOL_GPL(get_header_storage_needed); ++ ++/* ++ * When freeing memory, pages from either pageset might be freed. ++ * ++ * When seeking to free memory to be able to hibernate, for every ps1 page ++ * freed, we need 2 less pages for the atomic copy because there is one less ++ * page to copy and one more page into which data can be copied. ++ * ++ * Freeing ps2 pages saves us nothing directly. No more memory is available ++ * for the atomic copy. Indirectly, a ps1 page might be freed (slab?), but ++ * that's too much work to figure out. ++ * ++ * => ps1_to_free functions ++ * ++ * Of course if we just want to reduce the image size, because of storage ++ * limitations or an image size limit either ps will do. ++ * ++ * => any_to_free function ++ */ ++ ++static unsigned long lowpages_usable_for_highmem_copy(void) ++{ ++ unsigned long needed = get_lowmem_size(pagedir1) + ++ extra_pd1_pages_allowance + MIN_FREE_RAM + ++ toi_memory_for_modules(0), ++ available = get_lowmem_size(pagedir2) + ++ real_nr_free_low_pages() + extra_pages_allocated; ++ ++ return available > needed ? available - needed : 0; ++} ++ ++static unsigned long highpages_ps1_to_free(void) ++{ ++ unsigned long need = get_highmem_size(pagedir1), ++ available = get_highmem_size(pagedir2) + ++ real_nr_free_high_pages() + ++ lowpages_usable_for_highmem_copy(); ++ ++ return need > available ? DIV_ROUND_UP(need - available, 2) : 0; ++} ++ ++static unsigned long lowpages_ps1_to_free(void) ++{ ++ unsigned long needed = get_lowmem_size(pagedir1) + ++ extra_pd1_pages_allowance + MIN_FREE_RAM + ++ toi_memory_for_modules(0), ++ available = get_lowmem_size(pagedir2) + ++ real_nr_free_low_pages() + extra_pages_allocated; ++ ++ return needed > available ? DIV_ROUND_UP(needed - available, 2) : 0; ++} ++ ++static unsigned long current_image_size(void) ++{ ++ return pagedir1.size + pagedir2.size + header_storage_needed; ++} ++ ++static unsigned long storage_still_required(void) ++{ ++ unsigned long needed = main_storage_needed(1, 1); ++ return needed > storage_limit ? needed - storage_limit : 0; ++} ++ ++static unsigned long ram_still_required(void) ++{ ++ unsigned long needed = MIN_FREE_RAM + toi_memory_for_modules(0) + ++ 2 * extra_pd1_pages_allowance, ++ available = real_nr_free_low_pages(); ++ return needed > available ? needed - available : 0; ++} ++ ++static unsigned long any_to_free(int use_image_size_limit) ++{ ++ int use_soft_limit = use_image_size_limit && image_size_limit > 0; ++ unsigned long current_size = current_image_size(), ++ soft_limit = use_soft_limit ? (image_size_limit << 8) : 0, ++ to_free = use_soft_limit ? (current_size > soft_limit ? ++ current_size - soft_limit : 0) : 0, ++ storage_limit = storage_still_required(), ++ ram_limit = ram_still_required(), ++ first_max = max(to_free, storage_limit); ++ ++ return max(first_max, ram_limit); ++} ++ ++static int need_pageset2(void) ++{ ++ return (real_nr_free_low_pages() + extra_pages_allocated - ++ 2 * extra_pd1_pages_allowance - MIN_FREE_RAM - ++ toi_memory_for_modules(0) - pagedir1.size) < pagedir2.size; ++} ++ ++/* amount_needed ++ * ++ * Calculates the amount by which the image size needs to be reduced to meet ++ * our constraints. ++ */ ++static unsigned long amount_needed(int use_image_size_limit) ++{ ++ return max(highpages_ps1_to_free() + lowpages_ps1_to_free(), ++ any_to_free(use_image_size_limit)); ++} ++ ++static int image_not_ready(int use_image_size_limit) ++{ ++ toi_message(TOI_EAT_MEMORY, TOI_LOW, 1, ++ "Amount still needed (%lu) > 0:%u," ++ " Storage allocd: %lu < %lu: %u.\n", ++ amount_needed(use_image_size_limit), ++ (amount_needed(use_image_size_limit) > 0), ++ main_storage_allocated, ++ main_storage_needed(1, 1), ++ main_storage_allocated < main_storage_needed(1, 1)); ++ ++ toi_cond_pause(0, NULL); ++ ++ return (amount_needed(use_image_size_limit) > 0) || ++ main_storage_allocated < main_storage_needed(1, 1); ++} ++ ++static void display_failure_reason(int tries_exceeded) ++{ ++ unsigned long storage_required = storage_still_required(), ++ ram_required = ram_still_required(), ++ high_ps1 = highpages_ps1_to_free(), ++ low_ps1 = lowpages_ps1_to_free(); ++ ++ printk(KERN_INFO "Failed to prepare the image because...\n"); ++ ++ if (!storage_limit) { ++ printk(KERN_INFO "- You need some storage available to be " ++ "able to hibernate.\n"); ++ return; ++ } ++ ++ if (tries_exceeded) ++ printk(KERN_INFO "- The maximum number of iterations was " ++ "reached without successfully preparing the " ++ "image.\n"); ++ ++ if (storage_required) { ++ printk(KERN_INFO " - We need at least %lu pages of storage " ++ "(ignoring the header), but only have %lu.\n", ++ main_storage_needed(1, 1), ++ main_storage_allocated); ++ set_abort_result(TOI_INSUFFICIENT_STORAGE); ++ } ++ ++ if (ram_required) { ++ printk(KERN_INFO " - We need %lu more free pages of low " ++ "memory.\n", ram_required); ++ printk(KERN_INFO " Minimum free : %8d\n", MIN_FREE_RAM); ++ printk(KERN_INFO " + Reqd. by modules : %8lu\n", ++ toi_memory_for_modules(0)); ++ printk(KERN_INFO " + 2 * extra allow : %8lu\n", ++ 2 * extra_pd1_pages_allowance); ++ printk(KERN_INFO " - Currently free : %8lu\n", ++ real_nr_free_low_pages()); ++ printk(KERN_INFO " : ========\n"); ++ printk(KERN_INFO " Still needed : %8lu\n", ++ ram_required); ++ ++ /* Print breakdown of memory needed for modules */ ++ toi_memory_for_modules(1); ++ set_abort_result(TOI_UNABLE_TO_FREE_ENOUGH_MEMORY); ++ } ++ ++ if (high_ps1) { ++ printk(KERN_INFO "- We need to free %lu highmem pageset 1 " ++ "pages.\n", high_ps1); ++ set_abort_result(TOI_UNABLE_TO_FREE_ENOUGH_MEMORY); ++ } ++ ++ if (low_ps1) { ++ printk(KERN_INFO " - We need to free %ld lowmem pageset 1 " ++ "pages.\n", low_ps1); ++ set_abort_result(TOI_UNABLE_TO_FREE_ENOUGH_MEMORY); ++ } ++} ++ ++static void display_stats(int always, int sub_extra_pd1_allow) ++{ ++ char buffer[255]; ++ snprintf(buffer, 254, ++ "Free:%lu(%lu). Sets:%lu(%lu),%lu(%lu). " ++ "Nosave:%lu-%lu=%lu. Storage:%lu/%lu(%lu=>%lu). " ++ "Needed:%lu,%lu,%lu(%u,%lu,%lu,%ld) (PS2:%s)\n", ++ ++ /* Free */ ++ real_nr_free_pages(all_zones_mask), ++ real_nr_free_low_pages(), ++ ++ /* Sets */ ++ pagedir1.size, pagedir1.size - get_highmem_size(pagedir1), ++ pagedir2.size, pagedir2.size - get_highmem_size(pagedir2), ++ ++ /* Nosave */ ++ num_nosave, extra_pages_allocated, ++ num_nosave - extra_pages_allocated, ++ ++ /* Storage */ ++ main_storage_allocated, ++ storage_limit, ++ main_storage_needed(1, sub_extra_pd1_allow), ++ main_storage_needed(1, 1), ++ ++ /* Needed */ ++ lowpages_ps1_to_free(), highpages_ps1_to_free(), ++ any_to_free(1), ++ MIN_FREE_RAM, toi_memory_for_modules(0), ++ extra_pd1_pages_allowance, ++ image_size_limit, ++ ++ need_pageset2() ? "yes" : "no"); ++ ++ if (always) ++ printk("%s", buffer); ++ else ++ toi_message(TOI_EAT_MEMORY, TOI_MEDIUM, 1, buffer); ++} ++ ++/* generate_free_page_map ++ * ++ * Description: This routine generates a bitmap of free pages from the ++ * lists used by the memory manager. We then use the bitmap ++ * to quickly calculate which pages to save and in which ++ * pagesets. ++ */ ++static void generate_free_page_map(void) ++{ ++ int order, cpu, t; ++ unsigned long flags, i; ++ struct zone *zone; ++ struct list_head *curr; ++ unsigned long pfn; ++ struct page *page; ++ ++ for_each_populated_zone(zone) { ++ ++ if (!zone->spanned_pages) ++ continue; ++ ++ spin_lock_irqsave(&zone->lock, flags); ++ ++ for (i = 0; i < zone->spanned_pages; i++) { ++ pfn = ZONE_START(zone) + i; ++ ++ if (!pfn_valid(pfn)) ++ continue; ++ ++ page = pfn_to_page(pfn); ++ ++ ClearPageNosaveFree(page); ++ } ++ ++ for_each_migratetype_order(order, t) { ++ list_for_each(curr, ++ &zone->free_area[order].free_list[t]) { ++ unsigned long j; ++ ++ pfn = page_to_pfn(list_entry(curr, struct page, ++ lru)); ++ for (j = 0; j < (1UL << order); j++) ++ SetPageNosaveFree(pfn_to_page(pfn + j)); ++ } ++ } ++ ++ for_each_online_cpu(cpu) { ++ struct per_cpu_pageset *pset = zone_pcp(zone, cpu); ++ struct per_cpu_pages *pcp = &pset->pcp; ++ struct page *page; ++ int t; ++ ++ for (t = 0; t < MIGRATE_PCPTYPES; t++) ++ list_for_each_entry(page, &pcp->lists[t], lru) ++ SetPageNosaveFree(page); ++ } ++ ++ spin_unlock_irqrestore(&zone->lock, flags); ++ } ++} ++ ++/* size_of_free_region ++ * ++ * Description: Return the number of pages that are free, beginning with and ++ * including this one. ++ */ ++static int size_of_free_region(struct zone *zone, unsigned long start_pfn) ++{ ++ unsigned long this_pfn = start_pfn, ++ end_pfn = ZONE_START(zone) + zone->spanned_pages - 1; ++ ++ while (this_pfn <= end_pfn && PageNosaveFree(pfn_to_page(this_pfn))) ++ this_pfn++; ++ ++ return this_pfn - start_pfn; ++} ++ ++/* flag_image_pages ++ * ++ * This routine generates our lists of pages to be stored in each ++ * pageset. Since we store the data using extents, and adding new ++ * extents might allocate a new extent page, this routine may well ++ * be called more than once. ++ */ ++static void flag_image_pages(int atomic_copy) ++{ ++ int num_free = 0; ++ unsigned long loop; ++ struct zone *zone; ++ ++ pagedir1.size = 0; ++ pagedir2.size = 0; ++ ++ set_highmem_size(pagedir1, 0); ++ set_highmem_size(pagedir2, 0); ++ ++ num_nosave = 0; ++ ++ memory_bm_clear(pageset1_map); ++ ++ generate_free_page_map(); ++ ++ /* ++ * Pages not to be saved are marked Nosave irrespective of being ++ * reserved. ++ */ ++ for_each_populated_zone(zone) { ++ int highmem = is_highmem(zone); ++ ++ for (loop = 0; loop < zone->spanned_pages; loop++) { ++ unsigned long pfn = ZONE_START(zone) + loop; ++ struct page *page; ++ int chunk_size; ++ ++ if (!pfn_valid(pfn)) ++ continue; ++ ++ chunk_size = size_of_free_region(zone, pfn); ++ if (chunk_size) { ++ num_free += chunk_size; ++ loop += chunk_size - 1; ++ continue; ++ } ++ ++ page = pfn_to_page(pfn); ++ ++ if (PageNosave(page)) { ++ num_nosave++; ++ continue; ++ } ++ ++ page = highmem ? saveable_highmem_page(zone, pfn) : ++ saveable_page(zone, pfn); ++ ++ if (!page) { ++ num_nosave++; ++ continue; ++ } ++ ++ if (PagePageset2(page)) { ++ pagedir2.size++; ++ if (PageHighMem(page)) ++ inc_highmem_size(pagedir2); ++ else ++ SetPagePageset1Copy(page); ++ if (PageResave(page)) { ++ SetPagePageset1(page); ++ ClearPagePageset1Copy(page); ++ pagedir1.size++; ++ if (PageHighMem(page)) ++ inc_highmem_size(pagedir1); ++ } ++ } else { ++ pagedir1.size++; ++ SetPagePageset1(page); ++ if (PageHighMem(page)) ++ inc_highmem_size(pagedir1); ++ } ++ } ++ } ++ ++ if (!atomic_copy) ++ toi_message(TOI_EAT_MEMORY, TOI_MEDIUM, 0, ++ "Count data pages: Set1 (%d) + Set2 (%d) + Nosave (%ld)" ++ " + NumFree (%d) = %d.\n", ++ pagedir1.size, pagedir2.size, num_nosave, num_free, ++ pagedir1.size + pagedir2.size + num_nosave + num_free); ++} ++ ++void toi_recalculate_image_contents(int atomic_copy) ++{ ++ memory_bm_clear(pageset1_map); ++ if (!atomic_copy) { ++ unsigned long pfn; ++ memory_bm_position_reset(pageset2_map); ++ for (pfn = memory_bm_next_pfn(pageset2_map); ++ pfn != BM_END_OF_MAP; ++ pfn = memory_bm_next_pfn(pageset2_map)) ++ ClearPagePageset1Copy(pfn_to_page(pfn)); ++ /* Need to call this before getting pageset1_size! */ ++ toi_mark_pages_for_pageset2(); ++ } ++ flag_image_pages(atomic_copy); ++ ++ if (!atomic_copy) { ++ storage_limit = toiActiveAllocator->storage_available(); ++ display_stats(0, 0); ++ } ++} ++ ++/* update_image ++ * ++ * Allocate [more] memory and storage for the image. ++ */ ++static void update_image(int ps2_recalc) ++{ ++ int old_header_req; ++ unsigned long seek, wanted, got; ++ ++ /* Include allowance for growth in pagedir1 while writing pagedir 2 */ ++ wanted = pagedir1.size + extra_pd1_pages_allowance - ++ get_lowmem_size(pagedir2); ++ if (wanted > extra_pages_allocated) { ++ got = toi_allocate_extra_pagedir_memory(wanted); ++ if (wanted < got) { ++ toi_message(TOI_EAT_MEMORY, TOI_LOW, 1, ++ "Want %d extra pages for pageset1, got %d.\n", ++ wanted, got); ++ return; ++ } ++ } ++ ++ if (ps2_recalc) ++ goto recalc; ++ ++ thaw_kernel_threads(); ++ ++ /* ++ * Allocate remaining storage space, if possible, up to the ++ * maximum we know we'll need. It's okay to allocate the ++ * maximum if the writer is the swapwriter, but ++ * we don't want to grab all available space on an NFS share. ++ * We therefore ignore the expected compression ratio here, ++ * thereby trying to allocate the maximum image size we could ++ * need (assuming compression doesn't expand the image), but ++ * don't complain if we can't get the full amount we're after. ++ */ ++ ++ do { ++ int result; ++ ++ old_header_req = header_storage_needed; ++ toiActiveAllocator->reserve_header_space(header_storage_needed); ++ ++ /* How much storage is free with the reservation applied? */ ++ storage_limit = toiActiveAllocator->storage_available(); ++ seek = min(storage_limit, main_storage_needed(0, 0)); ++ ++ result = toiActiveAllocator->allocate_storage(seek); ++ if (result) ++ printk("Failed to allocate storage (%d).\n", result); ++ ++ main_storage_allocated = ++ toiActiveAllocator->storage_allocated(); ++ ++ /* Need more header because more storage allocated? */ ++ header_storage_needed = get_header_storage_needed(); ++ ++ } while (header_storage_needed > old_header_req); ++ ++ if (freeze_processes()) ++ set_abort_result(TOI_FREEZING_FAILED); ++ ++recalc: ++ toi_recalculate_image_contents(0); ++} ++ ++/* attempt_to_freeze ++ * ++ * Try to freeze processes. ++ */ ++ ++static int attempt_to_freeze(void) ++{ ++ int result; ++ ++ /* Stop processes before checking again */ ++ thaw_processes(); ++ toi_prepare_status(CLEAR_BAR, "Freezing processes & syncing " ++ "filesystems."); ++ result = freeze_processes(); ++ ++ if (result) ++ set_abort_result(TOI_FREEZING_FAILED); ++ ++ return result; ++} ++ ++/* eat_memory ++ * ++ * Try to free some memory, either to meet hard or soft constraints on the image ++ * characteristics. ++ * ++ * Hard constraints: ++ * - Pageset1 must be < half of memory; ++ * - We must have enough memory free at resume time to have pageset1 ++ * be able to be loaded in pages that don't conflict with where it has to ++ * be restored. ++ * Soft constraints ++ * - User specificied image size limit. ++ */ ++static void eat_memory(void) ++{ ++ unsigned long amount_wanted = 0; ++ int did_eat_memory = 0; ++ ++ /* ++ * Note that if we have enough storage space and enough free memory, we ++ * may exit without eating anything. We give up when the last 10 ++ * iterations ate no extra pages because we're not going to get much ++ * more anyway, but the few pages we get will take a lot of time. ++ * ++ * We freeze processes before beginning, and then unfreeze them if we ++ * need to eat memory until we think we have enough. If our attempts ++ * to freeze fail, we give up and abort. ++ */ ++ ++ amount_wanted = amount_needed(1); ++ ++ switch (image_size_limit) { ++ case -1: /* Don't eat any memory */ ++ if (amount_wanted > 0) { ++ set_abort_result(TOI_WOULD_EAT_MEMORY); ++ return; ++ } ++ break; ++ case -2: /* Free caches only */ ++ drop_pagecache(); ++ toi_recalculate_image_contents(0); ++ amount_wanted = amount_needed(1); ++ break; ++ default: ++ break; ++ } ++ ++ if (amount_wanted > 0 && !test_result_state(TOI_ABORTED) && ++ image_size_limit != -1) { ++ unsigned long request = amount_wanted + 50; ++ ++ toi_prepare_status(CLEAR_BAR, ++ "Seeking to free %ldMB of memory.", ++ MB(amount_wanted)); ++ ++ thaw_kernel_threads(); ++ ++ /* ++ * Ask for too many because shrink_all_memory doesn't ++ * currently return enough most of the time. ++ */ ++ shrink_all_memory(request); ++ ++ did_eat_memory = 1; ++ ++ toi_recalculate_image_contents(0); ++ ++ amount_wanted = amount_needed(1); ++ ++ printk(KERN_DEBUG "Asked shrink_all_memory for %ld pages," ++ "got %ld.\n", request, ++ request - amount_wanted); ++ ++ toi_cond_pause(0, NULL); ++ ++ if (freeze_processes()) ++ set_abort_result(TOI_FREEZING_FAILED); ++ } ++ ++ if (did_eat_memory) ++ toi_recalculate_image_contents(0); ++} ++ ++/* toi_prepare_image ++ * ++ * Entry point to the whole image preparation section. ++ * ++ * We do four things: ++ * - Freeze processes; ++ * - Ensure image size constraints are met; ++ * - Complete all the preparation for saving the image, ++ * including allocation of storage. The only memory ++ * that should be needed when we're finished is that ++ * for actually storing the image (and we know how ++ * much is needed for that because the modules tell ++ * us). ++ * - Make sure that all dirty buffers are written out. ++ */ ++#define MAX_TRIES 2 ++int toi_prepare_image(void) ++{ ++ int result = 1, tries = 1; ++ ++ main_storage_allocated = 0; ++ no_ps2_needed = 0; ++ ++ if (attempt_to_freeze()) ++ return 1; ++ ++ if (!extra_pd1_pages_allowance) ++ get_extra_pd1_allowance(); ++ ++ storage_limit = toiActiveAllocator->storage_available(); ++ ++ if (!storage_limit) { ++ printk(KERN_INFO "No storage available. Didn't try to prepare " ++ "an image.\n"); ++ display_failure_reason(0); ++ set_abort_result(TOI_NOSTORAGE_AVAILABLE); ++ return 1; ++ } ++ ++ if (build_attention_list()) { ++ abort_hibernate(TOI_UNABLE_TO_PREPARE_IMAGE, ++ "Unable to successfully prepare the image.\n"); ++ return 1; ++ } ++ ++ toi_recalculate_image_contents(0); ++ ++ do { ++ toi_prepare_status(CLEAR_BAR, ++ "Preparing Image. Try %d.", tries); ++ ++ eat_memory(); ++ ++ if (test_result_state(TOI_ABORTED)) ++ break; ++ ++ update_image(0); ++ ++ tries++; ++ ++ } while (image_not_ready(1) && tries <= MAX_TRIES && ++ !test_result_state(TOI_ABORTED)); ++ ++ result = image_not_ready(0); ++ ++ if (!test_result_state(TOI_ABORTED)) { ++ if (result) { ++ display_stats(1, 0); ++ display_failure_reason(tries > MAX_TRIES); ++ abort_hibernate(TOI_UNABLE_TO_PREPARE_IMAGE, ++ "Unable to successfully prepare the image.\n"); ++ } else { ++ /* Pageset 2 needed? */ ++ if (!need_pageset2() && ++ test_action_state(TOI_NO_PS2_IF_UNNEEDED)) { ++ no_ps2_needed = 1; ++ toi_recalculate_image_contents(0); ++ update_image(1); ++ } ++ ++ toi_cond_pause(1, "Image preparation complete."); ++ } ++ } ++ ++ return result ? result : allocate_checksum_pages(); ++} +diff --git a/kernel/power/tuxonice_prepare_image.h b/kernel/power/tuxonice_prepare_image.h +new file mode 100644 +index 0000000..7b52e9e +--- /dev/null ++++ b/kernel/power/tuxonice_prepare_image.h +@@ -0,0 +1,36 @@ ++/* ++ * kernel/power/tuxonice_prepare_image.h ++ * ++ * Copyright (C) 2003-2010 Nigel Cunningham (nigel at tuxonice net) ++ * ++ * This file is released under the GPLv2. ++ * ++ */ ++ ++#include ++ ++extern int toi_prepare_image(void); ++extern void toi_recalculate_image_contents(int storage_available); ++extern unsigned long real_nr_free_pages(unsigned long zone_idx_mask); ++extern long image_size_limit; ++extern void toi_free_extra_pagedir_memory(void); ++extern unsigned long extra_pd1_pages_allowance; ++extern void free_attention_list(void); ++ ++#define MIN_FREE_RAM 100 ++#define MIN_EXTRA_PAGES_ALLOWANCE 500 ++ ++#define all_zones_mask ((unsigned long) ((1 << MAX_NR_ZONES) - 1)) ++#ifdef CONFIG_HIGHMEM ++#define real_nr_free_high_pages() (real_nr_free_pages(1 << ZONE_HIGHMEM)) ++#define real_nr_free_low_pages() (real_nr_free_pages(all_zones_mask - \ ++ (1 << ZONE_HIGHMEM))) ++#else ++#define real_nr_free_high_pages() (0) ++#define real_nr_free_low_pages() (real_nr_free_pages(all_zones_mask)) ++ ++/* For eat_memory function */ ++#define ZONE_HIGHMEM (MAX_NR_ZONES + 1) ++#endif ++ ++unsigned long get_header_storage_needed(void); +diff --git a/kernel/power/tuxonice_storage.c b/kernel/power/tuxonice_storage.c +new file mode 100644 +index 0000000..be962ee +--- /dev/null ++++ b/kernel/power/tuxonice_storage.c +@@ -0,0 +1,282 @@ ++/* ++ * kernel/power/tuxonice_storage.c ++ * ++ * Copyright (C) 2005-2010 Nigel Cunningham (nigel at tuxonice net) ++ * ++ * This file is released under the GPLv2. ++ * ++ * Routines for talking to a userspace program that manages storage. ++ * ++ * The kernel side: ++ * - starts the userspace program; ++ * - sends messages telling it when to open and close the connection; ++ * - tells it when to quit; ++ * ++ * The user space side: ++ * - passes messages regarding status; ++ * ++ */ ++ ++#include ++#include ++ ++#include "tuxonice_sysfs.h" ++#include "tuxonice_modules.h" ++#include "tuxonice_netlink.h" ++#include "tuxonice_storage.h" ++#include "tuxonice_ui.h" ++ ++static struct user_helper_data usm_helper_data; ++static struct toi_module_ops usm_ops; ++static int message_received, usm_prepare_count; ++static int storage_manager_last_action, storage_manager_action; ++ ++static int usm_user_rcv_msg(struct sk_buff *skb, struct nlmsghdr *nlh) ++{ ++ int type; ++ int *data; ++ ++ type = nlh->nlmsg_type; ++ ++ /* A control message: ignore them */ ++ if (type < NETLINK_MSG_BASE) ++ return 0; ++ ++ /* Unknown message: reply with EINVAL */ ++ if (type >= USM_MSG_MAX) ++ return -EINVAL; ++ ++ /* All operations require privileges, even GET */ ++ if (security_netlink_recv(skb, CAP_NET_ADMIN)) ++ return -EPERM; ++ ++ /* Only allow one task to receive NOFREEZE privileges */ ++ if (type == NETLINK_MSG_NOFREEZE_ME && usm_helper_data.pid != -1) ++ return -EBUSY; ++ ++ data = (int *) NLMSG_DATA(nlh); ++ ++ switch (type) { ++ case USM_MSG_SUCCESS: ++ case USM_MSG_FAILED: ++ message_received = type; ++ complete(&usm_helper_data.wait_for_process); ++ break; ++ default: ++ printk(KERN_INFO "Storage manager doesn't recognise " ++ "message %d.\n", type); ++ } ++ ++ return 1; ++} ++ ++#ifdef CONFIG_NET ++static int activations; ++ ++int toi_activate_storage(int force) ++{ ++ int tries = 1; ++ ++ if (usm_helper_data.pid == -1 || !usm_ops.enabled) ++ return 0; ++ ++ message_received = 0; ++ activations++; ++ ++ if (activations > 1 && !force) ++ return 0; ++ ++ while ((!message_received || message_received == USM_MSG_FAILED) && ++ tries < 2) { ++ toi_prepare_status(DONT_CLEAR_BAR, "Activate storage attempt " ++ "%d.\n", tries); ++ ++ init_completion(&usm_helper_data.wait_for_process); ++ ++ toi_send_netlink_message(&usm_helper_data, ++ USM_MSG_CONNECT, ++ NULL, 0); ++ ++ /* Wait 2 seconds for the userspace process to make contact */ ++ wait_for_completion_timeout(&usm_helper_data.wait_for_process, ++ 2*HZ); ++ ++ tries++; ++ } ++ ++ return 0; ++} ++ ++int toi_deactivate_storage(int force) ++{ ++ if (usm_helper_data.pid == -1 || !usm_ops.enabled) ++ return 0; ++ ++ message_received = 0; ++ activations--; ++ ++ if (activations && !force) ++ return 0; ++ ++ init_completion(&usm_helper_data.wait_for_process); ++ ++ toi_send_netlink_message(&usm_helper_data, ++ USM_MSG_DISCONNECT, ++ NULL, 0); ++ ++ wait_for_completion_timeout(&usm_helper_data.wait_for_process, 2*HZ); ++ ++ if (!message_received || message_received == USM_MSG_FAILED) { ++ printk(KERN_INFO "Returning failure disconnecting storage.\n"); ++ return 1; ++ } ++ ++ return 0; ++} ++#endif ++ ++static void storage_manager_simulate(void) ++{ ++ printk(KERN_INFO "--- Storage manager simulate ---\n"); ++ toi_prepare_usm(); ++ schedule(); ++ printk(KERN_INFO "--- Activate storage 1 ---\n"); ++ toi_activate_storage(1); ++ schedule(); ++ printk(KERN_INFO "--- Deactivate storage 1 ---\n"); ++ toi_deactivate_storage(1); ++ schedule(); ++ printk(KERN_INFO "--- Cleanup usm ---\n"); ++ toi_cleanup_usm(); ++ schedule(); ++ printk(KERN_INFO "--- Storage manager simulate ends ---\n"); ++} ++ ++static int usm_storage_needed(void) ++{ ++ return strlen(usm_helper_data.program); ++} ++ ++static int usm_save_config_info(char *buf) ++{ ++ int len = strlen(usm_helper_data.program); ++ memcpy(buf, usm_helper_data.program, len); ++ return len; ++} ++ ++static void usm_load_config_info(char *buf, int size) ++{ ++ /* Don't load the saved path if one has already been set */ ++ if (usm_helper_data.program[0]) ++ return; ++ ++ memcpy(usm_helper_data.program, buf, size); ++} ++ ++static int usm_memory_needed(void) ++{ ++ /* ball park figure of 32 pages */ ++ return 32 * PAGE_SIZE; ++} ++ ++/* toi_prepare_usm ++ */ ++int toi_prepare_usm(void) ++{ ++ usm_prepare_count++; ++ ++ if (usm_prepare_count > 1 || !usm_ops.enabled) ++ return 0; ++ ++ usm_helper_data.pid = -1; ++ ++ if (!*usm_helper_data.program) ++ return 0; ++ ++ toi_netlink_setup(&usm_helper_data); ++ ++ if (usm_helper_data.pid == -1) ++ printk(KERN_INFO "TuxOnIce Storage Manager wanted, but couldn't" ++ " start it.\n"); ++ ++ toi_activate_storage(0); ++ ++ return usm_helper_data.pid != -1; ++} ++ ++void toi_cleanup_usm(void) ++{ ++ usm_prepare_count--; ++ ++ if (usm_helper_data.pid > -1 && !usm_prepare_count) { ++ toi_deactivate_storage(0); ++ toi_netlink_close(&usm_helper_data); ++ } ++} ++ ++static void storage_manager_activate(void) ++{ ++ if (storage_manager_action == storage_manager_last_action) ++ return; ++ ++ if (storage_manager_action) ++ toi_prepare_usm(); ++ else ++ toi_cleanup_usm(); ++ ++ storage_manager_last_action = storage_manager_action; ++} ++ ++/* ++ * User interface specific /sys/power/tuxonice entries. ++ */ ++ ++static struct toi_sysfs_data sysfs_params[] = { ++ SYSFS_NONE("simulate_atomic_copy", storage_manager_simulate), ++ SYSFS_INT("enabled", SYSFS_RW, &usm_ops.enabled, 0, 1, 0, NULL), ++ SYSFS_STRING("program", SYSFS_RW, usm_helper_data.program, 254, 0, ++ NULL), ++ SYSFS_INT("activate_storage", SYSFS_RW , &storage_manager_action, 0, 1, ++ 0, storage_manager_activate) ++}; ++ ++static struct toi_module_ops usm_ops = { ++ .type = MISC_MODULE, ++ .name = "usm", ++ .directory = "storage_manager", ++ .module = THIS_MODULE, ++ .storage_needed = usm_storage_needed, ++ .save_config_info = usm_save_config_info, ++ .load_config_info = usm_load_config_info, ++ .memory_needed = usm_memory_needed, ++ ++ .sysfs_data = sysfs_params, ++ .num_sysfs_entries = sizeof(sysfs_params) / ++ sizeof(struct toi_sysfs_data), ++}; ++ ++/* toi_usm_sysfs_init ++ * Description: Boot time initialisation for user interface. ++ */ ++int toi_usm_init(void) ++{ ++ usm_helper_data.nl = NULL; ++ usm_helper_data.program[0] = '\0'; ++ usm_helper_data.pid = -1; ++ usm_helper_data.skb_size = 0; ++ usm_helper_data.pool_limit = 6; ++ usm_helper_data.netlink_id = NETLINK_TOI_USM; ++ usm_helper_data.name = "userspace storage manager"; ++ usm_helper_data.rcv_msg = usm_user_rcv_msg; ++ usm_helper_data.interface_version = 2; ++ usm_helper_data.must_init = 0; ++ init_completion(&usm_helper_data.wait_for_process); ++ ++ return toi_register_module(&usm_ops); ++} ++ ++void toi_usm_exit(void) ++{ ++ toi_netlink_close_complete(&usm_helper_data); ++ toi_unregister_module(&usm_ops); ++} +diff --git a/kernel/power/tuxonice_storage.h b/kernel/power/tuxonice_storage.h +new file mode 100644 +index 0000000..8c6b5a7 +--- /dev/null ++++ b/kernel/power/tuxonice_storage.h +@@ -0,0 +1,45 @@ ++/* ++ * kernel/power/tuxonice_storage.h ++ * ++ * Copyright (C) 2005-2010 Nigel Cunningham (nigel at tuxonice net) ++ * ++ * This file is released under the GPLv2. ++ */ ++ ++#ifdef CONFIG_NET ++int toi_prepare_usm(void); ++void toi_cleanup_usm(void); ++ ++int toi_activate_storage(int force); ++int toi_deactivate_storage(int force); ++extern int toi_usm_init(void); ++extern void toi_usm_exit(void); ++#else ++static inline int toi_usm_init(void) { return 0; } ++static inline void toi_usm_exit(void) { } ++ ++static inline int toi_activate_storage(int force) ++{ ++ return 0; ++} ++ ++static inline int toi_deactivate_storage(int force) ++{ ++ return 0; ++} ++ ++static inline int toi_prepare_usm(void) { return 0; } ++static inline void toi_cleanup_usm(void) { } ++#endif ++ ++enum { ++ USM_MSG_BASE = 0x10, ++ ++ /* Kernel -> Userspace */ ++ USM_MSG_CONNECT = 0x30, ++ USM_MSG_DISCONNECT = 0x31, ++ USM_MSG_SUCCESS = 0x40, ++ USM_MSG_FAILED = 0x41, ++ ++ USM_MSG_MAX, ++}; +diff --git a/kernel/power/tuxonice_swap.c b/kernel/power/tuxonice_swap.c +new file mode 100644 +index 0000000..f55ef5e +--- /dev/null ++++ b/kernel/power/tuxonice_swap.c +@@ -0,0 +1,487 @@ ++/* ++ * kernel/power/tuxonice_swap.c ++ * ++ * Copyright (C) 2004-2010 Nigel Cunningham (nigel at tuxonice net) ++ * ++ * Distributed under GPLv2. ++ * ++ * This file encapsulates functions for usage of swap space as a ++ * backing store. ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include "tuxonice.h" ++#include "tuxonice_sysfs.h" ++#include "tuxonice_modules.h" ++#include "tuxonice_io.h" ++#include "tuxonice_ui.h" ++#include "tuxonice_extent.h" ++#include "tuxonice_bio.h" ++#include "tuxonice_alloc.h" ++#include "tuxonice_builtin.h" ++ ++static struct toi_module_ops toi_swapops; ++ ++/* For swapfile automatically swapon/off'd. */ ++static char swapfilename[255] = ""; ++static int toi_swapon_status; ++ ++/* Swap Pages */ ++static unsigned long swap_allocated; ++ ++static struct sysinfo swapinfo; ++ ++/** ++ * enable_swapfile: Swapon the user specified swapfile prior to hibernating. ++ * ++ * Activate the given swapfile if it wasn't already enabled. Remember whether ++ * we really did swapon it for swapoffing later. ++ */ ++static void enable_swapfile(void) ++{ ++ int activateswapresult = -EINVAL; ++ ++ if (swapfilename[0]) { ++ /* Attempt to swap on with maximum priority */ ++ activateswapresult = sys_swapon(swapfilename, 0xFFFF); ++ if (activateswapresult && activateswapresult != -EBUSY) ++ printk(KERN_ERR "TuxOnIce: The swapfile/partition " ++ "specified by /sys/power/tuxonice/swap/swapfile" ++ " (%s) could not be turned on (error %d). " ++ "Attempting to continue.\n", ++ swapfilename, activateswapresult); ++ if (!activateswapresult) ++ toi_swapon_status = 1; ++ } ++} ++ ++/** ++ * disable_swapfile: Swapoff any file swaponed at the start of the cycle. ++ * ++ * If we did successfully swapon a file at the start of the cycle, swapoff ++ * it now (finishing up). ++ */ ++static void disable_swapfile(void) ++{ ++ if (!toi_swapon_status) ++ return; ++ ++ sys_swapoff(swapfilename); ++ toi_swapon_status = 0; ++} ++ ++static int add_blocks_to_extent_chain(struct toi_bdev_info *chain, ++ unsigned long start, unsigned long end) ++{ ++ if (test_action_state(TOI_TEST_BIO)) ++ toi_message(TOI_IO, TOI_VERBOSE, 0, "Adding extent %lu-%lu to " ++ "chain %p.", start << chain->bmap_shift, ++ end << chain->bmap_shift, chain); ++ ++ return toi_add_to_extent_chain(&chain->blocks, start, end); ++} ++ ++ ++static int get_main_pool_phys_params(struct toi_bdev_info *chain) ++{ ++ struct hibernate_extent *extentpointer = NULL; ++ unsigned long address, extent_min = 0, extent_max = 0; ++ int empty = 1; ++ ++ toi_message(TOI_IO, TOI_VERBOSE, 0, "get main pool phys params for " ++ "chain %d.", chain->allocator_index); ++ ++ if (!chain->allocations.first) ++ return 0; ++ ++ if (chain->blocks.first) ++ toi_put_extent_chain(&chain->blocks); ++ ++ toi_extent_for_each(&chain->allocations, extentpointer, address) { ++ swp_entry_t swap_address = (swp_entry_t) { address }; ++ struct block_device *bdev; ++ sector_t new_sector = map_swap_entry(swap_address, &bdev); ++ ++ if (empty) { ++ empty = 0; ++ extent_min = extent_max = new_sector; ++ continue; ++ } ++ ++ if (new_sector == extent_max + 1) { ++ extent_max++; ++ continue; ++ } ++ ++ if (add_blocks_to_extent_chain(chain, extent_min, extent_max)) { ++ printk(KERN_ERR "Out of memory while making block " ++ "chains.\n"); ++ return -ENOMEM; ++ } ++ ++ extent_min = new_sector; ++ extent_max = new_sector; ++ } ++ ++ if (!empty && ++ add_blocks_to_extent_chain(chain, extent_min, extent_max)) { ++ printk(KERN_ERR "Out of memory while making block chains.\n"); ++ return -ENOMEM; ++ } ++ ++ return 0; ++} ++ ++/* ++ * Like si_swapinfo, except that we don't include ram backed swap (compcache!) ++ * and don't need to use the spinlocks (userspace is stopped when this ++ * function is called). ++ */ ++void si_swapinfo_no_compcache(void) ++{ ++ unsigned int i; ++ ++ si_swapinfo(&swapinfo); ++ swapinfo.freeswap = 0; ++ swapinfo.totalswap = 0; ++ ++ for (i = 0; i < MAX_SWAPFILES; i++) { ++ struct swap_info_struct *si = get_swap_info_struct(i); ++ if (si && (si->flags & SWP_WRITEOK) && ++ (strncmp(si->bdev->bd_disk->disk_name, "ram", 3))) { ++ swapinfo.totalswap += si->inuse_pages; ++ swapinfo.freeswap += si->pages - si->inuse_pages; ++ } ++ } ++} ++/* ++ * We can't just remember the value from allocation time, because other ++ * processes might have allocated swap in the mean time. ++ */ ++static unsigned long toi_swap_storage_available(void) ++{ ++ toi_message(TOI_IO, TOI_VERBOSE, 0, "In toi_swap_storage_available."); ++ si_swapinfo_no_compcache(); ++ return swapinfo.freeswap + swap_allocated; ++} ++ ++static int toi_swap_initialise(int starting_cycle) ++{ ++ if (!starting_cycle) ++ return 0; ++ ++ enable_swapfile(); ++ return 0; ++} ++ ++static void toi_swap_cleanup(int ending_cycle) ++{ ++ if (ending_cycle) ++ disable_swapfile(); ++} ++ ++static void toi_swap_free_storage(struct toi_bdev_info *chain) ++{ ++ /* Free swap entries */ ++ struct hibernate_extent *extentpointer; ++ unsigned long extentvalue; ++ ++ toi_message(TOI_IO, TOI_VERBOSE, 0, "Freeing storage for chain %p.", ++ chain); ++ ++ swap_allocated -= chain->allocations.size; ++ toi_extent_for_each(&chain->allocations, extentpointer, extentvalue) ++ swap_free((swp_entry_t) { extentvalue }); ++ ++ toi_put_extent_chain(&chain->allocations); ++} ++ ++static void free_swap_range(unsigned long min, unsigned long max) ++{ ++ int j; ++ ++ for (j = min; j <= max; j++) ++ swap_free((swp_entry_t) { j }); ++ swap_allocated -= (max - min + 1); ++} ++ ++/* ++ * Allocation of a single swap type. Swap priorities are handled at the higher ++ * level. ++ */ ++static int toi_swap_allocate_storage(struct toi_bdev_info *chain, ++ unsigned long request) ++{ ++ int to_add = 0; ++ unsigned long gotten = 0; ++ unsigned long extent_min = 0, extent_max = 0; ++ ++ toi_message(TOI_IO, TOI_VERBOSE, 0, " Swap allocate storage: Asked to" ++ " allocate %lu pages from device %d.", request, ++ chain->allocator_index); ++ ++ while (gotten < request) { ++ swp_entry_t entry; ++ unsigned long new_value; ++ ++ entry = get_swap_page_of_type(chain->allocator_index); ++ if (!entry.val) ++ break; ++ ++ swap_allocated++; ++ new_value = entry.val; ++ gotten++; ++ ++ if (!to_add) { ++ to_add = 1; ++ extent_min = new_value; ++ extent_max = new_value; ++ continue; ++ } ++ ++ if (new_value == extent_max + 1) { ++ extent_max++; ++ continue; ++ } ++ ++ if (toi_add_to_extent_chain(&chain->allocations, extent_min, ++ extent_max)) { ++ printk(KERN_INFO "Failed to allocate extent for " ++ "%lu-%lu.\n", extent_min, extent_max); ++ free_swap_range(extent_min, extent_max); ++ swap_free(entry); ++ gotten -= (extent_max - extent_min); ++ /* Don't try to add again below */ ++ to_add = 0; ++ break; ++ } ++ ++ extent_min = new_value; ++ extent_max = new_value; ++ } ++ ++ if (to_add) { ++ int this_result = toi_add_to_extent_chain(&chain->allocations, ++ extent_min, extent_max); ++ ++ if (this_result) { ++ free_swap_range(extent_min, extent_max); ++ gotten -= (extent_max - extent_min + 1); ++ } ++ } ++ ++ toi_message(TOI_IO, TOI_VERBOSE, 0, " Allocated %lu pages.", gotten); ++ return gotten; ++} ++ ++static int toi_swap_register_storage(void) ++{ ++ int i, result = 0; ++ ++ toi_message(TOI_IO, TOI_VERBOSE, 0, "toi_swap_register_storage."); ++ for (i = 0; i < MAX_SWAPFILES; i++) { ++ struct swap_info_struct *si = get_swap_info_struct(i); ++ struct toi_bdev_info *devinfo; ++ unsigned char *p; ++ unsigned char buf[256]; ++ struct fs_info *fs_info; ++ ++ if (!si || !(si->flags & SWP_WRITEOK) || ++ !strncmp(si->bdev->bd_disk->disk_name, "ram", 3)) ++ continue; ++ ++ devinfo = toi_kzalloc(39, sizeof(struct toi_bdev_info), ++ GFP_ATOMIC); ++ if (!devinfo) { ++ printk("Failed to allocate devinfo struct for swap " ++ "device %d.\n", i); ++ return -ENOMEM; ++ } ++ ++ devinfo->bdev = si->bdev; ++ devinfo->allocator = &toi_swapops; ++ devinfo->allocator_index = i; ++ ++ fs_info = fs_info_from_block_dev(si->bdev); ++ if (fs_info && !IS_ERR(fs_info)) { ++ memcpy(devinfo->uuid, &fs_info->uuid, 16); ++ free_fs_info(fs_info); ++ } else ++ result = (int) PTR_ERR(fs_info); ++ ++ if (!fs_info) ++ printk("fs_info from block dev returned %d.\n", result); ++ devinfo->dev_t = si->bdev->bd_dev; ++ devinfo->prio = si->prio; ++ devinfo->bmap_shift = 3; ++ devinfo->blocks_per_page = 1; ++ ++ p = d_path(&si->swap_file->f_path, buf, sizeof(buf)); ++ sprintf(devinfo->name, "swap on %s", p); ++ ++ toi_message(TOI_IO, TOI_VERBOSE, 0, "Registering swap storage:" ++ " Device %d (%lx), prio %d.", i, ++ (unsigned long) devinfo->dev_t, devinfo->prio); ++ toi_bio_ops.register_storage(devinfo); ++ } ++ ++ return 0; ++} ++ ++/* ++ * workspace_size ++ * ++ * Description: ++ * Returns the number of bytes of RAM needed for this ++ * code to do its work. (Used when calculating whether ++ * we have enough memory to be able to hibernate & resume). ++ * ++ */ ++static int toi_swap_memory_needed(void) ++{ ++ return 1; ++} ++ ++/* ++ * Print debug info ++ * ++ * Description: ++ */ ++static int toi_swap_print_debug_stats(char *buffer, int size) ++{ ++ int len = 0; ++ ++ len = scnprintf(buffer, size, "- Swap Allocator enabled.\n"); ++ if (swapfilename[0]) ++ len += scnprintf(buffer+len, size-len, ++ " Attempting to automatically swapon: %s.\n", ++ swapfilename); ++ ++ si_swapinfo_no_compcache(); ++ ++ len += scnprintf(buffer+len, size-len, ++ " Swap available for image: %lu pages.\n", ++ swapinfo.freeswap + swap_allocated); ++ ++ return len; ++} ++ ++static int header_locations_read_sysfs(const char *page, int count) ++{ ++ int i, printedpartitionsmessage = 0, len = 0, haveswap = 0; ++ struct inode *swapf = NULL; ++ int zone; ++ char *path_page = (char *) toi_get_free_page(10, GFP_KERNEL); ++ char *path, *output = (char *) page; ++ int path_len; ++ ++ if (!page) ++ return 0; ++ ++ for (i = 0; i < MAX_SWAPFILES; i++) { ++ struct swap_info_struct *si = get_swap_info_struct(i); ++ ++ if (!si || !(si->flags & SWP_WRITEOK)) ++ continue; ++ ++ if (S_ISBLK(si->swap_file->f_mapping->host->i_mode)) { ++ haveswap = 1; ++ if (!printedpartitionsmessage) { ++ len += sprintf(output + len, ++ "For swap partitions, simply use the " ++ "format: resume=swap:/dev/hda1.\n"); ++ printedpartitionsmessage = 1; ++ } ++ } else { ++ path_len = 0; ++ ++ path = d_path(&si->swap_file->f_path, path_page, ++ PAGE_SIZE); ++ path_len = snprintf(path_page, PAGE_SIZE, "%s", path); ++ ++ haveswap = 1; ++ swapf = si->swap_file->f_mapping->host; ++ zone = bmap(swapf, 0); ++ if (!zone) { ++ len += sprintf(output + len, ++ "Swapfile %s has been corrupted. Reuse" ++ " mkswap on it and try again.\n", ++ path_page); ++ } else { ++ char name_buffer[BDEVNAME_SIZE]; ++ len += sprintf(output + len, ++ "For swapfile `%s`," ++ " use resume=swap:/dev/%s:0x%x.\n", ++ path_page, ++ bdevname(si->bdev, name_buffer), ++ zone << (swapf->i_blkbits - 9)); ++ } ++ } ++ } ++ ++ if (!haveswap) ++ len = sprintf(output, "You need to turn on swap partitions " ++ "before examining this file.\n"); ++ ++ toi_free_page(10, (unsigned long) path_page); ++ return len; ++} ++ ++static struct toi_sysfs_data sysfs_params[] = { ++ SYSFS_STRING("swapfilename", SYSFS_RW, swapfilename, 255, 0, NULL), ++ SYSFS_CUSTOM("headerlocations", SYSFS_READONLY, ++ header_locations_read_sysfs, NULL, 0, NULL), ++ SYSFS_INT("enabled", SYSFS_RW, &toi_swapops.enabled, 0, 1, 0, ++ attempt_to_parse_resume_device2), ++}; ++ ++static struct toi_bio_allocator_ops toi_bio_swapops = { ++ .register_storage = toi_swap_register_storage, ++ .storage_available = toi_swap_storage_available, ++ .allocate_storage = toi_swap_allocate_storage, ++ .bmap = get_main_pool_phys_params, ++ .free_storage = toi_swap_free_storage, ++}; ++ ++static struct toi_module_ops toi_swapops = { ++ .type = BIO_ALLOCATOR_MODULE, ++ .name = "swap storage", ++ .directory = "swap", ++ .module = THIS_MODULE, ++ .memory_needed = toi_swap_memory_needed, ++ .print_debug_info = toi_swap_print_debug_stats, ++ .initialise = toi_swap_initialise, ++ .cleanup = toi_swap_cleanup, ++ .bio_allocator_ops = &toi_bio_swapops, ++ ++ .sysfs_data = sysfs_params, ++ .num_sysfs_entries = sizeof(sysfs_params) / ++ sizeof(struct toi_sysfs_data), ++}; ++ ++/* ---- Registration ---- */ ++static __init int toi_swap_load(void) ++{ ++ return toi_register_module(&toi_swapops); ++} ++ ++#ifdef MODULE ++static __exit void toi_swap_unload(void) ++{ ++ toi_unregister_module(&toi_swapops); ++} ++ ++module_init(toi_swap_load); ++module_exit(toi_swap_unload); ++MODULE_LICENSE("GPL"); ++MODULE_AUTHOR("Nigel Cunningham"); ++MODULE_DESCRIPTION("TuxOnIce SwapAllocator"); ++#else ++late_initcall(toi_swap_load); ++#endif +diff --git a/kernel/power/tuxonice_sysfs.c b/kernel/power/tuxonice_sysfs.c +new file mode 100644 +index 0000000..0088409 +--- /dev/null ++++ b/kernel/power/tuxonice_sysfs.c +@@ -0,0 +1,335 @@ ++/* ++ * kernel/power/tuxonice_sysfs.c ++ * ++ * Copyright (C) 2002-2010 Nigel Cunningham (nigel at tuxonice net) ++ * ++ * This file is released under the GPLv2. ++ * ++ * This file contains support for sysfs entries for tuning TuxOnIce. ++ * ++ * We have a generic handler that deals with the most common cases, and ++ * hooks for special handlers to use. ++ */ ++ ++#include ++ ++#include "tuxonice_sysfs.h" ++#include "tuxonice.h" ++#include "tuxonice_storage.h" ++#include "tuxonice_alloc.h" ++ ++static int toi_sysfs_initialised; ++ ++static void toi_initialise_sysfs(void); ++ ++static struct toi_sysfs_data sysfs_params[]; ++ ++#define to_sysfs_data(_attr) container_of(_attr, struct toi_sysfs_data, attr) ++ ++static void toi_main_wrapper(void) ++{ ++ toi_try_hibernate(); ++} ++ ++static ssize_t toi_attr_show(struct kobject *kobj, struct attribute *attr, ++ char *page) ++{ ++ struct toi_sysfs_data *sysfs_data = to_sysfs_data(attr); ++ int len = 0; ++ int full_prep = sysfs_data->flags & SYSFS_NEEDS_SM_FOR_READ; ++ ++ if (full_prep && toi_start_anything(0)) ++ return -EBUSY; ++ ++ if (sysfs_data->flags & SYSFS_NEEDS_SM_FOR_READ) ++ toi_prepare_usm(); ++ ++ switch (sysfs_data->type) { ++ case TOI_SYSFS_DATA_CUSTOM: ++ len = (sysfs_data->data.special.read_sysfs) ? ++ (sysfs_data->data.special.read_sysfs)(page, PAGE_SIZE) ++ : 0; ++ break; ++ case TOI_SYSFS_DATA_BIT: ++ len = sprintf(page, "%d\n", ++ -test_bit(sysfs_data->data.bit.bit, ++ sysfs_data->data.bit.bit_vector)); ++ break; ++ case TOI_SYSFS_DATA_INTEGER: ++ len = sprintf(page, "%d\n", ++ *(sysfs_data->data.integer.variable)); ++ break; ++ case TOI_SYSFS_DATA_LONG: ++ len = sprintf(page, "%ld\n", ++ *(sysfs_data->data.a_long.variable)); ++ break; ++ case TOI_SYSFS_DATA_UL: ++ len = sprintf(page, "%lu\n", ++ *(sysfs_data->data.ul.variable)); ++ break; ++ case TOI_SYSFS_DATA_STRING: ++ len = sprintf(page, "%s\n", ++ sysfs_data->data.string.variable); ++ break; ++ } ++ ++ if (sysfs_data->flags & SYSFS_NEEDS_SM_FOR_READ) ++ toi_cleanup_usm(); ++ ++ if (full_prep) ++ toi_finish_anything(0); ++ ++ return len; ++} ++ ++#define BOUND(_variable, _type) do { \ ++ if (*_variable < sysfs_data->data._type.minimum) \ ++ *_variable = sysfs_data->data._type.minimum; \ ++ else if (*_variable > sysfs_data->data._type.maximum) \ ++ *_variable = sysfs_data->data._type.maximum; \ ++} while (0) ++ ++static ssize_t toi_attr_store(struct kobject *kobj, struct attribute *attr, ++ const char *my_buf, size_t count) ++{ ++ int assigned_temp_buffer = 0, result = count; ++ struct toi_sysfs_data *sysfs_data = to_sysfs_data(attr); ++ ++ if (toi_start_anything((sysfs_data->flags & SYSFS_HIBERNATE_OR_RESUME))) ++ return -EBUSY; ++ ++ ((char *) my_buf)[count] = 0; ++ ++ if (sysfs_data->flags & SYSFS_NEEDS_SM_FOR_WRITE) ++ toi_prepare_usm(); ++ ++ switch (sysfs_data->type) { ++ case TOI_SYSFS_DATA_CUSTOM: ++ if (sysfs_data->data.special.write_sysfs) ++ result = (sysfs_data->data.special.write_sysfs)(my_buf, ++ count); ++ break; ++ case TOI_SYSFS_DATA_BIT: ++ { ++ unsigned long value; ++ result = strict_strtoul(my_buf, 0, &value); ++ if (result) ++ break; ++ if (value) ++ set_bit(sysfs_data->data.bit.bit, ++ (sysfs_data->data.bit.bit_vector)); ++ else ++ clear_bit(sysfs_data->data.bit.bit, ++ (sysfs_data->data.bit.bit_vector)); ++ } ++ break; ++ case TOI_SYSFS_DATA_INTEGER: ++ { ++ long temp; ++ result = strict_strtol(my_buf, 0, &temp); ++ if (result) ++ break; ++ *(sysfs_data->data.integer.variable) = (int) temp; ++ BOUND(sysfs_data->data.integer.variable, integer); ++ break; ++ } ++ case TOI_SYSFS_DATA_LONG: ++ { ++ long *variable = ++ sysfs_data->data.a_long.variable; ++ result = strict_strtol(my_buf, 0, variable); ++ if (result) ++ break; ++ BOUND(variable, a_long); ++ break; ++ } ++ case TOI_SYSFS_DATA_UL: ++ { ++ unsigned long *variable = ++ sysfs_data->data.ul.variable; ++ result = strict_strtoul(my_buf, 0, variable); ++ if (result) ++ break; ++ BOUND(variable, ul); ++ break; ++ } ++ break; ++ case TOI_SYSFS_DATA_STRING: ++ { ++ int copy_len = count; ++ char *variable = ++ sysfs_data->data.string.variable; ++ ++ if (sysfs_data->data.string.max_length && ++ (copy_len > sysfs_data->data.string.max_length)) ++ copy_len = sysfs_data->data.string.max_length; ++ ++ if (!variable) { ++ variable = (char *) toi_get_zeroed_page(31, ++ TOI_ATOMIC_GFP); ++ sysfs_data->data.string.variable = variable; ++ assigned_temp_buffer = 1; ++ } ++ strncpy(variable, my_buf, copy_len); ++ if (copy_len && my_buf[copy_len - 1] == '\n') ++ variable[count - 1] = 0; ++ variable[count] = 0; ++ } ++ break; ++ } ++ ++ if (!result) ++ result = count; ++ ++ /* Side effect routine? */ ++ if (result == count && sysfs_data->write_side_effect) ++ sysfs_data->write_side_effect(); ++ ++ /* Free temporary buffers */ ++ if (assigned_temp_buffer) { ++ toi_free_page(31, ++ (unsigned long) sysfs_data->data.string.variable); ++ sysfs_data->data.string.variable = NULL; ++ } ++ ++ if (sysfs_data->flags & SYSFS_NEEDS_SM_FOR_WRITE) ++ toi_cleanup_usm(); ++ ++ toi_finish_anything(sysfs_data->flags & SYSFS_HIBERNATE_OR_RESUME); ++ ++ return result; ++} ++ ++static struct sysfs_ops toi_sysfs_ops = { ++ .show = &toi_attr_show, ++ .store = &toi_attr_store, ++}; ++ ++static struct kobj_type toi_ktype = { ++ .sysfs_ops = &toi_sysfs_ops, ++}; ++ ++struct kobject *tuxonice_kobj; ++ ++/* Non-module sysfs entries. ++ * ++ * This array contains entries that are automatically registered at ++ * boot. Modules and the console code register their own entries separately. ++ */ ++ ++static struct toi_sysfs_data sysfs_params[] = { ++ SYSFS_CUSTOM("do_hibernate", SYSFS_WRITEONLY, NULL, NULL, ++ SYSFS_HIBERNATING, toi_main_wrapper), ++ SYSFS_CUSTOM("do_resume", SYSFS_WRITEONLY, NULL, NULL, ++ SYSFS_RESUMING, toi_try_resume) ++}; ++ ++void remove_toi_sysdir(struct kobject *kobj) ++{ ++ if (!kobj) ++ return; ++ ++ kobject_put(kobj); ++} ++ ++struct kobject *make_toi_sysdir(char *name) ++{ ++ struct kobject *kobj = kobject_create_and_add(name, tuxonice_kobj); ++ ++ if (!kobj) { ++ printk(KERN_INFO "TuxOnIce: Can't allocate kobject for sysfs " ++ "dir!\n"); ++ return NULL; ++ } ++ ++ kobj->ktype = &toi_ktype; ++ ++ return kobj; ++} ++ ++/* toi_register_sysfs_file ++ * ++ * Helper for registering a new /sysfs/tuxonice entry. ++ */ ++ ++int toi_register_sysfs_file( ++ struct kobject *kobj, ++ struct toi_sysfs_data *toi_sysfs_data) ++{ ++ int result; ++ ++ if (!toi_sysfs_initialised) ++ toi_initialise_sysfs(); ++ ++ result = sysfs_create_file(kobj, &toi_sysfs_data->attr); ++ if (result) ++ printk(KERN_INFO "TuxOnIce: sysfs_create_file for %s " ++ "returned %d.\n", ++ toi_sysfs_data->attr.name, result); ++ kobj->ktype = &toi_ktype; ++ ++ return result; ++} ++EXPORT_SYMBOL_GPL(toi_register_sysfs_file); ++ ++/* toi_unregister_sysfs_file ++ * ++ * Helper for removing unwanted /sys/power/tuxonice entries. ++ * ++ */ ++void toi_unregister_sysfs_file(struct kobject *kobj, ++ struct toi_sysfs_data *toi_sysfs_data) ++{ ++ sysfs_remove_file(kobj, &toi_sysfs_data->attr); ++} ++EXPORT_SYMBOL_GPL(toi_unregister_sysfs_file); ++ ++void toi_cleanup_sysfs(void) ++{ ++ int i, ++ numfiles = sizeof(sysfs_params) / sizeof(struct toi_sysfs_data); ++ ++ if (!toi_sysfs_initialised) ++ return; ++ ++ for (i = 0; i < numfiles; i++) ++ toi_unregister_sysfs_file(tuxonice_kobj, &sysfs_params[i]); ++ ++ kobject_put(tuxonice_kobj); ++ toi_sysfs_initialised = 0; ++} ++ ++/* toi_initialise_sysfs ++ * ++ * Initialise the /sysfs/tuxonice directory. ++ */ ++ ++static void toi_initialise_sysfs(void) ++{ ++ int i; ++ int numfiles = sizeof(sysfs_params) / sizeof(struct toi_sysfs_data); ++ ++ if (toi_sysfs_initialised) ++ return; ++ ++ /* Make our TuxOnIce directory a child of /sys/power */ ++ tuxonice_kobj = kobject_create_and_add("tuxonice", power_kobj); ++ if (!tuxonice_kobj) ++ return; ++ ++ toi_sysfs_initialised = 1; ++ ++ for (i = 0; i < numfiles; i++) ++ toi_register_sysfs_file(tuxonice_kobj, &sysfs_params[i]); ++} ++ ++int toi_sysfs_init(void) ++{ ++ toi_initialise_sysfs(); ++ return 0; ++} ++ ++void toi_sysfs_exit(void) ++{ ++ toi_cleanup_sysfs(); ++} +diff --git a/kernel/power/tuxonice_sysfs.h b/kernel/power/tuxonice_sysfs.h +new file mode 100644 +index 0000000..4185c6d +--- /dev/null ++++ b/kernel/power/tuxonice_sysfs.h +@@ -0,0 +1,137 @@ ++/* ++ * kernel/power/tuxonice_sysfs.h ++ * ++ * Copyright (C) 2004-2010 Nigel Cunningham (nigel at tuxonice net) ++ * ++ * This file is released under the GPLv2. ++ */ ++ ++#include ++ ++struct toi_sysfs_data { ++ struct attribute attr; ++ int type; ++ int flags; ++ union { ++ struct { ++ unsigned long *bit_vector; ++ int bit; ++ } bit; ++ struct { ++ int *variable; ++ int minimum; ++ int maximum; ++ } integer; ++ struct { ++ long *variable; ++ long minimum; ++ long maximum; ++ } a_long; ++ struct { ++ unsigned long *variable; ++ unsigned long minimum; ++ unsigned long maximum; ++ } ul; ++ struct { ++ char *variable; ++ int max_length; ++ } string; ++ struct { ++ int (*read_sysfs) (const char *buffer, int count); ++ int (*write_sysfs) (const char *buffer, int count); ++ void *data; ++ } special; ++ } data; ++ ++ /* Side effects routine. Used, eg, for reparsing the ++ * resume= entry when it changes */ ++ void (*write_side_effect) (void); ++ struct list_head sysfs_data_list; ++}; ++ ++enum { ++ TOI_SYSFS_DATA_NONE = 1, ++ TOI_SYSFS_DATA_CUSTOM, ++ TOI_SYSFS_DATA_BIT, ++ TOI_SYSFS_DATA_INTEGER, ++ TOI_SYSFS_DATA_UL, ++ TOI_SYSFS_DATA_LONG, ++ TOI_SYSFS_DATA_STRING ++}; ++ ++#define SYSFS_WRITEONLY 0200 ++#define SYSFS_READONLY 0444 ++#define SYSFS_RW 0644 ++ ++#define SYSFS_BIT(_name, _mode, _ul, _bit, _flags) { \ ++ .attr = {.name = _name , .mode = _mode }, \ ++ .type = TOI_SYSFS_DATA_BIT, \ ++ .flags = _flags, \ ++ .data = { .bit = { .bit_vector = _ul, .bit = _bit } } } ++ ++#define SYSFS_INT(_name, _mode, _int, _min, _max, _flags, _wse) { \ ++ .attr = {.name = _name , .mode = _mode }, \ ++ .type = TOI_SYSFS_DATA_INTEGER, \ ++ .flags = _flags, \ ++ .data = { .integer = { .variable = _int, .minimum = _min, \ ++ .maximum = _max } }, \ ++ .write_side_effect = _wse } ++ ++#define SYSFS_UL(_name, _mode, _ul, _min, _max, _flags) { \ ++ .attr = {.name = _name , .mode = _mode }, \ ++ .type = TOI_SYSFS_DATA_UL, \ ++ .flags = _flags, \ ++ .data = { .ul = { .variable = _ul, .minimum = _min, \ ++ .maximum = _max } } } ++ ++#define SYSFS_LONG(_name, _mode, _long, _min, _max, _flags) { \ ++ .attr = {.name = _name , .mode = _mode }, \ ++ .type = TOI_SYSFS_DATA_LONG, \ ++ .flags = _flags, \ ++ .data = { .a_long = { .variable = _long, .minimum = _min, \ ++ .maximum = _max } } } ++ ++#define SYSFS_STRING(_name, _mode, _string, _max_len, _flags, _wse) { \ ++ .attr = {.name = _name , .mode = _mode }, \ ++ .type = TOI_SYSFS_DATA_STRING, \ ++ .flags = _flags, \ ++ .data = { .string = { .variable = _string, .max_length = _max_len } }, \ ++ .write_side_effect = _wse } ++ ++#define SYSFS_CUSTOM(_name, _mode, _read, _write, _flags, _wse) { \ ++ .attr = {.name = _name , .mode = _mode }, \ ++ .type = TOI_SYSFS_DATA_CUSTOM, \ ++ .flags = _flags, \ ++ .data = { .special = { .read_sysfs = _read, .write_sysfs = _write } }, \ ++ .write_side_effect = _wse } ++ ++#define SYSFS_NONE(_name, _wse) { \ ++ .attr = {.name = _name , .mode = SYSFS_WRITEONLY }, \ ++ .type = TOI_SYSFS_DATA_NONE, \ ++ .write_side_effect = _wse, \ ++} ++ ++/* Flags */ ++#define SYSFS_NEEDS_SM_FOR_READ 1 ++#define SYSFS_NEEDS_SM_FOR_WRITE 2 ++#define SYSFS_HIBERNATE 4 ++#define SYSFS_RESUME 8 ++#define SYSFS_HIBERNATE_OR_RESUME (SYSFS_HIBERNATE | SYSFS_RESUME) ++#define SYSFS_HIBERNATING (SYSFS_HIBERNATE | SYSFS_NEEDS_SM_FOR_WRITE) ++#define SYSFS_RESUMING (SYSFS_RESUME | SYSFS_NEEDS_SM_FOR_WRITE) ++#define SYSFS_NEEDS_SM_FOR_BOTH \ ++ (SYSFS_NEEDS_SM_FOR_READ | SYSFS_NEEDS_SM_FOR_WRITE) ++ ++int toi_register_sysfs_file(struct kobject *kobj, ++ struct toi_sysfs_data *toi_sysfs_data); ++void toi_unregister_sysfs_file(struct kobject *kobj, ++ struct toi_sysfs_data *toi_sysfs_data); ++ ++extern struct kobject *tuxonice_kobj; ++ ++struct kobject *make_toi_sysdir(char *name); ++void remove_toi_sysdir(struct kobject *obj); ++extern void toi_cleanup_sysfs(void); ++ ++extern int toi_sysfs_init(void); ++extern void toi_sysfs_exit(void); +diff --git a/kernel/power/tuxonice_ui.c b/kernel/power/tuxonice_ui.c +new file mode 100644 +index 0000000..b0b3b40 +--- /dev/null ++++ b/kernel/power/tuxonice_ui.c +@@ -0,0 +1,250 @@ ++/* ++ * kernel/power/tuxonice_ui.c ++ * ++ * Copyright (C) 1998-2001 Gabor Kuti ++ * Copyright (C) 1998,2001,2002 Pavel Machek ++ * Copyright (C) 2002-2003 Florent Chabaud ++ * Copyright (C) 2002-2010 Nigel Cunningham (nigel at tuxonice net) ++ * ++ * This file is released under the GPLv2. ++ * ++ * Routines for TuxOnIce's user interface. ++ * ++ * The user interface code talks to a userspace program via a ++ * netlink socket. ++ * ++ * The kernel side: ++ * - starts the userui program; ++ * - sends text messages and progress bar status; ++ * ++ * The user space side: ++ * - passes messages regarding user requests (abort, toggle reboot etc) ++ * ++ */ ++ ++#define __KERNEL_SYSCALLS__ ++ ++#include ++ ++#include "tuxonice_sysfs.h" ++#include "tuxonice_modules.h" ++#include "tuxonice.h" ++#include "tuxonice_ui.h" ++#include "tuxonice_netlink.h" ++#include "tuxonice_power_off.h" ++#include "tuxonice_builtin.h" ++ ++static char local_printf_buf[1024]; /* Same as printk - should be safe */ ++struct ui_ops *toi_current_ui; ++EXPORT_SYMBOL_GPL(toi_current_ui); ++ ++/** ++ * toi_wait_for_keypress - Wait for keypress via userui or /dev/console. ++ * ++ * @timeout: Maximum time to wait. ++ * ++ * Wait for a keypress, either from userui or /dev/console if userui isn't ++ * available. The non-userui path is particularly for at boot-time, prior ++ * to userui being started, when we have an important warning to give to ++ * the user. ++ */ ++static char toi_wait_for_keypress(int timeout) ++{ ++ if (toi_current_ui && toi_current_ui->wait_for_key(timeout)) ++ return ' '; ++ ++ return toi_wait_for_keypress_dev_console(timeout); ++} ++ ++/* toi_early_boot_message() ++ * Description: Handle errors early in the process of booting. ++ * The user may press C to continue booting, perhaps ++ * invalidating the image, or space to reboot. ++ * This works from either the serial console or normally ++ * attached keyboard. ++ * ++ * Note that we come in here from init, while the kernel is ++ * locked. If we want to get events from the serial console, ++ * we need to temporarily unlock the kernel. ++ * ++ * toi_early_boot_message may also be called post-boot. ++ * In this case, it simply printks the message and returns. ++ * ++ * Arguments: int Whether we are able to erase the image. ++ * int default_answer. What to do when we timeout. This ++ * will normally be continue, but the user might ++ * provide command line options (__setup) to override ++ * particular cases. ++ * Char *. Pointer to a string explaining why we're moaning. ++ */ ++ ++#define say(message, a...) printk(KERN_EMERG message, ##a) ++ ++void toi_early_boot_message(int message_detail, int default_answer, ++ char *warning_reason, ...) ++{ ++#if defined(CONFIG_VT) || defined(CONFIG_SERIAL_CONSOLE) ++ unsigned long orig_state = get_toi_state(), continue_req = 0; ++ unsigned long orig_loglevel = console_loglevel; ++ int can_ask = 1; ++#else ++ int can_ask = 0; ++#endif ++ ++ va_list args; ++ int printed_len; ++ ++ if (!toi_wait) { ++ set_toi_state(TOI_CONTINUE_REQ); ++ can_ask = 0; ++ } ++ ++ if (warning_reason) { ++ va_start(args, warning_reason); ++ printed_len = vsnprintf(local_printf_buf, ++ sizeof(local_printf_buf), ++ warning_reason, ++ args); ++ va_end(args); ++ } ++ ++ if (!test_toi_state(TOI_BOOT_TIME)) { ++ printk("TuxOnIce: %s\n", local_printf_buf); ++ return; ++ } ++ ++ if (!can_ask) { ++ continue_req = !!default_answer; ++ goto post_ask; ++ } ++ ++#if defined(CONFIG_VT) || defined(CONFIG_SERIAL_CONSOLE) ++ console_loglevel = 7; ++ ++ say("=== TuxOnIce ===\n\n"); ++ if (warning_reason) { ++ say("BIG FAT WARNING!! %s\n\n", local_printf_buf); ++ switch (message_detail) { ++ case 0: ++ say("If you continue booting, note that any image WILL" ++ "NOT BE REMOVED.\nTuxOnIce is unable to do so " ++ "because the appropriate modules aren't\n" ++ "loaded. You should manually remove the image " ++ "to avoid any\npossibility of corrupting your " ++ "filesystem(s) later.\n"); ++ break; ++ case 1: ++ say("If you want to use the current TuxOnIce image, " ++ "reboot and try\nagain with the same kernel " ++ "that you hibernated from. If you want\n" ++ "to forget that image, continue and the image " ++ "will be erased.\n"); ++ break; ++ } ++ say("Press SPACE to reboot or C to continue booting with " ++ "this kernel\n\n"); ++ if (toi_wait > 0) ++ say("Default action if you don't select one in %d " ++ "seconds is: %s.\n", ++ toi_wait, ++ default_answer == TOI_CONTINUE_REQ ? ++ "continue booting" : "reboot"); ++ } else { ++ say("BIG FAT WARNING!!\n\n" ++ "You have tried to resume from this image before.\n" ++ "If it failed once, it may well fail again.\n" ++ "Would you like to remove the image and boot " ++ "normally?\nThis will be equivalent to entering " ++ "noresume on the\nkernel command line.\n\n" ++ "Press SPACE to remove the image or C to continue " ++ "resuming.\n\n"); ++ if (toi_wait > 0) ++ say("Default action if you don't select one in %d " ++ "seconds is: %s.\n", toi_wait, ++ !!default_answer ? ++ "continue resuming" : "remove the image"); ++ } ++ console_loglevel = orig_loglevel; ++ ++ set_toi_state(TOI_SANITY_CHECK_PROMPT); ++ clear_toi_state(TOI_CONTINUE_REQ); ++ ++ if (toi_wait_for_keypress(toi_wait) == 0) /* We timed out */ ++ continue_req = !!default_answer; ++ else ++ continue_req = test_toi_state(TOI_CONTINUE_REQ); ++ ++#endif /* CONFIG_VT or CONFIG_SERIAL_CONSOLE */ ++ ++post_ask: ++ if ((warning_reason) && (!continue_req)) ++ machine_restart(NULL); ++ ++ restore_toi_state(orig_state); ++ if (continue_req) ++ set_toi_state(TOI_CONTINUE_REQ); ++} ++EXPORT_SYMBOL_GPL(toi_early_boot_message); ++#undef say ++ ++/* ++ * User interface specific /sys/power/tuxonice entries. ++ */ ++ ++static struct toi_sysfs_data sysfs_params[] = { ++#if defined(CONFIG_NET) && defined(CONFIG_SYSFS) ++ SYSFS_INT("default_console_level", SYSFS_RW, ++ &toi_bkd.toi_default_console_level, 0, 7, 0, NULL), ++ SYSFS_UL("debug_sections", SYSFS_RW, &toi_bkd.toi_debug_state, 0, ++ 1 << 30, 0), ++ SYSFS_BIT("log_everything", SYSFS_RW, &toi_bkd.toi_action, TOI_LOGALL, ++ 0) ++#endif ++}; ++ ++static struct toi_module_ops userui_ops = { ++ .type = MISC_HIDDEN_MODULE, ++ .name = "printk ui", ++ .directory = "user_interface", ++ .module = THIS_MODULE, ++ .sysfs_data = sysfs_params, ++ .num_sysfs_entries = sizeof(sysfs_params) / ++ sizeof(struct toi_sysfs_data), ++}; ++ ++int toi_register_ui_ops(struct ui_ops *this_ui) ++{ ++ if (toi_current_ui) { ++ printk(KERN_INFO "Only one TuxOnIce user interface module can " ++ "be loaded at a time."); ++ return -EBUSY; ++ } ++ ++ toi_current_ui = this_ui; ++ ++ return 0; ++} ++EXPORT_SYMBOL_GPL(toi_register_ui_ops); ++ ++void toi_remove_ui_ops(struct ui_ops *this_ui) ++{ ++ if (toi_current_ui != this_ui) ++ return; ++ ++ toi_current_ui = NULL; ++} ++EXPORT_SYMBOL_GPL(toi_remove_ui_ops); ++ ++/* toi_console_sysfs_init ++ * Description: Boot time initialisation for user interface. ++ */ ++ ++int toi_ui_init(void) ++{ ++ return toi_register_module(&userui_ops); ++} ++ ++void toi_ui_exit(void) ++{ ++ toi_unregister_module(&userui_ops); ++} +diff --git a/kernel/power/tuxonice_ui.h b/kernel/power/tuxonice_ui.h +new file mode 100644 +index 0000000..85fb7cb +--- /dev/null ++++ b/kernel/power/tuxonice_ui.h +@@ -0,0 +1,97 @@ ++/* ++ * kernel/power/tuxonice_ui.h ++ * ++ * Copyright (C) 2004-2010 Nigel Cunningham (nigel at tuxonice net) ++ */ ++ ++enum { ++ DONT_CLEAR_BAR, ++ CLEAR_BAR ++}; ++ ++enum { ++ /* Userspace -> Kernel */ ++ USERUI_MSG_ABORT = 0x11, ++ USERUI_MSG_SET_STATE = 0x12, ++ USERUI_MSG_GET_STATE = 0x13, ++ USERUI_MSG_GET_DEBUG_STATE = 0x14, ++ USERUI_MSG_SET_DEBUG_STATE = 0x15, ++ USERUI_MSG_SPACE = 0x18, ++ USERUI_MSG_GET_POWERDOWN_METHOD = 0x1A, ++ USERUI_MSG_SET_POWERDOWN_METHOD = 0x1B, ++ USERUI_MSG_GET_LOGLEVEL = 0x1C, ++ USERUI_MSG_SET_LOGLEVEL = 0x1D, ++ USERUI_MSG_PRINTK = 0x1E, ++ ++ /* Kernel -> Userspace */ ++ USERUI_MSG_MESSAGE = 0x21, ++ USERUI_MSG_PROGRESS = 0x22, ++ USERUI_MSG_POST_ATOMIC_RESTORE = 0x25, ++ ++ USERUI_MSG_MAX, ++}; ++ ++struct userui_msg_params { ++ u32 a, b, c, d; ++ char text[255]; ++}; ++ ++struct ui_ops { ++ char (*wait_for_key) (int timeout); ++ u32 (*update_status) (u32 value, u32 maximum, const char *fmt, ...); ++ void (*prepare_status) (int clearbar, const char *fmt, ...); ++ void (*cond_pause) (int pause, char *message); ++ void (*abort)(int result_code, const char *fmt, ...); ++ void (*prepare)(void); ++ void (*cleanup)(void); ++ void (*message)(u32 section, u32 level, u32 normally_logged, ++ const char *fmt, ...); ++}; ++ ++extern struct ui_ops *toi_current_ui; ++ ++#define toi_update_status(val, max, fmt, args...) \ ++ (toi_current_ui ? (toi_current_ui->update_status) (val, max, fmt, ##args) : \ ++ max) ++ ++#define toi_prepare_console(void) \ ++ do { if (toi_current_ui) \ ++ (toi_current_ui->prepare)(); \ ++ } while (0) ++ ++#define toi_cleanup_console(void) \ ++ do { if (toi_current_ui) \ ++ (toi_current_ui->cleanup)(); \ ++ } while (0) ++ ++#define abort_hibernate(result, fmt, args...) \ ++ do { if (toi_current_ui) \ ++ (toi_current_ui->abort)(result, fmt, ##args); \ ++ else { \ ++ set_abort_result(result); \ ++ } \ ++ } while (0) ++ ++#define toi_cond_pause(pause, message) \ ++ do { if (toi_current_ui) \ ++ (toi_current_ui->cond_pause)(pause, message); \ ++ } while (0) ++ ++#define toi_prepare_status(clear, fmt, args...) \ ++ do { if (toi_current_ui) \ ++ (toi_current_ui->prepare_status)(clear, fmt, ##args); \ ++ else \ ++ printk(KERN_ERR fmt "%s", ##args, "\n"); \ ++ } while (0) ++ ++#define toi_message(sn, lev, log, fmt, a...) \ ++do { \ ++ if (toi_current_ui && (!sn || test_debug_state(sn))) \ ++ toi_current_ui->message(sn, lev, log, fmt, ##a); \ ++} while (0) ++ ++__exit void toi_ui_cleanup(void); ++extern int toi_ui_init(void); ++extern void toi_ui_exit(void); ++extern int toi_register_ui_ops(struct ui_ops *this_ui); ++extern void toi_remove_ui_ops(struct ui_ops *this_ui); +diff --git a/kernel/power/tuxonice_userui.c b/kernel/power/tuxonice_userui.c +new file mode 100644 +index 0000000..625d863 +--- /dev/null ++++ b/kernel/power/tuxonice_userui.c +@@ -0,0 +1,668 @@ ++/* ++ * kernel/power/user_ui.c ++ * ++ * Copyright (C) 2005-2007 Bernard Blackham ++ * Copyright (C) 2002-2010 Nigel Cunningham (nigel at tuxonice net) ++ * ++ * This file is released under the GPLv2. ++ * ++ * Routines for TuxOnIce's user interface. ++ * ++ * The user interface code talks to a userspace program via a ++ * netlink socket. ++ * ++ * The kernel side: ++ * - starts the userui program; ++ * - sends text messages and progress bar status; ++ * ++ * The user space side: ++ * - passes messages regarding user requests (abort, toggle reboot etc) ++ * ++ */ ++ ++#define __KERNEL_SYSCALLS__ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include "tuxonice_sysfs.h" ++#include "tuxonice_modules.h" ++#include "tuxonice.h" ++#include "tuxonice_ui.h" ++#include "tuxonice_netlink.h" ++#include "tuxonice_power_off.h" ++ ++static char local_printf_buf[1024]; /* Same as printk - should be safe */ ++ ++static struct user_helper_data ui_helper_data; ++static struct toi_module_ops userui_ops; ++static int orig_kmsg; ++ ++static char lastheader[512]; ++static int lastheader_message_len; ++static int ui_helper_changed; /* Used at resume-time so don't overwrite value ++ set from initrd/ramfs. */ ++ ++/* Number of distinct progress amounts that userspace can display */ ++static int progress_granularity = 30; ++ ++static DECLARE_WAIT_QUEUE_HEAD(userui_wait_for_key); ++ ++/** ++ * ui_nl_set_state - Update toi_action based on a message from userui. ++ * ++ * @n: The bit (1 << bit) to set. ++ */ ++static void ui_nl_set_state(int n) ++{ ++ /* Only let them change certain settings */ ++ static const u32 toi_action_mask = ++ (1 << TOI_REBOOT) | (1 << TOI_PAUSE) | ++ (1 << TOI_LOGALL) | ++ (1 << TOI_SINGLESTEP) | ++ (1 << TOI_PAUSE_NEAR_PAGESET_END); ++ static unsigned long new_action; ++ ++ new_action = (toi_bkd.toi_action & (~toi_action_mask)) | ++ (n & toi_action_mask); ++ ++ printk(KERN_DEBUG "n is %x. Action flags being changed from %lx " ++ "to %lx.", n, toi_bkd.toi_action, new_action); ++ toi_bkd.toi_action = new_action; ++ ++ if (!test_action_state(TOI_PAUSE) && ++ !test_action_state(TOI_SINGLESTEP)) ++ wake_up_interruptible(&userui_wait_for_key); ++} ++ ++/** ++ * userui_post_atomic_restore - Tell userui that atomic restore just happened. ++ * ++ * Tell userui that atomic restore just occured, so that it can do things like ++ * redrawing the screen, re-getting settings and so on. ++ */ ++static void userui_post_atomic_restore(struct toi_boot_kernel_data *bkd) ++{ ++ toi_send_netlink_message(&ui_helper_data, ++ USERUI_MSG_POST_ATOMIC_RESTORE, NULL, 0); ++} ++ ++/** ++ * userui_storage_needed - Report how much memory in image header is needed. ++ */ ++static int userui_storage_needed(void) ++{ ++ return sizeof(ui_helper_data.program) + 1 + sizeof(int); ++} ++ ++/** ++ * userui_save_config_info - Fill buffer with config info for image header. ++ * ++ * @buf: Buffer into which to put the config info we want to save. ++ */ ++static int userui_save_config_info(char *buf) ++{ ++ *((int *) buf) = progress_granularity; ++ memcpy(buf + sizeof(int), ui_helper_data.program, ++ sizeof(ui_helper_data.program)); ++ return sizeof(ui_helper_data.program) + sizeof(int) + 1; ++} ++ ++/** ++ * userui_load_config_info - Restore config info from buffer. ++ * ++ * @buf: Buffer containing header info loaded. ++ * @size: Size of data loaded for this module. ++ */ ++static void userui_load_config_info(char *buf, int size) ++{ ++ progress_granularity = *((int *) buf); ++ size -= sizeof(int); ++ ++ /* Don't load the saved path if one has already been set */ ++ if (ui_helper_changed) ++ return; ++ ++ if (size > sizeof(ui_helper_data.program)) ++ size = sizeof(ui_helper_data.program); ++ ++ memcpy(ui_helper_data.program, buf + sizeof(int), size); ++ ui_helper_data.program[sizeof(ui_helper_data.program)-1] = '\0'; ++} ++ ++/** ++ * set_ui_program_set: Record that userui program was changed. ++ * ++ * Side effect routine for when the userui program is set. In an initrd or ++ * ramfs, the user may set a location for the userui program. If this happens, ++ * we don't want to reload the value that was saved in the image header. This ++ * routine allows us to flag that we shouldn't restore the program name from ++ * the image header. ++ */ ++static void set_ui_program_set(void) ++{ ++ ui_helper_changed = 1; ++} ++ ++/** ++ * userui_memory_needed - Tell core how much memory to reserve for us. ++ */ ++static int userui_memory_needed(void) ++{ ++ /* ball park figure of 128 pages */ ++ return 128 * PAGE_SIZE; ++} ++ ++/** ++ * userui_update_status - Update the progress bar and (if on) in-bar message. ++ * ++ * @value: Current progress percentage numerator. ++ * @maximum: Current progress percentage denominator. ++ * @fmt: Message to be displayed in the middle of the progress bar. ++ * ++ * Note that a NULL message does not mean that any previous message is erased! ++ * For that, you need toi_prepare_status with clearbar on. ++ * ++ * Returns an unsigned long, being the next numerator (as determined by the ++ * maximum and progress granularity) where status needs to be updated. ++ * This is to reduce unnecessary calls to update_status. ++ */ ++static u32 userui_update_status(u32 value, u32 maximum, const char *fmt, ...) ++{ ++ static u32 last_step = 9999; ++ struct userui_msg_params msg; ++ u32 this_step, next_update; ++ int bitshift; ++ ++ if (ui_helper_data.pid == -1) ++ return 0; ++ ++ if ((!maximum) || (!progress_granularity)) ++ return maximum; ++ ++ if (value < 0) ++ value = 0; ++ ++ if (value > maximum) ++ value = maximum; ++ ++ /* Try to avoid math problems - we can't do 64 bit math here ++ * (and shouldn't need it - anyone got screen resolution ++ * of 65536 pixels or more?) */ ++ bitshift = fls(maximum) - 16; ++ if (bitshift > 0) { ++ u32 temp_maximum = maximum >> bitshift; ++ u32 temp_value = value >> bitshift; ++ this_step = (u32) ++ (temp_value * progress_granularity / temp_maximum); ++ next_update = (((this_step + 1) * temp_maximum / ++ progress_granularity) + 1) << bitshift; ++ } else { ++ this_step = (u32) (value * progress_granularity / maximum); ++ next_update = ((this_step + 1) * maximum / ++ progress_granularity) + 1; ++ } ++ ++ if (this_step == last_step) ++ return next_update; ++ ++ memset(&msg, 0, sizeof(msg)); ++ ++ msg.a = this_step; ++ msg.b = progress_granularity; ++ ++ if (fmt) { ++ va_list args; ++ va_start(args, fmt); ++ vsnprintf(msg.text, sizeof(msg.text), fmt, args); ++ va_end(args); ++ msg.text[sizeof(msg.text)-1] = '\0'; ++ } ++ ++ toi_send_netlink_message(&ui_helper_data, USERUI_MSG_PROGRESS, ++ &msg, sizeof(msg)); ++ last_step = this_step; ++ ++ return next_update; ++} ++ ++/** ++ * userui_message - Display a message without necessarily logging it. ++ * ++ * @section: Type of message. Messages can be filtered by type. ++ * @level: Degree of importance of the message. Lower values = higher priority. ++ * @normally_logged: Whether logged even if log_everything is off. ++ * @fmt: Message (and parameters). ++ * ++ * This function is intended to do the same job as printk, but without normally ++ * logging what is printed. The point is to be able to get debugging info on ++ * screen without filling the logs with "1/534. ^M 2/534^M. 3/534^M" ++ * ++ * It may be called from an interrupt context - can't sleep! ++ */ ++static void userui_message(u32 section, u32 level, u32 normally_logged, ++ const char *fmt, ...) ++{ ++ struct userui_msg_params msg; ++ ++ if ((level) && (level > console_loglevel)) ++ return; ++ ++ memset(&msg, 0, sizeof(msg)); ++ ++ msg.a = section; ++ msg.b = level; ++ msg.c = normally_logged; ++ ++ if (fmt) { ++ va_list args; ++ va_start(args, fmt); ++ vsnprintf(msg.text, sizeof(msg.text), fmt, args); ++ va_end(args); ++ msg.text[sizeof(msg.text)-1] = '\0'; ++ } ++ ++ if (test_action_state(TOI_LOGALL)) ++ printk(KERN_INFO "%s\n", msg.text); ++ ++ toi_send_netlink_message(&ui_helper_data, USERUI_MSG_MESSAGE, ++ &msg, sizeof(msg)); ++} ++ ++/** ++ * wait_for_key_via_userui - Wait for userui to receive a keypress. ++ */ ++static void wait_for_key_via_userui(void) ++{ ++ DECLARE_WAITQUEUE(wait, current); ++ ++ add_wait_queue(&userui_wait_for_key, &wait); ++ set_current_state(TASK_INTERRUPTIBLE); ++ ++ interruptible_sleep_on(&userui_wait_for_key); ++ ++ set_current_state(TASK_RUNNING); ++ remove_wait_queue(&userui_wait_for_key, &wait); ++} ++ ++/** ++ * userui_prepare_status - Display high level messages. ++ * ++ * @clearbar: Whether to clear the progress bar. ++ * @fmt...: New message for the title. ++ * ++ * Prepare the 'nice display', drawing the header and version, along with the ++ * current action and perhaps also resetting the progress bar. ++ */ ++static void userui_prepare_status(int clearbar, const char *fmt, ...) ++{ ++ va_list args; ++ ++ if (fmt) { ++ va_start(args, fmt); ++ lastheader_message_len = vsnprintf(lastheader, 512, fmt, args); ++ va_end(args); ++ } ++ ++ if (clearbar) ++ toi_update_status(0, 1, NULL); ++ ++ if (ui_helper_data.pid == -1) ++ printk(KERN_EMERG "%s\n", lastheader); ++ else ++ toi_message(0, TOI_STATUS, 1, lastheader, NULL); ++} ++ ++/** ++ * toi_wait_for_keypress - Wait for keypress via userui. ++ * ++ * @timeout: Maximum time to wait. ++ * ++ * Wait for a keypress from userui. ++ * ++ * FIXME: Implement timeout? ++ */ ++static char userui_wait_for_keypress(int timeout) ++{ ++ char key = '\0'; ++ ++ if (ui_helper_data.pid != -1) { ++ wait_for_key_via_userui(); ++ key = ' '; ++ } ++ ++ return key; ++} ++ ++/** ++ * userui_abort_hibernate - Abort a cycle & tell user if they didn't request it. ++ * ++ * @result_code: Reason why we're aborting (1 << bit). ++ * @fmt: Message to display if telling the user what's going on. ++ * ++ * Abort a cycle. If this wasn't at the user's request (and we're displaying ++ * output), tell the user why and wait for them to acknowledge the message. ++ */ ++static void userui_abort_hibernate(int result_code, const char *fmt, ...) ++{ ++ va_list args; ++ int printed_len = 0; ++ ++ set_result_state(result_code); ++ ++ if (test_result_state(TOI_ABORTED)) ++ return; ++ ++ set_result_state(TOI_ABORTED); ++ ++ if (test_result_state(TOI_ABORT_REQUESTED)) ++ return; ++ ++ va_start(args, fmt); ++ printed_len = vsnprintf(local_printf_buf, sizeof(local_printf_buf), ++ fmt, args); ++ va_end(args); ++ if (ui_helper_data.pid != -1) ++ printed_len = sprintf(local_printf_buf + printed_len, ++ " (Press SPACE to continue)"); ++ ++ toi_prepare_status(CLEAR_BAR, "%s", local_printf_buf); ++ ++ if (ui_helper_data.pid != -1) ++ userui_wait_for_keypress(0); ++} ++ ++/** ++ * request_abort_hibernate - Abort hibernating or resuming at user request. ++ * ++ * Handle the user requesting the cancellation of a hibernation or resume by ++ * pressing escape. ++ */ ++static void request_abort_hibernate(void) ++{ ++ if (test_result_state(TOI_ABORT_REQUESTED) || ++ !test_action_state(TOI_CAN_CANCEL)) ++ return; ++ ++ if (test_toi_state(TOI_NOW_RESUMING)) { ++ toi_prepare_status(CLEAR_BAR, "Escape pressed. " ++ "Powering down again."); ++ set_toi_state(TOI_STOP_RESUME); ++ while (!test_toi_state(TOI_IO_STOPPED)) ++ schedule(); ++ if (toiActiveAllocator->mark_resume_attempted) ++ toiActiveAllocator->mark_resume_attempted(0); ++ toi_power_down(); ++ } ++ ++ toi_prepare_status(CLEAR_BAR, "--- ESCAPE PRESSED :" ++ " ABORTING HIBERNATION ---"); ++ set_abort_result(TOI_ABORT_REQUESTED); ++ wake_up_interruptible(&userui_wait_for_key); ++} ++ ++/** ++ * userui_user_rcv_msg - Receive a netlink message from userui. ++ * ++ * @skb: skb received. ++ * @nlh: Netlink header received. ++ */ ++static int userui_user_rcv_msg(struct sk_buff *skb, struct nlmsghdr *nlh) ++{ ++ int type; ++ int *data; ++ ++ type = nlh->nlmsg_type; ++ ++ /* A control message: ignore them */ ++ if (type < NETLINK_MSG_BASE) ++ return 0; ++ ++ /* Unknown message: reply with EINVAL */ ++ if (type >= USERUI_MSG_MAX) ++ return -EINVAL; ++ ++ /* All operations require privileges, even GET */ ++ if (security_netlink_recv(skb, CAP_NET_ADMIN)) ++ return -EPERM; ++ ++ /* Only allow one task to receive NOFREEZE privileges */ ++ if (type == NETLINK_MSG_NOFREEZE_ME && ui_helper_data.pid != -1) { ++ printk(KERN_INFO "Got NOFREEZE_ME request when " ++ "ui_helper_data.pid is %d.\n", ui_helper_data.pid); ++ return -EBUSY; ++ } ++ ++ data = (int *) NLMSG_DATA(nlh); ++ ++ switch (type) { ++ case USERUI_MSG_ABORT: ++ request_abort_hibernate(); ++ return 0; ++ case USERUI_MSG_GET_STATE: ++ toi_send_netlink_message(&ui_helper_data, ++ USERUI_MSG_GET_STATE, &toi_bkd.toi_action, ++ sizeof(toi_bkd.toi_action)); ++ return 0; ++ case USERUI_MSG_GET_DEBUG_STATE: ++ toi_send_netlink_message(&ui_helper_data, ++ USERUI_MSG_GET_DEBUG_STATE, ++ &toi_bkd.toi_debug_state, ++ sizeof(toi_bkd.toi_debug_state)); ++ return 0; ++ case USERUI_MSG_SET_STATE: ++ if (nlh->nlmsg_len < NLMSG_LENGTH(sizeof(int))) ++ return -EINVAL; ++ ui_nl_set_state(*data); ++ return 0; ++ case USERUI_MSG_SET_DEBUG_STATE: ++ if (nlh->nlmsg_len < NLMSG_LENGTH(sizeof(int))) ++ return -EINVAL; ++ toi_bkd.toi_debug_state = (*data); ++ return 0; ++ case USERUI_MSG_SPACE: ++ wake_up_interruptible(&userui_wait_for_key); ++ return 0; ++ case USERUI_MSG_GET_POWERDOWN_METHOD: ++ toi_send_netlink_message(&ui_helper_data, ++ USERUI_MSG_GET_POWERDOWN_METHOD, ++ &toi_poweroff_method, ++ sizeof(toi_poweroff_method)); ++ return 0; ++ case USERUI_MSG_SET_POWERDOWN_METHOD: ++ if (nlh->nlmsg_len != NLMSG_LENGTH(sizeof(char))) ++ return -EINVAL; ++ toi_poweroff_method = (unsigned long)(*data); ++ return 0; ++ case USERUI_MSG_GET_LOGLEVEL: ++ toi_send_netlink_message(&ui_helper_data, ++ USERUI_MSG_GET_LOGLEVEL, ++ &toi_bkd.toi_default_console_level, ++ sizeof(toi_bkd.toi_default_console_level)); ++ return 0; ++ case USERUI_MSG_SET_LOGLEVEL: ++ if (nlh->nlmsg_len < NLMSG_LENGTH(sizeof(int))) ++ return -EINVAL; ++ toi_bkd.toi_default_console_level = (*data); ++ return 0; ++ case USERUI_MSG_PRINTK: ++ printk(KERN_INFO "%s", (char *) data); ++ return 0; ++ } ++ ++ /* Unhandled here */ ++ return 1; ++} ++ ++/** ++ * userui_cond_pause - Possibly pause at user request. ++ * ++ * @pause: Whether to pause or just display the message. ++ * @message: Message to display at the start of pausing. ++ * ++ * Potentially pause and wait for the user to tell us to continue. We normally ++ * only pause when @pause is set. While paused, the user can do things like ++ * changing the loglevel, toggling the display of debugging sections and such ++ * like. ++ */ ++static void userui_cond_pause(int pause, char *message) ++{ ++ int displayed_message = 0, last_key = 0; ++ ++ while (last_key != 32 && ++ ui_helper_data.pid != -1 && ++ ((test_action_state(TOI_PAUSE) && pause) || ++ (test_action_state(TOI_SINGLESTEP)))) { ++ if (!displayed_message) { ++ toi_prepare_status(DONT_CLEAR_BAR, ++ "%s Press SPACE to continue.%s", ++ message ? message : "", ++ (test_action_state(TOI_SINGLESTEP)) ? ++ " Single step on." : ""); ++ displayed_message = 1; ++ } ++ last_key = userui_wait_for_keypress(0); ++ } ++ schedule(); ++} ++ ++/** ++ * userui_prepare_console - Prepare the console for use. ++ * ++ * Prepare a console for use, saving current kmsg settings and attempting to ++ * start userui. Console loglevel changes are handled by userui. ++ */ ++static void userui_prepare_console(void) ++{ ++ orig_kmsg = vt_kmsg_redirect(fg_console + 1); ++ ++ ui_helper_data.pid = -1; ++ ++ if (!userui_ops.enabled) { ++ printk(KERN_INFO "TuxOnIce: Userui disabled.\n"); ++ return; ++ } ++ ++ if (*ui_helper_data.program) ++ toi_netlink_setup(&ui_helper_data); ++ else ++ printk(KERN_INFO "TuxOnIce: Userui program not configured.\n"); ++} ++ ++/** ++ * userui_cleanup_console - Cleanup after a cycle. ++ * ++ * Tell userui to cleanup, and restore kmsg_redirect to its original value. ++ */ ++ ++static void userui_cleanup_console(void) ++{ ++ if (ui_helper_data.pid > -1) ++ toi_netlink_close(&ui_helper_data); ++ ++ vt_kmsg_redirect(orig_kmsg); ++} ++ ++/* ++ * User interface specific /sys/power/tuxonice entries. ++ */ ++ ++static struct toi_sysfs_data sysfs_params[] = { ++#if defined(CONFIG_NET) && defined(CONFIG_SYSFS) ++ SYSFS_BIT("enable_escape", SYSFS_RW, &toi_bkd.toi_action, ++ TOI_CAN_CANCEL, 0), ++ SYSFS_BIT("pause_between_steps", SYSFS_RW, &toi_bkd.toi_action, ++ TOI_PAUSE, 0), ++ SYSFS_INT("enabled", SYSFS_RW, &userui_ops.enabled, 0, 1, 0, NULL), ++ SYSFS_INT("progress_granularity", SYSFS_RW, &progress_granularity, 1, ++ 2048, 0, NULL), ++ SYSFS_STRING("program", SYSFS_RW, ui_helper_data.program, 255, 0, ++ set_ui_program_set), ++ SYSFS_INT("debug", SYSFS_RW, &ui_helper_data.debug, 0, 1, 0, NULL) ++#endif ++}; ++ ++static struct toi_module_ops userui_ops = { ++ .type = MISC_MODULE, ++ .name = "userui", ++ .shared_directory = "user_interface", ++ .module = THIS_MODULE, ++ .storage_needed = userui_storage_needed, ++ .save_config_info = userui_save_config_info, ++ .load_config_info = userui_load_config_info, ++ .memory_needed = userui_memory_needed, ++ .post_atomic_restore = userui_post_atomic_restore, ++ .sysfs_data = sysfs_params, ++ .num_sysfs_entries = sizeof(sysfs_params) / ++ sizeof(struct toi_sysfs_data), ++}; ++ ++static struct ui_ops my_ui_ops = { ++ .update_status = userui_update_status, ++ .message = userui_message, ++ .prepare_status = userui_prepare_status, ++ .abort = userui_abort_hibernate, ++ .cond_pause = userui_cond_pause, ++ .prepare = userui_prepare_console, ++ .cleanup = userui_cleanup_console, ++ .wait_for_key = userui_wait_for_keypress, ++}; ++ ++/** ++ * toi_user_ui_init - Boot time initialisation for user interface. ++ * ++ * Invoked from the core init routine. ++ */ ++static __init int toi_user_ui_init(void) ++{ ++ int result; ++ ++ ui_helper_data.nl = NULL; ++ strncpy(ui_helper_data.program, CONFIG_TOI_USERUI_DEFAULT_PATH, 255); ++ ui_helper_data.pid = -1; ++ ui_helper_data.skb_size = sizeof(struct userui_msg_params); ++ ui_helper_data.pool_limit = 6; ++ ui_helper_data.netlink_id = NETLINK_TOI_USERUI; ++ ui_helper_data.name = "userspace ui"; ++ ui_helper_data.rcv_msg = userui_user_rcv_msg; ++ ui_helper_data.interface_version = 8; ++ ui_helper_data.must_init = 0; ++ ui_helper_data.not_ready = userui_cleanup_console; ++ init_completion(&ui_helper_data.wait_for_process); ++ result = toi_register_module(&userui_ops); ++ if (!result) ++ result = toi_register_ui_ops(&my_ui_ops); ++ if (result) ++ toi_unregister_module(&userui_ops); ++ ++ return result; ++} ++ ++#ifdef MODULE ++/** ++ * toi_user_ui_ext - Cleanup code for if the core is unloaded. ++ */ ++static __exit void toi_user_ui_exit(void) ++{ ++ toi_netlink_close_complete(&ui_helper_data); ++ toi_remove_ui_ops(&my_ui_ops); ++ toi_unregister_module(&userui_ops); ++} ++ ++module_init(toi_user_ui_init); ++module_exit(toi_user_ui_exit); ++MODULE_AUTHOR("Nigel Cunningham"); ++MODULE_DESCRIPTION("TuxOnIce Userui Support"); ++MODULE_LICENSE("GPL"); ++#else ++late_initcall(toi_user_ui_init); ++#endif +diff --git a/kernel/power/user.c b/kernel/power/user.c +index bf0014d..d1c4ac2 100644 +--- a/kernel/power/user.c ++++ b/kernel/power/user.c +@@ -64,6 +64,7 @@ static struct snapshot_data { + } snapshot_state; + + atomic_t snapshot_device_available = ATOMIC_INIT(1); ++EXPORT_SYMBOL_GPL(snapshot_device_available); + + static int snapshot_open(struct inode *inode, struct file *filp) + { +diff --git a/kernel/printk.c b/kernel/printk.c +index 1751c45..b7257e3 100644 +--- a/kernel/printk.c ++++ b/kernel/printk.c +@@ -32,6 +32,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -68,6 +69,7 @@ int console_printk[4] = { + MINIMUM_CONSOLE_LOGLEVEL, /* minimum_console_loglevel */ + DEFAULT_CONSOLE_LOGLEVEL, /* default_console_loglevel */ + }; ++EXPORT_SYMBOL_GPL(console_printk); + + static int saved_console_loglevel = -1; + +@@ -956,6 +958,7 @@ void suspend_console(void) + console_suspended = 1; + up(&console_sem); + } ++EXPORT_SYMBOL_GPL(suspend_console); + + void resume_console(void) + { +@@ -965,6 +968,7 @@ void resume_console(void) + console_suspended = 0; + release_console_sem(); + } ++EXPORT_SYMBOL_GPL(resume_console); + + /** + * acquire_console_sem - lock the console system for exclusive use. +diff --git a/mm/bootmem.c b/mm/bootmem.c +index 7d14868..e01836f 100644 +--- a/mm/bootmem.c ++++ b/mm/bootmem.c +@@ -23,6 +23,7 @@ + unsigned long max_low_pfn; + unsigned long min_low_pfn; + unsigned long max_pfn; ++EXPORT_SYMBOL_GPL(max_pfn); + + #ifdef CONFIG_CRASH_DUMP + /* +diff --git a/mm/highmem.c b/mm/highmem.c +index 9c1e627..b0facc3 100644 +--- a/mm/highmem.c ++++ b/mm/highmem.c +@@ -57,6 +57,7 @@ unsigned int nr_free_highpages (void) + + return pages; + } ++EXPORT_SYMBOL_GPL(nr_free_highpages); + + static int pkmap_count[LAST_PKMAP]; + static unsigned int last_pkmap_nr; +diff --git a/mm/memory.c b/mm/memory.c +index 09e4b1b..fe93399 100644 +--- a/mm/memory.c ++++ b/mm/memory.c +@@ -1243,6 +1243,7 @@ no_page_table: + return ERR_PTR(-EFAULT); + return page; + } ++EXPORT_SYMBOL_GPL(follow_page); + + int __get_user_pages(struct task_struct *tsk, struct mm_struct *mm, + unsigned long start, int nr_pages, unsigned int gup_flags, +diff --git a/mm/mmzone.c b/mm/mmzone.c +index f5b7d17..72a6770 100644 +--- a/mm/mmzone.c ++++ b/mm/mmzone.c +@@ -14,6 +14,7 @@ struct pglist_data *first_online_pgdat(void) + { + return NODE_DATA(first_online_node); + } ++EXPORT_SYMBOL_GPL(first_online_pgdat); + + struct pglist_data *next_online_pgdat(struct pglist_data *pgdat) + { +@@ -23,6 +24,7 @@ struct pglist_data *next_online_pgdat(struct pglist_data *pgdat) + return NULL; + return NODE_DATA(nid); + } ++EXPORT_SYMBOL_GPL(next_online_pgdat); + + /* + * next_zone - helper magic for for_each_zone() +@@ -42,6 +44,7 @@ struct zone *next_zone(struct zone *zone) + } + return zone; + } ++EXPORT_SYMBOL_GPL(next_zone); + + static inline int zref_in_nodemask(struct zoneref *zref, nodemask_t *nodes) + { +diff --git a/mm/page-writeback.c b/mm/page-writeback.c +index 0b19943..4d31aa0 100644 +--- a/mm/page-writeback.c ++++ b/mm/page-writeback.c +@@ -99,6 +99,7 @@ unsigned int dirty_expire_interval = 30 * 100; /* centiseconds */ + * Flag that makes the machine dump writes/reads and block dirtyings. + */ + int block_dump; ++EXPORT_SYMBOL_GPL(block_dump); + + /* + * Flag that puts the machine in "laptop mode". Doubles as a timeout in jiffies: +diff --git a/mm/page_alloc.c b/mm/page_alloc.c +index 8deb9d0..2ffc3f4 100644 +--- a/mm/page_alloc.c ++++ b/mm/page_alloc.c +@@ -2106,6 +2106,26 @@ static unsigned int nr_free_zone_pages(int offset) + return sum; + } + ++static unsigned int nr_unallocated_zone_pages(int offset) ++{ ++ struct zoneref *z; ++ struct zone *zone; ++ ++ /* Just pick one node, since fallback list is circular */ ++ unsigned int sum = 0; ++ ++ struct zonelist *zonelist = node_zonelist(numa_node_id(), GFP_KERNEL); ++ ++ for_each_zone_zonelist(zone, z, zonelist, offset) { ++ unsigned long high = high_wmark_pages(zone); ++ unsigned long left = zone_page_state(zone, NR_FREE_PAGES); ++ if (left > high) ++ sum += left - high; ++ } ++ ++ return sum; ++} ++ + /* + * Amount of free RAM allocatable within ZONE_DMA and ZONE_NORMAL + */ +@@ -2116,6 +2136,15 @@ unsigned int nr_free_buffer_pages(void) + EXPORT_SYMBOL_GPL(nr_free_buffer_pages); + + /* ++ * Amount of free RAM allocatable within ZONE_DMA and ZONE_NORMAL ++ */ ++unsigned int nr_unallocated_buffer_pages(void) ++{ ++ return nr_unallocated_zone_pages(gfp_zone(GFP_USER)); ++} ++EXPORT_SYMBOL_GPL(nr_unallocated_buffer_pages); ++ ++/* + * Amount of free RAM allocatable within all zones + */ + unsigned int nr_free_pagecache_pages(void) +diff --git a/mm/shmem.c b/mm/shmem.c +index eef4ebe..1adeead 100644 +--- a/mm/shmem.c ++++ b/mm/shmem.c +@@ -1568,6 +1568,8 @@ static struct inode *shmem_get_inode(struct super_block *sb, int mode, + memset(info, 0, (char *)inode - (char *)info); + spin_lock_init(&info->lock); + info->flags = flags & VM_NORESERVE; ++ if (flags & VM_ATOMIC_COPY) ++ inode->i_flags |= S_ATOMIC_COPY; + INIT_LIST_HEAD(&info->swaplist); + cache_no_acl(inode); + +diff --git a/mm/swap_state.c b/mm/swap_state.c +index 6d1daeb..eced4ef 100644 +--- a/mm/swap_state.c ++++ b/mm/swap_state.c +@@ -46,6 +46,7 @@ struct address_space swapper_space = { + .i_mmap_nonlinear = LIST_HEAD_INIT(swapper_space.i_mmap_nonlinear), + .backing_dev_info = &swap_backing_dev_info, + }; ++EXPORT_SYMBOL_GPL(swapper_space); + + #define INC_CACHE_INFO(x) do { swap_cache_info.x++; } while (0) + +diff --git a/mm/swapfile.c b/mm/swapfile.c +index 6c0585b..9c563b5 100644 +--- a/mm/swapfile.c ++++ b/mm/swapfile.c +@@ -39,7 +39,6 @@ + static bool swap_count_continued(struct swap_info_struct *, pgoff_t, + unsigned char); + static void free_swap_count_continuations(struct swap_info_struct *); +-static sector_t map_swap_entry(swp_entry_t, struct block_device**); + + static DEFINE_SPINLOCK(swap_lock); + static unsigned int nr_swapfiles; +@@ -477,6 +476,7 @@ noswap: + spin_unlock(&swap_lock); + return (swp_entry_t) {0}; + } ++EXPORT_SYMBOL_GPL(get_swap_page); + + /* The only caller of this function is now susupend routine */ + swp_entry_t get_swap_page_of_type(int type) +@@ -499,6 +499,7 @@ swp_entry_t get_swap_page_of_type(int type) + spin_unlock(&swap_lock); + return (swp_entry_t) {0}; + } ++EXPORT_SYMBOL_GPL(get_swap_page_of_type); + + static struct swap_info_struct *swap_info_get(swp_entry_t entry) + { +@@ -619,6 +620,7 @@ void swapcache_free(swp_entry_t entry, struct page *page) + spin_unlock(&swap_lock); + } + } ++EXPORT_SYMBOL_GPL(swap_free); + + /* + * How many references to page are currently swapped out? +@@ -1263,7 +1265,7 @@ static void drain_mmlist(void) + * Note that the type of this function is sector_t, but it returns page offset + * into the bdev, not sector offset. + */ +-static sector_t map_swap_entry(swp_entry_t entry, struct block_device **bdev) ++sector_t map_swap_entry(swp_entry_t entry, struct block_device **bdev) + { + struct swap_info_struct *sis; + struct swap_extent *start_se; +@@ -1290,6 +1292,7 @@ static sector_t map_swap_entry(swp_entry_t entry, struct block_device **bdev) + BUG_ON(se == start_se); /* It *must* be present */ + } + } ++EXPORT_SYMBOL_GPL(map_swap_entry); + + /* + * Returns the page offset into bdev for the specified page's swap entry. +@@ -1632,6 +1635,7 @@ out_dput: + out: + return err; + } ++EXPORT_SYMBOL_GPL(sys_swapoff); + + #ifdef CONFIG_PROC_FS + /* iterator */ +@@ -2055,6 +2059,7 @@ out: + } + return error; + } ++EXPORT_SYMBOL_GPL(sys_swapon); + + void si_swapinfo(struct sysinfo *val) + { +@@ -2072,6 +2077,7 @@ void si_swapinfo(struct sysinfo *val) + val->totalswap = total_swap_pages + nr_to_be_unused; + spin_unlock(&swap_lock); + } ++EXPORT_SYMBOL_GPL(si_swapinfo); + + /* + * Verify that a swap entry is valid and increment its swap map count. +@@ -2179,6 +2185,13 @@ int swapcache_prepare(swp_entry_t entry) + return __swap_duplicate(entry, SWAP_HAS_CACHE); + } + ++ ++struct swap_info_struct *get_swap_info_struct(unsigned type) ++{ ++ return swap_info[type]; ++} ++EXPORT_SYMBOL_GPL(get_swap_info_struct); ++ + /* + * swap_lock prevents swap_map being freed. Don't grab an extra + * reference on the swaphandle, it doesn't matter if it becomes unused. +diff --git a/mm/vmscan.c b/mm/vmscan.c +index c26986c..ac2a07d 100644 +--- a/mm/vmscan.c ++++ b/mm/vmscan.c +@@ -2285,6 +2285,9 @@ void wakeup_kswapd(struct zone *zone, int order) + if (!populated_zone(zone)) + return; + ++ if (freezer_is_on()) ++ return; ++ + pgdat = zone->zone_pgdat; + if (zone_watermark_ok(zone, order, low_wmark_pages(zone), 0, 0)) + return; +@@ -2372,6 +2375,7 @@ unsigned long shrink_all_memory(unsigned long nr_to_reclaim) + + return nr_reclaimed; + } ++EXPORT_SYMBOL_GPL(shrink_all_memory); + #endif /* CONFIG_HIBERNATION */ + + /* It's optimal to keep kswapds on the same CPUs as their memory, but diff --git a/projects/ION/linux/linux.i386.conf b/projects/ION/linux/linux.i386.conf index 43f33a7dc3..40ab47b25f 100644 --- a/projects/ION/linux/linux.i386.conf +++ b/projects/ION/linux/linux.i386.conf @@ -70,7 +70,7 @@ CONFIG_HAVE_KERNEL_LZO=y # CONFIG_KERNEL_BZIP2 is not set CONFIG_KERNEL_LZMA=y # CONFIG_KERNEL_LZO is not set -# CONFIG_SWAP is not set +CONFIG_SWAP=y CONFIG_SYSVIPC=y CONFIG_SYSVIPC_SYSCTL=y CONFIG_POSIX_MQUEUE=y @@ -361,6 +361,7 @@ CONFIG_HZ=300 CONFIG_SCHED_HRTICK=y CONFIG_KEXEC=y CONFIG_CRASH_DUMP=y +# CONFIG_KEXEC_JUMP is not set CONFIG_PHYSICAL_START=0x400000 # CONFIG_RELOCATABLE is not set CONFIG_PHYSICAL_ALIGN=0x400000 @@ -380,6 +381,30 @@ CONFIG_PM_SLEEP_SMP=y CONFIG_PM_SLEEP=y CONFIG_SUSPEND=y CONFIG_SUSPEND_FREEZER=y +CONFIG_HIBERNATION_NVS=y +CONFIG_HIBERNATION=y +CONFIG_PM_STD_PARTITION="" +CONFIG_TOI_CORE=y + +# +# Image Storage (you need at least one allocator) +# +CONFIG_TOI_FILE=y +# CONFIG_TOI_SWAP is not set + +# +# General Options +# +CONFIG_TOI_CRYPTO=y +CONFIG_TOI_USERUI=y +CONFIG_TOI_USERUI_DEFAULT_PATH="/usr/sbin/tuxoniceui_text" +CONFIG_TOI_KEEP_IMAGE=y +CONFIG_TOI_REPLACE_SWSUSP=y +# CONFIG_TOI_IGNORE_LATE_INITCALL is not set +CONFIG_TOI_DEFAULT_WAIT=25 +CONFIG_TOI_DEFAULT_EXTRA_PAGES_ALLOWANCE=2000 +# CONFIG_TOI_CHECKSUM is not set +CONFIG_TOI=y CONFIG_PM_RUNTIME=y CONFIG_ACPI=y CONFIG_ACPI_SLEEP=y @@ -2144,6 +2169,7 @@ CONFIG_CRYPTO_DES=y # CONFIG_CRYPTO_DEFLATE is not set CONFIG_CRYPTO_ZLIB=y CONFIG_CRYPTO_LZO=y +CONFIG_CRYPTO_LZF=y # # Random Number Generation diff --git a/projects/ION/linux/linux.x86_64.conf b/projects/ION/linux/linux.x86_64.conf index 0750c2800a..0dfc5e3c8e 100644 --- a/projects/ION/linux/linux.x86_64.conf +++ b/projects/ION/linux/linux.x86_64.conf @@ -71,7 +71,7 @@ CONFIG_HAVE_KERNEL_LZO=y # CONFIG_KERNEL_BZIP2 is not set CONFIG_KERNEL_LZMA=y # CONFIG_KERNEL_LZO is not set -# CONFIG_SWAP is not set +CONFIG_SWAP=y CONFIG_SYSVIPC=y CONFIG_SYSVIPC_SYSCTL=y CONFIG_POSIX_MQUEUE=y @@ -346,6 +346,7 @@ CONFIG_HZ=300 CONFIG_SCHED_HRTICK=y CONFIG_KEXEC=y CONFIG_CRASH_DUMP=y +# CONFIG_KEXEC_JUMP is not set CONFIG_PHYSICAL_START=0x400000 # CONFIG_RELOCATABLE is not set CONFIG_PHYSICAL_ALIGN=0x1000000 @@ -364,6 +365,30 @@ CONFIG_PM_SLEEP_SMP=y CONFIG_PM_SLEEP=y CONFIG_SUSPEND=y CONFIG_SUSPEND_FREEZER=y +CONFIG_HIBERNATION_NVS=y +CONFIG_HIBERNATION=y +CONFIG_PM_STD_PARTITION="" +CONFIG_TOI_CORE=y + +# +# Image Storage (you need at least one allocator) +# +CONFIG_TOI_FILE=y +# CONFIG_TOI_SWAP is not set + +# +# General Options +# +CONFIG_TOI_CRYPTO=y +CONFIG_TOI_USERUI=y +CONFIG_TOI_USERUI_DEFAULT_PATH="/usr/sbin/tuxoniceui_text" +CONFIG_TOI_KEEP_IMAGE=y +CONFIG_TOI_REPLACE_SWSUSP=y +# CONFIG_TOI_IGNORE_LATE_INITCALL is not set +CONFIG_TOI_DEFAULT_WAIT=25 +CONFIG_TOI_DEFAULT_EXTRA_PAGES_ALLOWANCE=2000 +# CONFIG_TOI_CHECKSUM is not set +CONFIG_TOI=y CONFIG_PM_RUNTIME=y CONFIG_ACPI=y CONFIG_ACPI_SLEEP=y @@ -2098,6 +2123,7 @@ CONFIG_CRYPTO_DES=y # CONFIG_CRYPTO_DEFLATE is not set CONFIG_CRYPTO_ZLIB=y CONFIG_CRYPTO_LZO=y +CONFIG_CRYPTO_LZF=y # # Random Number Generation diff --git a/projects/generic/linux/linux.i386.conf b/projects/generic/linux/linux.i386.conf index 67bc1b7c17..e961371c4f 100644 --- a/projects/generic/linux/linux.i386.conf +++ b/projects/generic/linux/linux.i386.conf @@ -70,7 +70,7 @@ CONFIG_HAVE_KERNEL_LZO=y # CONFIG_KERNEL_BZIP2 is not set CONFIG_KERNEL_LZMA=y # CONFIG_KERNEL_LZO is not set -# CONFIG_SWAP is not set +CONFIG_SWAP=y CONFIG_SYSVIPC=y CONFIG_SYSVIPC_SYSCTL=y CONFIG_POSIX_MQUEUE=y @@ -362,6 +362,7 @@ CONFIG_HZ=300 CONFIG_SCHED_HRTICK=y CONFIG_KEXEC=y CONFIG_CRASH_DUMP=y +# CONFIG_KEXEC_JUMP is not set CONFIG_PHYSICAL_START=0x400000 # CONFIG_RELOCATABLE is not set CONFIG_PHYSICAL_ALIGN=0x400000 @@ -381,6 +382,30 @@ CONFIG_PM_SLEEP_SMP=y CONFIG_PM_SLEEP=y CONFIG_SUSPEND=y CONFIG_SUSPEND_FREEZER=y +CONFIG_HIBERNATION_NVS=y +CONFIG_HIBERNATION=y +CONFIG_PM_STD_PARTITION="" +CONFIG_TOI_CORE=y + +# +# Image Storage (you need at least one allocator) +# +CONFIG_TOI_FILE=y +# CONFIG_TOI_SWAP is not set + +# +# General Options +# +CONFIG_TOI_CRYPTO=y +CONFIG_TOI_USERUI=y +CONFIG_TOI_USERUI_DEFAULT_PATH="/usr/sbin/tuxoniceui_text" +CONFIG_TOI_KEEP_IMAGE=y +CONFIG_TOI_REPLACE_SWSUSP=y +# CONFIG_TOI_IGNORE_LATE_INITCALL is not set +CONFIG_TOI_DEFAULT_WAIT=25 +CONFIG_TOI_DEFAULT_EXTRA_PAGES_ALLOWANCE=2000 +# CONFIG_TOI_CHECKSUM is not set +CONFIG_TOI=y CONFIG_PM_RUNTIME=y CONFIG_ACPI=y CONFIG_ACPI_SLEEP=y @@ -2040,6 +2065,7 @@ CONFIG_RT2870=m # # CONFIG_RAR_REGISTER is not set # CONFIG_IIO is not set +# CONFIG_RAMZSWAP is not set # CONFIG_BATMAN_ADV is not set # CONFIG_SAMSUNG_LAPTOP is not set # CONFIG_STRIP is not set @@ -2381,6 +2407,7 @@ CONFIG_CRYPTO_DES=y # CONFIG_CRYPTO_DEFLATE is not set CONFIG_CRYPTO_ZLIB=y CONFIG_CRYPTO_LZO=y +CONFIG_CRYPTO_LZF=y # # Random Number Generation diff --git a/projects/intel/linux/linux.i386.conf b/projects/intel/linux/linux.i386.conf index 9f9571b24a..7008dbea64 100644 --- a/projects/intel/linux/linux.i386.conf +++ b/projects/intel/linux/linux.i386.conf @@ -70,7 +70,7 @@ CONFIG_HAVE_KERNEL_LZO=y # CONFIG_KERNEL_BZIP2 is not set CONFIG_KERNEL_LZMA=y # CONFIG_KERNEL_LZO is not set -# CONFIG_SWAP is not set +CONFIG_SWAP=y CONFIG_SYSVIPC=y CONFIG_SYSVIPC_SYSCTL=y CONFIG_POSIX_MQUEUE=y @@ -362,6 +362,7 @@ CONFIG_HZ=300 CONFIG_SCHED_HRTICK=y CONFIG_KEXEC=y CONFIG_CRASH_DUMP=y +# CONFIG_KEXEC_JUMP is not set CONFIG_PHYSICAL_START=0x400000 # CONFIG_RELOCATABLE is not set CONFIG_PHYSICAL_ALIGN=0x400000 @@ -381,6 +382,30 @@ CONFIG_PM_SLEEP_SMP=y CONFIG_PM_SLEEP=y CONFIG_SUSPEND=y CONFIG_SUSPEND_FREEZER=y +CONFIG_HIBERNATION_NVS=y +CONFIG_HIBERNATION=y +CONFIG_PM_STD_PARTITION="" +CONFIG_TOI_CORE=y + +# +# Image Storage (you need at least one allocator) +# +CONFIG_TOI_FILE=y +# CONFIG_TOI_SWAP is not set + +# +# General Options +# +CONFIG_TOI_CRYPTO=y +CONFIG_TOI_USERUI=y +CONFIG_TOI_USERUI_DEFAULT_PATH="/usr/sbin/tuxoniceui_text" +CONFIG_TOI_KEEP_IMAGE=y +CONFIG_TOI_REPLACE_SWSUSP=y +# CONFIG_TOI_IGNORE_LATE_INITCALL is not set +CONFIG_TOI_DEFAULT_WAIT=25 +CONFIG_TOI_DEFAULT_EXTRA_PAGES_ALLOWANCE=2000 +# CONFIG_TOI_CHECKSUM is not set +CONFIG_TOI=y CONFIG_PM_RUNTIME=y CONFIG_ACPI=y CONFIG_ACPI_SLEEP=y @@ -1985,6 +2010,7 @@ CONFIG_STAGING=y # # CONFIG_RAR_REGISTER is not set # CONFIG_IIO is not set +# CONFIG_RAMZSWAP is not set # CONFIG_BATMAN_ADV is not set # CONFIG_SAMSUNG_LAPTOP is not set # CONFIG_STRIP is not set @@ -2326,6 +2352,7 @@ CONFIG_CRYPTO_DES=y # CONFIG_CRYPTO_DEFLATE is not set CONFIG_CRYPTO_ZLIB=y CONFIG_CRYPTO_LZO=y +CONFIG_CRYPTO_LZF=y # # Random Number Generation From 426fc6d844ca1b83f01840c52a8667ee7d5466e9 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Thu, 29 Apr 2010 18:22:36 +0200 Subject: [PATCH 249/320] xbmc: - install upower --- packages/mediacenter/xbmc/install | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/mediacenter/xbmc/install b/packages/mediacenter/xbmc/install index 22bbae5fe0..5ecda158c7 100755 --- a/packages/mediacenter/xbmc/install +++ b/packages/mediacenter/xbmc/install @@ -17,6 +17,7 @@ $SCRIPTS/install libssh $SCRIPTS/install dbus $SCRIPTS/install hal $SCRIPTS/install udisks +$SCRIPTS/install upower $SCRIPTS/install ConsoleKit $SCRIPTS/install libXt From 1ebc9e4650d0aa4f4f4ee1b297b49b6bc292e148 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Fri, 30 Apr 2010 03:07:04 +0200 Subject: [PATCH 250/320] irserver: - fix init script (device must be the last) - remove variables --- packages/sysutils/remote/irserver/init.d/30_irserver | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/packages/sysutils/remote/irserver/init.d/30_irserver b/packages/sysutils/remote/irserver/init.d/30_irserver index cc77fcf556..245dceac81 100755 --- a/packages/sysutils/remote/irserver/init.d/30_irserver +++ b/packages/sysutils/remote/irserver/init.d/30_irserver @@ -9,17 +9,13 @@ if [ "$REMOTE_BACKEND" = "irtrans" -o "$LCD_DRIVER" = "irtrans" ]; then progress "Starting IRtrans daemon" - IRTRANS_DEV="/dev/irtrans0" - IRSERVER_LOG="/var/log/irserver.log" - IRSERVER_PID="/var/run/irserver.pid" - [ ! "$REMOTE_BACKEND" = "irtrans" ] && \ IRSERVER_ARG="$IRSERVER_ARG -no_lirc" # dont run in lirc mode [ "$DEBUG" = "yes" ] && \ IRSERVER_ARG="$IRSERVER_ARG -loglevel 4" # set loglevel in debugmode - irserver -logfile $IRSERVER_LOG -pidfile $IRSERVER_PID \ - -daemon $IRTRANS_DEV $IRSERVER_ARG > /dev/null 2>&1 + irserver -logfile /var/log/irserver.log -pidfile /var/run/irserver.pid \ + $IRSERVER_ARG -daemon /dev/irtrans0 > /dev/null 2>&1 fi \ No newline at end of file From ea6a387f8a1b0a3f3865b9c9d8c20e0a5f812818 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Fri, 30 Apr 2010 23:07:23 +0200 Subject: [PATCH 251/320] new package: - add package libnih --- packages/devel/libnih-host/build | 22 ++++++++++++++++++++++ packages/devel/libnih/build | 26 ++++++++++++++++++++++++++ packages/devel/libnih/url | 1 + 3 files changed, 49 insertions(+) create mode 100755 packages/devel/libnih-host/build create mode 100755 packages/devel/libnih/build create mode 100644 packages/devel/libnih/url diff --git a/packages/devel/libnih-host/build b/packages/devel/libnih-host/build new file mode 100755 index 0000000000..af8fb87325 --- /dev/null +++ b/packages/devel/libnih-host/build @@ -0,0 +1,22 @@ +#!/bin/sh + +. config/options + +$SCRIPTS/build toolchain +$SCRIPTS/build dbus-host +$SCRIPTS/unpack libnih + +setup_toolchain host + +cd $BUILD/libnih* + +mkdir -p objdir-host +cd objdir-host + +../configure --enable-static \ + --disable-shared + +make + +mkdir -p $ROOT/$TOOLCHAIN/bin + cp -f nih-dbus-tool/nih-dbus-tool $ROOT/$TOOLCHAIN/bin diff --git a/packages/devel/libnih/build b/packages/devel/libnih/build new file mode 100755 index 0000000000..2dcebc5bde --- /dev/null +++ b/packages/devel/libnih/build @@ -0,0 +1,26 @@ +#!/bin/sh + +. config/options + +$SCRIPTS/build toolchain +$SCRIPTS/build dbus +$SCRIPTS/build libnih-host + +export NIH_DBUS_TOOL="$ROOT/$TOOLCHAIN/bin/nih-dbus-tool" + +cd $BUILD/$1* + +mkdir -p objdir-target +cd objdir-target + +../configure --host=$TARGET_NAME \ + --build=$HOST_NAME \ + --prefix=/usr \ + --enable-static \ + --disable-shared \ + --disable-nls \ + --enable-threading + +make + +$MAKEINSTALL diff --git a/packages/devel/libnih/url b/packages/devel/libnih/url new file mode 100644 index 0000000000..00e18dd843 --- /dev/null +++ b/packages/devel/libnih/url @@ -0,0 +1 @@ +http://upstart.ubuntu.com/download/libnih/1.0/libnih-1.0.2.tar.gz From 304503da246ae80c18b06150dd180146da3e93e0 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Fri, 30 Apr 2010 23:07:58 +0200 Subject: [PATCH 252/320] new package: - add package e2fsprogs --- packages/sysutils/e2fsprogs/build | 24 ++++++++++++++++++++++++ packages/sysutils/e2fsprogs/install | 17 +++++++++++++++++ packages/sysutils/e2fsprogs/url | 1 + 3 files changed, 42 insertions(+) create mode 100755 packages/sysutils/e2fsprogs/build create mode 100755 packages/sysutils/e2fsprogs/install create mode 100644 packages/sysutils/e2fsprogs/url diff --git a/packages/sysutils/e2fsprogs/build b/packages/sysutils/e2fsprogs/build new file mode 100755 index 0000000000..b590895a7d --- /dev/null +++ b/packages/sysutils/e2fsprogs/build @@ -0,0 +1,24 @@ +#!/bin/sh + +. config/options + +$SCRIPTS/build toolchain + +cd $PKG_BUILD +./configure --host=$TARGET_NAME \ + --build=$HOST_NAME \ + --prefix=/usr \ + --enable-shared \ + --disable-static \ + --disable-libuuid \ + --disable-libblkid \ + --disable-debugfs \ + --disable-imager \ + --disable-resizer \ + --disable-uuidd \ + +make -C lib/et +make -C lib/ext2fs + +$MAKEINSTALL -C lib/et +$MAKEINSTALL -C lib/ext2fs diff --git a/packages/sysutils/e2fsprogs/install b/packages/sysutils/e2fsprogs/install new file mode 100755 index 0000000000..5c6656c51c --- /dev/null +++ b/packages/sysutils/e2fsprogs/install @@ -0,0 +1,17 @@ +#!/bin/sh + +. config/options + +mkdir -p $INSTALL/bin + cp $PKG_BUILD/mount/.libs/mount $INSTALL/bin + cp $PKG_BUILD/mount/.libs/umount $INSTALL/bin + +mkdir -p $INSTALL/sbin + cp $PKG_BUILD/fdisk/sfdisk $INSTALL/sbin + cp $PKG_BUILD/misc-utils/.libs/blkid $INSTALL/sbin + +mkdir -p $INSTALL/usr/lib + cp -PR $PKG_BUILD/shlibs/blkid/src/.libs/libblkid.so* $INSTALL/usr/lib + rm -rf $INSTALL/usr/lib/libblkid.so*T + cp -PR $PKG_BUILD/shlibs/uuid/src/.libs/libuuid.so* $INSTALL/usr/lib + rm -rf $INSTALL/usr/lib/libuuid.so*T diff --git a/packages/sysutils/e2fsprogs/url b/packages/sysutils/e2fsprogs/url new file mode 100644 index 0000000000..775aa96da0 --- /dev/null +++ b/packages/sysutils/e2fsprogs/url @@ -0,0 +1 @@ +http://prdownloads.sourceforge.net/e2fsprogs/e2fsprogs-1.41.11.tar.gz \ No newline at end of file From 83b739af8ec15bc958f68ca22090c4b1c973a5a6 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Fri, 30 Apr 2010 23:08:32 +0200 Subject: [PATCH 253/320] new package: - add package ureadahead --- ...ace-add-trace-events-for-open-exec-an.diff | 155 ++++++++++++++++++ packages/sysutils/ureadahead/build | 20 +++ .../sysutils/ureadahead/init.d/07_ureadahead | 10 ++ packages/sysutils/ureadahead/install | 6 + packages/sysutils/ureadahead/url | 1 + 5 files changed, 192 insertions(+) create mode 100644 packages/linux/patches/0001-trace-add-trace-events-for-open-exec-an.diff create mode 100755 packages/sysutils/ureadahead/build create mode 100755 packages/sysutils/ureadahead/init.d/07_ureadahead create mode 100755 packages/sysutils/ureadahead/install create mode 100644 packages/sysutils/ureadahead/url diff --git a/packages/linux/patches/0001-trace-add-trace-events-for-open-exec-an.diff b/packages/linux/patches/0001-trace-add-trace-events-for-open-exec-an.diff new file mode 100644 index 0000000000..11961d0f50 --- /dev/null +++ b/packages/linux/patches/0001-trace-add-trace-events-for-open-exec-an.diff @@ -0,0 +1,155 @@ +From ee9c0b591bf16ca11bb354bc68dae75a903f3a64 Mon Sep 17 00:00:00 2001 +From: Scott James Remnant +Date: Tue, 27 Oct 2009 10:05:32 +0000 +Subject: [PATCH] trace: add trace events for open(), exec() and uselib() + +This patch uses TRACE_EVENT to add tracepoints for the open(), +exec() and uselib() syscalls so that ureadahead can cheaply trace +the boot sequence to determine what to read to speed up the next. + +It's not upstream because it will need to be rebased onto the syscall +trace events whenever that gets merged, and is a stop-gap. + +Signed-off-by: Scott James Remnant +--- + fs/exec.c | 8 +++++ + fs/open.c | 4 ++ + include/trace/events/fs.h | 71 +++++++++++++++++++++++++++++++++++++++++++++ + 3 files changed, 83 insertions(+), 0 deletions(-) + create mode 100644 include/trace/events/fs.h + +diff --git a/fs/exec.c b/fs/exec.c +index 172ceb6..c936999 100644 +--- a/fs/exec.c ++++ b/fs/exec.c +@@ -56,6 +56,8 @@ + #include + #include + ++#include ++ + #include + #include + #include +@@ -130,6 +132,10 @@ SYSCALL_DEFINE1(uselib, const char __user *, library) + + fsnotify_open(file->f_path.dentry); + ++ tmp = getname(library); ++ trace_uselib(tmp); ++ putname(library); ++ + error = -ENOEXEC; + if(file->f_op) { + struct linux_binfmt * fmt; +@@ -665,6 +671,8 @@ struct file *open_exec(const char *name) + + fsnotify_open(file->f_path.dentry); + ++ trace_open_exec(name); ++ + err = deny_write_access(file); + if (err) + goto exit; +diff --git a/fs/open.c b/fs/open.c +index 04b9aad..41c87f3 100644 +--- a/fs/open.c ++++ b/fs/open.c +@@ -31,6 +31,9 @@ + #include + #include + ++#define CREATE_TRACE_POINTS ++#include ++ + int vfs_statfs(struct dentry *dentry, struct kstatfs *buf) + { + int retval = -ENODEV; +@@ -1041,6 +1044,7 @@ long do_sys_open(int dfd, const char __user *filename, int flags, int mode) + } else { + fsnotify_open(f->f_path.dentry); + fd_install(fd, f); ++ trace_do_sys_open(tmp, flags, mode); + } + } + putname(tmp); +diff --git a/include/trace/events/fs.h b/include/trace/events/fs.h +new file mode 100644 +index 0000000..e967c55 +--- /dev/null ++++ b/include/trace/events/fs.h +@@ -0,0 +1,71 @@ ++#undef TRACE_SYSTEM ++#define TRACE_SYSTEM fs ++ ++#if !defined(_TRACE_FS_H) || defined(TRACE_HEADER_MULTI_READ) ++#define _TRACE_FS_H ++ ++#include ++#include ++ ++TRACE_EVENT(do_sys_open, ++ ++ TP_PROTO(char *filename, int flags, int mode), ++ ++ TP_ARGS(filename, flags, mode), ++ ++ TP_STRUCT__entry( ++ __string( filename, filename ) ++ __field( int, flags ) ++ __field( int, mode ) ++ ), ++ ++ TP_fast_assign( ++ __assign_str(filename, filename); ++ __entry->flags = flags; ++ __entry->mode = mode; ++ ), ++ ++ TP_printk("\"%s\" %x %o", ++ __get_str(filename), __entry->flags, __entry->mode) ++); ++ ++TRACE_EVENT(uselib, ++ ++ TP_PROTO(char *filename), ++ ++ TP_ARGS(filename), ++ ++ TP_STRUCT__entry( ++ __string( filename, filename ) ++ ), ++ ++ TP_fast_assign( ++ __assign_str(filename, filename); ++ ), ++ ++ TP_printk("\"%s\"", ++ __get_str(filename)) ++); ++ ++TRACE_EVENT(open_exec, ++ ++ TP_PROTO(char *filename), ++ ++ TP_ARGS(filename), ++ ++ TP_STRUCT__entry( ++ __string( filename, filename ) ++ ), ++ ++ TP_fast_assign( ++ __assign_str(filename, filename); ++ ), ++ ++ TP_printk("\"%s\"", ++ __get_str(filename)) ++); ++ ++#endif /* _TRACE_FS_H */ ++ ++/* This part must be outside protection */ ++#include +-- +1.6.3.3 + diff --git a/packages/sysutils/ureadahead/build b/packages/sysutils/ureadahead/build new file mode 100755 index 0000000000..0ae6baad9e --- /dev/null +++ b/packages/sysutils/ureadahead/build @@ -0,0 +1,20 @@ +#!/bin/sh + +. config/options + +$SCRIPTS/build toolchain +$SCRIPTS/build libnih +$SCRIPTS/build e2fsprogs + +cd $PKG_BUILD +EXT2FS_LIBS="-lext2fs -lcom_err" \ +./configure --host=$TARGET_NAME \ + --build=$HOST_NAME \ + --prefix=/usr \ + --sysconfdir=/etc \ + --datadir=/usr/share \ + --localstatedir=/var \ + --disable-static \ + --enable-shared \ + +make diff --git a/packages/sysutils/ureadahead/init.d/07_ureadahead b/packages/sysutils/ureadahead/init.d/07_ureadahead new file mode 100755 index 0000000000..9915d174b0 --- /dev/null +++ b/packages/sysutils/ureadahead/init.d/07_ureadahead @@ -0,0 +1,10 @@ +# start the ureadahead daemon +# +# runlevels: openelec, textmode + +( + progress "Starting ureadahead" + + ureadahead --daemon --timeout=30 > /dev/null 2>&1 + +)& \ No newline at end of file diff --git a/packages/sysutils/ureadahead/install b/packages/sysutils/ureadahead/install new file mode 100755 index 0000000000..7ab7a30d7c --- /dev/null +++ b/packages/sysutils/ureadahead/install @@ -0,0 +1,6 @@ +#!/bin/sh + +. config/options + +mkdir -p $INSTALL/usr/sbin + cp -P $PKG_BUILD/src/ureadahead $INSTALL/usr/sbin diff --git a/packages/sysutils/ureadahead/url b/packages/sysutils/ureadahead/url new file mode 100644 index 0000000000..400d2e3709 --- /dev/null +++ b/packages/sysutils/ureadahead/url @@ -0,0 +1 @@ +http://sources.openelec.tv/svn/ureadahead-111.tar.bz2 \ No newline at end of file From b02415a030558cf18570cbef70496ae03b86f407 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Fri, 30 Apr 2010 23:09:19 +0200 Subject: [PATCH 254/320] busybox: - start network later --- packages/sysutils/busybox/init.d/{08_network => 09_network} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename packages/sysutils/busybox/init.d/{08_network => 09_network} (100%) diff --git a/packages/sysutils/busybox/init.d/08_network b/packages/sysutils/busybox/init.d/09_network similarity index 100% rename from packages/sysutils/busybox/init.d/08_network rename to packages/sysutils/busybox/init.d/09_network From 532a7f2facf2bb383de5c66983c09c03261c977c Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Fri, 30 Apr 2010 23:09:45 +0200 Subject: [PATCH 255/320] busybox: - start userconfig later --- packages/sysutils/busybox/init.d/{07_userconfig => 08_userconfig} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename packages/sysutils/busybox/init.d/{07_userconfig => 08_userconfig} (100%) diff --git a/packages/sysutils/busybox/init.d/07_userconfig b/packages/sysutils/busybox/init.d/08_userconfig similarity index 100% rename from packages/sysutils/busybox/init.d/07_userconfig rename to packages/sysutils/busybox/init.d/08_userconfig From a51509a2b311ce932fd0cccdac155706e222940e Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Sat, 1 May 2010 12:15:11 +0200 Subject: [PATCH 256/320] linux: - add debug kernel options direct in kernel config --- packages/linux/unpack | 53 ------------ projects/ION/linux/linux.i386.conf | 103 ++++++++++++++++++++-- projects/ION/linux/linux.x86_64.conf | 113 ++++++++++++++++++++++--- projects/generic/linux/linux.i386.conf | 105 +++++++++++++++++++++-- projects/intel/linux/linux.i386.conf | 103 ++++++++++++++++++++-- projects/intel/linux/linux.x86_64.conf | 105 +++++++++++++++++++++-- 6 files changed, 495 insertions(+), 87 deletions(-) diff --git a/packages/linux/unpack b/packages/linux/unpack index ace32d60d4..2e9ad1774e 100755 --- a/packages/linux/unpack +++ b/packages/linux/unpack @@ -27,57 +27,4 @@ sed -i -e "s|^CONFIG_INITRAMFS_SOURCE=.*$|CONFIG_INITRAMFS_SOURCE=\"$ROOT/$PKG_D # copy some extra firmware to linux tree cp -R $PKG_DIR/firmware/* $LINUX/firmware - if [ "$DEVTOOLS" = yes ]; then - echo "CONFIG_DEBUG_KERNEL=y" >> $LINUX/.config # needed for bootchart - echo "CONFIG_SCHEDSTATS=y" >> $LINUX/.config # needed for bootchart - echo "CONFIG_SCHED_DEBUG=y" >> $LINUX/.config # needed for bootchart - echo "# CONFIG_DEBUG_PERF_USE_VMALLOC is not set" >> $LINUX/.config - echo "# CONFIG_PCI_DEBUG is not set" >> $LINUX/.config - echo "# CONFIG_DEBUG_DRIVER is not set" >> $LINUX/.config - echo "# CONFIG_DEBUG_DEVRES is not set" >> $LINUX/.config - echo "# CONFIG_DEBUG_SHIRQ is not set" >> $LINUX/.config - echo "# CONFIG_DETECT_SOFTLOCKUP is not set" >> $LINUX/.config - echo "# CONFIG_DETECT_HUNG_TASK is not set" >> $LINUX/.config - echo "# CONFIG_TIMER_STATS is not set" >> $LINUX/.config - echo "# CONFIG_DEBUG_OBJECTS is not set" >> $LINUX/.config - echo "# CONFIG_DEBUG_KMEMLEAK is not set" >> $LINUX/.config - echo "# CONFIG_DEBUG_RT_MUTEXES is not set" >> $LINUX/.config - echo "# CONFIG_RT_MUTEX_TESTER is not set" >> $LINUX/.config - echo "# CONFIG_DEBUG_SPINLOCK is not set" >> $LINUX/.config - echo "# CONFIG_DEBUG_MUTEXES is not set" >> $LINUX/.config - echo "# CONFIG_DEBUG_LOCK_ALLOC is not set" >> $LINUX/.config - echo "# CONFIG_PROVE_LOCKING is not set" >> $LINUX/.config - echo "# CONFIG_LOCK_STAT is not set" >> $LINUX/.config - echo "# CONFIG_DEBUG_SPINLOCK_SLEEP is not set" >> $LINUX/.config - echo "# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set" >> $LINUX/.config - echo "# CONFIG_DEBUG_KOBJECT is not set" >> $LINUX/.config - echo "# CONFIG_DEBUG_HIGHMEM is not set" >> $LINUX/.config - echo "# CONFIG_DEBUG_INFO is not set" >> $LINUX/.config - echo "# CONFIG_DEBUG_VM is not set" >> $LINUX/.config - echo "# CONFIG_DEBUG_VIRTUAL is not set" >> $LINUX/.config - echo "# CONFIG_DEBUG_WRITECOUNT is not set" >> $LINUX/.config - echo "# CONFIG_DEBUG_LIST is not set" >> $LINUX/.config - echo "# CONFIG_DEBUG_SG is not set" >> $LINUX/.config - echo "# CONFIG_DEBUG_NOTIFIERS is not set" >> $LINUX/.config - echo "# CONFIG_DEBUG_CREDENTIALS is not set" >> $LINUX/.config - echo "# CONFIG_BOOT_PRINTK_DELAY is not set" >> $LINUX/.config - echo "# CONFIG_RCU_TORTURE_TEST is not set" >> $LINUX/.config - echo "# CONFIG_BACKTRACE_SELF_TEST is not set" >> $LINUX/.config - echo "# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set" >> $LINUX/.config - echo "# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set" >> $LINUX/.config - echo "# CONFIG_FAULT_INJECTION is not set" >> $LINUX/.config - echo "# CONFIG_DEBUG_PAGEALLOC is not set" >> $LINUX/.config - echo "# CONFIG_KGDB is not set" >> $LINUX/.config - echo "# CONFIG_DEBUG_STACKOVERFLOW is not set" >> $LINUX/.config - echo "# CONFIG_DEBUG_STACK_USAGE is not set" >> $LINUX/.config - echo "# CONFIG_DEBUG_PER_CPU_MAPS is not set" >> $LINUX/.config - echo "# CONFIG_X86_PTDUMP is not set" >> $LINUX/.config - echo "# CONFIG_DEBUG_RODATA is not set" >> $LINUX/.config - echo "# CONFIG_DEBUG_NX_TEST is not set" >> $LINUX/.config - echo "# CONFIG_CPA_DEBUG is not set" >> $LINUX/.config - echo "# CONFIG_DEBUG_STRICT_USER_COPY_CHECKS is not set" >> $LINUX/.config - echo "# CONFIG_MAXSMP is not set" >> $LINUX/.config - echo "# CONFIG_IOMMU_DEBUG is not set" >> $LINUX/.config - fi - make -C $LINUX oldconfig diff --git a/projects/ION/linux/linux.i386.conf b/projects/ION/linux/linux.i386.conf index 40ab47b25f..3728529dfa 100644 --- a/projects/ION/linux/linux.i386.conf +++ b/projects/ION/linux/linux.i386.conf @@ -123,7 +123,9 @@ CONFIG_ANON_INODES=y CONFIG_EMBEDDED=y CONFIG_UID16=y CONFIG_SYSCTL_SYSCALL=y -# CONFIG_KALLSYMS is not set +CONFIG_KALLSYMS=y +# CONFIG_KALLSYMS_ALL is not set +# CONFIG_KALLSYMS_EXTRA_PASS is not set CONFIG_HOTPLUG=y CONFIG_PRINTK=y CONFIG_BUG=y @@ -143,7 +145,9 @@ CONFIG_HAVE_PERF_EVENTS=y # Kernel Performance Events And Counters # CONFIG_PERF_EVENTS=y +CONFIG_EVENT_PROFILE=y # CONFIG_PERF_COUNTERS is not set +# CONFIG_DEBUG_PERF_USE_VMALLOC is not set # CONFIG_VM_EVENT_COUNTERS is not set CONFIG_PCI_QUIRKS=y # CONFIG_SLUB_DEBUG is not set @@ -152,7 +156,9 @@ CONFIG_PCI_QUIRKS=y CONFIG_SLUB=y # CONFIG_SLOB is not set # CONFIG_PROFILING is not set +CONFIG_TRACEPOINTS=y CONFIG_HAVE_OPROFILE=y +# CONFIG_KPROBES is not set CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y CONFIG_HAVE_IOREMAP_PROT=y CONFIG_HAVE_KPROBES=y @@ -166,6 +172,7 @@ CONFIG_HAVE_USER_RETURN_NOTIFIER=y # # GCOV-based kernel profiling # +# CONFIG_GCOV_KERNEL is not set # CONFIG_SLOW_WORK is not set CONFIG_HAVE_GENERIC_DMA_COHERENT=y CONFIG_RT_MUTEXES=y @@ -498,6 +505,7 @@ CONFIG_PCIEAER=y CONFIG_ARCH_SUPPORTS_MSI=y CONFIG_PCI_MSI=y CONFIG_PCI_LEGACY=y +# CONFIG_PCI_DEBUG is not set # CONFIG_PCI_STUB is not set CONFIG_HT_IRQ=y # CONFIG_PCI_IOV is not set @@ -585,6 +593,7 @@ CONFIG_SCTP_HMAC_SHA1=y # Network testing # # CONFIG_NET_PKTGEN is not set +# CONFIG_NET_DROP_MONITOR is not set # CONFIG_HAMRADIO is not set # CONFIG_CAN is not set # CONFIG_IRDA is not set @@ -617,6 +626,7 @@ CONFIG_CFG80211=m # CONFIG_CFG80211_DEVELOPER_WARNINGS is not set # CONFIG_CFG80211_REG_DEBUG is not set CONFIG_CFG80211_DEFAULT_PS=y +# CONFIG_CFG80211_DEBUGFS is not set # CONFIG_WIRELESS_OLD_REGULATORY is not set CONFIG_CFG80211_WEXT=y CONFIG_WIRELESS_EXT_SYSFS=y @@ -630,6 +640,7 @@ CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y CONFIG_MAC80211_RC_DEFAULT="minstrel" # CONFIG_MAC80211_MESH is not set CONFIG_MAC80211_LEDS=y +# CONFIG_MAC80211_DEBUGFS is not set # CONFIG_MAC80211_DEBUG_MENU is not set # CONFIG_WIMAX is not set CONFIG_RFKILL=m @@ -652,6 +663,8 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y CONFIG_FW_LOADER=y CONFIG_FIRMWARE_IN_KERNEL=y CONFIG_EXTRA_FIRMWARE="" +# CONFIG_DEBUG_DRIVER is not set +# CONFIG_DEBUG_DEVRES is not set # CONFIG_SYS_HYPERVISOR is not set # CONFIG_CONNECTOR is not set # CONFIG_MTD is not set @@ -894,6 +907,7 @@ CONFIG_ATH5K=m CONFIG_ATH9K_HW=m CONFIG_ATH9K_COMMON=m CONFIG_ATH9K=m +# CONFIG_ATH9K_DEBUGFS is not set # CONFIG_AR9170_USB is not set # CONFIG_B43 is not set # CONFIG_B43LEGACY is not set @@ -1857,7 +1871,9 @@ CONFIG_EXT4_FS=y # CONFIG_EXT4_FS_XATTR is not set # CONFIG_EXT4_DEBUG is not set CONFIG_JBD=y +# CONFIG_JBD_DEBUG is not set CONFIG_JBD2=y +# CONFIG_JBD2_DEBUG is not set CONFIG_REISERFS_FS=m # CONFIG_REISERFS_CHECK is not set # CONFIG_REISERFS_PROC_INFO is not set @@ -2019,17 +2035,54 @@ CONFIG_FRAME_WARN=1024 # CONFIG_MAGIC_SYSRQ is not set # CONFIG_STRIP_ASM_SYMS is not set # CONFIG_UNUSED_SYMBOLS is not set -# CONFIG_DEBUG_FS is not set +CONFIG_DEBUG_FS=y # CONFIG_HEADERS_CHECK is not set -# CONFIG_DEBUG_KERNEL is not set +CONFIG_DEBUG_KERNEL=y +# CONFIG_DEBUG_SHIRQ is not set +# CONFIG_DETECT_SOFTLOCKUP is not set +# CONFIG_DETECT_HUNG_TASK is not set +CONFIG_SCHED_DEBUG=y +CONFIG_SCHEDSTATS=y +# CONFIG_TIMER_STATS is not set +# CONFIG_DEBUG_OBJECTS is not set +# CONFIG_DEBUG_KMEMLEAK is not set +# CONFIG_DEBUG_RT_MUTEXES is not set +# CONFIG_RT_MUTEX_TESTER is not set +# CONFIG_DEBUG_SPINLOCK is not set +# CONFIG_DEBUG_MUTEXES is not set +# CONFIG_DEBUG_LOCK_ALLOC is not set +# CONFIG_PROVE_LOCKING is not set +# CONFIG_LOCK_STAT is not set +# CONFIG_DEBUG_SPINLOCK_SLEEP is not set +# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set +CONFIG_STACKTRACE=y +# CONFIG_DEBUG_KOBJECT is not set +# CONFIG_DEBUG_HIGHMEM is not set CONFIG_DEBUG_BUGVERBOSE=y +# CONFIG_DEBUG_INFO is not set +# CONFIG_DEBUG_VM is not set +# CONFIG_DEBUG_VIRTUAL is not set +# CONFIG_DEBUG_WRITECOUNT is not set # CONFIG_DEBUG_MEMORY_INIT is not set +# CONFIG_DEBUG_LIST is not set +# CONFIG_DEBUG_SG is not set +# CONFIG_DEBUG_NOTIFIERS is not set +# CONFIG_DEBUG_CREDENTIALS is not set CONFIG_ARCH_WANT_FRAME_POINTERS=y -# CONFIG_FRAME_POINTER is not set +CONFIG_FRAME_POINTER=y +# CONFIG_BOOT_PRINTK_DELAY is not set +# CONFIG_RCU_TORTURE_TEST is not set # CONFIG_RCU_CPU_STALL_DETECTOR is not set +# CONFIG_BACKTRACE_SELF_TEST is not set +# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set +# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set +# CONFIG_FAULT_INJECTION is not set # CONFIG_LATENCYTOP is not set CONFIG_SYSCTL_SYSCALL_CHECK=y +# CONFIG_DEBUG_PAGEALLOC is not set CONFIG_USER_STACKTRACE_SUPPORT=y +CONFIG_NOP_TRACER=y +CONFIG_HAVE_FTRACE_NMI_ENTER=y CONFIG_HAVE_FUNCTION_TRACER=y CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y CONFIG_HAVE_FUNCTION_GRAPH_FP_TEST=y @@ -2037,17 +2090,52 @@ CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y CONFIG_HAVE_DYNAMIC_FTRACE=y CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y CONFIG_HAVE_SYSCALL_TRACEPOINTS=y +CONFIG_RING_BUFFER=y +CONFIG_FTRACE_NMI_ENTER=y +CONFIG_EVENT_TRACING=y +CONFIG_CONTEXT_SWITCH_TRACER=y +CONFIG_TRACING=y +CONFIG_GENERIC_TRACER=y CONFIG_TRACING_SUPPORT=y -# CONFIG_FTRACE is not set +CONFIG_FTRACE=y +CONFIG_FUNCTION_TRACER=y +# CONFIG_IRQSOFF_TRACER is not set +# CONFIG_SYSPROF_TRACER is not set +# CONFIG_SCHED_TRACER is not set +# CONFIG_FTRACE_SYSCALLS is not set +# CONFIG_BOOT_TRACER is not set +CONFIG_BRANCH_PROFILE_NONE=y +# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set +# CONFIG_PROFILE_ALL_BRANCHES is not set +# CONFIG_POWER_TRACER is not set +# CONFIG_KSYM_TRACER is not set +CONFIG_STACK_TRACER=y +# CONFIG_KMEMTRACE is not set +# CONFIG_WORKQUEUE_TRACER is not set +# CONFIG_BLK_DEV_IO_TRACE is not set +CONFIG_DYNAMIC_FTRACE=y +# CONFIG_FUNCTION_PROFILER is not set +CONFIG_FTRACE_MCOUNT_RECORD=y +# CONFIG_FTRACE_STARTUP_TEST is not set +# CONFIG_MMIOTRACE is not set +# CONFIG_RING_BUFFER_BENCHMARK is not set # CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set # CONFIG_FIREWIRE_OHCI_REMOTE_DMA is not set +# CONFIG_DYNAMIC_DEBUG is not set # CONFIG_DMA_API_DEBUG is not set # CONFIG_SAMPLES is not set CONFIG_HAVE_ARCH_KGDB=y +# CONFIG_KGDB is not set CONFIG_HAVE_ARCH_KMEMCHECK=y CONFIG_STRICT_DEVMEM=y # CONFIG_X86_VERBOSE_BOOTUP is not set # CONFIG_EARLY_PRINTK is not set +# CONFIG_DEBUG_STACKOVERFLOW is not set +# CONFIG_DEBUG_STACK_USAGE is not set +# CONFIG_DEBUG_PER_CPU_MAPS is not set +# CONFIG_X86_PTDUMP is not set +# CONFIG_DEBUG_RODATA is not set +# CONFIG_DEBUG_NX_TEST is not set # CONFIG_4KSTACKS is not set CONFIG_DOUBLEFAULT=y # CONFIG_IOMMU_STRESS is not set @@ -2061,7 +2149,10 @@ CONFIG_IO_DELAY_0X80=y # CONFIG_IO_DELAY_UDELAY is not set # CONFIG_IO_DELAY_NONE is not set CONFIG_DEFAULT_IO_DELAY_TYPE=0 +# CONFIG_DEBUG_BOOT_PARAMS is not set +# CONFIG_CPA_DEBUG is not set CONFIG_OPTIMIZE_INLINING=y +# CONFIG_DEBUG_STRICT_USER_COPY_CHECKS is not set # # Security options @@ -2178,7 +2269,7 @@ CONFIG_CRYPTO_LZF=y # CONFIG_CRYPTO_HW is not set CONFIG_HAVE_KVM=y # CONFIG_VIRTUALIZATION is not set -# CONFIG_BINARY_PRINTF is not set +CONFIG_BINARY_PRINTF=y # # Library routines diff --git a/projects/ION/linux/linux.x86_64.conf b/projects/ION/linux/linux.x86_64.conf index 0dfc5e3c8e..2206eeb4e6 100644 --- a/projects/ION/linux/linux.x86_64.conf +++ b/projects/ION/linux/linux.x86_64.conf @@ -24,8 +24,8 @@ CONFIG_GENERIC_BUG=y CONFIG_GENERIC_BUG_RELATIVE_POINTERS=y CONFIG_GENERIC_HWEIGHT=y CONFIG_ARCH_MAY_HAVE_PC_FDC=y -CONFIG_RWSEM_GENERIC_SPINLOCK=y -# CONFIG_RWSEM_XCHGADD_ALGORITHM is not set +# CONFIG_RWSEM_GENERIC_SPINLOCK is not set +CONFIG_RWSEM_XCHGADD_ALGORITHM=y CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y CONFIG_GENERIC_CALIBRATE_DELAY=y CONFIG_GENERIC_TIME_VSYSCALL=y @@ -123,7 +123,9 @@ CONFIG_SYSCTL=y CONFIG_ANON_INODES=y CONFIG_EMBEDDED=y CONFIG_SYSCTL_SYSCALL=y -# CONFIG_KALLSYMS is not set +CONFIG_KALLSYMS=y +# CONFIG_KALLSYMS_ALL is not set +# CONFIG_KALLSYMS_EXTRA_PASS is not set CONFIG_HOTPLUG=y CONFIG_PRINTK=y CONFIG_BUG=y @@ -143,7 +145,9 @@ CONFIG_HAVE_PERF_EVENTS=y # Kernel Performance Events And Counters # CONFIG_PERF_EVENTS=y +CONFIG_EVENT_PROFILE=y # CONFIG_PERF_COUNTERS is not set +# CONFIG_DEBUG_PERF_USE_VMALLOC is not set # CONFIG_VM_EVENT_COUNTERS is not set CONFIG_PCI_QUIRKS=y # CONFIG_SLUB_DEBUG is not set @@ -152,7 +156,9 @@ CONFIG_PCI_QUIRKS=y CONFIG_SLUB=y # CONFIG_SLOB is not set # CONFIG_PROFILING is not set +CONFIG_TRACEPOINTS=y CONFIG_HAVE_OPROFILE=y +# CONFIG_KPROBES is not set CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y CONFIG_HAVE_IOREMAP_PROT=y CONFIG_HAVE_KPROBES=y @@ -166,6 +172,7 @@ CONFIG_HAVE_USER_RETURN_NOTIFIER=y # # GCOV-based kernel profiling # +# CONFIG_GCOV_KERNEL is not set # CONFIG_SLOW_WORK is not set # CONFIG_HAVE_GENERIC_DMA_COHERENT is not set CONFIG_RT_MUTEXES=y @@ -266,6 +273,7 @@ CONFIG_X86_CPU=y CONFIG_X86_INTERNODE_CACHE_SHIFT=6 CONFIG_X86_CMPXCHG=y CONFIG_X86_L1_CACHE_SHIFT=6 +CONFIG_X86_XADD=y CONFIG_X86_WP_WORKS_OK=y CONFIG_X86_USE_PPRO_CHECKSUM=y CONFIG_X86_TSC=y @@ -287,6 +295,7 @@ CONFIG_GART_IOMMU=y CONFIG_SWIOTLB=y CONFIG_IOMMU_HELPER=y # CONFIG_IOMMU_API is not set +# CONFIG_MAXSMP is not set CONFIG_NR_CPUS=4 CONFIG_SCHED_SMT=y CONFIG_SCHED_MC=y @@ -359,6 +368,7 @@ CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y # # Power management and ACPI options # +CONFIG_ARCH_HIBERNATION_HEADER=y CONFIG_PM=y # CONFIG_PM_DEBUG is not set CONFIG_PM_SLEEP_SMP=y @@ -414,7 +424,6 @@ CONFIG_X86_PM_TIMER=y CONFIG_ACPI_CONTAINER=y CONFIG_ACPI_SBS=y # CONFIG_SFI is not set -# CONFIG_APM is not set # # CPU Frequency scaling @@ -472,6 +481,7 @@ CONFIG_PCIEAER=y CONFIG_ARCH_SUPPORTS_MSI=y CONFIG_PCI_MSI=y CONFIG_PCI_LEGACY=y +# CONFIG_PCI_DEBUG is not set # CONFIG_PCI_STUB is not set CONFIG_HT_IRQ=y # CONFIG_PCI_IOV is not set @@ -556,6 +566,7 @@ CONFIG_SCTP_HMAC_SHA1=y # Network testing # # CONFIG_NET_PKTGEN is not set +# CONFIG_NET_DROP_MONITOR is not set # CONFIG_HAMRADIO is not set # CONFIG_CAN is not set # CONFIG_IRDA is not set @@ -588,6 +599,7 @@ CONFIG_CFG80211=m # CONFIG_CFG80211_DEVELOPER_WARNINGS is not set # CONFIG_CFG80211_REG_DEBUG is not set CONFIG_CFG80211_DEFAULT_PS=y +# CONFIG_CFG80211_DEBUGFS is not set # CONFIG_WIRELESS_OLD_REGULATORY is not set CONFIG_CFG80211_WEXT=y CONFIG_WIRELESS_EXT_SYSFS=y @@ -601,6 +613,7 @@ CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y CONFIG_MAC80211_RC_DEFAULT="minstrel" # CONFIG_MAC80211_MESH is not set CONFIG_MAC80211_LEDS=y +# CONFIG_MAC80211_DEBUGFS is not set # CONFIG_MAC80211_DEBUG_MENU is not set # CONFIG_WIMAX is not set CONFIG_RFKILL=m @@ -623,6 +636,8 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y CONFIG_FW_LOADER=y CONFIG_FIRMWARE_IN_KERNEL=y CONFIG_EXTRA_FIRMWARE="" +# CONFIG_DEBUG_DRIVER is not set +# CONFIG_DEBUG_DEVRES is not set # CONFIG_SYS_HYPERVISOR is not set # CONFIG_CONNECTOR is not set # CONFIG_MTD is not set @@ -863,6 +878,7 @@ CONFIG_ATH5K=m CONFIG_ATH9K_HW=m CONFIG_ATH9K_COMMON=m CONFIG_ATH9K=m +# CONFIG_ATH9K_DEBUGFS is not set # CONFIG_AR9170_USB is not set # CONFIG_B43 is not set # CONFIG_B43LEGACY is not set @@ -1811,7 +1827,9 @@ CONFIG_EXT4_FS=y # CONFIG_EXT4_FS_XATTR is not set # CONFIG_EXT4_DEBUG is not set CONFIG_JBD=y +# CONFIG_JBD_DEBUG is not set CONFIG_JBD2=y +# CONFIG_JBD2_DEBUG is not set CONFIG_REISERFS_FS=m # CONFIG_REISERFS_CHECK is not set # CONFIG_REISERFS_PROC_INFO is not set @@ -1973,17 +1991,53 @@ CONFIG_FRAME_WARN=1024 # CONFIG_MAGIC_SYSRQ is not set # CONFIG_STRIP_ASM_SYMS is not set # CONFIG_UNUSED_SYMBOLS is not set -# CONFIG_DEBUG_FS is not set +CONFIG_DEBUG_FS=y # CONFIG_HEADERS_CHECK is not set -# CONFIG_DEBUG_KERNEL is not set +CONFIG_DEBUG_KERNEL=y +# CONFIG_DEBUG_SHIRQ is not set +# CONFIG_DETECT_SOFTLOCKUP is not set +# CONFIG_DETECT_HUNG_TASK is not set +CONFIG_SCHED_DEBUG=y +CONFIG_SCHEDSTATS=y +# CONFIG_TIMER_STATS is not set +# CONFIG_DEBUG_OBJECTS is not set +# CONFIG_DEBUG_KMEMLEAK is not set +# CONFIG_DEBUG_RT_MUTEXES is not set +# CONFIG_RT_MUTEX_TESTER is not set +# CONFIG_DEBUG_SPINLOCK is not set +# CONFIG_DEBUG_MUTEXES is not set +# CONFIG_DEBUG_LOCK_ALLOC is not set +# CONFIG_PROVE_LOCKING is not set +# CONFIG_LOCK_STAT is not set +# CONFIG_DEBUG_SPINLOCK_SLEEP is not set +# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set +CONFIG_STACKTRACE=y +# CONFIG_DEBUG_KOBJECT is not set CONFIG_DEBUG_BUGVERBOSE=y +# CONFIG_DEBUG_INFO is not set +# CONFIG_DEBUG_VM is not set +# CONFIG_DEBUG_VIRTUAL is not set +# CONFIG_DEBUG_WRITECOUNT is not set # CONFIG_DEBUG_MEMORY_INIT is not set +# CONFIG_DEBUG_LIST is not set +# CONFIG_DEBUG_SG is not set +# CONFIG_DEBUG_NOTIFIERS is not set +# CONFIG_DEBUG_CREDENTIALS is not set CONFIG_ARCH_WANT_FRAME_POINTERS=y -# CONFIG_FRAME_POINTER is not set +CONFIG_FRAME_POINTER=y +# CONFIG_BOOT_PRINTK_DELAY is not set +# CONFIG_RCU_TORTURE_TEST is not set # CONFIG_RCU_CPU_STALL_DETECTOR is not set +# CONFIG_BACKTRACE_SELF_TEST is not set +# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set +# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set +# CONFIG_FAULT_INJECTION is not set # CONFIG_LATENCYTOP is not set CONFIG_SYSCTL_SYSCALL_CHECK=y +# CONFIG_DEBUG_PAGEALLOC is not set CONFIG_USER_STACKTRACE_SUPPORT=y +CONFIG_NOP_TRACER=y +CONFIG_HAVE_FTRACE_NMI_ENTER=y CONFIG_HAVE_FUNCTION_TRACER=y CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y CONFIG_HAVE_FUNCTION_GRAPH_FP_TEST=y @@ -1991,17 +2045,54 @@ CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y CONFIG_HAVE_DYNAMIC_FTRACE=y CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y CONFIG_HAVE_SYSCALL_TRACEPOINTS=y +CONFIG_RING_BUFFER=y +CONFIG_FTRACE_NMI_ENTER=y +CONFIG_EVENT_TRACING=y +CONFIG_CONTEXT_SWITCH_TRACER=y +CONFIG_TRACING=y +CONFIG_GENERIC_TRACER=y CONFIG_TRACING_SUPPORT=y -# CONFIG_FTRACE is not set +CONFIG_FTRACE=y +CONFIG_FUNCTION_TRACER=y +CONFIG_FUNCTION_GRAPH_TRACER=y +# CONFIG_IRQSOFF_TRACER is not set +# CONFIG_SYSPROF_TRACER is not set +# CONFIG_SCHED_TRACER is not set +# CONFIG_FTRACE_SYSCALLS is not set +# CONFIG_BOOT_TRACER is not set +CONFIG_BRANCH_PROFILE_NONE=y +# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set +# CONFIG_PROFILE_ALL_BRANCHES is not set +# CONFIG_POWER_TRACER is not set +# CONFIG_KSYM_TRACER is not set +CONFIG_STACK_TRACER=y +# CONFIG_KMEMTRACE is not set +# CONFIG_WORKQUEUE_TRACER is not set +# CONFIG_BLK_DEV_IO_TRACE is not set +CONFIG_DYNAMIC_FTRACE=y +# CONFIG_FUNCTION_PROFILER is not set +CONFIG_FTRACE_MCOUNT_RECORD=y +# CONFIG_FTRACE_STARTUP_TEST is not set +# CONFIG_MMIOTRACE is not set +# CONFIG_RING_BUFFER_BENCHMARK is not set # CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set # CONFIG_FIREWIRE_OHCI_REMOTE_DMA is not set +# CONFIG_DYNAMIC_DEBUG is not set # CONFIG_DMA_API_DEBUG is not set # CONFIG_SAMPLES is not set CONFIG_HAVE_ARCH_KGDB=y +# CONFIG_KGDB is not set CONFIG_HAVE_ARCH_KMEMCHECK=y CONFIG_STRICT_DEVMEM=y # CONFIG_X86_VERBOSE_BOOTUP is not set # CONFIG_EARLY_PRINTK is not set +# CONFIG_DEBUG_STACKOVERFLOW is not set +# CONFIG_DEBUG_STACK_USAGE is not set +# CONFIG_DEBUG_PER_CPU_MAPS is not set +# CONFIG_X86_PTDUMP is not set +# CONFIG_DEBUG_RODATA is not set +# CONFIG_DEBUG_NX_TEST is not set +# CONFIG_IOMMU_DEBUG is not set # CONFIG_IOMMU_STRESS is not set CONFIG_HAVE_MMIOTRACE_SUPPORT=y CONFIG_IO_DELAY_TYPE_0X80=0 @@ -2013,7 +2104,10 @@ CONFIG_IO_DELAY_0X80=y # CONFIG_IO_DELAY_UDELAY is not set # CONFIG_IO_DELAY_NONE is not set CONFIG_DEFAULT_IO_DELAY_TYPE=0 +# CONFIG_DEBUG_BOOT_PARAMS is not set +# CONFIG_CPA_DEBUG is not set CONFIG_OPTIMIZE_INLINING=y +# CONFIG_DEBUG_STRICT_USER_COPY_CHECKS is not set # # Security options @@ -2132,7 +2226,7 @@ CONFIG_CRYPTO_LZF=y # CONFIG_CRYPTO_HW is not set CONFIG_HAVE_KVM=y # CONFIG_VIRTUALIZATION is not set -# CONFIG_BINARY_PRINTF is not set +CONFIG_BINARY_PRINTF=y # # Library routines @@ -2148,7 +2242,6 @@ CONFIG_CRC_ITU_T=y CONFIG_CRC32=y # CONFIG_CRC7 is not set CONFIG_LIBCRC32C=y -CONFIG_AUDIT_GENERIC=y CONFIG_ZLIB_INFLATE=y CONFIG_ZLIB_DEFLATE=y CONFIG_LZO_COMPRESS=y diff --git a/projects/generic/linux/linux.i386.conf b/projects/generic/linux/linux.i386.conf index e961371c4f..07ba1f50ca 100644 --- a/projects/generic/linux/linux.i386.conf +++ b/projects/generic/linux/linux.i386.conf @@ -123,7 +123,9 @@ CONFIG_ANON_INODES=y CONFIG_EMBEDDED=y CONFIG_UID16=y CONFIG_SYSCTL_SYSCALL=y -# CONFIG_KALLSYMS is not set +CONFIG_KALLSYMS=y +# CONFIG_KALLSYMS_ALL is not set +# CONFIG_KALLSYMS_EXTRA_PASS is not set CONFIG_HOTPLUG=y CONFIG_PRINTK=y CONFIG_BUG=y @@ -143,7 +145,9 @@ CONFIG_HAVE_PERF_EVENTS=y # Kernel Performance Events And Counters # CONFIG_PERF_EVENTS=y +CONFIG_EVENT_PROFILE=y # CONFIG_PERF_COUNTERS is not set +# CONFIG_DEBUG_PERF_USE_VMALLOC is not set # CONFIG_VM_EVENT_COUNTERS is not set CONFIG_PCI_QUIRKS=y # CONFIG_SLUB_DEBUG is not set @@ -152,7 +156,9 @@ CONFIG_PCI_QUIRKS=y CONFIG_SLUB=y # CONFIG_SLOB is not set # CONFIG_PROFILING is not set +CONFIG_TRACEPOINTS=y CONFIG_HAVE_OPROFILE=y +# CONFIG_KPROBES is not set CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y CONFIG_HAVE_IOREMAP_PROT=y CONFIG_HAVE_KPROBES=y @@ -166,6 +172,7 @@ CONFIG_HAVE_USER_RETURN_NOTIFIER=y # # GCOV-based kernel profiling # +# CONFIG_GCOV_KERNEL is not set # CONFIG_SLOW_WORK is not set CONFIG_HAVE_GENERIC_DMA_COHERENT=y CONFIG_RT_MUTEXES=y @@ -500,6 +507,7 @@ CONFIG_PCIEAER=y CONFIG_ARCH_SUPPORTS_MSI=y CONFIG_PCI_MSI=y CONFIG_PCI_LEGACY=y +# CONFIG_PCI_DEBUG is not set # CONFIG_PCI_STUB is not set CONFIG_HT_IRQ=y # CONFIG_PCI_IOV is not set @@ -587,6 +595,7 @@ CONFIG_SCTP_HMAC_SHA1=y # Network testing # # CONFIG_NET_PKTGEN is not set +# CONFIG_NET_DROP_MONITOR is not set # CONFIG_HAMRADIO is not set # CONFIG_CAN is not set # CONFIG_IRDA is not set @@ -622,6 +631,7 @@ CONFIG_CFG80211=m # CONFIG_CFG80211_DEVELOPER_WARNINGS is not set # CONFIG_CFG80211_REG_DEBUG is not set CONFIG_CFG80211_DEFAULT_PS=y +# CONFIG_CFG80211_DEBUGFS is not set # CONFIG_WIRELESS_OLD_REGULATORY is not set CONFIG_CFG80211_WEXT=y CONFIG_WIRELESS_EXT_SYSFS=y @@ -638,6 +648,7 @@ CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y CONFIG_MAC80211_RC_DEFAULT="minstrel" # CONFIG_MAC80211_MESH is not set CONFIG_MAC80211_LEDS=y +# CONFIG_MAC80211_DEBUGFS is not set # CONFIG_MAC80211_DEBUG_MENU is not set # CONFIG_WIMAX is not set CONFIG_RFKILL=m @@ -661,6 +672,8 @@ CONFIG_FW_LOADER=y CONFIG_FIRMWARE_IN_KERNEL=y CONFIG_EXTRA_FIRMWARE=" radeon/R600_rlc.bin radeon/R700_rlc.bin" CONFIG_EXTRA_FIRMWARE_DIR="firmware" +# CONFIG_DEBUG_DRIVER is not set +# CONFIG_DEBUG_DEVRES is not set # CONFIG_SYS_HYPERVISOR is not set # CONFIG_CONNECTOR is not set # CONFIG_MTD is not set @@ -922,6 +935,7 @@ CONFIG_R8169=m # CONFIG_SIS190 is not set # CONFIG_SKGE is not set CONFIG_SKY2=m +# CONFIG_SKY2_DEBUG is not set CONFIG_VIA_VELOCITY=m CONFIG_TIGON3=m CONFIG_BNX2=m @@ -954,6 +968,7 @@ CONFIG_ATH5K=m CONFIG_ATH9K_HW=m CONFIG_ATH9K_COMMON=m CONFIG_ATH9K=m +# CONFIG_ATH9K_DEBUGFS is not set CONFIG_AR9170_USB=m CONFIG_AR9170_LEDS=y CONFIG_B43=m @@ -989,6 +1004,7 @@ CONFIG_LIBIPW=m CONFIG_IWLWIFI=m CONFIG_IWLWIFI_SPECTRUM_MEASUREMENT=y # CONFIG_IWLWIFI_DEBUG is not set +# CONFIG_IWLWIFI_DEVICE_TRACING is not set CONFIG_IWLAGN=m CONFIG_IWL4965=y CONFIG_IWL5000=y @@ -2095,7 +2111,9 @@ CONFIG_EXT4_FS=y # CONFIG_EXT4_FS_XATTR is not set # CONFIG_EXT4_DEBUG is not set CONFIG_JBD=y +# CONFIG_JBD_DEBUG is not set CONFIG_JBD2=y +# CONFIG_JBD2_DEBUG is not set CONFIG_REISERFS_FS=m # CONFIG_REISERFS_CHECK is not set # CONFIG_REISERFS_PROC_INFO is not set @@ -2257,17 +2275,54 @@ CONFIG_FRAME_WARN=1024 # CONFIG_MAGIC_SYSRQ is not set # CONFIG_STRIP_ASM_SYMS is not set # CONFIG_UNUSED_SYMBOLS is not set -# CONFIG_DEBUG_FS is not set +CONFIG_DEBUG_FS=y # CONFIG_HEADERS_CHECK is not set -# CONFIG_DEBUG_KERNEL is not set +CONFIG_DEBUG_KERNEL=y +# CONFIG_DEBUG_SHIRQ is not set +# CONFIG_DETECT_SOFTLOCKUP is not set +# CONFIG_DETECT_HUNG_TASK is not set +CONFIG_SCHED_DEBUG=y +CONFIG_SCHEDSTATS=y +# CONFIG_TIMER_STATS is not set +# CONFIG_DEBUG_OBJECTS is not set +# CONFIG_DEBUG_KMEMLEAK is not set +# CONFIG_DEBUG_RT_MUTEXES is not set +# CONFIG_RT_MUTEX_TESTER is not set +# CONFIG_DEBUG_SPINLOCK is not set +# CONFIG_DEBUG_MUTEXES is not set +# CONFIG_DEBUG_LOCK_ALLOC is not set +# CONFIG_PROVE_LOCKING is not set +# CONFIG_LOCK_STAT is not set +# CONFIG_DEBUG_SPINLOCK_SLEEP is not set +# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set +CONFIG_STACKTRACE=y +# CONFIG_DEBUG_KOBJECT is not set +# CONFIG_DEBUG_HIGHMEM is not set CONFIG_DEBUG_BUGVERBOSE=y +# CONFIG_DEBUG_INFO is not set +# CONFIG_DEBUG_VM is not set +# CONFIG_DEBUG_VIRTUAL is not set +# CONFIG_DEBUG_WRITECOUNT is not set # CONFIG_DEBUG_MEMORY_INIT is not set +# CONFIG_DEBUG_LIST is not set +# CONFIG_DEBUG_SG is not set +# CONFIG_DEBUG_NOTIFIERS is not set +# CONFIG_DEBUG_CREDENTIALS is not set CONFIG_ARCH_WANT_FRAME_POINTERS=y -# CONFIG_FRAME_POINTER is not set +CONFIG_FRAME_POINTER=y +# CONFIG_BOOT_PRINTK_DELAY is not set +# CONFIG_RCU_TORTURE_TEST is not set # CONFIG_RCU_CPU_STALL_DETECTOR is not set +# CONFIG_BACKTRACE_SELF_TEST is not set +# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set +# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set +# CONFIG_FAULT_INJECTION is not set # CONFIG_LATENCYTOP is not set CONFIG_SYSCTL_SYSCALL_CHECK=y +# CONFIG_DEBUG_PAGEALLOC is not set CONFIG_USER_STACKTRACE_SUPPORT=y +CONFIG_NOP_TRACER=y +CONFIG_HAVE_FTRACE_NMI_ENTER=y CONFIG_HAVE_FUNCTION_TRACER=y CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y CONFIG_HAVE_FUNCTION_GRAPH_FP_TEST=y @@ -2275,17 +2330,52 @@ CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y CONFIG_HAVE_DYNAMIC_FTRACE=y CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y CONFIG_HAVE_SYSCALL_TRACEPOINTS=y +CONFIG_RING_BUFFER=y +CONFIG_FTRACE_NMI_ENTER=y +CONFIG_EVENT_TRACING=y +CONFIG_CONTEXT_SWITCH_TRACER=y +CONFIG_TRACING=y +CONFIG_GENERIC_TRACER=y CONFIG_TRACING_SUPPORT=y -# CONFIG_FTRACE is not set +CONFIG_FTRACE=y +CONFIG_FUNCTION_TRACER=y +# CONFIG_IRQSOFF_TRACER is not set +# CONFIG_SYSPROF_TRACER is not set +# CONFIG_SCHED_TRACER is not set +# CONFIG_FTRACE_SYSCALLS is not set +# CONFIG_BOOT_TRACER is not set +CONFIG_BRANCH_PROFILE_NONE=y +# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set +# CONFIG_PROFILE_ALL_BRANCHES is not set +# CONFIG_POWER_TRACER is not set +# CONFIG_KSYM_TRACER is not set +CONFIG_STACK_TRACER=y +# CONFIG_KMEMTRACE is not set +# CONFIG_WORKQUEUE_TRACER is not set +# CONFIG_BLK_DEV_IO_TRACE is not set +CONFIG_DYNAMIC_FTRACE=y +# CONFIG_FUNCTION_PROFILER is not set +CONFIG_FTRACE_MCOUNT_RECORD=y +# CONFIG_FTRACE_STARTUP_TEST is not set +# CONFIG_MMIOTRACE is not set +# CONFIG_RING_BUFFER_BENCHMARK is not set # CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set # CONFIG_FIREWIRE_OHCI_REMOTE_DMA is not set +# CONFIG_DYNAMIC_DEBUG is not set # CONFIG_DMA_API_DEBUG is not set # CONFIG_SAMPLES is not set CONFIG_HAVE_ARCH_KGDB=y +# CONFIG_KGDB is not set CONFIG_HAVE_ARCH_KMEMCHECK=y CONFIG_STRICT_DEVMEM=y # CONFIG_X86_VERBOSE_BOOTUP is not set # CONFIG_EARLY_PRINTK is not set +# CONFIG_DEBUG_STACKOVERFLOW is not set +# CONFIG_DEBUG_STACK_USAGE is not set +# CONFIG_DEBUG_PER_CPU_MAPS is not set +# CONFIG_X86_PTDUMP is not set +# CONFIG_DEBUG_RODATA is not set +# CONFIG_DEBUG_NX_TEST is not set # CONFIG_4KSTACKS is not set CONFIG_DOUBLEFAULT=y # CONFIG_IOMMU_STRESS is not set @@ -2299,7 +2389,10 @@ CONFIG_IO_DELAY_0X80=y # CONFIG_IO_DELAY_UDELAY is not set # CONFIG_IO_DELAY_NONE is not set CONFIG_DEFAULT_IO_DELAY_TYPE=0 +# CONFIG_DEBUG_BOOT_PARAMS is not set +# CONFIG_CPA_DEBUG is not set CONFIG_OPTIMIZE_INLINING=y +# CONFIG_DEBUG_STRICT_USER_COPY_CHECKS is not set # # Security options @@ -2416,7 +2509,7 @@ CONFIG_CRYPTO_LZF=y # CONFIG_CRYPTO_HW is not set CONFIG_HAVE_KVM=y # CONFIG_VIRTUALIZATION is not set -# CONFIG_BINARY_PRINTF is not set +CONFIG_BINARY_PRINTF=y # # Library routines diff --git a/projects/intel/linux/linux.i386.conf b/projects/intel/linux/linux.i386.conf index 7008dbea64..f4361806cf 100644 --- a/projects/intel/linux/linux.i386.conf +++ b/projects/intel/linux/linux.i386.conf @@ -123,7 +123,9 @@ CONFIG_ANON_INODES=y CONFIG_EMBEDDED=y CONFIG_UID16=y CONFIG_SYSCTL_SYSCALL=y -# CONFIG_KALLSYMS is not set +CONFIG_KALLSYMS=y +# CONFIG_KALLSYMS_ALL is not set +# CONFIG_KALLSYMS_EXTRA_PASS is not set CONFIG_HOTPLUG=y CONFIG_PRINTK=y CONFIG_BUG=y @@ -143,7 +145,9 @@ CONFIG_HAVE_PERF_EVENTS=y # Kernel Performance Events And Counters # CONFIG_PERF_EVENTS=y +CONFIG_EVENT_PROFILE=y # CONFIG_PERF_COUNTERS is not set +# CONFIG_DEBUG_PERF_USE_VMALLOC is not set # CONFIG_VM_EVENT_COUNTERS is not set CONFIG_PCI_QUIRKS=y # CONFIG_SLUB_DEBUG is not set @@ -152,7 +156,9 @@ CONFIG_PCI_QUIRKS=y CONFIG_SLUB=y # CONFIG_SLOB is not set # CONFIG_PROFILING is not set +CONFIG_TRACEPOINTS=y CONFIG_HAVE_OPROFILE=y +# CONFIG_KPROBES is not set CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y CONFIG_HAVE_IOREMAP_PROT=y CONFIG_HAVE_KPROBES=y @@ -166,6 +172,7 @@ CONFIG_HAVE_USER_RETURN_NOTIFIER=y # # GCOV-based kernel profiling # +# CONFIG_GCOV_KERNEL is not set # CONFIG_SLOW_WORK is not set CONFIG_HAVE_GENERIC_DMA_COHERENT=y CONFIG_RT_MUTEXES=y @@ -500,6 +507,7 @@ CONFIG_PCIEAER=y CONFIG_ARCH_SUPPORTS_MSI=y CONFIG_PCI_MSI=y CONFIG_PCI_LEGACY=y +# CONFIG_PCI_DEBUG is not set # CONFIG_PCI_STUB is not set CONFIG_HT_IRQ=y # CONFIG_PCI_IOV is not set @@ -587,6 +595,7 @@ CONFIG_SCTP_HMAC_SHA1=y # Network testing # # CONFIG_NET_PKTGEN is not set +# CONFIG_NET_DROP_MONITOR is not set # CONFIG_HAMRADIO is not set # CONFIG_CAN is not set # CONFIG_IRDA is not set @@ -618,6 +627,7 @@ CONFIG_CFG80211=m # CONFIG_CFG80211_DEVELOPER_WARNINGS is not set # CONFIG_CFG80211_REG_DEBUG is not set CONFIG_CFG80211_DEFAULT_PS=y +# CONFIG_CFG80211_DEBUGFS is not set # CONFIG_WIRELESS_OLD_REGULATORY is not set CONFIG_CFG80211_WEXT=y CONFIG_WIRELESS_EXT_SYSFS=y @@ -631,6 +641,7 @@ CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y CONFIG_MAC80211_RC_DEFAULT="minstrel" # CONFIG_MAC80211_MESH is not set CONFIG_MAC80211_LEDS=y +# CONFIG_MAC80211_DEBUGFS is not set # CONFIG_MAC80211_DEBUG_MENU is not set # CONFIG_WIMAX is not set CONFIG_RFKILL=m @@ -653,6 +664,8 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y CONFIG_FW_LOADER=y CONFIG_FIRMWARE_IN_KERNEL=y CONFIG_EXTRA_FIRMWARE="" +# CONFIG_DEBUG_DRIVER is not set +# CONFIG_DEBUG_DEVRES is not set # CONFIG_SYS_HYPERVISOR is not set # CONFIG_CONNECTOR is not set # CONFIG_MTD is not set @@ -880,6 +893,7 @@ CONFIG_WLAN=y CONFIG_IWLWIFI=m CONFIG_IWLWIFI_SPECTRUM_MEASUREMENT=y # CONFIG_IWLWIFI_DEBUG is not set +# CONFIG_IWLWIFI_DEVICE_TRACING is not set CONFIG_IWLAGN=m CONFIG_IWL4965=y CONFIG_IWL5000=y @@ -2040,7 +2054,9 @@ CONFIG_EXT4_FS=y # CONFIG_EXT4_FS_XATTR is not set # CONFIG_EXT4_DEBUG is not set CONFIG_JBD=y +# CONFIG_JBD_DEBUG is not set CONFIG_JBD2=y +# CONFIG_JBD2_DEBUG is not set CONFIG_REISERFS_FS=m # CONFIG_REISERFS_CHECK is not set # CONFIG_REISERFS_PROC_INFO is not set @@ -2202,17 +2218,54 @@ CONFIG_FRAME_WARN=1024 # CONFIG_MAGIC_SYSRQ is not set # CONFIG_STRIP_ASM_SYMS is not set # CONFIG_UNUSED_SYMBOLS is not set -# CONFIG_DEBUG_FS is not set +CONFIG_DEBUG_FS=y # CONFIG_HEADERS_CHECK is not set -# CONFIG_DEBUG_KERNEL is not set +CONFIG_DEBUG_KERNEL=y +# CONFIG_DEBUG_SHIRQ is not set +# CONFIG_DETECT_SOFTLOCKUP is not set +# CONFIG_DETECT_HUNG_TASK is not set +CONFIG_SCHED_DEBUG=y +CONFIG_SCHEDSTATS=y +# CONFIG_TIMER_STATS is not set +# CONFIG_DEBUG_OBJECTS is not set +# CONFIG_DEBUG_KMEMLEAK is not set +# CONFIG_DEBUG_RT_MUTEXES is not set +# CONFIG_RT_MUTEX_TESTER is not set +# CONFIG_DEBUG_SPINLOCK is not set +# CONFIG_DEBUG_MUTEXES is not set +# CONFIG_DEBUG_LOCK_ALLOC is not set +# CONFIG_PROVE_LOCKING is not set +# CONFIG_LOCK_STAT is not set +# CONFIG_DEBUG_SPINLOCK_SLEEP is not set +# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set +CONFIG_STACKTRACE=y +# CONFIG_DEBUG_KOBJECT is not set +# CONFIG_DEBUG_HIGHMEM is not set CONFIG_DEBUG_BUGVERBOSE=y +# CONFIG_DEBUG_INFO is not set +# CONFIG_DEBUG_VM is not set +# CONFIG_DEBUG_VIRTUAL is not set +# CONFIG_DEBUG_WRITECOUNT is not set # CONFIG_DEBUG_MEMORY_INIT is not set +# CONFIG_DEBUG_LIST is not set +# CONFIG_DEBUG_SG is not set +# CONFIG_DEBUG_NOTIFIERS is not set +# CONFIG_DEBUG_CREDENTIALS is not set CONFIG_ARCH_WANT_FRAME_POINTERS=y -# CONFIG_FRAME_POINTER is not set +CONFIG_FRAME_POINTER=y +# CONFIG_BOOT_PRINTK_DELAY is not set +# CONFIG_RCU_TORTURE_TEST is not set # CONFIG_RCU_CPU_STALL_DETECTOR is not set +# CONFIG_BACKTRACE_SELF_TEST is not set +# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set +# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set +# CONFIG_FAULT_INJECTION is not set # CONFIG_LATENCYTOP is not set CONFIG_SYSCTL_SYSCALL_CHECK=y +# CONFIG_DEBUG_PAGEALLOC is not set CONFIG_USER_STACKTRACE_SUPPORT=y +CONFIG_NOP_TRACER=y +CONFIG_HAVE_FTRACE_NMI_ENTER=y CONFIG_HAVE_FUNCTION_TRACER=y CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y CONFIG_HAVE_FUNCTION_GRAPH_FP_TEST=y @@ -2220,17 +2273,52 @@ CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y CONFIG_HAVE_DYNAMIC_FTRACE=y CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y CONFIG_HAVE_SYSCALL_TRACEPOINTS=y +CONFIG_RING_BUFFER=y +CONFIG_FTRACE_NMI_ENTER=y +CONFIG_EVENT_TRACING=y +CONFIG_CONTEXT_SWITCH_TRACER=y +CONFIG_TRACING=y +CONFIG_GENERIC_TRACER=y CONFIG_TRACING_SUPPORT=y -# CONFIG_FTRACE is not set +CONFIG_FTRACE=y +CONFIG_FUNCTION_TRACER=y +# CONFIG_IRQSOFF_TRACER is not set +# CONFIG_SYSPROF_TRACER is not set +# CONFIG_SCHED_TRACER is not set +# CONFIG_FTRACE_SYSCALLS is not set +# CONFIG_BOOT_TRACER is not set +CONFIG_BRANCH_PROFILE_NONE=y +# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set +# CONFIG_PROFILE_ALL_BRANCHES is not set +# CONFIG_POWER_TRACER is not set +# CONFIG_KSYM_TRACER is not set +CONFIG_STACK_TRACER=y +# CONFIG_KMEMTRACE is not set +# CONFIG_WORKQUEUE_TRACER is not set +# CONFIG_BLK_DEV_IO_TRACE is not set +CONFIG_DYNAMIC_FTRACE=y +# CONFIG_FUNCTION_PROFILER is not set +CONFIG_FTRACE_MCOUNT_RECORD=y +# CONFIG_FTRACE_STARTUP_TEST is not set +# CONFIG_MMIOTRACE is not set +# CONFIG_RING_BUFFER_BENCHMARK is not set # CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set # CONFIG_FIREWIRE_OHCI_REMOTE_DMA is not set +# CONFIG_DYNAMIC_DEBUG is not set # CONFIG_DMA_API_DEBUG is not set # CONFIG_SAMPLES is not set CONFIG_HAVE_ARCH_KGDB=y +# CONFIG_KGDB is not set CONFIG_HAVE_ARCH_KMEMCHECK=y CONFIG_STRICT_DEVMEM=y # CONFIG_X86_VERBOSE_BOOTUP is not set # CONFIG_EARLY_PRINTK is not set +# CONFIG_DEBUG_STACKOVERFLOW is not set +# CONFIG_DEBUG_STACK_USAGE is not set +# CONFIG_DEBUG_PER_CPU_MAPS is not set +# CONFIG_X86_PTDUMP is not set +# CONFIG_DEBUG_RODATA is not set +# CONFIG_DEBUG_NX_TEST is not set # CONFIG_4KSTACKS is not set CONFIG_DOUBLEFAULT=y # CONFIG_IOMMU_STRESS is not set @@ -2244,7 +2332,10 @@ CONFIG_IO_DELAY_0X80=y # CONFIG_IO_DELAY_UDELAY is not set # CONFIG_IO_DELAY_NONE is not set CONFIG_DEFAULT_IO_DELAY_TYPE=0 +# CONFIG_DEBUG_BOOT_PARAMS is not set +# CONFIG_CPA_DEBUG is not set CONFIG_OPTIMIZE_INLINING=y +# CONFIG_DEBUG_STRICT_USER_COPY_CHECKS is not set # # Security options @@ -2361,7 +2452,7 @@ CONFIG_CRYPTO_LZF=y # CONFIG_CRYPTO_HW is not set CONFIG_HAVE_KVM=y # CONFIG_VIRTUALIZATION is not set -# CONFIG_BINARY_PRINTF is not set +CONFIG_BINARY_PRINTF=y # # Library routines diff --git a/projects/intel/linux/linux.x86_64.conf b/projects/intel/linux/linux.x86_64.conf index e2789b0706..03a7a8614e 100644 --- a/projects/intel/linux/linux.x86_64.conf +++ b/projects/intel/linux/linux.x86_64.conf @@ -123,7 +123,9 @@ CONFIG_SYSCTL=y CONFIG_ANON_INODES=y CONFIG_EMBEDDED=y CONFIG_SYSCTL_SYSCALL=y -# CONFIG_KALLSYMS is not set +CONFIG_KALLSYMS=y +# CONFIG_KALLSYMS_ALL is not set +# CONFIG_KALLSYMS_EXTRA_PASS is not set CONFIG_HOTPLUG=y CONFIG_PRINTK=y CONFIG_BUG=y @@ -143,7 +145,9 @@ CONFIG_HAVE_PERF_EVENTS=y # Kernel Performance Events And Counters # CONFIG_PERF_EVENTS=y +CONFIG_EVENT_PROFILE=y # CONFIG_PERF_COUNTERS is not set +# CONFIG_DEBUG_PERF_USE_VMALLOC is not set # CONFIG_VM_EVENT_COUNTERS is not set CONFIG_PCI_QUIRKS=y # CONFIG_SLUB_DEBUG is not set @@ -152,7 +156,9 @@ CONFIG_PCI_QUIRKS=y CONFIG_SLUB=y # CONFIG_SLOB is not set # CONFIG_PROFILING is not set +CONFIG_TRACEPOINTS=y CONFIG_HAVE_OPROFILE=y +# CONFIG_KPROBES is not set CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y CONFIG_HAVE_IOREMAP_PROT=y CONFIG_HAVE_KPROBES=y @@ -166,6 +172,7 @@ CONFIG_HAVE_USER_RETURN_NOTIFIER=y # # GCOV-based kernel profiling # +# CONFIG_GCOV_KERNEL is not set # CONFIG_SLOW_WORK is not set # CONFIG_HAVE_GENERIC_DMA_COHERENT is not set CONFIG_RT_MUTEXES=y @@ -290,6 +297,7 @@ CONFIG_GART_IOMMU=y CONFIG_SWIOTLB=y CONFIG_IOMMU_HELPER=y # CONFIG_IOMMU_API is not set +# CONFIG_MAXSMP is not set CONFIG_NR_CPUS=8 CONFIG_SCHED_SMT=y CONFIG_SCHED_MC=y @@ -476,6 +484,7 @@ CONFIG_PCIEAER=y CONFIG_ARCH_SUPPORTS_MSI=y CONFIG_PCI_MSI=y CONFIG_PCI_LEGACY=y +# CONFIG_PCI_DEBUG is not set # CONFIG_PCI_STUB is not set CONFIG_HT_IRQ=y # CONFIG_PCI_IOV is not set @@ -560,6 +569,7 @@ CONFIG_SCTP_HMAC_SHA1=y # Network testing # # CONFIG_NET_PKTGEN is not set +# CONFIG_NET_DROP_MONITOR is not set # CONFIG_HAMRADIO is not set # CONFIG_CAN is not set # CONFIG_IRDA is not set @@ -591,6 +601,7 @@ CONFIG_CFG80211=m # CONFIG_CFG80211_DEVELOPER_WARNINGS is not set # CONFIG_CFG80211_REG_DEBUG is not set CONFIG_CFG80211_DEFAULT_PS=y +# CONFIG_CFG80211_DEBUGFS is not set # CONFIG_WIRELESS_OLD_REGULATORY is not set CONFIG_CFG80211_WEXT=y CONFIG_WIRELESS_EXT_SYSFS=y @@ -604,6 +615,7 @@ CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y CONFIG_MAC80211_RC_DEFAULT="minstrel" # CONFIG_MAC80211_MESH is not set CONFIG_MAC80211_LEDS=y +# CONFIG_MAC80211_DEBUGFS is not set # CONFIG_MAC80211_DEBUG_MENU is not set # CONFIG_WIMAX is not set CONFIG_RFKILL=m @@ -626,6 +638,8 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y CONFIG_FW_LOADER=y CONFIG_FIRMWARE_IN_KERNEL=y CONFIG_EXTRA_FIRMWARE="" +# CONFIG_DEBUG_DRIVER is not set +# CONFIG_DEBUG_DEVRES is not set # CONFIG_SYS_HYPERVISOR is not set # CONFIG_CONNECTOR is not set # CONFIG_MTD is not set @@ -851,6 +865,7 @@ CONFIG_WLAN=y CONFIG_IWLWIFI=m CONFIG_IWLWIFI_SPECTRUM_MEASUREMENT=y # CONFIG_IWLWIFI_DEBUG is not set +# CONFIG_IWLWIFI_DEVICE_TRACING is not set CONFIG_IWLAGN=m CONFIG_IWL4965=y CONFIG_IWL5000=y @@ -1998,7 +2013,9 @@ CONFIG_EXT4_FS=y # CONFIG_EXT4_FS_XATTR is not set # CONFIG_EXT4_DEBUG is not set CONFIG_JBD=y +# CONFIG_JBD_DEBUG is not set CONFIG_JBD2=y +# CONFIG_JBD2_DEBUG is not set CONFIG_REISERFS_FS=m # CONFIG_REISERFS_CHECK is not set # CONFIG_REISERFS_PROC_INFO is not set @@ -2160,17 +2177,53 @@ CONFIG_FRAME_WARN=1024 # CONFIG_MAGIC_SYSRQ is not set # CONFIG_STRIP_ASM_SYMS is not set # CONFIG_UNUSED_SYMBOLS is not set -# CONFIG_DEBUG_FS is not set +CONFIG_DEBUG_FS=y # CONFIG_HEADERS_CHECK is not set -# CONFIG_DEBUG_KERNEL is not set +CONFIG_DEBUG_KERNEL=y +# CONFIG_DEBUG_SHIRQ is not set +# CONFIG_DETECT_SOFTLOCKUP is not set +# CONFIG_DETECT_HUNG_TASK is not set +CONFIG_SCHED_DEBUG=y +CONFIG_SCHEDSTATS=y +# CONFIG_TIMER_STATS is not set +# CONFIG_DEBUG_OBJECTS is not set +# CONFIG_DEBUG_KMEMLEAK is not set +# CONFIG_DEBUG_RT_MUTEXES is not set +# CONFIG_RT_MUTEX_TESTER is not set +# CONFIG_DEBUG_SPINLOCK is not set +# CONFIG_DEBUG_MUTEXES is not set +# CONFIG_DEBUG_LOCK_ALLOC is not set +# CONFIG_PROVE_LOCKING is not set +# CONFIG_LOCK_STAT is not set +# CONFIG_DEBUG_SPINLOCK_SLEEP is not set +# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set +CONFIG_STACKTRACE=y +# CONFIG_DEBUG_KOBJECT is not set CONFIG_DEBUG_BUGVERBOSE=y +# CONFIG_DEBUG_INFO is not set +# CONFIG_DEBUG_VM is not set +# CONFIG_DEBUG_VIRTUAL is not set +# CONFIG_DEBUG_WRITECOUNT is not set # CONFIG_DEBUG_MEMORY_INIT is not set +# CONFIG_DEBUG_LIST is not set +# CONFIG_DEBUG_SG is not set +# CONFIG_DEBUG_NOTIFIERS is not set +# CONFIG_DEBUG_CREDENTIALS is not set CONFIG_ARCH_WANT_FRAME_POINTERS=y -# CONFIG_FRAME_POINTER is not set +CONFIG_FRAME_POINTER=y +# CONFIG_BOOT_PRINTK_DELAY is not set +# CONFIG_RCU_TORTURE_TEST is not set # CONFIG_RCU_CPU_STALL_DETECTOR is not set +# CONFIG_BACKTRACE_SELF_TEST is not set +# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set +# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set +# CONFIG_FAULT_INJECTION is not set # CONFIG_LATENCYTOP is not set CONFIG_SYSCTL_SYSCALL_CHECK=y +# CONFIG_DEBUG_PAGEALLOC is not set CONFIG_USER_STACKTRACE_SUPPORT=y +CONFIG_NOP_TRACER=y +CONFIG_HAVE_FTRACE_NMI_ENTER=y CONFIG_HAVE_FUNCTION_TRACER=y CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y CONFIG_HAVE_FUNCTION_GRAPH_FP_TEST=y @@ -2178,17 +2231,54 @@ CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y CONFIG_HAVE_DYNAMIC_FTRACE=y CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y CONFIG_HAVE_SYSCALL_TRACEPOINTS=y +CONFIG_RING_BUFFER=y +CONFIG_FTRACE_NMI_ENTER=y +CONFIG_EVENT_TRACING=y +CONFIG_CONTEXT_SWITCH_TRACER=y +CONFIG_TRACING=y +CONFIG_GENERIC_TRACER=y CONFIG_TRACING_SUPPORT=y -# CONFIG_FTRACE is not set +CONFIG_FTRACE=y +CONFIG_FUNCTION_TRACER=y +CONFIG_FUNCTION_GRAPH_TRACER=y +# CONFIG_IRQSOFF_TRACER is not set +# CONFIG_SYSPROF_TRACER is not set +# CONFIG_SCHED_TRACER is not set +# CONFIG_FTRACE_SYSCALLS is not set +# CONFIG_BOOT_TRACER is not set +CONFIG_BRANCH_PROFILE_NONE=y +# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set +# CONFIG_PROFILE_ALL_BRANCHES is not set +# CONFIG_POWER_TRACER is not set +# CONFIG_KSYM_TRACER is not set +CONFIG_STACK_TRACER=y +# CONFIG_KMEMTRACE is not set +# CONFIG_WORKQUEUE_TRACER is not set +# CONFIG_BLK_DEV_IO_TRACE is not set +CONFIG_DYNAMIC_FTRACE=y +# CONFIG_FUNCTION_PROFILER is not set +CONFIG_FTRACE_MCOUNT_RECORD=y +# CONFIG_FTRACE_STARTUP_TEST is not set +# CONFIG_MMIOTRACE is not set +# CONFIG_RING_BUFFER_BENCHMARK is not set # CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set # CONFIG_FIREWIRE_OHCI_REMOTE_DMA is not set +# CONFIG_DYNAMIC_DEBUG is not set # CONFIG_DMA_API_DEBUG is not set # CONFIG_SAMPLES is not set CONFIG_HAVE_ARCH_KGDB=y +# CONFIG_KGDB is not set CONFIG_HAVE_ARCH_KMEMCHECK=y CONFIG_STRICT_DEVMEM=y # CONFIG_X86_VERBOSE_BOOTUP is not set # CONFIG_EARLY_PRINTK is not set +# CONFIG_DEBUG_STACKOVERFLOW is not set +# CONFIG_DEBUG_STACK_USAGE is not set +# CONFIG_DEBUG_PER_CPU_MAPS is not set +# CONFIG_X86_PTDUMP is not set +# CONFIG_DEBUG_RODATA is not set +# CONFIG_DEBUG_NX_TEST is not set +# CONFIG_IOMMU_DEBUG is not set # CONFIG_IOMMU_STRESS is not set CONFIG_HAVE_MMIOTRACE_SUPPORT=y CONFIG_IO_DELAY_TYPE_0X80=0 @@ -2200,7 +2290,10 @@ CONFIG_IO_DELAY_0X80=y # CONFIG_IO_DELAY_UDELAY is not set # CONFIG_IO_DELAY_NONE is not set CONFIG_DEFAULT_IO_DELAY_TYPE=0 +# CONFIG_DEBUG_BOOT_PARAMS is not set +# CONFIG_CPA_DEBUG is not set CONFIG_OPTIMIZE_INLINING=y +# CONFIG_DEBUG_STRICT_USER_COPY_CHECKS is not set # # Security options @@ -2319,7 +2412,7 @@ CONFIG_CRYPTO_LZF=y # CONFIG_CRYPTO_HW is not set CONFIG_HAVE_KVM=y # CONFIG_VIRTUALIZATION is not set -# CONFIG_BINARY_PRINTF is not set +CONFIG_BINARY_PRINTF=y # # Library routines From e2268d59a61d292b8b8c802ce0709d3f6a6d8441 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Sun, 2 May 2010 16:18:05 +0200 Subject: [PATCH 257/320] new package: - add package grep, we need an full featured grep for upcoming pm-utils --- packages/sysutils/busybox/install | 3 ++ packages/sysutils/grep/build | 14 +++++++ packages/sysutils/grep/install | 6 +++ .../grep/patches/10-grep_fix-0.1.diff | 42 +++++++++++++++++++ packages/sysutils/grep/url | 1 + 5 files changed, 66 insertions(+) create mode 100755 packages/sysutils/grep/build create mode 100755 packages/sysutils/grep/install create mode 100644 packages/sysutils/grep/patches/10-grep_fix-0.1.diff create mode 100644 packages/sysutils/grep/url diff --git a/packages/sysutils/busybox/install b/packages/sysutils/busybox/install index 3fdc1919e3..c625bf2074 100755 --- a/packages/sysutils/busybox/install +++ b/packages/sysutils/busybox/install @@ -55,3 +55,6 @@ USER_PWD="`$ROOT/$TOOLCHAIN/bin/cryptpw $USER_PASSWORD`" mkdir -p $INSTALL/etc/network cp $PKG_DIR/config/interfaces $INSTALL/etc/network + +# we need an full-featured grep for pm-utils, so we install this :-( + $SCRIPTS/install grep diff --git a/packages/sysutils/grep/build b/packages/sysutils/grep/build new file mode 100755 index 0000000000..05c6f139e4 --- /dev/null +++ b/packages/sysutils/grep/build @@ -0,0 +1,14 @@ +#!/bin/sh + +. config/options + +$SCRIPTS/build toolchain + +cd $PKG_BUILD +./configure --host=$TARGET_NAME \ + --build=$HOST_NAME \ + --prefix=/usr \ + --enable-shared \ + --disable-static \ + +make \ No newline at end of file diff --git a/packages/sysutils/grep/install b/packages/sysutils/grep/install new file mode 100755 index 0000000000..fda81c3a2a --- /dev/null +++ b/packages/sysutils/grep/install @@ -0,0 +1,6 @@ +#!/bin/sh + +. config/options + +mkdir -p $INSTALL/usr/bin + cp -P $PKG_BUILD/src/grep $INSTALL/usr/bin diff --git a/packages/sysutils/grep/patches/10-grep_fix-0.1.diff b/packages/sysutils/grep/patches/10-grep_fix-0.1.diff new file mode 100644 index 0000000000..3e60903ddd --- /dev/null +++ b/packages/sysutils/grep/patches/10-grep_fix-0.1.diff @@ -0,0 +1,42 @@ +Hi Nelson, + +Thanks for the report. +I debated whether to add an entry to NEWS, but opted not to, +since it is unlikely that anyone will see the result of this fix. + +Here's the patch: + +From 651d212abe771d2a32db746895ae28dd434527b6 Mon Sep 17 00:00:00 2001 +From: Jim Meyering redhat.com> +Date: Wed, 7 Apr 2010 13:36:02 +0200 +Subject: [PATCH] grep: make kwset's obstack use xmalloc, not malloc + +This insidious bug could make grep fail to diagnose a failed malloc, +and then proceed to dereference the resulting NULL pointer. +Note that this bug was unlikely ever to cause real trouble; without +the fix, grep would segfault upon OOM, now it exits with a diagnostic. +* src/kwset.c (malloc) [GREP]: Define without the "(s)" macro +parameter, so that unadorned uses of malloc are also mapped to xmalloc. +One such use is in the expansion of obstack_init. +Report and patch by Nelson H. F. Beebe, in +http://thread.gmane.org/gmane.comp.gnu.grep.bugs/2995 +--- + src/kwset.c | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +diff --git a/src/kwset.c b/src/kwset.c +index 050562e..995be79 100644 +--- a/src/kwset.c ++++ b/src/kwset.c +@@ -40,7 +40,7 @@ + #ifdef GREP + # include "xalloc.h" + # undef malloc +-# define malloc(s) xmalloc(s) ++# define malloc xmalloc + #endif + + #define NCHAR (UCHAR_MAX + 1) +-- +1.7.1.rc0.212.gbd88f + diff --git a/packages/sysutils/grep/url b/packages/sysutils/grep/url new file mode 100644 index 0000000000..37b71ebbd5 --- /dev/null +++ b/packages/sysutils/grep/url @@ -0,0 +1 @@ +ftp://ftp-stud.fht-esslingen.de/pub/Mirrors/ftp.gnu.org/grep/grep-2.6.3.tar.gz \ No newline at end of file From 3aa4f4cdaa77d3367f7750a5765a4a25570a6eef Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Sun, 2 May 2010 16:19:20 +0200 Subject: [PATCH 258/320] busybox: - add applet id (needed for pm-utils) - remove package grep (we have now the full featured grep) - add applet ifplugd --- packages/sysutils/busybox/config/busybox.conf | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/packages/sysutils/busybox/config/busybox.conf b/packages/sysutils/busybox/config/busybox.conf index e19516e704..e4b7c98d9d 100644 --- a/packages/sysutils/busybox/config/busybox.conf +++ b/packages/sysutils/busybox/config/busybox.conf @@ -1,7 +1,7 @@ # # Automatically generated make config: don't edit # Busybox version: 1.16.1 -# Mon Apr 12 16:04:50 2010 +# Sun May 2 15:07:06 2010 # CONFIG_HAVE_DOT_CONFIG=y @@ -186,7 +186,7 @@ CONFIG_FEATURE_ENV_LONG_OPTIONS=y CONFIG_HEAD=y CONFIG_FEATURE_FANCY_HEAD=y # CONFIG_HOSTID is not set -# CONFIG_ID is not set +CONFIG_ID=y CONFIG_INSTALL=y CONFIG_FEATURE_INSTALL_LONG_OPTIONS=y # CONFIG_LENGTH is not set @@ -367,10 +367,10 @@ CONFIG_FEATURE_FIND_PATH=y # CONFIG_FEATURE_FIND_REGEX is not set # CONFIG_FEATURE_FIND_CONTEXT is not set CONFIG_FEATURE_FIND_LINKS=y -CONFIG_GREP=y -CONFIG_FEATURE_GREP_EGREP_ALIAS=y -CONFIG_FEATURE_GREP_FGREP_ALIAS=y -CONFIG_FEATURE_GREP_CONTEXT=y +# CONFIG_GREP is not set +# CONFIG_FEATURE_GREP_EGREP_ALIAS is not set +# CONFIG_FEATURE_GREP_FGREP_ALIAS is not set +# CONFIG_FEATURE_GREP_CONTEXT is not set CONFIG_XARGS=y CONFIG_FEATURE_XARGS_SUPPORT_CONFIRMATION=y CONFIG_FEATURE_XARGS_SUPPORT_QUOTES=y @@ -684,7 +684,7 @@ CONFIG_FEATURE_IFCONFIG_STATUS=y CONFIG_FEATURE_IFCONFIG_HW=y CONFIG_FEATURE_IFCONFIG_BROADCAST_PLUS=y # CONFIG_IFENSLAVE is not set -# CONFIG_IFPLUGD is not set +CONFIG_IFPLUGD=y CONFIG_IFUPDOWN=y CONFIG_IFUPDOWN_IFSTATE_PATH="/var/run/ifstate" CONFIG_FEATURE_IFUPDOWN_IP=y From 2f8153a31befd145f403aec2b5024143784c3634 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Sun, 2 May 2010 16:19:41 +0200 Subject: [PATCH 259/320] new package: - add package pm-utils --- packages/sysutils/pm-utils/build | 15 ++++++++++ packages/sysutils/pm-utils/install | 47 ++++++++++++++++++++++++++++++ packages/sysutils/pm-utils/url | 1 + 3 files changed, 63 insertions(+) create mode 100755 packages/sysutils/pm-utils/build create mode 100755 packages/sysutils/pm-utils/install create mode 100644 packages/sysutils/pm-utils/url diff --git a/packages/sysutils/pm-utils/build b/packages/sysutils/pm-utils/build new file mode 100755 index 0000000000..1733fbe5bd --- /dev/null +++ b/packages/sysutils/pm-utils/build @@ -0,0 +1,15 @@ +#!/bin/sh + +. config/options + +$SCRIPTS/build toolchain + +cd $PKG_BUILD +./configure --host=$TARGET_NAME \ + --build=$HOST_NAME \ + --prefix=/usr \ + --sysconfdir=/etc \ + --datadir=/usr/share \ + --localstatedir=/var \ + +make diff --git a/packages/sysutils/pm-utils/install b/packages/sysutils/pm-utils/install new file mode 100755 index 0000000000..c5b626e3ab --- /dev/null +++ b/packages/sysutils/pm-utils/install @@ -0,0 +1,47 @@ +#!/bin/sh + +. config/options + +$SCRIPTS/install grep + +mkdir -p $INSTALL/etc/pm/config.d +mkdir -p $INSTALL/etc/pm/power.d +mkdir -p $INSTALL/etc/pm/sleep.d + +mkdir -p $INSTALL/usr/bin + for file in import-fdi-quirkdb on_ac_power pm-is-supported; do + cp -P $PKG_BUILD/src/$file $INSTALL/usr/bin + done + +mkdir -p $INSTALL/usr/lib/pm-utils/bin + for file in pm-action pm-pmu pm-reset-swap service; do + cp -P $PKG_BUILD/src/$file $INSTALL/usr/lib/pm-utils/bin + done + +mkdir -p $INSTALL/usr/lib/pm-utils/ + for file in defaults functions pm-functions; do + cp -P $PKG_BUILD/pm/$file $INSTALL/usr/lib/pm-utils + done + +mkdir -p $INSTALL/usr/lib/pm-utils/module.d + for file in kernel tuxonice uswsusp; do + cp -P $PKG_BUILD/pm/module.d/$file $INSTALL/usr/lib/pm-utils/module.d + done + +mkdir -p $INSTALL/usr/lib/pm-utils/power.d + for file in sched-powersave; do + cp -P $PKG_BUILD/pm/power.d/$file $INSTALL/usr/lib/pm-utils/power.d + chmod +x $INSTALL/usr/lib/pm-utils/power.d/$file + done + +mkdir -p $INSTALL/usr/lib/pm-utils/sleep.d + for file in 00logging 00powersave 01grub 49bluetooth 55NetworkManager 75modules 90clock 94cpufreq 95led 98video-quirk-db-handler 99video; do + cp -P $PKG_BUILD/pm/sleep.d/$file $INSTALL/usr/lib/pm-utils/sleep.d + chmod +x $INSTALL/usr/lib/pm-utils/sleep.d/$file + done + +mkdir -p $INSTALL/usr/sbin + cp -P $PKG_BUILD/src/pm-powersave $INSTALL/usr/sbin + for file in pm-hibernate pm-suspend pm-suspend-hybrid; do + ln -sf /usr/lib/pm-utils/bin/pm-action $INSTALL/usr/sbin/$file + done diff --git a/packages/sysutils/pm-utils/url b/packages/sysutils/pm-utils/url new file mode 100644 index 0000000000..74e83fcab0 --- /dev/null +++ b/packages/sysutils/pm-utils/url @@ -0,0 +1 @@ +http://sources.openelec.tv/svn/pm-utils-20100428.tar.bz2 \ No newline at end of file From 131603f472f32f23ada536fccc48a1a070963a49 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Sun, 2 May 2010 16:21:16 +0200 Subject: [PATCH 260/320] busybox: - mount debugfs (for ureadahead) - create /var/lib/ureadahead and /storage/.cache/ureadahead --- packages/sysutils/busybox/init.d/05_mount_filesystem | 1 + packages/sysutils/busybox/init.d/06_make_directorys | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/packages/sysutils/busybox/init.d/05_mount_filesystem b/packages/sysutils/busybox/init.d/05_mount_filesystem index 6435ec78ac..9a7641e436 100755 --- a/packages/sysutils/busybox/init.d/05_mount_filesystem +++ b/packages/sysutils/busybox/init.d/05_mount_filesystem @@ -6,3 +6,4 @@ progress "mounting needed filesystems" $IONICE mount -n -t ramfs none /var + $IONICE mount -n -t debugfs none /sys/kernel/debug diff --git a/packages/sysutils/busybox/init.d/06_make_directorys b/packages/sysutils/busybox/init.d/06_make_directorys index fde0d0c8f8..785d3a2ce5 100755 --- a/packages/sysutils/busybox/init.d/06_make_directorys +++ b/packages/sysutils/busybox/init.d/06_make_directorys @@ -23,3 +23,7 @@ progress "make variable directory structure" $IONICE mkdir -p /var/lib/polkit-1 \ /var/lib/udisks \ /var/lib/upower + +# ureadahead: + $IONICE mkdir -p /storage/.cache/ureadahead + ln -sf /storage/.cache/ureadahead /var/lib/ureadahead From badbf085ffa6f542b787f85e9e0c30fb414a4fd1 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Sun, 2 May 2010 16:22:21 +0200 Subject: [PATCH 261/320] lcdproc: - rework init script - add sleep from 11 sec to ensure irserver is already loaded --- packages/sysutils/lcdproc/init.d/33_lcdproc | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/packages/sysutils/lcdproc/init.d/33_lcdproc b/packages/sysutils/lcdproc/init.d/33_lcdproc index a64dcfcb81..8d3480afc8 100755 --- a/packages/sysutils/lcdproc/init.d/33_lcdproc +++ b/packages/sysutils/lcdproc/init.d/33_lcdproc @@ -2,12 +2,16 @@ # # runlevels: openelec, textmode -[ -f /storage/.config/lcd.conf ] && . /storage/.config/lcd.conf +( + [ -f /storage/.config/lcd.conf ] && . /storage/.config/lcd.conf || exit 0 -if [ ! "$LCD_DRIVER" = "none" -a -z "$LCD_DRIVER" ]; then + if [ ! "$LCD_DRIVER" = none ]; then - progress "Starting LCD daemon" + progress "Starting LCD daemon with driver: $LCD_DRIVER" - LCDd -c /etc/LCDd.conf -d $LCD_DRIVER > /dev/null 2>&1 + usleep 10000000 # sleep 10sec. to for irserver loading -fi \ No newline at end of file + LCDd -c /etc/LCDd.conf -d $LCD_DRIVER > /dev/null 2>&1 + + fi +)& \ No newline at end of file From dd7237950a52880e5c0f13a5cd83f7112d0bf389 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Sun, 2 May 2010 16:23:28 +0200 Subject: [PATCH 262/320] image: - install pm-utils - install ureadahead --- packages/image/install | 3 +++ 1 file changed, 3 insertions(+) diff --git a/packages/image/install b/packages/image/install index 12d0bece25..ef78007ecd 100755 --- a/packages/image/install +++ b/packages/image/install @@ -56,6 +56,9 @@ case "$2" in $SCRIPTS/install busybox $SCRIPTS/install util-linux-ng + $SCRIPTS/install pm-utils + $SCRIPTS/install ureadahead + echo "OpenELEC" > $INSTALL/etc/distribution echo "$PROJECT.$TARGET_ARCH" > $INSTALL/etc/arch echo "$OPENELEC_VERSION" > $INSTALL/etc/version From 4d479bc6a7a8719efbe7eddaea6dfcdab63f3234 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Sun, 2 May 2010 18:46:46 +0200 Subject: [PATCH 263/320] projects/*/linux: - remove swap support - remove hibernation support (incl. toxonice) because wakeup needs longer as an fresh boot --- projects/ION/linux/linux.i386.conf | 28 +------------------------ projects/ION/linux/linux.x86_64.conf | 28 +------------------------ projects/generic/linux/linux.i386.conf | 29 +------------------------- projects/intel/linux/linux.i386.conf | 29 +------------------------- projects/intel/linux/linux.x86_64.conf | 29 +------------------------- 5 files changed, 5 insertions(+), 138 deletions(-) diff --git a/projects/ION/linux/linux.i386.conf b/projects/ION/linux/linux.i386.conf index 3728529dfa..ab12dee30b 100644 --- a/projects/ION/linux/linux.i386.conf +++ b/projects/ION/linux/linux.i386.conf @@ -70,7 +70,7 @@ CONFIG_HAVE_KERNEL_LZO=y # CONFIG_KERNEL_BZIP2 is not set CONFIG_KERNEL_LZMA=y # CONFIG_KERNEL_LZO is not set -CONFIG_SWAP=y +# CONFIG_SWAP is not set CONFIG_SYSVIPC=y CONFIG_SYSVIPC_SYSCTL=y CONFIG_POSIX_MQUEUE=y @@ -368,7 +368,6 @@ CONFIG_HZ=300 CONFIG_SCHED_HRTICK=y CONFIG_KEXEC=y CONFIG_CRASH_DUMP=y -# CONFIG_KEXEC_JUMP is not set CONFIG_PHYSICAL_START=0x400000 # CONFIG_RELOCATABLE is not set CONFIG_PHYSICAL_ALIGN=0x400000 @@ -388,30 +387,6 @@ CONFIG_PM_SLEEP_SMP=y CONFIG_PM_SLEEP=y CONFIG_SUSPEND=y CONFIG_SUSPEND_FREEZER=y -CONFIG_HIBERNATION_NVS=y -CONFIG_HIBERNATION=y -CONFIG_PM_STD_PARTITION="" -CONFIG_TOI_CORE=y - -# -# Image Storage (you need at least one allocator) -# -CONFIG_TOI_FILE=y -# CONFIG_TOI_SWAP is not set - -# -# General Options -# -CONFIG_TOI_CRYPTO=y -CONFIG_TOI_USERUI=y -CONFIG_TOI_USERUI_DEFAULT_PATH="/usr/sbin/tuxoniceui_text" -CONFIG_TOI_KEEP_IMAGE=y -CONFIG_TOI_REPLACE_SWSUSP=y -# CONFIG_TOI_IGNORE_LATE_INITCALL is not set -CONFIG_TOI_DEFAULT_WAIT=25 -CONFIG_TOI_DEFAULT_EXTRA_PAGES_ALLOWANCE=2000 -# CONFIG_TOI_CHECKSUM is not set -CONFIG_TOI=y CONFIG_PM_RUNTIME=y CONFIG_ACPI=y CONFIG_ACPI_SLEEP=y @@ -2260,7 +2235,6 @@ CONFIG_CRYPTO_DES=y # CONFIG_CRYPTO_DEFLATE is not set CONFIG_CRYPTO_ZLIB=y CONFIG_CRYPTO_LZO=y -CONFIG_CRYPTO_LZF=y # # Random Number Generation diff --git a/projects/ION/linux/linux.x86_64.conf b/projects/ION/linux/linux.x86_64.conf index 2206eeb4e6..f80bab3937 100644 --- a/projects/ION/linux/linux.x86_64.conf +++ b/projects/ION/linux/linux.x86_64.conf @@ -71,7 +71,7 @@ CONFIG_HAVE_KERNEL_LZO=y # CONFIG_KERNEL_BZIP2 is not set CONFIG_KERNEL_LZMA=y # CONFIG_KERNEL_LZO is not set -CONFIG_SWAP=y +# CONFIG_SWAP is not set CONFIG_SYSVIPC=y CONFIG_SYSVIPC_SYSCTL=y CONFIG_POSIX_MQUEUE=y @@ -355,7 +355,6 @@ CONFIG_HZ=300 CONFIG_SCHED_HRTICK=y CONFIG_KEXEC=y CONFIG_CRASH_DUMP=y -# CONFIG_KEXEC_JUMP is not set CONFIG_PHYSICAL_START=0x400000 # CONFIG_RELOCATABLE is not set CONFIG_PHYSICAL_ALIGN=0x1000000 @@ -368,37 +367,12 @@ CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y # # Power management and ACPI options # -CONFIG_ARCH_HIBERNATION_HEADER=y CONFIG_PM=y # CONFIG_PM_DEBUG is not set CONFIG_PM_SLEEP_SMP=y CONFIG_PM_SLEEP=y CONFIG_SUSPEND=y CONFIG_SUSPEND_FREEZER=y -CONFIG_HIBERNATION_NVS=y -CONFIG_HIBERNATION=y -CONFIG_PM_STD_PARTITION="" -CONFIG_TOI_CORE=y - -# -# Image Storage (you need at least one allocator) -# -CONFIG_TOI_FILE=y -# CONFIG_TOI_SWAP is not set - -# -# General Options -# -CONFIG_TOI_CRYPTO=y -CONFIG_TOI_USERUI=y -CONFIG_TOI_USERUI_DEFAULT_PATH="/usr/sbin/tuxoniceui_text" -CONFIG_TOI_KEEP_IMAGE=y -CONFIG_TOI_REPLACE_SWSUSP=y -# CONFIG_TOI_IGNORE_LATE_INITCALL is not set -CONFIG_TOI_DEFAULT_WAIT=25 -CONFIG_TOI_DEFAULT_EXTRA_PAGES_ALLOWANCE=2000 -# CONFIG_TOI_CHECKSUM is not set -CONFIG_TOI=y CONFIG_PM_RUNTIME=y CONFIG_ACPI=y CONFIG_ACPI_SLEEP=y diff --git a/projects/generic/linux/linux.i386.conf b/projects/generic/linux/linux.i386.conf index 07ba1f50ca..700f9125a2 100644 --- a/projects/generic/linux/linux.i386.conf +++ b/projects/generic/linux/linux.i386.conf @@ -70,7 +70,7 @@ CONFIG_HAVE_KERNEL_LZO=y # CONFIG_KERNEL_BZIP2 is not set CONFIG_KERNEL_LZMA=y # CONFIG_KERNEL_LZO is not set -CONFIG_SWAP=y +# CONFIG_SWAP is not set CONFIG_SYSVIPC=y CONFIG_SYSVIPC_SYSCTL=y CONFIG_POSIX_MQUEUE=y @@ -369,7 +369,6 @@ CONFIG_HZ=300 CONFIG_SCHED_HRTICK=y CONFIG_KEXEC=y CONFIG_CRASH_DUMP=y -# CONFIG_KEXEC_JUMP is not set CONFIG_PHYSICAL_START=0x400000 # CONFIG_RELOCATABLE is not set CONFIG_PHYSICAL_ALIGN=0x400000 @@ -389,30 +388,6 @@ CONFIG_PM_SLEEP_SMP=y CONFIG_PM_SLEEP=y CONFIG_SUSPEND=y CONFIG_SUSPEND_FREEZER=y -CONFIG_HIBERNATION_NVS=y -CONFIG_HIBERNATION=y -CONFIG_PM_STD_PARTITION="" -CONFIG_TOI_CORE=y - -# -# Image Storage (you need at least one allocator) -# -CONFIG_TOI_FILE=y -# CONFIG_TOI_SWAP is not set - -# -# General Options -# -CONFIG_TOI_CRYPTO=y -CONFIG_TOI_USERUI=y -CONFIG_TOI_USERUI_DEFAULT_PATH="/usr/sbin/tuxoniceui_text" -CONFIG_TOI_KEEP_IMAGE=y -CONFIG_TOI_REPLACE_SWSUSP=y -# CONFIG_TOI_IGNORE_LATE_INITCALL is not set -CONFIG_TOI_DEFAULT_WAIT=25 -CONFIG_TOI_DEFAULT_EXTRA_PAGES_ALLOWANCE=2000 -# CONFIG_TOI_CHECKSUM is not set -CONFIG_TOI=y CONFIG_PM_RUNTIME=y CONFIG_ACPI=y CONFIG_ACPI_SLEEP=y @@ -2081,7 +2056,6 @@ CONFIG_RT2870=m # # CONFIG_RAR_REGISTER is not set # CONFIG_IIO is not set -# CONFIG_RAMZSWAP is not set # CONFIG_BATMAN_ADV is not set # CONFIG_SAMSUNG_LAPTOP is not set # CONFIG_STRIP is not set @@ -2500,7 +2474,6 @@ CONFIG_CRYPTO_DES=y # CONFIG_CRYPTO_DEFLATE is not set CONFIG_CRYPTO_ZLIB=y CONFIG_CRYPTO_LZO=y -CONFIG_CRYPTO_LZF=y # # Random Number Generation diff --git a/projects/intel/linux/linux.i386.conf b/projects/intel/linux/linux.i386.conf index f4361806cf..cfb468d977 100644 --- a/projects/intel/linux/linux.i386.conf +++ b/projects/intel/linux/linux.i386.conf @@ -70,7 +70,7 @@ CONFIG_HAVE_KERNEL_LZO=y # CONFIG_KERNEL_BZIP2 is not set CONFIG_KERNEL_LZMA=y # CONFIG_KERNEL_LZO is not set -CONFIG_SWAP=y +# CONFIG_SWAP is not set CONFIG_SYSVIPC=y CONFIG_SYSVIPC_SYSCTL=y CONFIG_POSIX_MQUEUE=y @@ -369,7 +369,6 @@ CONFIG_HZ=300 CONFIG_SCHED_HRTICK=y CONFIG_KEXEC=y CONFIG_CRASH_DUMP=y -# CONFIG_KEXEC_JUMP is not set CONFIG_PHYSICAL_START=0x400000 # CONFIG_RELOCATABLE is not set CONFIG_PHYSICAL_ALIGN=0x400000 @@ -389,30 +388,6 @@ CONFIG_PM_SLEEP_SMP=y CONFIG_PM_SLEEP=y CONFIG_SUSPEND=y CONFIG_SUSPEND_FREEZER=y -CONFIG_HIBERNATION_NVS=y -CONFIG_HIBERNATION=y -CONFIG_PM_STD_PARTITION="" -CONFIG_TOI_CORE=y - -# -# Image Storage (you need at least one allocator) -# -CONFIG_TOI_FILE=y -# CONFIG_TOI_SWAP is not set - -# -# General Options -# -CONFIG_TOI_CRYPTO=y -CONFIG_TOI_USERUI=y -CONFIG_TOI_USERUI_DEFAULT_PATH="/usr/sbin/tuxoniceui_text" -CONFIG_TOI_KEEP_IMAGE=y -CONFIG_TOI_REPLACE_SWSUSP=y -# CONFIG_TOI_IGNORE_LATE_INITCALL is not set -CONFIG_TOI_DEFAULT_WAIT=25 -CONFIG_TOI_DEFAULT_EXTRA_PAGES_ALLOWANCE=2000 -# CONFIG_TOI_CHECKSUM is not set -CONFIG_TOI=y CONFIG_PM_RUNTIME=y CONFIG_ACPI=y CONFIG_ACPI_SLEEP=y @@ -2024,7 +1999,6 @@ CONFIG_STAGING=y # # CONFIG_RAR_REGISTER is not set # CONFIG_IIO is not set -# CONFIG_RAMZSWAP is not set # CONFIG_BATMAN_ADV is not set # CONFIG_SAMSUNG_LAPTOP is not set # CONFIG_STRIP is not set @@ -2443,7 +2417,6 @@ CONFIG_CRYPTO_DES=y # CONFIG_CRYPTO_DEFLATE is not set CONFIG_CRYPTO_ZLIB=y CONFIG_CRYPTO_LZO=y -CONFIG_CRYPTO_LZF=y # # Random Number Generation diff --git a/projects/intel/linux/linux.x86_64.conf b/projects/intel/linux/linux.x86_64.conf index 03a7a8614e..da6ec3e2cf 100644 --- a/projects/intel/linux/linux.x86_64.conf +++ b/projects/intel/linux/linux.x86_64.conf @@ -71,7 +71,7 @@ CONFIG_HAVE_KERNEL_LZO=y # CONFIG_KERNEL_BZIP2 is not set CONFIG_KERNEL_LZMA=y # CONFIG_KERNEL_LZO is not set -CONFIG_SWAP=y +# CONFIG_SWAP is not set CONFIG_SYSVIPC=y CONFIG_SYSVIPC_SYSCTL=y CONFIG_POSIX_MQUEUE=y @@ -357,7 +357,6 @@ CONFIG_HZ=300 CONFIG_SCHED_HRTICK=y CONFIG_KEXEC=y CONFIG_CRASH_DUMP=y -# CONFIG_KEXEC_JUMP is not set CONFIG_PHYSICAL_START=0x400000 # CONFIG_RELOCATABLE is not set CONFIG_PHYSICAL_ALIGN=0x1000000 @@ -370,37 +369,12 @@ CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y # # Power management and ACPI options # -CONFIG_ARCH_HIBERNATION_HEADER=y CONFIG_PM=y # CONFIG_PM_DEBUG is not set CONFIG_PM_SLEEP_SMP=y CONFIG_PM_SLEEP=y CONFIG_SUSPEND=y CONFIG_SUSPEND_FREEZER=y -CONFIG_HIBERNATION_NVS=y -CONFIG_HIBERNATION=y -CONFIG_PM_STD_PARTITION="" -CONFIG_TOI_CORE=y - -# -# Image Storage (you need at least one allocator) -# -CONFIG_TOI_FILE=y -# CONFIG_TOI_SWAP is not set - -# -# General Options -# -CONFIG_TOI_CRYPTO=y -CONFIG_TOI_USERUI=y -CONFIG_TOI_USERUI_DEFAULT_PATH="/usr/local/sbin/tuxoniceui_text" -CONFIG_TOI_KEEP_IMAGE=y -CONFIG_TOI_REPLACE_SWSUSP=y -# CONFIG_TOI_IGNORE_LATE_INITCALL is not set -CONFIG_TOI_DEFAULT_WAIT=25 -CONFIG_TOI_DEFAULT_EXTRA_PAGES_ALLOWANCE=2000 -# CONFIG_TOI_CHECKSUM is not set -CONFIG_TOI=y CONFIG_PM_RUNTIME=y CONFIG_ACPI=y CONFIG_ACPI_SLEEP=y @@ -1983,7 +1957,6 @@ CONFIG_STAGING=y # # CONFIG_RAR_REGISTER is not set # CONFIG_IIO is not set -# CONFIG_RAMZSWAP is not set # CONFIG_BATMAN_ADV is not set # CONFIG_SAMSUNG_LAPTOP is not set # CONFIG_STRIP is not set From 14f7ed057ed6359f6836ea87fa413ad40b9d51c8 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Sun, 2 May 2010 18:47:20 +0200 Subject: [PATCH 264/320] linux: - remove tuxonice patch --- .../patches/tuxonice-3.1-for-2.6.33.diff | 21427 ---------------- 1 file changed, 21427 deletions(-) delete mode 100644 packages/linux/patches/tuxonice-3.1-for-2.6.33.diff diff --git a/packages/linux/patches/tuxonice-3.1-for-2.6.33.diff b/packages/linux/patches/tuxonice-3.1-for-2.6.33.diff deleted file mode 100644 index fdd7bee0d9..0000000000 --- a/packages/linux/patches/tuxonice-3.1-for-2.6.33.diff +++ /dev/null @@ -1,21427 +0,0 @@ -diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt -index e7848a0..616afc2 100644 ---- a/Documentation/kernel-parameters.txt -+++ b/Documentation/kernel-parameters.txt -@@ -2703,6 +2703,9 @@ and is between 256 and 4096 characters. It is defined in the file - medium is write-protected). - Example: quirks=0419:aaf5:rl,0421:0433:rc - -+ uuid_debug= (Boolean) whether to enable debugging of TuxOnIce's -+ uuid support. -+ - vdso= [X86,SH] - vdso=2: enable compat VDSO (default with COMPAT_VDSO) - vdso=1: enable VDSO (default) -diff --git a/Documentation/power/tuxonice-internals.txt b/Documentation/power/tuxonice-internals.txt -new file mode 100644 -index 0000000..7a96186 ---- /dev/null -+++ b/Documentation/power/tuxonice-internals.txt -@@ -0,0 +1,477 @@ -+ TuxOnIce 3.0 Internal Documentation. -+ Updated to 26 March 2009 -+ -+1. Introduction. -+ -+ TuxOnIce 3.0 is an addition to the Linux Kernel, designed to -+ allow the user to quickly shutdown and quickly boot a computer, without -+ needing to close documents or programs. It is equivalent to the -+ hibernate facility in some laptops. This implementation, however, -+ requires no special BIOS or hardware support. -+ -+ The code in these files is based upon the original implementation -+ prepared by Gabor Kuti and additional work by Pavel Machek and a -+ host of others. This code has been substantially reworked by Nigel -+ Cunningham, again with the help and testing of many others, not the -+ least of whom is Michael Frank. At its heart, however, the operation is -+ essentially the same as Gabor's version. -+ -+2. Overview of operation. -+ -+ The basic sequence of operations is as follows: -+ -+ a. Quiesce all other activity. -+ b. Ensure enough memory and storage space are available, and attempt -+ to free memory/storage if necessary. -+ c. Allocate the required memory and storage space. -+ d. Write the image. -+ e. Power down. -+ -+ There are a number of complicating factors which mean that things are -+ not as simple as the above would imply, however... -+ -+ o The activity of each process must be stopped at a point where it will -+ not be holding locks necessary for saving the image, or unexpectedly -+ restart operations due to something like a timeout and thereby make -+ our image inconsistent. -+ -+ o It is desirous that we sync outstanding I/O to disk before calculating -+ image statistics. This reduces corruption if one should suspend but -+ then not resume, and also makes later parts of the operation safer (see -+ below). -+ -+ o We need to get as close as we can to an atomic copy of the data. -+ Inconsistencies in the image will result in inconsistent memory contents at -+ resume time, and thus in instability of the system and/or file system -+ corruption. This would appear to imply a maximum image size of one half of -+ the amount of RAM, but we have a solution... (again, below). -+ -+ o In 2.6, we choose to play nicely with the other suspend-to-disk -+ implementations. -+ -+3. Detailed description of internals. -+ -+ a. Quiescing activity. -+ -+ Safely quiescing the system is achieved using three separate but related -+ aspects. -+ -+ First, we note that the vast majority of processes don't need to run during -+ suspend. They can be 'frozen'. We therefore implement a refrigerator -+ routine, which processes enter and in which they remain until the cycle is -+ complete. Processes enter the refrigerator via try_to_freeze() invocations -+ at appropriate places. A process cannot be frozen in any old place. It -+ must not be holding locks that will be needed for writing the image or -+ freezing other processes. For this reason, userspace processes generally -+ enter the refrigerator via the signal handling code, and kernel threads at -+ the place in their event loops where they drop locks and yield to other -+ processes or sleep. -+ -+ The task of freezing processes is complicated by the fact that there can be -+ interdependencies between processes. Freezing process A before process B may -+ mean that process B cannot be frozen, because it stops at waiting for -+ process A rather than in the refrigerator. This issue is seen where -+ userspace waits on freezeable kernel threads or fuse filesystem threads. To -+ address this issue, we implement the following algorithm for quiescing -+ activity: -+ -+ - Freeze filesystems (including fuse - userspace programs starting -+ new requests are immediately frozen; programs already running -+ requests complete their work before being frozen in the next -+ step) -+ - Freeze userspace -+ - Thaw filesystems (this is safe now that userspace is frozen and no -+ fuse requests are outstanding). -+ - Invoke sys_sync (noop on fuse). -+ - Freeze filesystems -+ - Freeze kernel threads -+ -+ If we need to free memory, we thaw kernel threads and filesystems, but not -+ userspace. We can then free caches without worrying about deadlocks due to -+ swap files being on frozen filesystems or such like. -+ -+ b. Ensure enough memory & storage are available. -+ -+ We have a number of constraints to meet in order to be able to successfully -+ suspend and resume. -+ -+ First, the image will be written in two parts, described below. One of these -+ parts needs to have an atomic copy made, which of course implies a maximum -+ size of one half of the amount of system memory. The other part ('pageset') -+ is not atomically copied, and can therefore be as large or small as desired. -+ -+ Second, we have constraints on the amount of storage available. In these -+ calculations, we may also consider any compression that will be done. The -+ cryptoapi module allows the user to configure an expected compression ratio. -+ -+ Third, the user can specify an arbitrary limit on the image size, in -+ megabytes. This limit is treated as a soft limit, so that we don't fail the -+ attempt to suspend if we cannot meet this constraint. -+ -+ c. Allocate the required memory and storage space. -+ -+ Having done the initial freeze, we determine whether the above constraints -+ are met, and seek to allocate the metadata for the image. If the constraints -+ are not met, or we fail to allocate the required space for the metadata, we -+ seek to free the amount of memory that we calculate is needed and try again. -+ We allow up to four iterations of this loop before aborting the cycle. If we -+ do fail, it should only be because of a bug in TuxOnIce's calculations. -+ -+ These steps are merged together in the prepare_image function, found in -+ prepare_image.c. The functions are merged because of the cyclical nature -+ of the problem of calculating how much memory and storage is needed. Since -+ the data structures containing the information about the image must -+ themselves take memory and use storage, the amount of memory and storage -+ required changes as we prepare the image. Since the changes are not large, -+ only one or two iterations will be required to achieve a solution. -+ -+ The recursive nature of the algorithm is miminised by keeping user space -+ frozen while preparing the image, and by the fact that our records of which -+ pages are to be saved and which pageset they are saved in use bitmaps (so -+ that changes in number or fragmentation of the pages to be saved don't -+ feedback via changes in the amount of memory needed for metadata). The -+ recursiveness is thus limited to any extra slab pages allocated to store the -+ extents that record storage used, and the effects of seeking to free memory. -+ -+ d. Write the image. -+ -+ We previously mentioned the need to create an atomic copy of the data, and -+ the half-of-memory limitation that is implied in this. This limitation is -+ circumvented by dividing the memory to be saved into two parts, called -+ pagesets. -+ -+ Pageset2 contains most of the page cache - the pages on the active and -+ inactive LRU lists that aren't needed or modified while TuxOnIce is -+ running, so they can be safely written without an atomic copy. They are -+ therefore saved first and reloaded last. While saving these pages, -+ TuxOnIce carefully ensures that the work of writing the pages doesn't make -+ the image inconsistent. With the support for Kernel (Video) Mode Setting -+ going into the kernel at the time of writing, we need to check for pages -+ on the LRU that are used by KMS, and exclude them from pageset2. They are -+ atomically copied as part of pageset 1. -+ -+ Once pageset2 has been saved, we prepare to do the atomic copy of remaining -+ memory. As part of the preparation, we power down drivers, thereby providing -+ them with the opportunity to have their state recorded in the image. The -+ amount of memory allocated by drivers for this is usually negligible, but if -+ DRI is in use, video drivers may require significants amounts. Ideally we -+ would be able to query drivers while preparing the image as to the amount of -+ memory they will need. Unfortunately no such mechanism exists at the time of -+ writing. For this reason, TuxOnIce allows the user to set an -+ 'extra_pages_allowance', which is used to seek to ensure sufficient memory -+ is available for drivers at this point. TuxOnIce also lets the user set this -+ value to 0. In this case, a test driver suspend is done while preparing the -+ image, and the difference (plus a margin) used instead. TuxOnIce will also -+ automatically restart the hibernation process (twice at most) if it finds -+ that the extra pages allowance is not sufficient. It will then use what was -+ actually needed (plus a margin, again). Failure to hibernate should thus -+ be an extremely rare occurence. -+ -+ Having suspended the drivers, we save the CPU context before making an -+ atomic copy of pageset1, resuming the drivers and saving the atomic copy. -+ After saving the two pagesets, we just need to save our metadata before -+ powering down. -+ -+ As we mentioned earlier, the contents of pageset2 pages aren't needed once -+ they've been saved. We therefore use them as the destination of our atomic -+ copy. In the unlikely event that pageset1 is larger, extra pages are -+ allocated while the image is being prepared. This is normally only a real -+ possibility when the system has just been booted and the page cache is -+ small. -+ -+ This is where we need to be careful about syncing, however. Pageset2 will -+ probably contain filesystem meta data. If this is overwritten with pageset1 -+ and then a sync occurs, the filesystem will be corrupted - at least until -+ resume time and another sync of the restored data. Since there is a -+ possibility that the user might not resume or (may it never be!) that -+ TuxOnIce might oops, we do our utmost to avoid syncing filesystems after -+ copying pageset1. -+ -+ e. Power down. -+ -+ Powering down uses standard kernel routines. TuxOnIce supports powering down -+ using the ACPI S3, S4 and S5 methods or the kernel's non-ACPI power-off. -+ Supporting suspend to ram (S3) as a power off option might sound strange, -+ but it allows the user to quickly get their system up and running again if -+ the battery doesn't run out (we just need to re-read the overwritten pages) -+ and if the battery does run out (or the user removes power), they can still -+ resume. -+ -+4. Data Structures. -+ -+ TuxOnIce uses three main structures to store its metadata and configuration -+ information: -+ -+ a) Pageflags bitmaps. -+ -+ TuxOnIce records which pages will be in pageset1, pageset2, the destination -+ of the atomic copy and the source of the atomically restored image using -+ bitmaps. The code used is that written for swsusp, with small improvements -+ to match TuxOnIce's requirements. -+ -+ The pageset1 bitmap is thus easily stored in the image header for use at -+ resume time. -+ -+ As mentioned above, using bitmaps also means that the amount of memory and -+ storage required for recording the above information is constant. This -+ greatly simplifies the work of preparing the image. In earlier versions of -+ TuxOnIce, extents were used to record which pages would be stored. In that -+ case, however, eating memory could result in greater fragmentation of the -+ lists of pages, which in turn required more memory to store the extents and -+ more storage in the image header. These could in turn require further -+ freeing of memory, and another iteration. All of this complexity is removed -+ by having bitmaps. -+ -+ Bitmaps also make a lot of sense because TuxOnIce only ever iterates -+ through the lists. There is therefore no cost to not being able to find the -+ nth page in order 0 time. We only need to worry about the cost of finding -+ the n+1th page, given the location of the nth page. Bitwise optimisations -+ help here. -+ -+ b) Extents for block data. -+ -+ TuxOnIce supports writing the image to multiple block devices. In the case -+ of swap, multiple partitions and/or files may be in use, and we happily use -+ them all (with the exception of compcache pages, which we allocate but do -+ not use). This use of multiple block devices is accomplished as follows: -+ -+ Whatever the actual source of the allocated storage, the destination of the -+ image can be viewed in terms of one or more block devices, and on each -+ device, a list of sectors. To simplify matters, we only use contiguous, -+ PAGE_SIZE aligned sectors, like the swap code does. -+ -+ Since sector numbers on each bdev may well not start at 0, it makes much -+ more sense to use extents here. Contiguous ranges of pages can thus be -+ represented in the extents by contiguous values. -+ -+ Variations in block size are taken account of in transforming this data -+ into the parameters for bio submission. -+ -+ We can thus implement a layer of abstraction wherein the core of TuxOnIce -+ doesn't have to worry about which device we're currently writing to or -+ where in the device we are. It simply requests that the next page in the -+ pageset or header be written, leaving the details to this lower layer. -+ The lower layer remembers where in the sequence of devices and blocks each -+ pageset starts. The header always starts at the beginning of the allocated -+ storage. -+ -+ So extents are: -+ -+ struct extent { -+ unsigned long minimum, maximum; -+ struct extent *next; -+ } -+ -+ These are combined into chains of extents for a device: -+ -+ struct extent_chain { -+ int size; /* size of the extent ie sum (max-min+1) */ -+ int allocs, frees; -+ char *name; -+ struct extent *first, *last_touched; -+ }; -+ -+ For each bdev, we need to store a little more info: -+ -+ struct suspend_bdev_info { -+ struct block_device *bdev; -+ dev_t dev_t; -+ int bmap_shift; -+ int blocks_per_page; -+ }; -+ -+ The dev_t is used to identify the device in the stored image. As a result, -+ we expect devices at resume time to have the same major and minor numbers -+ as they had while suspending. This is primarily a concern where the user -+ utilises LVM for storage, as they will need to dmsetup their partitions in -+ such a way as to maintain this consistency at resume time. -+ -+ bmap_shift and blocks_per_page apply the effects of variations in blocks -+ per page settings for the filesystem and underlying bdev. For most -+ filesystems, these are the same, but for xfs, they can have independant -+ values. -+ -+ Combining these two structures together, we have everything we need to -+ record what devices and what blocks on each device are being used to -+ store the image, and to submit i/o using bio_submit. -+ -+ The last elements in the picture are a means of recording how the storage -+ is being used. -+ -+ We do this first and foremost by implementing a layer of abstraction on -+ top of the devices and extent chains which allows us to view however many -+ devices there might be as one long storage tape, with a single 'head' that -+ tracks a 'current position' on the tape: -+ -+ struct extent_iterate_state { -+ struct extent_chain *chains; -+ int num_chains; -+ int current_chain; -+ struct extent *current_extent; -+ unsigned long current_offset; -+ }; -+ -+ That is, *chains points to an array of size num_chains of extent chains. -+ For the filewriter, this is always a single chain. For the swapwriter, the -+ array is of size MAX_SWAPFILES. -+ -+ current_chain, current_extent and current_offset thus point to the current -+ index in the chains array (and into a matching array of struct -+ suspend_bdev_info), the current extent in that chain (to optimise access), -+ and the current value in the offset. -+ -+ The image is divided into three parts: -+ - The header -+ - Pageset 1 -+ - Pageset 2 -+ -+ The header always starts at the first device and first block. We know its -+ size before we begin to save the image because we carefully account for -+ everything that will be stored in it. -+ -+ The second pageset (LRU) is stored first. It begins on the next page after -+ the end of the header. -+ -+ The first pageset is stored second. It's start location is only known once -+ pageset2 has been saved, since pageset2 may be compressed as it is written. -+ This location is thus recorded at the end of saving pageset2. It is page -+ aligned also. -+ -+ Since this information is needed at resume time, and the location of extents -+ in memory will differ at resume time, this needs to be stored in a portable -+ way: -+ -+ struct extent_iterate_saved_state { -+ int chain_num; -+ int extent_num; -+ unsigned long offset; -+ }; -+ -+ We can thus implement a layer of abstraction wherein the core of TuxOnIce -+ doesn't have to worry about which device we're currently writing to or -+ where in the device we are. It simply requests that the next page in the -+ pageset or header be written, leaving the details to this layer, and -+ invokes the routines to remember and restore the position, without having -+ to worry about the details of how the data is arranged on disk or such like. -+ -+ c) Modules -+ -+ One aim in designing TuxOnIce was to make it flexible. We wanted to allow -+ for the implementation of different methods of transforming a page to be -+ written to disk and different methods of getting the pages stored. -+ -+ In early versions (the betas and perhaps Suspend1), compression support was -+ inlined in the image writing code, and the data structures and code for -+ managing swap were intertwined with the rest of the code. A number of people -+ had expressed interest in implementing image encryption, and alternative -+ methods of storing the image. -+ -+ In order to achieve this, TuxOnIce was given a modular design. -+ -+ A module is a single file which encapsulates the functionality needed -+ to transform a pageset of data (encryption or compression, for example), -+ or to write the pageset to a device. The former type of module is called -+ a 'page-transformer', the later a 'writer'. -+ -+ Modules are linked together in pipeline fashion. There may be zero or more -+ page transformers in a pipeline, and there is always exactly one writer. -+ The pipeline follows this pattern: -+ -+ --------------------------------- -+ | TuxOnIce Core | -+ --------------------------------- -+ | -+ | -+ --------------------------------- -+ | Page transformer 1 | -+ --------------------------------- -+ | -+ | -+ --------------------------------- -+ | Page transformer 2 | -+ --------------------------------- -+ | -+ | -+ --------------------------------- -+ | Writer | -+ --------------------------------- -+ -+ During the writing of an image, the core code feeds pages one at a time -+ to the first module. This module performs whatever transformations it -+ implements on the incoming data, completely consuming the incoming data and -+ feeding output in a similar manner to the next module. -+ -+ All routines are SMP safe, and the final result of the transformations is -+ written with an index (provided by the core) and size of the output by the -+ writer. As a result, we can have multithreaded I/O without needing to -+ worry about the sequence in which pages are written (or read). -+ -+ During reading, the pipeline works in the reverse direction. The core code -+ calls the first module with the address of a buffer which should be filled. -+ (Note that the buffer size is always PAGE_SIZE at this time). This module -+ will in turn request data from the next module and so on down until the -+ writer is made to read from the stored image. -+ -+ Part of definition of the structure of a module thus looks like this: -+ -+ int (*rw_init) (int rw, int stream_number); -+ int (*rw_cleanup) (int rw); -+ int (*write_chunk) (struct page *buffer_page); -+ int (*read_chunk) (struct page *buffer_page, int sync); -+ -+ It should be noted that the _cleanup routine may be called before the -+ full stream of data has been read or written. While writing the image, -+ the user may (depending upon settings) choose to abort suspending, and -+ if we are in the midst of writing the last portion of the image, a portion -+ of the second pageset may be reread. This may also happen if an error -+ occurs and we seek to abort the process of writing the image. -+ -+ The modular design is also useful in a number of other ways. It provides -+ a means where by we can add support for: -+ -+ - providing overall initialisation and cleanup routines; -+ - serialising configuration information in the image header; -+ - providing debugging information to the user; -+ - determining memory and image storage requirements; -+ - dis/enabling components at run-time; -+ - configuring the module (see below); -+ -+ ...and routines for writers specific to their work: -+ - Parsing a resume= location; -+ - Determining whether an image exists; -+ - Marking a resume as having been attempted; -+ - Invalidating an image; -+ -+ Since some parts of the core - the user interface and storage manager -+ support - have use for some of these functions, they are registered as -+ 'miscellaneous' modules as well. -+ -+ d) Sysfs data structures. -+ -+ This brings us naturally to support for configuring TuxOnIce. We desired to -+ provide a way to make TuxOnIce as flexible and configurable as possible. -+ The user shouldn't have to reboot just because they want to now hibernate to -+ a file instead of a partition, for example. -+ -+ To accomplish this, TuxOnIce implements a very generic means whereby the -+ core and modules can register new sysfs entries. All TuxOnIce entries use -+ a single _store and _show routine, both of which are found in -+ tuxonice_sysfs.c in the kernel/power directory. These routines handle the -+ most common operations - getting and setting the values of bits, integers, -+ longs, unsigned longs and strings in one place, and allow overrides for -+ customised get and set options as well as side-effect routines for all -+ reads and writes. -+ -+ When combined with some simple macros, a new sysfs entry can then be defined -+ in just a couple of lines: -+ -+ SYSFS_INT("progress_granularity", SYSFS_RW, &progress_granularity, 1, -+ 2048, 0, NULL), -+ -+ This defines a sysfs entry named "progress_granularity" which is rw and -+ allows the user to access an integer stored at &progress_granularity, giving -+ it a value between 1 and 2048 inclusive. -+ -+ Sysfs entries are registered under /sys/power/tuxonice, and entries for -+ modules are located in a subdirectory named after the module. -+ -diff --git a/Documentation/power/tuxonice.txt b/Documentation/power/tuxonice.txt -new file mode 100644 -index 0000000..3bf0575 ---- /dev/null -+++ b/Documentation/power/tuxonice.txt -@@ -0,0 +1,948 @@ -+ --- TuxOnIce, version 3.0 --- -+ -+1. What is it? -+2. Why would you want it? -+3. What do you need to use it? -+4. Why not just use the version already in the kernel? -+5. How do you use it? -+6. What do all those entries in /sys/power/tuxonice do? -+7. How do you get support? -+8. I think I've found a bug. What should I do? -+9. When will XXX be supported? -+10 How does it work? -+11. Who wrote TuxOnIce? -+ -+1. What is it? -+ -+ Imagine you're sitting at your computer, working away. For some reason, you -+ need to turn off your computer for a while - perhaps it's time to go home -+ for the day. When you come back to your computer next, you're going to want -+ to carry on where you left off. Now imagine that you could push a button and -+ have your computer store the contents of its memory to disk and power down. -+ Then, when you next start up your computer, it loads that image back into -+ memory and you can carry on from where you were, just as if you'd never -+ turned the computer off. You have far less time to start up, no reopening of -+ applications or finding what directory you put that file in yesterday. -+ That's what TuxOnIce does. -+ -+ TuxOnIce has a long heritage. It began life as work by Gabor Kuti, who, -+ with some help from Pavel Machek, got an early version going in 1999. The -+ project was then taken over by Florent Chabaud while still in alpha version -+ numbers. Nigel Cunningham came on the scene when Florent was unable to -+ continue, moving the project into betas, then 1.0, 2.0 and so on up to -+ the present series. During the 2.0 series, the name was contracted to -+ Suspend2 and the website suspend2.net created. Beginning around July 2007, -+ a transition to calling the software TuxOnIce was made, to seek to help -+ make it clear that TuxOnIce is more concerned with hibernation than suspend -+ to ram. -+ -+ Pavel Machek's swsusp code, which was merged around 2.5.17 retains the -+ original name, and was essentially a fork of the beta code until Rafael -+ Wysocki came on the scene in 2005 and began to improve it further. -+ -+2. Why would you want it? -+ -+ Why wouldn't you want it? -+ -+ Being able to save the state of your system and quickly restore it improves -+ your productivity - you get a useful system in far less time than through -+ the normal boot process. You also get to be completely 'green', using zero -+ power, or as close to that as possible (the computer may still provide -+ minimal power to some devices, so they can initiate a power on, but that -+ will be the same amount of power as would be used if you told the computer -+ to shutdown. -+ -+3. What do you need to use it? -+ -+ a. Kernel Support. -+ -+ i) The TuxOnIce patch. -+ -+ TuxOnIce is part of the Linux Kernel. This version is not part of Linus's -+ 2.6 tree at the moment, so you will need to download the kernel source and -+ apply the latest patch. Having done that, enable the appropriate options in -+ make [menu|x]config (under Power Management Options - look for "Enhanced -+ Hibernation"), compile and install your kernel. TuxOnIce works with SMP, -+ Highmem, preemption, fuse filesystems, x86-32, PPC and x86_64. -+ -+ TuxOnIce patches are available from http://tuxonice.net. -+ -+ ii) Compression support. -+ -+ Compression support is implemented via the cryptoapi. You will therefore want -+ to select any Cryptoapi transforms that you want to use on your image from -+ the Cryptoapi menu while configuring your kernel. We recommend the use of the -+ LZO compression method - it is very fast and still achieves good compression. -+ -+ You can also tell TuxOnIce to write its image to an encrypted and/or -+ compressed filesystem/swap partition. In that case, you don't need to do -+ anything special for TuxOnIce when it comes to kernel configuration. -+ -+ iii) Configuring other options. -+ -+ While you're configuring your kernel, try to configure as much as possible -+ to build as modules. We recommend this because there are a number of drivers -+ that are still in the process of implementing proper power management -+ support. In those cases, the best way to work around their current lack is -+ to build them as modules and remove the modules while hibernating. You might -+ also bug the driver authors to get their support up to speed, or even help! -+ -+ b. Storage. -+ -+ i) Swap. -+ -+ TuxOnIce can store the hibernation image in your swap partition, a swap file or -+ a combination thereof. Whichever combination you choose, you will probably -+ want to create enough swap space to store the largest image you could have, -+ plus the space you'd normally use for swap. A good rule of thumb would be -+ to calculate the amount of swap you'd want without using TuxOnIce, and then -+ add the amount of memory you have. This swapspace can be arranged in any way -+ you'd like. It can be in one partition or file, or spread over a number. The -+ only requirement is that they be active when you start a hibernation cycle. -+ -+ There is one exception to this requirement. TuxOnIce has the ability to turn -+ on one swap file or partition at the start of hibernating and turn it back off -+ at the end. If you want to ensure you have enough memory to store a image -+ when your memory is fully used, you might want to make one swap partition or -+ file for 'normal' use, and another for TuxOnIce to activate & deactivate -+ automatically. (Further details below). -+ -+ ii) Normal files. -+ -+ TuxOnIce includes a 'file allocator'. The file allocator can store your -+ image in a simple file. Since Linux has the concept of everything being a -+ file, this is more powerful than it initially sounds. If, for example, you -+ were to set up a network block device file, you could hibernate to a network -+ server. This has been tested and works to a point, but nbd itself isn't -+ stateless enough for our purposes. -+ -+ Take extra care when setting up the file allocator. If you just type -+ commands without thinking and then try to hibernate, you could cause -+ irreversible corruption on your filesystems! Make sure you have backups. -+ -+ Most people will only want to hibernate to a local file. To achieve that, do -+ something along the lines of: -+ -+ echo "TuxOnIce" > /hibernation-file -+ dd if=/dev/zero bs=1M count=512 >> /hibernation-file -+ -+ This will create a 512MB file called /hibernation-file. To get TuxOnIce to use -+ it: -+ -+ echo /hibernation-file > /sys/power/tuxonice/file/target -+ -+ Then -+ -+ cat /sys/power/tuxonice/resume -+ -+ Put the results of this into your bootloader's configuration (see also step -+ C, below): -+ -+ ---EXAMPLE-ONLY-DON'T-COPY-AND-PASTE--- -+ # cat /sys/power/tuxonice/resume -+ file:/dev/hda2:0x1e001 -+ -+ In this example, we would edit the append= line of our lilo.conf|menu.lst -+ so that it included: -+ -+ resume=file:/dev/hda2:0x1e001 -+ ---EXAMPLE-ONLY-DON'T-COPY-AND-PASTE--- -+ -+ For those who are thinking 'Could I make the file sparse?', the answer is -+ 'No!'. At the moment, there is no way for TuxOnIce to fill in the holes in -+ a sparse file while hibernating. In the longer term (post merge!), I'd like -+ to change things so that the file could be dynamically resized and have -+ holes filled as needed. Right now, however, that's not possible and not a -+ priority. -+ -+ c. Bootloader configuration. -+ -+ Using TuxOnIce also requires that you add an extra parameter to -+ your lilo.conf or equivalent. Here's an example for a swap partition: -+ -+ append="resume=swap:/dev/hda1" -+ -+ This would tell TuxOnIce that /dev/hda1 is a swap partition you -+ have. TuxOnIce will use the swap signature of this partition as a -+ pointer to your data when you hibernate. This means that (in this example) -+ /dev/hda1 doesn't need to be _the_ swap partition where all of your data -+ is actually stored. It just needs to be a swap partition that has a -+ valid signature. -+ -+ You don't need to have a swap partition for this purpose. TuxOnIce -+ can also use a swap file, but usage is a little more complex. Having made -+ your swap file, turn it on and do -+ -+ cat /sys/power/tuxonice/swap/headerlocations -+ -+ (this assumes you've already compiled your kernel with TuxOnIce -+ support and booted it). The results of the cat command will tell you -+ what you need to put in lilo.conf: -+ -+ For swap partitions like /dev/hda1, simply use resume=/dev/hda1. -+ For swapfile `swapfile`, use resume=swap:/dev/hda2:0x242d. -+ -+ If the swapfile changes for any reason (it is moved to a different -+ location, it is deleted and recreated, or the filesystem is -+ defragmented) then you will have to check -+ /sys/power/tuxonice/swap/headerlocations for a new resume_block value. -+ -+ Once you've compiled and installed the kernel and adjusted your bootloader -+ configuration, you should only need to reboot for the most basic part -+ of TuxOnIce to be ready. -+ -+ If you only compile in the swap allocator, or only compile in the file -+ allocator, you don't need to add the "swap:" part of the resume= -+ parameters above. resume=/dev/hda2:0x242d will work just as well. If you -+ have compiled both and your storage is on swap, you can also use this -+ format (the swap allocator is the default allocator). -+ -+ When compiling your kernel, one of the options in the 'Power Management -+ Support' menu, just above the 'Enhanced Hibernation (TuxOnIce)' entry is -+ called 'Default resume partition'. This can be used to set a default value -+ for the resume= parameter. -+ -+ d. The hibernate script. -+ -+ Since the driver model in 2.6 kernels is still being developed, you may need -+ to do more than just configure TuxOnIce. Users of TuxOnIce usually start the -+ process via a script which prepares for the hibernation cycle, tells the -+ kernel to do its stuff and then restore things afterwards. This script might -+ involve: -+ -+ - Switching to a text console and back if X doesn't like the video card -+ status on resume. -+ - Un/reloading drivers that don't play well with hibernation. -+ -+ Note that you might not be able to unload some drivers if there are -+ processes using them. You might have to kill off processes that hold -+ devices open. Hint: if your X server accesses an USB mouse, doing a -+ 'chvt' to a text console releases the device and you can unload the -+ module. -+ -+ Check out the latest script (available on tuxonice.net). -+ -+ e. The userspace user interface. -+ -+ TuxOnIce has very limited support for displaying status if you only apply -+ the kernel patch - it can printk messages, but that is all. In addition, -+ some of the functions mentioned in this document (such as cancelling a cycle -+ or performing interactive debugging) are unavailable. To utilise these -+ functions, or simply get a nice display, you need the 'userui' component. -+ Userui comes in three flavours, usplash, fbsplash and text. Text should -+ work on any console. Usplash and fbsplash require the appropriate -+ (distro specific?) support. -+ -+ To utilise a userui, TuxOnIce just needs to be told where to find the -+ userspace binary: -+ -+ echo "/usr/local/sbin/tuxoniceui_fbsplash" > /sys/power/tuxonice/user_interface/program -+ -+ The hibernate script can do this for you, and a default value for this -+ setting can be configured when compiling the kernel. This path is also -+ stored in the image header, so if you have an initrd or initramfs, you can -+ use the userui during the first part of resuming (prior to the atomic -+ restore) by putting the binary in the same path in your initrd/ramfs. -+ Alternatively, you can put it in a different location and do an echo -+ similar to the above prior to the echo > do_resume. The value saved in the -+ image header will then be ignored. -+ -+4. Why not just use the version already in the kernel? -+ -+ The version in the vanilla kernel has a number of drawbacks. The most -+ serious of these are: -+ - it has a maximum image size of 1/2 total memory; -+ - it doesn't allocate storage until after it has snapshotted memory. -+ This means that you can't be sure hibernating will work until you -+ see it start to write the image; -+ - it does not allow you to press escape to cancel a cycle; -+ - it does not allow you to press escape to cancel resuming; -+ - it does not allow you to automatically swapon a file when -+ starting a cycle; -+ - it does not allow you to use multiple swap partitions or files; -+ - it does not allow you to use ordinary files; -+ - it just invalidates an image and continues to boot if you -+ accidentally boot the wrong kernel after hibernating; -+ - it doesn't support any sort of nice display while hibernating; -+ - it is moving toward requiring that you have an initrd/initramfs -+ to ever have a hope of resuming (uswsusp). While uswsusp will -+ address some of the concerns above, it won't address all of them, -+ and will be more complicated to get set up; -+ - it doesn't have support for suspend-to-both (write a hibernation -+ image, then suspend to ram; I think this is known as ReadySafe -+ under M$). -+ -+5. How do you use it? -+ -+ A hibernation cycle can be started directly by doing: -+ -+ echo > /sys/power/tuxonice/do_hibernate -+ -+ In practice, though, you'll probably want to use the hibernate script -+ to unload modules, configure the kernel the way you like it and so on. -+ In that case, you'd do (as root): -+ -+ hibernate -+ -+ See the hibernate script's man page for more details on the options it -+ takes. -+ -+ If you're using the text or splash user interface modules, one feature of -+ TuxOnIce that you might find useful is that you can press Escape at any time -+ during hibernating, and the process will be aborted. -+ -+ Due to the way hibernation works, this means you'll have your system back and -+ perfectly usable almost instantly. The only exception is when it's at the -+ very end of writing the image. Then it will need to reload a small (usually -+ 4-50MBs, depending upon the image characteristics) portion first. -+ -+ Likewise, when resuming, you can press escape and resuming will be aborted. -+ The computer will then powerdown again according to settings at that time for -+ the powerdown method or rebooting. -+ -+ You can change the settings for powering down while the image is being -+ written by pressing 'R' to toggle rebooting and 'O' to toggle between -+ suspending to ram and powering down completely). -+ -+ If you run into problems with resuming, adding the "noresume" option to -+ the kernel command line will let you skip the resume step and recover your -+ system. This option shouldn't normally be needed, because TuxOnIce modifies -+ the image header prior to the atomic restore, and will thus prompt you -+ if it detects that you've tried to resume an image before (this flag is -+ removed if you press Escape to cancel a resume, so you won't be prompted -+ then). -+ -+ Recent kernels (2.6.24 onwards) add support for resuming from a different -+ kernel to the one that was hibernated (thanks to Rafael for his work on -+ this - I've just embraced and enhanced the support for TuxOnIce). This -+ should further reduce the need for you to use the noresume option. -+ -+6. What do all those entries in /sys/power/tuxonice do? -+ -+ /sys/power/tuxonice is the directory which contains files you can use to -+ tune and configure TuxOnIce to your liking. The exact contents of -+ the directory will depend upon the version of TuxOnIce you're -+ running and the options you selected at compile time. In the following -+ descriptions, names in brackets refer to compile time options. -+ (Note that they're all dependant upon you having selected CONFIG_TUXONICE -+ in the first place!). -+ -+ Since the values of these settings can open potential security risks, the -+ writeable ones are accessible only to the root user. You may want to -+ configure sudo to allow you to invoke your hibernate script as an ordinary -+ user. -+ -+ - alloc/failure_test -+ -+ This debugging option provides a way of testing TuxOnIce's handling of -+ memory allocation failures. Each allocation type that TuxOnIce makes has -+ been given a unique number (see the source code). Echo the appropriate -+ number into this entry, and when TuxOnIce attempts to do that allocation, -+ it will pretend there was a failure and act accordingly. -+ -+ - alloc/find_max_mem_allocated -+ -+ This debugging option will cause TuxOnIce to find the maximum amount of -+ memory it used during a cycle, and report that information in debugging -+ information at the end of the cycle. -+ -+ - alt_resume_param -+ -+ Instead of powering down after writing a hibernation image, TuxOnIce -+ supports resuming from a different image. This entry lets you set the -+ location of the signature for that image (the resume= value you'd use -+ for it). Using an alternate image and keep_image mode, you can do things -+ like using an alternate image to power down an uninterruptible power -+ supply. -+ -+ - block_io/target_outstanding_io -+ -+ This value controls the amount of memory that the block I/O code says it -+ needs when the core code is calculating how much memory is needed for -+ hibernating and for resuming. It doesn't directly control the amount of -+ I/O that is submitted at any one time - that depends on the amount of -+ available memory (we may have more available than we asked for), the -+ throughput that is being achieved and the ability of the CPU to keep up -+ with disk throughput (particularly where we're compressing pages). -+ -+ - checksum/enabled -+ -+ Use cryptoapi hashing routines to verify that Pageset2 pages don't change -+ while we're saving the first part of the image, and to get any pages that -+ do change resaved in the atomic copy. This should normally not be needed, -+ but if you're seeing issues, please enable this. If your issues stop you -+ being able to resume, enable this option, hibernate and cancel the cycle -+ after the atomic copy is done. If the debugging info shows a non-zero -+ number of pages resaved, please report this to Nigel. -+ -+ - compression/algorithm -+ -+ Set the cryptoapi algorithm used for compressing the image. -+ -+ - compression/expected_compression -+ -+ These values allow you to set an expected compression ratio, which TuxOnice -+ will use in calculating whether it meets constraints on the image size. If -+ this expected compression ratio is not attained, the hibernation cycle will -+ abort, so it is wise to allow some spare. You can see what compression -+ ratio is achieved in the logs after hibernating. -+ -+ - debug_info: -+ -+ This file returns information about your configuration that may be helpful -+ in diagnosing problems with hibernating. -+ -+ - did_suspend_to_both: -+ -+ This file can be used when you hibernate with powerdown method 3 (ie suspend -+ to ram after writing the image). There can be two outcomes in this case. We -+ can resume from the suspend-to-ram before the battery runs out, or we can run -+ out of juice and and up resuming like normal. This entry lets you find out, -+ post resume, which way we went. If the value is 1, we resumed from suspend -+ to ram. This can be useful when actions need to be run post suspend-to-ram -+ that don't need to be run if we did the normal resume from power off. -+ -+ - do_hibernate: -+ -+ When anything is written to this file, the kernel side of TuxOnIce will -+ begin to attempt to write an image to disk and power down. You'll normally -+ want to run the hibernate script instead, to get modules unloaded first. -+ -+ - do_resume: -+ -+ When anything is written to this file TuxOnIce will attempt to read and -+ restore an image. If there is no image, it will return almost immediately. -+ If an image exists, the echo > will never return. Instead, the original -+ kernel context will be restored and the original echo > do_hibernate will -+ return. -+ -+ - */enabled -+ -+ These option can be used to temporarily disable various parts of TuxOnIce. -+ -+ - extra_pages_allowance -+ -+ When TuxOnIce does its atomic copy, it calls the driver model suspend -+ and resume methods. If you have DRI enabled with a driver such as fglrx, -+ this can result in the driver allocating a substantial amount of memory -+ for storing its state. Extra_pages_allowance tells TuxOnIce how much -+ extra memory it should ensure is available for those allocations. If -+ your attempts at hibernating end with a message in dmesg indicating that -+ insufficient extra pages were allowed, you need to increase this value. -+ -+ - file/target: -+ -+ Read this value to get the current setting. Write to it to point TuxOnice -+ at a new storage location for the file allocator. See section 3.b.ii above -+ for details of how to set up the file allocator. -+ -+ - freezer_test -+ -+ This entry can be used to get TuxOnIce to just test the freezer and prepare -+ an image without actually doing a hibernation cycle. It is useful for -+ diagnosing freezing and image preparation issues. -+ -+ - full_pageset2 -+ -+ TuxOnIce divides the pages that are stored in an image into two sets. The -+ difference between the two sets is that pages in pageset 1 are atomically -+ copied, and pages in pageset 2 are written to disk without being copied -+ first. A page CAN be written to disk without being copied first if and only -+ if its contents will not be modified or used at any time after userspace -+ processes are frozen. A page MUST be in pageset 1 if its contents are -+ modified or used at any time after userspace processes have been frozen. -+ -+ Normally (ie if this option is enabled), TuxOnIce will put all pages on the -+ per-zone LRUs in pageset2, then remove those pages used by any userspace -+ user interface helper and TuxOnIce storage manager that are running, -+ together with pages used by the GEM memory manager introduced around 2.6.28 -+ kernels. -+ -+ If this option is disabled, a much more conservative approach will be taken. -+ The only pages in pageset2 will be those belonging to userspace processes, -+ with the exclusion of those belonging to the TuxOnIce userspace helpers -+ mentioned above. This will result in a much smaller pageset2, and will -+ therefore result in smaller images than are possible with this option -+ enabled. -+ -+ - ignore_rootfs -+ -+ TuxOnIce records which device is mounted as the root filesystem when -+ writing the hibernation image. It will normally check at resume time that -+ this device isn't already mounted - that would be a cause of filesystem -+ corruption. In some particular cases (RAM based root filesystems), you -+ might want to disable this check. This option allows you to do that. -+ -+ - image_exists: -+ -+ Can be used in a script to determine whether a valid image exists at the -+ location currently pointed to by resume=. Returns up to three lines. -+ The first is whether an image exists (-1 for unsure, otherwise 0 or 1). -+ If an image eixsts, additional lines will return the machine and version. -+ Echoing anything to this entry removes any current image. -+ -+ - image_size_limit: -+ -+ The maximum size of hibernation image written to disk, measured in megabytes -+ (1024*1024). -+ -+ - last_result: -+ -+ The result of the last hibernation cycle, as defined in -+ include/linux/suspend-debug.h with the values SUSPEND_ABORTED to -+ SUSPEND_KEPT_IMAGE. This is a bitmask. -+ -+ - late_cpu_hotplug: -+ -+ This sysfs entry controls whether cpu hotplugging is done - as normal - just -+ before (unplug) and after (replug) the atomic copy/restore (so that all -+ CPUs/cores are available for multithreaded I/O). The alternative is to -+ unplug all secondary CPUs/cores at the start of hibernating/resuming, and -+ replug them at the end of resuming. No multithreaded I/O will be possible in -+ this configuration, but the odd machine has been reported to require it. -+ -+ - lid_file: -+ -+ This determines which ACPI button file we look in to determine whether the -+ lid is open or closed after resuming from suspend to disk or power off. -+ If the entry is set to "lid/LID", we'll open /proc/acpi/button/lid/LID/state -+ and check its contents at the appropriate moment. See post_wake_state below -+ for more details on how this entry is used. -+ -+ - log_everything (CONFIG_PM_DEBUG): -+ -+ Setting this option results in all messages printed being logged. Normally, -+ only a subset are logged, so as to not slow the process and not clutter the -+ logs. Useful for debugging. It can be toggled during a cycle by pressing -+ 'L'. -+ -+ - no_load_direct: -+ -+ This is a debugging option. If, when loading the atomically copied pages of -+ an image, TuxOnIce finds that the destination address for a page is free, -+ it will normally allocate the image, load the data directly into that -+ address and skip it in the atomic restore. If this option is disabled, the -+ page will be loaded somewhere else and atomically restored like other pages. -+ -+ - no_flusher_thread: -+ -+ When doing multithreaded I/O (see below), the first online CPU can be used -+ to _just_ submit compressed pages when writing the image, rather than -+ compressing and submitting data. This option is normally disabled, but has -+ been included because Nigel would like to see whether it will be more useful -+ as the number of cores/cpus in computers increases. -+ -+ - no_multithreaded_io: -+ -+ TuxOnIce will normally create one thread per cpu/core on your computer, -+ each of which will then perform I/O. This will generally result in -+ throughput that's the maximum the storage medium can handle. There -+ shouldn't be any reason to disable multithreaded I/O now, but this option -+ has been retained for debugging purposes. -+ -+ - no_pageset2 -+ -+ See the entry for full_pageset2 above for an explanation of pagesets. -+ Enabling this option causes TuxOnIce to do an atomic copy of all pages, -+ thereby limiting the maximum image size to 1/2 of memory, as swsusp does. -+ -+ - no_pageset2_if_unneeded -+ -+ See the entry for full_pageset2 above for an explanation of pagesets. -+ Enabling this option causes TuxOnIce to act like no_pageset2 was enabled -+ if and only it isn't needed anyway. This option may still make TuxOnIce -+ less reliable because pageset2 pages are normally used to store the -+ atomic copy - drivers that want to do allocations of larger amounts of -+ memory in one shot will be more likely to find that those amounts aren't -+ available if this option is enabled. -+ -+ - pause_between_steps (CONFIG_PM_DEBUG): -+ -+ This option is used during debugging, to make TuxOnIce pause between -+ each step of the process. It is ignored when the nice display is on. -+ -+ - post_wake_state: -+ -+ TuxOnIce provides support for automatically waking after a user-selected -+ delay, and using a different powerdown method if the lid is still closed. -+ (Yes, we're assuming a laptop). This entry lets you choose what state -+ should be entered next. The values are those described under -+ powerdown_method, below. It can be used to suspend to RAM after hibernating, -+ then powerdown properly (say) 20 minutes. It can also be used to power down -+ properly, then wake at (say) 6.30am and suspend to RAM until you're ready -+ to use the machine. -+ -+ - powerdown_method: -+ -+ Used to select a method by which TuxOnIce should powerdown after writing the -+ image. Currently: -+ -+ 0: Don't use ACPI to power off. -+ 3: Attempt to enter Suspend-to-ram. -+ 4: Attempt to enter ACPI S4 mode. -+ 5: Attempt to power down via ACPI S5 mode. -+ -+ Note that these options are highly dependant upon your hardware & software: -+ -+ 3: When succesful, your machine suspends to ram instead of powering off. -+ The advantage of using this mode is that it doesn't matter whether your -+ battery has enough charge to make it through to your next resume. If it -+ lasts, you will simply resume from suspend to ram (and the image on disk -+ will be discarded). If the battery runs out, you will resume from disk -+ instead. The disadvantage is that it takes longer than a normal -+ suspend-to-ram to enter the state, since the suspend-to-disk image needs -+ to be written first. -+ 4/5: When successful, your machine will be off and comsume (almost) no power. -+ But it might still react to some external events like opening the lid or -+ trafic on a network or usb device. For the bios, resume is then the same -+ as warm boot, similar to a situation where you used the command `reboot' -+ to reboot your machine. If your machine has problems on warm boot or if -+ you want to protect your machine with the bios password, this is probably -+ not the right choice. Mode 4 may be necessary on some machines where ACPI -+ wake up methods need to be run to properly reinitialise hardware after a -+ hibernation cycle. -+ 0: Switch the machine completely off. The only possible wakeup is the power -+ button. For the bios, resume is then the same as a cold boot, in -+ particular you would have to provide your bios boot password if your -+ machine uses that feature for booting. -+ -+ - progressbar_granularity_limit: -+ -+ This option can be used to limit the granularity of the progress bar -+ displayed with a bootsplash screen. The value is the maximum number of -+ steps. That is, 10 will make the progress bar jump in 10% increments. -+ -+ - reboot: -+ -+ This option causes TuxOnIce to reboot rather than powering down -+ at the end of saving an image. It can be toggled during a cycle by pressing -+ 'R'. -+ -+ - resume: -+ -+ This sysfs entry can be used to read and set the location in which TuxOnIce -+ will look for the signature of an image - the value set using resume= at -+ boot time or CONFIG_PM_STD_PARTITION ("Default resume partition"). By -+ writing to this file as well as modifying your bootloader's configuration -+ file (eg menu.lst), you can set or reset the location of your image or the -+ method of storing the image without rebooting. -+ -+ - replace_swsusp (CONFIG_TOI_REPLACE_SWSUSP): -+ -+ This option makes -+ -+ echo disk > /sys/power/state -+ -+ activate TuxOnIce instead of swsusp. Regardless of whether this option is -+ enabled, any invocation of swsusp's resume time trigger will cause TuxOnIce -+ to check for an image too. This is due to the fact that at resume time, we -+ can't know whether this option was enabled until we see if an image is there -+ for us to resume from. (And when an image exists, we don't care whether we -+ did replace swsusp anyway - we just want to resume). -+ -+ - resume_commandline: -+ -+ This entry can be read after resuming to see the commandline that was used -+ when resuming began. You might use this to set up two bootloader entries -+ that are the same apart from the fact that one includes a extra append= -+ argument "at_work=1". You could then grep resume_commandline in your -+ post-resume scripts and configure networking (for example) differently -+ depending upon whether you're at home or work. resume_commandline can be -+ set to arbitrary text if you wish to remove sensitive contents. -+ -+ - swap/swapfilename: -+ -+ This entry is used to specify the swapfile or partition that -+ TuxOnIce will attempt to swapon/swapoff automatically. Thus, if -+ I normally use /dev/hda1 for swap, and want to use /dev/hda2 for specifically -+ for my hibernation image, I would -+ -+ echo /dev/hda2 > /sys/power/tuxonice/swap/swapfile -+ -+ /dev/hda2 would then be automatically swapon'd and swapoff'd. Note that the -+ swapon and swapoff occur while other processes are frozen (including kswapd) -+ so this swap file will not be used up when attempting to free memory. The -+ parition/file is also given the highest priority, so other swapfiles/partitions -+ will only be used to save the image when this one is filled. -+ -+ The value of this file is used by headerlocations along with any currently -+ activated swapfiles/partitions. -+ -+ - swap/headerlocations: -+ -+ This option tells you the resume= options to use for swap devices you -+ currently have activated. It is particularly useful when you only want to -+ use a swap file to store your image. See above for further details. -+ -+ - test_bio -+ -+ This is a debugging option. When enabled, TuxOnIce will not hibernate. -+ Instead, when asked to write an image, it will skip the atomic copy, -+ just doing the writing of the image and then returning control to the -+ user at the point where it would have powered off. This is useful for -+ testing throughput in different configurations. -+ -+ - test_filter_speed -+ -+ This is a debugging option. When enabled, TuxOnIce will not hibernate. -+ Instead, when asked to write an image, it will not write anything or do -+ an atomic copy, but will only run any enabled compression algorithm on the -+ data that would have been written (the source pages of the atomic copy in -+ the case of pageset 1). This is useful for comparing the performance of -+ compression algorithms and for determining the extent to which an upgrade -+ to your storage method would improve hibernation speed. -+ -+ - user_interface/debug_sections (CONFIG_PM_DEBUG): -+ -+ This value, together with the console log level, controls what debugging -+ information is displayed. The console log level determines the level of -+ detail, and this value determines what detail is displayed. This value is -+ a bit vector, and the meaning of the bits can be found in the kernel tree -+ in include/linux/tuxonice.h. It can be overridden using the kernel's -+ command line option suspend_dbg. -+ -+ - user_interface/default_console_level (CONFIG_PM_DEBUG): -+ -+ This determines the value of the console log level at the start of a -+ hibernation cycle. If debugging is compiled in, the console log level can be -+ changed during a cycle by pressing the digit keys. Meanings are: -+ -+ 0: Nice display. -+ 1: Nice display plus numerical progress. -+ 2: Errors only. -+ 3: Low level debugging info. -+ 4: Medium level debugging info. -+ 5: High level debugging info. -+ 6: Verbose debugging info. -+ -+ - user_interface/enable_escape: -+ -+ Setting this to "1" will enable you abort a hibernation cycle or resuming by -+ pressing escape, "0" (default) disables this feature. Note that enabling -+ this option means that you cannot initiate a hibernation cycle and then walk -+ away from your computer, expecting it to be secure. With feature disabled, -+ you can validly have this expectation once TuxOnice begins to write the -+ image to disk. (Prior to this point, it is possible that TuxOnice might -+ about because of failure to freeze all processes or because constraints -+ on its ability to save the image are not met). -+ -+ - user_interface/program -+ -+ This entry is used to tell TuxOnice what userspace program to use for -+ providing a user interface while hibernating. The program uses a netlink -+ socket to pass messages back and forward to the kernel, allowing all of the -+ functions formerly implemented in the kernel user interface components. -+ -+ - version: -+ -+ The version of TuxOnIce you have compiled into the currently running kernel. -+ -+ - wake_alarm_dir: -+ -+ As mentioned above (post_wake_state), TuxOnIce supports automatically waking -+ after some delay. This entry allows you to select which wake alarm to use. -+ It should contain the value "rtc0" if you're wanting to use -+ /sys/class/rtc/rtc0. -+ -+ - wake_delay: -+ -+ This value determines the delay from the end of writing the image until the -+ wake alarm is triggered. You can set an absolute time by writing the desired -+ time into /sys/class/rtc//wakealarm and leaving these values -+ empty. -+ -+ Note that for the wakeup to actually occur, you may need to modify entries -+ in /proc/acpi/wakeup. This is done by echoing the name of the button in the -+ first column (eg PBTN) into the file. -+ -+7. How do you get support? -+ -+ Glad you asked. TuxOnIce is being actively maintained and supported -+ by Nigel (the guy doing most of the kernel coding at the moment), Bernard -+ (who maintains the hibernate script and userspace user interface components) -+ and its users. -+ -+ Resources availble include HowTos, FAQs and a Wiki, all available via -+ tuxonice.net. You can find the mailing lists there. -+ -+8. I think I've found a bug. What should I do? -+ -+ By far and a way, the most common problems people have with TuxOnIce -+ related to drivers not having adequate power management support. In this -+ case, it is not a bug with TuxOnIce, but we can still help you. As we -+ mentioned above, such issues can usually be worked around by building the -+ functionality as modules and unloading them while hibernating. Please visit -+ the Wiki for up-to-date lists of known issues and work arounds. -+ -+ If this information doesn't help, try running: -+ -+ hibernate --bug-report -+ -+ ..and sending the output to the users mailing list. -+ -+ Good information on how to provide us with useful information from an -+ oops is found in the file REPORTING-BUGS, in the top level directory -+ of the kernel tree. If you get an oops, please especially note the -+ information about running what is printed on the screen through ksymoops. -+ The raw information is useless. -+ -+9. When will XXX be supported? -+ -+ If there's a feature missing from TuxOnIce that you'd like, feel free to -+ ask. We try to be obliging, within reason. -+ -+ Patches are welcome. Please send to the list. -+ -+10. How does it work? -+ -+ TuxOnIce does its work in a number of steps. -+ -+ a. Freezing system activity. -+ -+ The first main stage in hibernating is to stop all other activity. This is -+ achieved in stages. Processes are considered in fours groups, which we will -+ describe in reverse order for clarity's sake: Threads with the PF_NOFREEZE -+ flag, kernel threads without this flag, userspace processes with the -+ PF_SYNCTHREAD flag and all other processes. The first set (PF_NOFREEZE) are -+ untouched by the refrigerator code. They are allowed to run during hibernating -+ and resuming, and are used to support user interaction, storage access or the -+ like. Other kernel threads (those unneeded while hibernating) are frozen last. -+ This leaves us with userspace processes that need to be frozen. When a -+ process enters one of the *_sync system calls, we set a PF_SYNCTHREAD flag on -+ that process for the duration of that call. Processes that have this flag are -+ frozen after processes without it, so that we can seek to ensure that dirty -+ data is synced to disk as quickly as possible in a situation where other -+ processes may be submitting writes at the same time. Freezing the processes -+ that are submitting data stops new I/O from being submitted. Syncthreads can -+ then cleanly finish their work. So the order is: -+ -+ - Userspace processes without PF_SYNCTHREAD or PF_NOFREEZE; -+ - Userspace processes with PF_SYNCTHREAD (they won't have NOFREEZE); -+ - Kernel processes without PF_NOFREEZE. -+ -+ b. Eating memory. -+ -+ For a successful hibernation cycle, you need to have enough disk space to store the -+ image and enough memory for the various limitations of TuxOnIce's -+ algorithm. You can also specify a maximum image size. In order to attain -+ to those constraints, TuxOnIce may 'eat' memory. If, after freezing -+ processes, the constraints aren't met, TuxOnIce will thaw all the -+ other processes and begin to eat memory until its calculations indicate -+ the constraints are met. It will then freeze processes again and recheck -+ its calculations. -+ -+ c. Allocation of storage. -+ -+ Next, TuxOnIce allocates the storage that will be used to save -+ the image. -+ -+ The core of TuxOnIce knows nothing about how or where pages are stored. We -+ therefore request the active allocator (remember you might have compiled in -+ more than one!) to allocate enough storage for our expect image size. If -+ this request cannot be fulfilled, we eat more memory and try again. If it -+ is fulfiled, we seek to allocate additional storage, just in case our -+ expected compression ratio (if any) isn't achieved. This time, however, we -+ just continue if we can't allocate enough storage. -+ -+ If these calls to our allocator change the characteristics of the image -+ such that we haven't allocated enough memory, we also loop. (The allocator -+ may well need to allocate space for its storage information). -+ -+ d. Write the first part of the image. -+ -+ TuxOnIce stores the image in two sets of pages called 'pagesets'. -+ Pageset 2 contains pages on the active and inactive lists; essentially -+ the page cache. Pageset 1 contains all other pages, including the kernel. -+ We use two pagesets for one important reason: We need to make an atomic copy -+ of the kernel to ensure consistency of the image. Without a second pageset, -+ that would limit us to an image that was at most half the amount of memory -+ available. Using two pagesets allows us to store a full image. Since pageset -+ 2 pages won't be needed in saving pageset 1, we first save pageset 2 pages. -+ We can then make our atomic copy of the remaining pages using both pageset 2 -+ pages and any other pages that are free. While saving both pagesets, we are -+ careful not to corrupt the image. Among other things, we use lowlevel block -+ I/O routines that don't change the pagecache contents. -+ -+ The next step, then, is writing pageset 2. -+ -+ e. Suspending drivers and storing processor context. -+ -+ Having written pageset2, TuxOnIce calls the power management functions to -+ notify drivers of the hibernation, and saves the processor state in preparation -+ for the atomic copy of memory we are about to make. -+ -+ f. Atomic copy. -+ -+ At this stage, everything else but the TuxOnIce code is halted. Processes -+ are frozen or idling, drivers are quiesced and have stored (ideally and where -+ necessary) their configuration in memory we are about to atomically copy. -+ In our lowlevel architecture specific code, we have saved the CPU state. -+ We can therefore now do our atomic copy before resuming drivers etc. -+ -+ g. Save the atomic copy (pageset 1). -+ -+ TuxOnice can then write the atomic copy of the remaining pages. Since we -+ have copied the pages into other locations, we can continue to use the -+ normal block I/O routines without fear of corruption our image. -+ -+ f. Save the image header. -+ -+ Nearly there! We save our settings and other parameters needed for -+ reloading pageset 1 in an 'image header'. We also tell our allocator to -+ serialise its data at this stage, so that it can reread the image at resume -+ time. -+ -+ g. Set the image header. -+ -+ Finally, we edit the header at our resume= location. The signature is -+ changed by the allocator to reflect the fact that an image exists, and to -+ point to the start of that data if necessary (swap allocator). -+ -+ h. Power down. -+ -+ Or reboot if we're debugging and the appropriate option is selected. -+ -+ Whew! -+ -+ Reloading the image. -+ -------------------- -+ -+ Reloading the image is essentially the reverse of all the above. We load -+ our copy of pageset 1, being careful to choose locations that aren't going -+ to be overwritten as we copy it back (We start very early in the boot -+ process, so there are no other processes to quiesce here). We then copy -+ pageset 1 back to its original location in memory and restore the process -+ context. We are now running with the original kernel. Next, we reload the -+ pageset 2 pages, free the memory and swap used by TuxOnIce, restore -+ the pageset header and restart processes. Sounds easy in comparison to -+ hibernating, doesn't it! -+ -+ There is of course more to TuxOnIce than this, but this explanation -+ should be a good start. If there's interest, I'll write further -+ documentation on range pages and the low level I/O. -+ -+11. Who wrote TuxOnIce? -+ -+ (Answer based on the writings of Florent Chabaud, credits in files and -+ Nigel's limited knowledge; apologies to anyone missed out!) -+ -+ The main developers of TuxOnIce have been... -+ -+ Gabor Kuti -+ Pavel Machek -+ Florent Chabaud -+ Bernard Blackham -+ Nigel Cunningham -+ -+ Significant portions of swsusp, the code in the vanilla kernel which -+ TuxOnIce enhances, have been worked on by Rafael Wysocki. Thanks should -+ also be expressed to him. -+ -+ The above mentioned developers have been aided in their efforts by a host -+ of hundreds, if not thousands of testers and people who have submitted bug -+ fixes & suggestions. Of special note are the efforts of Michael Frank, who -+ had his computers repetitively hibernate and resume for literally tens of -+ thousands of cycles and developed scripts to stress the system and test -+ TuxOnIce far beyond the point most of us (Nigel included!) would consider -+ testing. His efforts have contributed as much to TuxOnIce as any of the -+ names above. -diff --git a/MAINTAINERS b/MAINTAINERS -index 2533fc4..e14223f 100644 ---- a/MAINTAINERS -+++ b/MAINTAINERS -@@ -5380,6 +5380,13 @@ S: Maintained - F: drivers/tc/ - F: include/linux/tc.h - -+TUXONICE (ENHANCED HIBERNATION) -+P: Nigel Cunningham -+M: nigel@tuxonice.net -+L: tuxonice-devel@tuxonice.net -+W: http://tuxonice.net -+S: Maintained -+ - U14-34F SCSI DRIVER - M: Dario Ballabio - L: linux-scsi@vger.kernel.org -diff --git a/arch/powerpc/mm/pgtable_32.c b/arch/powerpc/mm/pgtable_32.c -index 573b3bd..073736f 100644 ---- a/arch/powerpc/mm/pgtable_32.c -+++ b/arch/powerpc/mm/pgtable_32.c -@@ -422,6 +422,7 @@ void kernel_map_pages(struct page *page, int numpages, int enable) - - change_page_attr(page, numpages, enable ? PAGE_KERNEL : __pgprot(0)); - } -+EXPORT_SYMBOL_GPL(kernel_map_pages); - #endif /* CONFIG_DEBUG_PAGEALLOC */ - - static int fixmaps; -diff --git a/arch/x86/kernel/reboot.c b/arch/x86/kernel/reboot.c -index 704bddc..acdf978 100644 ---- a/arch/x86/kernel/reboot.c -+++ b/arch/x86/kernel/reboot.c -@@ -710,6 +710,7 @@ void machine_restart(char *cmd) - { - machine_ops.restart(cmd); - } -+EXPORT_SYMBOL_GPL(machine_restart); - - void machine_halt(void) - { -diff --git a/arch/x86/mm/pageattr.c b/arch/x86/mm/pageattr.c -index 1d4eb93..035b423 100644 ---- a/arch/x86/mm/pageattr.c -+++ b/arch/x86/mm/pageattr.c -@@ -1296,6 +1296,7 @@ void kernel_map_pages(struct page *page, int numpages, int enable) - */ - __flush_tlb_all(); - } -+EXPORT_SYMBOL_GPL(kernel_map_pages); - - #ifdef CONFIG_HIBERNATION - -@@ -1310,7 +1311,7 @@ bool kernel_page_present(struct page *page) - pte = lookup_address((unsigned long)page_address(page), &level); - return (pte_val(*pte) & _PAGE_PRESENT); - } -- -+EXPORT_SYMBOL_GPL(kernel_page_present); - #endif /* CONFIG_HIBERNATION */ - - #endif /* CONFIG_DEBUG_PAGEALLOC */ -diff --git a/arch/x86/power/cpu.c b/arch/x86/power/cpu.c -index 0a979f3..7cdace5 100644 ---- a/arch/x86/power/cpu.c -+++ b/arch/x86/power/cpu.c -@@ -112,9 +112,7 @@ void save_processor_state(void) - { - __save_processor_state(&saved_context); - } --#ifdef CONFIG_X86_32 - EXPORT_SYMBOL(save_processor_state); --#endif - - static void do_fpu_end(void) - { -diff --git a/arch/x86/power/hibernate_32.c b/arch/x86/power/hibernate_32.c -index 81197c6..ff7e534 100644 ---- a/arch/x86/power/hibernate_32.c -+++ b/arch/x86/power/hibernate_32.c -@@ -8,6 +8,7 @@ - - #include - #include -+#include - - #include - #include -@@ -163,6 +164,7 @@ int swsusp_arch_resume(void) - restore_image(); - return 0; - } -+EXPORT_SYMBOL_GPL(swsusp_arch_resume); - - /* - * pfn_is_nosave - check if given pfn is in the 'nosave' section -diff --git a/arch/x86/power/hibernate_64.c b/arch/x86/power/hibernate_64.c -index 65fdc86..e5c31f6 100644 ---- a/arch/x86/power/hibernate_64.c -+++ b/arch/x86/power/hibernate_64.c -@@ -10,6 +10,7 @@ - - #include - #include -+#include - #include - #include - #include -@@ -118,6 +119,7 @@ int swsusp_arch_resume(void) - restore_image(); - return 0; - } -+EXPORT_SYMBOL_GPL(swsusp_arch_resume); - - /* - * pfn_is_nosave - check if given pfn is in the 'nosave' section -@@ -168,3 +170,4 @@ int arch_hibernation_header_restore(void *addr) - restore_cr3 = rdr->cr3; - return (rdr->magic == RESTORE_MAGIC) ? 0 : -EINVAL; - } -+EXPORT_SYMBOL_GPL(arch_hibernation_header_restore); -diff --git a/block/Makefile b/block/Makefile -index cb2d515..f35a848 100644 ---- a/block/Makefile -+++ b/block/Makefile -@@ -5,7 +5,7 @@ - obj-$(CONFIG_BLOCK) := elevator.o blk-core.o blk-tag.o blk-sysfs.o \ - blk-barrier.o blk-settings.o blk-ioc.o blk-map.o \ - blk-exec.o blk-merge.o blk-softirq.o blk-timeout.o \ -- blk-iopoll.o ioctl.o genhd.o scsi_ioctl.o -+ blk-iopoll.o ioctl.o genhd.o scsi_ioctl.o uuid.o - - obj-$(CONFIG_BLK_DEV_BSG) += bsg.o - obj-$(CONFIG_BLK_CGROUP) += blk-cgroup.o -diff --git a/block/blk-core.c b/block/blk-core.c -index d1a9a0a..d229a5b 100644 ---- a/block/blk-core.c -+++ b/block/blk-core.c -@@ -37,6 +37,9 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(block_remap); - EXPORT_TRACEPOINT_SYMBOL_GPL(block_rq_remap); - EXPORT_TRACEPOINT_SYMBOL_GPL(block_bio_complete); - -+int trap_non_toi_io; -+EXPORT_SYMBOL_GPL(trap_non_toi_io); -+ - static int __make_request(struct request_queue *q, struct bio *bio); - - /* -@@ -1555,6 +1558,9 @@ void submit_bio(int rw, struct bio *bio) - - bio->bi_rw |= rw; - -+ if (unlikely(trap_non_toi_io)) -+ BUG_ON(!bio_rw_flagged(bio, BIO_RW_TUXONICE)); -+ - /* - * If it's a regular read/write or a barrier with data attached, - * go through the normal accounting stuff before submission. -diff --git a/block/genhd.c b/block/genhd.c -index d13ba76..a69521c 100644 ---- a/block/genhd.c -+++ b/block/genhd.c -@@ -18,6 +18,8 @@ - #include - #include - #include -+#include -+#include - - #include "blk.h" - -@@ -1286,3 +1288,82 @@ int invalidate_partition(struct gendisk *disk, int partno) - } - - EXPORT_SYMBOL(invalidate_partition); -+ -+dev_t blk_lookup_uuid(const char *uuid) -+{ -+ dev_t devt = MKDEV(0, 0); -+ struct class_dev_iter iter; -+ struct device *dev; -+ -+ class_dev_iter_init(&iter, &block_class, NULL, &disk_type); -+ while (!devt && (dev = class_dev_iter_next(&iter))) { -+ struct gendisk *disk = dev_to_disk(dev); -+ struct disk_part_iter piter; -+ struct hd_struct *part; -+ -+ disk_part_iter_init(&piter, disk, DISK_PITER_INCL_PART0); -+ -+ while ((part = disk_part_iter_next(&piter))) { -+ if (part_matches_uuid(part, uuid)) { -+ devt = part_devt(part); -+ break; -+ } -+ } -+ disk_part_iter_exit(&piter); -+ } -+ class_dev_iter_exit(&iter); -+ return devt; -+} -+EXPORT_SYMBOL_GPL(blk_lookup_uuid); -+ -+/* Caller uses NULL, key to start. For each match found, we return a bdev on -+ * which we have done blkdev_get, and we do the blkdev_put on block devices -+ * that are passed to us. When no more matches are found, we return NULL. -+ */ -+struct block_device *next_bdev_of_type(struct block_device *last, -+ const char *key) -+{ -+ dev_t devt = MKDEV(0, 0); -+ struct class_dev_iter iter; -+ struct device *dev; -+ struct block_device *next = NULL, *bdev; -+ int got_last = 0; -+ -+ if (!key) -+ goto out; -+ -+ class_dev_iter_init(&iter, &block_class, NULL, &disk_type); -+ while (!devt && (dev = class_dev_iter_next(&iter))) { -+ struct gendisk *disk = dev_to_disk(dev); -+ struct disk_part_iter piter; -+ struct hd_struct *part; -+ -+ disk_part_iter_init(&piter, disk, DISK_PITER_INCL_PART0); -+ -+ while ((part = disk_part_iter_next(&piter))) { -+ bdev = bdget(part_devt(part)); -+ if (last && !got_last) { -+ if (last == bdev) -+ got_last = 1; -+ continue; -+ } -+ -+ if (blkdev_get(bdev, FMODE_READ)) -+ continue; -+ -+ if (bdev_matches_key(bdev, key)) { -+ next = bdev; -+ break; -+ } -+ -+ blkdev_put(bdev, FMODE_READ); -+ } -+ disk_part_iter_exit(&piter); -+ } -+ class_dev_iter_exit(&iter); -+out: -+ if (last) -+ blkdev_put(last, FMODE_READ); -+ return next; -+} -+EXPORT_SYMBOL_GPL(next_bdev_of_type); -diff --git a/block/uuid.c b/block/uuid.c -new file mode 100644 -index 0000000..3862685 ---- /dev/null -+++ b/block/uuid.c -@@ -0,0 +1,528 @@ -+#include -+#include -+#include -+ -+static int debug_enabled; -+ -+#define PRINTK(fmt, args...) do { \ -+ if (debug_enabled) \ -+ printk(KERN_DEBUG fmt, ## args); \ -+ } while(0) -+ -+#define PRINT_HEX_DUMP(v1, v2, v3, v4, v5, v6, v7, v8) \ -+ do { \ -+ if (debug_enabled) \ -+ print_hex_dump(v1, v2, v3, v4, v5, v6, v7, v8); \ -+ } while(0) -+ -+/* -+ * Simple UUID translation -+ */ -+ -+struct uuid_info { -+ const char *key; -+ const char *name; -+ long bkoff; -+ unsigned sboff; -+ unsigned sig_len; -+ const char *magic; -+ int uuid_offset; -+ int last_mount_offset; -+ int last_mount_size; -+}; -+ -+/* -+ * Based on libuuid's blkid_magic array. Note that I don't -+ * have uuid offsets for all of these yet - mssing ones are 0x0. -+ * Further information welcome. -+ * -+ * Rearranged by page of fs signature for optimisation. -+ */ -+static struct uuid_info uuid_list[] = { -+ { NULL, "oracleasm", 0, 32, 8, "ORCLDISK", 0x0, 0, 0 }, -+ { "ntfs", "ntfs", 0, 3, 8, "NTFS ", 0x0, 0, 0 }, -+ { "vfat", "vfat", 0, 0x52, 5, "MSWIN", 0x0, 0, 0 }, -+ { "vfat", "vfat", 0, 0x52, 8, "FAT32 ", 0x0, 0, 0 }, -+ { "vfat", "vfat", 0, 0x36, 5, "MSDOS", 0x0, 0, 0 }, -+ { "vfat", "vfat", 0, 0x36, 8, "FAT16 ", 0x0, 0, 0 }, -+ { "vfat", "vfat", 0, 0x36, 8, "FAT12 ", 0x0, 0, 0 }, -+ { "vfat", "vfat", 0, 0, 1, "\353", 0x0, 0, 0 }, -+ { "vfat", "vfat", 0, 0, 1, "\351", 0x0, 0, 0 }, -+ { "vfat", "vfat", 0, 0x1fe, 2, "\125\252", 0x0, 0, 0 }, -+ { "xfs", "xfs", 0, 0, 4, "XFSB", 0x14, 0, 0 }, -+ { "romfs", "romfs", 0, 0, 8, "-rom1fs-", 0x0, 0, 0 }, -+ { "bfs", "bfs", 0, 0, 4, "\316\372\173\033", 0, 0, 0 }, -+ { "cramfs", "cramfs", 0, 0, 4, "E=\315\050", 0x0, 0, 0 }, -+ { "qnx4", "qnx4", 0, 4, 6, "QNX4FS", 0, 0, 0 }, -+ { NULL, "crypt_LUKS", 0, 0, 6, "LUKS\xba\xbe", 0x0, 0, 0 }, -+ { "squashfs", "squashfs", 0, 0, 4, "sqsh", 0, 0, 0 }, -+ { "squashfs", "squashfs", 0, 0, 4, "hsqs", 0, 0, 0 }, -+ { "ocfs", "ocfs", 0, 8, 9, "OracleCFS", 0x0, 0, 0 }, -+ { "lvm2pv", "lvm2pv", 0, 0x018, 8, "LVM2 001", 0x0, 0, 0 }, -+ { "sysv", "sysv", 0, 0x3f8, 4, "\020~\030\375", 0, 0, 0 }, -+ { "ext", "ext", 1, 0x38, 2, "\123\357", 0x468, 0x42c, 4 }, -+ { "minix", "minix", 1, 0x10, 2, "\177\023", 0, 0, 0 }, -+ { "minix", "minix", 1, 0x10, 2, "\217\023", 0, 0, 0 }, -+ { "minix", "minix", 1, 0x10, 2, "\150\044", 0, 0, 0 }, -+ { "minix", "minix", 1, 0x10, 2, "\170\044", 0, 0, 0 }, -+ { "lvm2pv", "lvm2pv", 1, 0x018, 8, "LVM2 001", 0x0, 0, 0 }, -+ { "vxfs", "vxfs", 1, 0, 4, "\365\374\001\245", 0, 0, 0 }, -+ { "hfsplus", "hfsplus", 1, 0, 2, "BD", 0x0, 0, 0 }, -+ { "hfsplus", "hfsplus", 1, 0, 2, "H+", 0x0, 0, 0 }, -+ { "hfsplus", "hfsplus", 1, 0, 2, "HX", 0x0, 0, 0 }, -+ { "hfs", "hfs", 1, 0, 2, "BD", 0x0, 0, 0 }, -+ { "ocfs2", "ocfs2", 1, 0, 6, "OCFSV2", 0x0, 0, 0 }, -+ { "lvm2pv", "lvm2pv", 0, 0x218, 8, "LVM2 001", 0x0, 0, 0 }, -+ { "lvm2pv", "lvm2pv", 1, 0x218, 8, "LVM2 001", 0x0, 0, 0 }, -+ { "ocfs2", "ocfs2", 2, 0, 6, "OCFSV2", 0x0, 0, 0 }, -+ { "swap", "swap", 0, 0xff6, 10, "SWAP-SPACE", 0x40c, 0, 0 }, -+ { "swap", "swap", 0, 0xff6, 10, "SWAPSPACE2", 0x40c, 0, 0 }, -+ { "swap", "swsuspend", 0, 0xff6, 9, "S1SUSPEND", 0x40c, 0, 0 }, -+ { "swap", "swsuspend", 0, 0xff6, 9, "S2SUSPEND", 0x40c, 0, 0 }, -+ { "swap", "swsuspend", 0, 0xff6, 9, "ULSUSPEND", 0x40c, 0, 0 }, -+ { "ocfs2", "ocfs2", 4, 0, 6, "OCFSV2", 0x0, 0, 0 }, -+ { "ocfs2", "ocfs2", 8, 0, 6, "OCFSV2", 0x0, 0, 0 }, -+ { "hpfs", "hpfs", 8, 0, 4, "I\350\225\371", 0, 0, 0 }, -+ { "reiserfs", "reiserfs", 8, 0x34, 8, "ReIsErFs", 0x10054, 0, 0 }, -+ { "reiserfs", "reiserfs", 8, 20, 8, "ReIsErFs", 0x10054, 0, 0 }, -+ { "zfs", "zfs", 8, 0, 8, "\0\0\x02\xf5\xb0\x07\xb1\x0c", 0x0, 0, 0 }, -+ { "zfs", "zfs", 8, 0, 8, "\x0c\xb1\x07\xb0\xf5\x02\0\0", 0x0, 0, 0 }, -+ { "ufs", "ufs", 8, 0x55c, 4, "T\031\001\000", 0, 0, 0 }, -+ { "swap", "swap", 0, 0x1ff6, 10, "SWAP-SPACE", 0x40c, 0, 0 }, -+ { "swap", "swap", 0, 0x1ff6, 10, "SWAPSPACE2", 0x40c, 0, 0 }, -+ { "swap", "swsuspend", 0, 0x1ff6, 9, "S1SUSPEND", 0x40c, 0, 0 }, -+ { "swap", "swsuspend", 0, 0x1ff6, 9, "S2SUSPEND", 0x40c, 0, 0 }, -+ { "swap", "swsuspend", 0, 0x1ff6, 9, "ULSUSPEND", 0x40c, 0, 0 }, -+ { "reiserfs", "reiserfs", 64, 0x34, 9, "ReIsEr2Fs", 0x10054, 0, 0 }, -+ { "reiserfs", "reiserfs", 64, 0x34, 9, "ReIsEr3Fs", 0x10054, 0, 0 }, -+ { "reiserfs", "reiserfs", 64, 0x34, 8, "ReIsErFs", 0x10054, 0, 0 }, -+ { "reiser4", "reiser4", 64, 0, 7, "ReIsEr4", 0x100544, 0, 0 }, -+ { "gfs2", "gfs2", 64, 0, 4, "\x01\x16\x19\x70", 0x0, 0, 0 }, -+ { "gfs", "gfs", 64, 0, 4, "\x01\x16\x19\x70", 0x0, 0, 0 }, -+ { "btrfs", "btrfs", 64, 0x40, 8, "_BHRfS_M", 0x0, 0, 0 }, -+ { "swap", "swap", 0, 0x3ff6, 10, "SWAP-SPACE", 0x40c, 0, 0 }, -+ { "swap", "swap", 0, 0x3ff6, 10, "SWAPSPACE2", 0x40c, 0, 0 }, -+ { "swap", "swsuspend", 0, 0x3ff6, 9, "S1SUSPEND", 0x40c, 0, 0 }, -+ { "swap", "swsuspend", 0, 0x3ff6, 9, "S2SUSPEND", 0x40c, 0, 0 }, -+ { "swap", "swsuspend", 0, 0x3ff6, 9, "ULSUSPEND", 0x40c, 0, 0 }, -+ { "udf", "udf", 32, 1, 5, "BEA01", 0x0, 0, 0 }, -+ { "udf", "udf", 32, 1, 5, "BOOT2", 0x0, 0, 0 }, -+ { "udf", "udf", 32, 1, 5, "CD001", 0x0, 0, 0 }, -+ { "udf", "udf", 32, 1, 5, "CDW02", 0x0, 0, 0 }, -+ { "udf", "udf", 32, 1, 5, "NSR02", 0x0, 0, 0 }, -+ { "udf", "udf", 32, 1, 5, "NSR03", 0x0, 0, 0 }, -+ { "udf", "udf", 32, 1, 5, "TEA01", 0x0, 0, 0 }, -+ { "iso9660", "iso9660", 32, 1, 5, "CD001", 0x0, 0, 0 }, -+ { "iso9660", "iso9660", 32, 9, 5, "CDROM", 0x0, 0, 0 }, -+ { "jfs", "jfs", 32, 0, 4, "JFS1", 0x88, 0, 0 }, -+ { "swap", "swap", 0, 0x7ff6, 10, "SWAP-SPACE", 0x40c, 0, 0 }, -+ { "swap", "swap", 0, 0x7ff6, 10, "SWAPSPACE2", 0x40c, 0, 0 }, -+ { "swap", "swsuspend", 0, 0x7ff6, 9, "S1SUSPEND", 0x40c, 0, 0 }, -+ { "swap", "swsuspend", 0, 0x7ff6, 9, "S2SUSPEND", 0x40c, 0, 0 }, -+ { "swap", "swsuspend", 0, 0x7ff6, 9, "ULSUSPEND", 0x40c, 0, 0 }, -+ { "swap", "swap", 0, 0xfff6, 10, "SWAP-SPACE", 0x40c, 0, 0 }, -+ { "swap", "swap", 0, 0xfff6, 10, "SWAPSPACE2", 0x40c, 0, 0 }, -+ { "swap", "swsuspend", 0, 0xfff6, 9, "S1SUSPEND", 0x40c, 0, 0 }, -+ { "swap", "swsuspend", 0, 0xfff6, 9, "S2SUSPEND", 0x40c, 0, 0 }, -+ { "swap", "swsuspend", 0, 0xfff6, 9, "ULSUSPEND", 0x40c, 0, 0 }, -+ { "zfs", "zfs", 264, 0, 8, "\0\0\x02\xf5\xb0\x07\xb1\x0c", 0x0, 0, 0 }, -+ { "zfs", "zfs", 264, 0, 8, "\x0c\xb1\x07\xb0\xf5\x02\0\0", 0x0, 0, 0 }, -+ { NULL, NULL, 0, 0, 0, NULL, 0x0, 0, 0 } -+}; -+ -+static int null_uuid(const char *uuid) -+{ -+ int i; -+ -+ for (i = 0; i < 16 && !uuid[i]; i++); -+ -+ return (i == 16); -+} -+ -+ -+static void uuid_end_bio(struct bio *bio, int err) -+{ -+ struct page *page = bio->bi_io_vec[0].bv_page; -+ -+ BUG_ON(!test_bit(BIO_UPTODATE, &bio->bi_flags)); -+ -+ unlock_page(page); -+ bio_put(bio); -+} -+ -+ -+/** -+ * submit - submit BIO request -+ * @dev: The block device we're using. -+ * @page_num: The page we're reading. -+ * -+ * Based on Patrick Mochell's pmdisk code from long ago: "Straight from the -+ * textbook - allocate and initialize the bio. If we're writing, make sure -+ * the page is marked as dirty. Then submit it and carry on." -+ **/ -+static struct page *read_bdev_page(struct block_device *dev, int page_num) -+{ -+ struct bio *bio = NULL; -+ struct page *page = alloc_page(GFP_NOFS); -+ -+ if (!page) { -+ printk(KERN_ERR "Failed to allocate a page for reading data " -+ "in UUID checks."); -+ return NULL; -+ } -+ -+ bio = bio_alloc(GFP_NOFS, 1); -+ bio->bi_bdev = dev; -+ bio->bi_sector = page_num << 3; -+ bio->bi_end_io = uuid_end_bio; -+ -+ PRINTK("Submitting bio on device %lx, page %d.\n", -+ (unsigned long) dev->bd_dev, page_num); -+ -+ if (bio_add_page(bio, page, PAGE_SIZE, 0) < PAGE_SIZE) { -+ printk(KERN_DEBUG "ERROR: adding page to bio at %d\n", -+ page_num); -+ bio_put(bio); -+ __free_page(page); -+ printk(KERN_DEBUG "read_bdev_page freed page %p (in error " -+ "path).\n", page); -+ return ERR_PTR(-EFAULT); -+ } -+ -+ lock_page(page); -+ submit_bio(READ | (1 << BIO_RW_SYNCIO) | -+ (1 << BIO_RW_UNPLUG), bio); -+ -+ wait_on_page_locked(page); -+ return page; -+} -+ -+int bdev_matches_key(struct block_device *bdev, const char *key) -+{ -+ unsigned char *data = NULL; -+ struct page *data_page = NULL; -+ -+ int dev_offset, pg_num, pg_off, i; -+ int last_pg_num = -1; -+ int result = 0; -+ char buf[50]; -+ -+ if (null_uuid(key)) { -+ PRINTK("Refusing to find a NULL key.\n"); -+ return 0; -+ } -+ -+ if (!bdev->bd_disk) { -+ bdevname(bdev, buf); -+ PRINTK("bdev %s has no bd_disk.\n", buf); -+ return 0; -+ } -+ -+ if (!bdev->bd_disk->queue) { -+ bdevname(bdev, buf); -+ PRINTK("bdev %s has no queue.\n", buf); -+ return 0; -+ } -+ -+ for (i = 0; uuid_list[i].name; i++) { -+ struct uuid_info *dat = &uuid_list[i]; -+ -+ if (!dat->key || strcmp(dat->key, key)) -+ continue; -+ -+ dev_offset = (dat->bkoff << 10) + dat->sboff; -+ pg_num = dev_offset >> 12; -+ pg_off = dev_offset & 0xfff; -+ -+ if ((((pg_num + 1) << 3) - 1) > bdev->bd_part->nr_sects >> 1) -+ continue; -+ -+ if (pg_num != last_pg_num) { -+ if (data_page) -+ __free_page(data_page); -+ data_page = read_bdev_page(bdev, pg_num); -+ if (!data_page) { -+ result = -ENOMEM; -+ break; -+ } -+ data = page_address(data_page); -+ } -+ -+ last_pg_num = pg_num; -+ -+ if (strncmp(&data[pg_off], dat->magic, dat->sig_len)) -+ continue; -+ -+ result = 1; -+ break; -+ } -+ -+ if (data_page) -+ __free_page(data_page); -+ -+ return result; -+} -+ -+int part_matches_uuid(struct hd_struct *part, const char *uuid) -+{ -+ struct block_device *bdev; -+ unsigned char *data = NULL; -+ struct page *data_page = NULL; -+ -+ int dev_offset, pg_num, pg_off; -+ int uuid_pg_num, uuid_pg_off, i; -+ unsigned char *uuid_data = NULL; -+ struct page *uuid_data_page = NULL; -+ -+ int last_pg_num = -1, last_uuid_pg_num = 0; -+ int result = 0; -+ char buf[50]; -+ -+ if (null_uuid(uuid)) { -+ PRINTK("Refusing to find a NULL uuid.\n"); -+ return 0; -+ } -+ -+ bdev = bdget(part_devt(part)); -+ -+ PRINTK("blkdev_get %p.\n", part); -+ -+ if (blkdev_get(bdev, FMODE_READ)) { -+ PRINTK("blkdev_get failed.\n"); -+ return 0; -+ } -+ -+ if (!bdev->bd_disk) { -+ bdevname(bdev, buf); -+ PRINTK("bdev %s has no bd_disk.\n", buf); -+ goto out; -+ } -+ -+ if (!bdev->bd_disk->queue) { -+ bdevname(bdev, buf); -+ PRINTK("bdev %s has no queue.\n", buf); -+ goto out; -+ } -+ -+ PRINT_HEX_DUMP(KERN_EMERG, "part_matches_uuid looking for ", -+ DUMP_PREFIX_NONE, 16, 1, uuid, 16, 0); -+ -+ for (i = 0; uuid_list[i].name; i++) { -+ struct uuid_info *dat = &uuid_list[i]; -+ dev_offset = (dat->bkoff << 10) + dat->sboff; -+ pg_num = dev_offset >> 12; -+ pg_off = dev_offset & 0xfff; -+ uuid_pg_num = dat->uuid_offset >> 12; -+ uuid_pg_off = dat->uuid_offset & 0xfff; -+ -+ if ((((pg_num + 1) << 3) - 1) > part->nr_sects >> 1) -+ continue; -+ -+ /* Ignore partition types with no UUID offset */ -+ if (!dat->uuid_offset) -+ continue; -+ -+ if (pg_num != last_pg_num) { -+ if (data_page) -+ __free_page(data_page); -+ data_page = read_bdev_page(bdev, pg_num); -+ if (!data_page) { -+ result = -ENOMEM; -+ break; -+ } -+ data = page_address(data_page); -+ } -+ -+ last_pg_num = pg_num; -+ -+ if (strncmp(&data[pg_off], dat->magic, dat->sig_len)) -+ continue; -+ -+ /* Does the UUID match? */ -+ if (uuid_pg_num > part->nr_sects >> 3) -+ continue; -+ -+ if (!uuid_data || uuid_pg_num != last_uuid_pg_num) { -+ if (uuid_data_page) -+ __free_page(uuid_data_page); -+ uuid_data_page = read_bdev_page(bdev, uuid_pg_num); -+ if (!uuid_data_page) { -+ result = -ENOMEM; -+ break; -+ } -+ uuid_data = page_address(uuid_data_page); -+ } -+ -+ last_uuid_pg_num = uuid_pg_num; -+ -+ PRINT_HEX_DUMP(KERN_EMERG, "part_matches_uuid considering ", -+ DUMP_PREFIX_NONE, 16, 1, -+ &uuid_data[uuid_pg_off], 16, 0); -+ -+ if (!memcmp(&uuid_data[uuid_pg_off], uuid, 16)) { -+ PRINTK("We have a match.\n"); -+ result = 1; -+ break; -+ } -+ } -+ -+ if (data_page) -+ __free_page(data_page); -+ -+ if (uuid_data_page) -+ __free_page(uuid_data_page); -+ -+out: -+ blkdev_put(bdev, FMODE_READ); -+ return result; -+} -+ -+void free_fs_info(struct fs_info *fs_info) -+{ -+ if (!fs_info || IS_ERR(fs_info)) -+ return; -+ -+ if (fs_info->last_mount) -+ kfree(fs_info->last_mount); -+ -+ kfree(fs_info); -+} -+EXPORT_SYMBOL_GPL(free_fs_info); -+ -+struct fs_info *fs_info_from_block_dev(struct block_device *bdev) -+{ -+ unsigned char *data = NULL; -+ struct page *data_page = NULL; -+ -+ int dev_offset, pg_num, pg_off; -+ int uuid_pg_num, uuid_pg_off, i; -+ unsigned char *uuid_data = NULL; -+ struct page *uuid_data_page = NULL; -+ -+ int last_pg_num = -1, last_uuid_pg_num = 0; -+ char buf[50]; -+ struct fs_info *fs_info = NULL; -+ -+ bdevname(bdev, buf); -+ -+ PRINTK(KERN_EMERG "uuid_from_block_dev looking for partition type " -+ "of %s.\n", buf); -+ -+ for (i = 0; uuid_list[i].name; i++) { -+ struct uuid_info *dat = &uuid_list[i]; -+ dev_offset = (dat->bkoff << 10) + dat->sboff; -+ pg_num = dev_offset >> 12; -+ pg_off = dev_offset & 0xfff; -+ uuid_pg_num = dat->uuid_offset >> 12; -+ uuid_pg_off = dat->uuid_offset & 0xfff; -+ -+ if ((((pg_num + 1) << 3) - 1) > bdev->bd_part->nr_sects >> 1) -+ continue; -+ -+ /* Ignore partition types with no UUID offset */ -+ if (!dat->uuid_offset) -+ continue; -+ -+ if (pg_num != last_pg_num) { -+ if (data_page) -+ __free_page(data_page); -+ data_page = read_bdev_page(bdev, pg_num); -+ if (!data_page) { -+ fs_info = ERR_PTR(-ENOMEM); -+ break; -+ } -+ data = page_address(data_page); -+ } -+ -+ last_pg_num = pg_num; -+ -+ if (strncmp(&data[pg_off], dat->magic, dat->sig_len)) -+ continue; -+ -+ PRINTK("This partition looks like %s.\n", dat->name); -+ -+ fs_info = kzalloc(sizeof(struct fs_info), GFP_KERNEL); -+ -+ if (!fs_info) { -+ PRINTK("Failed to allocate fs_info struct."); -+ fs_info = ERR_PTR(-ENOMEM); -+ break; -+ } -+ -+ /* UUID can't be off the end of the disk */ -+ if ((uuid_pg_num > bdev->bd_part->nr_sects >> 3) || -+ !dat->uuid_offset) -+ goto no_uuid; -+ -+ if (!uuid_data || uuid_pg_num != last_uuid_pg_num) { -+ if (uuid_data_page) -+ __free_page(uuid_data_page); -+ uuid_data_page = read_bdev_page(bdev, uuid_pg_num); -+ if (!uuid_data_page) { -+ fs_info = ERR_PTR(-ENOMEM); -+ break; -+ } -+ uuid_data = page_address(uuid_data_page); -+ } -+ -+ last_uuid_pg_num = uuid_pg_num; -+ memcpy(&fs_info->uuid, &uuid_data[uuid_pg_off], 16); -+ -+no_uuid: -+ PRINT_HEX_DUMP(KERN_EMERG, "fs_info_from_block_dev " -+ "returning uuid ", DUMP_PREFIX_NONE, 16, 1, -+ fs_info->uuid, 16, 0); -+ -+ if (dat->last_mount_size) { -+ int pg = dat->last_mount_offset >> 12, sz; -+ int off = dat->last_mount_offset & 0xfff; -+ struct page *last_mount = read_bdev_page(bdev, pg); -+ unsigned char *last_mount_data; -+ char *ptr; -+ -+ if (!last_mount) { -+ fs_info = ERR_PTR(-ENOMEM); -+ break; -+ } -+ last_mount_data = page_address(last_mount); -+ sz = dat->last_mount_size; -+ ptr = kmalloc(sz, GFP_KERNEL); -+ -+ if (!ptr) { -+ printk(KERN_EMERG "fs_info_from_block_dev " -+ "failed to get memory for last mount " -+ "timestamp."); -+ free_fs_info(fs_info); -+ fs_info = ERR_PTR(-ENOMEM); -+ } else { -+ fs_info->last_mount = ptr; -+ fs_info->last_mount_size = sz; -+ memcpy(ptr, &last_mount_data[off], sz); -+ } -+ -+ __free_page(last_mount); -+ } -+ break; -+ } -+ -+ if (data_page) -+ __free_page(data_page); -+ -+ if (uuid_data_page) -+ __free_page(uuid_data_page); -+ -+ return fs_info; -+} -+EXPORT_SYMBOL_GPL(fs_info_from_block_dev); -+ -+static int __init uuid_debug_setup(char *str) -+{ -+ int value; -+ -+ if (sscanf(str, "=%d", &value)) -+ debug_enabled = value; -+ -+ return 1; -+} -+ -+__setup("uuid_debug", uuid_debug_setup); -diff --git a/crypto/Kconfig b/crypto/Kconfig -index 81c185a..94cb5e8 100644 ---- a/crypto/Kconfig -+++ b/crypto/Kconfig -@@ -806,6 +806,13 @@ config CRYPTO_LZO - help - This is the LZO algorithm. - -+config CRYPTO_LZF -+ tristate "LZF compression algorithm" -+ select CRYPTO_ALGAPI -+ help -+ This is the LZF algorithm. It is especially useful for TuxOnIce, -+ because it achieves good compression quickly. -+ - comment "Random Number Generation" - - config CRYPTO_ANSI_CPRNG -diff --git a/crypto/Makefile b/crypto/Makefile -index 9e8f619..a06b213 100644 ---- a/crypto/Makefile -+++ b/crypto/Makefile -@@ -77,6 +77,7 @@ obj-$(CONFIG_CRYPTO_DEFLATE) += deflate.o - obj-$(CONFIG_CRYPTO_ZLIB) += zlib.o - obj-$(CONFIG_CRYPTO_MICHAEL_MIC) += michael_mic.o - obj-$(CONFIG_CRYPTO_CRC32C) += crc32c.o -+obj-$(CONFIG_CRYPTO_LZF) += lzf.o - obj-$(CONFIG_CRYPTO_AUTHENC) += authenc.o - obj-$(CONFIG_CRYPTO_LZO) += lzo.o - obj-$(CONFIG_CRYPTO_RNG2) += rng.o -diff --git a/crypto/lzf.c b/crypto/lzf.c -new file mode 100644 -index 0000000..ccaf83a ---- /dev/null -+++ b/crypto/lzf.c -@@ -0,0 +1,326 @@ -+/* -+ * Cryptoapi LZF compression module. -+ * -+ * Copyright (c) 2004-2008 Nigel Cunningham -+ * -+ * based on the deflate.c file: -+ * -+ * Copyright (c) 2003 James Morris -+ * -+ * and upon the LZF compression module donated to the TuxOnIce project with -+ * the following copyright: -+ * -+ * This program is free software; you can redistribute it and/or modify it -+ * under the terms of the GNU General Public License as published by the Free -+ * Software Foundation; either version 2 of the License, or (at your option) -+ * any later version. -+ * Copyright (c) 2000-2003 Marc Alexander Lehmann -+ * -+ * Redistribution and use in source and binary forms, with or without modifica- -+ * tion, are permitted provided that the following conditions are met: -+ * -+ * 1. Redistributions of source code must retain the above copyright notice, -+ * this list of conditions and the following disclaimer. -+ * -+ * 2. Redistributions in binary form must reproduce the above copyright -+ * notice, this list of conditions and the following disclaimer in the -+ * documentation and/or other materials provided with the distribution. -+ * -+ * 3. The name of the author may not be used to endorse or promote products -+ * derived from this software without specific prior written permission. -+ * -+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED -+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MER- -+ * CHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO -+ * EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPE- -+ * CIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; -+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTH- -+ * ERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED -+ * OF THE POSSIBILITY OF SUCH DAMAGE. -+ * -+ * Alternatively, the contents of this file may be used under the terms of -+ * the GNU General Public License version 2 (the "GPL"), in which case the -+ * provisions of the GPL are applicable instead of the above. If you wish to -+ * allow the use of your version of this file only under the terms of the -+ * GPL and not to allow others to use your version of this file under the -+ * BSD license, indicate your decision by deleting the provisions above and -+ * replace them with the notice and other provisions required by the GPL. If -+ * you do not delete the provisions above, a recipient may use your version -+ * of this file under either the BSD or the GPL. -+ */ -+ -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+ -+struct lzf_ctx { -+ void *hbuf; -+ unsigned int bufofs; -+}; -+ -+/* -+ * size of hashtable is (1 << hlog) * sizeof (char *) -+ * decompression is independent of the hash table size -+ * the difference between 15 and 14 is very small -+ * for small blocks (and 14 is also faster). -+ * For a low-memory configuration, use hlog == 13; -+ * For best compression, use 15 or 16. -+ */ -+static const int hlog = 13; -+ -+/* -+ * don't play with this unless you benchmark! -+ * decompression is not dependent on the hash function -+ * the hashing function might seem strange, just believe me -+ * it works ;) -+ */ -+static inline u16 first(const u8 *p) -+{ -+ return ((p[0]) << 8) + p[1]; -+} -+ -+static inline u16 next(u8 v, const u8 *p) -+{ -+ return ((v) << 8) + p[2]; -+} -+ -+static inline u32 idx(unsigned int h) -+{ -+ return (((h ^ (h << 5)) >> (3*8 - hlog)) + h*3) & ((1 << hlog) - 1); -+} -+ -+/* -+ * IDX works because it is very similar to a multiplicative hash, e.g. -+ * (h * 57321 >> (3*8 - hlog)) -+ * the next one is also quite good, albeit slow ;) -+ * (int)(cos(h & 0xffffff) * 1e6) -+ */ -+ -+static const int max_lit = (1 << 5); -+static const int max_off = (1 << 13); -+static const int max_ref = ((1 << 8) + (1 << 3)); -+ -+/* -+ * compressed format -+ * -+ * 000LLLLL ; literal -+ * LLLOOOOO oooooooo ; backref L -+ * 111OOOOO LLLLLLLL oooooooo ; backref L+7 -+ * -+ */ -+ -+static void lzf_compress_exit(struct crypto_tfm *tfm) -+{ -+ struct lzf_ctx *ctx = crypto_tfm_ctx(tfm); -+ -+ if (!ctx->hbuf) -+ return; -+ -+ vfree(ctx->hbuf); -+ ctx->hbuf = NULL; -+} -+ -+static int lzf_compress_init(struct crypto_tfm *tfm) -+{ -+ struct lzf_ctx *ctx = crypto_tfm_ctx(tfm); -+ -+ /* Get LZF ready to go */ -+ ctx->hbuf = vmalloc_32((1 << hlog) * sizeof(char *)); -+ if (ctx->hbuf) -+ return 0; -+ -+ printk(KERN_WARNING "Failed to allocate %ld bytes for lzf workspace\n", -+ (long) ((1 << hlog) * sizeof(char *))); -+ return -ENOMEM; -+} -+ -+static int lzf_compress(struct crypto_tfm *tfm, const u8 *in_data, -+ unsigned int in_len, u8 *out_data, unsigned int *out_len) -+{ -+ struct lzf_ctx *ctx = crypto_tfm_ctx(tfm); -+ const u8 **htab = ctx->hbuf; -+ const u8 **hslot; -+ const u8 *ip = in_data; -+ u8 *op = out_data; -+ const u8 *in_end = ip + in_len; -+ u8 *out_end = op + *out_len - 3; -+ const u8 *ref; -+ -+ unsigned int hval = first(ip); -+ unsigned long off; -+ int lit = 0; -+ -+ memset(htab, 0, sizeof(htab)); -+ -+ for (;;) { -+ if (ip < in_end - 2) { -+ hval = next(hval, ip); -+ hslot = htab + idx(hval); -+ ref = *hslot; -+ *hslot = ip; -+ -+ off = ip - ref - 1; -+ if (off < max_off -+ && ip + 4 < in_end && ref > in_data -+ && *(u16 *) ref == *(u16 *) ip && ref[2] == ip[2] -+ ) { -+ /* match found at *ref++ */ -+ unsigned int len = 2; -+ unsigned int maxlen = in_end - ip - len; -+ maxlen = maxlen > max_ref ? max_ref : maxlen; -+ -+ do { -+ len++; -+ } while (len < maxlen && ref[len] == ip[len]); -+ -+ if (op + lit + 1 + 3 >= out_end) { -+ *out_len = PAGE_SIZE; -+ return 0; -+ } -+ -+ if (lit) { -+ *op++ = lit - 1; -+ lit = -lit; -+ do { -+ *op++ = ip[lit]; -+ } while (++lit); -+ } -+ -+ len -= 2; -+ ip++; -+ -+ if (len < 7) { -+ *op++ = (off >> 8) + (len << 5); -+ } else { -+ *op++ = (off >> 8) + (7 << 5); -+ *op++ = len - 7; -+ } -+ -+ *op++ = off; -+ -+ ip += len; -+ hval = first(ip); -+ hval = next(hval, ip); -+ htab[idx(hval)] = ip; -+ ip++; -+ continue; -+ } -+ } else if (ip == in_end) -+ break; -+ -+ /* one more literal byte we must copy */ -+ lit++; -+ ip++; -+ -+ if (lit == max_lit) { -+ if (op + 1 + max_lit >= out_end) { -+ *out_len = PAGE_SIZE; -+ return 0; -+ } -+ -+ *op++ = max_lit - 1; -+ memcpy(op, ip - max_lit, max_lit); -+ op += max_lit; -+ lit = 0; -+ } -+ } -+ -+ if (lit) { -+ if (op + lit + 1 >= out_end) { -+ *out_len = PAGE_SIZE; -+ return 0; -+ } -+ -+ *op++ = lit - 1; -+ lit = -lit; -+ do { -+ *op++ = ip[lit]; -+ } while (++lit); -+ } -+ -+ *out_len = op - out_data; -+ return 0; -+} -+ -+static int lzf_decompress(struct crypto_tfm *tfm, const u8 *src, -+ unsigned int slen, u8 *dst, unsigned int *dlen) -+{ -+ u8 const *ip = src; -+ u8 *op = dst; -+ u8 const *const in_end = ip + slen; -+ u8 *const out_end = op + *dlen; -+ -+ *dlen = PAGE_SIZE; -+ do { -+ unsigned int ctrl = *ip++; -+ -+ if (ctrl < (1 << 5)) { -+ /* literal run */ -+ ctrl++; -+ -+ if (op + ctrl > out_end) -+ return 0; -+ memcpy(op, ip, ctrl); -+ op += ctrl; -+ ip += ctrl; -+ } else { /* back reference */ -+ -+ unsigned int len = ctrl >> 5; -+ -+ u8 *ref = op - ((ctrl & 0x1f) << 8) - 1; -+ -+ if (len == 7) -+ len += *ip++; -+ -+ ref -= *ip++; -+ len += 2; -+ -+ if (op + len > out_end || ref < (u8 *) dst) -+ return 0; -+ -+ do { -+ *op++ = *ref++; -+ } while (--len); -+ } -+ } while (op < out_end && ip < in_end); -+ -+ *dlen = op - (u8 *) dst; -+ return 0; -+} -+ -+static struct crypto_alg alg = { -+ .cra_name = "lzf", -+ .cra_flags = CRYPTO_ALG_TYPE_COMPRESS, -+ .cra_ctxsize = sizeof(struct lzf_ctx), -+ .cra_module = THIS_MODULE, -+ .cra_list = LIST_HEAD_INIT(alg.cra_list), -+ .cra_init = lzf_compress_init, -+ .cra_exit = lzf_compress_exit, -+ .cra_u = { .compress = { -+ .coa_compress = lzf_compress, -+ .coa_decompress = lzf_decompress } } -+}; -+ -+static int __init init(void) -+{ -+ return crypto_register_alg(&alg); -+} -+ -+static void __exit fini(void) -+{ -+ crypto_unregister_alg(&alg); -+} -+ -+module_init(init); -+module_exit(fini); -+ -+MODULE_LICENSE("GPL"); -+MODULE_DESCRIPTION("LZF Compression Algorithm"); -+MODULE_AUTHOR("Marc Alexander Lehmann & Nigel Cunningham"); -diff --git a/drivers/base/power/main.c b/drivers/base/power/main.c -index a5142bd..3fed8b2 100644 ---- a/drivers/base/power/main.c -+++ b/drivers/base/power/main.c -@@ -66,6 +66,7 @@ void device_pm_lock(void) - { - mutex_lock(&dpm_list_mtx); - } -+EXPORT_SYMBOL_GPL(device_pm_lock); - - /** - * device_pm_unlock - Unlock the list of active devices used by the PM core. -@@ -74,6 +75,7 @@ void device_pm_unlock(void) - { - mutex_unlock(&dpm_list_mtx); - } -+EXPORT_SYMBOL_GPL(device_pm_unlock); - - /** - * device_pm_add - Add a device to the PM core's list of active devices. -diff --git a/drivers/char/vt.c b/drivers/char/vt.c -index 50faa1f..567839a 100644 ---- a/drivers/char/vt.c -+++ b/drivers/char/vt.c -@@ -2465,6 +2465,7 @@ int vt_kmsg_redirect(int new) - else - return kmsg_con; - } -+EXPORT_SYMBOL_GPL(vt_kmsg_redirect); - - /* - * Console on virtual terminal -diff --git a/drivers/gpu/drm/drm_gem.c b/drivers/gpu/drm/drm_gem.c -index 8bf3770..f1d1e03 100644 ---- a/drivers/gpu/drm/drm_gem.c -+++ b/drivers/gpu/drm/drm_gem.c -@@ -138,7 +138,8 @@ drm_gem_object_alloc(struct drm_device *dev, size_t size) - goto free; - - obj->dev = dev; -- obj->filp = shmem_file_setup("drm mm object", size, VM_NORESERVE); -+ obj->filp = shmem_file_setup("drm mm object", size, -+ VM_NORESERVE | VM_ATOMIC_COPY); - if (IS_ERR(obj->filp)) - goto free; - -diff --git a/drivers/md/md.c b/drivers/md/md.c -index a20a71e..6f221e5 100644 ---- a/drivers/md/md.c -+++ b/drivers/md/md.c -@@ -6469,6 +6469,9 @@ void md_do_sync(mddev_t *mddev) - mddev->curr_resync = 2; - - try_again: -+ while (freezer_is_on()) -+ yield(); -+ - if (kthread_should_stop()) - set_bit(MD_RECOVERY_INTR, &mddev->recovery); - -@@ -6491,6 +6494,10 @@ void md_do_sync(mddev_t *mddev) - * time 'round when curr_resync == 2 - */ - continue; -+ -+ while (freezer_is_on()) -+ yield(); -+ - /* We need to wait 'interruptible' so as not to - * contribute to the load average, and not to - * be caught by 'softlockup' -@@ -6503,6 +6510,7 @@ void md_do_sync(mddev_t *mddev) - " share one or more physical units)\n", - desc, mdname(mddev), mdname(mddev2)); - mddev_put(mddev2); -+ try_to_freeze(); - if (signal_pending(current)) - flush_signals(current); - schedule(); -@@ -6612,6 +6620,9 @@ void md_do_sync(mddev_t *mddev) - || kthread_should_stop()); - } - -+ while (freezer_is_on()) -+ yield(); -+ - if (kthread_should_stop()) - goto interrupted; - -@@ -6656,6 +6667,9 @@ void md_do_sync(mddev_t *mddev) - last_mark = next; - } - -+ while (freezer_is_on()) -+ yield(); -+ - - if (kthread_should_stop()) - goto interrupted; -diff --git a/fs/block_dev.c b/fs/block_dev.c -index d11d028..b2388cc 100644 ---- a/fs/block_dev.c -+++ b/fs/block_dev.c -@@ -335,6 +335,93 @@ out_unlock: - } - EXPORT_SYMBOL(thaw_bdev); - -+#ifdef CONFIG_FS_FREEZER_DEBUG -+#define FS_PRINTK(fmt, args...) printk(fmt, ## args) -+#else -+#define FS_PRINTK(fmt, args...) -+#endif -+ -+/* #define DEBUG_FS_FREEZING */ -+ -+/** -+ * freeze_filesystems - lock all filesystems and force them into a consistent -+ * state -+ * @which: What combination of fuse & non-fuse to freeze. -+ */ -+void freeze_filesystems(int which) -+{ -+ struct super_block *sb; -+ -+ lockdep_off(); -+ -+ /* -+ * Freeze in reverse order so filesystems dependant upon others are -+ * frozen in the right order (eg. loopback on ext3). -+ */ -+ list_for_each_entry_reverse(sb, &super_blocks, s_list) { -+ FS_PRINTK(KERN_INFO "Considering %s.%s: (root %p, bdev %x)", -+ sb->s_type->name ? sb->s_type->name : "?", -+ sb->s_subtype ? sb->s_subtype : "", sb->s_root, -+ sb->s_bdev ? sb->s_bdev->bd_dev : 0); -+ -+ if (sb->s_type->fs_flags & FS_IS_FUSE && -+ sb->s_frozen == SB_UNFROZEN && -+ which & FS_FREEZER_FUSE) { -+ sb->s_frozen = SB_FREEZE_TRANS; -+ sb->s_flags |= MS_FROZEN; -+ FS_PRINTK("Fuse filesystem done.\n"); -+ continue; -+ } -+ -+ if (!sb->s_root || !sb->s_bdev || -+ (sb->s_frozen == SB_FREEZE_TRANS) || -+ (sb->s_flags & MS_RDONLY) || -+ (sb->s_flags & MS_FROZEN) || -+ !(which & FS_FREEZER_NORMAL)) { -+ FS_PRINTK(KERN_INFO "Nope.\n"); -+ continue; -+ } -+ -+ FS_PRINTK(KERN_INFO "Freezing %x... ", sb->s_bdev->bd_dev); -+ freeze_bdev(sb->s_bdev); -+ sb->s_flags |= MS_FROZEN; -+ FS_PRINTK(KERN_INFO "Done.\n"); -+ } -+ -+ lockdep_on(); -+} -+ -+/** -+ * thaw_filesystems - unlock all filesystems -+ * @which: What combination of fuse & non-fuse to thaw. -+ */ -+void thaw_filesystems(int which) -+{ -+ struct super_block *sb; -+ -+ lockdep_off(); -+ -+ list_for_each_entry(sb, &super_blocks, s_list) { -+ if (!(sb->s_flags & MS_FROZEN)) -+ continue; -+ -+ if (sb->s_type->fs_flags & FS_IS_FUSE) { -+ if (!(which & FS_FREEZER_FUSE)) -+ continue; -+ -+ sb->s_frozen = SB_UNFROZEN; -+ } else { -+ if (!(which & FS_FREEZER_NORMAL)) -+ continue; -+ -+ thaw_bdev(sb->s_bdev, sb); -+ } -+ sb->s_flags &= ~MS_FROZEN; -+ } -+ -+ lockdep_on(); -+} -+ - static int blkdev_writepage(struct page *page, struct writeback_control *wbc) - { - return block_write_full_page(page, blkdev_get_block, wbc); -diff --git a/fs/drop_caches.c b/fs/drop_caches.c -index 31f4b0e..ff7df7a 100644 ---- a/fs/drop_caches.c -+++ b/fs/drop_caches.c -@@ -8,6 +8,7 @@ - #include - #include - #include -+#include - - /* A global variable is a bit ugly, but it keeps the code simple */ - int sysctl_drop_caches; -@@ -33,7 +34,7 @@ static void drop_pagecache_sb(struct super_block *sb) - iput(toput_inode); - } - --static void drop_pagecache(void) -+void drop_pagecache(void) - { - struct super_block *sb; - -@@ -61,6 +62,7 @@ static void drop_slab(void) - nr_objects = shrink_slab(1000, GFP_KERNEL, 1000); - } while (nr_objects > 10); - } -+EXPORT_SYMBOL_GPL(drop_pagecache); - - int drop_caches_sysctl_handler(ctl_table *table, int write, - void __user *buffer, size_t *length, loff_t *ppos) -diff --git a/fs/fuse/control.c b/fs/fuse/control.c -index 3773fd6..6272b60 100644 ---- a/fs/fuse/control.c -+++ b/fs/fuse/control.c -@@ -341,6 +341,7 @@ static void fuse_ctl_kill_sb(struct super_block *sb) - static struct file_system_type fuse_ctl_fs_type = { - .owner = THIS_MODULE, - .name = "fusectl", -+ .fs_flags = FS_IS_FUSE, - .get_sb = fuse_ctl_get_sb, - .kill_sb = fuse_ctl_kill_sb, - }; -diff --git a/fs/fuse/dev.c b/fs/fuse/dev.c -index 51d9e33..12ad477 100644 ---- a/fs/fuse/dev.c -+++ b/fs/fuse/dev.c -@@ -7,6 +7,7 @@ - */ - - #include "fuse_i.h" -+#include "fuse.h" - - #include - #include -@@ -16,6 +17,7 @@ - #include - #include - #include -+#include - - MODULE_ALIAS_MISCDEV(FUSE_MINOR); - -@@ -758,6 +760,8 @@ static ssize_t fuse_dev_read(struct kiocb *iocb, const struct iovec *iov, - if (!fc) - return -EPERM; - -+ FUSE_MIGHT_FREEZE(file->f_mapping->host->i_sb, "fuse_dev_read"); -+ - restart: - spin_lock(&fc->lock); - err = -EAGAIN; -@@ -999,6 +1003,9 @@ static ssize_t fuse_dev_write(struct kiocb *iocb, const struct iovec *iov, - if (!fc) - return -EPERM; - -+ FUSE_MIGHT_FREEZE(iocb->ki_filp->f_mapping->host->i_sb, -+ "fuse_dev_write"); -+ - fuse_copy_init(&cs, fc, 0, NULL, iov, nr_segs); - if (nbytes < sizeof(struct fuse_out_header)) - return -EINVAL; -diff --git a/fs/fuse/dir.c b/fs/fuse/dir.c -index 4787ae6..797b7dd 100644 ---- a/fs/fuse/dir.c -+++ b/fs/fuse/dir.c -@@ -7,12 +7,14 @@ - */ - - #include "fuse_i.h" -+#include "fuse.h" - - #include - #include - #include - #include - #include -+#include - - #if BITS_PER_LONG >= 64 - static inline void fuse_dentry_settime(struct dentry *entry, u64 time) -@@ -174,6 +176,9 @@ static int fuse_dentry_revalidate(struct dentry *entry, struct nameidata *nd) - return 0; - - fc = get_fuse_conn(inode); -+ -+ FUSE_MIGHT_FREEZE(inode->i_sb, "fuse_dentry_revalidate"); -+ - req = fuse_get_req(fc); - if (IS_ERR(req)) - return 0; -@@ -268,6 +273,8 @@ int fuse_lookup_name(struct super_block *sb, u64 nodeid, struct qstr *name, - if (name->len > FUSE_NAME_MAX) - goto out; - -+ FUSE_MIGHT_FREEZE(sb, "fuse_lookup_name"); -+ - req = fuse_get_req(fc); - err = PTR_ERR(req); - if (IS_ERR(req)) -@@ -331,6 +338,8 @@ static struct dentry *fuse_lookup(struct inode *dir, struct dentry *entry, - if (err) - goto out_err; - -+ FUSE_MIGHT_FREEZE(dir->i_sb, "fuse_lookup"); -+ - err = -EIO; - if (inode && get_node_id(inode) == FUSE_ROOT_ID) - goto out_iput; -@@ -392,6 +401,8 @@ static int fuse_create_open(struct inode *dir, struct dentry *entry, int mode, - if (IS_ERR(forget_req)) - return PTR_ERR(forget_req); - -+ FUSE_MIGHT_FREEZE(dir->i_sb, "fuse_create_open"); -+ - req = fuse_get_req(fc); - err = PTR_ERR(req); - if (IS_ERR(req)) -@@ -485,6 +496,8 @@ static int create_new_entry(struct fuse_conn *fc, struct fuse_req *req, - int err; - struct fuse_req *forget_req; - -+ FUSE_MIGHT_FREEZE(dir->i_sb, "create_new_entry"); -+ - forget_req = fuse_get_req(fc); - if (IS_ERR(forget_req)) { - fuse_put_request(fc, req); -@@ -587,7 +600,11 @@ static int fuse_mkdir(struct inode *dir, struct dentry *entry, int mode) - { - struct fuse_mkdir_in inarg; - struct fuse_conn *fc = get_fuse_conn(dir); -- struct fuse_req *req = fuse_get_req(fc); -+ struct fuse_req *req; -+ -+ FUSE_MIGHT_FREEZE(dir->i_sb, "fuse_mkdir"); -+ -+ req = fuse_get_req(fc); - if (IS_ERR(req)) - return PTR_ERR(req); - -@@ -611,7 +628,11 @@ static int fuse_symlink(struct inode *dir, struct dentry *entry, - { - struct fuse_conn *fc = get_fuse_conn(dir); - unsigned len = strlen(link) + 1; -- struct fuse_req *req = fuse_get_req(fc); -+ struct fuse_req *req; -+ -+ FUSE_MIGHT_FREEZE(dir->i_sb, "fuse_symlink"); -+ -+ req = fuse_get_req(fc); - if (IS_ERR(req)) - return PTR_ERR(req); - -@@ -628,7 +649,11 @@ static int fuse_unlink(struct inode *dir, struct dentry *entry) - { - int err; - struct fuse_conn *fc = get_fuse_conn(dir); -- struct fuse_req *req = fuse_get_req(fc); -+ struct fuse_req *req; -+ -+ FUSE_MIGHT_FREEZE(dir->i_sb, "fuse_unlink"); -+ -+ req = fuse_get_req(fc); - if (IS_ERR(req)) - return PTR_ERR(req); - -@@ -661,7 +686,11 @@ static int fuse_rmdir(struct inode *dir, struct dentry *entry) - { - int err; - struct fuse_conn *fc = get_fuse_conn(dir); -- struct fuse_req *req = fuse_get_req(fc); -+ struct fuse_req *req; -+ -+ FUSE_MIGHT_FREEZE(dir->i_sb, "fuse_rmdir"); -+ -+ req = fuse_get_req(fc); - if (IS_ERR(req)) - return PTR_ERR(req); - -diff --git a/fs/fuse/file.c b/fs/fuse/file.c -index a9f5e13..4647e11 100644 ---- a/fs/fuse/file.c -+++ b/fs/fuse/file.c -@@ -7,11 +7,13 @@ - */ - - #include "fuse_i.h" -+#include "fuse.h" - - #include - #include - #include - #include -+#include - #include - - static const struct file_operations fuse_direct_io_file_operations; -@@ -109,6 +111,8 @@ int fuse_do_open(struct fuse_conn *fc, u64 nodeid, struct file *file, - int err; - int opcode = isdir ? FUSE_OPENDIR : FUSE_OPEN; - -+ FUSE_MIGHT_FREEZE(file->f_path.dentry->d_inode->i_sb, "fuse_send_open"); -+ - ff = fuse_file_alloc(fc); - if (!ff) - return -ENOMEM; -@@ -316,6 +320,8 @@ static int fuse_flush(struct file *file, fl_owner_t id) - if (fc->no_flush) - return 0; - -+ FUSE_MIGHT_FREEZE(inode->i_sb, "fuse_flush"); -+ - req = fuse_get_req_nofail(fc, file); - memset(&inarg, 0, sizeof(inarg)); - inarg.fh = ff->fh; -@@ -367,6 +373,8 @@ int fuse_fsync_common(struct file *file, struct dentry *de, int datasync, - if ((!isdir && fc->no_fsync) || (isdir && fc->no_fsyncdir)) - return 0; - -+ FUSE_MIGHT_FREEZE(inode->i_sb, "fuse_fsync_common"); -+ - /* - * Start writeback against all dirty pages of the inode, then - * wait for all outstanding writes, before sending the FSYNC -@@ -474,6 +482,8 @@ static int fuse_readpage(struct file *file, struct page *page) - if (is_bad_inode(inode)) - goto out; - -+ FUSE_MIGHT_FREEZE(file->f_mapping->host->i_sb, "fuse_readpage"); -+ - /* - * Page writeback can extend beyond the liftime of the - * page-cache page, so make sure we read a properly synced -@@ -576,6 +586,9 @@ static int fuse_readpages_fill(void *_data, struct page *page) - struct inode *inode = data->inode; - struct fuse_conn *fc = get_fuse_conn(inode); - -+ FUSE_MIGHT_FREEZE(data->file->f_mapping->host->i_sb, -+ "fuse_readpages_fill"); -+ - fuse_wait_on_page_writeback(inode, page->index); - - if (req->num_pages && -@@ -606,6 +619,8 @@ static int fuse_readpages(struct file *file, struct address_space *mapping, - if (is_bad_inode(inode)) - goto out; - -+ FUSE_MIGHT_FREEZE(inode->i_sb, "fuse_readpages"); -+ - data.file = file; - data.inode = inode; - data.req = fuse_get_req(fc); -@@ -719,6 +734,8 @@ static int fuse_buffered_write(struct file *file, struct inode *inode, - if (is_bad_inode(inode)) - return -EIO; - -+ FUSE_MIGHT_FREEZE(inode->i_sb, "fuse_buffered_write"); -+ - /* - * Make sure writepages on the same page are not mixed up with - * plain writes. -@@ -878,6 +895,8 @@ static ssize_t fuse_perform_write(struct file *file, - struct fuse_req *req; - ssize_t count; - -+ FUSE_MIGHT_FREEZE(inode->i_sb, "fuse_perform_write"); -+ - req = fuse_get_req(fc); - if (IS_ERR(req)) { - err = PTR_ERR(req); -@@ -1025,6 +1044,8 @@ ssize_t fuse_direct_io(struct file *file, const char __user *buf, - ssize_t res = 0; - struct fuse_req *req; - -+ FUSE_MIGHT_FREEZE(file->f_mapping->host->i_sb, "fuse_direct_io"); -+ - req = fuse_get_req(fc); - if (IS_ERR(req)) - return PTR_ERR(req); -@@ -1412,6 +1433,8 @@ static int fuse_getlk(struct file *file, struct file_lock *fl) - struct fuse_lk_out outarg; - int err; - -+ FUSE_MIGHT_FREEZE(file->f_mapping->host->i_sb, "fuse_getlk"); -+ - req = fuse_get_req(fc); - if (IS_ERR(req)) - return PTR_ERR(req); -@@ -1447,6 +1470,8 @@ static int fuse_setlk(struct file *file, struct file_lock *fl, int flock) - if (fl->fl_flags & FL_CLOSE) - return 0; - -+ FUSE_MIGHT_FREEZE(file->f_mapping->host->i_sb, "fuse_setlk"); -+ - req = fuse_get_req(fc); - if (IS_ERR(req)) - return PTR_ERR(req); -@@ -1513,6 +1538,8 @@ static sector_t fuse_bmap(struct address_space *mapping, sector_t block) - if (!inode->i_sb->s_bdev || fc->no_bmap) - return 0; - -+ FUSE_MIGHT_FREEZE(inode->i_sb, "fuse_bmap"); -+ - req = fuse_get_req(fc); - if (IS_ERR(req)) - return 0; -diff --git a/fs/fuse/fuse.h b/fs/fuse/fuse.h -new file mode 100644 -index 0000000..170e49a ---- /dev/null -+++ b/fs/fuse/fuse.h -@@ -0,0 +1,13 @@ -+#define FUSE_MIGHT_FREEZE(superblock, desc) \ -+do { \ -+ int printed = 0; \ -+ while (superblock->s_frozen != SB_UNFROZEN) { \ -+ if (!printed) { \ -+ printk(KERN_INFO "%d frozen in " desc ".\n", \ -+ current->pid); \ -+ printed = 1; \ -+ } \ -+ try_to_freeze(); \ -+ yield(); \ -+ } \ -+} while (0) -diff --git a/fs/fuse/inode.c b/fs/fuse/inode.c -index 1a822ce..9b69d61 100644 ---- a/fs/fuse/inode.c -+++ b/fs/fuse/inode.c -@@ -1062,7 +1062,7 @@ static void fuse_kill_sb_anon(struct super_block *sb) - static struct file_system_type fuse_fs_type = { - .owner = THIS_MODULE, - .name = "fuse", -- .fs_flags = FS_HAS_SUBTYPE, -+ .fs_flags = FS_HAS_SUBTYPE | FS_IS_FUSE, - .get_sb = fuse_get_sb, - .kill_sb = fuse_kill_sb_anon, - }; -@@ -1094,7 +1094,7 @@ static struct file_system_type fuseblk_fs_type = { - .name = "fuseblk", - .get_sb = fuse_get_sb_blk, - .kill_sb = fuse_kill_sb_blk, -- .fs_flags = FS_REQUIRES_DEV | FS_HAS_SUBTYPE, -+ .fs_flags = FS_REQUIRES_DEV | FS_HAS_SUBTYPE | FS_IS_FUSE, - }; - - static inline int register_fuseblk(void) -diff --git a/fs/namei.c b/fs/namei.c -index a4855af..3d57581 100644 ---- a/fs/namei.c -+++ b/fs/namei.c -@@ -2268,6 +2268,8 @@ int vfs_unlink(struct inode *dir, struct dentry *dentry) - if (!dir->i_op->unlink) - return -EPERM; - -+ vfs_check_frozen(dir->i_sb, SB_FREEZE_WRITE); -+ - vfs_dq_init(dir); - - mutex_lock(&dentry->d_inode->i_mutex); -diff --git a/fs/super.c b/fs/super.c -index aff046b..affb662 100644 ---- a/fs/super.c -+++ b/fs/super.c -@@ -42,6 +42,8 @@ - - - LIST_HEAD(super_blocks); -+EXPORT_SYMBOL_GPL(super_blocks); -+ - DEFINE_SPINLOCK(sb_lock); - - /** -diff --git a/include/linux/Kbuild b/include/linux/Kbuild -index 756f831..9953b39 100644 ---- a/include/linux/Kbuild -+++ b/include/linux/Kbuild -@@ -213,6 +213,7 @@ unifdef-y += filter.h - unifdef-y += flat.h - unifdef-y += futex.h - unifdef-y += fs.h -+unifdef-y += freezer.h - unifdef-y += gameport.h - unifdef-y += generic_serial.h - unifdef-y += hdlcdrv.h -diff --git a/include/linux/bio.h b/include/linux/bio.h -index 7fc5606..07e9b97 100644 ---- a/include/linux/bio.h -+++ b/include/linux/bio.h -@@ -175,8 +175,11 @@ enum bio_rw_flags { - BIO_RW_META, - BIO_RW_DISCARD, - BIO_RW_NOIDLE, -+ BIO_RW_TUXONICE, - }; - -+extern int trap_non_toi_io; -+ - /* - * First four bits must match between bio->bi_rw and rq->cmd_flags, make - * that explicit here. -diff --git a/include/linux/freezer.h b/include/linux/freezer.h -index 5a361f8..a66f2a9 100644 ---- a/include/linux/freezer.h -+++ b/include/linux/freezer.h -@@ -121,6 +121,19 @@ static inline void set_freezable(void) - current->flags &= ~PF_NOFREEZE; - } - -+extern int freezer_state; -+#define FREEZER_OFF 0 -+#define FREEZER_FILESYSTEMS_FROZEN 1 -+#define FREEZER_USERSPACE_FROZEN 2 -+#define FREEZER_FULLY_ON 3 -+ -+static inline int freezer_is_on(void) -+{ -+ return freezer_state == FREEZER_FULLY_ON; -+} -+ -+extern void thaw_kernel_threads(void); -+ - /* - * Tell the freezer that the current task should be frozen by it and that it - * should send a fake signal to the task to freeze it. -@@ -172,6 +185,8 @@ static inline int freeze_processes(void) { BUG(); return 0; } - static inline void thaw_processes(void) {} - - static inline int try_to_freeze(void) { return 0; } -+static inline int freezer_is_on(void) { return 0; } -+static inline void thaw_kernel_threads(void) { } - - static inline void freezer_do_not_count(void) {} - static inline void freezer_count(void) {} -diff --git a/include/linux/fs.h b/include/linux/fs.h -index ebb1cd5..e30e318 100644 ---- a/include/linux/fs.h -+++ b/include/linux/fs.h -@@ -173,6 +173,7 @@ struct inodes_stat_t { - #define FS_REQUIRES_DEV 1 - #define FS_BINARY_MOUNTDATA 2 - #define FS_HAS_SUBTYPE 4 -+#define FS_IS_FUSE 8 /* Fuse filesystem - bdev freeze these too */ - #define FS_REVAL_DOT 16384 /* Check the paths ".", ".." for staleness */ - #define FS_RENAME_DOES_D_MOVE 32768 /* FS will handle d_move() - * during rename() internally. -@@ -206,6 +207,7 @@ struct inodes_stat_t { - #define MS_KERNMOUNT (1<<22) /* this is a kern_mount call */ - #define MS_I_VERSION (1<<23) /* Update inode I_version field */ - #define MS_STRICTATIME (1<<24) /* Always perform atime updates */ -+#define MS_FROZEN (1<<25) /* Frozen by freeze_filesystems() */ - #define MS_ACTIVE (1<<30) - #define MS_NOUSER (1<<31) - -@@ -232,6 +234,8 @@ struct inodes_stat_t { - #define S_NOCMTIME 128 /* Do not update file c/mtime */ - #define S_SWAPFILE 256 /* Do not truncate: swapon got its bmaps */ - #define S_PRIVATE 512 /* Inode is fs-internal */ -+#define S_ATOMIC_COPY 1024 /* Pages mapped with this inode need to be -+ atomically copied (gem) */ - - /* - * Note that nosuid etc flags are inode-specific: setting some file-system -@@ -379,6 +383,7 @@ struct inodes_stat_t { - #include - #include - #include -+#include - - #include - #include -@@ -1391,8 +1396,11 @@ enum { - SB_FREEZE_TRANS = 2, - }; - --#define vfs_check_frozen(sb, level) \ -- wait_event((sb)->s_wait_unfrozen, ((sb)->s_frozen < (level))) -+#define vfs_check_frozen(sb, level) do { \ -+ freezer_do_not_count(); \ -+ wait_event((sb)->s_wait_unfrozen, ((sb)->s_frozen < (level))); \ -+ freezer_count(); \ -+} while (0) - - #define get_fs_excl() atomic_inc(¤t->fs_excl) - #define put_fs_excl() atomic_dec(¤t->fs_excl) -@@ -1947,6 +1955,13 @@ extern struct super_block *freeze_bdev(struct block_device *); - extern void emergency_thaw_all(void); - extern int thaw_bdev(struct block_device *bdev, struct super_block *sb); - extern int fsync_bdev(struct block_device *); -+extern int fsync_super(struct super_block *); -+extern int fsync_no_super(struct block_device *); -+#define FS_FREEZER_FUSE 1 -+#define FS_FREEZER_NORMAL 2 -+#define FS_FREEZER_ALL (FS_FREEZER_FUSE | FS_FREEZER_NORMAL) -+void freeze_filesystems(int which); -+void thaw_filesystems(int which); - #else - static inline void bd_forget(struct inode *inode) {} - static inline int sync_blockdev(struct block_device *bdev) { return 0; } -diff --git a/include/linux/mm.h b/include/linux/mm.h -index 60c467b..1e722c2 100644 ---- a/include/linux/mm.h -+++ b/include/linux/mm.h -@@ -97,6 +97,7 @@ extern unsigned int kobjsize(const void *objp); - #define VM_HUGETLB 0x00400000 /* Huge TLB Page VM */ - #define VM_NONLINEAR 0x00800000 /* Is non-linear (remap_file_pages) */ - #define VM_MAPPED_COPY 0x01000000 /* T if mapped copy of data (nommu mmap) */ -+#define VM_ATOMIC_COPY 0x01000000 /* TOI should do atomic copy (mmu) */ - #define VM_INSERTPAGE 0x02000000 /* The vma has had "vm_insert_page()" done on it */ - #define VM_ALWAYSDUMP 0x04000000 /* Always include in core dumps */ - -@@ -1309,6 +1310,7 @@ int drop_caches_sysctl_handler(struct ctl_table *, int, - void __user *, size_t *, loff_t *); - unsigned long shrink_slab(unsigned long scanned, gfp_t gfp_mask, - unsigned long lru_pages); -+void drop_pagecache(void); - - #ifndef CONFIG_MMU - #define randomize_va_space 0 -diff --git a/include/linux/netlink.h b/include/linux/netlink.h -index fde27c0..0d86cc7 100644 ---- a/include/linux/netlink.h -+++ b/include/linux/netlink.h -@@ -24,6 +24,8 @@ - /* leave room for NETLINK_DM (DM Events) */ - #define NETLINK_SCSITRANSPORT 18 /* SCSI Transports */ - #define NETLINK_ECRYPTFS 19 -+#define NETLINK_TOI_USERUI 20 /* TuxOnIce's userui */ -+#define NETLINK_TOI_USM 21 /* Userspace storage manager */ - - #define MAX_LINKS 32 - -diff --git a/include/linux/suspend.h b/include/linux/suspend.h -index 5e781d8..a1c07f3 100644 ---- a/include/linux/suspend.h -+++ b/include/linux/suspend.h -@@ -329,4 +329,70 @@ static inline void unlock_system_sleep(void) - } - #endif - -+enum { -+ TOI_CAN_HIBERNATE, -+ TOI_CAN_RESUME, -+ TOI_RESUME_DEVICE_OK, -+ TOI_NORESUME_SPECIFIED, -+ TOI_SANITY_CHECK_PROMPT, -+ TOI_CONTINUE_REQ, -+ TOI_RESUMED_BEFORE, -+ TOI_BOOT_TIME, -+ TOI_NOW_RESUMING, -+ TOI_IGNORE_LOGLEVEL, -+ TOI_TRYING_TO_RESUME, -+ TOI_LOADING_ALT_IMAGE, -+ TOI_STOP_RESUME, -+ TOI_IO_STOPPED, -+ TOI_NOTIFIERS_PREPARE, -+ TOI_CLUSTER_MODE, -+ TOI_BOOT_KERNEL, -+}; -+ -+#ifdef CONFIG_TOI -+ -+/* Used in init dir files */ -+extern unsigned long toi_state; -+#define set_toi_state(bit) (set_bit(bit, &toi_state)) -+#define clear_toi_state(bit) (clear_bit(bit, &toi_state)) -+#define test_toi_state(bit) (test_bit(bit, &toi_state)) -+extern int toi_running; -+ -+#define test_action_state(bit) (test_bit(bit, &toi_bkd.toi_action)) -+extern int try_tuxonice_hibernate(void); -+ -+#else /* !CONFIG_TOI */ -+ -+#define toi_state (0) -+#define set_toi_state(bit) do { } while (0) -+#define clear_toi_state(bit) do { } while (0) -+#define test_toi_state(bit) (0) -+#define toi_running (0) -+ -+static inline int try_tuxonice_hibernate(void) { return 0; } -+#define test_action_state(bit) (0) -+ -+#endif /* CONFIG_TOI */ -+ -+#ifdef CONFIG_HIBERNATION -+#ifdef CONFIG_TOI -+extern void try_tuxonice_resume(void); -+#else -+#define try_tuxonice_resume() do { } while (0) -+#endif -+ -+extern int resume_attempted; -+extern int software_resume(void); -+ -+static inline void check_resume_attempted(void) -+{ -+ if (resume_attempted) -+ return; -+ -+ software_resume(); -+} -+#else -+#define check_resume_attempted() do { } while (0) -+#define resume_attempted (0) -+#endif - #endif /* _LINUX_SUSPEND_H */ -diff --git a/include/linux/swap.h b/include/linux/swap.h -index a2602a8..06c4630 100644 ---- a/include/linux/swap.h -+++ b/include/linux/swap.h -@@ -196,6 +196,7 @@ struct swap_list_t { - extern unsigned long totalram_pages; - extern unsigned long totalreserve_pages; - extern unsigned int nr_free_buffer_pages(void); -+extern unsigned int nr_unallocated_buffer_pages(void); - extern unsigned int nr_free_pagecache_pages(void); - - /* Definition of global_page_state not available yet */ -@@ -325,8 +326,10 @@ extern void swapcache_free(swp_entry_t, struct page *page); - extern int free_swap_and_cache(swp_entry_t); - extern int swap_type_of(dev_t, sector_t, struct block_device **); - extern unsigned int count_swap_pages(int, int); -+extern sector_t map_swap_entry(swp_entry_t entry, struct block_device **); - extern sector_t map_swap_page(struct page *, struct block_device **); - extern sector_t swapdev_block(int, pgoff_t); -+extern struct swap_info_struct *get_swap_info_struct(unsigned); - extern int reuse_swap_page(struct page *); - extern int try_to_free_swap(struct page *); - struct backing_dev_info; -diff --git a/include/linux/uuid.h b/include/linux/uuid.h -new file mode 100644 -index 0000000..a968f0f ---- /dev/null -+++ b/include/linux/uuid.h -@@ -0,0 +1,18 @@ -+#include -+ -+struct hd_struct; -+struct block_device; -+ -+struct fs_info { -+ char uuid[16]; -+ char *last_mount; -+ int last_mount_size; -+}; -+ -+int part_matches_uuid(struct hd_struct *part, const char *uuid); -+dev_t blk_lookup_uuid(const char *uuid); -+struct fs_info *fs_info_from_block_dev(struct block_device *bdev); -+void free_fs_info(struct fs_info *fs_info); -+int bdev_matches_key(struct block_device *bdev, const char *key); -+struct block_device *next_bdev_of_type(struct block_device *last, -+ const char *key); -diff --git a/init/do_mounts.c b/init/do_mounts.c -index bb008d0..5273dc9 100644 ---- a/init/do_mounts.c -+++ b/init/do_mounts.c -@@ -143,6 +143,7 @@ fail: - done: - return res; - } -+EXPORT_SYMBOL_GPL(name_to_dev_t); - - static int __init root_dev_setup(char *line) - { -@@ -413,6 +414,8 @@ void __init prepare_namespace(void) - if (is_floppy && rd_doload && rd_load_disk(0)) - ROOT_DEV = Root_RAM0; - -+ check_resume_attempted(); -+ - mount_root(); - out: - devtmpfs_mount("dev"); -diff --git a/init/do_mounts_initrd.c b/init/do_mounts_initrd.c -index 614241b..f3ea292 100644 ---- a/init/do_mounts_initrd.c -+++ b/init/do_mounts_initrd.c -@@ -6,6 +6,7 @@ - #include - #include - #include -+#include - #include - - #include "do_mounts.h" -@@ -68,6 +69,11 @@ static void __init handle_initrd(void) - - current->flags &= ~PF_FREEZER_SKIP; - -+ if (!resume_attempted) -+ printk(KERN_ERR "TuxOnIce: No attempt was made to resume from " -+ "any image that might exist.\n"); -+ clear_toi_state(TOI_BOOT_TIME); -+ - /* move initrd to rootfs' /old */ - sys_fchdir(old_fd); - sys_mount("/", ".", NULL, MS_MOVE, NULL); -diff --git a/init/main.c b/init/main.c -index 4cb47a1..36eac80 100644 ---- a/init/main.c -+++ b/init/main.c -@@ -116,6 +116,7 @@ extern void softirq_init(void); - char __initdata boot_command_line[COMMAND_LINE_SIZE]; - /* Untouched saved command line (eg. for /proc) */ - char *saved_command_line; -+EXPORT_SYMBOL_GPL(saved_command_line); - /* Command line for parameter parsing */ - static char *static_command_line; - -diff --git a/kernel/cpu.c b/kernel/cpu.c -index 677f253..aad27c8 100644 ---- a/kernel/cpu.c -+++ b/kernel/cpu.c -@@ -402,6 +402,7 @@ int disable_nonboot_cpus(void) - stop_machine_destroy(); - return error; - } -+EXPORT_SYMBOL_GPL(disable_nonboot_cpus); - - void __weak arch_enable_nonboot_cpus_begin(void) - { -@@ -440,6 +441,7 @@ void __ref enable_nonboot_cpus(void) - out: - cpu_maps_update_done(); - } -+EXPORT_SYMBOL_GPL(enable_nonboot_cpus); - - static int alloc_frozen_cpus(void) - { -diff --git a/kernel/fork.c b/kernel/fork.c -index f88bd98..17bbf09 100644 ---- a/kernel/fork.c -+++ b/kernel/fork.c -@@ -86,6 +86,7 @@ int max_threads; /* tunable limit on nr_threads */ - DEFINE_PER_CPU(unsigned long, process_counts) = 0; - - __cacheline_aligned DEFINE_RWLOCK(tasklist_lock); /* outer */ -+EXPORT_SYMBOL_GPL(tasklist_lock); - - int nr_processes(void) - { -diff --git a/kernel/kmod.c b/kernel/kmod.c -index bf0e231..de63918 100644 ---- a/kernel/kmod.c -+++ b/kernel/kmod.c -@@ -326,6 +326,7 @@ int usermodehelper_disable(void) - usermodehelper_disabled = 0; - return -EAGAIN; - } -+EXPORT_SYMBOL_GPL(usermodehelper_disable); - - /** - * usermodehelper_enable - allow new helpers to be started again -@@ -334,6 +335,7 @@ void usermodehelper_enable(void) - { - usermodehelper_disabled = 0; - } -+EXPORT_SYMBOL_GPL(usermodehelper_enable); - - static void helper_lock(void) - { -diff --git a/kernel/pid.c b/kernel/pid.c -index 2e17c9c..f83eb67 100644 ---- a/kernel/pid.c -+++ b/kernel/pid.c -@@ -382,6 +382,7 @@ struct task_struct *find_task_by_pid_ns(pid_t nr, struct pid_namespace *ns) - { - return pid_task(find_pid_ns(nr, ns), PIDTYPE_PID); - } -+EXPORT_SYMBOL_GPL(find_task_by_pid_ns); - - struct task_struct *find_task_by_vpid(pid_t vnr) - { -diff --git a/kernel/power/Kconfig b/kernel/power/Kconfig -index 91e09d3..733ff64 100644 ---- a/kernel/power/Kconfig -+++ b/kernel/power/Kconfig -@@ -38,6 +38,13 @@ config CAN_PM_TRACE - def_bool y - depends on PM_DEBUG && PM_SLEEP && EXPERIMENTAL - -+config FS_FREEZER_DEBUG -+ bool "Filesystem freezer debugging" -+ depends on PM_DEBUG -+ default n -+ ---help--- -+ This option enables debugging of the filesystem freezing code. -+ - config PM_TRACE - bool - help -@@ -183,6 +190,238 @@ config PM_STD_PARTITION - suspended image to. It will simply pick the first available swap - device. - -+menuconfig TOI_CORE -+ tristate "Enhanced Hibernation (TuxOnIce)" -+ depends on HIBERNATION -+ default y -+ ---help--- -+ TuxOnIce is the 'new and improved' suspend support. -+ -+ See the TuxOnIce home page (tuxonice.net) -+ for FAQs, HOWTOs and other documentation. -+ -+ comment "Image Storage (you need at least one allocator)" -+ depends on TOI_CORE -+ -+ config TOI_FILE -+ tristate "File Allocator" -+ depends on TOI_CORE -+ default y -+ ---help--- -+ This option enables support for storing an image in a -+ simple file. You might want this if your swap is -+ sometimes full enough that you don't have enough spare -+ space to store an image. -+ -+ config TOI_SWAP -+ tristate "Swap Allocator" -+ depends on TOI_CORE && SWAP -+ default y -+ ---help--- -+ This option enables support for storing an image in your -+ swap space. -+ -+ comment "General Options" -+ depends on TOI_CORE -+ -+ config TOI_CRYPTO -+ tristate "Compression support" -+ depends on TOI_CORE && CRYPTO -+ default y -+ ---help--- -+ This option adds support for using cryptoapi compression -+ algorithms. Compression is particularly useful as it can -+ more than double your suspend and resume speed (depending -+ upon how well your image compresses). -+ -+ You probably want this, so say Y here. -+ -+ comment "No compression support available without Cryptoapi support." -+ depends on TOI_CORE && !CRYPTO -+ -+ config TOI_USERUI -+ tristate "Userspace User Interface support" -+ depends on TOI_CORE && NET && (VT || SERIAL_CONSOLE) -+ default y -+ ---help--- -+ This option enabled support for a userspace based user interface -+ to TuxOnIce, which allows you to have a nice display while suspending -+ and resuming, and also enables features such as pressing escape to -+ cancel a cycle or interactive debugging. -+ -+ config TOI_USERUI_DEFAULT_PATH -+ string "Default userui program location" -+ default "/usr/local/sbin/tuxoniceui_text" -+ depends on TOI_USERUI -+ ---help--- -+ This entry allows you to specify a default path to the userui binary. -+ -+ config TOI_KEEP_IMAGE -+ bool "Allow Keep Image Mode" -+ depends on TOI_CORE -+ ---help--- -+ This option allows you to keep and image and reuse it. It is intended -+ __ONLY__ for use with systems where all filesystems are mounted read- -+ only (kiosks, for example). To use it, compile this option in and boot -+ normally. Set the KEEP_IMAGE flag in /sys/power/tuxonice and suspend. -+ When you resume, the image will not be removed. You will be unable to turn -+ off swap partitions (assuming you are using the swap allocator), but future -+ suspends simply do a power-down. The image can be updated using the -+ kernel command line parameter suspend_act= to turn off the keep image -+ bit. Keep image mode is a little less user friendly on purpose - it -+ should not be used without thought! -+ -+ config TOI_REPLACE_SWSUSP -+ bool "Replace swsusp by default" -+ default y -+ depends on TOI_CORE -+ ---help--- -+ TuxOnIce can replace swsusp. This option makes that the default state, -+ requiring you to echo 0 > /sys/power/tuxonice/replace_swsusp if you want -+ to use the vanilla kernel functionality. Note that your initrd/ramfs will -+ need to do this before trying to resume, too. -+ With overriding swsusp enabled, echoing disk to /sys/power/state will -+ start a TuxOnIce cycle. If resume= doesn't specify an allocator and both -+ the swap and file allocators are compiled in, the swap allocator will be -+ used by default. -+ -+ config TOI_IGNORE_LATE_INITCALL -+ bool "Wait for initrd/ramfs to run, by default" -+ default n -+ depends on TOI_CORE -+ ---help--- -+ When booting, TuxOnIce can check for an image and start to resume prior -+ to any initrd/ramfs running (via a late initcall). -+ -+ If you don't have an initrd/ramfs, this is what you want to happen - -+ otherwise you won't be able to safely resume. You should set this option -+ to 'No'. -+ -+ If, however, you want your initrd/ramfs to run anyway before resuming, -+ you need to tell TuxOnIce to ignore that earlier opportunity to resume. -+ This can be done either by using this compile time option, or by -+ overriding this option with the boot-time parameter toi_initramfs_resume_only=1. -+ -+ Note that if TuxOnIce can't resume at the earlier opportunity, the -+ value of this option won't matter - the initramfs/initrd (if any) will -+ run anyway. -+ -+ menuconfig TOI_CLUSTER -+ tristate "Cluster support" -+ default n -+ depends on TOI_CORE && NET && BROKEN -+ ---help--- -+ Support for linking multiple machines in a cluster so that they suspend -+ and resume together. -+ -+ config TOI_DEFAULT_CLUSTER_INTERFACE -+ string "Default cluster interface" -+ depends on TOI_CLUSTER -+ ---help--- -+ The default interface on which to communicate with other nodes in -+ the cluster. -+ -+ If no value is set here, cluster support will be disabled by default. -+ -+ config TOI_DEFAULT_CLUSTER_KEY -+ string "Default cluster key" -+ default "Default" -+ depends on TOI_CLUSTER -+ ---help--- -+ The default key used by this node. All nodes in the same cluster -+ have the same key. Multiple clusters may coexist on the same lan -+ by using different values for this key. -+ -+ config TOI_CLUSTER_IMAGE_TIMEOUT -+ int "Timeout when checking for image" -+ default 15 -+ depends on TOI_CLUSTER -+ ---help--- -+ Timeout (seconds) before continuing to boot when waiting to see -+ whether other nodes might have an image. Set to -1 to wait -+ indefinitely. In WAIT_UNTIL_NODES is non zero, we might continue -+ booting sooner than this timeout. -+ -+ config TOI_CLUSTER_WAIT_UNTIL_NODES -+ int "Nodes without image before continuing" -+ default 0 -+ depends on TOI_CLUSTER -+ ---help--- -+ When booting and no image is found, we wait to see if other nodes -+ have an image before continuing to boot. This value lets us -+ continue after seeing a certain number of nodes without an image, -+ instead of continuing to wait for the timeout. Set to 0 to only -+ use the timeout. -+ -+ config TOI_DEFAULT_CLUSTER_PRE_HIBERNATE -+ string "Default pre-hibernate script" -+ depends on TOI_CLUSTER -+ ---help--- -+ The default script to be called when starting to hibernate. -+ -+ config TOI_DEFAULT_CLUSTER_POST_HIBERNATE -+ string "Default post-hibernate script" -+ depends on TOI_CLUSTER -+ ---help--- -+ The default script to be called after resuming from hibernation. -+ -+ config TOI_DEFAULT_WAIT -+ int "Default waiting time for emergency boot messages" -+ default "25" -+ range -1 32768 -+ depends on TOI_CORE -+ help -+ TuxOnIce can display warnings very early in the process of resuming, -+ if (for example) it appears that you have booted a kernel that doesn't -+ match an image on disk. It can then give you the opportunity to either -+ continue booting that kernel, or reboot the machine. This option can be -+ used to control how long to wait in such circumstances. -1 means wait -+ forever. 0 means don't wait at all (do the default action, which will -+ generally be to continue booting and remove the image). Values of 1 or -+ more indicate a number of seconds (up to 255) to wait before doing the -+ default. -+ -+ config TOI_DEFAULT_EXTRA_PAGES_ALLOWANCE -+ int "Default extra pages allowance" -+ default "2000" -+ range 500 32768 -+ depends on TOI_CORE -+ help -+ This value controls the default for the allowance TuxOnIce makes for -+ drivers to allocate extra memory during the atomic copy. The default -+ value of 2000 will be okay in most cases. If you are using -+ DRI, the easiest way to find what value to use is to try to hibernate -+ and look at how many pages were actually needed in the sysfs entry -+ /sys/power/tuxonice/debug_info (first number on the last line), adding -+ a little extra because the value is not always the same. -+ -+ config TOI_CHECKSUM -+ bool "Checksum pageset2" -+ default n -+ depends on TOI_CORE -+ select CRYPTO -+ select CRYPTO_ALGAPI -+ select CRYPTO_MD4 -+ ---help--- -+ Adds support for checksumming pageset2 pages, to ensure you really get an -+ atomic copy. Since some filesystems (XFS especially) change metadata even -+ when there's no other activity, we need this to check for pages that have -+ been changed while we were saving the page cache. If your debugging output -+ always says no pages were resaved, you may be able to safely disable this -+ option. -+ -+config TOI -+ bool -+ depends on TOI_CORE!=n -+ default y -+ -+config TOI_EXPORTS -+ bool -+ depends on TOI_SWAP=m || TOI_FILE=m || \ -+ TOI_CRYPTO=m || TOI_CLUSTER=m || \ -+ TOI_USERUI=m || TOI_CORE=m -+ default y -+ - config APM_EMULATION - tristate "Advanced Power Management Emulation" - depends on PM && SYS_SUPPORTS_APM_EMULATION -diff --git a/kernel/power/Makefile b/kernel/power/Makefile -index 4319181..18c4733 100644 ---- a/kernel/power/Makefile -+++ b/kernel/power/Makefile -@@ -3,6 +3,35 @@ ifeq ($(CONFIG_PM_DEBUG),y) - EXTRA_CFLAGS += -DDEBUG - endif - -+tuxonice_core-y := tuxonice_modules.o -+ -+obj-$(CONFIG_TOI) += tuxonice_builtin.o -+ -+tuxonice_core-$(CONFIG_PM_DEBUG) += tuxonice_alloc.o -+ -+# Compile these in after allocation debugging, if used. -+ -+tuxonice_core-y += tuxonice_sysfs.o tuxonice_highlevel.o \ -+ tuxonice_io.o tuxonice_pagedir.o tuxonice_prepare_image.o \ -+ tuxonice_extent.o tuxonice_pageflags.o tuxonice_ui.o \ -+ tuxonice_power_off.o tuxonice_atomic_copy.o -+ -+tuxonice_core-$(CONFIG_TOI_CHECKSUM) += tuxonice_checksum.o -+ -+tuxonice_core-$(CONFIG_NET) += tuxonice_storage.o tuxonice_netlink.o -+ -+obj-$(CONFIG_TOI_CORE) += tuxonice_core.o -+obj-$(CONFIG_TOI_CRYPTO) += tuxonice_compress.o -+ -+tuxonice_bio-y := tuxonice_bio_core.o tuxonice_bio_chains.o \ -+ tuxonice_bio_signature.o -+ -+obj-$(CONFIG_TOI_SWAP) += tuxonice_bio.o tuxonice_swap.o -+obj-$(CONFIG_TOI_FILE) += tuxonice_bio.o tuxonice_file.o -+obj-$(CONFIG_TOI_CLUSTER) += tuxonice_cluster.o -+ -+obj-$(CONFIG_TOI_USERUI) += tuxonice_userui.o -+ - obj-$(CONFIG_PM) += main.o - obj-$(CONFIG_PM_SLEEP) += console.o - obj-$(CONFIG_FREEZER) += process.o -diff --git a/kernel/power/console.c b/kernel/power/console.c -index 218e5af..95a6bdc 100644 ---- a/kernel/power/console.c -+++ b/kernel/power/console.c -@@ -24,6 +24,7 @@ int pm_prepare_console(void) - orig_kmsg = vt_kmsg_redirect(SUSPEND_CONSOLE); - return 0; - } -+EXPORT_SYMBOL_GPL(pm_prepare_console); - - void pm_restore_console(void) - { -@@ -32,4 +33,5 @@ void pm_restore_console(void) - vt_kmsg_redirect(orig_kmsg); - } - } -+EXPORT_SYMBOL_GPL(pm_restore_console); - #endif -diff --git a/kernel/power/hibernate.c b/kernel/power/hibernate.c -index bbfe472..07c550b 100644 ---- a/kernel/power/hibernate.c -+++ b/kernel/power/hibernate.c -@@ -25,11 +25,12 @@ - #include - #include - --#include "power.h" -+#include "tuxonice.h" - - - static int noresume = 0; --static char resume_file[256] = CONFIG_PM_STD_PARTITION; -+char resume_file[256] = CONFIG_PM_STD_PARTITION; -+EXPORT_SYMBOL_GPL(resume_file); - dev_t swsusp_resume_device; - sector_t swsusp_resume_block; - int in_suspend __nosavedata = 0; -@@ -116,55 +117,60 @@ static int hibernation_test(int level) { return 0; } - * hibernation - */ - --static int platform_begin(int platform_mode) -+int platform_begin(int platform_mode) - { - return (platform_mode && hibernation_ops) ? - hibernation_ops->begin() : 0; - } -+EXPORT_SYMBOL_GPL(platform_begin); - - /** - * platform_end - tell the platform driver that we've entered the - * working state - */ - --static void platform_end(int platform_mode) -+void platform_end(int platform_mode) - { - if (platform_mode && hibernation_ops) - hibernation_ops->end(); - } -+EXPORT_SYMBOL_GPL(platform_end); - - /** - * platform_pre_snapshot - prepare the machine for hibernation using the - * platform driver if so configured and return an error code if it fails - */ - --static int platform_pre_snapshot(int platform_mode) -+int platform_pre_snapshot(int platform_mode) - { - return (platform_mode && hibernation_ops) ? - hibernation_ops->pre_snapshot() : 0; - } -+EXPORT_SYMBOL_GPL(platform_pre_snapshot); - - /** - * platform_leave - prepare the machine for switching to the normal mode - * of operation using the platform driver (called with interrupts disabled) - */ - --static void platform_leave(int platform_mode) -+void platform_leave(int platform_mode) - { - if (platform_mode && hibernation_ops) - hibernation_ops->leave(); - } -+EXPORT_SYMBOL_GPL(platform_leave); - - /** - * platform_finish - switch the machine to the normal mode of operation - * using the platform driver (must be called after platform_prepare()) - */ - --static void platform_finish(int platform_mode) -+void platform_finish(int platform_mode) - { - if (platform_mode && hibernation_ops) - hibernation_ops->finish(); - } -+EXPORT_SYMBOL_GPL(platform_finish); - - /** - * platform_pre_restore - prepare the platform for the restoration from a -@@ -172,11 +178,12 @@ static void platform_finish(int platform_mode) - * called, platform_restore_cleanup() must be called. - */ - --static int platform_pre_restore(int platform_mode) -+int platform_pre_restore(int platform_mode) - { - return (platform_mode && hibernation_ops) ? - hibernation_ops->pre_restore() : 0; - } -+EXPORT_SYMBOL_GPL(platform_pre_restore); - - /** - * platform_restore_cleanup - switch the platform to the normal mode of -@@ -185,22 +192,24 @@ static int platform_pre_restore(int platform_mode) - * regardless of the result of platform_pre_restore(). - */ - --static void platform_restore_cleanup(int platform_mode) -+void platform_restore_cleanup(int platform_mode) - { - if (platform_mode && hibernation_ops) - hibernation_ops->restore_cleanup(); - } -+EXPORT_SYMBOL_GPL(platform_restore_cleanup); - - /** - * platform_recover - recover the platform from a failure to suspend - * devices. - */ - --static void platform_recover(int platform_mode) -+void platform_recover(int platform_mode) - { - if (platform_mode && hibernation_ops && hibernation_ops->recover) - hibernation_ops->recover(); - } -+EXPORT_SYMBOL_GPL(platform_recover); - - /** - * swsusp_show_speed - print the time elapsed between two events. -@@ -525,6 +534,7 @@ int hibernation_platform_enter(void) - - return error; - } -+EXPORT_SYMBOL_GPL(hibernation_platform_enter); - - /** - * power_down - Shut the machine down for hibernation. -@@ -576,6 +586,9 @@ int hibernate(void) - { - int error; - -+ if (test_action_state(TOI_REPLACE_SWSUSP)) -+ return try_tuxonice_hibernate(); -+ - mutex_lock(&pm_mutex); - /* The snapshot device should not be opened while we're running */ - if (!atomic_add_unless(&snapshot_device_available, -1, 0)) { -@@ -656,11 +669,19 @@ int hibernate(void) - * - */ - --static int software_resume(void) -+int software_resume(void) - { - int error; - unsigned int flags; - -+ resume_attempted = 1; -+ -+ /* -+ * We can't know (until an image header - if any - is loaded), whether -+ * we did override swsusp. We therefore ensure that both are tried. -+ */ -+ try_tuxonice_resume(); -+ - /* - * If the user said "noresume".. bail out early. - */ -@@ -989,6 +1010,7 @@ static int __init resume_offset_setup(char *str) - static int __init noresume_setup(char *str) - { - noresume = 1; -+ set_toi_state(TOI_NORESUME_SPECIFIED); - return 1; - } - -diff --git a/kernel/power/main.c b/kernel/power/main.c -index 0998c71..9509733 100644 ---- a/kernel/power/main.c -+++ b/kernel/power/main.c -@@ -16,6 +16,7 @@ - #include "power.h" - - DEFINE_MUTEX(pm_mutex); -+EXPORT_SYMBOL_GPL(pm_mutex); - - unsigned int pm_flags; - EXPORT_SYMBOL(pm_flags); -@@ -24,7 +25,8 @@ EXPORT_SYMBOL(pm_flags); - - /* Routines for PM-transition notifications */ - --static BLOCKING_NOTIFIER_HEAD(pm_chain_head); -+BLOCKING_NOTIFIER_HEAD(pm_chain_head); -+EXPORT_SYMBOL_GPL(pm_chain_head); - - int register_pm_notifier(struct notifier_block *nb) - { -@@ -43,6 +45,7 @@ int pm_notifier_call_chain(unsigned long val) - return (blocking_notifier_call_chain(&pm_chain_head, val, NULL) - == NOTIFY_BAD) ? -EINVAL : 0; - } -+EXPORT_SYMBOL_GPL(pm_notifier_call_chain); - - #ifdef CONFIG_PM_DEBUG - int pm_test_level = TEST_NONE; -@@ -110,6 +113,7 @@ power_attr(pm_test); - #endif /* CONFIG_PM_SLEEP */ - - struct kobject *power_kobj; -+EXPORT_SYMBOL_GPL(power_kobj); - - /** - * state - control system power state. -diff --git a/kernel/power/power.h b/kernel/power/power.h -index 46c5a26..d8c8f32 100644 ---- a/kernel/power/power.h -+++ b/kernel/power/power.h -@@ -31,8 +31,12 @@ static inline char *check_image_kernel(struct swsusp_info *info) - return arch_hibernation_header_restore(info) ? - "architecture specific data" : NULL; - } -+#else -+extern char *check_image_kernel(struct swsusp_info *info); - #endif /* CONFIG_ARCH_HIBERNATION_HEADER */ -+extern int init_header(struct swsusp_info *info); - -+extern char resume_file[256]; - /* - * Keep some memory free so that I/O operations can succeed without paging - * [Might this be more than 4 MB?] -@@ -49,6 +53,7 @@ static inline char *check_image_kernel(struct swsusp_info *info) - extern int hibernation_snapshot(int platform_mode); - extern int hibernation_restore(int platform_mode); - extern int hibernation_platform_enter(void); -+extern void platform_recover(int platform_mode); - #endif - - extern int pfn_is_nosave(unsigned long); -@@ -63,6 +68,8 @@ static struct kobj_attribute _name##_attr = { \ - .store = _name##_store, \ - } - -+extern struct pbe *restore_pblist; -+ - /* Preferred image size in bytes (default 500 MB) */ - extern unsigned long image_size; - extern int in_suspend; -@@ -236,3 +243,86 @@ static inline void suspend_thaw_processes(void) - { - } - #endif -+ -+extern struct page *saveable_page(struct zone *z, unsigned long p); -+#ifdef CONFIG_HIGHMEM -+extern struct page *saveable_highmem_page(struct zone *z, unsigned long p); -+#else -+static -+inline struct page *saveable_highmem_page(struct zone *z, unsigned long p) -+{ -+ return NULL; -+} -+#endif -+ -+#define PBES_PER_PAGE (PAGE_SIZE / sizeof(struct pbe)) -+extern struct list_head nosave_regions; -+ -+/** -+ * This structure represents a range of page frames the contents of which -+ * should not be saved during the suspend. -+ */ -+ -+struct nosave_region { -+ struct list_head list; -+ unsigned long start_pfn; -+ unsigned long end_pfn; -+}; -+ -+#ifndef PHYS_PFN_OFFSET -+#define PHYS_PFN_OFFSET 0 -+#endif -+ -+#define ZONE_START(thiszone) ((thiszone)->zone_start_pfn - PHYS_PFN_OFFSET) -+ -+#define BM_END_OF_MAP (~0UL) -+ -+#define BM_BITS_PER_BLOCK (PAGE_SIZE * BITS_PER_BYTE) -+ -+struct bm_block { -+ struct list_head hook; /* hook into a list of bitmap blocks */ -+ unsigned long start_pfn; /* pfn represented by the first bit */ -+ unsigned long end_pfn; /* pfn represented by the last bit plus 1 */ -+ unsigned long *data; /* bitmap representing pages */ -+}; -+ -+/* struct bm_position is used for browsing memory bitmaps */ -+ -+struct bm_position { -+ struct bm_block *block; -+ int bit; -+}; -+ -+struct memory_bitmap { -+ struct list_head blocks; /* list of bitmap blocks */ -+ struct linked_page *p_list; /* list of pages used to store zone -+ * bitmap objects and bitmap block -+ * objects -+ */ -+ struct bm_position cur; /* most recently used bit position */ -+ struct bm_position iter; /* most recently used bit position -+ * when iterating over a bitmap. -+ */ -+}; -+ -+extern int memory_bm_create(struct memory_bitmap *bm, gfp_t gfp_mask, -+ int safe_needed); -+extern void memory_bm_free(struct memory_bitmap *bm, int clear_nosave_free); -+extern void memory_bm_set_bit(struct memory_bitmap *bm, unsigned long pfn); -+extern void memory_bm_clear_bit(struct memory_bitmap *bm, unsigned long pfn); -+extern int memory_bm_test_bit(struct memory_bitmap *bm, unsigned long pfn); -+extern unsigned long memory_bm_next_pfn(struct memory_bitmap *bm); -+extern void memory_bm_position_reset(struct memory_bitmap *bm); -+extern void memory_bm_clear(struct memory_bitmap *bm); -+extern void memory_bm_copy(struct memory_bitmap *source, -+ struct memory_bitmap *dest); -+extern void memory_bm_dup(struct memory_bitmap *source, -+ struct memory_bitmap *dest); -+ -+#ifdef CONFIG_TOI -+struct toi_module_ops; -+extern int memory_bm_read(struct memory_bitmap *bm, int (*rw_chunk) -+ (int rw, struct toi_module_ops *owner, char *buffer, int buffer_size)); -+extern int memory_bm_write(struct memory_bitmap *bm, int (*rw_chunk) -+ (int rw, struct toi_module_ops *owner, char *buffer, int buffer_size)); -+#endif -diff --git a/kernel/power/process.c b/kernel/power/process.c -index 5ade1bd..e24a702 100644 ---- a/kernel/power/process.c -+++ b/kernel/power/process.c -@@ -15,6 +15,13 @@ - #include - #include - #include -+#include -+ -+int freezer_state; -+EXPORT_SYMBOL_GPL(freezer_state); -+ -+int freezer_sync; -+EXPORT_SYMBOL_GPL(freezer_sync); - - /* - * Timeout for stopping processes -@@ -93,7 +100,8 @@ static int try_to_freeze_tasks(bool sig_only) - do_each_thread(g, p) { - task_lock(p); - if (freezing(p) && !freezer_should_skip(p)) -- printk(KERN_ERR " %s\n", p->comm); -+ printk(KERN_ERR " %s (%d) failed to freeze.\n", -+ p->comm, p->pid); - cancel_freezing(p); - task_unlock(p); - } while_each_thread(g, p); -@@ -113,17 +121,26 @@ int freeze_processes(void) - { - int error; - -- printk("Freezing user space processes ... "); -+ printk(KERN_INFO "Stopping fuse filesystems.\n"); -+ freeze_filesystems(FS_FREEZER_FUSE); -+ freezer_state = FREEZER_FILESYSTEMS_FROZEN; -+ printk(KERN_INFO "Freezing user space processes ... "); - error = try_to_freeze_tasks(true); - if (error) - goto Exit; - printk("done.\n"); - -- printk("Freezing remaining freezable tasks ... "); -+ if (freezer_sync) -+ sys_sync(); -+ printk(KERN_INFO "Stopping normal filesystems.\n"); -+ freeze_filesystems(FS_FREEZER_NORMAL); -+ freezer_state = FREEZER_USERSPACE_FROZEN; -+ printk(KERN_INFO "Freezing remaining freezable tasks ... "); - error = try_to_freeze_tasks(false); - if (error) - goto Exit; - printk("done."); -+ freezer_state = FREEZER_FULLY_ON; - - oom_killer_disable(); - Exit: -@@ -132,6 +149,7 @@ int freeze_processes(void) - - return error; - } -+EXPORT_SYMBOL_GPL(freeze_processes); - - static void thaw_tasks(bool nosig_only) - { -@@ -155,12 +173,39 @@ static void thaw_tasks(bool nosig_only) - - void thaw_processes(void) - { -+ int old_state = freezer_state; -+ -+ if (old_state == FREEZER_OFF) -+ return; -+ -+ freezer_state = FREEZER_OFF; -+ - oom_killer_enable(); - -+ printk(KERN_INFO "Restarting all filesystems ...\n"); -+ thaw_filesystems(FS_FREEZER_ALL); -+ -+ printk(KERN_INFO "Restarting tasks ... "); -+ if (old_state == FREEZER_FULLY_ON) -+ thaw_tasks(true); -+ - printk("Restarting tasks ... "); -- thaw_tasks(true); - thaw_tasks(false); - schedule(); - printk("done.\n"); - } -+EXPORT_SYMBOL_GPL(thaw_processes); - -+void thaw_kernel_threads(void) -+{ -+ freezer_state = FREEZER_USERSPACE_FROZEN; -+ printk(KERN_INFO "Restarting normal filesystems.\n"); -+ thaw_filesystems(FS_FREEZER_NORMAL); -+ thaw_tasks(true); -+} -+ -+/* -+ * It's ugly putting this EXPORT down here, but it's necessary so that it -+ * doesn't matter whether the fs-freezing patch is applied or not. -+ */ -+EXPORT_SYMBOL_GPL(thaw_kernel_threads); -diff --git a/kernel/power/snapshot.c b/kernel/power/snapshot.c -index 36cb168..7f6da8f 100644 ---- a/kernel/power/snapshot.c -+++ b/kernel/power/snapshot.c -@@ -34,6 +34,8 @@ - #include - - #include "power.h" -+#include "tuxonice_builtin.h" -+#include "tuxonice_pagedir.h" - - static int swsusp_page_is_free(struct page *); - static void swsusp_set_page_forbidden(struct page *); -@@ -53,6 +55,10 @@ unsigned long image_size = 500 * 1024 * 1024; - * directly to their "original" page frames. - */ - struct pbe *restore_pblist; -+EXPORT_SYMBOL_GPL(restore_pblist); -+ -+int resume_attempted; -+EXPORT_SYMBOL_GPL(resume_attempted); - - /* Pointer to an auxiliary buffer (1 page) */ - static void *buffer; -@@ -95,6 +101,9 @@ static void *get_image_page(gfp_t gfp_mask, int safe_needed) - - unsigned long get_safe_page(gfp_t gfp_mask) - { -+ if (toi_running) -+ return toi_get_nonconflicting_page(); -+ - return (unsigned long)get_image_page(gfp_mask, PG_SAFE); - } - -@@ -231,47 +240,22 @@ static void *chain_alloc(struct chain_allocator *ca, unsigned int size) - * the represented memory area. - */ - --#define BM_END_OF_MAP (~0UL) -- --#define BM_BITS_PER_BLOCK (PAGE_SIZE * BITS_PER_BYTE) -- --struct bm_block { -- struct list_head hook; /* hook into a list of bitmap blocks */ -- unsigned long start_pfn; /* pfn represented by the first bit */ -- unsigned long end_pfn; /* pfn represented by the last bit plus 1 */ -- unsigned long *data; /* bitmap representing pages */ --}; -- - static inline unsigned long bm_block_bits(struct bm_block *bb) - { - return bb->end_pfn - bb->start_pfn; - } - --/* strcut bm_position is used for browsing memory bitmaps */ -- --struct bm_position { -- struct bm_block *block; -- int bit; --}; -- --struct memory_bitmap { -- struct list_head blocks; /* list of bitmap blocks */ -- struct linked_page *p_list; /* list of pages used to store zone -- * bitmap objects and bitmap block -- * objects -- */ -- struct bm_position cur; /* most recently used bit position */ --}; -- - /* Functions that operate on memory bitmaps */ - --static void memory_bm_position_reset(struct memory_bitmap *bm) -+void memory_bm_position_reset(struct memory_bitmap *bm) - { - bm->cur.block = list_entry(bm->blocks.next, struct bm_block, hook); - bm->cur.bit = 0; --} - --static void memory_bm_free(struct memory_bitmap *bm, int clear_nosave_free); -+ bm->iter.block = list_entry(bm->blocks.next, struct bm_block, hook); -+ bm->iter.bit = 0; -+} -+EXPORT_SYMBOL_GPL(memory_bm_position_reset); - - /** - * create_bm_block_list - create a list of block bitmap objects -@@ -379,7 +363,7 @@ static int create_mem_extents(struct list_head *list, gfp_t gfp_mask) - /** - * memory_bm_create - allocate memory for a memory bitmap - */ --static int -+int - memory_bm_create(struct memory_bitmap *bm, gfp_t gfp_mask, int safe_needed) - { - struct chain_allocator ca; -@@ -435,11 +419,12 @@ memory_bm_create(struct memory_bitmap *bm, gfp_t gfp_mask, int safe_needed) - memory_bm_free(bm, PG_UNSAFE_CLEAR); - goto Exit; - } -+EXPORT_SYMBOL_GPL(memory_bm_create); - - /** - * memory_bm_free - free memory occupied by the memory bitmap @bm - */ --static void memory_bm_free(struct memory_bitmap *bm, int clear_nosave_free) -+void memory_bm_free(struct memory_bitmap *bm, int clear_nosave_free) - { - struct bm_block *bb; - -@@ -451,6 +436,7 @@ static void memory_bm_free(struct memory_bitmap *bm, int clear_nosave_free) - - INIT_LIST_HEAD(&bm->blocks); - } -+EXPORT_SYMBOL_GPL(memory_bm_free); - - /** - * memory_bm_find_bit - find the bit in the bitmap @bm that corresponds -@@ -489,7 +475,7 @@ static int memory_bm_find_bit(struct memory_bitmap *bm, unsigned long pfn, - return 0; - } - --static void memory_bm_set_bit(struct memory_bitmap *bm, unsigned long pfn) -+void memory_bm_set_bit(struct memory_bitmap *bm, unsigned long pfn) - { - void *addr; - unsigned int bit; -@@ -499,6 +485,7 @@ static void memory_bm_set_bit(struct memory_bitmap *bm, unsigned long pfn) - BUG_ON(error); - set_bit(bit, addr); - } -+EXPORT_SYMBOL_GPL(memory_bm_set_bit); - - static int mem_bm_set_bit_check(struct memory_bitmap *bm, unsigned long pfn) - { -@@ -512,7 +499,7 @@ static int mem_bm_set_bit_check(struct memory_bitmap *bm, unsigned long pfn) - return error; - } - --static void memory_bm_clear_bit(struct memory_bitmap *bm, unsigned long pfn) -+void memory_bm_clear_bit(struct memory_bitmap *bm, unsigned long pfn) - { - void *addr; - unsigned int bit; -@@ -522,8 +509,9 @@ static void memory_bm_clear_bit(struct memory_bitmap *bm, unsigned long pfn) - BUG_ON(error); - clear_bit(bit, addr); - } -+EXPORT_SYMBOL_GPL(memory_bm_clear_bit); - --static int memory_bm_test_bit(struct memory_bitmap *bm, unsigned long pfn) -+int memory_bm_test_bit(struct memory_bitmap *bm, unsigned long pfn) - { - void *addr; - unsigned int bit; -@@ -533,6 +521,7 @@ static int memory_bm_test_bit(struct memory_bitmap *bm, unsigned long pfn) - BUG_ON(error); - return test_bit(bit, addr); - } -+EXPORT_SYMBOL_GPL(memory_bm_test_bit); - - static bool memory_bm_pfn_present(struct memory_bitmap *bm, unsigned long pfn) - { -@@ -551,43 +540,178 @@ static bool memory_bm_pfn_present(struct memory_bitmap *bm, unsigned long pfn) - * this function. - */ - --static unsigned long memory_bm_next_pfn(struct memory_bitmap *bm) -+unsigned long memory_bm_next_pfn(struct memory_bitmap *bm) - { - struct bm_block *bb; - int bit; - -- bb = bm->cur.block; -+ bb = bm->iter.block; - do { -- bit = bm->cur.bit; -+ bit = bm->iter.bit; - bit = find_next_bit(bb->data, bm_block_bits(bb), bit); - if (bit < bm_block_bits(bb)) - goto Return_pfn; - - bb = list_entry(bb->hook.next, struct bm_block, hook); -- bm->cur.block = bb; -- bm->cur.bit = 0; -+ bm->iter.block = bb; -+ bm->iter.bit = 0; - } while (&bb->hook != &bm->blocks); - - memory_bm_position_reset(bm); - return BM_END_OF_MAP; - - Return_pfn: -- bm->cur.bit = bit + 1; -+ bm->iter.bit = bit + 1; - return bb->start_pfn + bit; - } -+EXPORT_SYMBOL_GPL(memory_bm_next_pfn); - --/** -- * This structure represents a range of page frames the contents of which -- * should not be saved during the suspend. -- */ -+void memory_bm_clear(struct memory_bitmap *bm) -+{ -+ unsigned long pfn; - --struct nosave_region { -- struct list_head list; -- unsigned long start_pfn; -- unsigned long end_pfn; --}; -+ memory_bm_position_reset(bm); -+ pfn = memory_bm_next_pfn(bm); -+ while (pfn != BM_END_OF_MAP) { -+ memory_bm_clear_bit(bm, pfn); -+ pfn = memory_bm_next_pfn(bm); -+ } -+} -+EXPORT_SYMBOL_GPL(memory_bm_clear); -+ -+void memory_bm_copy(struct memory_bitmap *source, struct memory_bitmap *dest) -+{ -+ unsigned long pfn; -+ -+ memory_bm_position_reset(source); -+ pfn = memory_bm_next_pfn(source); -+ while (pfn != BM_END_OF_MAP) { -+ memory_bm_set_bit(dest, pfn); -+ pfn = memory_bm_next_pfn(source); -+ } -+} -+EXPORT_SYMBOL_GPL(memory_bm_copy); -+ -+void memory_bm_dup(struct memory_bitmap *source, struct memory_bitmap *dest) -+{ -+ memory_bm_clear(dest); -+ memory_bm_copy(source, dest); -+} -+EXPORT_SYMBOL_GPL(memory_bm_dup); -+ -+#ifdef CONFIG_TOI -+#define DEFINE_MEMORY_BITMAP(name) \ -+struct memory_bitmap *name; \ -+EXPORT_SYMBOL_GPL(name) -+ -+DEFINE_MEMORY_BITMAP(pageset1_map); -+DEFINE_MEMORY_BITMAP(pageset1_copy_map); -+DEFINE_MEMORY_BITMAP(pageset2_map); -+DEFINE_MEMORY_BITMAP(page_resave_map); -+DEFINE_MEMORY_BITMAP(io_map); -+DEFINE_MEMORY_BITMAP(nosave_map); -+DEFINE_MEMORY_BITMAP(free_map); -+ -+int memory_bm_write(struct memory_bitmap *bm, int (*rw_chunk) -+ (int rw, struct toi_module_ops *owner, char *buffer, int buffer_size)) -+{ -+ int result = 0; -+ unsigned int nr = 0; -+ struct bm_block *bb; -+ -+ if (!bm) -+ return result; - --static LIST_HEAD(nosave_regions); -+ list_for_each_entry(bb, &bm->blocks, hook) -+ nr++; -+ -+ result = (*rw_chunk)(WRITE, NULL, (char *) &nr, sizeof(unsigned int)); -+ if (result) -+ return result; -+ -+ list_for_each_entry(bb, &bm->blocks, hook) { -+ result = (*rw_chunk)(WRITE, NULL, (char *) &bb->start_pfn, -+ 2 * sizeof(unsigned long)); -+ if (result) -+ return result; -+ -+ result = (*rw_chunk)(WRITE, NULL, (char *) bb->data, PAGE_SIZE); -+ if (result) -+ return result; -+ } -+ -+ return 0; -+} -+EXPORT_SYMBOL_GPL(memory_bm_write); -+ -+int memory_bm_read(struct memory_bitmap *bm, int (*rw_chunk) -+ (int rw, struct toi_module_ops *owner, char *buffer, int buffer_size)) -+{ -+ int result = 0; -+ unsigned int nr, i; -+ struct bm_block *bb; -+ -+ if (!bm) -+ return result; -+ -+ result = memory_bm_create(bm, GFP_KERNEL, 0); -+ -+ if (result) -+ return result; -+ -+ result = (*rw_chunk)(READ, NULL, (char *) &nr, sizeof(unsigned int)); -+ if (result) -+ goto Free; -+ -+ for (i = 0; i < nr; i++) { -+ unsigned long pfn; -+ -+ result = (*rw_chunk)(READ, NULL, (char *) &pfn, -+ sizeof(unsigned long)); -+ if (result) -+ goto Free; -+ -+ list_for_each_entry(bb, &bm->blocks, hook) -+ if (bb->start_pfn == pfn) -+ break; -+ -+ if (&bb->hook == &bm->blocks) { -+ printk(KERN_ERR -+ "TuxOnIce: Failed to load memory bitmap.\n"); -+ result = -EINVAL; -+ goto Free; -+ } -+ -+ result = (*rw_chunk)(READ, NULL, (char *) &pfn, -+ sizeof(unsigned long)); -+ if (result) -+ goto Free; -+ -+ if (pfn != bb->end_pfn) { -+ printk(KERN_ERR -+ "TuxOnIce: Failed to load memory bitmap. " -+ "End PFN doesn't match what was saved.\n"); -+ result = -EINVAL; -+ goto Free; -+ } -+ -+ result = (*rw_chunk)(READ, NULL, (char *) bb->data, PAGE_SIZE); -+ -+ if (result) -+ goto Free; -+ } -+ -+ return 0; -+ -+Free: -+ memory_bm_free(bm, PG_ANY); -+ return result; -+} -+EXPORT_SYMBOL_GPL(memory_bm_read); -+#endif -+ -+LIST_HEAD(nosave_regions); -+EXPORT_SYMBOL_GPL(nosave_regions); - - /** - * register_nosave_region - register a range of page frames the contents -@@ -823,7 +947,7 @@ static unsigned int count_free_highmem_pages(void) - * We should save the page if it isn't Nosave or NosaveFree, or Reserved, - * and it isn't a part of a free chunk of pages. - */ --static struct page *saveable_highmem_page(struct zone *zone, unsigned long pfn) -+struct page *saveable_highmem_page(struct zone *zone, unsigned long pfn) - { - struct page *page; - -@@ -842,6 +966,7 @@ static struct page *saveable_highmem_page(struct zone *zone, unsigned long pfn) - - return page; - } -+EXPORT_SYMBOL_GPL(saveable_highmem_page); - - /** - * count_highmem_pages - compute the total number of saveable highmem -@@ -867,11 +992,6 @@ static unsigned int count_highmem_pages(void) - } - return n; - } --#else --static inline void *saveable_highmem_page(struct zone *z, unsigned long p) --{ -- return NULL; --} - #endif /* CONFIG_HIGHMEM */ - - /** -@@ -882,7 +1002,7 @@ static inline void *saveable_highmem_page(struct zone *z, unsigned long p) - * of pages statically defined as 'unsaveable', and it isn't a part of - * a free chunk of pages. - */ --static struct page *saveable_page(struct zone *zone, unsigned long pfn) -+struct page *saveable_page(struct zone *zone, unsigned long pfn) - { - struct page *page; - -@@ -904,6 +1024,7 @@ static struct page *saveable_page(struct zone *zone, unsigned long pfn) - - return page; - } -+EXPORT_SYMBOL_GPL(saveable_page); - - /** - * count_data_pages - compute the total number of saveable non-highmem -@@ -1500,6 +1621,9 @@ asmlinkage int swsusp_save(void) - { - unsigned int nr_pages, nr_highmem; - -+ if (toi_running) -+ return toi_post_context_save(); -+ - printk(KERN_INFO "PM: Creating hibernation image: \n"); - - drain_local_pages(NULL); -@@ -1540,14 +1664,14 @@ asmlinkage int swsusp_save(void) - } - - #ifndef CONFIG_ARCH_HIBERNATION_HEADER --static int init_header_complete(struct swsusp_info *info) -+int init_header_complete(struct swsusp_info *info) - { - memcpy(&info->uts, init_utsname(), sizeof(struct new_utsname)); - info->version_code = LINUX_VERSION_CODE; - return 0; - } - --static char *check_image_kernel(struct swsusp_info *info) -+char *check_image_kernel(struct swsusp_info *info) - { - if (info->version_code != LINUX_VERSION_CODE) - return "kernel version"; -@@ -1561,6 +1685,7 @@ static char *check_image_kernel(struct swsusp_info *info) - return "machine"; - return NULL; - } -+EXPORT_SYMBOL_GPL(check_image_kernel); - #endif /* CONFIG_ARCH_HIBERNATION_HEADER */ - - unsigned long snapshot_get_image_size(void) -@@ -1568,7 +1693,7 @@ unsigned long snapshot_get_image_size(void) - return nr_copy_pages + nr_meta_pages + 1; - } - --static int init_header(struct swsusp_info *info) -+int init_header(struct swsusp_info *info) - { - memset(info, 0, sizeof(struct swsusp_info)); - info->num_physpages = num_physpages; -@@ -1578,6 +1703,7 @@ static int init_header(struct swsusp_info *info) - info->size <<= PAGE_SHIFT; - return init_header_complete(info); - } -+EXPORT_SYMBOL_GPL(init_header); - - /** - * pack_pfns - pfns corresponding to the set bits found in the bitmap @bm -diff --git a/kernel/power/suspend.c b/kernel/power/suspend.c -index 6f10dfc..cecd9a8 100644 ---- a/kernel/power/suspend.c -+++ b/kernel/power/suspend.c -@@ -226,6 +226,7 @@ int suspend_devices_and_enter(suspend_state_t state) - suspend_ops->recover(); - goto Resume_devices; - } -+EXPORT_SYMBOL_GPL(suspend_devices_and_enter); - - /** - * suspend_finish - Do final work before exiting suspend sequence. -diff --git a/kernel/power/tuxonice.h b/kernel/power/tuxonice.h -new file mode 100644 -index 0000000..e7bc111 ---- /dev/null -+++ b/kernel/power/tuxonice.h -@@ -0,0 +1,211 @@ -+/* -+ * kernel/power/tuxonice.h -+ * -+ * Copyright (C) 2004-2010 Nigel Cunningham (nigel at tuxonice net) -+ * -+ * This file is released under the GPLv2. -+ * -+ * It contains declarations used throughout swsusp. -+ * -+ */ -+ -+#ifndef KERNEL_POWER_TOI_H -+#define KERNEL_POWER_TOI_H -+ -+#include -+#include -+#include -+#include -+#include -+#include -+#include "tuxonice_pageflags.h" -+#include "power.h" -+ -+#define TOI_CORE_VERSION "3.1" -+#define TOI_HEADER_VERSION 2 -+#define MY_BOOT_KERNEL_DATA_VERSION 3 -+ -+struct toi_boot_kernel_data { -+ int version; -+ int size; -+ unsigned long toi_action; -+ unsigned long toi_debug_state; -+ u32 toi_default_console_level; -+ int toi_io_time[2][2]; -+ char toi_nosave_commandline[COMMAND_LINE_SIZE]; -+ unsigned long pages_used[33]; -+ unsigned long compress_bytes_in; -+ unsigned long compress_bytes_out; -+}; -+ -+extern struct toi_boot_kernel_data toi_bkd; -+ -+/* Location of book kernel data struct in kernel being resumed */ -+extern unsigned long boot_kernel_data_buffer; -+ -+/* == Action states == */ -+ -+enum { -+ TOI_REBOOT, -+ TOI_PAUSE, -+ TOI_LOGALL, -+ TOI_CAN_CANCEL, -+ TOI_KEEP_IMAGE, -+ TOI_FREEZER_TEST, -+ TOI_SINGLESTEP, -+ TOI_PAUSE_NEAR_PAGESET_END, -+ TOI_TEST_FILTER_SPEED, -+ TOI_TEST_BIO, -+ TOI_NO_PAGESET2, -+ TOI_IGNORE_ROOTFS, -+ TOI_REPLACE_SWSUSP, -+ TOI_PAGESET2_FULL, -+ TOI_ABORT_ON_RESAVE_NEEDED, -+ TOI_NO_MULTITHREADED_IO, -+ TOI_NO_DIRECT_LOAD, /* Obsolete */ -+ TOI_LATE_CPU_HOTPLUG, -+ TOI_GET_MAX_MEM_ALLOCD, -+ TOI_NO_FLUSHER_THREAD, -+ TOI_NO_PS2_IF_UNNEEDED -+}; -+ -+#define clear_action_state(bit) (test_and_clear_bit(bit, &toi_bkd.toi_action)) -+ -+/* == Result states == */ -+ -+enum { -+ TOI_ABORTED, -+ TOI_ABORT_REQUESTED, -+ TOI_NOSTORAGE_AVAILABLE, -+ TOI_INSUFFICIENT_STORAGE, -+ TOI_FREEZING_FAILED, -+ TOI_KEPT_IMAGE, -+ TOI_WOULD_EAT_MEMORY, -+ TOI_UNABLE_TO_FREE_ENOUGH_MEMORY, -+ TOI_PM_SEM, -+ TOI_DEVICE_REFUSED, -+ TOI_SYSDEV_REFUSED, -+ TOI_EXTRA_PAGES_ALLOW_TOO_SMALL, -+ TOI_UNABLE_TO_PREPARE_IMAGE, -+ TOI_FAILED_MODULE_INIT, -+ TOI_FAILED_MODULE_CLEANUP, -+ TOI_FAILED_IO, -+ TOI_OUT_OF_MEMORY, -+ TOI_IMAGE_ERROR, -+ TOI_PLATFORM_PREP_FAILED, -+ TOI_CPU_HOTPLUG_FAILED, -+ TOI_ARCH_PREPARE_FAILED, -+ TOI_RESAVE_NEEDED, -+ TOI_CANT_SUSPEND, -+ TOI_NOTIFIERS_PREPARE_FAILED, -+ TOI_PRE_SNAPSHOT_FAILED, -+ TOI_PRE_RESTORE_FAILED, -+ TOI_USERMODE_HELPERS_ERR, -+ TOI_CANT_USE_ALT_RESUME, -+ TOI_HEADER_TOO_BIG, -+ TOI_NUM_RESULT_STATES /* Used in printing debug info only */ -+}; -+ -+extern unsigned long toi_result; -+ -+#define set_result_state(bit) (test_and_set_bit(bit, &toi_result)) -+#define set_abort_result(bit) (test_and_set_bit(TOI_ABORTED, &toi_result), \ -+ test_and_set_bit(bit, &toi_result)) -+#define clear_result_state(bit) (test_and_clear_bit(bit, &toi_result)) -+#define test_result_state(bit) (test_bit(bit, &toi_result)) -+ -+/* == Debug sections and levels == */ -+ -+/* debugging levels. */ -+enum { -+ TOI_STATUS = 0, -+ TOI_ERROR = 2, -+ TOI_LOW, -+ TOI_MEDIUM, -+ TOI_HIGH, -+ TOI_VERBOSE, -+}; -+ -+enum { -+ TOI_ANY_SECTION, -+ TOI_EAT_MEMORY, -+ TOI_IO, -+ TOI_HEADER, -+ TOI_WRITER, -+ TOI_MEMORY, -+}; -+ -+#define set_debug_state(bit) (test_and_set_bit(bit, &toi_bkd.toi_debug_state)) -+#define clear_debug_state(bit) \ -+ (test_and_clear_bit(bit, &toi_bkd.toi_debug_state)) -+#define test_debug_state(bit) (test_bit(bit, &toi_bkd.toi_debug_state)) -+ -+/* == Steps in hibernating == */ -+ -+enum { -+ STEP_HIBERNATE_PREPARE_IMAGE, -+ STEP_HIBERNATE_SAVE_IMAGE, -+ STEP_HIBERNATE_POWERDOWN, -+ STEP_RESUME_CAN_RESUME, -+ STEP_RESUME_LOAD_PS1, -+ STEP_RESUME_DO_RESTORE, -+ STEP_RESUME_READ_PS2, -+ STEP_RESUME_GO, -+ STEP_RESUME_ALT_IMAGE, -+ STEP_CLEANUP, -+ STEP_QUIET_CLEANUP -+}; -+ -+/* == TuxOnIce states == -+ (see also include/linux/suspend.h) */ -+ -+#define get_toi_state() (toi_state) -+#define restore_toi_state(saved_state) \ -+ do { toi_state = saved_state; } while (0) -+ -+/* == Module support == */ -+ -+struct toi_core_fns { -+ int (*post_context_save)(void); -+ unsigned long (*get_nonconflicting_page)(void); -+ int (*try_hibernate)(void); -+ void (*try_resume)(void); -+}; -+ -+extern struct toi_core_fns *toi_core_fns; -+ -+/* == All else == */ -+#define KB(x) ((x) << (PAGE_SHIFT - 10)) -+#define MB(x) ((x) >> (20 - PAGE_SHIFT)) -+ -+extern int toi_start_anything(int toi_or_resume); -+extern void toi_finish_anything(int toi_or_resume); -+ -+extern int save_image_part1(void); -+extern int toi_atomic_restore(void); -+ -+extern int toi_try_hibernate(void); -+extern void toi_try_resume(void); -+ -+extern int __toi_post_context_save(void); -+ -+extern unsigned int nr_hibernates; -+extern char alt_resume_param[256]; -+ -+extern void copyback_post(void); -+extern int toi_hibernate(void); -+extern unsigned long extra_pd1_pages_used; -+ -+#define SECTOR_SIZE 512 -+ -+extern void toi_early_boot_message(int can_erase_image, int default_answer, -+ char *warning_reason, ...); -+ -+extern int do_check_can_resume(void); -+extern int do_toi_step(int step); -+extern int toi_launch_userspace_program(char *command, int channel_no, -+ enum umh_wait wait, int debug); -+ -+extern char tuxonice_signature[9]; -+extern int freezer_sync; -+#endif -diff --git a/kernel/power/tuxonice_alloc.c b/kernel/power/tuxonice_alloc.c -new file mode 100644 -index 0000000..891c5b2 ---- /dev/null -+++ b/kernel/power/tuxonice_alloc.c -@@ -0,0 +1,313 @@ -+/* -+ * kernel/power/tuxonice_alloc.c -+ * -+ * Copyright (C) 2008-2010 Nigel Cunningham (nigel at tuxonice net) -+ * -+ * This file is released under the GPLv2. -+ * -+ */ -+ -+#ifdef CONFIG_PM_DEBUG -+#include -+#include -+#include "tuxonice_modules.h" -+#include "tuxonice_alloc.h" -+#include "tuxonice_sysfs.h" -+#include "tuxonice.h" -+ -+#define TOI_ALLOC_PATHS 40 -+ -+static DEFINE_MUTEX(toi_alloc_mutex); -+ -+static struct toi_module_ops toi_alloc_ops; -+ -+static int toi_fail_num; -+static int trace_allocs; -+static atomic_t toi_alloc_count[TOI_ALLOC_PATHS], -+ toi_free_count[TOI_ALLOC_PATHS], -+ toi_test_count[TOI_ALLOC_PATHS], -+ toi_fail_count[TOI_ALLOC_PATHS]; -+static int toi_cur_allocd[TOI_ALLOC_PATHS], toi_max_allocd[TOI_ALLOC_PATHS]; -+static int cur_allocd, max_allocd; -+ -+static char *toi_alloc_desc[TOI_ALLOC_PATHS] = { -+ "", /* 0 */ -+ "get_io_info_struct", -+ "extent", -+ "extent (loading chain)", -+ "userui channel", -+ "userui arg", /* 5 */ -+ "attention list metadata", -+ "extra pagedir memory metadata", -+ "bdev metadata", -+ "extra pagedir memory", -+ "header_locations_read", /* 10 */ -+ "bio queue", -+ "prepare_readahead", -+ "i/o buffer", -+ "writer buffer in bio_init", -+ "checksum buffer", /* 15 */ -+ "compression buffer", -+ "filewriter signature op", -+ "set resume param alloc1", -+ "set resume param alloc2", -+ "debugging info buffer", /* 20 */ -+ "check can resume buffer", -+ "write module config buffer", -+ "read module config buffer", -+ "write image header buffer", -+ "read pageset1 buffer", /* 25 */ -+ "get_have_image_data buffer", -+ "checksum page", -+ "worker rw loop", -+ "get nonconflicting page", -+ "ps1 load addresses", /* 30 */ -+ "remove swap image", -+ "swap image exists", -+ "swap parse sig location", -+ "sysfs kobj", -+ "swap mark resume attempted buffer", /* 35 */ -+ "cluster member", -+ "boot kernel data buffer", -+ "setting swap signature", -+ "block i/o bdev struct" -+}; -+ -+#define MIGHT_FAIL(FAIL_NUM, FAIL_VAL) \ -+ do { \ -+ BUG_ON(FAIL_NUM >= TOI_ALLOC_PATHS); \ -+ \ -+ if (FAIL_NUM == toi_fail_num) { \ -+ atomic_inc(&toi_test_count[FAIL_NUM]); \ -+ toi_fail_num = 0; \ -+ return FAIL_VAL; \ -+ } \ -+ } while (0) -+ -+static void alloc_update_stats(int fail_num, void *result, int size) -+{ -+ if (!result) { -+ atomic_inc(&toi_fail_count[fail_num]); -+ return; -+ } -+ -+ atomic_inc(&toi_alloc_count[fail_num]); -+ if (unlikely(test_action_state(TOI_GET_MAX_MEM_ALLOCD))) { -+ mutex_lock(&toi_alloc_mutex); -+ toi_cur_allocd[fail_num]++; -+ cur_allocd += size; -+ if (unlikely(cur_allocd > max_allocd)) { -+ int i; -+ -+ for (i = 0; i < TOI_ALLOC_PATHS; i++) -+ toi_max_allocd[i] = toi_cur_allocd[i]; -+ max_allocd = cur_allocd; -+ } -+ mutex_unlock(&toi_alloc_mutex); -+ } -+} -+ -+static void free_update_stats(int fail_num, int size) -+{ -+ BUG_ON(fail_num >= TOI_ALLOC_PATHS); -+ atomic_inc(&toi_free_count[fail_num]); -+ if (unlikely(atomic_read(&toi_free_count[fail_num]) > -+ atomic_read(&toi_alloc_count[fail_num]))) -+ dump_stack(); -+ if (unlikely(test_action_state(TOI_GET_MAX_MEM_ALLOCD))) { -+ mutex_lock(&toi_alloc_mutex); -+ cur_allocd -= size; -+ toi_cur_allocd[fail_num]--; -+ mutex_unlock(&toi_alloc_mutex); -+ } -+} -+ -+void *toi_kzalloc(int fail_num, size_t size, gfp_t flags) -+{ -+ void *result; -+ -+ if (toi_alloc_ops.enabled) -+ MIGHT_FAIL(fail_num, NULL); -+ result = kzalloc(size, flags); -+ if (toi_alloc_ops.enabled) -+ alloc_update_stats(fail_num, result, size); -+ if (fail_num == trace_allocs) -+ dump_stack(); -+ return result; -+} -+EXPORT_SYMBOL_GPL(toi_kzalloc); -+ -+unsigned long toi_get_free_pages(int fail_num, gfp_t mask, -+ unsigned int order) -+{ -+ unsigned long result; -+ -+ if (toi_alloc_ops.enabled) -+ MIGHT_FAIL(fail_num, 0); -+ result = __get_free_pages(mask, order); -+ if (toi_alloc_ops.enabled) -+ alloc_update_stats(fail_num, (void *) result, -+ PAGE_SIZE << order); -+ if (fail_num == trace_allocs) -+ dump_stack(); -+ return result; -+} -+EXPORT_SYMBOL_GPL(toi_get_free_pages); -+ -+struct page *toi_alloc_page(int fail_num, gfp_t mask) -+{ -+ struct page *result; -+ -+ if (toi_alloc_ops.enabled) -+ MIGHT_FAIL(fail_num, NULL); -+ result = alloc_page(mask); -+ if (toi_alloc_ops.enabled) -+ alloc_update_stats(fail_num, (void *) result, PAGE_SIZE); -+ if (fail_num == trace_allocs) -+ dump_stack(); -+ return result; -+} -+EXPORT_SYMBOL_GPL(toi_alloc_page); -+ -+unsigned long toi_get_zeroed_page(int fail_num, gfp_t mask) -+{ -+ unsigned long result; -+ -+ if (fail_num == trace_allocs) -+ dump_stack(); -+ if (toi_alloc_ops.enabled) -+ MIGHT_FAIL(fail_num, 0); -+ result = get_zeroed_page(mask); -+ if (toi_alloc_ops.enabled) -+ alloc_update_stats(fail_num, (void *) result, PAGE_SIZE); -+ if (fail_num == trace_allocs) -+ dump_stack(); -+ return result; -+} -+EXPORT_SYMBOL_GPL(toi_get_zeroed_page); -+ -+void toi_kfree(int fail_num, const void *arg, int size) -+{ -+ if (arg && toi_alloc_ops.enabled) -+ free_update_stats(fail_num, size); -+ -+ if (fail_num == trace_allocs) -+ dump_stack(); -+ kfree(arg); -+} -+EXPORT_SYMBOL_GPL(toi_kfree); -+ -+void toi_free_page(int fail_num, unsigned long virt) -+{ -+ if (virt && toi_alloc_ops.enabled) -+ free_update_stats(fail_num, PAGE_SIZE); -+ -+ if (fail_num == trace_allocs) -+ dump_stack(); -+ free_page(virt); -+} -+EXPORT_SYMBOL_GPL(toi_free_page); -+ -+void toi__free_page(int fail_num, struct page *page) -+{ -+ if (page && toi_alloc_ops.enabled) -+ free_update_stats(fail_num, PAGE_SIZE); -+ -+ if (fail_num == trace_allocs) -+ dump_stack(); -+ __free_page(page); -+} -+EXPORT_SYMBOL_GPL(toi__free_page); -+ -+void toi_free_pages(int fail_num, struct page *page, int order) -+{ -+ if (page && toi_alloc_ops.enabled) -+ free_update_stats(fail_num, PAGE_SIZE << order); -+ -+ if (fail_num == trace_allocs) -+ dump_stack(); -+ __free_pages(page, order); -+} -+ -+void toi_alloc_print_debug_stats(void) -+{ -+ int i, header_done = 0; -+ -+ if (!toi_alloc_ops.enabled) -+ return; -+ -+ for (i = 0; i < TOI_ALLOC_PATHS; i++) -+ if (atomic_read(&toi_alloc_count[i]) != -+ atomic_read(&toi_free_count[i])) { -+ if (!header_done) { -+ printk(KERN_INFO "Idx Allocs Frees Tests " -+ " Fails Max Description\n"); -+ header_done = 1; -+ } -+ -+ printk(KERN_INFO "%3d %7d %7d %7d %7d %7d %s\n", i, -+ atomic_read(&toi_alloc_count[i]), -+ atomic_read(&toi_free_count[i]), -+ atomic_read(&toi_test_count[i]), -+ atomic_read(&toi_fail_count[i]), -+ toi_max_allocd[i], -+ toi_alloc_desc[i]); -+ } -+} -+EXPORT_SYMBOL_GPL(toi_alloc_print_debug_stats); -+ -+static int toi_alloc_initialise(int starting_cycle) -+{ -+ int i; -+ -+ if (!starting_cycle) -+ return 0; -+ -+ for (i = 0; i < TOI_ALLOC_PATHS; i++) { -+ atomic_set(&toi_alloc_count[i], 0); -+ atomic_set(&toi_free_count[i], 0); -+ atomic_set(&toi_test_count[i], 0); -+ atomic_set(&toi_fail_count[i], 0); -+ toi_cur_allocd[i] = 0; -+ toi_max_allocd[i] = 0; -+ }; -+ -+ max_allocd = 0; -+ cur_allocd = 0; -+ return 0; -+} -+ -+static struct toi_sysfs_data sysfs_params[] = { -+ SYSFS_INT("failure_test", SYSFS_RW, &toi_fail_num, 0, 99, 0, NULL), -+ SYSFS_INT("trace", SYSFS_RW, &trace_allocs, 0, TOI_ALLOC_PATHS, 0, -+ NULL), -+ SYSFS_BIT("find_max_mem_allocated", SYSFS_RW, &toi_bkd.toi_action, -+ TOI_GET_MAX_MEM_ALLOCD, 0), -+ SYSFS_INT("enabled", SYSFS_RW, &toi_alloc_ops.enabled, 0, 1, 0, -+ NULL) -+}; -+ -+static struct toi_module_ops toi_alloc_ops = { -+ .type = MISC_HIDDEN_MODULE, -+ .name = "allocation debugging", -+ .directory = "alloc", -+ .module = THIS_MODULE, -+ .early = 1, -+ .initialise = toi_alloc_initialise, -+ -+ .sysfs_data = sysfs_params, -+ .num_sysfs_entries = sizeof(sysfs_params) / -+ sizeof(struct toi_sysfs_data), -+}; -+ -+int toi_alloc_init(void) -+{ -+ int result = toi_register_module(&toi_alloc_ops); -+ return result; -+} -+ -+void toi_alloc_exit(void) -+{ -+ toi_unregister_module(&toi_alloc_ops); -+} -+#endif -diff --git a/kernel/power/tuxonice_alloc.h b/kernel/power/tuxonice_alloc.h -new file mode 100644 -index 0000000..6cd19ba ---- /dev/null -+++ b/kernel/power/tuxonice_alloc.h -@@ -0,0 +1,51 @@ -+/* -+ * kernel/power/tuxonice_alloc.h -+ * -+ * Copyright (C) 2008-2010 Nigel Cunningham (nigel at tuxonice net) -+ * -+ * This file is released under the GPLv2. -+ * -+ */ -+ -+#define TOI_WAIT_GFP (GFP_NOFS | __GFP_NOWARN) -+#define TOI_ATOMIC_GFP (GFP_ATOMIC | __GFP_NOWARN) -+ -+#ifdef CONFIG_PM_DEBUG -+extern void *toi_kzalloc(int fail_num, size_t size, gfp_t flags); -+extern void toi_kfree(int fail_num, const void *arg, int size); -+ -+extern unsigned long toi_get_free_pages(int fail_num, gfp_t mask, -+ unsigned int order); -+#define toi_get_free_page(FAIL_NUM, MASK) toi_get_free_pages(FAIL_NUM, MASK, 0) -+extern unsigned long toi_get_zeroed_page(int fail_num, gfp_t mask); -+extern void toi_free_page(int fail_num, unsigned long buf); -+extern void toi__free_page(int fail_num, struct page *page); -+extern void toi_free_pages(int fail_num, struct page *page, int order); -+extern struct page *toi_alloc_page(int fail_num, gfp_t mask); -+extern int toi_alloc_init(void); -+extern void toi_alloc_exit(void); -+ -+extern void toi_alloc_print_debug_stats(void); -+ -+#else /* CONFIG_PM_DEBUG */ -+ -+#define toi_kzalloc(FAIL, SIZE, FLAGS) (kzalloc(SIZE, FLAGS)) -+#define toi_kfree(FAIL, ALLOCN, SIZE) (kfree(ALLOCN)) -+ -+#define toi_get_free_pages(FAIL, FLAGS, ORDER) __get_free_pages(FLAGS, ORDER) -+#define toi_get_free_page(FAIL, FLAGS) __get_free_page(FLAGS) -+#define toi_get_zeroed_page(FAIL, FLAGS) get_zeroed_page(FLAGS) -+#define toi_free_page(FAIL, ALLOCN) do { free_page(ALLOCN); } while (0) -+#define toi__free_page(FAIL, PAGE) __free_page(PAGE) -+#define toi_free_pages(FAIL, PAGE, ORDER) __free_pages(PAGE, ORDER) -+#define toi_alloc_page(FAIL, MASK) alloc_page(MASK) -+static inline int toi_alloc_init(void) -+{ -+ return 0; -+} -+ -+static inline void toi_alloc_exit(void) { } -+ -+static inline void toi_alloc_print_debug_stats(void) { } -+ -+#endif -diff --git a/kernel/power/tuxonice_atomic_copy.c b/kernel/power/tuxonice_atomic_copy.c -new file mode 100644 -index 0000000..1807f8b ---- /dev/null -+++ b/kernel/power/tuxonice_atomic_copy.c -@@ -0,0 +1,418 @@ -+/* -+ * kernel/power/tuxonice_atomic_copy.c -+ * -+ * Copyright 2004-2010 Nigel Cunningham (nigel at tuxonice net) -+ * -+ * Distributed under GPLv2. -+ * -+ * Routines for doing the atomic save/restore. -+ */ -+ -+#include -+#include -+#include -+#include -+#include -+#include -+#include "tuxonice.h" -+#include "tuxonice_storage.h" -+#include "tuxonice_power_off.h" -+#include "tuxonice_ui.h" -+#include "tuxonice_io.h" -+#include "tuxonice_prepare_image.h" -+#include "tuxonice_pageflags.h" -+#include "tuxonice_checksum.h" -+#include "tuxonice_builtin.h" -+#include "tuxonice_atomic_copy.h" -+#include "tuxonice_alloc.h" -+#include "tuxonice_modules.h" -+ -+unsigned long extra_pd1_pages_used; -+ -+/** -+ * free_pbe_list - free page backup entries used by the atomic copy code. -+ * @list: List to free. -+ * @highmem: Whether the list is in highmem. -+ * -+ * Normally, this function isn't used. If, however, we need to abort before -+ * doing the atomic copy, we use this to free the pbes previously allocated. -+ **/ -+static void free_pbe_list(struct pbe **list, int highmem) -+{ -+ while (*list) { -+ int i; -+ struct pbe *free_pbe, *next_page = NULL; -+ struct page *page; -+ -+ if (highmem) { -+ page = (struct page *) *list; -+ free_pbe = (struct pbe *) kmap(page); -+ } else { -+ page = virt_to_page(*list); -+ free_pbe = *list; -+ } -+ -+ for (i = 0; i < PBES_PER_PAGE; i++) { -+ if (!free_pbe) -+ break; -+ if (highmem) -+ toi__free_page(29, free_pbe->address); -+ else -+ toi_free_page(29, -+ (unsigned long) free_pbe->address); -+ free_pbe = free_pbe->next; -+ } -+ -+ if (highmem) { -+ if (free_pbe) -+ next_page = free_pbe; -+ kunmap(page); -+ } else { -+ if (free_pbe) -+ next_page = free_pbe; -+ } -+ -+ toi__free_page(29, page); -+ *list = (struct pbe *) next_page; -+ }; -+} -+ -+/** -+ * copyback_post - post atomic-restore actions -+ * -+ * After doing the atomic restore, we have a few more things to do: -+ * 1) We want to retain some values across the restore, so we now copy -+ * these from the nosave variables to the normal ones. -+ * 2) Set the status flags. -+ * 3) Resume devices. -+ * 4) Tell userui so it can redraw & restore settings. -+ * 5) Reread the page cache. -+ **/ -+void copyback_post(void) -+{ -+ struct toi_boot_kernel_data *bkd = -+ (struct toi_boot_kernel_data *) boot_kernel_data_buffer; -+ -+ /* -+ * The boot kernel's data may be larger (newer version) or -+ * smaller (older version) than ours. Copy the minimum -+ * of the two sizes, so that we don't overwrite valid values -+ * from pre-atomic copy. -+ */ -+ -+ memcpy(&toi_bkd, (char *) boot_kernel_data_buffer, -+ min_t(int, sizeof(struct toi_boot_kernel_data), -+ bkd->size)); -+ -+ if (toi_activate_storage(1)) -+ panic("Failed to reactivate our storage."); -+ -+ toi_post_atomic_restore_modules(bkd); -+ -+ toi_cond_pause(1, "About to reload secondary pagedir."); -+ -+ if (read_pageset2(0)) -+ panic("Unable to successfully reread the page cache."); -+ -+ /* -+ * If the user wants to sleep again after resuming from full-off, -+ * it's most likely to be in order to suspend to ram, so we'll -+ * do this check after loading pageset2, to give them the fastest -+ * wakeup when they are ready to use the computer again. -+ */ -+ toi_check_resleep(); -+} -+ -+/** -+ * toi_copy_pageset1 - do the atomic copy of pageset1 -+ * -+ * Make the atomic copy of pageset1. We can't use copy_page (as we once did) -+ * because we can't be sure what side effects it has. On my old Duron, with -+ * 3DNOW, kernel_fpu_begin increments preempt count, making our preempt -+ * count at resume time 4 instead of 3. -+ * -+ * We don't want to call kmap_atomic unconditionally because it has the side -+ * effect of incrementing the preempt count, which will leave it one too high -+ * post resume (the page containing the preempt count will be copied after -+ * its incremented. This is essentially the same problem. -+ **/ -+void toi_copy_pageset1(void) -+{ -+ int i; -+ unsigned long source_index, dest_index; -+ -+ memory_bm_position_reset(pageset1_map); -+ memory_bm_position_reset(pageset1_copy_map); -+ -+ source_index = memory_bm_next_pfn(pageset1_map); -+ dest_index = memory_bm_next_pfn(pageset1_copy_map); -+ -+ for (i = 0; i < pagedir1.size; i++) { -+ unsigned long *origvirt, *copyvirt; -+ struct page *origpage, *copypage; -+ int loop = (PAGE_SIZE / sizeof(unsigned long)) - 1, -+ was_present1, was_present2; -+ -+ origpage = pfn_to_page(source_index); -+ copypage = pfn_to_page(dest_index); -+ -+ origvirt = PageHighMem(origpage) ? -+ kmap_atomic(origpage, KM_USER0) : -+ page_address(origpage); -+ -+ copyvirt = PageHighMem(copypage) ? -+ kmap_atomic(copypage, KM_USER1) : -+ page_address(copypage); -+ -+ was_present1 = kernel_page_present(origpage); -+ if (!was_present1) -+ kernel_map_pages(origpage, 1, 1); -+ -+ was_present2 = kernel_page_present(copypage); -+ if (!was_present2) -+ kernel_map_pages(copypage, 1, 1); -+ -+ while (loop >= 0) { -+ *(copyvirt + loop) = *(origvirt + loop); -+ loop--; -+ } -+ -+ if (!was_present1) -+ kernel_map_pages(origpage, 1, 0); -+ -+ if (!was_present2) -+ kernel_map_pages(copypage, 1, 0); -+ -+ if (PageHighMem(origpage)) -+ kunmap_atomic(origvirt, KM_USER0); -+ -+ if (PageHighMem(copypage)) -+ kunmap_atomic(copyvirt, KM_USER1); -+ -+ source_index = memory_bm_next_pfn(pageset1_map); -+ dest_index = memory_bm_next_pfn(pageset1_copy_map); -+ } -+} -+ -+/** -+ * __toi_post_context_save - steps after saving the cpu context -+ * -+ * Steps taken after saving the CPU state to make the actual -+ * atomic copy. -+ * -+ * Called from swsusp_save in snapshot.c via toi_post_context_save. -+ **/ -+int __toi_post_context_save(void) -+{ -+ unsigned long old_ps1_size = pagedir1.size; -+ -+ check_checksums(); -+ -+ free_checksum_pages(); -+ -+ toi_recalculate_image_contents(1); -+ -+ extra_pd1_pages_used = pagedir1.size > old_ps1_size ? -+ pagedir1.size - old_ps1_size : 0; -+ -+ if (extra_pd1_pages_used > extra_pd1_pages_allowance) { -+ printk(KERN_INFO "Pageset1 has grown by %lu pages. " -+ "extra_pages_allowance is currently only %lu.\n", -+ pagedir1.size - old_ps1_size, -+ extra_pd1_pages_allowance); -+ -+ /* -+ * Highlevel code will see this, clear the state and -+ * retry if we haven't already done so twice. -+ */ -+ set_abort_result(TOI_EXTRA_PAGES_ALLOW_TOO_SMALL); -+ return 1; -+ } -+ -+ if (!test_action_state(TOI_TEST_FILTER_SPEED) && -+ !test_action_state(TOI_TEST_BIO)) -+ toi_copy_pageset1(); -+ -+ return 0; -+} -+ -+/** -+ * toi_hibernate - high level code for doing the atomic copy -+ * -+ * High-level code which prepares to do the atomic copy. Loosely based -+ * on the swsusp version, but with the following twists: -+ * - We set toi_running so the swsusp code uses our code paths. -+ * - We give better feedback regarding what goes wrong if there is a -+ * problem. -+ * - We use an extra function to call the assembly, just in case this code -+ * is in a module (return address). -+ **/ -+int toi_hibernate(void) -+{ -+ int error; -+ -+ toi_running = 1; /* For the swsusp code we use :< */ -+ -+ error = toi_lowlevel_builtin(); -+ -+ toi_running = 0; -+ return error; -+} -+ -+/** -+ * toi_atomic_restore - prepare to do the atomic restore -+ * -+ * Get ready to do the atomic restore. This part gets us into the same -+ * state we are in prior to do calling do_toi_lowlevel while -+ * hibernating: hot-unplugging secondary cpus and freeze processes, -+ * before starting the thread that will do the restore. -+ **/ -+int toi_atomic_restore(void) -+{ -+ int error; -+ -+ toi_running = 1; -+ -+ toi_prepare_status(DONT_CLEAR_BAR, "Atomic restore."); -+ -+ memcpy(&toi_bkd.toi_nosave_commandline, saved_command_line, -+ strlen(saved_command_line)); -+ -+ toi_pre_atomic_restore_modules(&toi_bkd); -+ -+ if (add_boot_kernel_data_pbe()) -+ goto Failed; -+ -+ toi_prepare_status(DONT_CLEAR_BAR, "Doing atomic copy/restore."); -+ -+ if (toi_go_atomic(PMSG_QUIESCE, 0)) -+ goto Failed; -+ -+ /* We'll ignore saved state, but this gets preempt count (etc) right */ -+ save_processor_state(); -+ -+ error = swsusp_arch_resume(); -+ /* -+ * Code below is only ever reached in case of failure. Otherwise -+ * execution continues at place where swsusp_arch_suspend was called. -+ * -+ * We don't know whether it's safe to continue (this shouldn't happen), -+ * so lets err on the side of caution. -+ */ -+ BUG(); -+ -+Failed: -+ free_pbe_list(&restore_pblist, 0); -+#ifdef CONFIG_HIGHMEM -+ free_pbe_list(&restore_highmem_pblist, 1); -+#endif -+ toi_running = 0; -+ return 1; -+} -+ -+/** -+ * toi_go_atomic - do the actual atomic copy/restore -+ * @state: The state to use for dpm_suspend_start & power_down calls. -+ * @suspend_time: Whether we're suspending or resuming. -+ **/ -+int toi_go_atomic(pm_message_t state, int suspend_time) -+{ -+ if (suspend_time && platform_begin(1)) { -+ set_abort_result(TOI_PLATFORM_PREP_FAILED); -+ return 1; -+ } -+ -+ suspend_console(); -+ -+ if (dpm_suspend_start(state)) { -+ set_abort_result(TOI_DEVICE_REFUSED); -+ toi_end_atomic(ATOMIC_STEP_DEVICE_RESUME, suspend_time, 3); -+ return 1; -+ } -+ -+ if (suspend_time && arch_prepare_suspend()) { -+ set_abort_result(TOI_ARCH_PREPARE_FAILED); -+ toi_end_atomic(ATOMIC_STEP_DEVICE_RESUME, suspend_time, 1); -+ return 1; -+ } -+ -+ /* At this point, dpm_suspend_start() has been called, but *not* -+ * dpm_suspend_noirq(). We *must* dpm_suspend_noirq() now. -+ * Otherwise, drivers for some devices (e.g. interrupt controllers) -+ * become desynchronized with the actual state of the hardware -+ * at resume time, and evil weirdness ensues. -+ */ -+ -+ if (dpm_suspend_noirq(state)) { -+ set_abort_result(TOI_DEVICE_REFUSED); -+ toi_end_atomic(ATOMIC_STEP_DEVICE_RESUME, suspend_time, 1); -+ return 1; -+ } -+ -+ if (suspend_time && platform_pre_snapshot(1)) { -+ set_abort_result(TOI_PRE_SNAPSHOT_FAILED); -+ toi_end_atomic(ATOMIC_STEP_PLATFORM_FINISH, suspend_time, 1); -+ return 1; -+ } -+ -+ if (!suspend_time && platform_pre_restore(1)) { -+ set_abort_result(TOI_PRE_RESTORE_FAILED); -+ toi_end_atomic(ATOMIC_STEP_PLATFORM_FINISH, suspend_time, 1); -+ return 1; -+ } -+ -+ if (test_action_state(TOI_LATE_CPU_HOTPLUG)) { -+ if (disable_nonboot_cpus()) { -+ set_abort_result(TOI_CPU_HOTPLUG_FAILED); -+ toi_end_atomic(ATOMIC_STEP_CPU_HOTPLUG, -+ suspend_time, 1); -+ return 1; -+ } -+ } -+ -+ local_irq_disable(); -+ -+ if (sysdev_suspend(state)) { -+ set_abort_result(TOI_SYSDEV_REFUSED); -+ toi_end_atomic(ATOMIC_STEP_IRQS, suspend_time, 1); -+ return 1; -+ } -+ -+ return 0; -+} -+ -+/** -+ * toi_end_atomic - post atomic copy/restore routines -+ * @stage: What step to start at. -+ * @suspend_time: Whether we're suspending or resuming. -+ * @error: Whether we're recovering from an error. -+ **/ -+void toi_end_atomic(int stage, int suspend_time, int error) -+{ -+ switch (stage) { -+ case ATOMIC_ALL_STEPS: -+ if (!suspend_time) -+ platform_leave(1); -+ sysdev_resume(); -+ case ATOMIC_STEP_IRQS: -+ local_irq_enable(); -+ case ATOMIC_STEP_CPU_HOTPLUG: -+ if (test_action_state(TOI_LATE_CPU_HOTPLUG)) -+ enable_nonboot_cpus(); -+ platform_restore_cleanup(1); -+ case ATOMIC_STEP_PLATFORM_FINISH: -+ platform_finish(1); -+ dpm_resume_noirq(suspend_time ? -+ (error ? PMSG_RECOVER : PMSG_THAW) : PMSG_RESTORE); -+ case ATOMIC_STEP_DEVICE_RESUME: -+ if (suspend_time && (error & 2)) -+ platform_recover(1); -+ dpm_resume_end(suspend_time ? -+ ((error & 1) ? PMSG_RECOVER : PMSG_THAW) : -+ PMSG_RESTORE); -+ resume_console(); -+ platform_end(1); -+ -+ toi_prepare_status(DONT_CLEAR_BAR, "Post atomic."); -+ } -+} -diff --git a/kernel/power/tuxonice_atomic_copy.h b/kernel/power/tuxonice_atomic_copy.h -new file mode 100644 -index 0000000..e61b27b ---- /dev/null -+++ b/kernel/power/tuxonice_atomic_copy.h -@@ -0,0 +1,20 @@ -+/* -+ * kernel/power/tuxonice_atomic_copy.h -+ * -+ * Copyright 2008-2010 Nigel Cunningham (nigel at tuxonice net) -+ * -+ * Distributed under GPLv2. -+ * -+ * Routines for doing the atomic save/restore. -+ */ -+ -+enum { -+ ATOMIC_ALL_STEPS, -+ ATOMIC_STEP_IRQS, -+ ATOMIC_STEP_CPU_HOTPLUG, -+ ATOMIC_STEP_PLATFORM_FINISH, -+ ATOMIC_STEP_DEVICE_RESUME, -+}; -+ -+int toi_go_atomic(pm_message_t state, int toi_time); -+void toi_end_atomic(int stage, int toi_time, int error); -diff --git a/kernel/power/tuxonice_bio.h b/kernel/power/tuxonice_bio.h -new file mode 100644 -index 0000000..9627ccc ---- /dev/null -+++ b/kernel/power/tuxonice_bio.h -@@ -0,0 +1,77 @@ -+/* -+ * kernel/power/tuxonice_bio.h -+ * -+ * Copyright (C) 2004-2010 Nigel Cunningham (nigel at tuxonice net) -+ * -+ * Distributed under GPLv2. -+ * -+ * This file contains declarations for functions exported from -+ * tuxonice_bio.c, which contains low level io functions. -+ */ -+ -+#include -+#include "tuxonice_extent.h" -+ -+void toi_put_extent_chain(struct hibernate_extent_chain *chain); -+int toi_add_to_extent_chain(struct hibernate_extent_chain *chain, -+ unsigned long start, unsigned long end); -+ -+struct hibernate_extent_saved_state { -+ int extent_num; -+ struct hibernate_extent *extent_ptr; -+ unsigned long offset; -+}; -+ -+struct toi_bdev_info { -+ struct toi_bdev_info *next; -+ struct hibernate_extent_chain blocks; -+ struct block_device *bdev; -+ struct toi_module_ops *allocator; -+ int allocator_index; -+ struct hibernate_extent_chain allocations; -+ char name[266]; /* "swap on " or "file " + up to 256 chars */ -+ -+ /* Saved in header */ -+ char uuid[17]; -+ dev_t dev_t; -+ int prio; -+ int bmap_shift; -+ int blocks_per_page; -+ unsigned long pages_used; -+ struct hibernate_extent_saved_state saved_state[4]; -+}; -+ -+struct toi_extent_iterate_state { -+ struct toi_bdev_info *current_chain; -+ int num_chains; -+ int saved_chain_number[4]; -+ struct toi_bdev_info *saved_chain_ptr[4]; -+}; -+ -+/* -+ * Our exported interface so the swapwriter and filewriter don't -+ * need these functions duplicated. -+ */ -+struct toi_bio_ops { -+ int (*bdev_page_io) (int rw, struct block_device *bdev, long pos, -+ struct page *page); -+ int (*register_storage)(struct toi_bdev_info *new); -+ void (*free_storage)(void); -+}; -+ -+struct toi_allocator_ops { -+ unsigned long (*toi_swap_storage_available) (void); -+}; -+ -+extern struct toi_bio_ops toi_bio_ops; -+ -+extern char *toi_writer_buffer; -+extern int toi_writer_buffer_posn; -+ -+struct toi_bio_allocator_ops { -+ int (*register_storage) (void); -+ unsigned long (*storage_available)(void); -+ int (*allocate_storage) (struct toi_bdev_info *, unsigned long); -+ int (*bmap) (struct toi_bdev_info *); -+ void (*free_storage) (struct toi_bdev_info *); -+}; -diff --git a/kernel/power/tuxonice_bio_chains.c b/kernel/power/tuxonice_bio_chains.c -new file mode 100644 -index 0000000..2ac2042 ---- /dev/null -+++ b/kernel/power/tuxonice_bio_chains.c -@@ -0,0 +1,1044 @@ -+/* -+ * kernel/power/tuxonice_bio_devinfo.c -+ * -+ * Copyright (C) 2009-2010 Nigel Cunningham (nigel at tuxonice net) -+ * -+ * Distributed under GPLv2. -+ * -+ */ -+ -+#include -+#include "tuxonice_bio.h" -+#include "tuxonice_bio_internal.h" -+#include "tuxonice_alloc.h" -+#include "tuxonice_ui.h" -+#include "tuxonice.h" -+#include "tuxonice_io.h" -+ -+static struct toi_bdev_info *prio_chain_head; -+static int num_chains; -+ -+/* Pointer to current entry being loaded/saved. */ -+struct toi_extent_iterate_state toi_writer_posn; -+ -+#define metadata_size (sizeof(struct toi_bdev_info) - \ -+ offsetof(struct toi_bdev_info, uuid)) -+ -+/* -+ * After section 0 (header) comes 2 => next_section[0] = 2 -+ */ -+static int next_section[3] = { 2, 3, 1 }; -+ -+/** -+ * dump_block_chains - print the contents of the bdev info array. -+ **/ -+void dump_block_chains(void) -+{ -+ int i = 0; -+ int j; -+ struct toi_bdev_info *cur_chain = prio_chain_head; -+ -+ while (cur_chain) { -+ struct hibernate_extent *this = cur_chain->blocks.first; -+ -+ printk(KERN_DEBUG "Chain %d (prio %d):", i, cur_chain->prio); -+ -+ while (this) { -+ printk(KERN_CONT " [%lu-%lu]%s", this->start, -+ this->end, this->next ? "," : ""); -+ this = this->next; -+ } -+ -+ printk("\n"); -+ cur_chain = cur_chain->next; -+ i++; -+ } -+ -+ printk(KERN_DEBUG "Saved states:\n"); -+ for (i = 0; i < 4; i++) { -+ printk(KERN_DEBUG "Slot %d: Chain %d.\n", -+ i, toi_writer_posn.saved_chain_number[i]); -+ -+ cur_chain = prio_chain_head; -+ j = 0; -+ while (cur_chain) { -+ printk(KERN_DEBUG " Chain %d: Extent %d. Offset %lu.\n", -+ j, cur_chain->saved_state[i].extent_num, -+ cur_chain->saved_state[i].offset); -+ cur_chain = cur_chain->next; -+ j++; -+ } -+ printk(KERN_CONT "\n"); -+ } -+} -+ -+/** -+ * -+ **/ -+static void toi_extent_chain_next(void) -+{ -+ struct toi_bdev_info *this = toi_writer_posn.current_chain; -+ -+ if (!this->blocks.current_extent) -+ return; -+ -+ if (this->blocks.current_offset == this->blocks.current_extent->end) { -+ if (this->blocks.current_extent->next) { -+ this->blocks.current_extent = -+ this->blocks.current_extent->next; -+ this->blocks.current_offset = -+ this->blocks.current_extent->start; -+ } else { -+ this->blocks.current_extent = NULL; -+ this->blocks.current_offset = 0; -+ } -+ } else -+ this->blocks.current_offset++; -+} -+ -+/** -+ * -+ */ -+ -+static struct toi_bdev_info *__find_next_chain_same_prio(void) -+{ -+ struct toi_bdev_info *start_chain = toi_writer_posn.current_chain; -+ struct toi_bdev_info *this = start_chain; -+ int orig_prio = this->prio; -+ -+ do { -+ this = this->next; -+ -+ if (!this) -+ this = prio_chain_head; -+ -+ /* Back on original chain? Use it again. */ -+ if (this == start_chain) -+ return start_chain; -+ -+ } while (!this->blocks.current_extent || this->prio != orig_prio); -+ -+ return this; -+} -+ -+static void find_next_chain(void) -+{ -+ struct toi_bdev_info *this; -+ -+ this = __find_next_chain_same_prio(); -+ -+ /* -+ * If we didn't get another chain of the same priority that we -+ * can use, look for the next priority. -+ */ -+ while (this && !this->blocks.current_extent) -+ this = this->next; -+ -+ toi_writer_posn.current_chain = this; -+} -+ -+/** -+ * toi_extent_state_next - go to the next extent -+ * @blocks: The number of values to progress. -+ * @stripe_mode: Whether to spread usage across all chains. -+ * -+ * Given a state, progress to the next valid entry. We may begin in an -+ * invalid state, as we do when invoked after extent_state_goto_start below. -+ * -+ * When using compression and expected_compression > 0, we let the image size -+ * be larger than storage, so we can validly run out of data to return. -+ **/ -+static unsigned long toi_extent_state_next(int blocks, int current_stream) -+{ -+ int i; -+ -+ if (!toi_writer_posn.current_chain) -+ return -ENOSPC; -+ -+ /* Assume chains always have lengths that are multiples of @blocks */ -+ for (i = 0; i < blocks; i++) -+ toi_extent_chain_next(); -+ -+ /* The header stream is not striped */ -+ if (current_stream || -+ !toi_writer_posn.current_chain->blocks.current_extent) -+ find_next_chain(); -+ -+ return toi_writer_posn.current_chain ? 0 : -ENOSPC; -+} -+ -+static void toi_insert_chain_in_prio_list(struct toi_bdev_info *this) -+{ -+ struct toi_bdev_info **prev_ptr; -+ struct toi_bdev_info *cur; -+ -+ /* Loop through the existing chain, finding where to insert it */ -+ prev_ptr = &prio_chain_head; -+ cur = prio_chain_head; -+ -+ while (cur && cur->prio >= this->prio) { -+ prev_ptr = &cur->next; -+ cur = cur->next; -+ } -+ -+ this->next = *prev_ptr; -+ *prev_ptr = this; -+ -+ this = prio_chain_head; -+ while (this) -+ this = this->next; -+ num_chains++; -+} -+ -+/** -+ * toi_extent_state_goto_start - reinitialize an extent chain iterator -+ * @state: Iterator to reinitialize -+ **/ -+void toi_extent_state_goto_start(void) -+{ -+ struct toi_bdev_info *this = prio_chain_head; -+ -+ while (this) { -+ toi_message(TOI_IO, TOI_VERBOSE, 0, -+ "Setting current extent to %p.", this->blocks.first); -+ this->blocks.current_extent = this->blocks.first; -+ if (this->blocks.current_extent) { -+ toi_message(TOI_IO, TOI_VERBOSE, 0, -+ "Setting current offset to %lu.", -+ this->blocks.current_extent->start); -+ this->blocks.current_offset = -+ this->blocks.current_extent->start; -+ } -+ -+ this = this->next; -+ } -+ -+ toi_message(TOI_IO, TOI_VERBOSE, 0, "Setting current chain to %p.", -+ prio_chain_head); -+ toi_writer_posn.current_chain = prio_chain_head; -+ toi_message(TOI_IO, TOI_VERBOSE, 0, "Leaving extent state goto start."); -+} -+ -+/** -+ * toi_extent_state_save - save state of the iterator -+ * @state: Current state of the chain -+ * @saved_state: Iterator to populate -+ * -+ * Given a state and a struct hibernate_extent_state_store, save the current -+ * position in a format that can be used with relocated chains (at -+ * resume time). -+ **/ -+void toi_extent_state_save(int slot) -+{ -+ struct toi_bdev_info *cur_chain = prio_chain_head; -+ struct hibernate_extent *extent; -+ struct hibernate_extent_saved_state *chain_state; -+ int i = 0; -+ -+ toi_message(TOI_IO, TOI_VERBOSE, 0, "toi_extent_state_save, slot %d.", -+ slot); -+ -+ if (!toi_writer_posn.current_chain) { -+ toi_message(TOI_IO, TOI_VERBOSE, 0, "No current chain => " -+ "chain_num = -1."); -+ toi_writer_posn.saved_chain_number[slot] = -1; -+ return; -+ } -+ -+ while (cur_chain) { -+ i++; -+ toi_message(TOI_IO, TOI_VERBOSE, 0, "Saving chain %d (%p) " -+ "state, slot %d.", i, cur_chain, slot); -+ -+ chain_state = &cur_chain->saved_state[slot]; -+ -+ chain_state->offset = cur_chain->blocks.current_offset; -+ -+ if (toi_writer_posn.current_chain == cur_chain) { -+ toi_writer_posn.saved_chain_number[slot] = i; -+ toi_message(TOI_IO, TOI_VERBOSE, 0, "This is the chain " -+ "we were on => chain_num is %d.", i); -+ } -+ -+ if (!cur_chain->blocks.current_extent) { -+ chain_state->extent_num = 0; -+ toi_message(TOI_IO, TOI_VERBOSE, 0, "No current extent " -+ "for this chain => extent_num %d is 0.", -+ i); -+ cur_chain = cur_chain->next; -+ continue; -+ } -+ -+ extent = cur_chain->blocks.first; -+ chain_state->extent_num = 1; -+ -+ while (extent != cur_chain->blocks.current_extent) { -+ chain_state->extent_num++; -+ extent = extent->next; -+ } -+ -+ toi_message(TOI_IO, TOI_VERBOSE, 0, "extent num %d is %d.", i, -+ chain_state->extent_num); -+ -+ cur_chain = cur_chain->next; -+ } -+ toi_message(TOI_IO, TOI_VERBOSE, 0, -+ "Completed saving extent state slot %d.", slot); -+} -+ -+/** -+ * toi_extent_state_restore - restore the position saved by extent_state_save -+ * @state: State to populate -+ * @saved_state: Iterator saved to restore -+ **/ -+void toi_extent_state_restore(int slot) -+{ -+ int i = 0; -+ struct toi_bdev_info *cur_chain = prio_chain_head; -+ struct hibernate_extent_saved_state *chain_state; -+ -+ toi_message(TOI_IO, TOI_VERBOSE, 0, -+ "toi_extent_state_restore - slot %d.", slot); -+ -+ if (toi_writer_posn.saved_chain_number[slot] == -1) { -+ toi_writer_posn.current_chain = NULL; -+ return; -+ } -+ -+ while (cur_chain) { -+ int posn; -+ int j; -+ i++; -+ toi_message(TOI_IO, TOI_VERBOSE, 0, "Restoring chain %d (%p) " -+ "state, slot %d.", i, cur_chain, slot); -+ -+ chain_state = &cur_chain->saved_state[slot]; -+ -+ posn = chain_state->extent_num; -+ -+ cur_chain->blocks.current_extent = cur_chain->blocks.first; -+ cur_chain->blocks.current_offset = chain_state->offset; -+ -+ if (i == toi_writer_posn.saved_chain_number[slot]) { -+ toi_writer_posn.current_chain = cur_chain; -+ toi_message(TOI_IO, TOI_VERBOSE, 0, -+ "Found current chain."); -+ } -+ -+ for (j = 0; j < 4; j++) -+ if (i == toi_writer_posn.saved_chain_number[j]) { -+ toi_writer_posn.saved_chain_ptr[j] = cur_chain; -+ toi_message(TOI_IO, TOI_VERBOSE, 0, -+ "Found saved chain ptr %d (%p) (offset" -+ " %d).", j, cur_chain, -+ cur_chain->saved_state[j].offset); -+ } -+ -+ if (posn) { -+ while (--posn) -+ cur_chain->blocks.current_extent = -+ cur_chain->blocks.current_extent->next; -+ } else -+ cur_chain->blocks.current_extent = NULL; -+ -+ cur_chain = cur_chain->next; -+ } -+ toi_message(TOI_IO, TOI_VERBOSE, 0, "Done."); -+ if (test_action_state(TOI_LOGALL)) -+ dump_block_chains(); -+} -+ -+/* -+ * Storage needed -+ * -+ * Returns amount of space in the image header required -+ * for the chain data. This ignores the links between -+ * pages, which we factor in when allocating the space. -+ */ -+int toi_bio_devinfo_storage_needed(void) -+{ -+ int result = sizeof(num_chains); -+ struct toi_bdev_info *chain = prio_chain_head; -+ -+ while (chain) { -+ result += metadata_size; -+ -+ /* Chain size */ -+ result += sizeof(int); -+ -+ /* Extents */ -+ result += (2 * sizeof(unsigned long) * -+ chain->blocks.num_extents); -+ -+ chain = chain->next; -+ } -+ -+ result += 4 * sizeof(int); -+ return result; -+} -+ -+static unsigned long chain_pages_used(struct toi_bdev_info *chain) -+{ -+ struct hibernate_extent *this = chain->blocks.first; -+ struct hibernate_extent_saved_state *state = &chain->saved_state[3]; -+ unsigned long size = 0; -+ int extent_idx = 1; -+ -+ if (!state->extent_num) { -+ if (!this) -+ return 0; -+ else -+ return chain->blocks.size; -+ } -+ -+ while (extent_idx < state->extent_num) { -+ size += (this->end - this->start + 1); -+ this = this->next; -+ extent_idx++; -+ } -+ -+ /* We didn't use the one we're sitting on, so don't count it */ -+ return size + state->offset - this->start; -+} -+ -+/** -+ * toi_serialise_extent_chain - write a chain in the image -+ * @chain: Chain to write. -+ **/ -+static int toi_serialise_extent_chain(struct toi_bdev_info *chain) -+{ -+ struct hibernate_extent *this; -+ int ret; -+ int i = 1; -+ -+ chain->pages_used = chain_pages_used(chain); -+ -+ if (test_action_state(TOI_LOGALL)) -+ dump_block_chains(); -+ toi_message(TOI_IO, TOI_VERBOSE, 0, "Serialising chain (dev_t %lx).", -+ chain->dev_t); -+ /* Device info - dev_t, prio, bmap_shift, blocks per page, positions */ -+ ret = toiActiveAllocator->rw_header_chunk(WRITE, &toi_blockwriter_ops, -+ (char *) &chain->uuid, metadata_size); -+ if (ret) -+ return ret; -+ -+ /* Num extents */ -+ ret = toiActiveAllocator->rw_header_chunk(WRITE, &toi_blockwriter_ops, -+ (char *) &chain->blocks.num_extents, sizeof(int)); -+ if (ret) -+ return ret; -+ -+ toi_message(TOI_IO, TOI_VERBOSE, 0, "%d extents.", -+ chain->blocks.num_extents); -+ -+ this = chain->blocks.first; -+ while (this) { -+ toi_message(TOI_IO, TOI_VERBOSE, 0, "Extent %d.", i); -+ ret = toiActiveAllocator->rw_header_chunk(WRITE, -+ &toi_blockwriter_ops, -+ (char *) this, 2 * sizeof(this->start)); -+ if (ret) -+ return ret; -+ this = this->next; -+ i++; -+ } -+ -+ return ret; -+} -+ -+int toi_serialise_extent_chains(void) -+{ -+ struct toi_bdev_info *this = prio_chain_head; -+ int result; -+ -+ /* Write the number of chains */ -+ toi_message(TOI_IO, TOI_VERBOSE, 0, "Write number of chains (%d)", -+ num_chains); -+ result = toiActiveAllocator->rw_header_chunk(WRITE, -+ &toi_blockwriter_ops, (char *) &num_chains, -+ sizeof(int)); -+ if (result) -+ return result; -+ -+ /* Then the chains themselves */ -+ while (this) { -+ result = toi_serialise_extent_chain(this); -+ if (result) -+ return result; -+ this = this->next; -+ } -+ -+ /* -+ * Finally, the chain we should be on at the start of each -+ * section. -+ */ -+ toi_message(TOI_IO, TOI_VERBOSE, 0, "Saved chain numbers."); -+ result = toiActiveAllocator->rw_header_chunk(WRITE, -+ &toi_blockwriter_ops, -+ (char *) &toi_writer_posn.saved_chain_number[0], -+ 4 * sizeof(int)); -+ -+ return result; -+} -+ -+int toi_register_storage_chain(struct toi_bdev_info *new) -+{ -+ toi_message(TOI_IO, TOI_VERBOSE, 0, "Inserting chain %p into list.", -+ new); -+ toi_insert_chain_in_prio_list(new); -+ return 0; -+} -+ -+static void free_bdev_info(struct toi_bdev_info *chain) -+{ -+ toi_message(TOI_IO, TOI_VERBOSE, 0, "Free chain %p.", chain); -+ -+ toi_message(TOI_IO, TOI_VERBOSE, 0, " - Block extents."); -+ toi_put_extent_chain(&chain->blocks); -+ -+ /* -+ * The allocator may need to do more than just free the chains -+ * (swap_free, for example). Don't call from boot kernel. -+ */ -+ toi_message(TOI_IO, TOI_VERBOSE, 0, " - Allocator extents."); -+ if (chain->allocator) -+ chain->allocator->bio_allocator_ops->free_storage(chain); -+ -+ /* -+ * Dropping out of reading atomic copy? Need to undo -+ * toi_open_by_devnum. -+ */ -+ toi_message(TOI_IO, TOI_VERBOSE, 0, " - Bdev."); -+ if (chain->bdev && !IS_ERR(chain->bdev) && -+ chain->bdev != resume_block_device && -+ chain->bdev != header_block_device && -+ test_toi_state(TOI_TRYING_TO_RESUME)) -+ toi_close_bdev(chain->bdev); -+ -+ /* Poison */ -+ toi_message(TOI_IO, TOI_VERBOSE, 0, " - Struct."); -+ toi_kfree(39, chain, sizeof(*chain)); -+ -+ if (prio_chain_head == chain) -+ prio_chain_head = NULL; -+ -+ num_chains--; -+} -+ -+void free_all_bdev_info(void) -+{ -+ struct toi_bdev_info *this = prio_chain_head; -+ -+ while (this) { -+ struct toi_bdev_info *next = this->next; -+ free_bdev_info(this); -+ this = next; -+ } -+ -+ memset((char *) &toi_writer_posn, 0, sizeof(toi_writer_posn)); -+ prio_chain_head = NULL; -+} -+ -+static void set_up_start_position(void) -+{ -+ toi_writer_posn.current_chain = prio_chain_head; -+ go_next_page(0, 0); -+} -+ -+/** -+ * toi_load_extent_chain - read back a chain saved in the image -+ * @chain: Chain to load -+ * -+ * The linked list of extents is reconstructed from the disk. chain will point -+ * to the first entry. -+ **/ -+int toi_load_extent_chain(int index, int *num_loaded) -+{ -+ struct toi_bdev_info *chain = toi_kzalloc(39, -+ sizeof(struct toi_bdev_info), GFP_ATOMIC); -+ struct hibernate_extent *this, *last = NULL; -+ int i, ret; -+ -+ toi_message(TOI_IO, TOI_VERBOSE, 0, "Loading extent chain %d.", index); -+ /* Get dev_t, prio, bmap_shift, blocks per page, positions */ -+ ret = toiActiveAllocator->rw_header_chunk_noreadahead(READ, NULL, -+ (char *) &chain->uuid, metadata_size); -+ -+ if (ret) { -+ printk(KERN_ERR "Failed to read the size of extent chain.\n"); -+ toi_kfree(39, chain, sizeof(*chain)); -+ return 1; -+ } -+ -+ toi_bkd.pages_used[index] = chain->pages_used; -+ -+ ret = toiActiveAllocator->rw_header_chunk_noreadahead(READ, NULL, -+ (char *) &chain->blocks.num_extents, sizeof(int)); -+ if (ret) { -+ printk(KERN_ERR "Failed to read the size of extent chain.\n"); -+ toi_kfree(39, chain, sizeof(*chain)); -+ return 1; -+ } -+ -+ toi_message(TOI_IO, TOI_VERBOSE, 0, "%d extents.", -+ chain->blocks.num_extents); -+ -+ for (i = 0; i < chain->blocks.num_extents; i++) { -+ toi_message(TOI_IO, TOI_VERBOSE, 0, "Extent %d.", i + 1); -+ -+ this = toi_kzalloc(2, sizeof(struct hibernate_extent), -+ TOI_ATOMIC_GFP); -+ if (!this) { -+ printk(KERN_INFO "Failed to allocate a new extent.\n"); -+ free_bdev_info(chain); -+ return -ENOMEM; -+ } -+ this->next = NULL; -+ /* Get the next page */ -+ ret = toiActiveAllocator->rw_header_chunk_noreadahead(READ, -+ NULL, (char *) this, 2 * sizeof(this->start)); -+ if (ret) { -+ printk(KERN_INFO "Failed to read an extent.\n"); -+ toi_kfree(2, this, sizeof(struct hibernate_extent)); -+ free_bdev_info(chain); -+ return 1; -+ } -+ -+ if (last) -+ last->next = this; -+ else { -+ char b1[32], b2[32], b3[32]; -+ /* -+ * Open the bdev -+ */ -+ toi_message(TOI_IO, TOI_VERBOSE, 0, -+ "Chain dev_t is %s. Resume dev t is %s. Header" -+ " bdev_t is %s.\n", -+ format_dev_t(b1, chain->dev_t), -+ format_dev_t(b2, resume_dev_t), -+ format_dev_t(b3, toi_sig_data->header_dev_t)); -+ -+ if (chain->dev_t == resume_dev_t) -+ chain->bdev = resume_block_device; -+ else if (chain->dev_t == toi_sig_data->header_dev_t) -+ chain->bdev = header_block_device; -+ else { -+ chain->bdev = toi_open_bdev(chain->uuid, -+ chain->dev_t, 1); -+ if (IS_ERR(chain->bdev)) { -+ free_bdev_info(chain); -+ return -ENODEV; -+ } -+ } -+ -+ toi_message(TOI_IO, TOI_VERBOSE, 0, "Chain bmap shift " -+ "is %d and blocks per page is %d.", -+ chain->bmap_shift, -+ chain->blocks_per_page); -+ -+ chain->blocks.first = this; -+ -+ /* -+ * Couldn't do this earlier, but can't do -+ * goto_start now - we may have already used blocks -+ * in the first chain. -+ */ -+ chain->blocks.current_extent = this; -+ chain->blocks.current_offset = this->start; -+ -+ /* -+ * Can't wait until we've read the whole chain -+ * before we insert it in the list. We might need -+ * this chain to read the next page in the header -+ */ -+ toi_insert_chain_in_prio_list(chain); -+ } -+ -+ /* -+ * We have to wait until 2 extents are loaded before setting up -+ * properly because if the first extent has only one page, we -+ * will need to put the position on the second extent. Sounds -+ * obvious, but it wasn't! -+ */ -+ (*num_loaded)++; -+ if ((*num_loaded) == 2) -+ set_up_start_position(); -+ last = this; -+ } -+ -+ /* -+ * Shouldn't get empty chains, but it's not impossible. Link them in so -+ * they get freed properly later. -+ */ -+ if (!chain->blocks.num_extents) -+ toi_insert_chain_in_prio_list(chain); -+ -+ if (!chain->blocks.current_extent) { -+ chain->blocks.current_extent = chain->blocks.first; -+ if (chain->blocks.current_extent) -+ chain->blocks.current_offset = -+ chain->blocks.current_extent->start; -+ } -+ return 0; -+} -+ -+int toi_load_extent_chains(void) -+{ -+ int result; -+ int to_load; -+ int i; -+ int extents_loaded = 0; -+ -+ result = toiActiveAllocator->rw_header_chunk_noreadahead(READ, NULL, -+ (char *) &to_load, -+ sizeof(int)); -+ if (result) -+ return result; -+ toi_message(TOI_IO, TOI_VERBOSE, 0, "%d chains to read.", to_load); -+ -+ for (i = 0; i < to_load; i++) { -+ toi_message(TOI_IO, TOI_VERBOSE, 0, " >> Loading chain %d/%d.", -+ i, to_load); -+ result = toi_load_extent_chain(i, &extents_loaded); -+ if (result) -+ return result; -+ } -+ -+ /* If we never got to a second extent, we still need to do this. */ -+ if (extents_loaded == 1) -+ set_up_start_position(); -+ -+ toi_message(TOI_IO, TOI_VERBOSE, 0, "Save chain numbers."); -+ result = toiActiveAllocator->rw_header_chunk_noreadahead(READ, -+ &toi_blockwriter_ops, -+ (char *) &toi_writer_posn.saved_chain_number[0], -+ 4 * sizeof(int)); -+ -+ return result; -+} -+ -+static int toi_end_of_stream(int writing, int section_barrier) -+{ -+ struct toi_bdev_info *cur_chain = toi_writer_posn.current_chain; -+ int compare_to = next_section[current_stream]; -+ struct toi_bdev_info *compare_chain = -+ toi_writer_posn.saved_chain_ptr[compare_to]; -+ int compare_offset = compare_chain ? -+ compare_chain->saved_state[compare_to].offset : 0; -+ -+ if (!section_barrier) -+ return 0; -+ -+ if (!cur_chain) -+ return 1; -+ -+ if (cur_chain == compare_chain && -+ cur_chain->blocks.current_offset == compare_offset) { -+ if (writing) { -+ if (!current_stream) { -+ debug_broken_header(); -+ return 1; -+ } -+ } else { -+ more_readahead = 0; -+ toi_message(TOI_IO, TOI_VERBOSE, 0, -+ "Reached the end of stream %d " -+ "(not an error).", current_stream); -+ return 1; -+ } -+ } -+ -+ return 0; -+} -+ -+/** -+ * go_next_page - skip blocks to the start of the next page -+ * @writing: Whether we're reading or writing the image. -+ * -+ * Go forward one page. -+ **/ -+int go_next_page(int writing, int section_barrier) -+{ -+ struct toi_bdev_info *cur_chain = toi_writer_posn.current_chain; -+ int max = cur_chain ? cur_chain->blocks_per_page : 1; -+ -+ /* Nope. Go foward a page - or maybe two. Don't stripe the header, -+ * so that bad fragmentation doesn't put the extent data containing -+ * the location of the second page out of the first header page. -+ */ -+ if (toi_extent_state_next(max, current_stream)) { -+ /* Don't complain if readahead falls off the end */ -+ if (writing && section_barrier) { -+ toi_message(TOI_IO, TOI_VERBOSE, 0, "Extent state eof. " -+ "Expected compression ratio too optimistic?"); -+ if (test_action_state(TOI_LOGALL)) -+ dump_block_chains(); -+ } -+ toi_message(TOI_IO, TOI_VERBOSE, 0, "Ran out of extents to " -+ "read/write. (Not necessarily a fatal error."); -+ return -ENOSPC; -+ } -+ -+ return 0; -+} -+ -+int devices_of_same_priority(struct toi_bdev_info *this) -+{ -+ struct toi_bdev_info *check = prio_chain_head; -+ int i = 0; -+ -+ while (check) { -+ if (check->prio == this->prio) -+ i++; -+ check = check->next; -+ } -+ -+ return i; -+} -+ -+/** -+ * toi_bio_rw_page - do i/o on the next disk page in the image -+ * @writing: Whether reading or writing. -+ * @page: Page to do i/o on. -+ * @is_readahead: Whether we're doing readahead -+ * @free_group: The group used in allocating the page -+ * -+ * Submit a page for reading or writing, possibly readahead. -+ * Pass the group used in allocating the page as well, as it should -+ * be freed on completion of the bio if we're writing the page. -+ **/ -+int toi_bio_rw_page(int writing, struct page *page, -+ int is_readahead, int free_group) -+{ -+ int result = toi_end_of_stream(writing, 1); -+ struct toi_bdev_info *dev_info = toi_writer_posn.current_chain; -+ -+ if (result) { -+ toi_message(TOI_IO, TOI_VERBOSE, 0, "Seeking to read/write " -+ "another page when stream has ended."); -+ return -ENOSPC; -+ } -+ -+ toi_message(TOI_IO, TOI_VERBOSE, 0, -+ "%sing device %lx, sector %d << %d.", -+ writing ? "Writ" : "Read", -+ dev_info->bdev, dev_info->blocks.current_offset, -+ dev_info->bmap_shift); -+ -+ result = toi_do_io(writing, dev_info->bdev, -+ dev_info->blocks.current_offset << dev_info->bmap_shift, -+ page, is_readahead, 0, free_group); -+ -+ /* Ignore the result here - will check end of stream if come in again */ -+ go_next_page(writing, 1); -+ -+ if (result) -+ printk(KERN_ERR "toi_do_io returned %d.\n", result); -+ return result; -+} -+ -+dev_t get_header_dev_t(void) -+{ -+ return prio_chain_head->dev_t; -+} -+ -+struct block_device *get_header_bdev(void) -+{ -+ return prio_chain_head->bdev; -+} -+ -+unsigned long get_headerblock(void) -+{ -+ return prio_chain_head->blocks.first->start << -+ prio_chain_head->bmap_shift; -+} -+ -+int get_main_pool_phys_params(void) -+{ -+ struct toi_bdev_info *this = prio_chain_head; -+ int result; -+ -+ while (this) { -+ result = this->allocator->bio_allocator_ops->bmap(this); -+ if (result) -+ return result; -+ this = this->next; -+ } -+ -+ return 0; -+} -+ -+static int apply_header_reservation(void) -+{ -+ int i; -+ -+ if (!header_pages_reserved) { -+ toi_message(TOI_IO, TOI_VERBOSE, 0, -+ "No header pages reserved at the moment."); -+ return 0; -+ } -+ -+ toi_message(TOI_IO, TOI_VERBOSE, 0, "Applying header reservation."); -+ -+ /* Apply header space reservation */ -+ toi_extent_state_goto_start(); -+ -+ for (i = 0; i < header_pages_reserved; i++) -+ if (go_next_page(1, 0)) -+ return -ENOSPC; -+ -+ /* The end of header pages will be the start of pageset 2 */ -+ toi_extent_state_save(2); -+ -+ toi_message(TOI_IO, TOI_VERBOSE, 0, -+ "Finished applying header reservation."); -+ return 0; -+} -+ -+static int toi_bio_register_storage(void) -+{ -+ int result = 0; -+ struct toi_module_ops *this_module; -+ -+ list_for_each_entry(this_module, &toi_modules, module_list) { -+ if (!this_module->enabled || -+ this_module->type != BIO_ALLOCATOR_MODULE) -+ continue; -+ toi_message(TOI_IO, TOI_VERBOSE, 0, -+ "Registering storage from %s.", -+ this_module->name); -+ result = this_module->bio_allocator_ops->register_storage(); -+ if (result) -+ break; -+ } -+ -+ return result; -+} -+ -+int toi_bio_allocate_storage(unsigned long request) -+{ -+ struct toi_bdev_info *chain = prio_chain_head; -+ unsigned long to_get = request; -+ unsigned long extra_pages, needed; -+ int no_free = 0; -+ -+ if (!chain) { -+ int result = toi_bio_register_storage(); -+ toi_message(TOI_IO, TOI_VERBOSE, 0, "toi_bio_allocate_storage: " -+ "Registering storage."); -+ if (result) -+ return 0; -+ chain = prio_chain_head; -+ if (!chain) { -+ printk("TuxOnIce: No storage was registered.\n"); -+ return 0; -+ } -+ } -+ -+ toi_message(TOI_IO, TOI_VERBOSE, 0, "toi_bio_allocate_storage: " -+ "Request is %lu pages.", request); -+ extra_pages = DIV_ROUND_UP(request * (sizeof(unsigned long) -+ + sizeof(int)), PAGE_SIZE); -+ needed = request + extra_pages + header_pages_reserved; -+ toi_message(TOI_IO, TOI_VERBOSE, 0, "Adding %lu extra pages and %lu " -+ "for header => %lu.", -+ extra_pages, header_pages_reserved, needed); -+ toi_message(TOI_IO, TOI_VERBOSE, 0, "Already allocated %lu pages.", -+ raw_pages_allocd); -+ -+ to_get = needed > raw_pages_allocd ? needed - raw_pages_allocd : 0; -+ toi_message(TOI_IO, TOI_VERBOSE, 0, "Need to get %lu pages.", to_get); -+ -+ if (!to_get) -+ return apply_header_reservation(); -+ -+ while (to_get && chain) { -+ int num_group = devices_of_same_priority(chain); -+ int divisor = num_group - no_free; -+ int i; -+ unsigned long portion = DIV_ROUND_UP(to_get, divisor); -+ unsigned long got = 0; -+ unsigned long got_this_round = 0; -+ struct toi_bdev_info *top = chain; -+ -+ toi_message(TOI_IO, TOI_VERBOSE, 0, -+ " Start of loop. To get is %lu. Divisor is %d.", -+ to_get, divisor); -+ no_free = 0; -+ -+ /* -+ * We're aiming to spread the allocated storage as evenly -+ * as possible, but we also want to get all the storage we -+ * can off this priority. -+ */ -+ for (i = 0; i < num_group; i++) { -+ struct toi_bio_allocator_ops *ops = -+ chain->allocator->bio_allocator_ops; -+ toi_message(TOI_IO, TOI_VERBOSE, 0, -+ " Asking for %lu pages from chain %p.", -+ portion, chain); -+ got = ops->allocate_storage(chain, portion); -+ toi_message(TOI_IO, TOI_VERBOSE, 0, -+ " Got %lu pages from allocator %p.", -+ got, chain); -+ if (!got) -+ no_free++; -+ got_this_round += got; -+ chain = chain->next; -+ } -+ toi_message(TOI_IO, TOI_VERBOSE, 0, " Loop finished. Got a " -+ "total of %lu pages from %d allocators.", -+ got_this_round, divisor - no_free); -+ -+ raw_pages_allocd += got_this_round; -+ to_get = needed > raw_pages_allocd ? needed - raw_pages_allocd : -+ 0; -+ -+ /* -+ * If we got anything from chains of this priority and we -+ * still have storage to allocate, go over this priority -+ * again. -+ */ -+ if (got_this_round && to_get) -+ chain = top; -+ else -+ no_free = 0; -+ } -+ -+ toi_message(TOI_IO, TOI_VERBOSE, 0, "Finished allocating. Calling " -+ "get_main_pool_phys_params"); -+ /* Now let swap allocator bmap the pages */ -+ get_main_pool_phys_params(); -+ -+ toi_message(TOI_IO, TOI_VERBOSE, 0, "Done. Reserving header."); -+ return apply_header_reservation(); -+} -+ -+void toi_bio_chains_post_atomic(struct toi_boot_kernel_data *bkd) -+{ -+ int i = 0; -+ struct toi_bdev_info *cur_chain = prio_chain_head; -+ -+ while (cur_chain) { -+ cur_chain->pages_used = bkd->pages_used[i]; -+ cur_chain = cur_chain->next; -+ i++; -+ } -+} -+ -+int toi_bio_chains_debug_info(char *buffer, int size) -+{ -+ /* Show what we actually used */ -+ struct toi_bdev_info *cur_chain = prio_chain_head; -+ int len = 0; -+ -+ while (cur_chain) { -+ len += scnprintf(buffer + len, size - len, " Used %lu pages " -+ "from %s.\n", cur_chain->pages_used, -+ cur_chain->name); -+ cur_chain = cur_chain->next; -+ } -+ -+ return len; -+} -diff --git a/kernel/power/tuxonice_bio_core.c b/kernel/power/tuxonice_bio_core.c -new file mode 100644 -index 0000000..b8ae996 ---- /dev/null -+++ b/kernel/power/tuxonice_bio_core.c -@@ -0,0 +1,1810 @@ -+/* -+ * kernel/power/tuxonice_bio.c -+ * -+ * Copyright (C) 2004-2010 Nigel Cunningham (nigel at tuxonice net) -+ * -+ * Distributed under GPLv2. -+ * -+ * This file contains block io functions for TuxOnIce. These are -+ * used by the swapwriter and it is planned that they will also -+ * be used by the NFSwriter. -+ * -+ */ -+ -+#include -+#include -+#include -+#include -+#include -+#include -+ -+#include "tuxonice.h" -+#include "tuxonice_sysfs.h" -+#include "tuxonice_modules.h" -+#include "tuxonice_prepare_image.h" -+#include "tuxonice_bio.h" -+#include "tuxonice_ui.h" -+#include "tuxonice_alloc.h" -+#include "tuxonice_io.h" -+#include "tuxonice_builtin.h" -+#include "tuxonice_bio_internal.h" -+ -+#define MEMORY_ONLY 1 -+#define THROTTLE_WAIT 2 -+ -+/* #define MEASURE_MUTEX_CONTENTION */ -+#ifndef MEASURE_MUTEX_CONTENTION -+#define my_mutex_lock(index, the_lock) mutex_lock(the_lock) -+#define my_mutex_unlock(index, the_lock) mutex_unlock(the_lock) -+#else -+unsigned long mutex_times[2][2][NR_CPUS]; -+#define my_mutex_lock(index, the_lock) do { \ -+ int have_mutex; \ -+ have_mutex = mutex_trylock(the_lock); \ -+ if (!have_mutex) { \ -+ mutex_lock(the_lock); \ -+ mutex_times[index][0][smp_processor_id()]++; \ -+ } else { \ -+ mutex_times[index][1][smp_processor_id()]++; \ -+ } -+ -+#define my_mutex_unlock(index, the_lock) \ -+ mutex_unlock(the_lock); \ -+} while (0) -+#endif -+ -+static int page_idx, reset_idx; -+ -+static int target_outstanding_io = 1024; -+static int max_outstanding_writes, max_outstanding_reads; -+ -+static struct page *bio_queue_head, *bio_queue_tail; -+static atomic_t toi_bio_queue_size; -+static DEFINE_SPINLOCK(bio_queue_lock); -+ -+static int free_mem_throttle, throughput_throttle; -+int more_readahead = 1; -+static struct page *readahead_list_head, *readahead_list_tail; -+ -+static struct page *waiting_on; -+ -+static atomic_t toi_io_in_progress, toi_io_done; -+static DECLARE_WAIT_QUEUE_HEAD(num_in_progress_wait); -+ -+int current_stream; -+/* Not static, so that the allocators can setup and complete -+ * writing the header */ -+char *toi_writer_buffer; -+int toi_writer_buffer_posn; -+ -+static DEFINE_MUTEX(toi_bio_mutex); -+static DEFINE_MUTEX(toi_bio_readahead_mutex); -+ -+static struct task_struct *toi_queue_flusher; -+static int toi_bio_queue_flush_pages(int dedicated_thread); -+ -+struct toi_module_ops toi_blockwriter_ops; -+ -+#define TOTAL_OUTSTANDING_IO (atomic_read(&toi_io_in_progress) + \ -+ atomic_read(&toi_bio_queue_size)) -+ -+unsigned long raw_pages_allocd, header_pages_reserved; -+ -+/** -+ * set_free_mem_throttle - set the point where we pause to avoid oom. -+ * -+ * Initially, this value is zero, but when we first fail to allocate memory, -+ * we set it (plus a buffer) and thereafter throttle i/o once that limit is -+ * reached. -+ **/ -+static void set_free_mem_throttle(void) -+{ -+ int new_throttle = nr_unallocated_buffer_pages() + 256; -+ -+ if (new_throttle > free_mem_throttle) -+ free_mem_throttle = new_throttle; -+} -+ -+#define NUM_REASONS 7 -+static atomic_t reasons[NUM_REASONS]; -+static char *reason_name[NUM_REASONS] = { -+ "readahead not ready", -+ "bio allocation", -+ "synchronous I/O", -+ "toi_bio_get_new_page", -+ "memory low", -+ "readahead buffer allocation", -+ "throughput_throttle", -+}; -+ -+/* User Specified Parameters. */ -+unsigned long resume_firstblock; -+dev_t resume_dev_t; -+struct block_device *resume_block_device; -+static atomic_t resume_bdev_open_count; -+ -+struct block_device *header_block_device; -+ -+/** -+ * toi_open_bdev: Open a bdev at resume time. -+ * -+ * index: The swap index. May be MAX_SWAPFILES for the resume_dev_t -+ * (the user can have resume= pointing at a swap partition/file that isn't -+ * swapon'd when they hibernate. MAX_SWAPFILES+1 for the first page of the -+ * header. It will be from a swap partition that was enabled when we hibernated, -+ * but we don't know it's real index until we read that first page. -+ * dev_t: The device major/minor. -+ * display_errs: Whether to try to do this quietly. -+ * -+ * We stored a dev_t in the image header. Open the matching device without -+ * requiring /dev/ in most cases and record the details needed -+ * to close it later and avoid duplicating work. -+ */ -+struct block_device *toi_open_bdev(char *uuid, dev_t default_device, -+ int display_errs) -+{ -+ struct block_device *bdev; -+ dev_t device = default_device; -+ char buf[32]; -+ -+ if (uuid) { -+ device = blk_lookup_uuid(uuid); -+ if (!device) { -+ device = default_device; -+ printk(KERN_DEBUG "Unable to resolve uuid. Falling back" -+ " to dev_t.\n"); -+ } else -+ printk(KERN_DEBUG "Resolved uuid to device %s.\n", -+ format_dev_t(buf, device)); -+ } -+ -+ if (!device) { -+ printk(KERN_ERR "TuxOnIce attempting to open a " -+ "blank dev_t!\n"); -+ dump_stack(); -+ return NULL; -+ } -+ bdev = toi_open_by_devnum(device); -+ -+ if (IS_ERR(bdev) || !bdev) { -+ if (display_errs) -+ toi_early_boot_message(1, TOI_CONTINUE_REQ, -+ "Failed to get access to block device " -+ "\"%x\" (error %d).\n Maybe you need " -+ "to run mknod and/or lvmsetup in an " -+ "initrd/ramfs?", device, bdev); -+ return ERR_PTR(-EINVAL); -+ } -+ toi_message(TOI_IO, TOI_VERBOSE, 0, -+ "TuxOnIce got bdev %p for dev_t %x.", -+ bdev, device); -+ -+ return bdev; -+} -+ -+static void toi_bio_reserve_header_space(unsigned long request) -+{ -+ header_pages_reserved = request; -+} -+ -+/** -+ * do_bio_wait - wait for some TuxOnIce I/O to complete -+ * @reason: The array index of the reason we're waiting. -+ * -+ * Wait for a particular page of I/O if we're after a particular page. -+ * If we're not after a particular page, wait instead for all in flight -+ * I/O to be completed or for us to have enough free memory to be able -+ * to submit more I/O. -+ * -+ * If we wait, we also update our statistics regarding why we waited. -+ **/ -+static void do_bio_wait(int reason) -+{ -+ struct page *was_waiting_on = waiting_on; -+ -+ /* On SMP, waiting_on can be reset, so we make a copy */ -+ if (was_waiting_on) { -+ wait_on_page_locked(was_waiting_on); -+ atomic_inc(&reasons[reason]); -+ } else { -+ atomic_inc(&reasons[reason]); -+ -+ wait_event(num_in_progress_wait, -+ !atomic_read(&toi_io_in_progress) || -+ nr_unallocated_buffer_pages() > free_mem_throttle); -+ } -+} -+ -+/** -+ * throttle_if_needed - wait for I/O completion if throttle points are reached -+ * @flags: What to check and how to act. -+ * -+ * Check whether we need to wait for some I/O to complete. We always check -+ * whether we have enough memory available, but may also (depending upon -+ * @reason) check if the throughput throttle limit has been reached. -+ **/ -+static int throttle_if_needed(int flags) -+{ -+ int free_pages = nr_unallocated_buffer_pages(); -+ -+ /* Getting low on memory and I/O is in progress? */ -+ while (unlikely(free_pages < free_mem_throttle) && -+ atomic_read(&toi_io_in_progress) && -+ !test_result_state(TOI_ABORTED)) { -+ if (!(flags & THROTTLE_WAIT)) -+ return -ENOMEM; -+ do_bio_wait(4); -+ free_pages = nr_unallocated_buffer_pages(); -+ } -+ -+ while (!(flags & MEMORY_ONLY) && throughput_throttle && -+ TOTAL_OUTSTANDING_IO >= throughput_throttle && -+ !test_result_state(TOI_ABORTED)) { -+ int result = toi_bio_queue_flush_pages(0); -+ if (result) -+ return result; -+ atomic_inc(&reasons[6]); -+ wait_event(num_in_progress_wait, -+ !atomic_read(&toi_io_in_progress) || -+ TOTAL_OUTSTANDING_IO < throughput_throttle); -+ } -+ -+ return 0; -+} -+ -+/** -+ * update_throughput_throttle - update the raw throughput throttle -+ * @jif_index: The number of times this function has been called. -+ * -+ * This function is called four times per second by the core, and used to limit -+ * the amount of I/O we submit at once, spreading out our waiting through the -+ * whole job and letting userui get an opportunity to do its work. -+ * -+ * We don't start limiting I/O until 1/4s has gone so that we get a -+ * decent sample for our initial limit, and keep updating it because -+ * throughput may vary (on rotating media, eg) with our block number. -+ * -+ * We throttle to 1/10s worth of I/O. -+ **/ -+static void update_throughput_throttle(int jif_index) -+{ -+ int done = atomic_read(&toi_io_done); -+ throughput_throttle = done * 2 / 5 / jif_index; -+} -+ -+/** -+ * toi_finish_all_io - wait for all outstanding i/o to complete -+ * -+ * Flush any queued but unsubmitted I/O and wait for it all to complete. -+ **/ -+static int toi_finish_all_io(void) -+{ -+ int result = toi_bio_queue_flush_pages(0); -+ wait_event(num_in_progress_wait, !TOTAL_OUTSTANDING_IO); -+ return result; -+} -+ -+/** -+ * toi_end_bio - bio completion function. -+ * @bio: bio that has completed. -+ * @err: Error value. Yes, like end_swap_bio_read, we ignore it. -+ * -+ * Function called by the block driver from interrupt context when I/O is -+ * completed. If we were writing the page, we want to free it and will have -+ * set bio->bi_private to the parameter we should use in telling the page -+ * allocation accounting code what the page was allocated for. If we're -+ * reading the page, it will be in the singly linked list made from -+ * page->private pointers. -+ **/ -+static void toi_end_bio(struct bio *bio, int err) -+{ -+ struct page *page = bio->bi_io_vec[0].bv_page; -+ -+ BUG_ON(!test_bit(BIO_UPTODATE, &bio->bi_flags)); -+ -+ unlock_page(page); -+ bio_put(bio); -+ -+ if (waiting_on == page) -+ waiting_on = NULL; -+ -+ put_page(page); -+ -+ if (bio->bi_private) -+ toi__free_page((int) ((unsigned long) bio->bi_private) , page); -+ -+ bio_put(bio); -+ -+ atomic_dec(&toi_io_in_progress); -+ atomic_inc(&toi_io_done); -+ -+ wake_up(&num_in_progress_wait); -+} -+ -+/** -+ * submit - submit BIO request -+ * @writing: READ or WRITE. -+ * @dev: The block device we're using. -+ * @first_block: The first sector we're using. -+ * @page: The page being used for I/O. -+ * @free_group: If writing, the group that was used in allocating the page -+ * and which will be used in freeing the page from the completion -+ * routine. -+ * -+ * Based on Patrick Mochell's pmdisk code from long ago: "Straight from the -+ * textbook - allocate and initialize the bio. If we're writing, make sure -+ * the page is marked as dirty. Then submit it and carry on." -+ * -+ * If we're just testing the speed of our own code, we fake having done all -+ * the hard work and all toi_end_bio immediately. -+ **/ -+static int submit(int writing, struct block_device *dev, sector_t first_block, -+ struct page *page, int free_group) -+{ -+ struct bio *bio = NULL; -+ int cur_outstanding_io, result; -+ -+ /* -+ * Shouldn't throttle if reading - can deadlock in the single -+ * threaded case as pages are only freed when we use the -+ * readahead. -+ */ -+ if (writing) { -+ result = throttle_if_needed(MEMORY_ONLY | THROTTLE_WAIT); -+ if (result) -+ return result; -+ } -+ -+ while (!bio) { -+ bio = bio_alloc(TOI_ATOMIC_GFP, 1); -+ if (!bio) { -+ set_free_mem_throttle(); -+ do_bio_wait(1); -+ } -+ } -+ -+ bio->bi_bdev = dev; -+ bio->bi_sector = first_block; -+ bio->bi_private = (void *) ((unsigned long) free_group); -+ bio->bi_end_io = toi_end_bio; -+ -+ if (bio_add_page(bio, page, PAGE_SIZE, 0) < PAGE_SIZE) { -+ printk(KERN_DEBUG "ERROR: adding page to bio at %lld\n", -+ (unsigned long long) first_block); -+ bio_put(bio); -+ return -EFAULT; -+ } -+ -+ bio_get(bio); -+ -+ cur_outstanding_io = atomic_add_return(1, &toi_io_in_progress); -+ if (writing) { -+ if (cur_outstanding_io > max_outstanding_writes) -+ max_outstanding_writes = cur_outstanding_io; -+ } else { -+ if (cur_outstanding_io > max_outstanding_reads) -+ max_outstanding_reads = cur_outstanding_io; -+ } -+ -+ -+ if (unlikely(test_action_state(TOI_TEST_BIO))) { -+ /* Fake having done the hard work */ -+ set_bit(BIO_UPTODATE, &bio->bi_flags); -+ toi_end_bio(bio, 0); -+ } else -+ submit_bio(writing | (1 << BIO_RW_SYNCIO) | -+ (1 << BIO_RW_TUXONICE) | -+ (1 << BIO_RW_UNPLUG), bio); -+ -+ return 0; -+} -+ -+/** -+ * toi_do_io: Prepare to do some i/o on a page and submit or batch it. -+ * -+ * @writing: Whether reading or writing. -+ * @bdev: The block device which we're using. -+ * @block0: The first sector we're reading or writing. -+ * @page: The page on which I/O is being done. -+ * @readahead_index: If doing readahead, the index (reset this flag when done). -+ * @syncio: Whether the i/o is being done synchronously. -+ * -+ * Prepare and start a read or write operation. -+ * -+ * Note that we always work with our own page. If writing, we might be given a -+ * compression buffer that will immediately be used to start compressing the -+ * next page. For reading, we do readahead and therefore don't know the final -+ * address where the data needs to go. -+ **/ -+int toi_do_io(int writing, struct block_device *bdev, long block0, -+ struct page *page, int is_readahead, int syncio, int free_group) -+{ -+ page->private = 0; -+ -+ /* Do here so we don't race against toi_bio_get_next_page_read */ -+ lock_page(page); -+ -+ if (is_readahead) { -+ if (readahead_list_head) -+ readahead_list_tail->private = (unsigned long) page; -+ else -+ readahead_list_head = page; -+ -+ readahead_list_tail = page; -+ } -+ -+ /* Done before submitting to avoid races. */ -+ if (syncio) -+ waiting_on = page; -+ -+ /* Submit the page */ -+ get_page(page); -+ -+ if (submit(writing, bdev, block0, page, free_group)) -+ return -EFAULT; -+ -+ if (syncio) -+ do_bio_wait(2); -+ -+ return 0; -+} -+ -+/** -+ * toi_bdev_page_io - simpler interface to do directly i/o on a single page -+ * @writing: Whether reading or writing. -+ * @bdev: Block device on which we're operating. -+ * @pos: Sector at which page to read or write starts. -+ * @page: Page to be read/written. -+ * -+ * A simple interface to submit a page of I/O and wait for its completion. -+ * The caller must free the page used. -+ **/ -+static int toi_bdev_page_io(int writing, struct block_device *bdev, -+ long pos, struct page *page) -+{ -+ return toi_do_io(writing, bdev, pos, page, 0, 1, 0); -+} -+ -+/** -+ * toi_bio_memory_needed - report the amount of memory needed for block i/o -+ * -+ * We want to have at least enough memory so as to have target_outstanding_io -+ * or more transactions on the fly at once. If we can do more, fine. -+ **/ -+static int toi_bio_memory_needed(void) -+{ -+ return target_outstanding_io * (PAGE_SIZE + sizeof(struct request) + -+ sizeof(struct bio)); -+} -+ -+/** -+ * toi_bio_print_debug_stats - put out debugging info in the buffer provided -+ * @buffer: A buffer of size @size into which text should be placed. -+ * @size: The size of @buffer. -+ * -+ * Fill a buffer with debugging info. This is used for both our debug_info sysfs -+ * entry and for recording the same info in dmesg. -+ **/ -+static int toi_bio_print_debug_stats(char *buffer, int size) -+{ -+ int len = 0; -+ -+ if (toiActiveAllocator != &toi_blockwriter_ops) { -+ len = scnprintf(buffer, size, -+ "- Block I/O inactive.\n"); -+ return len; -+ } -+ -+ len = scnprintf(buffer, size, "- Block I/O active.\n"); -+ -+ len += toi_bio_chains_debug_info(buffer + len, size - len); -+ -+ len += scnprintf(buffer + len, size - len, -+ "- Max outstanding reads %d. Max writes %d.\n", -+ max_outstanding_reads, max_outstanding_writes); -+ -+ len += scnprintf(buffer + len, size - len, -+ " Memory_needed: %d x (%lu + %u + %u) = %d bytes.\n", -+ target_outstanding_io, -+ PAGE_SIZE, (unsigned int) sizeof(struct request), -+ (unsigned int) sizeof(struct bio), toi_bio_memory_needed()); -+ -+#ifdef MEASURE_MUTEX_CONTENTION -+ { -+ int i; -+ -+ len += scnprintf(buffer + len, size - len, -+ " Mutex contention while reading:\n Contended Free\n"); -+ -+ for_each_online_cpu(i) -+ len += scnprintf(buffer + len, size - len, -+ " %9lu %9lu\n", -+ mutex_times[0][0][i], mutex_times[0][1][i]); -+ -+ len += scnprintf(buffer + len, size - len, -+ " Mutex contention while writing:\n Contended Free\n"); -+ -+ for_each_online_cpu(i) -+ len += scnprintf(buffer + len, size - len, -+ " %9lu %9lu\n", -+ mutex_times[1][0][i], mutex_times[1][1][i]); -+ -+ } -+#endif -+ -+ return len + scnprintf(buffer + len, size - len, -+ " Free mem throttle point reached %d.\n", free_mem_throttle); -+} -+ -+static int total_header_bytes; -+static int unowned; -+ -+void debug_broken_header(void) -+{ -+ printk(KERN_DEBUG "Image header too big for size allocated!\n"); -+ print_toi_header_storage_for_modules(); -+ printk(KERN_DEBUG "Page flags : %d.\n", toi_pageflags_space_needed()); -+ printk(KERN_DEBUG "toi_header : %zu.\n", sizeof(struct toi_header)); -+ printk(KERN_DEBUG "Total unowned : %d.\n", unowned); -+ printk(KERN_DEBUG "Total used : %d (%ld pages).\n", total_header_bytes, -+ DIV_ROUND_UP(total_header_bytes, PAGE_SIZE)); -+ printk(KERN_DEBUG "Space needed now : %ld.\n", -+ get_header_storage_needed()); -+ dump_block_chains(); -+ abort_hibernate(TOI_HEADER_TOO_BIG, "Header reservation too small."); -+} -+ -+/** -+ * toi_rw_init - prepare to read or write a stream in the image -+ * @writing: Whether reading or writing. -+ * @stream number: Section of the image being processed. -+ * -+ * Prepare to read or write a section ('stream') in the image. -+ **/ -+static int toi_rw_init(int writing, int stream_number) -+{ -+ if (stream_number) -+ toi_extent_state_restore(stream_number); -+ else -+ toi_extent_state_goto_start(); -+ -+ if (writing) { -+ reset_idx = 0; -+ if (!current_stream) -+ page_idx = 0; -+ } else { -+ reset_idx = 1; -+ } -+ -+ atomic_set(&toi_io_done, 0); -+ if (!toi_writer_buffer) -+ toi_writer_buffer = (char *) toi_get_zeroed_page(11, -+ TOI_ATOMIC_GFP); -+ toi_writer_buffer_posn = writing ? 0 : PAGE_SIZE; -+ -+ current_stream = stream_number; -+ -+ more_readahead = 1; -+ -+ return toi_writer_buffer ? 0 : -ENOMEM; -+} -+ -+/** -+ * toi_bio_queue_write - queue a page for writing -+ * @full_buffer: Pointer to a page to be queued -+ * -+ * Add a page to the queue to be submitted. If we're the queue flusher, -+ * we'll do this once we've dropped toi_bio_mutex, so other threads can -+ * continue to submit I/O while we're on the slow path doing the actual -+ * submission. -+ **/ -+static void toi_bio_queue_write(char **full_buffer) -+{ -+ struct page *page = virt_to_page(*full_buffer); -+ unsigned long flags; -+ -+ *full_buffer = NULL; -+ page->private = 0; -+ -+ spin_lock_irqsave(&bio_queue_lock, flags); -+ if (!bio_queue_head) -+ bio_queue_head = page; -+ else -+ bio_queue_tail->private = (unsigned long) page; -+ -+ bio_queue_tail = page; -+ atomic_inc(&toi_bio_queue_size); -+ -+ spin_unlock_irqrestore(&bio_queue_lock, flags); -+ wake_up(&toi_io_queue_flusher); -+} -+ -+/** -+ * toi_rw_cleanup - Cleanup after i/o. -+ * @writing: Whether we were reading or writing. -+ * -+ * Flush all I/O and clean everything up after reading or writing a -+ * section of the image. -+ **/ -+static int toi_rw_cleanup(int writing) -+{ -+ int i, result = 0; -+ -+ toi_message(TOI_IO, TOI_VERBOSE, 0, "toi_rw_cleanup."); -+ if (writing) { -+ if (toi_writer_buffer_posn && !test_result_state(TOI_ABORTED)) -+ toi_bio_queue_write(&toi_writer_buffer); -+ -+ while (bio_queue_head && !result) -+ result = toi_bio_queue_flush_pages(0); -+ -+ if (result) -+ return result; -+ -+ if (current_stream == 2) -+ toi_extent_state_save(1); -+ else if (current_stream == 1) -+ toi_extent_state_save(3); -+ } -+ -+ result = toi_finish_all_io(); -+ -+ while (readahead_list_head) { -+ void *next = (void *) readahead_list_head->private; -+ toi__free_page(12, readahead_list_head); -+ readahead_list_head = next; -+ } -+ -+ readahead_list_tail = NULL; -+ -+ if (!current_stream) -+ return result; -+ -+ for (i = 0; i < NUM_REASONS; i++) { -+ if (!atomic_read(&reasons[i])) -+ continue; -+ printk(KERN_DEBUG "Waited for i/o due to %s %d times.\n", -+ reason_name[i], atomic_read(&reasons[i])); -+ atomic_set(&reasons[i], 0); -+ } -+ -+ current_stream = 0; -+ return result; -+} -+ -+/** -+ * toi_start_one_readahead - start one page of readahead -+ * @dedicated_thread: Is this a thread dedicated to doing readahead? -+ * -+ * Start one new page of readahead. If this is being called by a thread -+ * whose only just is to submit readahead, don't quit because we failed -+ * to allocate a page. -+ **/ -+static int toi_start_one_readahead(int dedicated_thread) -+{ -+ char *buffer = NULL; -+ int oom = 0, result; -+ -+ result = throttle_if_needed(dedicated_thread ? THROTTLE_WAIT : 0); -+ if (result) -+ return result; -+ -+ mutex_lock(&toi_bio_readahead_mutex); -+ -+ while (!buffer) { -+ buffer = (char *) toi_get_zeroed_page(12, -+ TOI_ATOMIC_GFP); -+ if (!buffer) { -+ if (oom && !dedicated_thread) { -+ mutex_unlock(&toi_bio_readahead_mutex); -+ return -ENOMEM; -+ } -+ -+ oom = 1; -+ set_free_mem_throttle(); -+ do_bio_wait(5); -+ } -+ } -+ -+ result = toi_bio_rw_page(READ, virt_to_page(buffer), 1, 0); -+ if (result == -ENOSPC) -+ toi__free_page(12, virt_to_page(buffer)); -+ mutex_unlock(&toi_bio_readahead_mutex); -+ if (result) { -+ if (result == -ENOSPC) -+ toi_message(TOI_IO, TOI_VERBOSE, 0, -+ "Last readahead page submitted."); -+ else -+ printk(KERN_DEBUG "toi_bio_rw_page returned %d.\n", -+ result); -+ } -+ return result; -+} -+ -+/** -+ * toi_start_new_readahead - start new readahead -+ * @dedicated_thread: Are we dedicated to this task? -+ * -+ * Start readahead of image pages. -+ * -+ * We can be called as a thread dedicated to this task (may be helpful on -+ * systems with lots of CPUs), in which case we don't exit until there's no -+ * more readahead. -+ * -+ * If this is not called by a dedicated thread, we top up our queue until -+ * there's no more readahead to submit, we've submitted the number given -+ * in target_outstanding_io or the number in progress exceeds the target -+ * outstanding I/O value. -+ * -+ * No mutex needed because this is only ever called by the first cpu. -+ **/ -+static int toi_start_new_readahead(int dedicated_thread) -+{ -+ int last_result, num_submitted = 0; -+ -+ /* Start a new readahead? */ -+ if (!more_readahead) -+ return 0; -+ -+ do { -+ last_result = toi_start_one_readahead(dedicated_thread); -+ -+ if (last_result) { -+ if (last_result == -ENOMEM || last_result == -ENOSPC) -+ return 0; -+ -+ printk(KERN_DEBUG -+ "Begin read chunk returned %d.\n", -+ last_result); -+ } else -+ num_submitted++; -+ -+ } while (more_readahead && !last_result && -+ (dedicated_thread || -+ (num_submitted < target_outstanding_io && -+ atomic_read(&toi_io_in_progress) < target_outstanding_io))); -+ -+ return last_result; -+} -+ -+/** -+ * bio_io_flusher - start the dedicated I/O flushing routine -+ * @writing: Whether we're writing the image. -+ **/ -+static int bio_io_flusher(int writing) -+{ -+ -+ if (writing) -+ return toi_bio_queue_flush_pages(1); -+ else -+ return toi_start_new_readahead(1); -+} -+ -+/** -+ * toi_bio_get_next_page_read - read a disk page, perhaps with readahead -+ * @no_readahead: Whether we can use readahead -+ * -+ * Read a page from disk, submitting readahead and cleaning up finished i/o -+ * while we wait for the page we're after. -+ **/ -+static int toi_bio_get_next_page_read(int no_readahead) -+{ -+ unsigned long *virt; -+ struct page *next; -+ -+ /* -+ * When reading the second page of the header, we have to -+ * delay submitting the read until after we've gotten the -+ * extents out of the first page. -+ */ -+ if (unlikely(no_readahead && toi_start_one_readahead(0))) { -+ printk(KERN_EMERG "No readahead and toi_start_one_readahead " -+ "returned non-zero.\n"); -+ return -EIO; -+ } -+ -+ if (unlikely(!readahead_list_head)) { -+ /* -+ * If the last page finishes exactly on the page -+ * boundary, we will be called one extra time and -+ * have no data to return. In this case, we should -+ * not BUG(), like we used to! -+ */ -+ if (!more_readahead) { -+ printk(KERN_EMERG "No more readahead.\n"); -+ return -ENOSPC; -+ } -+ if (unlikely(toi_start_one_readahead(0))) { -+ printk(KERN_EMERG "No readahead and " -+ "toi_start_one_readahead returned non-zero.\n"); -+ return -EIO; -+ } -+ } -+ -+ if (PageLocked(readahead_list_head)) { -+ waiting_on = readahead_list_head; -+ do_bio_wait(0); -+ } -+ -+ virt = page_address(readahead_list_head); -+ memcpy(toi_writer_buffer, virt, PAGE_SIZE); -+ -+ next = (struct page *) readahead_list_head->private; -+ toi__free_page(12, readahead_list_head); -+ readahead_list_head = next; -+ return 0; -+} -+ -+/** -+ * toi_bio_queue_flush_pages - flush the queue of pages queued for writing -+ * @dedicated_thread: Whether we're a dedicated thread -+ * -+ * Flush the queue of pages ready to be written to disk. -+ * -+ * If we're a dedicated thread, stay in here until told to leave, -+ * sleeping in wait_event. -+ * -+ * The first thread is normally the only one to come in here. Another -+ * thread can enter this routine too, though, via throttle_if_needed. -+ * Since that's the case, we must be careful to only have one thread -+ * doing this work at a time. Otherwise we have a race and could save -+ * pages out of order. -+ * -+ * If an error occurs, free all remaining pages without submitting them -+ * for I/O. -+ **/ -+ -+int toi_bio_queue_flush_pages(int dedicated_thread) -+{ -+ unsigned long flags; -+ int result = 0; -+ static DEFINE_MUTEX(busy); -+ -+ if (!mutex_trylock(&busy)) -+ return 0; -+ -+top: -+ spin_lock_irqsave(&bio_queue_lock, flags); -+ while (bio_queue_head) { -+ struct page *page = bio_queue_head; -+ bio_queue_head = (struct page *) page->private; -+ if (bio_queue_tail == page) -+ bio_queue_tail = NULL; -+ atomic_dec(&toi_bio_queue_size); -+ spin_unlock_irqrestore(&bio_queue_lock, flags); -+ -+ /* Don't generate more error messages if already had one */ -+ if (!result) -+ result = toi_bio_rw_page(WRITE, page, 0, 11); -+ /* -+ * If writing the page failed, don't drop out. -+ * Flush the rest of the queue too. -+ */ -+ if (result) -+ toi__free_page(11 , page); -+ spin_lock_irqsave(&bio_queue_lock, flags); -+ } -+ spin_unlock_irqrestore(&bio_queue_lock, flags); -+ -+ if (dedicated_thread) { -+ wait_event(toi_io_queue_flusher, bio_queue_head || -+ toi_bio_queue_flusher_should_finish); -+ if (likely(!toi_bio_queue_flusher_should_finish)) -+ goto top; -+ toi_bio_queue_flusher_should_finish = 0; -+ } -+ -+ mutex_unlock(&busy); -+ return result; -+} -+ -+/** -+ * toi_bio_get_new_page - get a new page for I/O -+ * @full_buffer: Pointer to a page to allocate. -+ **/ -+static int toi_bio_get_new_page(char **full_buffer) -+{ -+ int result = throttle_if_needed(THROTTLE_WAIT); -+ if (result) -+ return result; -+ -+ while (!*full_buffer) { -+ *full_buffer = (char *) toi_get_zeroed_page(11, TOI_ATOMIC_GFP); -+ if (!*full_buffer) { -+ set_free_mem_throttle(); -+ do_bio_wait(3); -+ } -+ } -+ -+ return 0; -+} -+ -+/** -+ * toi_rw_buffer - combine smaller buffers into PAGE_SIZE I/O -+ * @writing: Bool - whether writing (or reading). -+ * @buffer: The start of the buffer to write or fill. -+ * @buffer_size: The size of the buffer to write or fill. -+ * @no_readahead: Don't try to start readhead (when getting extents). -+ **/ -+static int toi_rw_buffer(int writing, char *buffer, int buffer_size, -+ int no_readahead) -+{ -+ int bytes_left = buffer_size, result = 0; -+ -+ while (bytes_left) { -+ char *source_start = buffer + buffer_size - bytes_left; -+ char *dest_start = toi_writer_buffer + toi_writer_buffer_posn; -+ int capacity = PAGE_SIZE - toi_writer_buffer_posn; -+ char *to = writing ? dest_start : source_start; -+ char *from = writing ? source_start : dest_start; -+ -+ if (bytes_left <= capacity) { -+ memcpy(to, from, bytes_left); -+ toi_writer_buffer_posn += bytes_left; -+ return 0; -+ } -+ -+ /* Complete this page and start a new one */ -+ memcpy(to, from, capacity); -+ bytes_left -= capacity; -+ -+ if (!writing) { -+ /* -+ * Perform actual I/O: -+ * read readahead_list_head into toi_writer_buffer -+ */ -+ int result = toi_bio_get_next_page_read(no_readahead); -+ if (result) { -+ printk("toi_bio_get_next_page_read " -+ "returned %d.\n", result); -+ return result; -+ } -+ } else { -+ toi_bio_queue_write(&toi_writer_buffer); -+ result = toi_bio_get_new_page(&toi_writer_buffer); -+ if (result) { -+ printk(KERN_ERR "toi_bio_get_new_page returned " -+ "%d.\n", result); -+ return result; -+ } -+ } -+ -+ toi_writer_buffer_posn = 0; -+ toi_cond_pause(0, NULL); -+ } -+ -+ return 0; -+} -+ -+/** -+ * toi_bio_read_page - read a page of the image -+ * @pfn: The pfn where the data belongs. -+ * @buffer_page: The page containing the (possibly compressed) data. -+ * @buf_size: The number of bytes on @buffer_page used (PAGE_SIZE). -+ * -+ * Read a (possibly compressed) page from the image, into buffer_page, -+ * returning its pfn and the buffer size. -+ **/ -+static int toi_bio_read_page(unsigned long *pfn, struct page *buffer_page, -+ unsigned int *buf_size) -+{ -+ int result = 0; -+ int this_idx; -+ char *buffer_virt = kmap(buffer_page); -+ -+ /* -+ * Only call start_new_readahead if we don't have a dedicated thread -+ * and we're the queue flusher. -+ */ -+ if (current == toi_queue_flusher && more_readahead) { -+ int result2 = toi_start_new_readahead(0); -+ if (result2) { -+ printk(KERN_DEBUG "Queue flusher and " -+ "toi_start_one_readahead returned non-zero.\n"); -+ result = -EIO; -+ goto out; -+ } -+ } -+ -+ my_mutex_lock(0, &toi_bio_mutex); -+ -+ /* -+ * Structure in the image: -+ * [destination pfn|page size|page data] -+ * buf_size is PAGE_SIZE -+ */ -+ if (toi_rw_buffer(READ, (char *) &this_idx, sizeof(int), 0) || -+ toi_rw_buffer(READ, (char *) pfn, sizeof(unsigned long), 0) || -+ toi_rw_buffer(READ, (char *) buf_size, sizeof(int), 0) || -+ toi_rw_buffer(READ, buffer_virt, *buf_size, 0)) { -+ abort_hibernate(TOI_FAILED_IO, "Read of data failed."); -+ result = 1; -+ } -+ -+ if (reset_idx) { -+ page_idx = this_idx; -+ reset_idx = 0; -+ } else { -+ page_idx++; -+ if (page_idx != this_idx) -+ printk(KERN_ERR "Got page index %d, expected %d.\n", -+ this_idx, page_idx); -+ } -+ -+ my_mutex_unlock(0, &toi_bio_mutex); -+out: -+ kunmap(buffer_page); -+ return result; -+} -+ -+/** -+ * toi_bio_write_page - write a page of the image -+ * @pfn: The pfn where the data belongs. -+ * @buffer_page: The page containing the (possibly compressed) data. -+ * @buf_size: The number of bytes on @buffer_page used. -+ * -+ * Write a (possibly compressed) page to the image from the buffer, together -+ * with it's index and buffer size. -+ **/ -+static int toi_bio_write_page(unsigned long pfn, struct page *buffer_page, -+ unsigned int buf_size) -+{ -+ char *buffer_virt; -+ int result = 0, result2 = 0; -+ -+ if (unlikely(test_action_state(TOI_TEST_FILTER_SPEED))) -+ return 0; -+ -+ my_mutex_lock(1, &toi_bio_mutex); -+ -+ if (test_result_state(TOI_ABORTED)) { -+ my_mutex_unlock(1, &toi_bio_mutex); -+ return -EIO; -+ } -+ -+ buffer_virt = kmap(buffer_page); -+ page_idx++; -+ -+ /* -+ * Structure in the image: -+ * [destination pfn|page size|page data] -+ * buf_size is PAGE_SIZE -+ */ -+ if (toi_rw_buffer(WRITE, (char *) &page_idx, sizeof(int), 0) || -+ toi_rw_buffer(WRITE, (char *) &pfn, sizeof(unsigned long), 0) || -+ toi_rw_buffer(WRITE, (char *) &buf_size, sizeof(int), 0) || -+ toi_rw_buffer(WRITE, buffer_virt, buf_size, 0)) { -+ printk(KERN_DEBUG "toi_rw_buffer returned non-zero to " -+ "toi_bio_write_page.\n"); -+ result = -EIO; -+ } -+ -+ kunmap(buffer_page); -+ my_mutex_unlock(1, &toi_bio_mutex); -+ -+ if (current == toi_queue_flusher) -+ result2 = toi_bio_queue_flush_pages(0); -+ -+ return result ? result : result2; -+} -+ -+/** -+ * _toi_rw_header_chunk - read or write a portion of the image header -+ * @writing: Whether reading or writing. -+ * @owner: The module for which we're writing. -+ * Used for confirming that modules -+ * don't use more header space than they asked for. -+ * @buffer: Address of the data to write. -+ * @buffer_size: Size of the data buffer. -+ * @no_readahead: Don't try to start readhead (when getting extents). -+ * -+ * Perform PAGE_SIZE I/O. Start readahead if needed. -+ **/ -+static int _toi_rw_header_chunk(int writing, struct toi_module_ops *owner, -+ char *buffer, int buffer_size, int no_readahead) -+{ -+ int result = 0; -+ -+ if (owner) { -+ owner->header_used += buffer_size; -+ toi_message(TOI_HEADER, TOI_LOW, 1, -+ "Header: %s : %d bytes (%d/%d) from offset %d.", -+ owner->name, -+ buffer_size, owner->header_used, -+ owner->header_requested, -+ toi_writer_buffer_posn); -+ if (owner->header_used > owner->header_requested && writing) { -+ printk(KERN_EMERG "TuxOnIce module %s is using more " -+ "header space (%u) than it requested (%u).\n", -+ owner->name, -+ owner->header_used, -+ owner->header_requested); -+ return buffer_size; -+ } -+ } else { -+ unowned += buffer_size; -+ toi_message(TOI_HEADER, TOI_LOW, 1, -+ "Header: (No owner): %d bytes (%d total so far) from " -+ "offset %d.", buffer_size, unowned, -+ toi_writer_buffer_posn); -+ } -+ -+ if (!writing && !no_readahead && more_readahead) { -+ result = toi_start_new_readahead(0); -+ toi_message(TOI_IO, TOI_VERBOSE, 0, "Start new readahead " -+ "returned %d.", result); -+ } -+ -+ if (!result) { -+ result = toi_rw_buffer(writing, buffer, buffer_size, -+ no_readahead); -+ toi_message(TOI_IO, TOI_VERBOSE, 0, "rw_buffer returned " -+ "%d.", result); -+ } -+ -+ total_header_bytes += buffer_size; -+ toi_message(TOI_IO, TOI_VERBOSE, 0, "_toi_rw_header_chunk returning " -+ "%d.", result); -+ return result; -+} -+ -+static int toi_rw_header_chunk(int writing, struct toi_module_ops *owner, -+ char *buffer, int size) -+{ -+ return _toi_rw_header_chunk(writing, owner, buffer, size, 1); -+} -+ -+static int toi_rw_header_chunk_noreadahead(int writing, -+ struct toi_module_ops *owner, char *buffer, int size) -+{ -+ return _toi_rw_header_chunk(writing, owner, buffer, size, 1); -+} -+ -+/** -+ * toi_bio_storage_needed - get the amount of storage needed for my fns -+ **/ -+static int toi_bio_storage_needed(void) -+{ -+ return sizeof(int) + PAGE_SIZE + toi_bio_devinfo_storage_needed(); -+} -+ -+/** -+ * toi_bio_save_config_info - save block I/O config to image header -+ * @buf: PAGE_SIZE'd buffer into which data should be saved. -+ **/ -+static int toi_bio_save_config_info(char *buf) -+{ -+ int *ints = (int *) buf; -+ ints[0] = target_outstanding_io; -+ return sizeof(int); -+} -+ -+/** -+ * toi_bio_load_config_info - restore block I/O config -+ * @buf: Data to be reloaded. -+ * @size: Size of the buffer saved. -+ **/ -+static void toi_bio_load_config_info(char *buf, int size) -+{ -+ int *ints = (int *) buf; -+ target_outstanding_io = ints[0]; -+} -+ -+void close_resume_dev_t(int force) -+{ -+ if (!resume_block_device) -+ return; -+ -+ if (force) -+ atomic_set(&resume_bdev_open_count, 0); -+ else -+ atomic_dec(&resume_bdev_open_count); -+ -+ if (!atomic_read(&resume_bdev_open_count)) { -+ toi_close_bdev(resume_block_device); -+ resume_block_device = NULL; -+ } -+} -+ -+int open_resume_dev_t(int force, int quiet) -+{ -+ if (force) { -+ close_resume_dev_t(1); -+ atomic_set(&resume_bdev_open_count, 1); -+ } else -+ atomic_inc(&resume_bdev_open_count); -+ -+ if (resume_block_device) -+ return 0; -+ -+ resume_block_device = toi_open_bdev(NULL, resume_dev_t, 0); -+ if (IS_ERR(resume_block_device)) { -+ if (!quiet) -+ toi_early_boot_message(1, TOI_CONTINUE_REQ, -+ "Failed to open device %x, where" -+ " the header should be found.", -+ resume_dev_t); -+ resume_block_device = NULL; -+ atomic_set(&resume_bdev_open_count, 0); -+ return 1; -+ } -+ -+ return 0; -+} -+ -+/** -+ * toi_bio_initialise - initialise bio code at start of some action -+ * @starting_cycle: Whether starting a hibernation cycle, or just reading or -+ * writing a sysfs value. -+ **/ -+static int toi_bio_initialise(int starting_cycle) -+{ -+ int result; -+ -+ if (!starting_cycle || !resume_dev_t) -+ return 0; -+ -+ max_outstanding_writes = 0; -+ max_outstanding_reads = 0; -+ current_stream = 0; -+ toi_queue_flusher = current; -+#ifdef MEASURE_MUTEX_CONTENTION -+ { -+ int i, j, k; -+ -+ for (i = 0; i < 2; i++) -+ for (j = 0; j < 2; j++) -+ for_each_online_cpu(k) -+ mutex_times[i][j][k] = 0; -+ } -+#endif -+ result = open_resume_dev_t(0, 1); -+ -+ if (result) -+ return result; -+ -+ return get_signature_page(); -+} -+ -+static unsigned long raw_to_real(unsigned long raw) -+{ -+ unsigned long result; -+ -+ result = raw - (raw * (sizeof(unsigned long) + sizeof(int)) + -+ (PAGE_SIZE + sizeof(unsigned long) + sizeof(int) + 1)) / -+ (PAGE_SIZE + sizeof(unsigned long) + sizeof(int)); -+ -+ return result < 0 ? 0 : result; -+} -+ -+static unsigned long toi_bio_storage_available(void) -+{ -+ unsigned long sum = 0; -+ struct toi_module_ops *this_module; -+ -+ list_for_each_entry(this_module, &toi_modules, module_list) { -+ if (!this_module->enabled || -+ this_module->type != BIO_ALLOCATOR_MODULE) -+ continue; -+ toi_message(TOI_IO, TOI_VERBOSE, 0, "Seeking storage " -+ "available from %s.", this_module->name); -+ sum += this_module->bio_allocator_ops->storage_available(); -+ } -+ -+ toi_message(TOI_IO, TOI_VERBOSE, 0, "Total storage available is %lu " -+ "pages.", sum); -+ return raw_to_real(sum - header_pages_reserved); -+ -+} -+ -+static unsigned long toi_bio_storage_allocated(void) -+{ -+ return raw_pages_allocd > header_pages_reserved ? -+ raw_to_real(raw_pages_allocd - header_pages_reserved) : 0; -+} -+ -+/* -+ * If we have read part of the image, we might have filled memory with -+ * data that should be zeroed out. -+ */ -+static void toi_bio_noresume_reset(void) -+{ -+ toi_message(TOI_IO, TOI_VERBOSE, 0, "toi_bio_noresume_reset."); -+ toi_rw_cleanup(READ); -+ free_all_bdev_info(); -+} -+ -+/** -+ * toi_bio_cleanup - cleanup after some action -+ * @finishing_cycle: Whether completing a cycle. -+ **/ -+static void toi_bio_cleanup(int finishing_cycle) -+{ -+ if (!finishing_cycle) -+ return; -+ -+ if (toi_writer_buffer) { -+ toi_free_page(11, (unsigned long) toi_writer_buffer); -+ toi_writer_buffer = NULL; -+ } -+ -+ forget_signature_page(); -+ -+ if (header_block_device && toi_sig_data && -+ toi_sig_data->header_dev_t != resume_dev_t) -+ toi_close_bdev(header_block_device); -+ -+ header_block_device = NULL; -+ -+ close_resume_dev_t(0); -+} -+ -+static int toi_bio_write_header_init(void) -+{ -+ int result; -+ -+ toi_message(TOI_IO, TOI_VERBOSE, 0, "toi_bio_write_header_init"); -+ toi_rw_init(WRITE, 0); -+ toi_writer_buffer_posn = 0; -+ -+ /* Info needed to bootstrap goes at the start of the header. -+ * First we save the positions and devinfo, including the number -+ * of header pages. Then we save the structs containing data needed -+ * for reading the header pages back. -+ * Note that even if header pages take more than one page, when we -+ * read back the info, we will have restored the location of the -+ * next header page by the time we go to use it. -+ */ -+ -+ toi_message(TOI_IO, TOI_VERBOSE, 0, "serialise extent chains."); -+ result = toi_serialise_extent_chains(); -+ -+ if (result) -+ return result; -+ -+ /* -+ * Signature page hasn't been modified at this point. Write it in -+ * the header so we can restore it later. -+ */ -+ toi_message(TOI_IO, TOI_VERBOSE, 0, "serialise signature page."); -+ return toi_rw_header_chunk_noreadahead(WRITE, &toi_blockwriter_ops, -+ (char *) toi_cur_sig_page, -+ PAGE_SIZE); -+} -+ -+static int toi_bio_write_header_cleanup(void) -+{ -+ int result = 0; -+ -+ if (toi_writer_buffer_posn) -+ toi_bio_queue_write(&toi_writer_buffer); -+ -+ result = toi_finish_all_io(); -+ -+ unowned = 0; -+ total_header_bytes = 0; -+ -+ /* Set signature to save we have an image */ -+ if (!result) -+ result = toi_bio_mark_have_image(); -+ -+ return result; -+} -+ -+/* -+ * toi_bio_read_header_init() -+ * -+ * Description: -+ * 1. Attempt to read the device specified with resume=. -+ * 2. Check the contents of the swap header for our signature. -+ * 3. Warn, ignore, reset and/or continue as appropriate. -+ * 4. If continuing, read the toi_swap configuration section -+ * of the header and set up block device info so we can read -+ * the rest of the header & image. -+ * -+ * Returns: -+ * May not return if user choose to reboot at a warning. -+ * -EINVAL if cannot resume at this time. Booting should continue -+ * normally. -+ */ -+ -+static int toi_bio_read_header_init(void) -+{ -+ int result = 0; -+ char buf[32]; -+ -+ toi_writer_buffer_posn = 0; -+ -+ toi_message(TOI_IO, TOI_VERBOSE, 0, "toi_bio_read_header_init"); -+ -+ if (!toi_sig_data) { -+ printk(KERN_INFO "toi_bio_read_header_init called when we " -+ "haven't verified there is an image!\n"); -+ return -EINVAL; -+ } -+ -+ /* -+ * If the header is not on the resume_swap_dev_t, get the resume device -+ * first. -+ */ -+ toi_message(TOI_IO, TOI_VERBOSE, 0, "Header dev_t is %lx.", -+ toi_sig_data->header_dev_t); -+ if (toi_sig_data->have_uuid) { -+ dev_t device; -+ device = blk_lookup_uuid(toi_sig_data->header_uuid); -+ if (device) { -+ printk("Using dev_t %s, returned by blk_lookup_uuid.\n", -+ format_dev_t(buf, device)); -+ toi_sig_data->header_dev_t = device; -+ } -+ } -+ if (toi_sig_data->header_dev_t != resume_dev_t) { -+ header_block_device = toi_open_bdev(NULL, -+ toi_sig_data->header_dev_t, 1); -+ -+ if (IS_ERR(header_block_device)) -+ return PTR_ERR(header_block_device); -+ } else -+ header_block_device = resume_block_device; -+ -+ if (!toi_writer_buffer) -+ toi_writer_buffer = (char *) toi_get_zeroed_page(11, -+ TOI_ATOMIC_GFP); -+ more_readahead = 1; -+ -+ /* -+ * Read toi_swap configuration. -+ * Headerblock size taken into account already. -+ */ -+ result = toi_bio_ops.bdev_page_io(READ, header_block_device, -+ toi_sig_data->first_header_block, -+ virt_to_page((unsigned long) toi_writer_buffer)); -+ if (result) -+ return result; -+ -+ toi_message(TOI_IO, TOI_VERBOSE, 0, "load extent chains."); -+ result = toi_load_extent_chains(); -+ -+ toi_message(TOI_IO, TOI_VERBOSE, 0, "load original signature page."); -+ toi_orig_sig_page = (char *) toi_get_zeroed_page(38, TOI_ATOMIC_GFP); -+ if (!toi_orig_sig_page) { -+ printk(KERN_ERR "Failed to allocate memory for the current" -+ " image signature.\n"); -+ return -ENOMEM; -+ } -+ -+ return toi_rw_header_chunk_noreadahead(READ, &toi_blockwriter_ops, -+ (char *) toi_orig_sig_page, -+ PAGE_SIZE); -+} -+ -+static int toi_bio_read_header_cleanup(void) -+{ -+ toi_message(TOI_IO, TOI_VERBOSE, 0, "toi_bio_read_header_cleanup."); -+ return toi_rw_cleanup(READ); -+} -+ -+/* Works only for digits and letters, but small and fast */ -+#define TOLOWER(x) ((x) | 0x20) -+ -+/* -+ * UUID must be 32 chars long. It may have dashes, but nothing -+ * else. -+ */ -+char *uuid_from_commandline(char *commandline) -+{ -+ int low = 0; -+ char *result = NULL, *output, *ptr; -+ -+ if (strncmp(commandline, "UUID=", 5)) -+ return NULL; -+ -+ result = kzalloc(17, GFP_KERNEL); -+ if (!result) { -+ printk("Failed to kzalloc UUID text memory.\n"); -+ return NULL; -+ } -+ -+ ptr = commandline + 5; -+ output = result; -+ -+ while (*ptr && (output - result) < 16) { -+ if (isxdigit(*ptr)) { -+ int value = isdigit(*ptr) ? *ptr - '0' : -+ TOLOWER(*ptr) - 'a' + 10; -+ if (low) { -+ *output += value; -+ output++; -+ } else { -+ *output = value << 4; -+ } -+ low = !low; -+ } else if (*ptr != '-') -+ break; -+ ptr++; -+ } -+ -+ if ((output - result) < 16 || *ptr) { -+ printk(KERN_DEBUG "Found resume=UUID=, but the value looks " -+ "invalid.\n"); -+ kfree(result); -+ result = NULL; -+ } -+ -+ return result; -+} -+ -+#define retry_if_fails(command) \ -+do { \ -+ command; \ -+ if (!resume_dev_t && !waited_for_device_probe) { \ -+ wait_for_device_probe(); \ -+ scsi_complete_async_scans(); \ -+ command; \ -+ waited_for_device_probe = 1; \ -+ } \ -+} while(0) -+ -+/** -+ * try_to_open_resume_device: Try to parse and open resume= -+ * -+ * Any "swap:" has been stripped away and we just have the path to deal with. -+ * We attempt to do name_to_dev_t, open and stat the file. Having opened the -+ * file, get the struct block_device * to match. -+ */ -+static int try_to_open_resume_device(char *commandline, int quiet) -+{ -+ struct kstat stat; -+ int error = 0; -+ char *uuid = uuid_from_commandline(commandline); -+ int waited_for_device_probe = 0; -+ -+ resume_dev_t = MKDEV(0, 0); -+ -+ if (!strlen(commandline)) -+ retry_if_fails(toi_bio_scan_for_image(quiet)); -+ -+ if (uuid) { -+ retry_if_fails(resume_dev_t = blk_lookup_uuid(uuid)); -+ kfree(uuid); -+ } -+ -+ if (!resume_dev_t) -+ retry_if_fails(resume_dev_t = name_to_dev_t(commandline)); -+ -+ if (!resume_dev_t) { -+ struct file *file = filp_open(commandline, -+ O_RDONLY|O_LARGEFILE, 0); -+ -+ if (!IS_ERR(file) && file) { -+ vfs_getattr(file->f_vfsmnt, file->f_dentry, &stat); -+ filp_close(file, NULL); -+ } else -+ error = vfs_stat(commandline, &stat); -+ if (!error) -+ resume_dev_t = stat.rdev; -+ } -+ -+ if (!resume_dev_t) { -+ if (quiet) -+ return 1; -+ -+ if (test_toi_state(TOI_TRYING_TO_RESUME)) -+ toi_early_boot_message(1, toi_translate_err_default, -+ "Failed to translate \"%s\" into a device id.\n", -+ commandline); -+ else -+ printk("TuxOnIce: Can't translate \"%s\" into a device " -+ "id yet.\n", commandline); -+ return 1; -+ } -+ -+ return open_resume_dev_t(1, quiet); -+} -+ -+/* -+ * Parse Image Location -+ * -+ * Attempt to parse a resume= parameter. -+ * Swap Writer accepts: -+ * resume=[swap:|file:]DEVNAME[:FIRSTBLOCK][@BLOCKSIZE] -+ * -+ * Where: -+ * DEVNAME is convertable to a dev_t by name_to_dev_t -+ * FIRSTBLOCK is the location of the first block in the swap file -+ * (specifying for a swap partition is nonsensical but not prohibited). -+ * Data is validated by attempting to read a swap header from the -+ * location given. Failure will result in toi_swap refusing to -+ * save an image, and a reboot with correct parameters will be -+ * necessary. -+ */ -+static int toi_bio_parse_sig_location(char *commandline, -+ int only_allocator, int quiet) -+{ -+ char *thischar, *devstart, *colon = NULL; -+ int signature_found, result = -EINVAL, temp_result = 0; -+ -+ if (strncmp(commandline, "swap:", 5) && -+ strncmp(commandline, "file:", 5)) { -+ /* -+ * Failing swap:, we'll take a simple resume=/dev/hda2, or a -+ * blank value (scan) but fall through to other allocators -+ * if /dev/ or UUID= isn't matched. -+ */ -+ if (strncmp(commandline, "/dev/", 5) && -+ strncmp(commandline, "UUID=", 5) && -+ strlen(commandline)) -+ return 1; -+ } else -+ commandline += 5; -+ -+ devstart = commandline; -+ thischar = commandline; -+ while ((*thischar != ':') && (*thischar != '@') && -+ ((thischar - commandline) < 250) && (*thischar)) -+ thischar++; -+ -+ if (*thischar == ':') { -+ colon = thischar; -+ *colon = 0; -+ thischar++; -+ } -+ -+ while ((thischar - commandline) < 250 && *thischar) -+ thischar++; -+ -+ if (colon) { -+ unsigned long block; -+ temp_result = strict_strtoul(colon + 1, 0, &block); -+ if (!temp_result) -+ resume_firstblock = (int) block; -+ } else -+ resume_firstblock = 0; -+ -+ clear_toi_state(TOI_CAN_HIBERNATE); -+ clear_toi_state(TOI_CAN_RESUME); -+ -+ if (!temp_result) -+ temp_result = try_to_open_resume_device(devstart, quiet); -+ -+ if (colon) -+ *colon = ':'; -+ -+ /* No error if we only scanned */ -+ if (temp_result) -+ return strlen(commandline) ? -EINVAL : 1; -+ -+ signature_found = toi_bio_image_exists(quiet); -+ -+ if (signature_found != -1) { -+ result = 0; -+ /* -+ * TODO: If only file storage, CAN_HIBERNATE should only be -+ * set if file allocator's target is valid. -+ */ -+ set_toi_state(TOI_CAN_HIBERNATE); -+ set_toi_state(TOI_CAN_RESUME); -+ } else -+ if (!quiet) -+ printk(KERN_ERR "TuxOnIce: Block I/O: No " -+ "signature found at %s.\n", devstart); -+ -+ close_resume_dev_t(0); -+ return result; -+} -+ -+static void toi_bio_release_storage(void) -+{ -+ header_pages_reserved = 0; -+ raw_pages_allocd = 0; -+ -+ free_all_bdev_info(); -+} -+ -+/* toi_swap_remove_image -+ * -+ */ -+static int toi_bio_remove_image(void) -+{ -+ int result; -+ -+ toi_message(TOI_IO, TOI_VERBOSE, 0, "toi_bio_remove_image."); -+ -+ result = toi_bio_restore_original_signature(); -+ -+ /* -+ * We don't do a sanity check here: we want to restore the swap -+ * whatever version of kernel made the hibernate image. -+ * -+ * We need to write swap, but swap may not be enabled so -+ * we write the device directly -+ * -+ * If we don't have an current_signature_page, we didn't -+ * read an image header, so don't change anything. -+ */ -+ -+ toi_bio_release_storage(); -+ -+ return result; -+} -+ -+struct toi_bio_ops toi_bio_ops = { -+ .bdev_page_io = toi_bdev_page_io, -+ .register_storage = toi_register_storage_chain, -+ .free_storage = toi_bio_release_storage, -+}; -+EXPORT_SYMBOL_GPL(toi_bio_ops); -+ -+static struct toi_sysfs_data sysfs_params[] = { -+ SYSFS_INT("target_outstanding_io", SYSFS_RW, &target_outstanding_io, -+ 0, 16384, 0, NULL), -+}; -+ -+struct toi_module_ops toi_blockwriter_ops = { -+ .type = WRITER_MODULE, -+ .name = "block i/o", -+ .directory = "block_io", -+ .module = THIS_MODULE, -+ .memory_needed = toi_bio_memory_needed, -+ .print_debug_info = toi_bio_print_debug_stats, -+ .storage_needed = toi_bio_storage_needed, -+ .save_config_info = toi_bio_save_config_info, -+ .load_config_info = toi_bio_load_config_info, -+ .initialise = toi_bio_initialise, -+ .cleanup = toi_bio_cleanup, -+ .post_atomic_restore = toi_bio_chains_post_atomic, -+ -+ .rw_init = toi_rw_init, -+ .rw_cleanup = toi_rw_cleanup, -+ .read_page = toi_bio_read_page, -+ .write_page = toi_bio_write_page, -+ .rw_header_chunk = toi_rw_header_chunk, -+ .rw_header_chunk_noreadahead = toi_rw_header_chunk_noreadahead, -+ .io_flusher = bio_io_flusher, -+ .update_throughput_throttle = update_throughput_throttle, -+ .finish_all_io = toi_finish_all_io, -+ -+ .noresume_reset = toi_bio_noresume_reset, -+ .storage_available = toi_bio_storage_available, -+ .storage_allocated = toi_bio_storage_allocated, -+ .reserve_header_space = toi_bio_reserve_header_space, -+ .allocate_storage = toi_bio_allocate_storage, -+ .image_exists = toi_bio_image_exists, -+ .mark_resume_attempted = toi_bio_mark_resume_attempted, -+ .write_header_init = toi_bio_write_header_init, -+ .write_header_cleanup = toi_bio_write_header_cleanup, -+ .read_header_init = toi_bio_read_header_init, -+ .read_header_cleanup = toi_bio_read_header_cleanup, -+ .get_header_version = toi_bio_get_header_version, -+ .remove_image = toi_bio_remove_image, -+ .parse_sig_location = toi_bio_parse_sig_location, -+ -+ .sysfs_data = sysfs_params, -+ .num_sysfs_entries = sizeof(sysfs_params) / -+ sizeof(struct toi_sysfs_data), -+}; -+ -+/** -+ * toi_block_io_load - load time routine for block I/O module -+ * -+ * Register block i/o ops and sysfs entries. -+ **/ -+static __init int toi_block_io_load(void) -+{ -+ return toi_register_module(&toi_blockwriter_ops); -+} -+ -+#ifdef MODULE -+static __exit void toi_block_io_unload(void) -+{ -+ toi_unregister_module(&toi_blockwriter_ops); -+} -+ -+module_init(toi_block_io_load); -+module_exit(toi_block_io_unload); -+MODULE_LICENSE("GPL"); -+MODULE_AUTHOR("Nigel Cunningham"); -+MODULE_DESCRIPTION("TuxOnIce block io functions"); -+#else -+late_initcall(toi_block_io_load); -+#endif -diff --git a/kernel/power/tuxonice_bio_internal.h b/kernel/power/tuxonice_bio_internal.h -new file mode 100644 -index 0000000..58c2481 ---- /dev/null -+++ b/kernel/power/tuxonice_bio_internal.h -@@ -0,0 +1,86 @@ -+/* -+ * kernel/power/tuxonice_bio_internal.h -+ * -+ * Copyright (C) 2009-2010 Nigel Cunningham (nigel at tuxonice net) -+ * -+ * Distributed under GPLv2. -+ * -+ * This file contains declarations for functions exported from -+ * tuxonice_bio.c, which contains low level io functions. -+ */ -+ -+/* Extent chains */ -+void toi_extent_state_goto_start(void); -+void toi_extent_state_save(int slot); -+int go_next_page(int writing, int section_barrier); -+void toi_extent_state_restore(int slot); -+void free_all_bdev_info(void); -+int devices_of_same_priority(struct toi_bdev_info *this); -+int toi_register_storage_chain(struct toi_bdev_info *new); -+int toi_serialise_extent_chains(void); -+int toi_load_extent_chains(void); -+int toi_bio_rw_page(int writing, struct page *page, int is_readahead, -+ int free_group); -+int toi_bio_restore_original_signature(void); -+int toi_bio_devinfo_storage_needed(void); -+unsigned long get_headerblock(void); -+dev_t get_header_dev_t(void); -+struct block_device *get_header_bdev(void); -+int toi_bio_allocate_storage(unsigned long request); -+ -+/* Signature functions */ -+#define HaveImage "HaveImage" -+#define NoImage "TuxOnIce" -+#define sig_size (sizeof(HaveImage)) -+ -+struct sig_data { -+ char sig[sig_size]; -+ int have_image; -+ int resumed_before; -+ -+ char have_uuid; -+ char header_uuid[17]; -+ dev_t header_dev_t; -+ unsigned long first_header_block; -+ -+ /* Repeat the signature to be sure we have a header version */ -+ char sig2[sig_size]; -+ int header_version; -+}; -+ -+void forget_signature_page(void); -+int toi_check_for_signature(void); -+int toi_bio_image_exists(int quiet); -+int get_signature_page(void); -+int toi_bio_mark_resume_attempted(int); -+extern char *toi_cur_sig_page; -+extern char *toi_orig_sig_page; -+int toi_bio_mark_have_image(void); -+extern struct sig_data *toi_sig_data; -+extern dev_t resume_dev_t; -+extern struct block_device *resume_block_device; -+extern struct block_device *header_block_device; -+extern unsigned long resume_firstblock; -+ -+struct block_device *open_bdev(dev_t device, int display_errs); -+extern int current_stream; -+extern int more_readahead; -+int toi_do_io(int writing, struct block_device *bdev, long block0, -+ struct page *page, int is_readahead, int syncio, int free_group); -+int get_main_pool_phys_params(void); -+ -+void toi_close_bdev(struct block_device *bdev); -+struct block_device *toi_open_bdev(char *uuid, dev_t default_device, -+ int display_errs); -+ -+extern struct toi_module_ops toi_blockwriter_ops; -+void dump_block_chains(void); -+void debug_broken_header(void); -+extern unsigned long raw_pages_allocd, header_pages_reserved; -+int toi_bio_chains_debug_info(char *buffer, int size); -+void toi_bio_chains_post_atomic(struct toi_boot_kernel_data *bkd); -+int toi_bio_scan_for_image(int quiet); -+int toi_bio_get_header_version(void); -+ -+void close_resume_dev_t(int force); -+int open_resume_dev_t(int force, int quiet); -diff --git a/kernel/power/tuxonice_bio_signature.c b/kernel/power/tuxonice_bio_signature.c -new file mode 100644 -index 0000000..e6f6cc8 ---- /dev/null -+++ b/kernel/power/tuxonice_bio_signature.c -@@ -0,0 +1,410 @@ -+/* -+ * kernel/power/tuxonice_bio_signature.c -+ * -+ * Copyright (C) 2004-2010 Nigel Cunningham (nigel at tuxonice net) -+ * -+ * Distributed under GPLv2. -+ * -+ */ -+ -+#include -+ -+#include "tuxonice.h" -+#include "tuxonice_sysfs.h" -+#include "tuxonice_modules.h" -+#include "tuxonice_prepare_image.h" -+#include "tuxonice_bio.h" -+#include "tuxonice_ui.h" -+#include "tuxonice_alloc.h" -+#include "tuxonice_io.h" -+#include "tuxonice_builtin.h" -+#include "tuxonice_bio_internal.h" -+ -+struct sig_data *toi_sig_data; -+ -+/* Struct of swap header pages */ -+ -+struct old_sig_data { -+ dev_t device; -+ unsigned long sector; -+ int resume_attempted; -+ int orig_sig_type; -+}; -+ -+union diskpage { -+ union swap_header swh; /* swh.magic is the only member used */ -+ struct sig_data sig_data; -+ struct old_sig_data old_sig_data; -+}; -+ -+union p_diskpage { -+ union diskpage *pointer; -+ char *ptr; -+ unsigned long address; -+}; -+ -+char *toi_cur_sig_page; -+char *toi_orig_sig_page; -+int have_image; -+int have_old_image; -+ -+int get_signature_page(void) -+{ -+ if (!toi_cur_sig_page) { -+ toi_message(TOI_IO, TOI_VERBOSE, 0, -+ "Allocating current signature page."); -+ toi_cur_sig_page = (char *) toi_get_zeroed_page(38, -+ TOI_ATOMIC_GFP); -+ if (!toi_cur_sig_page) { -+ printk(KERN_ERR "Failed to allocate memory for the " -+ "current image signature.\n"); -+ return -ENOMEM; -+ } -+ -+ toi_sig_data = (struct sig_data *) toi_cur_sig_page; -+ } -+ -+ toi_message(TOI_IO, TOI_VERBOSE, 0, "Reading signature from dev %lx," -+ " sector %d.", -+ resume_block_device->bd_dev, resume_firstblock); -+ -+ return toi_bio_ops.bdev_page_io(READ, resume_block_device, -+ resume_firstblock, virt_to_page(toi_cur_sig_page)); -+} -+ -+void forget_signature_page(void) -+{ -+ if (toi_cur_sig_page) { -+ toi_sig_data = NULL; -+ toi_message(TOI_IO, TOI_VERBOSE, 0, "Freeing toi_cur_sig_page" -+ " (%p).", toi_cur_sig_page); -+ toi_free_page(38, (unsigned long) toi_cur_sig_page); -+ toi_cur_sig_page = NULL; -+ } -+ -+ if (toi_orig_sig_page) { -+ toi_message(TOI_IO, TOI_VERBOSE, 0, "Freeing toi_orig_sig_page" -+ " (%p).", toi_orig_sig_page); -+ toi_free_page(38, (unsigned long) toi_orig_sig_page); -+ toi_orig_sig_page = NULL; -+ } -+} -+ -+/* -+ * We need to ensure we use the signature page that's currently on disk, -+ * so as to not remove the image header. Post-atomic-restore, the orig sig -+ * page will be empty, so we can use that as our method of knowing that we -+ * need to load the on-disk signature and not use the non-image sig in -+ * memory. (We're going to powerdown after writing the change, so it's safe. -+ */ -+int toi_bio_mark_resume_attempted(int flag) -+{ -+ toi_message(TOI_IO, TOI_VERBOSE, 0, "Make resume attempted = %d.", -+ flag); -+ if (!toi_orig_sig_page) { -+ forget_signature_page(); -+ get_signature_page(); -+ } -+ toi_sig_data->resumed_before = flag; -+ return toi_bio_ops.bdev_page_io(WRITE, resume_block_device, -+ resume_firstblock, virt_to_page(toi_cur_sig_page)); -+} -+ -+int toi_bio_mark_have_image(void) -+{ -+ int result = 0; -+ char buf[32]; -+ struct fs_info *fs_info; -+ -+ toi_message(TOI_IO, TOI_VERBOSE, 0, "Recording that an image exists."); -+ memcpy(toi_sig_data->sig, tuxonice_signature, -+ sizeof(tuxonice_signature)); -+ toi_sig_data->have_image = 1; -+ toi_sig_data->resumed_before = 0; -+ toi_sig_data->header_dev_t = get_header_dev_t(); -+ toi_sig_data->have_uuid = 0; -+ -+ fs_info = fs_info_from_block_dev(get_header_bdev()); -+ if (fs_info && !IS_ERR(fs_info)) { -+ memcpy(toi_sig_data->header_uuid, &fs_info->uuid, 16); -+ free_fs_info(fs_info); -+ } else -+ result = (int) PTR_ERR(fs_info); -+ -+ if (!result) { -+ toi_message(TOI_IO, TOI_VERBOSE, 0, "Got uuid for dev_t %s.", -+ format_dev_t(buf, get_header_dev_t())); -+ toi_sig_data->have_uuid = 1; -+ } else -+ toi_message(TOI_IO, TOI_VERBOSE, 0, "Could not get uuid for " -+ "dev_t %s.", -+ format_dev_t(buf, get_header_dev_t())); -+ -+ toi_sig_data->first_header_block = get_headerblock(); -+ have_image = 1; -+ toi_message(TOI_IO, TOI_VERBOSE, 0, "header dev_t is %x. First block " -+ "is %d.", toi_sig_data->header_dev_t, -+ toi_sig_data->first_header_block); -+ -+ memcpy(toi_sig_data->sig2, tuxonice_signature, -+ sizeof(tuxonice_signature)); -+ toi_sig_data->header_version = TOI_HEADER_VERSION; -+ -+ return toi_bio_ops.bdev_page_io(WRITE, resume_block_device, -+ resume_firstblock, virt_to_page(toi_cur_sig_page)); -+} -+ -+int remove_old_signature(void) -+{ -+ union p_diskpage swap_header_page = (union p_diskpage) toi_cur_sig_page; -+ char *orig_sig, *no_image_signature_contents; -+ char *header_start = (char *) toi_get_zeroed_page(38, TOI_ATOMIC_GFP); -+ int result; -+ struct block_device *header_bdev; -+ struct old_sig_data *old_sig_data = -+ &swap_header_page.pointer->old_sig_data; -+ -+ header_bdev = toi_open_bdev(NULL, old_sig_data->device, 1); -+ result = toi_bio_ops.bdev_page_io(READ, header_bdev, -+ old_sig_data->sector, virt_to_page(header_start)); -+ -+ if (result) -+ goto out; -+ -+ /* -+ * TODO: Get the original contents of the first bytes of the swap -+ * header page. -+ */ -+ if (!old_sig_data->orig_sig_type) -+ orig_sig = "SWAP-SPACE"; -+ else -+ orig_sig = "SWAPSPACE2"; -+ -+ memcpy(swap_header_page.pointer->swh.magic.magic, orig_sig, 10); -+ memcpy(swap_header_page.ptr, header_start, -+ sizeof(no_image_signature_contents)); -+ -+ result = toi_bio_ops.bdev_page_io(WRITE, resume_block_device, -+ resume_firstblock, virt_to_page(swap_header_page.ptr)); -+ -+out: -+ toi_close_bdev(header_bdev); -+ have_old_image = 0; -+ toi_free_page(38, (unsigned long) header_start); -+ return result; -+} -+ -+/* -+ * toi_bio_restore_original_signature - restore the original signature -+ * -+ * At boot time (aborting pre atomic-restore), toi_orig_sig_page gets used. -+ * It will have the original signature page contents, stored in the image -+ * header. Post atomic-restore, we use :toi_cur_sig_page, which will contain -+ * the contents that were loaded when we started the cycle. -+ */ -+int toi_bio_restore_original_signature(void) -+{ -+ char *use = toi_orig_sig_page ? toi_orig_sig_page : toi_cur_sig_page; -+ -+ if (have_old_image) -+ return remove_old_signature(); -+ -+ if (!use) { -+ printk("toi_bio_restore_original_signature: No signature " -+ "page loaded.\n"); -+ return 0; -+ } -+ -+ toi_message(TOI_IO, TOI_VERBOSE, 0, "Recording that no image exists."); -+ have_image = 0; -+ toi_sig_data->have_image = 0; -+ return toi_bio_ops.bdev_page_io(WRITE, resume_block_device, -+ resume_firstblock, virt_to_page(use)); -+} -+ -+/* -+ * check_for_signature - See whether we have an image. -+ * -+ * Returns 0 if no image, 1 if there is one, -1 if indeterminate. -+ */ -+int toi_check_for_signature(void) -+{ -+ union p_diskpage swap_header_page; -+ int type; -+ const char *normal_sigs[] = {"SWAP-SPACE", "SWAPSPACE2" }; -+ const char *swsusp_sigs[] = {"S1SUSP", "S2SUSP", "S1SUSPEND" }; -+ char *swap_header; -+ -+ if (!toi_cur_sig_page) { -+ int result = get_signature_page(); -+ -+ if (result) -+ return result; -+ } -+ -+ /* -+ * Start by looking for the binary header. -+ */ -+ if (!memcmp(tuxonice_signature, toi_cur_sig_page, -+ sizeof(tuxonice_signature))) { -+ have_image = toi_sig_data->have_image; -+ toi_message(TOI_IO, TOI_VERBOSE, 0, "Have binary signature. " -+ "Have image is %d.", have_image); -+ if (have_image) -+ toi_message(TOI_IO, TOI_VERBOSE, 0, "header dev_t is " -+ "%x. First block is %d.", -+ toi_sig_data->header_dev_t, -+ toi_sig_data->first_header_block); -+ return toi_sig_data->have_image; -+ } -+ -+ /* -+ * Failing that, try old file allocator headers. -+ */ -+ -+ if (!memcmp(HaveImage, toi_cur_sig_page, strlen(HaveImage))) { -+ have_image = 1; -+ return 1; -+ } -+ -+ have_image = 0; -+ -+ if (!memcmp(NoImage, toi_cur_sig_page, strlen(NoImage))) -+ return 0; -+ -+ /* -+ * Nope? How about swap? -+ */ -+ swap_header_page = (union p_diskpage) toi_cur_sig_page; -+ swap_header = swap_header_page.pointer->swh.magic.magic; -+ -+ /* Normal swapspace? */ -+ for (type = 0; type < 2; type++) -+ if (!memcmp(normal_sigs[type], swap_header, -+ strlen(normal_sigs[type]))) -+ return 0; -+ -+ /* Swsusp or uswsusp? */ -+ for (type = 0; type < 3; type++) -+ if (!memcmp(swsusp_sigs[type], swap_header, -+ strlen(swsusp_sigs[type]))) -+ return 2; -+ -+ /* Old TuxOnIce version? */ -+ if (!memcmp(tuxonice_signature, swap_header, -+ sizeof(tuxonice_signature) - 1)) { -+ toi_message(TOI_IO, TOI_VERBOSE, 0, "Found old TuxOnIce " -+ "signature."); -+ have_old_image = 1; -+ return 3; -+ } -+ -+ return -1; -+} -+ -+/* -+ * Image_exists -+ * -+ * Returns -1 if don't know, otherwise 0 (no) or 1 (yes). -+ */ -+int toi_bio_image_exists(int quiet) -+{ -+ int result; -+ char *orig_sig_page = toi_cur_sig_page; -+ char *msg = NULL; -+ -+ toi_message(TOI_IO, TOI_VERBOSE, 0, "toi_bio_image_exists."); -+ -+ if (!resume_dev_t) { -+ if (!quiet) -+ printk(KERN_INFO "Not even trying to read header " -+ "because resume_dev_t is not set.\n"); -+ return -1; -+ } -+ -+ if (open_resume_dev_t(0, quiet)) -+ return -1; -+ -+ result = toi_check_for_signature(); -+ -+ clear_toi_state(TOI_RESUMED_BEFORE); -+ if (toi_sig_data->resumed_before) -+ set_toi_state(TOI_RESUMED_BEFORE); -+ -+ if (quiet || result == -ENOMEM) -+ goto out; -+ -+ if (result == -1) -+ msg = "TuxOnIce: Unable to find a signature." -+ " Could you have moved a swap file?\n"; -+ else if (!result) -+ msg = "TuxOnIce: No image found.\n"; -+ else if (result == 1) -+ msg = "TuxOnIce: Image found.\n"; -+ else if (result == 2) -+ msg = "TuxOnIce: uswsusp or swsusp image found.\n"; -+ else if (result == 3) -+ msg = "TuxOnIce: Old implementation's signature found.\n"; -+ -+ printk(KERN_INFO "%s", msg); -+ -+out: -+ if (!orig_sig_page) -+ forget_signature_page(); -+ -+ close_resume_dev_t(0); -+ return result; -+} -+ -+int toi_bio_scan_for_image(int quiet) -+{ -+ struct block_device *bdev; -+ char default_name[255] = ""; -+ -+ if (!quiet) -+ printk(KERN_DEBUG "Scanning swap devices for TuxOnIce " -+ "signature...\n"); -+ for (bdev = next_bdev_of_type(NULL, "swap"); bdev; -+ bdev = next_bdev_of_type(bdev, "swap")) { -+ int result; -+ char name[255] = ""; -+ sprintf(name, "%u:%u", MAJOR(bdev->bd_dev), -+ MINOR(bdev->bd_dev)); -+ if (!quiet) -+ printk(KERN_DEBUG "- Trying %s.\n", name); -+ resume_block_device = bdev; -+ resume_dev_t = bdev->bd_dev; -+ -+ result = toi_check_for_signature(); -+ -+ resume_block_device = NULL; -+ resume_dev_t = MKDEV(0, 0); -+ -+ if (!default_name[0]) -+ strcpy(default_name, name); -+ -+ if (result == 1) { -+ /* Got one! */ -+ strcpy(resume_file, name); -+ next_bdev_of_type(bdev, NULL); -+ if (!quiet) -+ printk(KERN_DEBUG " ==> Image found on %s.\n", -+ resume_file); -+ return 1; -+ } -+ forget_signature_page(); -+ } -+ -+ if (!quiet) -+ printk(KERN_DEBUG "TuxOnIce scan: No image found.\n"); -+ strcpy(resume_file, default_name); -+ return 0; -+} -+ -+int toi_bio_get_header_version(void) -+{ -+ return (memcmp(toi_sig_data->sig2, tuxonice_signature, -+ sizeof(tuxonice_signature))) ? -+ 0 : toi_sig_data->header_version; -+ -+} -diff --git a/kernel/power/tuxonice_builtin.c b/kernel/power/tuxonice_builtin.c -new file mode 100644 -index 0000000..d9704f2 ---- /dev/null -+++ b/kernel/power/tuxonice_builtin.c -@@ -0,0 +1,360 @@ -+/* -+ * Copyright (C) 2004-2010 Nigel Cunningham (nigel at tuxonice net) -+ * -+ * This file is released under the GPLv2. -+ */ -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include "tuxonice_io.h" -+#include "tuxonice.h" -+#include "tuxonice_extent.h" -+#include "tuxonice_netlink.h" -+#include "tuxonice_prepare_image.h" -+#include "tuxonice_ui.h" -+#include "tuxonice_sysfs.h" -+#include "tuxonice_pagedir.h" -+#include "tuxonice_modules.h" -+#include "tuxonice_builtin.h" -+#include "tuxonice_power_off.h" -+ -+/* -+ * Highmem related functions (x86 only). -+ */ -+ -+#ifdef CONFIG_HIGHMEM -+ -+/** -+ * copyback_high: Restore highmem pages. -+ * -+ * Highmem data and pbe lists are/can be stored in highmem. -+ * The format is slightly different to the lowmem pbe lists -+ * used for the assembly code: the last pbe in each page is -+ * a struct page * instead of struct pbe *, pointing to the -+ * next page where pbes are stored (or NULL if happens to be -+ * the end of the list). Since we don't want to generate -+ * unnecessary deltas against swsusp code, we use a cast -+ * instead of a union. -+ **/ -+ -+static void copyback_high(void) -+{ -+ struct page *pbe_page = (struct page *) restore_highmem_pblist; -+ struct pbe *this_pbe, *first_pbe; -+ unsigned long *origpage, *copypage; -+ int pbe_index = 1; -+ -+ if (!pbe_page) -+ return; -+ -+ this_pbe = (struct pbe *) kmap_atomic(pbe_page, KM_BOUNCE_READ); -+ first_pbe = this_pbe; -+ -+ while (this_pbe) { -+ int loop = (PAGE_SIZE / sizeof(unsigned long)) - 1; -+ -+ origpage = kmap_atomic((struct page *) this_pbe->orig_address, -+ KM_BIO_DST_IRQ); -+ copypage = kmap_atomic((struct page *) this_pbe->address, -+ KM_BIO_SRC_IRQ); -+ -+ while (loop >= 0) { -+ *(origpage + loop) = *(copypage + loop); -+ loop--; -+ } -+ -+ kunmap_atomic(origpage, KM_BIO_DST_IRQ); -+ kunmap_atomic(copypage, KM_BIO_SRC_IRQ); -+ -+ if (!this_pbe->next) -+ break; -+ -+ if (pbe_index < PBES_PER_PAGE) { -+ this_pbe++; -+ pbe_index++; -+ } else { -+ pbe_page = (struct page *) this_pbe->next; -+ kunmap_atomic(first_pbe, KM_BOUNCE_READ); -+ if (!pbe_page) -+ return; -+ this_pbe = (struct pbe *) kmap_atomic(pbe_page, -+ KM_BOUNCE_READ); -+ first_pbe = this_pbe; -+ pbe_index = 1; -+ } -+ } -+ kunmap_atomic(first_pbe, KM_BOUNCE_READ); -+} -+ -+#else /* CONFIG_HIGHMEM */ -+static void copyback_high(void) { } -+#endif -+ -+char toi_wait_for_keypress_dev_console(int timeout) -+{ -+ int fd, this_timeout = 255; -+ char key = '\0'; -+ struct termios t, t_backup; -+ -+ /* We should be guaranteed /dev/console exists after populate_rootfs() -+ * in init/main.c. -+ */ -+ fd = sys_open("/dev/console", O_RDONLY, 0); -+ if (fd < 0) { -+ printk(KERN_INFO "Couldn't open /dev/console.\n"); -+ return key; -+ } -+ -+ if (sys_ioctl(fd, TCGETS, (long)&t) < 0) -+ goto out_close; -+ -+ memcpy(&t_backup, &t, sizeof(t)); -+ -+ t.c_lflag &= ~(ISIG|ICANON|ECHO); -+ t.c_cc[VMIN] = 0; -+ -+new_timeout: -+ if (timeout > 0) { -+ this_timeout = timeout < 26 ? timeout : 25; -+ timeout -= this_timeout; -+ this_timeout *= 10; -+ } -+ -+ t.c_cc[VTIME] = this_timeout; -+ -+ if (sys_ioctl(fd, TCSETS, (long)&t) < 0) -+ goto out_restore; -+ -+ while (1) { -+ if (sys_read(fd, &key, 1) <= 0) { -+ if (timeout) -+ goto new_timeout; -+ key = '\0'; -+ break; -+ } -+ key = tolower(key); -+ if (test_toi_state(TOI_SANITY_CHECK_PROMPT)) { -+ if (key == 'c') { -+ set_toi_state(TOI_CONTINUE_REQ); -+ break; -+ } else if (key == ' ') -+ break; -+ } else -+ break; -+ } -+ -+out_restore: -+ sys_ioctl(fd, TCSETS, (long)&t_backup); -+out_close: -+ sys_close(fd); -+ -+ return key; -+} -+EXPORT_SYMBOL_GPL(toi_wait_for_keypress_dev_console); -+ -+struct toi_boot_kernel_data toi_bkd __nosavedata -+ __attribute__((aligned(PAGE_SIZE))) = { -+ MY_BOOT_KERNEL_DATA_VERSION, -+ 0, -+#ifdef CONFIG_TOI_REPLACE_SWSUSP -+ (1 << TOI_REPLACE_SWSUSP) | -+#endif -+ (1 << TOI_NO_FLUSHER_THREAD) | -+ (1 << TOI_PAGESET2_FULL) | (1 << TOI_LATE_CPU_HOTPLUG), -+}; -+EXPORT_SYMBOL_GPL(toi_bkd); -+ -+struct block_device *toi_open_by_devnum(dev_t dev) -+{ -+ struct block_device *bdev = bdget(dev); -+ int err = -ENOMEM; -+ if (bdev) -+ err = blkdev_get(bdev, FMODE_READ | FMODE_NDELAY); -+ return err ? ERR_PTR(err) : bdev; -+} -+EXPORT_SYMBOL_GPL(toi_open_by_devnum); -+ -+/** -+ * toi_close_bdev: Close a swap bdev. -+ * -+ * int: The swap entry number to close. -+ */ -+void toi_close_bdev(struct block_device *bdev) -+{ -+ blkdev_put(bdev, FMODE_READ | FMODE_NDELAY); -+} -+EXPORT_SYMBOL_GPL(toi_close_bdev); -+ -+int toi_wait = CONFIG_TOI_DEFAULT_WAIT; -+EXPORT_SYMBOL_GPL(toi_wait); -+ -+struct toi_core_fns *toi_core_fns; -+EXPORT_SYMBOL_GPL(toi_core_fns); -+ -+unsigned long toi_result; -+EXPORT_SYMBOL_GPL(toi_result); -+ -+struct pagedir pagedir1 = {1}; -+EXPORT_SYMBOL_GPL(pagedir1); -+ -+unsigned long toi_get_nonconflicting_page(void) -+{ -+ return toi_core_fns->get_nonconflicting_page(); -+} -+ -+int toi_post_context_save(void) -+{ -+ return toi_core_fns->post_context_save(); -+} -+ -+int try_tuxonice_hibernate(void) -+{ -+ if (!toi_core_fns) -+ return -ENODEV; -+ -+ return toi_core_fns->try_hibernate(); -+} -+ -+static int num_resume_calls; -+#ifdef CONFIG_TOI_IGNORE_LATE_INITCALL -+static int ignore_late_initcall = 1; -+#else -+static int ignore_late_initcall; -+#endif -+ -+int toi_translate_err_default = TOI_CONTINUE_REQ; -+EXPORT_SYMBOL_GPL(toi_translate_err_default); -+ -+void try_tuxonice_resume(void) -+{ -+ /* Don't let it wrap around eventually */ -+ if (num_resume_calls < 2) -+ num_resume_calls++; -+ -+ if (num_resume_calls == 1 && ignore_late_initcall) { -+ printk(KERN_INFO "TuxOnIce: Ignoring late initcall, as requested.\n"); -+ return; -+ } -+ -+ if (toi_core_fns) -+ toi_core_fns->try_resume(); -+ else -+ printk(KERN_INFO "TuxOnIce core not loaded yet.\n"); -+} -+ -+int toi_lowlevel_builtin(void) -+{ -+ int error = 0; -+ -+ save_processor_state(); -+ error = swsusp_arch_suspend(); -+ if (error) -+ printk(KERN_ERR "Error %d hibernating\n", error); -+ -+ /* Restore control flow appears here */ -+ if (!toi_in_hibernate) { -+ copyback_high(); -+ set_toi_state(TOI_NOW_RESUMING); -+ } -+ -+ restore_processor_state(); -+ -+ return error; -+} -+EXPORT_SYMBOL_GPL(toi_lowlevel_builtin); -+ -+unsigned long toi_compress_bytes_in; -+EXPORT_SYMBOL_GPL(toi_compress_bytes_in); -+ -+unsigned long toi_compress_bytes_out; -+EXPORT_SYMBOL_GPL(toi_compress_bytes_out); -+ -+unsigned long toi_state = ((1 << TOI_BOOT_TIME) | -+ (1 << TOI_IGNORE_LOGLEVEL) | -+ (1 << TOI_IO_STOPPED)); -+EXPORT_SYMBOL_GPL(toi_state); -+ -+/* The number of hibernates we have started (some may have been cancelled) */ -+unsigned int nr_hibernates; -+EXPORT_SYMBOL_GPL(nr_hibernates); -+ -+int toi_running; -+EXPORT_SYMBOL_GPL(toi_running); -+ -+__nosavedata int toi_in_hibernate; -+EXPORT_SYMBOL_GPL(toi_in_hibernate); -+ -+__nosavedata struct pbe *restore_highmem_pblist; -+EXPORT_SYMBOL_GPL(restore_highmem_pblist); -+ -+static int __init toi_wait_setup(char *str) -+{ -+ int value; -+ -+ if (sscanf(str, "=%d", &value)) { -+ if (value < -1 || value > 255) -+ printk(KERN_INFO "TuxOnIce_wait outside range -1 to " -+ "255.\n"); -+ else -+ toi_wait = value; -+ } -+ -+ return 1; -+} -+ -+__setup("toi_wait", toi_wait_setup); -+ -+static int __init toi_translate_retry_setup(char *str) -+{ -+ toi_translate_err_default = 0; -+ return 1; -+} -+ -+__setup("toi_translate_retry", toi_translate_retry_setup); -+ -+static int __init toi_debug_setup(char *str) -+{ -+ toi_bkd.toi_action |= (1 << TOI_LOGALL) | (1 << TOI_PAUSE); -+ toi_bkd.toi_debug_state = 255; -+ toi_bkd.toi_default_console_level = 7; -+ return 1; -+} -+ -+__setup("toi_debug_setup", toi_debug_setup); -+ -+static int __init toi_ignore_late_initcall_setup(char *str) -+{ -+ int value; -+ -+ if (sscanf(str, "=%d", &value)) -+ ignore_late_initcall = value; -+ -+ return 1; -+} -+ -+__setup("toi_initramfs_resume_only", toi_ignore_late_initcall_setup); -+ -+int toi_force_no_multithreaded; -+EXPORT_SYMBOL_GPL(toi_force_no_multithreaded); -+ -+static int __init toi_force_no_multithreaded_setup(char *str) -+{ -+ int value; -+ -+ if (sscanf(str, "=%d", &value)) -+ toi_force_no_multithreaded = value; -+ -+ return 1; -+} -+ -+__setup("toi_no_multithreaded", toi_force_no_multithreaded_setup); -diff --git a/kernel/power/tuxonice_builtin.h b/kernel/power/tuxonice_builtin.h -new file mode 100644 -index 0000000..56ede35 ---- /dev/null -+++ b/kernel/power/tuxonice_builtin.h -@@ -0,0 +1,30 @@ -+/* -+ * Copyright (C) 2004-2010 Nigel Cunningham (nigel at tuxonice net) -+ * -+ * This file is released under the GPLv2. -+ */ -+#include -+ -+extern struct toi_core_fns *toi_core_fns; -+extern unsigned long toi_compress_bytes_in, toi_compress_bytes_out; -+extern unsigned int nr_hibernates; -+extern int toi_in_hibernate; -+ -+extern __nosavedata struct pbe *restore_highmem_pblist; -+ -+int toi_lowlevel_builtin(void); -+ -+#ifdef CONFIG_HIGHMEM -+extern __nosavedata struct zone_data *toi_nosave_zone_list; -+extern __nosavedata unsigned long toi_nosave_max_pfn; -+#endif -+ -+extern unsigned long toi_get_nonconflicting_page(void); -+extern int toi_post_context_save(void); -+ -+extern char toi_wait_for_keypress_dev_console(int timeout); -+extern struct block_device *toi_open_by_devnum(dev_t dev); -+extern void toi_close_bdev(struct block_device *bdev); -+extern int toi_wait; -+extern int toi_translate_err_default; -+extern int toi_force_no_multithreaded; -diff --git a/kernel/power/tuxonice_checksum.c b/kernel/power/tuxonice_checksum.c -new file mode 100644 -index 0000000..3ec2c76 ---- /dev/null -+++ b/kernel/power/tuxonice_checksum.c -@@ -0,0 +1,377 @@ -+/* -+ * kernel/power/tuxonice_checksum.c -+ * -+ * Copyright (C) 2006-2010 Nigel Cunningham (nigel at tuxonice net) -+ * -+ * This file is released under the GPLv2. -+ * -+ * This file contains data checksum routines for TuxOnIce, -+ * using cryptoapi. They are used to locate any modifications -+ * made to pageset 2 while we're saving it. -+ */ -+ -+#include -+#include -+#include -+#include -+#include -+ -+#include "tuxonice.h" -+#include "tuxonice_modules.h" -+#include "tuxonice_sysfs.h" -+#include "tuxonice_io.h" -+#include "tuxonice_pageflags.h" -+#include "tuxonice_checksum.h" -+#include "tuxonice_pagedir.h" -+#include "tuxonice_alloc.h" -+ -+static struct toi_module_ops toi_checksum_ops; -+ -+/* Constant at the mo, but I might allow tuning later */ -+static char toi_checksum_name[32] = "md4"; -+/* Bytes per checksum */ -+#define CHECKSUM_SIZE (16) -+ -+#define CHECKSUMS_PER_PAGE ((PAGE_SIZE - sizeof(void *)) / CHECKSUM_SIZE) -+ -+struct cpu_context { -+ struct crypto_hash *transform; -+ struct hash_desc desc; -+ struct scatterlist sg[2]; -+ char *buf; -+}; -+ -+static DEFINE_PER_CPU(struct cpu_context, contexts); -+static int pages_allocated; -+static unsigned long page_list; -+ -+static int toi_num_resaved; -+ -+static unsigned long this_checksum, next_page; -+static int checksum_index; -+ -+static inline int checksum_pages_needed(void) -+{ -+ return DIV_ROUND_UP(pagedir2.size, CHECKSUMS_PER_PAGE); -+} -+ -+/* ---- Local buffer management ---- */ -+ -+/* -+ * toi_checksum_cleanup -+ * -+ * Frees memory allocated for our labours. -+ */ -+static void toi_checksum_cleanup(int ending_cycle) -+{ -+ int cpu; -+ -+ if (ending_cycle) { -+ for_each_online_cpu(cpu) { -+ struct cpu_context *this = &per_cpu(contexts, cpu); -+ if (this->transform) { -+ crypto_free_hash(this->transform); -+ this->transform = NULL; -+ this->desc.tfm = NULL; -+ } -+ -+ if (this->buf) { -+ toi_free_page(27, (unsigned long) this->buf); -+ this->buf = NULL; -+ } -+ } -+ } -+} -+ -+/* -+ * toi_crypto_initialise -+ * -+ * Prepare to do some work by allocating buffers and transforms. -+ * Returns: Int: Zero. Even if we can't set up checksum, we still -+ * seek to hibernate. -+ */ -+static int toi_checksum_initialise(int starting_cycle) -+{ -+ int cpu; -+ -+ if (!(starting_cycle & SYSFS_HIBERNATE) || !toi_checksum_ops.enabled) -+ return 0; -+ -+ if (!*toi_checksum_name) { -+ printk(KERN_INFO "TuxOnIce: No checksum algorithm name set.\n"); -+ return 1; -+ } -+ -+ for_each_online_cpu(cpu) { -+ struct cpu_context *this = &per_cpu(contexts, cpu); -+ struct page *page; -+ -+ this->transform = crypto_alloc_hash(toi_checksum_name, 0, 0); -+ if (IS_ERR(this->transform)) { -+ printk(KERN_INFO "TuxOnIce: Failed to initialise the " -+ "%s checksum algorithm: %ld.\n", -+ toi_checksum_name, (long) this->transform); -+ this->transform = NULL; -+ return 1; -+ } -+ -+ this->desc.tfm = this->transform; -+ this->desc.flags = 0; -+ -+ page = toi_alloc_page(27, GFP_KERNEL); -+ if (!page) -+ return 1; -+ this->buf = page_address(page); -+ sg_init_one(&this->sg[0], this->buf, PAGE_SIZE); -+ } -+ return 0; -+} -+ -+/* -+ * toi_checksum_print_debug_stats -+ * @buffer: Pointer to a buffer into which the debug info will be printed. -+ * @size: Size of the buffer. -+ * -+ * Print information to be recorded for debugging purposes into a buffer. -+ * Returns: Number of characters written to the buffer. -+ */ -+ -+static int toi_checksum_print_debug_stats(char *buffer, int size) -+{ -+ int len; -+ -+ if (!toi_checksum_ops.enabled) -+ return scnprintf(buffer, size, -+ "- Checksumming disabled.\n"); -+ -+ len = scnprintf(buffer, size, "- Checksum method is '%s'.\n", -+ toi_checksum_name); -+ len += scnprintf(buffer + len, size - len, -+ " %d pages resaved in atomic copy.\n", toi_num_resaved); -+ return len; -+} -+ -+static int toi_checksum_memory_needed(void) -+{ -+ return toi_checksum_ops.enabled ? -+ checksum_pages_needed() << PAGE_SHIFT : 0; -+} -+ -+static int toi_checksum_storage_needed(void) -+{ -+ if (toi_checksum_ops.enabled) -+ return strlen(toi_checksum_name) + sizeof(int) + 1; -+ else -+ return 0; -+} -+ -+/* -+ * toi_checksum_save_config_info -+ * @buffer: Pointer to a buffer of size PAGE_SIZE. -+ * -+ * Save informaton needed when reloading the image at resume time. -+ * Returns: Number of bytes used for saving our data. -+ */ -+static int toi_checksum_save_config_info(char *buffer) -+{ -+ int namelen = strlen(toi_checksum_name) + 1; -+ int total_len; -+ -+ *((unsigned int *) buffer) = namelen; -+ strncpy(buffer + sizeof(unsigned int), toi_checksum_name, namelen); -+ total_len = sizeof(unsigned int) + namelen; -+ return total_len; -+} -+ -+/* toi_checksum_load_config_info -+ * @buffer: Pointer to the start of the data. -+ * @size: Number of bytes that were saved. -+ * -+ * Description: Reload information needed for dechecksuming the image at -+ * resume time. -+ */ -+static void toi_checksum_load_config_info(char *buffer, int size) -+{ -+ int namelen; -+ -+ namelen = *((unsigned int *) (buffer)); -+ strncpy(toi_checksum_name, buffer + sizeof(unsigned int), -+ namelen); -+ return; -+} -+ -+/* -+ * Free Checksum Memory -+ */ -+ -+void free_checksum_pages(void) -+{ -+ while (pages_allocated) { -+ unsigned long next = *((unsigned long *) page_list); -+ ClearPageNosave(virt_to_page(page_list)); -+ toi_free_page(15, (unsigned long) page_list); -+ page_list = next; -+ pages_allocated--; -+ } -+} -+ -+/* -+ * Allocate Checksum Memory -+ */ -+ -+int allocate_checksum_pages(void) -+{ -+ int pages_needed = checksum_pages_needed(); -+ -+ if (!toi_checksum_ops.enabled) -+ return 0; -+ -+ while (pages_allocated < pages_needed) { -+ unsigned long *new_page = -+ (unsigned long *) toi_get_zeroed_page(15, TOI_ATOMIC_GFP); -+ if (!new_page) { -+ printk(KERN_ERR "Unable to allocate checksum pages.\n"); -+ return -ENOMEM; -+ } -+ SetPageNosave(virt_to_page(new_page)); -+ (*new_page) = page_list; -+ page_list = (unsigned long) new_page; -+ pages_allocated++; -+ } -+ -+ next_page = (unsigned long) page_list; -+ checksum_index = 0; -+ -+ return 0; -+} -+ -+char *tuxonice_get_next_checksum(void) -+{ -+ if (!toi_checksum_ops.enabled) -+ return NULL; -+ -+ if (checksum_index % CHECKSUMS_PER_PAGE) -+ this_checksum += CHECKSUM_SIZE; -+ else { -+ this_checksum = next_page + sizeof(void *); -+ next_page = *((unsigned long *) next_page); -+ } -+ -+ checksum_index++; -+ return (char *) this_checksum; -+} -+ -+int tuxonice_calc_checksum(struct page *page, char *checksum_locn) -+{ -+ char *pa; -+ int result, cpu = smp_processor_id(); -+ struct cpu_context *ctx = &per_cpu(contexts, cpu); -+ -+ if (!toi_checksum_ops.enabled) -+ return 0; -+ -+ pa = kmap(page); -+ memcpy(ctx->buf, pa, PAGE_SIZE); -+ kunmap(page); -+ result = crypto_hash_digest(&ctx->desc, ctx->sg, PAGE_SIZE, -+ checksum_locn); -+ if (result) -+ printk(KERN_ERR "TuxOnIce checksumming: crypto_hash_digest " -+ "returned %d.\n", result); -+ return result; -+} -+/* -+ * Calculate checksums -+ */ -+ -+void check_checksums(void) -+{ -+ int pfn, index = 0, cpu = smp_processor_id(); -+ char current_checksum[CHECKSUM_SIZE]; -+ struct cpu_context *ctx = &per_cpu(contexts, cpu); -+ -+ if (!toi_checksum_ops.enabled) -+ return; -+ -+ next_page = (unsigned long) page_list; -+ -+ toi_num_resaved = 0; -+ this_checksum = 0; -+ -+ memory_bm_position_reset(pageset2_map); -+ for (pfn = memory_bm_next_pfn(pageset2_map); pfn != BM_END_OF_MAP; -+ pfn = memory_bm_next_pfn(pageset2_map)) { -+ int ret; -+ char *pa; -+ struct page *page = pfn_to_page(pfn); -+ -+ if (index % CHECKSUMS_PER_PAGE) { -+ this_checksum += CHECKSUM_SIZE; -+ } else { -+ this_checksum = next_page + sizeof(void *); -+ next_page = *((unsigned long *) next_page); -+ } -+ -+ /* Done when IRQs disabled so must be atomic */ -+ pa = kmap_atomic(page, KM_USER1); -+ memcpy(ctx->buf, pa, PAGE_SIZE); -+ kunmap_atomic(pa, KM_USER1); -+ ret = crypto_hash_digest(&ctx->desc, ctx->sg, PAGE_SIZE, -+ current_checksum); -+ -+ if (ret) { -+ printk(KERN_INFO "Digest failed. Returned %d.\n", ret); -+ return; -+ } -+ -+ if (memcmp(current_checksum, (char *) this_checksum, -+ CHECKSUM_SIZE)) { -+ SetPageResave(pfn_to_page(pfn)); -+ toi_num_resaved++; -+ if (test_action_state(TOI_ABORT_ON_RESAVE_NEEDED)) -+ set_abort_result(TOI_RESAVE_NEEDED); -+ } -+ -+ index++; -+ } -+} -+ -+static struct toi_sysfs_data sysfs_params[] = { -+ SYSFS_INT("enabled", SYSFS_RW, &toi_checksum_ops.enabled, 0, 1, 0, -+ NULL), -+ SYSFS_BIT("abort_if_resave_needed", SYSFS_RW, &toi_bkd.toi_action, -+ TOI_ABORT_ON_RESAVE_NEEDED, 0) -+}; -+ -+/* -+ * Ops structure. -+ */ -+static struct toi_module_ops toi_checksum_ops = { -+ .type = MISC_MODULE, -+ .name = "checksumming", -+ .directory = "checksum", -+ .module = THIS_MODULE, -+ .initialise = toi_checksum_initialise, -+ .cleanup = toi_checksum_cleanup, -+ .print_debug_info = toi_checksum_print_debug_stats, -+ .save_config_info = toi_checksum_save_config_info, -+ .load_config_info = toi_checksum_load_config_info, -+ .memory_needed = toi_checksum_memory_needed, -+ .storage_needed = toi_checksum_storage_needed, -+ -+ .sysfs_data = sysfs_params, -+ .num_sysfs_entries = sizeof(sysfs_params) / -+ sizeof(struct toi_sysfs_data), -+}; -+ -+/* ---- Registration ---- */ -+int toi_checksum_init(void) -+{ -+ int result = toi_register_module(&toi_checksum_ops); -+ return result; -+} -+ -+void toi_checksum_exit(void) -+{ -+ toi_unregister_module(&toi_checksum_ops); -+} -diff --git a/kernel/power/tuxonice_checksum.h b/kernel/power/tuxonice_checksum.h -new file mode 100644 -index 0000000..0f2812e ---- /dev/null -+++ b/kernel/power/tuxonice_checksum.h -@@ -0,0 +1,31 @@ -+/* -+ * kernel/power/tuxonice_checksum.h -+ * -+ * Copyright (C) 2006-2010 Nigel Cunningham (nigel at tuxonice net) -+ * -+ * This file is released under the GPLv2. -+ * -+ * This file contains data checksum routines for TuxOnIce, -+ * using cryptoapi. They are used to locate any modifications -+ * made to pageset 2 while we're saving it. -+ */ -+ -+#if defined(CONFIG_TOI_CHECKSUM) -+extern int toi_checksum_init(void); -+extern void toi_checksum_exit(void); -+void check_checksums(void); -+int allocate_checksum_pages(void); -+void free_checksum_pages(void); -+char *tuxonice_get_next_checksum(void); -+int tuxonice_calc_checksum(struct page *page, char *checksum_locn); -+#else -+static inline int toi_checksum_init(void) { return 0; } -+static inline void toi_checksum_exit(void) { } -+static inline void check_checksums(void) { }; -+static inline int allocate_checksum_pages(void) { return 0; }; -+static inline void free_checksum_pages(void) { }; -+static inline char *tuxonice_get_next_checksum(void) { return NULL; }; -+static inline int tuxonice_calc_checksum(struct page *page, char *checksum_locn) -+ { return 0; } -+#endif -+ -diff --git a/kernel/power/tuxonice_cluster.c b/kernel/power/tuxonice_cluster.c -new file mode 100644 -index 0000000..0e5a262 ---- /dev/null -+++ b/kernel/power/tuxonice_cluster.c -@@ -0,0 +1,1069 @@ -+/* -+ * kernel/power/tuxonice_cluster.c -+ * -+ * Copyright (C) 2006-2010 Nigel Cunningham (nigel at tuxonice net) -+ * -+ * This file is released under the GPLv2. -+ * -+ * This file contains routines for cluster hibernation support. -+ * -+ * Based on ip autoconfiguration code in net/ipv4/ipconfig.c. -+ * -+ * How does it work? -+ * -+ * There is no 'master' node that tells everyone else what to do. All nodes -+ * send messages to the broadcast address/port, maintain a list of peers -+ * and figure out when to progress to the next step in hibernating or resuming. -+ * This makes us more fault tolerant when it comes to nodes coming and going -+ * (which may be more of an issue if we're hibernating when power supplies -+ * are being unreliable). -+ * -+ * At boot time, we start a ktuxonice thread that handles communication with -+ * other nodes. This node maintains a state machine that controls our progress -+ * through hibernating and resuming, keeping us in step with other nodes. Nodes -+ * are identified by their hw address. -+ * -+ * On startup, the node sends CLUSTER_PING on the configured interface's -+ * broadcast address, port $toi_cluster_port (see below) and begins to listen -+ * for other broadcast messages. CLUSTER_PING messages are repeated at -+ * intervals of 5 minutes, with a random offset to spread traffic out. -+ * -+ * A hibernation cycle is initiated from any node via -+ * -+ * echo > /sys/power/tuxonice/do_hibernate -+ * -+ * and (possibily) the hibernate script. At each step of the process, the node -+ * completes its work, and waits for all other nodes to signal completion of -+ * their work (or timeout) before progressing to the next step. -+ * -+ * Request/state Action before reply Possible reply Next state -+ * HIBERNATE capable, pre-script HIBERNATE|ACK NODE_PREP -+ * HIBERNATE|NACK INIT_0 -+ * -+ * PREP prepare_image PREP|ACK IMAGE_WRITE -+ * PREP|NACK INIT_0 -+ * ABORT RUNNING -+ * -+ * IO write image IO|ACK power off -+ * ABORT POST_RESUME -+ * -+ * (Boot time) check for image IMAGE|ACK RESUME_PREP -+ * (Note 1) -+ * IMAGE|NACK (Note 2) -+ * -+ * PREP prepare read image PREP|ACK IMAGE_READ -+ * PREP|NACK (As NACK_IMAGE) -+ * -+ * IO read image IO|ACK POST_RESUME -+ * -+ * POST_RESUME thaw, post-script RUNNING -+ * -+ * INIT_0 init 0 -+ * -+ * Other messages: -+ * -+ * - PING: Request for all other live nodes to send a PONG. Used at startup to -+ * announce presence, when a node is suspected dead and periodically, in case -+ * segments of the network are [un]plugged. -+ * -+ * - PONG: Response to a PING. -+ * -+ * - ABORT: Request to cancel writing an image. -+ * -+ * - BYE: Notification that this node is shutting down. -+ * -+ * Note 1: Repeated at 3s intervals until we continue to boot/resume, so that -+ * nodes which are slower to start up can get state synchronised. If a node -+ * starting up sees other nodes sending RESUME_PREP or IMAGE_READ, it may send -+ * ACK_IMAGE and they will wait for it to catch up. If it sees ACK_READ, it -+ * must invalidate its image (if any) and boot normally. -+ * -+ * Note 2: May occur when one node lost power or powered off while others -+ * hibernated. This node waits for others to complete resuming (ACK_READ) -+ * before completing its boot, so that it appears as a fail node restarting. -+ * -+ * If any node has an image, then it also has a list of nodes that hibernated -+ * in synchronisation with it. The node will wait for other nodes to appear -+ * or timeout before beginning its restoration. -+ * -+ * If a node has no image, it needs to wait, in case other nodes which do have -+ * an image are going to resume, but are taking longer to announce their -+ * presence. For this reason, the user can specify a timeout value and a number -+ * of nodes detected before we just continue. (We might want to assume in a -+ * cluster of, say, 15 nodes, if 8 others have booted without finding an image, -+ * the remaining nodes will too. This might help in situations where some nodes -+ * are much slower to boot, or more subject to hardware failures or such like). -+ */ -+ -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+ -+#include "tuxonice.h" -+#include "tuxonice_modules.h" -+#include "tuxonice_sysfs.h" -+#include "tuxonice_alloc.h" -+#include "tuxonice_io.h" -+ -+#if 1 -+#define PRINTK(a, b...) do { printk(a, ##b); } while (0) -+#else -+#define PRINTK(a, b...) do { } while (0) -+#endif -+ -+static int loopback_mode; -+static int num_local_nodes = 1; -+#define MAX_LOCAL_NODES 8 -+#define SADDR (loopback_mode ? b->sid : h->saddr) -+ -+#define MYNAME "TuxOnIce Clustering" -+ -+enum cluster_message { -+ MSG_ACK = 1, -+ MSG_NACK = 2, -+ MSG_PING = 4, -+ MSG_ABORT = 8, -+ MSG_BYE = 16, -+ MSG_HIBERNATE = 32, -+ MSG_IMAGE = 64, -+ MSG_IO = 128, -+ MSG_RUNNING = 256 -+}; -+ -+static char *str_message(int message) -+{ -+ switch (message) { -+ case 4: -+ return "Ping"; -+ case 8: -+ return "Abort"; -+ case 9: -+ return "Abort acked"; -+ case 10: -+ return "Abort nacked"; -+ case 16: -+ return "Bye"; -+ case 17: -+ return "Bye acked"; -+ case 18: -+ return "Bye nacked"; -+ case 32: -+ return "Hibernate request"; -+ case 33: -+ return "Hibernate ack"; -+ case 34: -+ return "Hibernate nack"; -+ case 64: -+ return "Image exists?"; -+ case 65: -+ return "Image does exist"; -+ case 66: -+ return "No image here"; -+ case 128: -+ return "I/O"; -+ case 129: -+ return "I/O okay"; -+ case 130: -+ return "I/O failed"; -+ case 256: -+ return "Running"; -+ default: -+ printk(KERN_ERR "Unrecognised message %d.\n", message); -+ return "Unrecognised message (see dmesg)"; -+ } -+} -+ -+#define MSG_ACK_MASK (MSG_ACK | MSG_NACK) -+#define MSG_STATE_MASK (~MSG_ACK_MASK) -+ -+struct node_info { -+ struct list_head member_list; -+ wait_queue_head_t member_events; -+ spinlock_t member_list_lock; -+ spinlock_t receive_lock; -+ int peer_count, ignored_peer_count; -+ struct toi_sysfs_data sysfs_data; -+ enum cluster_message current_message; -+}; -+ -+struct node_info node_array[MAX_LOCAL_NODES]; -+ -+struct cluster_member { -+ __be32 addr; -+ enum cluster_message message; -+ struct list_head list; -+ int ignore; -+}; -+ -+#define toi_cluster_port_send 3501 -+#define toi_cluster_port_recv 3502 -+ -+static struct net_device *net_dev; -+static struct toi_module_ops toi_cluster_ops; -+ -+static int toi_recv(struct sk_buff *skb, struct net_device *dev, -+ struct packet_type *pt, struct net_device *orig_dev); -+ -+static struct packet_type toi_cluster_packet_type = { -+ .type = __constant_htons(ETH_P_IP), -+ .func = toi_recv, -+}; -+ -+struct toi_pkt { /* BOOTP packet format */ -+ struct iphdr iph; /* IP header */ -+ struct udphdr udph; /* UDP header */ -+ u8 htype; /* HW address type */ -+ u8 hlen; /* HW address length */ -+ __be32 xid; /* Transaction ID */ -+ __be16 secs; /* Seconds since we started */ -+ __be16 flags; /* Just what it says */ -+ u8 hw_addr[16]; /* Sender's HW address */ -+ u16 message; /* Message */ -+ unsigned long sid; /* Source ID for loopback testing */ -+}; -+ -+static char toi_cluster_iface[IFNAMSIZ] = CONFIG_TOI_DEFAULT_CLUSTER_INTERFACE; -+ -+static int added_pack; -+ -+static int others_have_image; -+ -+/* Key used to allow multiple clusters on the same lan */ -+static char toi_cluster_key[32] = CONFIG_TOI_DEFAULT_CLUSTER_KEY; -+static char pre_hibernate_script[255] = -+ CONFIG_TOI_DEFAULT_CLUSTER_PRE_HIBERNATE; -+static char post_hibernate_script[255] = -+ CONFIG_TOI_DEFAULT_CLUSTER_POST_HIBERNATE; -+ -+/* List of cluster members */ -+static unsigned long continue_delay = 5 * HZ; -+static unsigned long cluster_message_timeout = 3 * HZ; -+ -+/* === Membership list === */ -+ -+static void print_member_info(int index) -+{ -+ struct cluster_member *this; -+ -+ printk(KERN_INFO "==> Dumping node %d.\n", index); -+ -+ list_for_each_entry(this, &node_array[index].member_list, list) -+ printk(KERN_INFO "%d.%d.%d.%d last message %s. %s\n", -+ NIPQUAD(this->addr), -+ str_message(this->message), -+ this->ignore ? "(Ignored)" : ""); -+ printk(KERN_INFO "== Done ==\n"); -+} -+ -+static struct cluster_member *__find_member(int index, __be32 addr) -+{ -+ struct cluster_member *this; -+ -+ list_for_each_entry(this, &node_array[index].member_list, list) { -+ if (this->addr != addr) -+ continue; -+ -+ return this; -+ } -+ -+ return NULL; -+} -+ -+static void set_ignore(int index, __be32 addr, struct cluster_member *this) -+{ -+ if (this->ignore) { -+ PRINTK("Node %d already ignoring %d.%d.%d.%d.\n", -+ index, NIPQUAD(addr)); -+ return; -+ } -+ -+ PRINTK("Node %d sees node %d.%d.%d.%d now being ignored.\n", -+ index, NIPQUAD(addr)); -+ this->ignore = 1; -+ node_array[index].ignored_peer_count++; -+} -+ -+static int __add_update_member(int index, __be32 addr, int message) -+{ -+ struct cluster_member *this; -+ -+ this = __find_member(index, addr); -+ if (this) { -+ if (this->message != message) { -+ this->message = message; -+ if ((message & MSG_NACK) && -+ (message & (MSG_HIBERNATE | MSG_IMAGE | MSG_IO))) -+ set_ignore(index, addr, this); -+ PRINTK("Node %d sees node %d.%d.%d.%d now sending " -+ "%s.\n", index, NIPQUAD(addr), -+ str_message(message)); -+ wake_up(&node_array[index].member_events); -+ } -+ return 0; -+ } -+ -+ this = (struct cluster_member *) toi_kzalloc(36, -+ sizeof(struct cluster_member), GFP_KERNEL); -+ -+ if (!this) -+ return -1; -+ -+ this->addr = addr; -+ this->message = message; -+ this->ignore = 0; -+ INIT_LIST_HEAD(&this->list); -+ -+ node_array[index].peer_count++; -+ -+ PRINTK("Node %d sees node %d.%d.%d.%d sending %s.\n", index, -+ NIPQUAD(addr), str_message(message)); -+ -+ if ((message & MSG_NACK) && -+ (message & (MSG_HIBERNATE | MSG_IMAGE | MSG_IO))) -+ set_ignore(index, addr, this); -+ list_add_tail(&this->list, &node_array[index].member_list); -+ return 1; -+} -+ -+static int add_update_member(int index, __be32 addr, int message) -+{ -+ int result; -+ unsigned long flags; -+ spin_lock_irqsave(&node_array[index].member_list_lock, flags); -+ result = __add_update_member(index, addr, message); -+ spin_unlock_irqrestore(&node_array[index].member_list_lock, flags); -+ -+ print_member_info(index); -+ -+ wake_up(&node_array[index].member_events); -+ -+ return result; -+} -+ -+static void del_member(int index, __be32 addr) -+{ -+ struct cluster_member *this; -+ unsigned long flags; -+ -+ spin_lock_irqsave(&node_array[index].member_list_lock, flags); -+ this = __find_member(index, addr); -+ -+ if (this) { -+ list_del_init(&this->list); -+ toi_kfree(36, this, sizeof(*this)); -+ node_array[index].peer_count--; -+ } -+ -+ spin_unlock_irqrestore(&node_array[index].member_list_lock, flags); -+} -+ -+/* === Message transmission === */ -+ -+static void toi_send_if(int message, unsigned long my_id); -+ -+/* -+ * Process received TOI packet. -+ */ -+static int toi_recv(struct sk_buff *skb, struct net_device *dev, -+ struct packet_type *pt, struct net_device *orig_dev) -+{ -+ struct toi_pkt *b; -+ struct iphdr *h; -+ int len, result, index; -+ unsigned long addr, message, ack; -+ -+ /* Perform verifications before taking the lock. */ -+ if (skb->pkt_type == PACKET_OTHERHOST) -+ goto drop; -+ -+ if (dev != net_dev) -+ goto drop; -+ -+ skb = skb_share_check(skb, GFP_ATOMIC); -+ if (!skb) -+ return NET_RX_DROP; -+ -+ if (!pskb_may_pull(skb, -+ sizeof(struct iphdr) + -+ sizeof(struct udphdr))) -+ goto drop; -+ -+ b = (struct toi_pkt *)skb_network_header(skb); -+ h = &b->iph; -+ -+ if (h->ihl != 5 || h->version != 4 || h->protocol != IPPROTO_UDP) -+ goto drop; -+ -+ /* Fragments are not supported */ -+ if (h->frag_off & htons(IP_OFFSET | IP_MF)) { -+ if (net_ratelimit()) -+ printk(KERN_ERR "TuxOnIce: Ignoring fragmented " -+ "cluster message.\n"); -+ goto drop; -+ } -+ -+ if (skb->len < ntohs(h->tot_len)) -+ goto drop; -+ -+ if (ip_fast_csum((char *) h, h->ihl)) -+ goto drop; -+ -+ if (b->udph.source != htons(toi_cluster_port_send) || -+ b->udph.dest != htons(toi_cluster_port_recv)) -+ goto drop; -+ -+ if (ntohs(h->tot_len) < ntohs(b->udph.len) + sizeof(struct iphdr)) -+ goto drop; -+ -+ len = ntohs(b->udph.len) - sizeof(struct udphdr); -+ -+ /* Ok the front looks good, make sure we can get at the rest. */ -+ if (!pskb_may_pull(skb, skb->len)) -+ goto drop; -+ -+ b = (struct toi_pkt *)skb_network_header(skb); -+ h = &b->iph; -+ -+ addr = SADDR; -+ PRINTK(">>> Message %s received from " NIPQUAD_FMT ".\n", -+ str_message(b->message), NIPQUAD(addr)); -+ -+ message = b->message & MSG_STATE_MASK; -+ ack = b->message & MSG_ACK_MASK; -+ -+ for (index = 0; index < num_local_nodes; index++) { -+ int new_message = node_array[index].current_message, -+ old_message = new_message; -+ -+ if (index == SADDR || !old_message) { -+ PRINTK("Ignoring node %d (offline or self).\n", index); -+ continue; -+ } -+ -+ /* One message at a time, please. */ -+ spin_lock(&node_array[index].receive_lock); -+ -+ result = add_update_member(index, SADDR, b->message); -+ if (result == -1) { -+ printk(KERN_INFO "Failed to add new cluster member " -+ NIPQUAD_FMT ".\n", -+ NIPQUAD(addr)); -+ goto drop_unlock; -+ } -+ -+ switch (b->message & MSG_STATE_MASK) { -+ case MSG_PING: -+ break; -+ case MSG_ABORT: -+ break; -+ case MSG_BYE: -+ break; -+ case MSG_HIBERNATE: -+ /* Can I hibernate? */ -+ new_message = MSG_HIBERNATE | -+ ((index & 1) ? MSG_NACK : MSG_ACK); -+ break; -+ case MSG_IMAGE: -+ /* Can I resume? */ -+ new_message = MSG_IMAGE | -+ ((index & 1) ? MSG_NACK : MSG_ACK); -+ if (new_message != old_message) -+ printk(KERN_ERR "Setting whether I can resume " -+ "to %d.\n", new_message); -+ break; -+ case MSG_IO: -+ new_message = MSG_IO | MSG_ACK; -+ break; -+ case MSG_RUNNING: -+ break; -+ default: -+ if (net_ratelimit()) -+ printk(KERN_ERR "Unrecognised TuxOnIce cluster" -+ " message %d from " NIPQUAD_FMT ".\n", -+ b->message, NIPQUAD(addr)); -+ }; -+ -+ if (old_message != new_message) { -+ node_array[index].current_message = new_message; -+ printk(KERN_INFO ">>> Sending new message for node " -+ "%d.\n", index); -+ toi_send_if(new_message, index); -+ } else if (!ack) { -+ printk(KERN_INFO ">>> Resending message for node %d.\n", -+ index); -+ toi_send_if(new_message, index); -+ } -+drop_unlock: -+ spin_unlock(&node_array[index].receive_lock); -+ }; -+ -+drop: -+ /* Throw the packet out. */ -+ kfree_skb(skb); -+ -+ return 0; -+} -+ -+/* -+ * Send cluster message to single interface. -+ */ -+static void toi_send_if(int message, unsigned long my_id) -+{ -+ struct sk_buff *skb; -+ struct toi_pkt *b; -+ int hh_len = LL_RESERVED_SPACE(net_dev); -+ struct iphdr *h; -+ -+ /* Allocate packet */ -+ skb = alloc_skb(sizeof(struct toi_pkt) + hh_len + 15, GFP_KERNEL); -+ if (!skb) -+ return; -+ skb_reserve(skb, hh_len); -+ b = (struct toi_pkt *) skb_put(skb, sizeof(struct toi_pkt)); -+ memset(b, 0, sizeof(struct toi_pkt)); -+ -+ /* Construct IP header */ -+ skb_reset_network_header(skb); -+ h = ip_hdr(skb); -+ h->version = 4; -+ h->ihl = 5; -+ h->tot_len = htons(sizeof(struct toi_pkt)); -+ h->frag_off = htons(IP_DF); -+ h->ttl = 64; -+ h->protocol = IPPROTO_UDP; -+ h->daddr = htonl(INADDR_BROADCAST); -+ h->check = ip_fast_csum((unsigned char *) h, h->ihl); -+ -+ /* Construct UDP header */ -+ b->udph.source = htons(toi_cluster_port_send); -+ b->udph.dest = htons(toi_cluster_port_recv); -+ b->udph.len = htons(sizeof(struct toi_pkt) - sizeof(struct iphdr)); -+ /* UDP checksum not calculated -- explicitly allowed in BOOTP RFC */ -+ -+ /* Construct message */ -+ b->message = message; -+ b->sid = my_id; -+ b->htype = net_dev->type; /* can cause undefined behavior */ -+ b->hlen = net_dev->addr_len; -+ memcpy(b->hw_addr, net_dev->dev_addr, net_dev->addr_len); -+ b->secs = htons(3); /* 3 seconds */ -+ -+ /* Chain packet down the line... */ -+ skb->dev = net_dev; -+ skb->protocol = htons(ETH_P_IP); -+ if ((dev_hard_header(skb, net_dev, ntohs(skb->protocol), -+ net_dev->broadcast, net_dev->dev_addr, skb->len) < 0) || -+ dev_queue_xmit(skb) < 0) -+ printk(KERN_INFO "E"); -+} -+ -+/* ========================================= */ -+ -+/* kTOICluster */ -+ -+static atomic_t num_cluster_threads; -+static DECLARE_WAIT_QUEUE_HEAD(clusterd_events); -+ -+static int kTOICluster(void *data) -+{ -+ unsigned long my_id; -+ -+ my_id = atomic_add_return(1, &num_cluster_threads) - 1; -+ node_array[my_id].current_message = (unsigned long) data; -+ -+ PRINTK("kTOICluster daemon %lu starting.\n", my_id); -+ -+ current->flags |= PF_NOFREEZE; -+ -+ while (node_array[my_id].current_message) { -+ toi_send_if(node_array[my_id].current_message, my_id); -+ sleep_on_timeout(&clusterd_events, -+ cluster_message_timeout); -+ PRINTK("Link state %lu is %d.\n", my_id, -+ node_array[my_id].current_message); -+ } -+ -+ toi_send_if(MSG_BYE, my_id); -+ atomic_dec(&num_cluster_threads); -+ wake_up(&clusterd_events); -+ -+ PRINTK("kTOICluster daemon %lu exiting.\n", my_id); -+ __set_current_state(TASK_RUNNING); -+ return 0; -+} -+ -+static void kill_clusterd(void) -+{ -+ int i; -+ -+ for (i = 0; i < num_local_nodes; i++) { -+ if (node_array[i].current_message) { -+ PRINTK("Seeking to kill clusterd %d.\n", i); -+ node_array[i].current_message = 0; -+ } -+ } -+ wait_event(clusterd_events, -+ !atomic_read(&num_cluster_threads)); -+ PRINTK("All cluster daemons have exited.\n"); -+} -+ -+static int peers_not_in_message(int index, int message, int precise) -+{ -+ struct cluster_member *this; -+ unsigned long flags; -+ int result = 0; -+ -+ spin_lock_irqsave(&node_array[index].member_list_lock, flags); -+ list_for_each_entry(this, &node_array[index].member_list, list) { -+ if (this->ignore) -+ continue; -+ -+ PRINTK("Peer %d.%d.%d.%d sending %s. " -+ "Seeking %s.\n", -+ NIPQUAD(this->addr), -+ str_message(this->message), str_message(message)); -+ if ((precise ? this->message : -+ this->message & MSG_STATE_MASK) != -+ message) -+ result++; -+ } -+ spin_unlock_irqrestore(&node_array[index].member_list_lock, flags); -+ PRINTK("%d peers in sought message.\n", result); -+ return result; -+} -+ -+static void reset_ignored(int index) -+{ -+ struct cluster_member *this; -+ unsigned long flags; -+ -+ spin_lock_irqsave(&node_array[index].member_list_lock, flags); -+ list_for_each_entry(this, &node_array[index].member_list, list) -+ this->ignore = 0; -+ node_array[index].ignored_peer_count = 0; -+ spin_unlock_irqrestore(&node_array[index].member_list_lock, flags); -+} -+ -+static int peers_in_message(int index, int message, int precise) -+{ -+ return node_array[index].peer_count - -+ node_array[index].ignored_peer_count - -+ peers_not_in_message(index, message, precise); -+} -+ -+static int time_to_continue(int index, unsigned long start, int message) -+{ -+ int first = peers_not_in_message(index, message, 0); -+ int second = peers_in_message(index, message, 1); -+ -+ PRINTK("First part returns %d, second returns %d.\n", first, second); -+ -+ if (!first && !second) { -+ PRINTK("All peers answered message %d.\n", -+ message); -+ return 1; -+ } -+ -+ if (time_after(jiffies, start + continue_delay)) { -+ PRINTK("Timeout reached.\n"); -+ return 1; -+ } -+ -+ PRINTK("Not time to continue yet (%lu < %lu).\n", jiffies, -+ start + continue_delay); -+ return 0; -+} -+ -+void toi_initiate_cluster_hibernate(void) -+{ -+ int result; -+ unsigned long start; -+ -+ result = do_toi_step(STEP_HIBERNATE_PREPARE_IMAGE); -+ if (result) -+ return; -+ -+ toi_send_if(MSG_HIBERNATE, 0); -+ -+ start = jiffies; -+ wait_event(node_array[0].member_events, -+ time_to_continue(0, start, MSG_HIBERNATE)); -+ -+ if (test_action_state(TOI_FREEZER_TEST)) { -+ toi_send_if(MSG_ABORT, 0); -+ -+ start = jiffies; -+ wait_event(node_array[0].member_events, -+ time_to_continue(0, start, MSG_RUNNING)); -+ -+ do_toi_step(STEP_QUIET_CLEANUP); -+ return; -+ } -+ -+ toi_send_if(MSG_IO, 0); -+ -+ result = do_toi_step(STEP_HIBERNATE_SAVE_IMAGE); -+ if (result) -+ return; -+ -+ /* This code runs at resume time too! */ -+ if (toi_in_hibernate) -+ result = do_toi_step(STEP_HIBERNATE_POWERDOWN); -+} -+EXPORT_SYMBOL_GPL(toi_initiate_cluster_hibernate); -+ -+/* toi_cluster_print_debug_stats -+ * -+ * Description: Print information to be recorded for debugging purposes into a -+ * buffer. -+ * Arguments: buffer: Pointer to a buffer into which the debug info will be -+ * printed. -+ * size: Size of the buffer. -+ * Returns: Number of characters written to the buffer. -+ */ -+static int toi_cluster_print_debug_stats(char *buffer, int size) -+{ -+ int len; -+ -+ if (strlen(toi_cluster_iface)) -+ len = scnprintf(buffer, size, -+ "- Cluster interface is '%s'.\n", -+ toi_cluster_iface); -+ else -+ len = scnprintf(buffer, size, -+ "- Cluster support is disabled.\n"); -+ return len; -+} -+ -+/* cluster_memory_needed -+ * -+ * Description: Tell the caller how much memory we need to operate during -+ * hibernate/resume. -+ * Returns: Unsigned long. Maximum number of bytes of memory required for -+ * operation. -+ */ -+static int toi_cluster_memory_needed(void) -+{ -+ return 0; -+} -+ -+static int toi_cluster_storage_needed(void) -+{ -+ return 1 + strlen(toi_cluster_iface); -+} -+ -+/* toi_cluster_save_config_info -+ * -+ * Description: Save informaton needed when reloading the image at resume time. -+ * Arguments: Buffer: Pointer to a buffer of size PAGE_SIZE. -+ * Returns: Number of bytes used for saving our data. -+ */ -+static int toi_cluster_save_config_info(char *buffer) -+{ -+ strcpy(buffer, toi_cluster_iface); -+ return strlen(toi_cluster_iface + 1); -+} -+ -+/* toi_cluster_load_config_info -+ * -+ * Description: Reload information needed for declustering the image at -+ * resume time. -+ * Arguments: Buffer: Pointer to the start of the data. -+ * Size: Number of bytes that were saved. -+ */ -+static void toi_cluster_load_config_info(char *buffer, int size) -+{ -+ strncpy(toi_cluster_iface, buffer, size); -+ return; -+} -+ -+static void cluster_startup(void) -+{ -+ int have_image = do_check_can_resume(), i; -+ unsigned long start = jiffies, initial_message; -+ struct task_struct *p; -+ -+ initial_message = MSG_IMAGE; -+ -+ have_image = 1; -+ -+ for (i = 0; i < num_local_nodes; i++) { -+ PRINTK("Starting ktoiclusterd %d.\n", i); -+ p = kthread_create(kTOICluster, (void *) initial_message, -+ "ktoiclusterd/%d", i); -+ if (IS_ERR(p)) { -+ printk(KERN_ERR "Failed to start ktoiclusterd.\n"); -+ return; -+ } -+ -+ wake_up_process(p); -+ } -+ -+ /* Wait for delay or someone else sending first message */ -+ wait_event(node_array[0].member_events, time_to_continue(0, start, -+ MSG_IMAGE)); -+ -+ others_have_image = peers_in_message(0, MSG_IMAGE | MSG_ACK, 1); -+ -+ printk(KERN_INFO "Continuing. I %shave an image. Peers with image:" -+ " %d.\n", have_image ? "" : "don't ", others_have_image); -+ -+ if (have_image) { -+ int result; -+ -+ /* Start to resume */ -+ printk(KERN_INFO " === Starting to resume === \n"); -+ node_array[0].current_message = MSG_IO; -+ toi_send_if(MSG_IO, 0); -+ -+ /* result = do_toi_step(STEP_RESUME_LOAD_PS1); */ -+ result = 0; -+ -+ if (!result) { -+ /* -+ * Atomic restore - we'll come back in the hibernation -+ * path. -+ */ -+ -+ /* result = do_toi_step(STEP_RESUME_DO_RESTORE); */ -+ result = 0; -+ -+ /* do_toi_step(STEP_QUIET_CLEANUP); */ -+ } -+ -+ node_array[0].current_message |= MSG_NACK; -+ -+ /* For debugging - disable for real life? */ -+ wait_event(node_array[0].member_events, -+ time_to_continue(0, start, MSG_IO)); -+ } -+ -+ if (others_have_image) { -+ /* Wait for them to resume */ -+ printk(KERN_INFO "Waiting for other nodes to resume.\n"); -+ start = jiffies; -+ wait_event(node_array[0].member_events, -+ time_to_continue(0, start, MSG_RUNNING)); -+ if (peers_not_in_message(0, MSG_RUNNING, 0)) -+ printk(KERN_INFO "Timed out while waiting for other " -+ "nodes to resume.\n"); -+ } -+ -+ /* Find out whether an image exists here. Send ACK_IMAGE or NACK_IMAGE -+ * as appropriate. -+ * -+ * If we don't have an image: -+ * - Wait until someone else says they have one, or conditions are met -+ * for continuing to boot (n machines or t seconds). -+ * - If anyone has an image, wait for them to resume before continuing -+ * to boot. -+ * -+ * If we have an image: -+ * - Wait until conditions are met before continuing to resume (n -+ * machines or t seconds). Send RESUME_PREP and freeze processes. -+ * NACK_PREP if freezing fails (shouldn't) and follow logic for -+ * us having no image above. On success, wait for [N]ACK_PREP from -+ * other machines. Read image (including atomic restore) until done. -+ * Wait for ACK_READ from others (should never fail). Thaw processes -+ * and do post-resume. (The section after the atomic restore is done -+ * via the code for hibernating). -+ */ -+ -+ node_array[0].current_message = MSG_RUNNING; -+} -+ -+/* toi_cluster_open_iface -+ * -+ * Description: Prepare to use an interface. -+ */ -+ -+static int toi_cluster_open_iface(void) -+{ -+ struct net_device *dev; -+ -+ rtnl_lock(); -+ -+ for_each_netdev(&init_net, dev) { -+ if (/* dev == &init_net.loopback_dev || */ -+ strcmp(dev->name, toi_cluster_iface)) -+ continue; -+ -+ net_dev = dev; -+ break; -+ } -+ -+ rtnl_unlock(); -+ -+ if (!net_dev) { -+ printk(KERN_ERR MYNAME ": Device %s not found.\n", -+ toi_cluster_iface); -+ return -ENODEV; -+ } -+ -+ dev_add_pack(&toi_cluster_packet_type); -+ added_pack = 1; -+ -+ loopback_mode = (net_dev == init_net.loopback_dev); -+ num_local_nodes = loopback_mode ? 8 : 1; -+ -+ PRINTK("Loopback mode is %s. Number of local nodes is %d.\n", -+ loopback_mode ? "on" : "off", num_local_nodes); -+ -+ cluster_startup(); -+ return 0; -+} -+ -+/* toi_cluster_close_iface -+ * -+ * Description: Stop using an interface. -+ */ -+ -+static int toi_cluster_close_iface(void) -+{ -+ kill_clusterd(); -+ if (added_pack) { -+ dev_remove_pack(&toi_cluster_packet_type); -+ added_pack = 0; -+ } -+ return 0; -+} -+ -+static void write_side_effect(void) -+{ -+ if (toi_cluster_ops.enabled) { -+ toi_cluster_open_iface(); -+ set_toi_state(TOI_CLUSTER_MODE); -+ } else { -+ toi_cluster_close_iface(); -+ clear_toi_state(TOI_CLUSTER_MODE); -+ } -+} -+ -+static void node_write_side_effect(void) -+{ -+} -+ -+/* -+ * data for our sysfs entries. -+ */ -+static struct toi_sysfs_data sysfs_params[] = { -+ SYSFS_STRING("interface", SYSFS_RW, toi_cluster_iface, IFNAMSIZ, 0, -+ NULL), -+ SYSFS_INT("enabled", SYSFS_RW, &toi_cluster_ops.enabled, 0, 1, 0, -+ write_side_effect), -+ SYSFS_STRING("cluster_name", SYSFS_RW, toi_cluster_key, 32, 0, NULL), -+ SYSFS_STRING("pre-hibernate-script", SYSFS_RW, pre_hibernate_script, -+ 256, 0, NULL), -+ SYSFS_STRING("post-hibernate-script", SYSFS_RW, post_hibernate_script, -+ 256, 0, STRING), -+ SYSFS_UL("continue_delay", SYSFS_RW, &continue_delay, HZ / 2, 60 * HZ, -+ 0) -+}; -+ -+/* -+ * Ops structure. -+ */ -+ -+static struct toi_module_ops toi_cluster_ops = { -+ .type = FILTER_MODULE, -+ .name = "Cluster", -+ .directory = "cluster", -+ .module = THIS_MODULE, -+ .memory_needed = toi_cluster_memory_needed, -+ .print_debug_info = toi_cluster_print_debug_stats, -+ .save_config_info = toi_cluster_save_config_info, -+ .load_config_info = toi_cluster_load_config_info, -+ .storage_needed = toi_cluster_storage_needed, -+ -+ .sysfs_data = sysfs_params, -+ .num_sysfs_entries = sizeof(sysfs_params) / -+ sizeof(struct toi_sysfs_data), -+}; -+ -+/* ---- Registration ---- */ -+ -+#ifdef MODULE -+#define INIT static __init -+#define EXIT static __exit -+#else -+#define INIT -+#define EXIT -+#endif -+ -+INIT int toi_cluster_init(void) -+{ -+ int temp = toi_register_module(&toi_cluster_ops), i; -+ struct kobject *kobj = toi_cluster_ops.dir_kobj; -+ -+ for (i = 0; i < MAX_LOCAL_NODES; i++) { -+ node_array[i].current_message = 0; -+ INIT_LIST_HEAD(&node_array[i].member_list); -+ init_waitqueue_head(&node_array[i].member_events); -+ spin_lock_init(&node_array[i].member_list_lock); -+ spin_lock_init(&node_array[i].receive_lock); -+ -+ /* Set up sysfs entry */ -+ node_array[i].sysfs_data.attr.name = toi_kzalloc(8, -+ sizeof(node_array[i].sysfs_data.attr.name), -+ GFP_KERNEL); -+ sprintf((char *) node_array[i].sysfs_data.attr.name, "node_%d", -+ i); -+ node_array[i].sysfs_data.attr.mode = SYSFS_RW; -+ node_array[i].sysfs_data.type = TOI_SYSFS_DATA_INTEGER; -+ node_array[i].sysfs_data.flags = 0; -+ node_array[i].sysfs_data.data.integer.variable = -+ (int *) &node_array[i].current_message; -+ node_array[i].sysfs_data.data.integer.minimum = 0; -+ node_array[i].sysfs_data.data.integer.maximum = INT_MAX; -+ node_array[i].sysfs_data.write_side_effect = -+ node_write_side_effect; -+ toi_register_sysfs_file(kobj, &node_array[i].sysfs_data); -+ } -+ -+ toi_cluster_ops.enabled = (strlen(toi_cluster_iface) > 0); -+ -+ if (toi_cluster_ops.enabled) -+ toi_cluster_open_iface(); -+ -+ return temp; -+} -+ -+EXIT void toi_cluster_exit(void) -+{ -+ int i; -+ toi_cluster_close_iface(); -+ -+ for (i = 0; i < MAX_LOCAL_NODES; i++) -+ toi_unregister_sysfs_file(toi_cluster_ops.dir_kobj, -+ &node_array[i].sysfs_data); -+ toi_unregister_module(&toi_cluster_ops); -+} -+ -+static int __init toi_cluster_iface_setup(char *iface) -+{ -+ toi_cluster_ops.enabled = (*iface && -+ strcmp(iface, "off")); -+ -+ if (toi_cluster_ops.enabled) -+ strncpy(toi_cluster_iface, iface, strlen(iface)); -+} -+ -+__setup("toi_cluster=", toi_cluster_iface_setup); -+ -+#ifdef MODULE -+MODULE_LICENSE("GPL"); -+module_init(toi_cluster_init); -+module_exit(toi_cluster_exit); -+MODULE_AUTHOR("Nigel Cunningham"); -+MODULE_DESCRIPTION("Cluster Support for TuxOnIce"); -+#endif -diff --git a/kernel/power/tuxonice_cluster.h b/kernel/power/tuxonice_cluster.h -new file mode 100644 -index 0000000..051feb3 ---- /dev/null -+++ b/kernel/power/tuxonice_cluster.h -@@ -0,0 +1,18 @@ -+/* -+ * kernel/power/tuxonice_cluster.h -+ * -+ * Copyright (C) 2006-2010 Nigel Cunningham (nigel at tuxonice net) -+ * -+ * This file is released under the GPLv2. -+ */ -+ -+#ifdef CONFIG_TOI_CLUSTER -+extern int toi_cluster_init(void); -+extern void toi_cluster_exit(void); -+extern void toi_initiate_cluster_hibernate(void); -+#else -+static inline int toi_cluster_init(void) { return 0; } -+static inline void toi_cluster_exit(void) { } -+static inline void toi_initiate_cluster_hibernate(void) { } -+#endif -+ -diff --git a/kernel/power/tuxonice_compress.c b/kernel/power/tuxonice_compress.c -new file mode 100644 -index 0000000..6bbc446 ---- /dev/null -+++ b/kernel/power/tuxonice_compress.c -@@ -0,0 +1,497 @@ -+/* -+ * kernel/power/compression.c -+ * -+ * Copyright (C) 2003-2010 Nigel Cunningham (nigel at tuxonice net) -+ * -+ * This file is released under the GPLv2. -+ * -+ * This file contains data compression routines for TuxOnIce, -+ * using cryptoapi. -+ */ -+ -+#include -+#include -+#include -+#include -+ -+#include "tuxonice_builtin.h" -+#include "tuxonice.h" -+#include "tuxonice_modules.h" -+#include "tuxonice_sysfs.h" -+#include "tuxonice_io.h" -+#include "tuxonice_ui.h" -+#include "tuxonice_alloc.h" -+ -+static int toi_expected_compression; -+ -+static struct toi_module_ops toi_compression_ops; -+static struct toi_module_ops *next_driver; -+ -+static char toi_compressor_name[32] = "lzo"; -+ -+static DEFINE_MUTEX(stats_lock); -+ -+struct cpu_context { -+ u8 *page_buffer; -+ struct crypto_comp *transform; -+ unsigned int len; -+ char *buffer_start; -+ char *output_buffer; -+ char *check_buffer; -+}; -+ -+static DEFINE_PER_CPU(struct cpu_context, contexts); -+static int toi_check_compression; -+ -+/* -+ * toi_crypto_prepare -+ * -+ * Prepare to do some work by allocating buffers and transforms. -+ */ -+static int toi_compress_crypto_prepare(void) -+{ -+ int cpu; -+ -+ if (!*toi_compressor_name) { -+ printk(KERN_INFO "TuxOnIce: Compression enabled but no " -+ "compressor name set.\n"); -+ return 1; -+ } -+ -+ for_each_online_cpu(cpu) { -+ struct cpu_context *this = &per_cpu(contexts, cpu); -+ this->transform = crypto_alloc_comp(toi_compressor_name, 0, 0); -+ if (IS_ERR(this->transform)) { -+ printk(KERN_INFO "TuxOnIce: Failed to initialise the " -+ "%s compression transform.\n", -+ toi_compressor_name); -+ this->transform = NULL; -+ return 1; -+ } -+ -+ this->page_buffer = -+ (char *) toi_get_zeroed_page(16, TOI_ATOMIC_GFP); -+ -+ if (!this->page_buffer) { -+ printk(KERN_ERR -+ "Failed to allocate a page buffer for TuxOnIce " -+ "compression driver.\n"); -+ return -ENOMEM; -+ } -+ -+ this->output_buffer = -+ (char *) vmalloc_32(2 * PAGE_SIZE); -+ -+ if (!this->output_buffer) { -+ printk(KERN_ERR -+ "Failed to allocate a output buffer for TuxOnIce " -+ "compression driver.\n"); -+ return -ENOMEM; -+ } -+ -+ this->check_buffer = -+ (char *) toi_get_zeroed_page(16, TOI_ATOMIC_GFP); -+ -+ if (!this->check_buffer) { -+ printk(KERN_ERR -+ "Failed to allocate a check buffer for TuxOnIce " -+ "compression driver.\n"); -+ return -ENOMEM; -+ } -+ -+ } -+ -+ return 0; -+} -+ -+static int toi_compress_rw_cleanup(int writing) -+{ -+ int cpu; -+ -+ for_each_online_cpu(cpu) { -+ struct cpu_context *this = &per_cpu(contexts, cpu); -+ if (this->transform) { -+ crypto_free_comp(this->transform); -+ this->transform = NULL; -+ } -+ -+ if (this->page_buffer) -+ toi_free_page(16, (unsigned long) this->page_buffer); -+ -+ this->page_buffer = NULL; -+ -+ if (this->output_buffer) -+ vfree(this->output_buffer); -+ -+ this->output_buffer = NULL; -+ -+ if (this->check_buffer) -+ toi_free_page(16, (unsigned long) this->check_buffer); -+ -+ this->check_buffer = NULL; -+ } -+ -+ return 0; -+} -+ -+/* -+ * toi_compress_init -+ */ -+ -+static int toi_compress_init(int toi_or_resume) -+{ -+ if (!toi_or_resume) -+ return 0; -+ -+ toi_compress_bytes_in = 0; -+ toi_compress_bytes_out = 0; -+ -+ next_driver = toi_get_next_filter(&toi_compression_ops); -+ -+ return next_driver ? 0 : -ECHILD; -+} -+ -+/* -+ * toi_compress_rw_init() -+ */ -+ -+static int toi_compress_rw_init(int rw, int stream_number) -+{ -+ if (toi_compress_crypto_prepare()) { -+ printk(KERN_ERR "Failed to initialise compression " -+ "algorithm.\n"); -+ if (rw == READ) { -+ printk(KERN_INFO "Unable to read the image.\n"); -+ return -ENODEV; -+ } else { -+ printk(KERN_INFO "Continuing without " -+ "compressing the image.\n"); -+ toi_compression_ops.enabled = 0; -+ } -+ } -+ -+ return 0; -+} -+ -+static int check_compression(struct cpu_context *ctx, struct page *buffer_page, -+ int buf_size) -+{ -+ char *original = kmap(buffer_page); -+ int output_size = PAGE_SIZE, okay, ret; -+ -+ ret = crypto_comp_decompress(ctx->transform, ctx->output_buffer, -+ ctx->len, ctx->check_buffer, &output_size); -+ okay = (!ret && output_size == PAGE_SIZE && -+ !memcmp(ctx->check_buffer, original, PAGE_SIZE)); -+ -+ if (!okay) { -+ printk("Compression test failed.\n"); -+ print_hex_dump(KERN_ERR, "Original page: ", DUMP_PREFIX_NONE, -+ 16, 1, original, PAGE_SIZE, 0); -+ printk(KERN_ERR "\nOutput %d bytes. Result %d.", ctx->len, ret); -+ print_hex_dump(KERN_ERR, "Compressed to: ", DUMP_PREFIX_NONE, -+ 16, 1, ctx->output_buffer, ctx->len, 0); -+ printk(KERN_ERR "\nRestored to %d bytes.\n", output_size); -+ print_hex_dump(KERN_ERR, "Decompressed : ", DUMP_PREFIX_NONE, -+ 16, 1, ctx->check_buffer, output_size, 0); -+ } -+ kunmap(buffer_page); -+ -+ return okay; -+} -+ -+/* -+ * toi_compress_write_page() -+ * -+ * Compress a page of data, buffering output and passing on filled -+ * pages to the next module in the pipeline. -+ * -+ * Buffer_page: Pointer to a buffer of size PAGE_SIZE, containing -+ * data to be compressed. -+ * -+ * Returns: 0 on success. Otherwise the error is that returned by later -+ * modules, -ECHILD if we have a broken pipeline or -EIO if -+ * zlib errs. -+ */ -+static int toi_compress_write_page(unsigned long index, -+ struct page *buffer_page, unsigned int buf_size) -+{ -+ int ret, cpu = smp_processor_id(); -+ struct cpu_context *ctx = &per_cpu(contexts, cpu); -+ -+ if (!ctx->transform) -+ return next_driver->write_page(index, buffer_page, buf_size); -+ -+ ctx->buffer_start = kmap(buffer_page); -+ -+ ctx->len = PAGE_SIZE; -+ -+ ret = crypto_comp_compress(ctx->transform, -+ ctx->buffer_start, buf_size, -+ ctx->output_buffer, &ctx->len); -+ -+ kunmap(buffer_page); -+ -+ mutex_lock(&stats_lock); -+ toi_compress_bytes_in += buf_size; -+ toi_compress_bytes_out += ctx->len; -+ mutex_unlock(&stats_lock); -+ -+ if (!ret && ctx->len < buf_size) { /* some compression */ -+ if (unlikely(toi_check_compression)) { -+ ret = check_compression(ctx, buffer_page, buf_size); -+ if (!ret) -+ return next_driver->write_page(index, -+ buffer_page, buf_size); -+ } -+ -+ memcpy(ctx->page_buffer, ctx->output_buffer, ctx->len); -+ return next_driver->write_page(index, -+ virt_to_page(ctx->page_buffer), -+ ctx->len); -+ } else -+ return next_driver->write_page(index, buffer_page, buf_size); -+} -+ -+/* -+ * toi_compress_read_page() -+ * @buffer_page: struct page *. Pointer to a buffer of size PAGE_SIZE. -+ * -+ * Retrieve data from later modules and decompress it until the input buffer -+ * is filled. -+ * Zero if successful. Error condition from me or from downstream on failure. -+ */ -+static int toi_compress_read_page(unsigned long *index, -+ struct page *buffer_page, unsigned int *buf_size) -+{ -+ int ret, cpu = smp_processor_id(); -+ unsigned int len; -+ unsigned int outlen = PAGE_SIZE; -+ char *buffer_start; -+ struct cpu_context *ctx = &per_cpu(contexts, cpu); -+ -+ if (!ctx->transform) -+ return next_driver->read_page(index, buffer_page, buf_size); -+ -+ /* -+ * All our reads must be synchronous - we can't decompress -+ * data that hasn't been read yet. -+ */ -+ -+ ret = next_driver->read_page(index, buffer_page, &len); -+ -+ /* Error or uncompressed data */ -+ if (ret || len == PAGE_SIZE) -+ return ret; -+ -+ buffer_start = kmap(buffer_page); -+ memcpy(ctx->page_buffer, buffer_start, len); -+ ret = crypto_comp_decompress( -+ ctx->transform, -+ ctx->page_buffer, -+ len, buffer_start, &outlen); -+ if (ret) -+ abort_hibernate(TOI_FAILED_IO, -+ "Compress_read returned %d.\n", ret); -+ else if (outlen != PAGE_SIZE) { -+ abort_hibernate(TOI_FAILED_IO, -+ "Decompression yielded %d bytes instead of %ld.\n", -+ outlen, PAGE_SIZE); -+ printk(KERN_ERR "Decompression yielded %d bytes instead of " -+ "%ld.\n", outlen, PAGE_SIZE); -+ ret = -EIO; -+ *buf_size = outlen; -+ } -+ kunmap(buffer_page); -+ return ret; -+} -+ -+/* -+ * toi_compress_print_debug_stats -+ * @buffer: Pointer to a buffer into which the debug info will be printed. -+ * @size: Size of the buffer. -+ * -+ * Print information to be recorded for debugging purposes into a buffer. -+ * Returns: Number of characters written to the buffer. -+ */ -+ -+static int toi_compress_print_debug_stats(char *buffer, int size) -+{ -+ unsigned long pages_in = toi_compress_bytes_in >> PAGE_SHIFT, -+ pages_out = toi_compress_bytes_out >> PAGE_SHIFT; -+ int len; -+ -+ /* Output the compression ratio achieved. */ -+ if (*toi_compressor_name) -+ len = scnprintf(buffer, size, "- Compressor is '%s'.\n", -+ toi_compressor_name); -+ else -+ len = scnprintf(buffer, size, "- Compressor is not set.\n"); -+ -+ if (pages_in) -+ len += scnprintf(buffer+len, size - len, " Compressed " -+ "%lu bytes into %lu (%ld percent compression).\n", -+ toi_compress_bytes_in, -+ toi_compress_bytes_out, -+ (pages_in - pages_out) * 100 / pages_in); -+ return len; -+} -+ -+/* -+ * toi_compress_compression_memory_needed -+ * -+ * Tell the caller how much memory we need to operate during hibernate/resume. -+ * Returns: Unsigned long. Maximum number of bytes of memory required for -+ * operation. -+ */ -+static int toi_compress_memory_needed(void) -+{ -+ return 2 * PAGE_SIZE; -+} -+ -+static int toi_compress_storage_needed(void) -+{ -+ return 4 * sizeof(unsigned long) + strlen(toi_compressor_name) + 1; -+} -+ -+/* -+ * toi_compress_save_config_info -+ * @buffer: Pointer to a buffer of size PAGE_SIZE. -+ * -+ * Save informaton needed when reloading the image at resume time. -+ * Returns: Number of bytes used for saving our data. -+ */ -+static int toi_compress_save_config_info(char *buffer) -+{ -+ int namelen = strlen(toi_compressor_name) + 1; -+ int total_len; -+ -+ *((unsigned long *) buffer) = toi_compress_bytes_in; -+ *((unsigned long *) (buffer + 1 * sizeof(unsigned long))) = -+ toi_compress_bytes_out; -+ *((unsigned long *) (buffer + 2 * sizeof(unsigned long))) = -+ toi_expected_compression; -+ *((unsigned long *) (buffer + 3 * sizeof(unsigned long))) = namelen; -+ strncpy(buffer + 4 * sizeof(unsigned long), toi_compressor_name, -+ namelen); -+ total_len = 4 * sizeof(unsigned long) + namelen; -+ return total_len; -+} -+ -+/* toi_compress_load_config_info -+ * @buffer: Pointer to the start of the data. -+ * @size: Number of bytes that were saved. -+ * -+ * Description: Reload information needed for decompressing the image at -+ * resume time. -+ */ -+static void toi_compress_load_config_info(char *buffer, int size) -+{ -+ int namelen; -+ -+ toi_compress_bytes_in = *((unsigned long *) buffer); -+ toi_compress_bytes_out = *((unsigned long *) (buffer + 1 * -+ sizeof(unsigned long))); -+ toi_expected_compression = *((unsigned long *) (buffer + 2 * -+ sizeof(unsigned long))); -+ namelen = *((unsigned long *) (buffer + 3 * sizeof(unsigned long))); -+ if (strncmp(toi_compressor_name, buffer + 4 * sizeof(unsigned long), -+ namelen)) -+ strncpy(toi_compressor_name, buffer + 4 * sizeof(unsigned long), -+ namelen); -+ return; -+} -+ -+static void toi_compress_pre_atomic_restore(struct toi_boot_kernel_data *bkd) -+{ -+ bkd->compress_bytes_in = toi_compress_bytes_in; -+ bkd->compress_bytes_out = toi_compress_bytes_out; -+} -+ -+static void toi_compress_post_atomic_restore(struct toi_boot_kernel_data *bkd) -+{ -+ toi_compress_bytes_in = bkd->compress_bytes_in; -+ toi_compress_bytes_out = bkd->compress_bytes_out; -+} -+ -+/* -+ * toi_expected_compression_ratio -+ * -+ * Description: Returns the expected ratio between data passed into this module -+ * and the amount of data output when writing. -+ * Returns: 100 if the module is disabled. Otherwise the value set by the -+ * user via our sysfs entry. -+ */ -+ -+static int toi_compress_expected_ratio(void) -+{ -+ if (!toi_compression_ops.enabled) -+ return 100; -+ else -+ return 100 - toi_expected_compression; -+} -+ -+/* -+ * data for our sysfs entries. -+ */ -+static struct toi_sysfs_data sysfs_params[] = { -+ SYSFS_INT("expected_compression", SYSFS_RW, &toi_expected_compression, -+ 0, 99, 0, NULL), -+ SYSFS_INT("enabled", SYSFS_RW, &toi_compression_ops.enabled, 0, 1, 0, -+ NULL), -+ SYSFS_INT("check", SYSFS_RW, &toi_check_compression, 0, 1, 0, -+ NULL), -+ SYSFS_STRING("algorithm", SYSFS_RW, toi_compressor_name, 31, 0, NULL), -+}; -+ -+/* -+ * Ops structure. -+ */ -+static struct toi_module_ops toi_compression_ops = { -+ .type = FILTER_MODULE, -+ .name = "compression", -+ .directory = "compression", -+ .module = THIS_MODULE, -+ .initialise = toi_compress_init, -+ .memory_needed = toi_compress_memory_needed, -+ .print_debug_info = toi_compress_print_debug_stats, -+ .save_config_info = toi_compress_save_config_info, -+ .load_config_info = toi_compress_load_config_info, -+ .storage_needed = toi_compress_storage_needed, -+ .expected_compression = toi_compress_expected_ratio, -+ -+ .pre_atomic_restore = toi_compress_pre_atomic_restore, -+ .post_atomic_restore = toi_compress_post_atomic_restore, -+ -+ .rw_init = toi_compress_rw_init, -+ .rw_cleanup = toi_compress_rw_cleanup, -+ -+ .write_page = toi_compress_write_page, -+ .read_page = toi_compress_read_page, -+ -+ .sysfs_data = sysfs_params, -+ .num_sysfs_entries = sizeof(sysfs_params) / -+ sizeof(struct toi_sysfs_data), -+}; -+ -+/* ---- Registration ---- */ -+ -+static __init int toi_compress_load(void) -+{ -+ return toi_register_module(&toi_compression_ops); -+} -+ -+#ifdef MODULE -+static __exit void toi_compress_unload(void) -+{ -+ toi_unregister_module(&toi_compression_ops); -+} -+ -+module_init(toi_compress_load); -+module_exit(toi_compress_unload); -+MODULE_LICENSE("GPL"); -+MODULE_AUTHOR("Nigel Cunningham"); -+MODULE_DESCRIPTION("Compression Support for TuxOnIce"); -+#else -+late_initcall(toi_compress_load); -+#endif -diff --git a/kernel/power/tuxonice_extent.c b/kernel/power/tuxonice_extent.c -new file mode 100644 -index 0000000..e84572c ---- /dev/null -+++ b/kernel/power/tuxonice_extent.c -@@ -0,0 +1,123 @@ -+/* -+ * kernel/power/tuxonice_extent.c -+ * -+ * Copyright (C) 2003-2010 Nigel Cunningham (nigel at tuxonice net) -+ * -+ * Distributed under GPLv2. -+ * -+ * These functions encapsulate the manipulation of storage metadata. -+ */ -+ -+#include -+#include "tuxonice_modules.h" -+#include "tuxonice_extent.h" -+#include "tuxonice_alloc.h" -+#include "tuxonice_ui.h" -+#include "tuxonice.h" -+ -+/** -+ * toi_get_extent - return a free extent -+ * -+ * May fail, returning NULL instead. -+ **/ -+static struct hibernate_extent *toi_get_extent(void) -+{ -+ return (struct hibernate_extent *) toi_kzalloc(2, -+ sizeof(struct hibernate_extent), TOI_ATOMIC_GFP); -+} -+ -+/** -+ * toi_put_extent_chain - free a whole chain of extents -+ * @chain: Chain to free. -+ **/ -+void toi_put_extent_chain(struct hibernate_extent_chain *chain) -+{ -+ struct hibernate_extent *this; -+ -+ this = chain->first; -+ -+ while (this) { -+ struct hibernate_extent *next = this->next; -+ toi_kfree(2, this, sizeof(*this)); -+ chain->num_extents--; -+ this = next; -+ } -+ -+ chain->first = NULL; -+ chain->last_touched = NULL; -+ chain->current_extent = NULL; -+ chain->size = 0; -+} -+EXPORT_SYMBOL_GPL(toi_put_extent_chain); -+ -+/** -+ * toi_add_to_extent_chain - add an extent to an existing chain -+ * @chain: Chain to which the extend should be added -+ * @start: Start of the extent (first physical block) -+ * @end: End of the extent (last physical block) -+ * -+ * The chain information is updated if the insertion is successful. -+ **/ -+int toi_add_to_extent_chain(struct hibernate_extent_chain *chain, -+ unsigned long start, unsigned long end) -+{ -+ struct hibernate_extent *new_ext = NULL, *cur_ext = NULL; -+ -+ toi_message(TOI_IO, TOI_VERBOSE, 0, -+ "Adding extent %lu-%lu to chain %p.\n", start, end, chain); -+ -+ /* Find the right place in the chain */ -+ if (chain->last_touched && chain->last_touched->start < start) -+ cur_ext = chain->last_touched; -+ else if (chain->first && chain->first->start < start) -+ cur_ext = chain->first; -+ -+ if (cur_ext) { -+ while (cur_ext->next && cur_ext->next->start < start) -+ cur_ext = cur_ext->next; -+ -+ if (cur_ext->end == (start - 1)) { -+ struct hibernate_extent *next_ext = cur_ext->next; -+ cur_ext->end = end; -+ -+ /* Merge with the following one? */ -+ if (next_ext && cur_ext->end + 1 == next_ext->start) { -+ cur_ext->end = next_ext->end; -+ cur_ext->next = next_ext->next; -+ toi_kfree(2, next_ext, sizeof(*next_ext)); -+ chain->num_extents--; -+ } -+ -+ chain->last_touched = cur_ext; -+ chain->size += (end - start + 1); -+ -+ return 0; -+ } -+ } -+ -+ new_ext = toi_get_extent(); -+ if (!new_ext) { -+ printk(KERN_INFO "Error unable to append a new extent to the " -+ "chain.\n"); -+ return -ENOMEM; -+ } -+ -+ chain->num_extents++; -+ chain->size += (end - start + 1); -+ new_ext->start = start; -+ new_ext->end = end; -+ -+ chain->last_touched = new_ext; -+ -+ if (cur_ext) { -+ new_ext->next = cur_ext->next; -+ cur_ext->next = new_ext; -+ } else { -+ if (chain->first) -+ new_ext->next = chain->first; -+ chain->first = new_ext; -+ } -+ -+ return 0; -+} -+EXPORT_SYMBOL_GPL(toi_add_to_extent_chain); -diff --git a/kernel/power/tuxonice_extent.h b/kernel/power/tuxonice_extent.h -new file mode 100644 -index 0000000..157446c ---- /dev/null -+++ b/kernel/power/tuxonice_extent.h -@@ -0,0 +1,44 @@ -+/* -+ * kernel/power/tuxonice_extent.h -+ * -+ * Copyright (C) 2003-2010 Nigel Cunningham (nigel at tuxonice net) -+ * -+ * This file is released under the GPLv2. -+ * -+ * It contains declarations related to extents. Extents are -+ * TuxOnIce's method of storing some of the metadata for the image. -+ * See tuxonice_extent.c for more info. -+ * -+ */ -+ -+#include "tuxonice_modules.h" -+ -+#ifndef EXTENT_H -+#define EXTENT_H -+ -+struct hibernate_extent { -+ unsigned long start, end; -+ struct hibernate_extent *next; -+}; -+ -+struct hibernate_extent_chain { -+ unsigned long size; /* size of the chain ie sum (max-min+1) */ -+ int num_extents; -+ struct hibernate_extent *first, *last_touched; -+ struct hibernate_extent *current_extent; -+ unsigned long current_offset; -+}; -+ -+/* Simplify iterating through all the values in an extent chain */ -+#define toi_extent_for_each(extent_chain, extentpointer, value) \ -+if ((extent_chain)->first) \ -+ for ((extentpointer) = (extent_chain)->first, (value) = \ -+ (extentpointer)->start; \ -+ ((extentpointer) && ((extentpointer)->next || (value) <= \ -+ (extentpointer)->end)); \ -+ (((value) == (extentpointer)->end) ? \ -+ ((extentpointer) = (extentpointer)->next, (value) = \ -+ ((extentpointer) ? (extentpointer)->start : 0)) : \ -+ (value)++)) -+ -+#endif -diff --git a/kernel/power/tuxonice_file.c b/kernel/power/tuxonice_file.c -new file mode 100644 -index 0000000..39f2aea ---- /dev/null -+++ b/kernel/power/tuxonice_file.c -@@ -0,0 +1,496 @@ -+/* -+ * kernel/power/tuxonice_file.c -+ * -+ * Copyright (C) 2005-2010 Nigel Cunningham (nigel at tuxonice net) -+ * -+ * Distributed under GPLv2. -+ * -+ * This file encapsulates functions for usage of a simple file as a -+ * backing store. It is based upon the swapallocator, and shares the -+ * same basic working. Here, though, we have nothing to do with -+ * swapspace, and only one device to worry about. -+ * -+ * The user can just -+ * -+ * echo TuxOnIce > /path/to/my_file -+ * -+ * dd if=/dev/zero bs=1M count= >> /path/to/my_file -+ * -+ * and -+ * -+ * echo /path/to/my_file > /sys/power/tuxonice/file/target -+ * -+ * then put what they find in /sys/power/tuxonice/resume -+ * as their resume= parameter in lilo.conf (and rerun lilo if using it). -+ * -+ * Having done this, they're ready to hibernate and resume. -+ * -+ * TODO: -+ * - File resizing. -+ */ -+ -+#include -+#include -+#include -+#include -+ -+#include "tuxonice.h" -+#include "tuxonice_modules.h" -+#include "tuxonice_bio.h" -+#include "tuxonice_alloc.h" -+#include "tuxonice_builtin.h" -+#include "tuxonice_sysfs.h" -+#include "tuxonice_ui.h" -+#include "tuxonice_io.h" -+ -+#define target_is_normal_file() (S_ISREG(target_inode->i_mode)) -+ -+static struct toi_module_ops toi_fileops; -+ -+static struct file *target_file; -+static struct block_device *toi_file_target_bdev; -+static unsigned long pages_available, pages_allocated; -+static char toi_file_target[256]; -+static struct inode *target_inode; -+static int file_target_priority; -+static int used_devt; -+static int target_claim; -+static dev_t toi_file_dev_t; -+static int sig_page_index; -+ -+/* For test_toi_file_target */ -+static struct toi_bdev_info *file_chain; -+ -+static int has_contiguous_blocks(struct toi_bdev_info *dev_info, int page_num) -+{ -+ int j; -+ sector_t last = 0; -+ -+ for (j = 0; j < dev_info->blocks_per_page; j++) { -+ sector_t this = bmap(target_inode, -+ page_num * dev_info->blocks_per_page + j); -+ -+ if (!this || (last && (last + 1) != this)) -+ break; -+ -+ last = this; -+ } -+ -+ return j == dev_info->blocks_per_page; -+} -+ -+static unsigned long get_usable_pages(struct toi_bdev_info *dev_info) -+{ -+ unsigned long result = 0; -+ struct block_device *bdev = dev_info->bdev; -+ int i; -+ -+ switch (target_inode->i_mode & S_IFMT) { -+ case S_IFSOCK: -+ case S_IFCHR: -+ case S_IFIFO: /* Socket, Char, Fifo */ -+ return -1; -+ case S_IFREG: /* Regular file: current size - holes + free -+ space on part */ -+ for (i = 0; i < (target_inode->i_size >> PAGE_SHIFT) ; i++) { -+ if (has_contiguous_blocks(dev_info, i)) -+ result++; -+ } -+ break; -+ case S_IFBLK: /* Block device */ -+ if (!bdev->bd_disk) { -+ toi_message(TOI_IO, TOI_VERBOSE, 0, -+ "bdev->bd_disk null."); -+ return 0; -+ } -+ -+ result = (bdev->bd_part ? -+ bdev->bd_part->nr_sects : -+ get_capacity(bdev->bd_disk)) >> (PAGE_SHIFT - 9); -+ } -+ -+ -+ return result; -+} -+ -+static int toi_file_register_storage(void) -+{ -+ struct toi_bdev_info *devinfo; -+ int result = 0; -+ struct fs_info *fs_info; -+ -+ toi_message(TOI_IO, TOI_VERBOSE, 0, "toi_file_register_storage."); -+ if (!strlen(toi_file_target)) { -+ toi_message(TOI_IO, TOI_VERBOSE, 0, "Register file storage: " -+ "No target filename set."); -+ return 0; -+ } -+ -+ target_file = filp_open(toi_file_target, O_RDONLY|O_LARGEFILE, 0); -+ toi_message(TOI_IO, TOI_VERBOSE, 0, "filp_open %s returned %p.", -+ toi_file_target, target_file); -+ -+ if (IS_ERR(target_file) || !target_file) { -+ target_file = NULL; -+ toi_file_dev_t = name_to_dev_t(toi_file_target); -+ if (!toi_file_dev_t) { -+ struct kstat stat; -+ int error = vfs_stat(toi_file_target, &stat); -+ printk(KERN_INFO "Open file %s returned %p and " -+ "name_to_devt failed.\n", -+ toi_file_target, target_file); -+ if (error) { -+ printk(KERN_INFO "Stating the file also failed." -+ " Nothing more we can do.\n"); -+ return 0; -+ } else -+ toi_file_dev_t = stat.rdev; -+ } -+ -+ toi_file_target_bdev = toi_open_by_devnum(toi_file_dev_t); -+ if (IS_ERR(toi_file_target_bdev)) { -+ printk(KERN_INFO "Got a dev_num (%lx) but failed to " -+ "open it.\n", -+ (unsigned long) toi_file_dev_t); -+ toi_file_target_bdev = NULL; -+ return 0; -+ } -+ used_devt = 1; -+ target_inode = toi_file_target_bdev->bd_inode; -+ } else -+ target_inode = target_file->f_mapping->host; -+ -+ toi_message(TOI_IO, TOI_VERBOSE, 0, "Succeeded in opening the target."); -+ if (S_ISLNK(target_inode->i_mode) || S_ISDIR(target_inode->i_mode) || -+ S_ISSOCK(target_inode->i_mode) || S_ISFIFO(target_inode->i_mode)) { -+ printk(KERN_INFO "File support works with regular files," -+ " character files and block devices.\n"); -+ /* Cleanup routine will undo the above */ -+ return 0; -+ } -+ -+ if (!used_devt) { -+ if (S_ISBLK(target_inode->i_mode)) { -+ toi_file_target_bdev = I_BDEV(target_inode); -+ if (!bd_claim(toi_file_target_bdev, &toi_fileops)) -+ target_claim = 1; -+ } else -+ toi_file_target_bdev = target_inode->i_sb->s_bdev; -+ if (!toi_file_target_bdev) { -+ printk(KERN_INFO "%s is not a valid file allocator " -+ "target.\n", toi_file_target); -+ return 0; -+ } -+ toi_file_dev_t = toi_file_target_bdev->bd_dev; -+ } -+ -+ devinfo = toi_kzalloc(39, sizeof(struct toi_bdev_info), GFP_ATOMIC); -+ if (!devinfo) { -+ printk("Failed to allocate a toi_bdev_info struct for the file allocator.\n"); -+ return -ENOMEM; -+ } -+ -+ devinfo->bdev = toi_file_target_bdev; -+ devinfo->allocator = &toi_fileops; -+ devinfo->allocator_index = 0; -+ -+ fs_info = fs_info_from_block_dev(toi_file_target_bdev); -+ if (fs_info && !IS_ERR(fs_info)) { -+ memcpy(devinfo->uuid, &fs_info->uuid, 16); -+ free_fs_info(fs_info); -+ } else -+ result = (int) PTR_ERR(fs_info); -+ -+ /* Unlike swap code, only complain if fs_info_from_block_dev returned -+ * -ENOMEM. The 'file' might be a full partition, so might validly not -+ * have an identifiable type, UUID etc. -+ */ -+ if (result) -+ printk(KERN_DEBUG "Failed to get fs_info for file device (%d).\n", -+ result); -+ devinfo->dev_t = toi_file_dev_t; -+ devinfo->prio = file_target_priority; -+ devinfo->bmap_shift = target_inode->i_blkbits - 9; -+ devinfo->blocks_per_page = -+ (1 << (PAGE_SHIFT - target_inode->i_blkbits)); -+ sprintf(devinfo->name, "file %s", toi_file_target); -+ file_chain = devinfo; -+ toi_message(TOI_IO, TOI_VERBOSE, 0, "Dev_t is %lx. Prio is %d. Bmap " -+ "shift is %d. Blocks per page %d.", -+ devinfo->dev_t, devinfo->prio, devinfo->bmap_shift, -+ devinfo->blocks_per_page); -+ -+ /* Keep one aside for the signature */ -+ pages_available = get_usable_pages(devinfo) - 1; -+ -+ toi_message(TOI_IO, TOI_VERBOSE, 0, "Registering file storage, %lu " -+ "pages.", pages_available); -+ -+ toi_bio_ops.register_storage(devinfo); -+ return 0; -+} -+ -+static unsigned long toi_file_storage_available(void) -+{ -+ return pages_available; -+} -+ -+static int toi_file_allocate_storage(struct toi_bdev_info *chain, -+ unsigned long request) -+{ -+ unsigned long available = pages_available - pages_allocated; -+ unsigned long to_add = min(available, request); -+ -+ toi_message(TOI_IO, TOI_VERBOSE, 0, "Pages available is %lu. Allocated " -+ "is %lu. Allocating %lu pages from file.", -+ pages_available, pages_allocated, to_add); -+ pages_allocated += to_add; -+ -+ return to_add; -+} -+ -+/** -+ * __populate_block_list - add an extent to the chain -+ * @min: Start of the extent (first physical block = sector) -+ * @max: End of the extent (last physical block = sector) -+ * -+ * If TOI_TEST_BIO is set, print a debug message, outputting the min and max -+ * fs block numbers. -+ **/ -+static int __populate_block_list(struct toi_bdev_info *chain, int min, int max) -+{ -+ if (test_action_state(TOI_TEST_BIO)) -+ toi_message(TOI_IO, TOI_VERBOSE, 0, "Adding extent %d-%d.", -+ min << chain->bmap_shift, -+ ((max + 1) << chain->bmap_shift) - 1); -+ -+ return toi_add_to_extent_chain(&chain->blocks, min, max); -+} -+ -+static int get_main_pool_phys_params(struct toi_bdev_info *chain) -+{ -+ int i, extent_min = -1, extent_max = -1, result = 0, have_sig_page = 0; -+ unsigned long pages_mapped = 0; -+ -+ toi_message(TOI_IO, TOI_VERBOSE, 0, "Getting file allocator blocks."); -+ -+ if (chain->blocks.first) -+ toi_put_extent_chain(&chain->blocks); -+ -+ if (!target_is_normal_file()) { -+ result = (pages_available > 0) ? -+ __populate_block_list(chain, chain->blocks_per_page, -+ (pages_allocated + 1) * -+ chain->blocks_per_page - 1) : 0; -+ return result; -+ } -+ -+ /* -+ * FIXME: We are assuming the first page is contiguous. Is that -+ * assumption always right? -+ */ -+ -+ for (i = 0; i < (target_inode->i_size >> PAGE_SHIFT); i++) { -+ sector_t new_sector; -+ -+ if (!has_contiguous_blocks(chain, i)) -+ continue; -+ -+ if (!have_sig_page) { -+ have_sig_page = 1; -+ sig_page_index = i; -+ continue; -+ } -+ -+ pages_mapped++; -+ -+ /* Ignore first page - it has the header */ -+ if (pages_mapped == 1) -+ continue; -+ -+ new_sector = bmap(target_inode, (i * chain->blocks_per_page)); -+ -+ /* -+ * I'd love to be able to fill in holes and resize -+ * files, but not yet... -+ */ -+ -+ if (new_sector == extent_max + 1) -+ extent_max += chain->blocks_per_page; -+ else { -+ if (extent_min > -1) { -+ result = __populate_block_list(chain, -+ extent_min, extent_max); -+ if (result) -+ return result; -+ } -+ -+ extent_min = new_sector; -+ extent_max = extent_min + -+ chain->blocks_per_page - 1; -+ } -+ -+ if (pages_mapped == pages_allocated) -+ break; -+ } -+ -+ if (extent_min > -1) { -+ result = __populate_block_list(chain, extent_min, extent_max); -+ if (result) -+ return result; -+ } -+ -+ return 0; -+} -+ -+static void toi_file_free_storage(struct toi_bdev_info *chain) -+{ -+ pages_allocated = 0; -+ file_chain = NULL; -+} -+ -+/** -+ * toi_file_print_debug_stats - print debug info -+ * @buffer: Buffer to data to populate -+ * @size: Size of the buffer -+ **/ -+static int toi_file_print_debug_stats(char *buffer, int size) -+{ -+ int len = scnprintf(buffer, size, "- File Allocator active.\n"); -+ -+ len += scnprintf(buffer+len, size-len, " Storage available for " -+ "image: %lu pages.\n", pages_available); -+ -+ return len; -+} -+ -+static void toi_file_cleanup(int finishing_cycle) -+{ -+ if (toi_file_target_bdev) { -+ if (target_claim) { -+ bd_release(toi_file_target_bdev); -+ target_claim = 0; -+ } -+ -+ if (used_devt) { -+ blkdev_put(toi_file_target_bdev, -+ FMODE_READ | FMODE_NDELAY); -+ used_devt = 0; -+ } -+ toi_file_target_bdev = NULL; -+ target_inode = NULL; -+ } -+ -+ if (target_file) { -+ filp_close(target_file, NULL); -+ target_file = NULL; -+ } -+ -+ pages_available = 0; -+} -+ -+/** -+ * test_toi_file_target - sysfs callback for /sys/power/tuxonince/file/target -+ * -+ * Test wheter the target file is valid for hibernating. -+ **/ -+static void test_toi_file_target(void) -+{ -+ int result = toi_file_register_storage(); -+ sector_t sector; -+ char buf[33]; -+ struct fs_info *fs_info; -+ -+ if (result || !file_chain) -+ return; -+ -+ /* This doesn't mean we're in business. Is any storage available? */ -+ if (!pages_available) -+ goto out; -+ -+ toi_file_allocate_storage(file_chain, 1); -+ result = get_main_pool_phys_params(file_chain); -+ if (result) -+ goto out; -+ -+ -+ sector = bmap(target_inode, sig_page_index * -+ file_chain->blocks_per_page) << file_chain->bmap_shift; -+ -+ /* Use the uuid, or the dev_t if that fails */ -+ fs_info = fs_info_from_block_dev(toi_file_target_bdev); -+ if (!fs_info || IS_ERR(fs_info)) { -+ bdevname(toi_file_target_bdev, buf); -+ sprintf(resume_file, "/dev/%s:%llu", buf, -+ (unsigned long long) sector); -+ } else { -+ int i; -+ hex_dump_to_buffer(fs_info->uuid, 16, 32, 1, buf, 50, 0); -+ -+ /* Remove the spaces */ -+ for (i = 1; i < 16; i++) { -+ buf[2 * i] = buf[3 * i]; -+ buf[2 * i + 1] = buf[3 * i + 1]; -+ } -+ buf[32] = 0; -+ sprintf(resume_file, "UUID=%s:0x%llx", buf, -+ (unsigned long long) sector); -+ free_fs_info(fs_info); -+ } -+ -+ toi_attempt_to_parse_resume_device(0); -+out: -+ toi_file_free_storage(file_chain); -+ toi_bio_ops.free_storage(); -+} -+ -+static struct toi_sysfs_data sysfs_params[] = { -+ SYSFS_STRING("target", SYSFS_RW, toi_file_target, 256, -+ SYSFS_NEEDS_SM_FOR_WRITE, test_toi_file_target), -+ SYSFS_INT("enabled", SYSFS_RW, &toi_fileops.enabled, 0, 1, 0, NULL), -+ SYSFS_INT("priority", SYSFS_RW, &file_target_priority, -4095, -+ 4096, 0, NULL), -+}; -+ -+static struct toi_bio_allocator_ops toi_bio_fileops = { -+ .register_storage = toi_file_register_storage, -+ .storage_available = toi_file_storage_available, -+ .allocate_storage = toi_file_allocate_storage, -+ .bmap = get_main_pool_phys_params, -+ .free_storage = toi_file_free_storage, -+}; -+ -+static struct toi_module_ops toi_fileops = { -+ .type = BIO_ALLOCATOR_MODULE, -+ .name = "file storage", -+ .directory = "file", -+ .module = THIS_MODULE, -+ .print_debug_info = toi_file_print_debug_stats, -+ .cleanup = toi_file_cleanup, -+ .bio_allocator_ops = &toi_bio_fileops, -+ -+ .sysfs_data = sysfs_params, -+ .num_sysfs_entries = sizeof(sysfs_params) / -+ sizeof(struct toi_sysfs_data), -+}; -+ -+/* ---- Registration ---- */ -+static __init int toi_file_load(void) -+{ -+ return toi_register_module(&toi_fileops); -+} -+ -+#ifdef MODULE -+static __exit void toi_file_unload(void) -+{ -+ toi_unregister_module(&toi_fileops); -+} -+ -+module_init(toi_file_load); -+module_exit(toi_file_unload); -+MODULE_LICENSE("GPL"); -+MODULE_AUTHOR("Nigel Cunningham"); -+MODULE_DESCRIPTION("TuxOnIce FileAllocator"); -+#else -+late_initcall(toi_file_load); -+#endif -diff --git a/kernel/power/tuxonice_highlevel.c b/kernel/power/tuxonice_highlevel.c -new file mode 100644 -index 0000000..c4bbb49 ---- /dev/null -+++ b/kernel/power/tuxonice_highlevel.c -@@ -0,0 +1,1313 @@ -+/* -+ * kernel/power/tuxonice_highlevel.c -+ */ -+/** \mainpage TuxOnIce. -+ * -+ * TuxOnIce provides support for saving and restoring an image of -+ * system memory to an arbitrary storage device, either on the local computer, -+ * or across some network. The support is entirely OS based, so TuxOnIce -+ * works without requiring BIOS, APM or ACPI support. The vast majority of the -+ * code is also architecture independant, so it should be very easy to port -+ * the code to new architectures. TuxOnIce includes support for SMP, 4G HighMem -+ * and preemption. Initramfses and initrds are also supported. -+ * -+ * TuxOnIce uses a modular design, in which the method of storing the image is -+ * completely abstracted from the core code, as are transformations on the data -+ * such as compression and/or encryption (multiple 'modules' can be used to -+ * provide arbitrary combinations of functionality). The user interface is also -+ * modular, so that arbitrarily simple or complex interfaces can be used to -+ * provide anything from debugging information through to eye candy. -+ * -+ * \section Copyright -+ * -+ * TuxOnIce is released under the GPLv2. -+ * -+ * Copyright (C) 1998-2001 Gabor Kuti
-+ * Copyright (C) 1998,2001,2002 Pavel Machek
-+ * Copyright (C) 2002-2003 Florent Chabaud
-+ * Copyright (C) 2002-2010 Nigel Cunningham (nigel at tuxonice net)
-+ * -+ * \section Credits -+ * -+ * Nigel would like to thank the following people for their work: -+ * -+ * Bernard Blackham
-+ * Web page & Wiki administration, some coding. A person without whom -+ * TuxOnIce would not be where it is. -+ * -+ * Michael Frank
-+ * Extensive testing and help with improving stability. I was constantly -+ * amazed by the quality and quantity of Michael's help. -+ * -+ * Pavel Machek
-+ * Modifications, defectiveness pointing, being with Gabor at the very -+ * beginning, suspend to swap space, stop all tasks. Port to 2.4.18-ac and -+ * 2.5.17. Even though Pavel and I disagree on the direction suspend to -+ * disk should take, I appreciate the valuable work he did in helping Gabor -+ * get the concept working. -+ * -+ * ..and of course the myriads of TuxOnIce users who have helped diagnose -+ * and fix bugs, made suggestions on how to improve the code, proofread -+ * documentation, and donated time and money. -+ * -+ * Thanks also to corporate sponsors: -+ * -+ * Redhat.Sometime employer from May 2006 (my fault, not Redhat's!). -+ * -+ * Cyclades.com. Nigel's employers from Dec 2004 until May 2006, who -+ * allowed him to work on TuxOnIce and PM related issues on company time. -+ * -+ * LinuxFund.org. Sponsored Nigel's work on TuxOnIce for four months Oct -+ * 2003 to Jan 2004. -+ * -+ * LAC Linux. Donated P4 hardware that enabled development and ongoing -+ * maintenance of SMP and Highmem support. -+ * -+ * OSDL. Provided access to various hardware configurations, make -+ * occasional small donations to the project. -+ */ -+ -+#include -+#include -+#include -+#include -+#include -+#include -+#include /* for get/set_fs & KERNEL_DS on i386 */ -+#include -+ -+#include "tuxonice.h" -+#include "tuxonice_modules.h" -+#include "tuxonice_sysfs.h" -+#include "tuxonice_prepare_image.h" -+#include "tuxonice_io.h" -+#include "tuxonice_ui.h" -+#include "tuxonice_power_off.h" -+#include "tuxonice_storage.h" -+#include "tuxonice_checksum.h" -+#include "tuxonice_builtin.h" -+#include "tuxonice_atomic_copy.h" -+#include "tuxonice_alloc.h" -+#include "tuxonice_cluster.h" -+ -+/*! Pageset metadata. */ -+struct pagedir pagedir2 = {2}; -+EXPORT_SYMBOL_GPL(pagedir2); -+ -+static mm_segment_t oldfs; -+static DEFINE_MUTEX(tuxonice_in_use); -+static int block_dump_save; -+ -+/* Binary signature if an image is present */ -+char tuxonice_signature[9] = "\xed\xc3\x02\xe9\x98\x56\xe5\x0c"; -+EXPORT_SYMBOL_GPL(tuxonice_signature); -+ -+unsigned long boot_kernel_data_buffer; -+ -+static char *result_strings[] = { -+ "Hibernation was aborted", -+ "The user requested that we cancel the hibernation", -+ "No storage was available", -+ "Insufficient storage was available", -+ "Freezing filesystems and/or tasks failed", -+ "A pre-existing image was used", -+ "We would free memory, but image size limit doesn't allow this", -+ "Unable to free enough memory to hibernate", -+ "Unable to obtain the Power Management Semaphore", -+ "A device suspend/resume returned an error", -+ "A system device suspend/resume returned an error", -+ "The extra pages allowance is too small", -+ "We were unable to successfully prepare an image", -+ "TuxOnIce module initialisation failed", -+ "TuxOnIce module cleanup failed", -+ "I/O errors were encountered", -+ "Ran out of memory", -+ "An error was encountered while reading the image", -+ "Platform preparation failed", -+ "CPU Hotplugging failed", -+ "Architecture specific preparation failed", -+ "Pages needed resaving, but we were told to abort if this happens", -+ "We can't hibernate at the moment (invalid resume= or filewriter " -+ "target?)", -+ "A hibernation preparation notifier chain member cancelled the " -+ "hibernation", -+ "Pre-snapshot preparation failed", -+ "Pre-restore preparation failed", -+ "Failed to disable usermode helpers", -+ "Can't resume from alternate image", -+ "Header reservation too small", -+}; -+ -+/** -+ * toi_finish_anything - cleanup after doing anything -+ * @hibernate_or_resume: Whether finishing a cycle or attempt at -+ * resuming. -+ * -+ * This is our basic clean-up routine, matching start_anything below. We -+ * call cleanup routines, drop module references and restore process fs and -+ * cpus allowed masks, together with the global block_dump variable's value. -+ **/ -+void toi_finish_anything(int hibernate_or_resume) -+{ -+ toi_cleanup_modules(hibernate_or_resume); -+ toi_put_modules(); -+ if (hibernate_or_resume) { -+ block_dump = block_dump_save; -+ set_cpus_allowed_ptr(current, cpu_all_mask); -+ toi_alloc_print_debug_stats(); -+ atomic_inc(&snapshot_device_available); -+ mutex_unlock(&pm_mutex); -+ } -+ -+ set_fs(oldfs); -+ mutex_unlock(&tuxonice_in_use); -+} -+ -+/** -+ * toi_start_anything - basic initialisation for TuxOnIce -+ * @toi_or_resume: Whether starting a cycle or attempt at resuming. -+ * -+ * Our basic initialisation routine. Take references on modules, use the -+ * kernel segment, recheck resume= if no active allocator is set, initialise -+ * modules, save and reset block_dump and ensure we're running on CPU0. -+ **/ -+int toi_start_anything(int hibernate_or_resume) -+{ -+ mutex_lock(&tuxonice_in_use); -+ -+ oldfs = get_fs(); -+ set_fs(KERNEL_DS); -+ -+ if (hibernate_or_resume) { -+ mutex_lock(&pm_mutex); -+ -+ if (!atomic_add_unless(&snapshot_device_available, -1, 0)) -+ goto snapshotdevice_unavailable; -+ } -+ -+ if (hibernate_or_resume == SYSFS_HIBERNATE) -+ toi_print_modules(); -+ -+ if (toi_get_modules()) { -+ printk(KERN_INFO "TuxOnIce: Get modules failed!\n"); -+ goto prehibernate_err; -+ } -+ -+ if (hibernate_or_resume) { -+ block_dump_save = block_dump; -+ block_dump = 0; -+ set_cpus_allowed_ptr(current, -+ &cpumask_of_cpu(first_cpu(cpu_online_map))); -+ } -+ -+ if (toi_initialise_modules_early(hibernate_or_resume)) -+ goto early_init_err; -+ -+ if (!toiActiveAllocator) -+ toi_attempt_to_parse_resume_device(!hibernate_or_resume); -+ -+ if (!toi_initialise_modules_late(hibernate_or_resume)) -+ return 0; -+ -+ toi_cleanup_modules(hibernate_or_resume); -+early_init_err: -+ if (hibernate_or_resume) { -+ block_dump_save = block_dump; -+ set_cpus_allowed_ptr(current, cpu_all_mask); -+ } -+ toi_put_modules(); -+prehibernate_err: -+ if (hibernate_or_resume) -+ atomic_inc(&snapshot_device_available); -+snapshotdevice_unavailable: -+ if (hibernate_or_resume) -+ mutex_unlock(&pm_mutex); -+ set_fs(oldfs); -+ mutex_unlock(&tuxonice_in_use); -+ return -EBUSY; -+} -+ -+/* -+ * Nosave page tracking. -+ * -+ * Here rather than in prepare_image because we want to do it once only at the -+ * start of a cycle. -+ */ -+ -+/** -+ * mark_nosave_pages - set up our Nosave bitmap -+ * -+ * Build a bitmap of Nosave pages from the list. The bitmap allows faster -+ * use when preparing the image. -+ **/ -+static void mark_nosave_pages(void) -+{ -+ struct nosave_region *region; -+ -+ list_for_each_entry(region, &nosave_regions, list) { -+ unsigned long pfn; -+ -+ for (pfn = region->start_pfn; pfn < region->end_pfn; pfn++) -+ if (pfn_valid(pfn)) -+ SetPageNosave(pfn_to_page(pfn)); -+ } -+} -+ -+static int alloc_a_bitmap(struct memory_bitmap **bm) -+{ -+ int result = 0; -+ -+ *bm = kzalloc(sizeof(struct memory_bitmap), GFP_KERNEL); -+ if (!*bm) { -+ printk(KERN_ERR "Failed to kzalloc memory for a bitmap.\n"); -+ return -ENOMEM; -+ } -+ -+ result = memory_bm_create(*bm, GFP_KERNEL, 0); -+ -+ if (result) { -+ printk(KERN_ERR "Failed to create a bitmap.\n"); -+ kfree(*bm); -+ } -+ -+ return result; -+} -+ -+/** -+ * allocate_bitmaps - allocate bitmaps used to record page states -+ * -+ * Allocate the bitmaps we use to record the various TuxOnIce related -+ * page states. -+ **/ -+static int allocate_bitmaps(void) -+{ -+ if (alloc_a_bitmap(&pageset1_map) || -+ alloc_a_bitmap(&pageset1_copy_map) || -+ alloc_a_bitmap(&pageset2_map) || -+ alloc_a_bitmap(&io_map) || -+ alloc_a_bitmap(&nosave_map) || -+ alloc_a_bitmap(&free_map) || -+ alloc_a_bitmap(&page_resave_map)) -+ return 1; -+ -+ return 0; -+} -+ -+static void free_a_bitmap(struct memory_bitmap **bm) -+{ -+ if (!*bm) -+ return; -+ -+ memory_bm_free(*bm, 0); -+ kfree(*bm); -+ *bm = NULL; -+} -+ -+/** -+ * free_bitmaps - free the bitmaps used to record page states -+ * -+ * Free the bitmaps allocated above. It is not an error to call -+ * memory_bm_free on a bitmap that isn't currently allocated. -+ **/ -+static void free_bitmaps(void) -+{ -+ free_a_bitmap(&pageset1_map); -+ free_a_bitmap(&pageset1_copy_map); -+ free_a_bitmap(&pageset2_map); -+ free_a_bitmap(&io_map); -+ free_a_bitmap(&nosave_map); -+ free_a_bitmap(&free_map); -+ free_a_bitmap(&page_resave_map); -+} -+ -+/** -+ * io_MB_per_second - return the number of MB/s read or written -+ * @write: Whether to return the speed at which we wrote. -+ * -+ * Calculate the number of megabytes per second that were read or written. -+ **/ -+static int io_MB_per_second(int write) -+{ -+ return (toi_bkd.toi_io_time[write][1]) ? -+ MB((unsigned long) toi_bkd.toi_io_time[write][0]) * HZ / -+ toi_bkd.toi_io_time[write][1] : 0; -+} -+ -+#define SNPRINTF(a...) do { len += scnprintf(((char *) buffer) + len, \ -+ count - len - 1, ## a); } while (0) -+ -+/** -+ * get_debug_info - fill a buffer with debugging information -+ * @buffer: The buffer to be filled. -+ * @count: The size of the buffer, in bytes. -+ * -+ * Fill a (usually PAGE_SIZEd) buffer with the debugging info that we will -+ * either printk or return via sysfs. -+ **/ -+static int get_toi_debug_info(const char *buffer, int count) -+{ -+ int len = 0, i, first_result = 1; -+ -+ SNPRINTF("TuxOnIce debugging info:\n"); -+ SNPRINTF("- TuxOnIce core : " TOI_CORE_VERSION "\n"); -+ SNPRINTF("- Kernel Version : " UTS_RELEASE "\n"); -+ SNPRINTF("- Compiler vers. : %d.%d\n", __GNUC__, __GNUC_MINOR__); -+ SNPRINTF("- Attempt number : %d\n", nr_hibernates); -+ SNPRINTF("- Parameters : %ld %ld %ld %d %ld %ld\n", -+ toi_result, -+ toi_bkd.toi_action, -+ toi_bkd.toi_debug_state, -+ toi_bkd.toi_default_console_level, -+ image_size_limit, -+ toi_poweroff_method); -+ SNPRINTF("- Overall expected compression percentage: %d.\n", -+ 100 - toi_expected_compression_ratio()); -+ len += toi_print_module_debug_info(((char *) buffer) + len, -+ count - len - 1); -+ if (toi_bkd.toi_io_time[0][1]) { -+ if ((io_MB_per_second(0) < 5) || (io_MB_per_second(1) < 5)) { -+ SNPRINTF("- I/O speed: Write %ld KB/s", -+ (KB((unsigned long) toi_bkd.toi_io_time[0][0]) * HZ / -+ toi_bkd.toi_io_time[0][1])); -+ if (toi_bkd.toi_io_time[1][1]) -+ SNPRINTF(", Read %ld KB/s", -+ (KB((unsigned long) -+ toi_bkd.toi_io_time[1][0]) * HZ / -+ toi_bkd.toi_io_time[1][1])); -+ } else { -+ SNPRINTF("- I/O speed: Write %ld MB/s", -+ (MB((unsigned long) toi_bkd.toi_io_time[0][0]) * HZ / -+ toi_bkd.toi_io_time[0][1])); -+ if (toi_bkd.toi_io_time[1][1]) -+ SNPRINTF(", Read %ld MB/s", -+ (MB((unsigned long) -+ toi_bkd.toi_io_time[1][0]) * HZ / -+ toi_bkd.toi_io_time[1][1])); -+ } -+ SNPRINTF(".\n"); -+ } else -+ SNPRINTF("- No I/O speed stats available.\n"); -+ SNPRINTF("- Extra pages : %lu used/%lu.\n", -+ extra_pd1_pages_used, extra_pd1_pages_allowance); -+ -+ for (i = 0; i < TOI_NUM_RESULT_STATES; i++) -+ if (test_result_state(i)) { -+ SNPRINTF("%s: %s.\n", first_result ? -+ "- Result " : -+ " ", -+ result_strings[i]); -+ first_result = 0; -+ } -+ if (first_result) -+ SNPRINTF("- Result : %s.\n", nr_hibernates ? -+ "Succeeded" : -+ "No hibernation attempts so far"); -+ return len; -+} -+ -+/** -+ * do_cleanup - cleanup after attempting to hibernate or resume -+ * @get_debug_info: Whether to allocate and return debugging info. -+ * -+ * Cleanup after attempting to hibernate or resume, possibly getting -+ * debugging info as we do so. -+ **/ -+static void do_cleanup(int get_debug_info, int restarting) -+{ -+ int i = 0; -+ char *buffer = NULL; -+ -+ trap_non_toi_io = 0; -+ -+ if (get_debug_info) -+ toi_prepare_status(DONT_CLEAR_BAR, "Cleaning up..."); -+ -+ free_checksum_pages(); -+ -+ if (get_debug_info) -+ buffer = (char *) toi_get_zeroed_page(20, TOI_ATOMIC_GFP); -+ -+ if (buffer) -+ i = get_toi_debug_info(buffer, PAGE_SIZE); -+ -+ toi_free_extra_pagedir_memory(); -+ -+ pagedir1.size = 0; -+ pagedir2.size = 0; -+ set_highmem_size(pagedir1, 0); -+ set_highmem_size(pagedir2, 0); -+ -+ if (boot_kernel_data_buffer) { -+ if (!test_toi_state(TOI_BOOT_KERNEL)) -+ toi_free_page(37, boot_kernel_data_buffer); -+ boot_kernel_data_buffer = 0; -+ } -+ -+ clear_toi_state(TOI_BOOT_KERNEL); -+ thaw_processes(); -+ -+ if (test_action_state(TOI_KEEP_IMAGE) && -+ !test_result_state(TOI_ABORTED)) { -+ toi_message(TOI_ANY_SECTION, TOI_LOW, 1, -+ "TuxOnIce: Not invalidating the image due " -+ "to Keep Image being enabled."); -+ set_result_state(TOI_KEPT_IMAGE); -+ } else -+ if (toiActiveAllocator) -+ toiActiveAllocator->remove_image(); -+ -+ free_bitmaps(); -+ usermodehelper_enable(); -+ -+ if (test_toi_state(TOI_NOTIFIERS_PREPARE)) { -+ pm_notifier_call_chain(PM_POST_HIBERNATION); -+ clear_toi_state(TOI_NOTIFIERS_PREPARE); -+ } -+ -+ if (buffer && i) { -+ /* Printk can only handle 1023 bytes, including -+ * its level mangling. */ -+ for (i = 0; i < 3; i++) -+ printk(KERN_ERR "%s", buffer + (1023 * i)); -+ toi_free_page(20, (unsigned long) buffer); -+ } -+ -+ if (!test_action_state(TOI_LATE_CPU_HOTPLUG)) -+ enable_nonboot_cpus(); -+ -+ if (!restarting) -+ toi_cleanup_console(); -+ -+ free_attention_list(); -+ -+ if (!restarting) -+ toi_deactivate_storage(0); -+ -+ clear_toi_state(TOI_IGNORE_LOGLEVEL); -+ clear_toi_state(TOI_TRYING_TO_RESUME); -+ clear_toi_state(TOI_NOW_RESUMING); -+} -+ -+/** -+ * check_still_keeping_image - we kept an image; check whether to reuse it. -+ * -+ * We enter this routine when we have kept an image. If the user has said they -+ * want to still keep it, all we need to do is powerdown. If powering down -+ * means hibernating to ram and the power doesn't run out, we'll return 1. -+ * If we do power off properly or the battery runs out, we'll resume via the -+ * normal paths. -+ * -+ * If the user has said they want to remove the previously kept image, we -+ * remove it, and return 0. We'll then store a new image. -+ **/ -+static int check_still_keeping_image(void) -+{ -+ if (test_action_state(TOI_KEEP_IMAGE)) { -+ printk(KERN_INFO "Image already stored: powering down " -+ "immediately."); -+ do_toi_step(STEP_HIBERNATE_POWERDOWN); -+ return 1; /* Just in case we're using S3 */ -+ } -+ -+ printk(KERN_INFO "Invalidating previous image.\n"); -+ toiActiveAllocator->remove_image(); -+ -+ return 0; -+} -+ -+/** -+ * toi_init - prepare to hibernate to disk -+ * -+ * Initialise variables & data structures, in preparation for -+ * hibernating to disk. -+ **/ -+static int toi_init(int restarting) -+{ -+ int result, i, j; -+ -+ toi_result = 0; -+ -+ printk(KERN_INFO "Initiating a hibernation cycle.\n"); -+ -+ nr_hibernates++; -+ -+ for (i = 0; i < 2; i++) -+ for (j = 0; j < 2; j++) -+ toi_bkd.toi_io_time[i][j] = 0; -+ -+ if (!test_toi_state(TOI_CAN_HIBERNATE) || -+ allocate_bitmaps()) -+ return 1; -+ -+ mark_nosave_pages(); -+ -+ if (!restarting) -+ toi_prepare_console(); -+ -+ result = pm_notifier_call_chain(PM_HIBERNATION_PREPARE); -+ if (result) { -+ set_result_state(TOI_NOTIFIERS_PREPARE_FAILED); -+ return 1; -+ } -+ set_toi_state(TOI_NOTIFIERS_PREPARE); -+ -+ result = usermodehelper_disable(); -+ if (result) { -+ printk(KERN_ERR "TuxOnIce: Failed to disable usermode " -+ "helpers\n"); -+ set_result_state(TOI_USERMODE_HELPERS_ERR); -+ return 1; -+ } -+ -+ boot_kernel_data_buffer = toi_get_zeroed_page(37, TOI_ATOMIC_GFP); -+ if (!boot_kernel_data_buffer) { -+ printk(KERN_ERR "TuxOnIce: Failed to allocate " -+ "boot_kernel_data_buffer.\n"); -+ set_result_state(TOI_OUT_OF_MEMORY); -+ return 1; -+ } -+ -+ if (test_action_state(TOI_LATE_CPU_HOTPLUG) || -+ !disable_nonboot_cpus()) -+ return 1; -+ -+ set_abort_result(TOI_CPU_HOTPLUG_FAILED); -+ return 0; -+} -+ -+/** -+ * can_hibernate - perform basic 'Can we hibernate?' tests -+ * -+ * Perform basic tests that must pass if we're going to be able to hibernate: -+ * Can we get the pm_mutex? Is resume= valid (we need to know where to write -+ * the image header). -+ **/ -+static int can_hibernate(void) -+{ -+ if (!test_toi_state(TOI_CAN_HIBERNATE)) -+ toi_attempt_to_parse_resume_device(0); -+ -+ if (!test_toi_state(TOI_CAN_HIBERNATE)) { -+ printk(KERN_INFO "TuxOnIce: Hibernation is disabled.\n" -+ "This may be because you haven't put something along " -+ "the lines of\n\nresume=swap:/dev/hda1\n\n" -+ "in lilo.conf or equivalent. (Where /dev/hda1 is your " -+ "swap partition).\n"); -+ set_abort_result(TOI_CANT_SUSPEND); -+ return 0; -+ } -+ -+ if (strlen(alt_resume_param)) { -+ attempt_to_parse_alt_resume_param(); -+ -+ if (!strlen(alt_resume_param)) { -+ printk(KERN_INFO "Alternate resume parameter now " -+ "invalid. Aborting.\n"); -+ set_abort_result(TOI_CANT_USE_ALT_RESUME); -+ return 0; -+ } -+ } -+ -+ return 1; -+} -+ -+/** -+ * do_post_image_write - having written an image, figure out what to do next -+ * -+ * After writing an image, we might load an alternate image or power down. -+ * Powering down might involve hibernating to ram, in which case we also -+ * need to handle reloading pageset2. -+ **/ -+static int do_post_image_write(void) -+{ -+ /* If switching images fails, do normal powerdown */ -+ if (alt_resume_param[0]) -+ do_toi_step(STEP_RESUME_ALT_IMAGE); -+ -+ toi_power_down(); -+ -+ barrier(); -+ mb(); -+ return 0; -+} -+ -+/** -+ * __save_image - do the hard work of saving the image -+ * -+ * High level routine for getting the image saved. The key assumptions made -+ * are that processes have been frozen and sufficient memory is available. -+ * -+ * We also exit through here at resume time, coming back from toi_hibernate -+ * after the atomic restore. This is the reason for the toi_in_hibernate -+ * test. -+ **/ -+static int __save_image(void) -+{ -+ int temp_result, did_copy = 0; -+ -+ toi_prepare_status(DONT_CLEAR_BAR, "Starting to save the image.."); -+ -+ toi_message(TOI_ANY_SECTION, TOI_LOW, 1, -+ " - Final values: %d and %d.", -+ pagedir1.size, pagedir2.size); -+ -+ toi_cond_pause(1, "About to write pagedir2."); -+ -+ temp_result = write_pageset(&pagedir2); -+ -+ if (temp_result == -1 || test_result_state(TOI_ABORTED)) -+ return 1; -+ -+ toi_cond_pause(1, "About to copy pageset 1."); -+ -+ if (test_result_state(TOI_ABORTED)) -+ return 1; -+ -+ toi_deactivate_storage(1); -+ -+ toi_prepare_status(DONT_CLEAR_BAR, "Doing atomic copy/restore."); -+ -+ toi_in_hibernate = 1; -+ -+ if (toi_go_atomic(PMSG_FREEZE, 1)) -+ goto Failed; -+ -+ temp_result = toi_hibernate(); -+ if (!temp_result) -+ did_copy = 1; -+ -+ /* We return here at resume time too! */ -+ toi_end_atomic(ATOMIC_ALL_STEPS, toi_in_hibernate, temp_result); -+ -+Failed: -+ if (toi_activate_storage(1)) -+ panic("Failed to reactivate our storage."); -+ -+ /* Resume time? */ -+ if (!toi_in_hibernate) { -+ copyback_post(); -+ return 0; -+ } -+ -+ /* Nope. Hibernating. So, see if we can save the image... */ -+ -+ if (temp_result || test_result_state(TOI_ABORTED)) { -+ if (did_copy) -+ goto abort_reloading_pagedir_two; -+ else -+ return 1; -+ } -+ -+ toi_update_status(pagedir2.size, pagedir1.size + pagedir2.size, -+ NULL); -+ -+ if (test_result_state(TOI_ABORTED)) -+ goto abort_reloading_pagedir_two; -+ -+ toi_cond_pause(1, "About to write pageset1."); -+ -+ toi_message(TOI_ANY_SECTION, TOI_LOW, 1, "-- Writing pageset1"); -+ -+ temp_result = write_pageset(&pagedir1); -+ -+ /* We didn't overwrite any memory, so no reread needs to be done. */ -+ if (test_action_state(TOI_TEST_FILTER_SPEED)) -+ return 1; -+ -+ if (temp_result == 1 || test_result_state(TOI_ABORTED)) -+ goto abort_reloading_pagedir_two; -+ -+ toi_cond_pause(1, "About to write header."); -+ -+ if (test_result_state(TOI_ABORTED)) -+ goto abort_reloading_pagedir_two; -+ -+ temp_result = write_image_header(); -+ -+ if (test_action_state(TOI_TEST_BIO)) -+ return 1; -+ -+ if (!temp_result && !test_result_state(TOI_ABORTED)) -+ return 0; -+ -+abort_reloading_pagedir_two: -+ temp_result = read_pageset2(1); -+ -+ /* If that failed, we're sunk. Panic! */ -+ if (temp_result) -+ panic("Attempt to reload pagedir 2 while aborting " -+ "a hibernate failed."); -+ -+ return 1; -+} -+ -+static void map_ps2_pages(int enable) -+{ -+ unsigned long pfn = 0; -+ -+ pfn = memory_bm_next_pfn(pageset2_map); -+ -+ while (pfn != BM_END_OF_MAP) { -+ struct page *page = pfn_to_page(pfn); -+ kernel_map_pages(page, 1, enable); -+ pfn = memory_bm_next_pfn(pageset2_map); -+ } -+} -+ -+/** -+ * do_save_image - save the image and handle the result -+ * -+ * Save the prepared image. If we fail or we're in the path returning -+ * from the atomic restore, cleanup. -+ **/ -+static int do_save_image(void) -+{ -+ int result; -+ map_ps2_pages(0); -+ result = __save_image(); -+ map_ps2_pages(1); -+ return result; -+} -+ -+/** -+ * do_prepare_image - try to prepare an image -+ * -+ * Seek to initialise and prepare an image to be saved. On failure, -+ * cleanup. -+ **/ -+static int do_prepare_image(void) -+{ -+ int restarting = test_result_state(TOI_EXTRA_PAGES_ALLOW_TOO_SMALL); -+ -+ if (!restarting && toi_activate_storage(0)) -+ return 1; -+ -+ /* -+ * If kept image and still keeping image and hibernating to RAM, we will -+ * return 1 after hibernating and resuming (provided the power doesn't -+ * run out. In that case, we skip directly to cleaning up and exiting. -+ */ -+ -+ if (!can_hibernate() || -+ (test_result_state(TOI_KEPT_IMAGE) && -+ check_still_keeping_image())) -+ return 1; -+ -+ if (toi_init(restarting) && !toi_prepare_image() && -+ !test_result_state(TOI_ABORTED)) -+ return 0; -+ -+ trap_non_toi_io = 1; -+ -+ return 1; -+} -+ -+/** -+ * do_check_can_resume - find out whether an image has been stored -+ * -+ * Read whether an image exists. We use the same routine as the -+ * image_exists sysfs entry, and just look to see whether the -+ * first character in the resulting buffer is a '1'. -+ **/ -+int do_check_can_resume(void) -+{ -+ int result = -1; -+ -+ if (toi_activate_storage(0)) -+ return -1; -+ -+ if (!test_toi_state(TOI_RESUME_DEVICE_OK)) -+ toi_attempt_to_parse_resume_device(1); -+ -+ if (toiActiveAllocator) -+ result = toiActiveAllocator->image_exists(1); -+ -+ toi_deactivate_storage(0); -+ return result; -+} -+EXPORT_SYMBOL_GPL(do_check_can_resume); -+ -+/** -+ * do_load_atomic_copy - load the first part of an image, if it exists -+ * -+ * Check whether we have an image. If one exists, do sanity checking -+ * (possibly invalidating the image or even rebooting if the user -+ * requests that) before loading it into memory in preparation for the -+ * atomic restore. -+ * -+ * If and only if we have an image loaded and ready to restore, we return 1. -+ **/ -+static int do_load_atomic_copy(void) -+{ -+ int read_image_result = 0; -+ -+ if (sizeof(swp_entry_t) != sizeof(long)) { -+ printk(KERN_WARNING "TuxOnIce: The size of swp_entry_t != size" -+ " of long. Please report this!\n"); -+ return 1; -+ } -+ -+ if (!resume_file[0]) -+ printk(KERN_WARNING "TuxOnIce: " -+ "You need to use a resume= command line parameter to " -+ "tell TuxOnIce where to look for an image.\n"); -+ -+ toi_activate_storage(0); -+ -+ if (!(test_toi_state(TOI_RESUME_DEVICE_OK)) && -+ !toi_attempt_to_parse_resume_device(0)) { -+ /* -+ * Without a usable storage device we can do nothing - -+ * even if noresume is given -+ */ -+ -+ if (!toiNumAllocators) -+ printk(KERN_ALERT "TuxOnIce: " -+ "No storage allocators have been registered.\n"); -+ else -+ printk(KERN_ALERT "TuxOnIce: " -+ "Missing or invalid storage location " -+ "(resume= parameter). Please correct and " -+ "rerun lilo (or equivalent) before " -+ "hibernating.\n"); -+ toi_deactivate_storage(0); -+ return 1; -+ } -+ -+ if (allocate_bitmaps()) -+ return 1; -+ -+ read_image_result = read_pageset1(); /* non fatal error ignored */ -+ -+ if (test_toi_state(TOI_NORESUME_SPECIFIED)) -+ clear_toi_state(TOI_NORESUME_SPECIFIED); -+ -+ toi_deactivate_storage(0); -+ -+ if (read_image_result) -+ return 1; -+ -+ return 0; -+} -+ -+/** -+ * prepare_restore_load_alt_image - save & restore alt image variables -+ * -+ * Save and restore the pageset1 maps, when loading an alternate image. -+ **/ -+static void prepare_restore_load_alt_image(int prepare) -+{ -+ static struct memory_bitmap *pageset1_map_save, *pageset1_copy_map_save; -+ -+ if (prepare) { -+ pageset1_map_save = pageset1_map; -+ pageset1_map = NULL; -+ pageset1_copy_map_save = pageset1_copy_map; -+ pageset1_copy_map = NULL; -+ set_toi_state(TOI_LOADING_ALT_IMAGE); -+ toi_reset_alt_image_pageset2_pfn(); -+ } else { -+ memory_bm_free(pageset1_map, 0); -+ pageset1_map = pageset1_map_save; -+ memory_bm_free(pageset1_copy_map, 0); -+ pageset1_copy_map = pageset1_copy_map_save; -+ clear_toi_state(TOI_NOW_RESUMING); -+ clear_toi_state(TOI_LOADING_ALT_IMAGE); -+ } -+} -+ -+/** -+ * do_toi_step - perform a step in hibernating or resuming -+ * -+ * Perform a step in hibernating or resuming an image. This abstraction -+ * is in preparation for implementing cluster support, and perhaps replacing -+ * uswsusp too (haven't looked whether that's possible yet). -+ **/ -+int do_toi_step(int step) -+{ -+ switch (step) { -+ case STEP_HIBERNATE_PREPARE_IMAGE: -+ return do_prepare_image(); -+ case STEP_HIBERNATE_SAVE_IMAGE: -+ return do_save_image(); -+ case STEP_HIBERNATE_POWERDOWN: -+ return do_post_image_write(); -+ case STEP_RESUME_CAN_RESUME: -+ return do_check_can_resume(); -+ case STEP_RESUME_LOAD_PS1: -+ return do_load_atomic_copy(); -+ case STEP_RESUME_DO_RESTORE: -+ /* -+ * If we succeed, this doesn't return. -+ * Instead, we return from do_save_image() in the -+ * hibernated kernel. -+ */ -+ return toi_atomic_restore(); -+ case STEP_RESUME_ALT_IMAGE: -+ printk(KERN_INFO "Trying to resume alternate image.\n"); -+ toi_in_hibernate = 0; -+ save_restore_alt_param(SAVE, NOQUIET); -+ prepare_restore_load_alt_image(1); -+ if (!do_check_can_resume()) { -+ printk(KERN_INFO "Nothing to resume from.\n"); -+ goto out; -+ } -+ if (!do_load_atomic_copy()) -+ toi_atomic_restore(); -+ -+ printk(KERN_INFO "Failed to load image.\n"); -+out: -+ prepare_restore_load_alt_image(0); -+ save_restore_alt_param(RESTORE, NOQUIET); -+ break; -+ case STEP_CLEANUP: -+ do_cleanup(1, 0); -+ break; -+ case STEP_QUIET_CLEANUP: -+ do_cleanup(0, 0); -+ break; -+ } -+ -+ return 0; -+} -+EXPORT_SYMBOL_GPL(do_toi_step); -+ -+/* -- Functions for kickstarting a hibernate or resume --- */ -+ -+/** -+ * toi_try_resume - try to do the steps in resuming -+ * -+ * Check if we have an image and if so try to resume. Clear the status -+ * flags too. -+ **/ -+void toi_try_resume(void) -+{ -+ set_toi_state(TOI_TRYING_TO_RESUME); -+ resume_attempted = 1; -+ -+ current->flags |= PF_MEMALLOC; -+ -+ if (do_toi_step(STEP_RESUME_CAN_RESUME) && -+ !do_toi_step(STEP_RESUME_LOAD_PS1)) -+ do_toi_step(STEP_RESUME_DO_RESTORE); -+ -+ do_cleanup(0, 0); -+ -+ current->flags &= ~PF_MEMALLOC; -+ -+ clear_toi_state(TOI_IGNORE_LOGLEVEL); -+ clear_toi_state(TOI_TRYING_TO_RESUME); -+ clear_toi_state(TOI_NOW_RESUMING); -+} -+ -+/** -+ * toi_sys_power_disk_try_resume - wrapper calling toi_try_resume -+ * -+ * Wrapper for when __toi_try_resume is called from swsusp resume path, -+ * rather than from echo > /sys/power/tuxonice/do_resume. -+ **/ -+static void toi_sys_power_disk_try_resume(void) -+{ -+ resume_attempted = 1; -+ -+ /* -+ * There's a comment in kernel/power/disk.c that indicates -+ * we should be able to use mutex_lock_nested below. That -+ * doesn't seem to cut it, though, so let's just turn lockdep -+ * off for now. -+ */ -+ lockdep_off(); -+ -+ if (toi_start_anything(SYSFS_RESUMING)) -+ goto out; -+ -+ toi_try_resume(); -+ -+ /* -+ * For initramfs, we have to clear the boot time -+ * flag after trying to resume -+ */ -+ clear_toi_state(TOI_BOOT_TIME); -+ -+ toi_finish_anything(SYSFS_RESUMING); -+out: -+ lockdep_on(); -+} -+ -+/** -+ * toi_try_hibernate - try to start a hibernation cycle -+ * -+ * Start a hibernation cycle, coming in from either -+ * echo > /sys/power/tuxonice/do_suspend -+ * -+ * or -+ * -+ * echo disk > /sys/power/state -+ * -+ * In the later case, we come in without pm_sem taken; in the -+ * former, it has been taken. -+ **/ -+int toi_try_hibernate(void) -+{ -+ int result = 0, sys_power_disk = 0, retries = 0; -+ -+ if (!mutex_is_locked(&tuxonice_in_use)) { -+ /* Came in via /sys/power/disk */ -+ if (toi_start_anything(SYSFS_HIBERNATING)) -+ return -EBUSY; -+ sys_power_disk = 1; -+ } -+ -+ current->flags |= PF_MEMALLOC; -+ -+ if (test_toi_state(TOI_CLUSTER_MODE)) { -+ toi_initiate_cluster_hibernate(); -+ goto out; -+ } -+ -+prepare: -+ result = do_toi_step(STEP_HIBERNATE_PREPARE_IMAGE); -+ -+ if (result || test_action_state(TOI_FREEZER_TEST)) -+ goto out; -+ -+ result = do_toi_step(STEP_HIBERNATE_SAVE_IMAGE); -+ -+ if (test_result_state(TOI_EXTRA_PAGES_ALLOW_TOO_SMALL)) { -+ if (retries < 2) { -+ do_cleanup(0, 1); -+ retries++; -+ clear_result_state(TOI_ABORTED); -+ extra_pd1_pages_allowance = extra_pd1_pages_used + 500; -+ printk(KERN_INFO "Automatically adjusting the extra" -+ " pages allowance to %ld and restarting.\n", -+ extra_pd1_pages_allowance); -+ goto prepare; -+ } -+ -+ printk(KERN_INFO "Adjusted extra pages allowance twice and " -+ "still couldn't hibernate successfully. Giving up."); -+ } -+ -+ /* This code runs at resume time too! */ -+ if (!result && toi_in_hibernate) -+ result = do_toi_step(STEP_HIBERNATE_POWERDOWN); -+out: -+ do_cleanup(1, 0); -+ current->flags &= ~PF_MEMALLOC; -+ -+ if (sys_power_disk) -+ toi_finish_anything(SYSFS_HIBERNATING); -+ -+ return result; -+} -+ -+/* -+ * channel_no: If !0, -c is added to args (userui). -+ */ -+int toi_launch_userspace_program(char *command, int channel_no, -+ enum umh_wait wait, int debug) -+{ -+ int retval; -+ static char *envp[] = { -+ "HOME=/", -+ "TERM=linux", -+ "PATH=/sbin:/usr/sbin:/bin:/usr/bin", -+ NULL }; -+ static char *argv[] = { NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL -+ }; -+ char *channel = NULL; -+ int arg = 0, size; -+ char test_read[255]; -+ char *orig_posn = command; -+ -+ if (!strlen(orig_posn)) -+ return 1; -+ -+ if (channel_no) { -+ channel = toi_kzalloc(4, 6, GFP_KERNEL); -+ if (!channel) { -+ printk(KERN_INFO "Failed to allocate memory in " -+ "preparing to launch userspace program.\n"); -+ return 1; -+ } -+ } -+ -+ /* Up to 6 args supported */ -+ while (arg < 6) { -+ sscanf(orig_posn, "%s", test_read); -+ size = strlen(test_read); -+ if (!(size)) -+ break; -+ argv[arg] = toi_kzalloc(5, size + 1, TOI_ATOMIC_GFP); -+ strcpy(argv[arg], test_read); -+ orig_posn += size + 1; -+ *test_read = 0; -+ arg++; -+ } -+ -+ if (channel_no) { -+ sprintf(channel, "-c%d", channel_no); -+ argv[arg] = channel; -+ } else -+ arg--; -+ -+ if (debug) { -+ argv[++arg] = toi_kzalloc(5, 8, TOI_ATOMIC_GFP); -+ strcpy(argv[arg], "--debug"); -+ } -+ -+ retval = call_usermodehelper(argv[0], argv, envp, wait); -+ -+ /* -+ * If the program reports an error, retval = 256. Don't complain -+ * about that here. -+ */ -+ if (retval && retval != 256) -+ printk(KERN_ERR "Failed to launch userspace program '%s': " -+ "Error %d\n", command, retval); -+ -+ { -+ int i; -+ for (i = 0; i < arg; i++) -+ if (argv[i] && argv[i] != channel) -+ toi_kfree(5, argv[i], sizeof(*argv[i])); -+ } -+ -+ toi_kfree(4, channel, sizeof(*channel)); -+ -+ return retval; -+} -+ -+/* -+ * This array contains entries that are automatically registered at -+ * boot. Modules and the console code register their own entries separately. -+ */ -+static struct toi_sysfs_data sysfs_params[] = { -+ SYSFS_INT("freezer_sync", SYSFS_RW, &freezer_sync, 0, 1, 0, NULL), -+ SYSFS_LONG("extra_pages_allowance", SYSFS_RW, -+ &extra_pd1_pages_allowance, 0, LONG_MAX, 0), -+ SYSFS_CUSTOM("image_exists", SYSFS_RW, image_exists_read, -+ image_exists_write, SYSFS_NEEDS_SM_FOR_BOTH, NULL), -+ SYSFS_STRING("resume", SYSFS_RW, resume_file, 255, -+ SYSFS_NEEDS_SM_FOR_WRITE, -+ attempt_to_parse_resume_device2), -+ SYSFS_STRING("alt_resume_param", SYSFS_RW, alt_resume_param, 255, -+ SYSFS_NEEDS_SM_FOR_WRITE, -+ attempt_to_parse_alt_resume_param), -+ SYSFS_CUSTOM("debug_info", SYSFS_READONLY, get_toi_debug_info, NULL, 0, -+ NULL), -+ SYSFS_BIT("ignore_rootfs", SYSFS_RW, &toi_bkd.toi_action, -+ TOI_IGNORE_ROOTFS, 0), -+ SYSFS_LONG("image_size_limit", SYSFS_RW, &image_size_limit, -2, -+ INT_MAX, 0), -+ SYSFS_UL("last_result", SYSFS_RW, &toi_result, 0, 0, 0), -+ SYSFS_BIT("no_multithreaded_io", SYSFS_RW, &toi_bkd.toi_action, -+ TOI_NO_MULTITHREADED_IO, 0), -+ SYSFS_BIT("no_flusher_thread", SYSFS_RW, &toi_bkd.toi_action, -+ TOI_NO_FLUSHER_THREAD, 0), -+ SYSFS_BIT("full_pageset2", SYSFS_RW, &toi_bkd.toi_action, -+ TOI_PAGESET2_FULL, 0), -+ SYSFS_BIT("reboot", SYSFS_RW, &toi_bkd.toi_action, TOI_REBOOT, 0), -+ SYSFS_BIT("replace_swsusp", SYSFS_RW, &toi_bkd.toi_action, -+ TOI_REPLACE_SWSUSP, 0), -+ SYSFS_STRING("resume_commandline", SYSFS_RW, -+ toi_bkd.toi_nosave_commandline, COMMAND_LINE_SIZE, 0, -+ NULL), -+ SYSFS_STRING("version", SYSFS_READONLY, TOI_CORE_VERSION, 0, 0, NULL), -+ SYSFS_BIT("freezer_test", SYSFS_RW, &toi_bkd.toi_action, -+ TOI_FREEZER_TEST, 0), -+ SYSFS_BIT("test_bio", SYSFS_RW, &toi_bkd.toi_action, TOI_TEST_BIO, 0), -+ SYSFS_BIT("test_filter_speed", SYSFS_RW, &toi_bkd.toi_action, -+ TOI_TEST_FILTER_SPEED, 0), -+ SYSFS_BIT("no_pageset2", SYSFS_RW, &toi_bkd.toi_action, -+ TOI_NO_PAGESET2, 0), -+ SYSFS_BIT("no_pageset2_if_unneeded", SYSFS_RW, &toi_bkd.toi_action, -+ TOI_NO_PS2_IF_UNNEEDED, 0), -+ SYSFS_BIT("late_cpu_hotplug", SYSFS_RW, &toi_bkd.toi_action, -+ TOI_LATE_CPU_HOTPLUG, 0), -+ SYSFS_STRING("binary_signature", SYSFS_READONLY, -+ tuxonice_signature, 9, 0, NULL), -+ SYSFS_INT("max_workers", SYSFS_RW, &toi_max_workers, 0, NR_CPUS, 0, -+ NULL), -+#ifdef CONFIG_TOI_KEEP_IMAGE -+ SYSFS_BIT("keep_image", SYSFS_RW , &toi_bkd.toi_action, TOI_KEEP_IMAGE, -+ 0), -+#endif -+}; -+ -+static struct toi_core_fns my_fns = { -+ .get_nonconflicting_page = __toi_get_nonconflicting_page, -+ .post_context_save = __toi_post_context_save, -+ .try_hibernate = toi_try_hibernate, -+ .try_resume = toi_sys_power_disk_try_resume, -+}; -+ -+/** -+ * core_load - initialisation of TuxOnIce core -+ * -+ * Initialise the core, beginning with sysfs. Checksum and so on are part of -+ * the core, but have their own initialisation routines because they either -+ * aren't compiled in all the time or have their own subdirectories. -+ **/ -+static __init int core_load(void) -+{ -+ int i, -+ numfiles = sizeof(sysfs_params) / sizeof(struct toi_sysfs_data); -+ -+ printk(KERN_INFO "TuxOnIce " TOI_CORE_VERSION -+ " (http://tuxonice.net)\n"); -+ -+ if (toi_sysfs_init()) -+ return 1; -+ -+ for (i = 0; i < numfiles; i++) -+ toi_register_sysfs_file(tuxonice_kobj, &sysfs_params[i]); -+ -+ toi_core_fns = &my_fns; -+ -+ if (toi_alloc_init()) -+ return 1; -+ if (toi_checksum_init()) -+ return 1; -+ if (toi_usm_init()) -+ return 1; -+ if (toi_ui_init()) -+ return 1; -+ if (toi_poweroff_init()) -+ return 1; -+ if (toi_cluster_init()) -+ return 1; -+ -+ return 0; -+} -+ -+#ifdef MODULE -+/** -+ * core_unload: Prepare to unload the core code. -+ **/ -+static __exit void core_unload(void) -+{ -+ int i, -+ numfiles = sizeof(sysfs_params) / sizeof(struct toi_sysfs_data); -+ -+ toi_alloc_exit(); -+ toi_checksum_exit(); -+ toi_poweroff_exit(); -+ toi_ui_exit(); -+ toi_usm_exit(); -+ toi_cluster_exit(); -+ -+ for (i = 0; i < numfiles; i++) -+ toi_unregister_sysfs_file(tuxonice_kobj, &sysfs_params[i]); -+ -+ toi_core_fns = NULL; -+ -+ toi_sysfs_exit(); -+} -+MODULE_LICENSE("GPL"); -+module_init(core_load); -+module_exit(core_unload); -+#else -+late_initcall(core_load); -+#endif -diff --git a/kernel/power/tuxonice_io.c b/kernel/power/tuxonice_io.c -new file mode 100644 -index 0000000..02be4d9 ---- /dev/null -+++ b/kernel/power/tuxonice_io.c -@@ -0,0 +1,1822 @@ -+/* -+ * kernel/power/tuxonice_io.c -+ * -+ * Copyright (C) 1998-2001 Gabor Kuti -+ * Copyright (C) 1998,2001,2002 Pavel Machek -+ * Copyright (C) 2002-2003 Florent Chabaud -+ * Copyright (C) 2002-2010 Nigel Cunningham (nigel at tuxonice net) -+ * -+ * This file is released under the GPLv2. -+ * -+ * It contains high level IO routines for hibernating. -+ * -+ */ -+ -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+ -+#include "tuxonice.h" -+#include "tuxonice_modules.h" -+#include "tuxonice_pageflags.h" -+#include "tuxonice_io.h" -+#include "tuxonice_ui.h" -+#include "tuxonice_storage.h" -+#include "tuxonice_prepare_image.h" -+#include "tuxonice_extent.h" -+#include "tuxonice_sysfs.h" -+#include "tuxonice_builtin.h" -+#include "tuxonice_checksum.h" -+#include "tuxonice_alloc.h" -+char alt_resume_param[256]; -+ -+/* Version read from image header at resume */ -+static int toi_image_header_version; -+ -+#define read_if_version(VERS, VAR, DESC) do { \ -+ if (likely(toi_image_header_version >= VERS)) \ -+ if (toiActiveAllocator->rw_header_chunk(READ, NULL, \ -+ (char *) &VAR, sizeof(VAR))) { \ -+ abort_hibernate(TOI_FAILED_IO, "Failed to read DESC."); \ -+ goto out_remove_image; \ -+ } \ -+} while(0) \ -+ -+/* Variables shared between threads and updated under the mutex */ -+static int io_write, io_finish_at, io_base, io_barmax, io_pageset, io_result; -+static int io_index, io_nextupdate, io_pc, io_pc_step; -+static DEFINE_MUTEX(io_mutex); -+static DEFINE_PER_CPU(struct page *, last_sought); -+static DEFINE_PER_CPU(struct page *, last_high_page); -+static DEFINE_PER_CPU(char *, checksum_locn); -+static DEFINE_PER_CPU(struct pbe *, last_low_page); -+static atomic_t io_count; -+atomic_t toi_io_workers; -+EXPORT_SYMBOL_GPL(toi_io_workers); -+ -+DECLARE_WAIT_QUEUE_HEAD(toi_io_queue_flusher); -+EXPORT_SYMBOL_GPL(toi_io_queue_flusher); -+ -+int toi_bio_queue_flusher_should_finish; -+EXPORT_SYMBOL_GPL(toi_bio_queue_flusher_should_finish); -+ -+/* Indicates that this thread should be used for checking throughput */ -+#define MONITOR ((void *) 1) -+ -+int toi_max_workers; -+ -+static char *image_version_error = "The image header version is newer than " \ -+ "this kernel supports."; -+ -+/** -+ * toi_attempt_to_parse_resume_device - determine if we can hibernate -+ * -+ * Can we hibernate, using the current resume= parameter? -+ **/ -+int toi_attempt_to_parse_resume_device(int quiet) -+{ -+ struct list_head *Allocator; -+ struct toi_module_ops *thisAllocator; -+ int result, returning = 0; -+ -+ if (toi_activate_storage(0)) -+ return 0; -+ -+ toiActiveAllocator = NULL; -+ clear_toi_state(TOI_RESUME_DEVICE_OK); -+ clear_toi_state(TOI_CAN_RESUME); -+ clear_result_state(TOI_ABORTED); -+ -+ if (!toiNumAllocators) { -+ if (!quiet) -+ printk(KERN_INFO "TuxOnIce: No storage allocators have " -+ "been registered. Hibernating will be " -+ "disabled.\n"); -+ goto cleanup; -+ } -+ -+ list_for_each(Allocator, &toiAllocators) { -+ thisAllocator = list_entry(Allocator, struct toi_module_ops, -+ type_list); -+ -+ /* -+ * Not sure why you'd want to disable an allocator, but -+ * we should honour the flag if we're providing it -+ */ -+ if (!thisAllocator->enabled) -+ continue; -+ -+ result = thisAllocator->parse_sig_location( -+ resume_file, (toiNumAllocators == 1), -+ quiet); -+ -+ switch (result) { -+ case -EINVAL: -+ /* For this allocator, but not a valid -+ * configuration. Error already printed. */ -+ goto cleanup; -+ -+ case 0: -+ /* For this allocator and valid. */ -+ toiActiveAllocator = thisAllocator; -+ -+ set_toi_state(TOI_RESUME_DEVICE_OK); -+ set_toi_state(TOI_CAN_RESUME); -+ returning = 1; -+ goto cleanup; -+ } -+ } -+ if (!quiet) -+ printk(KERN_INFO "TuxOnIce: No matching enabled allocator " -+ "found. Resuming disabled.\n"); -+cleanup: -+ toi_deactivate_storage(0); -+ return returning; -+} -+EXPORT_SYMBOL_GPL(toi_attempt_to_parse_resume_device); -+ -+void attempt_to_parse_resume_device2(void) -+{ -+ toi_prepare_usm(); -+ toi_attempt_to_parse_resume_device(0); -+ toi_cleanup_usm(); -+} -+EXPORT_SYMBOL_GPL(attempt_to_parse_resume_device2); -+ -+void save_restore_alt_param(int replace, int quiet) -+{ -+ static char resume_param_save[255]; -+ static unsigned long toi_state_save; -+ -+ if (replace) { -+ toi_state_save = toi_state; -+ strcpy(resume_param_save, resume_file); -+ strcpy(resume_file, alt_resume_param); -+ } else { -+ strcpy(resume_file, resume_param_save); -+ toi_state = toi_state_save; -+ } -+ toi_attempt_to_parse_resume_device(quiet); -+} -+ -+void attempt_to_parse_alt_resume_param(void) -+{ -+ int ok = 0; -+ -+ /* Temporarily set resume_param to the poweroff value */ -+ if (!strlen(alt_resume_param)) -+ return; -+ -+ printk(KERN_INFO "=== Trying Poweroff Resume2 ===\n"); -+ save_restore_alt_param(SAVE, NOQUIET); -+ if (test_toi_state(TOI_CAN_RESUME)) -+ ok = 1; -+ -+ printk(KERN_INFO "=== Done ===\n"); -+ save_restore_alt_param(RESTORE, QUIET); -+ -+ /* If not ok, clear the string */ -+ if (ok) -+ return; -+ -+ printk(KERN_INFO "Can't resume from that location; clearing " -+ "alt_resume_param.\n"); -+ alt_resume_param[0] = '\0'; -+} -+ -+/** -+ * noresume_reset_modules - reset data structures in case of non resuming -+ * -+ * When we read the start of an image, modules (and especially the -+ * active allocator) might need to reset data structures if we -+ * decide to remove the image rather than resuming from it. -+ **/ -+static void noresume_reset_modules(void) -+{ -+ struct toi_module_ops *this_filter; -+ -+ list_for_each_entry(this_filter, &toi_filters, type_list) -+ if (this_filter->noresume_reset) -+ this_filter->noresume_reset(); -+ -+ if (toiActiveAllocator && toiActiveAllocator->noresume_reset) -+ toiActiveAllocator->noresume_reset(); -+} -+ -+/** -+ * fill_toi_header - fill the hibernate header structure -+ * @struct toi_header: Header data structure to be filled. -+ **/ -+static int fill_toi_header(struct toi_header *sh) -+{ -+ int i, error; -+ -+ error = init_header((struct swsusp_info *) sh); -+ if (error) -+ return error; -+ -+ sh->pagedir = pagedir1; -+ sh->pageset_2_size = pagedir2.size; -+ sh->param0 = toi_result; -+ sh->param1 = toi_bkd.toi_action; -+ sh->param2 = toi_bkd.toi_debug_state; -+ sh->param3 = toi_bkd.toi_default_console_level; -+ sh->root_fs = current->fs->root.mnt->mnt_sb->s_dev; -+ for (i = 0; i < 4; i++) -+ sh->io_time[i/2][i%2] = toi_bkd.toi_io_time[i/2][i%2]; -+ sh->bkd = boot_kernel_data_buffer; -+ return 0; -+} -+ -+/** -+ * rw_init_modules - initialize modules -+ * @rw: Whether we are reading of writing an image. -+ * @which: Section of the image being processed. -+ * -+ * Iterate over modules, preparing the ones that will be used to read or write -+ * data. -+ **/ -+static int rw_init_modules(int rw, int which) -+{ -+ struct toi_module_ops *this_module; -+ /* Initialise page transformers */ -+ list_for_each_entry(this_module, &toi_filters, type_list) { -+ if (!this_module->enabled) -+ continue; -+ if (this_module->rw_init && this_module->rw_init(rw, which)) { -+ abort_hibernate(TOI_FAILED_MODULE_INIT, -+ "Failed to initialize the %s filter.", -+ this_module->name); -+ return 1; -+ } -+ } -+ -+ /* Initialise allocator */ -+ if (toiActiveAllocator->rw_init(rw, which)) { -+ abort_hibernate(TOI_FAILED_MODULE_INIT, -+ "Failed to initialise the allocator."); -+ return 1; -+ } -+ -+ /* Initialise other modules */ -+ list_for_each_entry(this_module, &toi_modules, module_list) { -+ if (!this_module->enabled || -+ this_module->type == FILTER_MODULE || -+ this_module->type == WRITER_MODULE) -+ continue; -+ if (this_module->rw_init && this_module->rw_init(rw, which)) { -+ set_abort_result(TOI_FAILED_MODULE_INIT); -+ printk(KERN_INFO "Setting aborted flag due to module " -+ "init failure.\n"); -+ return 1; -+ } -+ } -+ -+ return 0; -+} -+ -+/** -+ * rw_cleanup_modules - cleanup modules -+ * @rw: Whether we are reading of writing an image. -+ * -+ * Cleanup components after reading or writing a set of pages. -+ * Only the allocator may fail. -+ **/ -+static int rw_cleanup_modules(int rw) -+{ -+ struct toi_module_ops *this_module; -+ int result = 0; -+ -+ /* Cleanup other modules */ -+ list_for_each_entry(this_module, &toi_modules, module_list) { -+ if (!this_module->enabled || -+ this_module->type == FILTER_MODULE || -+ this_module->type == WRITER_MODULE) -+ continue; -+ if (this_module->rw_cleanup) -+ result |= this_module->rw_cleanup(rw); -+ } -+ -+ /* Flush data and cleanup */ -+ list_for_each_entry(this_module, &toi_filters, type_list) { -+ if (!this_module->enabled) -+ continue; -+ if (this_module->rw_cleanup) -+ result |= this_module->rw_cleanup(rw); -+ } -+ -+ result |= toiActiveAllocator->rw_cleanup(rw); -+ -+ return result; -+} -+ -+static struct page *copy_page_from_orig_page(struct page *orig_page) -+{ -+ int is_high = PageHighMem(orig_page), index, min, max; -+ struct page *high_page = NULL, -+ **my_last_high_page = &__get_cpu_var(last_high_page), -+ **my_last_sought = &__get_cpu_var(last_sought); -+ struct pbe *this, **my_last_low_page = &__get_cpu_var(last_low_page); -+ void *compare; -+ -+ if (is_high) { -+ if (*my_last_sought && *my_last_high_page && -+ *my_last_sought < orig_page) -+ high_page = *my_last_high_page; -+ else -+ high_page = (struct page *) restore_highmem_pblist; -+ this = (struct pbe *) kmap(high_page); -+ compare = orig_page; -+ } else { -+ if (*my_last_sought && *my_last_low_page && -+ *my_last_sought < orig_page) -+ this = *my_last_low_page; -+ else -+ this = restore_pblist; -+ compare = page_address(orig_page); -+ } -+ -+ *my_last_sought = orig_page; -+ -+ /* Locate page containing pbe */ -+ while (this[PBES_PER_PAGE - 1].next && -+ this[PBES_PER_PAGE - 1].orig_address < compare) { -+ if (is_high) { -+ struct page *next_high_page = (struct page *) -+ this[PBES_PER_PAGE - 1].next; -+ kunmap(high_page); -+ this = kmap(next_high_page); -+ high_page = next_high_page; -+ } else -+ this = this[PBES_PER_PAGE - 1].next; -+ } -+ -+ /* Do a binary search within the page */ -+ min = 0; -+ max = PBES_PER_PAGE; -+ index = PBES_PER_PAGE / 2; -+ while (max - min) { -+ if (!this[index].orig_address || -+ this[index].orig_address > compare) -+ max = index; -+ else if (this[index].orig_address == compare) { -+ if (is_high) { -+ struct page *page = this[index].address; -+ *my_last_high_page = high_page; -+ kunmap(high_page); -+ return page; -+ } -+ *my_last_low_page = this; -+ return virt_to_page(this[index].address); -+ } else -+ min = index; -+ index = ((max + min) / 2); -+ }; -+ -+ if (is_high) -+ kunmap(high_page); -+ -+ abort_hibernate(TOI_FAILED_IO, "Failed to get destination page for" -+ " orig page %p. This[min].orig_address=%p.\n", orig_page, -+ this[index].orig_address); -+ return NULL; -+} -+ -+/** -+ * write_next_page - write the next page in a pageset -+ * @data_pfn: The pfn where the next data to write is located. -+ * @my_io_index: The index of the page in the pageset. -+ * @write_pfn: The pfn number to write in the image (where the data belongs). -+ * @first_filter: Where to send the page (optimisation). -+ * -+ * Get the pfn of the next page to write, map the page if necessary and do the -+ * write. -+ **/ -+static int write_next_page(unsigned long *data_pfn, int *my_io_index, -+ unsigned long *write_pfn, struct toi_module_ops *first_filter) -+{ -+ struct page *page; -+ char **my_checksum_locn = &__get_cpu_var(checksum_locn); -+ int result = 0, was_present; -+ -+ *data_pfn = memory_bm_next_pfn(io_map); -+ -+ /* Another thread could have beaten us to it. */ -+ if (*data_pfn == BM_END_OF_MAP) { -+ if (atomic_read(&io_count)) { -+ printk(KERN_INFO "Ran out of pfns but io_count is " -+ "still %d.\n", atomic_read(&io_count)); -+ BUG(); -+ } -+ mutex_unlock(&io_mutex); -+ return -ENODATA; -+ } -+ -+ *my_io_index = io_finish_at - atomic_sub_return(1, &io_count); -+ -+ memory_bm_clear_bit(io_map, *data_pfn); -+ page = pfn_to_page(*data_pfn); -+ -+ was_present = kernel_page_present(page); -+ if (!was_present) -+ kernel_map_pages(page, 1, 1); -+ -+ if (io_pageset == 1) -+ *write_pfn = memory_bm_next_pfn(pageset1_map); -+ else { -+ *write_pfn = *data_pfn; -+ *my_checksum_locn = tuxonice_get_next_checksum(); -+ } -+ -+ mutex_unlock(&io_mutex); -+ -+ if (io_pageset == 2 && tuxonice_calc_checksum(page, *my_checksum_locn)) -+ return 1; -+ -+ result = first_filter->write_page(*write_pfn, page, PAGE_SIZE); -+ -+ if (!was_present) -+ kernel_map_pages(page, 1, 0); -+ -+ return result; -+} -+ -+/** -+ * read_next_page - read the next page in a pageset -+ * @my_io_index: The index of the page in the pageset. -+ * @write_pfn: The pfn in which the data belongs. -+ * -+ * Read a page of the image into our buffer. It can happen (here and in the -+ * write routine) that threads don't get run until after other CPUs have done -+ * all the work. This was the cause of the long standing issue with -+ * occasionally getting -ENODATA errors at the end of reading the image. We -+ * therefore need to check there's actually a page to read before trying to -+ * retrieve one. -+ **/ -+ -+static int read_next_page(int *my_io_index, unsigned long *write_pfn, -+ struct page *buffer, struct toi_module_ops *first_filter) -+{ -+ unsigned int buf_size = PAGE_SIZE; -+ unsigned long left = atomic_read(&io_count); -+ -+ if (left) -+ *my_io_index = io_finish_at - atomic_sub_return(1, &io_count); -+ -+ mutex_unlock(&io_mutex); -+ -+ /* -+ * Are we aborting? If so, don't submit any more I/O as -+ * resetting the resume_attempted flag (from ui.c) will -+ * clear the bdev flags, making this thread oops. -+ */ -+ if (unlikely(test_toi_state(TOI_STOP_RESUME))) { -+ atomic_dec(&toi_io_workers); -+ if (!atomic_read(&toi_io_workers)) { -+ /* -+ * So we can be sure we'll have memory for -+ * marking that we haven't resumed. -+ */ -+ rw_cleanup_modules(READ); -+ set_toi_state(TOI_IO_STOPPED); -+ } -+ while (1) -+ schedule(); -+ } -+ -+ if (!left) -+ return -ENODATA; -+ -+ /* -+ * See toi_bio_read_page in tuxonice_bio.c: -+ * read the next page in the image. -+ */ -+ return first_filter->read_page(write_pfn, buffer, &buf_size); -+} -+ -+static void use_read_page(unsigned long write_pfn, struct page *buffer) -+{ -+ struct page *final_page = pfn_to_page(write_pfn), -+ *copy_page = final_page; -+ char *virt, *buffer_virt; -+ -+ if (io_pageset == 1 && !PagePageset1Copy(final_page)) { -+ copy_page = copy_page_from_orig_page(final_page); -+ BUG_ON(!copy_page); -+ } -+ -+ if (memory_bm_test_bit(io_map, write_pfn)) { -+ int was_present; -+ -+ virt = kmap(copy_page); -+ buffer_virt = kmap(buffer); -+ was_present = kernel_page_present(copy_page); -+ if (!was_present) -+ kernel_map_pages(copy_page, 1, 1); -+ memcpy(virt, buffer_virt, PAGE_SIZE); -+ if (!was_present) -+ kernel_map_pages(copy_page, 1, 0); -+ kunmap(copy_page); -+ kunmap(buffer); -+ memory_bm_clear_bit(io_map, write_pfn); -+ } else { -+ mutex_lock(&io_mutex); -+ atomic_inc(&io_count); -+ mutex_unlock(&io_mutex); -+ } -+} -+ -+static unsigned long status_update(int writing, unsigned long done, -+ unsigned long ticks) -+{ -+ int cs_index = writing ? 0 : 1; -+ unsigned long ticks_so_far = toi_bkd.toi_io_time[cs_index][1] + ticks; -+ unsigned long msec = jiffies_to_msecs(abs(ticks_so_far)); -+ unsigned long pgs_per_s, estimate = 0, pages_left; -+ -+ if (msec) { -+ pages_left = io_barmax - done; -+ pgs_per_s = 1000 * done / msec; -+ if (pgs_per_s) -+ estimate = pages_left / pgs_per_s; -+ } -+ -+ if (estimate && ticks > HZ / 2) -+ return toi_update_status(done, io_barmax, -+ " %d/%d MB (%lu sec left)", -+ MB(done+1), MB(io_barmax), estimate); -+ -+ return toi_update_status(done, io_barmax, " %d/%d MB", -+ MB(done+1), MB(io_barmax)); -+} -+ -+/** -+ * worker_rw_loop - main loop to read/write pages -+ * -+ * The main I/O loop for reading or writing pages. The io_map bitmap is used to -+ * track the pages to read/write. -+ * If we are reading, the pages are loaded to their final (mapped) pfn. -+ **/ -+static int worker_rw_loop(void *data) -+{ -+ unsigned long data_pfn, write_pfn, next_jiffies = jiffies + HZ / 4, -+ jif_index = 1, start_time = jiffies; -+ int result = 0, my_io_index = 0, last_worker; -+ struct toi_module_ops *first_filter = toi_get_next_filter(NULL); -+ struct page *buffer = toi_alloc_page(28, TOI_ATOMIC_GFP); -+ -+ current->flags |= PF_NOFREEZE; -+ -+ mutex_lock(&io_mutex); -+ -+ do { -+ if (data && jiffies > next_jiffies) { -+ next_jiffies += HZ / 4; -+ if (toiActiveAllocator->update_throughput_throttle) -+ toiActiveAllocator->update_throughput_throttle( -+ jif_index); -+ jif_index++; -+ } -+ -+ /* -+ * What page to use? If reading, don't know yet which page's -+ * data will be read, so always use the buffer. If writing, -+ * use the copy (Pageset1) or original page (Pageset2), but -+ * always write the pfn of the original page. -+ */ -+ if (io_write) -+ result = write_next_page(&data_pfn, &my_io_index, -+ &write_pfn, first_filter); -+ else /* Reading */ -+ result = read_next_page(&my_io_index, &write_pfn, -+ buffer, first_filter); -+ -+ if (result) { -+ mutex_lock(&io_mutex); -+ /* Nothing to do? */ -+ if (result == -ENODATA) -+ break; -+ -+ io_result = result; -+ -+ if (io_write) { -+ printk(KERN_INFO "Write chunk returned %d.\n", -+ result); -+ abort_hibernate(TOI_FAILED_IO, -+ "Failed to write a chunk of the " -+ "image."); -+ break; -+ } -+ -+ if (io_pageset == 1) { -+ printk(KERN_ERR "\nBreaking out of I/O loop " -+ "because of result code %d.\n", result); -+ break; -+ } -+ panic("Read chunk returned (%d)", result); -+ } -+ -+ /* -+ * Discard reads of resaved pages while reading ps2 -+ * and unwanted pages while rereading ps2 when aborting. -+ */ -+ if (!io_write && !PageResave(pfn_to_page(write_pfn))) -+ use_read_page(write_pfn, buffer); -+ -+ if (my_io_index + io_base == io_nextupdate) -+ io_nextupdate = status_update(io_write, my_io_index + -+ io_base, jiffies - start_time); -+ -+ if (my_io_index == io_pc) { -+ printk(KERN_CONT "...%d%%", 20 * io_pc_step); -+ io_pc_step++; -+ io_pc = io_finish_at * io_pc_step / 5; -+ } -+ -+ toi_cond_pause(0, NULL); -+ -+ /* -+ * Subtle: If there's less I/O still to be done than threads -+ * running, quit. This stops us doing I/O beyond the end of -+ * the image when reading. -+ * -+ * Possible race condition. Two threads could do the test at -+ * the same time; one should exit and one should continue. -+ * Therefore we take the mutex before comparing and exiting. -+ */ -+ -+ mutex_lock(&io_mutex); -+ -+ } while (atomic_read(&io_count) >= atomic_read(&toi_io_workers) && -+ !(io_write && test_result_state(TOI_ABORTED))); -+ -+ last_worker = atomic_dec_and_test(&toi_io_workers); -+ mutex_unlock(&io_mutex); -+ -+ if (last_worker) { -+ toi_bio_queue_flusher_should_finish = 1; -+ wake_up(&toi_io_queue_flusher); -+ result = toiActiveAllocator->finish_all_io(); -+ printk(KERN_CONT "\n"); -+ } -+ -+ toi__free_page(28, buffer); -+ -+ return result; -+} -+ -+static int start_other_threads(void) -+{ -+ int cpu, num_started = 0; -+ struct task_struct *p; -+ int to_start = (toi_max_workers ? toi_max_workers : num_online_cpus()) - 1; -+ -+ atomic_set(&toi_io_workers, to_start); -+ -+ for_each_online_cpu(cpu) { -+ if (num_started == to_start) -+ break; -+ -+ if (cpu == smp_processor_id()) -+ continue; -+ -+ p = kthread_create(worker_rw_loop, num_started ? NULL : MONITOR, -+ "ktoi_io/%d", cpu); -+ if (IS_ERR(p)) { -+ printk(KERN_ERR "ktoi_io for %i failed\n", cpu); -+ atomic_dec(&toi_io_workers); -+ continue; -+ } -+ kthread_bind(p, cpu); -+ p->flags |= PF_MEMALLOC; -+ wake_up_process(p); -+ num_started++; -+ } -+ -+ return num_started; -+} -+ -+/** -+ * do_rw_loop - main highlevel function for reading or writing pages -+ * -+ * Create the io_map bitmap and call worker_rw_loop to perform I/O operations. -+ **/ -+static int do_rw_loop(int write, int finish_at, struct memory_bitmap *pageflags, -+ int base, int barmax, int pageset) -+{ -+ int index = 0, cpu, num_other_threads = 0, result = 0; -+ unsigned long pfn; -+ -+ if (!finish_at) -+ return 0; -+ -+ io_write = write; -+ io_finish_at = finish_at; -+ io_base = base; -+ io_barmax = barmax; -+ io_pageset = pageset; -+ io_index = 0; -+ io_pc = io_finish_at / 5; -+ io_pc_step = 1; -+ io_result = 0; -+ io_nextupdate = base + 1; -+ toi_bio_queue_flusher_should_finish = 0; -+ -+ for_each_online_cpu(cpu) { -+ per_cpu(last_sought, cpu) = NULL; -+ per_cpu(last_low_page, cpu) = NULL; -+ per_cpu(last_high_page, cpu) = NULL; -+ } -+ -+ /* Ensure all bits clear */ -+ memory_bm_clear(io_map); -+ -+ /* Set the bits for the pages to write */ -+ memory_bm_position_reset(pageflags); -+ -+ pfn = memory_bm_next_pfn(pageflags); -+ -+ while (pfn != BM_END_OF_MAP && index < finish_at) { -+ memory_bm_set_bit(io_map, pfn); -+ pfn = memory_bm_next_pfn(pageflags); -+ index++; -+ } -+ -+ BUG_ON(index < finish_at); -+ -+ atomic_set(&io_count, finish_at); -+ -+ memory_bm_position_reset(pageset1_map); -+ -+ clear_toi_state(TOI_IO_STOPPED); -+ memory_bm_position_reset(io_map); -+ -+ if (!test_action_state(TOI_NO_MULTITHREADED_IO) && -+ (write || !toi_force_no_multithreaded)) -+ num_other_threads = start_other_threads(); -+ -+ if (!num_other_threads || !toiActiveAllocator->io_flusher || -+ test_action_state(TOI_NO_FLUSHER_THREAD)) { -+ atomic_inc(&toi_io_workers); -+ worker_rw_loop(num_other_threads ? NULL : MONITOR); -+ } else -+ result = toiActiveAllocator->io_flusher(write); -+ -+ while (atomic_read(&toi_io_workers)) -+ schedule(); -+ -+ if (unlikely(test_toi_state(TOI_STOP_RESUME))) { -+ if (!atomic_read(&toi_io_workers)) { -+ rw_cleanup_modules(READ); -+ set_toi_state(TOI_IO_STOPPED); -+ } -+ while (1) -+ schedule(); -+ } -+ set_toi_state(TOI_IO_STOPPED); -+ -+ if (!io_result && !result && !test_result_state(TOI_ABORTED)) { -+ unsigned long next; -+ -+ toi_update_status(io_base + io_finish_at, io_barmax, -+ " %d/%d MB ", -+ MB(io_base + io_finish_at), MB(io_barmax)); -+ -+ memory_bm_position_reset(io_map); -+ next = memory_bm_next_pfn(io_map); -+ if (next != BM_END_OF_MAP) { -+ printk(KERN_INFO "Finished I/O loop but still work to " -+ "do?\nFinish at = %d. io_count = %d.\n", -+ finish_at, atomic_read(&io_count)); -+ printk(KERN_INFO "I/O bitmap still records work to do." -+ "%ld.\n", next); -+ do { -+ cpu_relax(); -+ } while (0); -+ } -+ } -+ -+ return io_result ? io_result : result; -+} -+ -+/** -+ * write_pageset - write a pageset to disk. -+ * @pagedir: Which pagedir to write. -+ * -+ * Returns: -+ * Zero on success or -1 on failure. -+ **/ -+int write_pageset(struct pagedir *pagedir) -+{ -+ int finish_at, base = 0; -+ int barmax = pagedir1.size + pagedir2.size; -+ long error = 0; -+ struct memory_bitmap *pageflags; -+ unsigned long start_time, end_time; -+ -+ /* -+ * Even if there is nothing to read or write, the allocator -+ * may need the init/cleanup for it's housekeeping. (eg: -+ * Pageset1 may start where pageset2 ends when writing). -+ */ -+ finish_at = pagedir->size; -+ -+ if (pagedir->id == 1) { -+ toi_prepare_status(DONT_CLEAR_BAR, -+ "Writing kernel & process data..."); -+ base = pagedir2.size; -+ if (test_action_state(TOI_TEST_FILTER_SPEED) || -+ test_action_state(TOI_TEST_BIO)) -+ pageflags = pageset1_map; -+ else -+ pageflags = pageset1_copy_map; -+ } else { -+ toi_prepare_status(DONT_CLEAR_BAR, "Writing caches..."); -+ pageflags = pageset2_map; -+ } -+ -+ start_time = jiffies; -+ -+ if (rw_init_modules(1, pagedir->id)) { -+ abort_hibernate(TOI_FAILED_MODULE_INIT, -+ "Failed to initialise modules for writing."); -+ error = 1; -+ } -+ -+ if (!error) -+ error = do_rw_loop(1, finish_at, pageflags, base, barmax, -+ pagedir->id); -+ -+ if (rw_cleanup_modules(WRITE) && !error) { -+ abort_hibernate(TOI_FAILED_MODULE_CLEANUP, -+ "Failed to cleanup after writing."); -+ error = 1; -+ } -+ -+ end_time = jiffies; -+ -+ if ((end_time - start_time) && (!test_result_state(TOI_ABORTED))) { -+ toi_bkd.toi_io_time[0][0] += finish_at, -+ toi_bkd.toi_io_time[0][1] += (end_time - start_time); -+ } -+ -+ return error; -+} -+ -+/** -+ * read_pageset - highlevel function to read a pageset from disk -+ * @pagedir: pageset to read -+ * @overwrittenpagesonly: Whether to read the whole pageset or -+ * only part of it. -+ * -+ * Returns: -+ * Zero on success or -1 on failure. -+ **/ -+static int read_pageset(struct pagedir *pagedir, int overwrittenpagesonly) -+{ -+ int result = 0, base = 0; -+ int finish_at = pagedir->size; -+ int barmax = pagedir1.size + pagedir2.size; -+ struct memory_bitmap *pageflags; -+ unsigned long start_time, end_time; -+ -+ if (pagedir->id == 1) { -+ toi_prepare_status(DONT_CLEAR_BAR, -+ "Reading kernel & process data..."); -+ pageflags = pageset1_map; -+ } else { -+ toi_prepare_status(DONT_CLEAR_BAR, "Reading caches..."); -+ if (overwrittenpagesonly) { -+ barmax = min(pagedir1.size, pagedir2.size); -+ finish_at = min(pagedir1.size, pagedir2.size); -+ } else -+ base = pagedir1.size; -+ pageflags = pageset2_map; -+ } -+ -+ start_time = jiffies; -+ -+ if (rw_init_modules(0, pagedir->id)) { -+ toiActiveAllocator->remove_image(); -+ result = 1; -+ } else -+ result = do_rw_loop(0, finish_at, pageflags, base, barmax, -+ pagedir->id); -+ -+ if (rw_cleanup_modules(READ) && !result) { -+ abort_hibernate(TOI_FAILED_MODULE_CLEANUP, -+ "Failed to cleanup after reading."); -+ result = 1; -+ } -+ -+ /* Statistics */ -+ end_time = jiffies; -+ -+ if ((end_time - start_time) && (!test_result_state(TOI_ABORTED))) { -+ toi_bkd.toi_io_time[1][0] += finish_at, -+ toi_bkd.toi_io_time[1][1] += (end_time - start_time); -+ } -+ -+ return result; -+} -+ -+/** -+ * write_module_configs - store the modules configuration -+ * -+ * The configuration for each module is stored in the image header. -+ * Returns: Int -+ * Zero on success, Error value otherwise. -+ **/ -+static int write_module_configs(void) -+{ -+ struct toi_module_ops *this_module; -+ char *buffer = (char *) toi_get_zeroed_page(22, TOI_ATOMIC_GFP); -+ int len, index = 1; -+ struct toi_module_header toi_module_header; -+ -+ if (!buffer) { -+ printk(KERN_INFO "Failed to allocate a buffer for saving " -+ "module configuration info.\n"); -+ return -ENOMEM; -+ } -+ -+ /* -+ * We have to know which data goes with which module, so we at -+ * least write a length of zero for a module. Note that we are -+ * also assuming every module's config data takes <= PAGE_SIZE. -+ */ -+ -+ /* For each module (in registration order) */ -+ list_for_each_entry(this_module, &toi_modules, module_list) { -+ if (!this_module->enabled || !this_module->storage_needed || -+ (this_module->type == WRITER_MODULE && -+ toiActiveAllocator != this_module)) -+ continue; -+ -+ /* Get the data from the module */ -+ len = 0; -+ if (this_module->save_config_info) -+ len = this_module->save_config_info(buffer); -+ -+ /* Save the details of the module */ -+ toi_module_header.enabled = this_module->enabled; -+ toi_module_header.type = this_module->type; -+ toi_module_header.index = index++; -+ strncpy(toi_module_header.name, this_module->name, -+ sizeof(toi_module_header.name)); -+ toiActiveAllocator->rw_header_chunk(WRITE, -+ this_module, -+ (char *) &toi_module_header, -+ sizeof(toi_module_header)); -+ -+ /* Save the size of the data and any data returned */ -+ toiActiveAllocator->rw_header_chunk(WRITE, -+ this_module, -+ (char *) &len, sizeof(int)); -+ if (len) -+ toiActiveAllocator->rw_header_chunk( -+ WRITE, this_module, buffer, len); -+ } -+ -+ /* Write a blank header to terminate the list */ -+ toi_module_header.name[0] = '\0'; -+ toiActiveAllocator->rw_header_chunk(WRITE, NULL, -+ (char *) &toi_module_header, sizeof(toi_module_header)); -+ -+ toi_free_page(22, (unsigned long) buffer); -+ return 0; -+} -+ -+/** -+ * read_one_module_config - read and configure one module -+ * -+ * Read the configuration for one module, and configure the module -+ * to match if it is loaded. -+ * -+ * Returns: Int -+ * Zero on success, Error value otherwise. -+ **/ -+static int read_one_module_config(struct toi_module_header *header) -+{ -+ struct toi_module_ops *this_module; -+ int result, len; -+ char *buffer; -+ -+ /* Find the module */ -+ this_module = toi_find_module_given_name(header->name); -+ -+ if (!this_module) { -+ if (header->enabled) { -+ toi_early_boot_message(1, TOI_CONTINUE_REQ, -+ "It looks like we need module %s for reading " -+ "the image but it hasn't been registered.\n", -+ header->name); -+ if (!(test_toi_state(TOI_CONTINUE_REQ))) -+ return -EINVAL; -+ } else -+ printk(KERN_INFO "Module %s configuration data found, " -+ "but the module hasn't registered. Looks like " -+ "it was disabled, so we're ignoring its data.", -+ header->name); -+ } -+ -+ /* Get the length of the data (if any) */ -+ result = toiActiveAllocator->rw_header_chunk(READ, NULL, (char *) &len, -+ sizeof(int)); -+ if (result) { -+ printk(KERN_ERR "Failed to read the length of the module %s's" -+ " configuration data.\n", -+ header->name); -+ return -EINVAL; -+ } -+ -+ /* Read any data and pass to the module (if we found one) */ -+ if (!len) -+ return 0; -+ -+ buffer = (char *) toi_get_zeroed_page(23, TOI_ATOMIC_GFP); -+ -+ if (!buffer) { -+ printk(KERN_ERR "Failed to allocate a buffer for reloading " -+ "module configuration info.\n"); -+ return -ENOMEM; -+ } -+ -+ toiActiveAllocator->rw_header_chunk(READ, NULL, buffer, len); -+ -+ if (!this_module) -+ goto out; -+ -+ if (!this_module->save_config_info) -+ printk(KERN_ERR "Huh? Module %s appears to have a " -+ "save_config_info, but not a load_config_info " -+ "function!\n", this_module->name); -+ else -+ this_module->load_config_info(buffer, len); -+ -+ /* -+ * Now move this module to the tail of its lists. This will put it in -+ * order. Any new modules will end up at the top of the lists. They -+ * should have been set to disabled when loaded (people will -+ * normally not edit an initrd to load a new module and then hibernate -+ * without using it!). -+ */ -+ -+ toi_move_module_tail(this_module); -+ -+ this_module->enabled = header->enabled; -+ -+out: -+ toi_free_page(23, (unsigned long) buffer); -+ return 0; -+} -+ -+/** -+ * read_module_configs - reload module configurations from the image header. -+ * -+ * Returns: Int -+ * Zero on success or an error code. -+ **/ -+static int read_module_configs(void) -+{ -+ int result = 0; -+ struct toi_module_header toi_module_header; -+ struct toi_module_ops *this_module; -+ -+ /* All modules are initially disabled. That way, if we have a module -+ * loaded now that wasn't loaded when we hibernated, it won't be used -+ * in trying to read the data. -+ */ -+ list_for_each_entry(this_module, &toi_modules, module_list) -+ this_module->enabled = 0; -+ -+ /* Get the first module header */ -+ result = toiActiveAllocator->rw_header_chunk(READ, NULL, -+ (char *) &toi_module_header, -+ sizeof(toi_module_header)); -+ if (result) { -+ printk(KERN_ERR "Failed to read the next module header.\n"); -+ return -EINVAL; -+ } -+ -+ /* For each module (in registration order) */ -+ while (toi_module_header.name[0]) { -+ result = read_one_module_config(&toi_module_header); -+ -+ if (result) -+ return -EINVAL; -+ -+ /* Get the next module header */ -+ result = toiActiveAllocator->rw_header_chunk(READ, NULL, -+ (char *) &toi_module_header, -+ sizeof(toi_module_header)); -+ -+ if (result) { -+ printk(KERN_ERR "Failed to read the next module " -+ "header.\n"); -+ return -EINVAL; -+ } -+ } -+ -+ return 0; -+} -+ -+static inline int save_fs_info(struct fs_info *fs, struct block_device *bdev) -+{ -+ return (!fs || IS_ERR(fs) || !fs->last_mount_size) ? 0 : 1; -+} -+ -+int fs_info_space_needed(void) -+{ -+ const struct super_block *sb; -+ int result = sizeof(int); -+ -+ list_for_each_entry(sb, &super_blocks, s_list) { -+ struct fs_info *fs; -+ -+ if (!sb->s_bdev) -+ continue; -+ -+ fs = fs_info_from_block_dev(sb->s_bdev); -+ if (save_fs_info(fs, sb->s_bdev)) -+ result += 16 + sizeof(int) + fs->last_mount_size; -+ free_fs_info(fs); -+ } -+ return result; -+} -+ -+static int fs_info_num_to_save(void) -+{ -+ const struct super_block *sb; -+ int to_save = 0; -+ -+ list_for_each_entry(sb, &super_blocks, s_list) { -+ struct fs_info *fs; -+ -+ if (!sb->s_bdev) -+ continue; -+ -+ fs = fs_info_from_block_dev(sb->s_bdev); -+ if (save_fs_info(fs, sb->s_bdev)) -+ to_save++; -+ free_fs_info(fs); -+ } -+ -+ return to_save; -+} -+ -+static int fs_info_save(void) -+{ -+ const struct super_block *sb; -+ int to_save = fs_info_num_to_save(); -+ -+ if (toiActiveAllocator->rw_header_chunk(WRITE, NULL, (char *) &to_save, -+ sizeof(int))) { -+ abort_hibernate(TOI_FAILED_IO, "Failed to write num fs_info" -+ " to save."); -+ return -EIO; -+ } -+ -+ list_for_each_entry(sb, &super_blocks, s_list) { -+ struct fs_info *fs; -+ -+ if (!sb->s_bdev) -+ continue; -+ -+ fs = fs_info_from_block_dev(sb->s_bdev); -+ if (save_fs_info(fs, sb->s_bdev)) { -+ if (toiActiveAllocator->rw_header_chunk(WRITE, NULL, -+ &fs->uuid[0], 16)) { -+ abort_hibernate(TOI_FAILED_IO, "Failed to " -+ "write uuid."); -+ return -EIO; -+ } -+ if (toiActiveAllocator->rw_header_chunk(WRITE, NULL, -+ (char *) &fs->last_mount_size, sizeof(int))) { -+ abort_hibernate(TOI_FAILED_IO, "Failed to " -+ "write last mount length."); -+ return -EIO; -+ } -+ if (toiActiveAllocator->rw_header_chunk(WRITE, NULL, -+ fs->last_mount, fs->last_mount_size)) { -+ abort_hibernate(TOI_FAILED_IO, "Failed to " -+ "write uuid."); -+ return -EIO; -+ } -+ } -+ free_fs_info(fs); -+ } -+ return 0; -+} -+ -+static int fs_info_load_and_check_one(void) -+{ -+ char uuid[16], *last_mount; -+ int result = 0, ln; -+ dev_t dev_t; -+ struct block_device *dev; -+ struct fs_info *fs_info; -+ -+ if (toiActiveAllocator->rw_header_chunk(READ, NULL, uuid, 16)) { -+ abort_hibernate(TOI_FAILED_IO, "Failed to read uuid."); -+ return -EIO; -+ } -+ -+ if (toiActiveAllocator->rw_header_chunk(READ, NULL, (char *) &ln, -+ sizeof(int))) { -+ abort_hibernate(TOI_FAILED_IO, -+ "Failed to read last mount size."); -+ return -EIO; -+ } -+ -+ last_mount = kzalloc(ln, GFP_KERNEL); -+ -+ if (!last_mount) -+ return -ENOMEM; -+ -+ if (toiActiveAllocator->rw_header_chunk(READ, NULL, last_mount, ln)) { -+ abort_hibernate(TOI_FAILED_IO, -+ "Failed to read last mount timestamp."); -+ result = -EIO; -+ goto out_lmt; -+ } -+ -+ dev_t = blk_lookup_uuid(uuid); -+ if (!dev_t) -+ goto out_lmt; -+ -+ dev = toi_open_by_devnum(dev_t); -+ -+ fs_info = fs_info_from_block_dev(dev); -+ if (fs_info && !IS_ERR(fs_info)) { -+ if (ln != fs_info->last_mount_size) { -+ printk(KERN_EMERG "Found matching uuid but last mount " -+ "time lengths differ?! " -+ "(%d vs %d).\n", ln, -+ fs_info->last_mount_size); -+ result = -EINVAL; -+ } else { -+ char buf[BDEVNAME_SIZE]; -+ result = !!memcmp(fs_info->last_mount, last_mount, ln); -+ if (result) -+ printk(KERN_EMERG "Last mount time for %s has " -+ "changed!\n", bdevname(dev, buf)); -+ } -+ } -+ toi_close_bdev(dev); -+ free_fs_info(fs_info); -+out_lmt: -+ kfree(last_mount); -+ return result; -+} -+ -+static int fs_info_load_and_check(void) -+{ -+ int to_do, result; -+ -+ if (toiActiveAllocator->rw_header_chunk(READ, NULL, (char *) &to_do, -+ sizeof(int))) { -+ abort_hibernate(TOI_FAILED_IO, "Failed to read num fs_info " -+ "to load."); -+ return -EIO; -+ } -+ -+ while(to_do--) -+ result |= fs_info_load_and_check_one(); -+ -+ return result; -+} -+ -+/** -+ * write_image_header - write the image header after write the image proper -+ * -+ * Returns: Int -+ * Zero on success, error value otherwise. -+ **/ -+int write_image_header(void) -+{ -+ int ret; -+ int total = pagedir1.size + pagedir2.size+2; -+ char *header_buffer = NULL; -+ -+ /* Now prepare to write the header */ -+ ret = toiActiveAllocator->write_header_init(); -+ if (ret) { -+ abort_hibernate(TOI_FAILED_MODULE_INIT, -+ "Active allocator's write_header_init" -+ " function failed."); -+ goto write_image_header_abort; -+ } -+ -+ /* Get a buffer */ -+ header_buffer = (char *) toi_get_zeroed_page(24, TOI_ATOMIC_GFP); -+ if (!header_buffer) { -+ abort_hibernate(TOI_OUT_OF_MEMORY, -+ "Out of memory when trying to get page for header!"); -+ goto write_image_header_abort; -+ } -+ -+ /* Write hibernate header */ -+ if (fill_toi_header((struct toi_header *) header_buffer)) { -+ abort_hibernate(TOI_OUT_OF_MEMORY, -+ "Failure to fill header information!"); -+ goto write_image_header_abort; -+ } -+ -+ if (toiActiveAllocator->rw_header_chunk(WRITE, NULL, -+ header_buffer, sizeof(struct toi_header))) { -+ abort_hibernate(TOI_OUT_OF_MEMORY, -+ "Failure to write header info."); -+ goto write_image_header_abort; -+ } -+ -+ if (toiActiveAllocator->rw_header_chunk(WRITE, NULL, -+ (char *) &toi_max_workers, sizeof(toi_max_workers))) { -+ abort_hibernate(TOI_OUT_OF_MEMORY, -+ "Failure to number of workers to use."); -+ goto write_image_header_abort; -+ } -+ -+ /* Write filesystem info */ -+ if (fs_info_save()) -+ goto write_image_header_abort; -+ -+ /* Write module configurations */ -+ ret = write_module_configs(); -+ if (ret) { -+ abort_hibernate(TOI_FAILED_IO, -+ "Failed to write module configs."); -+ goto write_image_header_abort; -+ } -+ -+ if (memory_bm_write(pageset1_map, -+ toiActiveAllocator->rw_header_chunk)) { -+ abort_hibernate(TOI_FAILED_IO, -+ "Failed to write bitmaps."); -+ goto write_image_header_abort; -+ } -+ -+ /* Flush data and let allocator cleanup */ -+ if (toiActiveAllocator->write_header_cleanup()) { -+ abort_hibernate(TOI_FAILED_IO, -+ "Failed to cleanup writing header."); -+ goto write_image_header_abort_no_cleanup; -+ } -+ -+ if (test_result_state(TOI_ABORTED)) -+ goto write_image_header_abort_no_cleanup; -+ -+ toi_update_status(total, total, NULL); -+ -+out: -+ if (header_buffer) -+ toi_free_page(24, (unsigned long) header_buffer); -+ return ret; -+ -+write_image_header_abort: -+ toiActiveAllocator->write_header_cleanup(); -+write_image_header_abort_no_cleanup: -+ ret = -1; -+ goto out; -+} -+ -+/** -+ * sanity_check - check the header -+ * @sh: the header which was saved at hibernate time. -+ * -+ * Perform a few checks, seeking to ensure that the kernel being -+ * booted matches the one hibernated. They need to match so we can -+ * be _sure_ things will work. It is not absolutely impossible for -+ * resuming from a different kernel to work, just not assured. -+ **/ -+static char *sanity_check(struct toi_header *sh) -+{ -+ char *reason = check_image_kernel((struct swsusp_info *) sh); -+ -+ if (reason) -+ return reason; -+ -+ if (!test_action_state(TOI_IGNORE_ROOTFS)) { -+ const struct super_block *sb; -+ list_for_each_entry(sb, &super_blocks, s_list) { -+ if ((!(sb->s_flags & MS_RDONLY)) && -+ (sb->s_type->fs_flags & FS_REQUIRES_DEV)) -+ return "Device backed fs has been mounted " -+ "rw prior to resume or initrd/ramfs " -+ "is mounted rw."; -+ } -+ } -+ -+ return NULL; -+} -+ -+static DECLARE_WAIT_QUEUE_HEAD(freeze_wait); -+ -+#define FREEZE_IN_PROGRESS (~0) -+ -+static int freeze_result; -+ -+static void do_freeze(struct work_struct *dummy) -+{ -+ freeze_result = freeze_processes(); -+ wake_up(&freeze_wait); -+ trap_non_toi_io = 1; -+} -+ -+static DECLARE_WORK(freeze_work, do_freeze); -+ -+/** -+ * __read_pageset1 - test for the existence of an image and attempt to load it -+ * -+ * Returns: Int -+ * Zero if image found and pageset1 successfully loaded. -+ * Error if no image found or loaded. -+ **/ -+static int __read_pageset1(void) -+{ -+ int i, result = 0; -+ char *header_buffer = (char *) toi_get_zeroed_page(25, TOI_ATOMIC_GFP), -+ *sanity_error = NULL; -+ struct toi_header *toi_header; -+ -+ if (!header_buffer) { -+ printk(KERN_INFO "Unable to allocate a page for reading the " -+ "signature.\n"); -+ return -ENOMEM; -+ } -+ -+ /* Check for an image */ -+ result = toiActiveAllocator->image_exists(1); -+ if (result == 3) { -+ result = -ENODATA; -+ toi_early_boot_message(1, 0, "The signature from an older " -+ "version of TuxOnIce has been detected."); -+ goto out_remove_image; -+ } -+ -+ if (result != 1) { -+ result = -ENODATA; -+ noresume_reset_modules(); -+ printk(KERN_INFO "TuxOnIce: No image found.\n"); -+ goto out; -+ } -+ -+ /* -+ * Prepare the active allocator for reading the image header. The -+ * activate allocator might read its own configuration. -+ * -+ * NB: This call may never return because there might be a signature -+ * for a different image such that we warn the user and they choose -+ * to reboot. (If the device ids look erroneous (2.4 vs 2.6) or the -+ * location of the image might be unavailable if it was stored on a -+ * network connection). -+ */ -+ -+ result = toiActiveAllocator->read_header_init(); -+ if (result) { -+ printk(KERN_INFO "TuxOnIce: Failed to initialise, reading the " -+ "image header.\n"); -+ goto out_remove_image; -+ } -+ -+ /* Check for noresume command line option */ -+ if (test_toi_state(TOI_NORESUME_SPECIFIED)) { -+ printk(KERN_INFO "TuxOnIce: Noresume on command line. Removed " -+ "image.\n"); -+ goto out_remove_image; -+ } -+ -+ /* Check whether we've resumed before */ -+ if (test_toi_state(TOI_RESUMED_BEFORE)) { -+ toi_early_boot_message(1, 0, NULL); -+ if (!(test_toi_state(TOI_CONTINUE_REQ))) { -+ printk(KERN_INFO "TuxOnIce: Tried to resume before: " -+ "Invalidated image.\n"); -+ goto out_remove_image; -+ } -+ } -+ -+ clear_toi_state(TOI_CONTINUE_REQ); -+ -+ toi_image_header_version = toiActiveAllocator->get_header_version(); -+ -+ if (unlikely(toi_image_header_version > TOI_HEADER_VERSION)) { -+ toi_early_boot_message(1, 0, image_version_error); -+ if (!(test_toi_state(TOI_CONTINUE_REQ))) { -+ printk(KERN_INFO "TuxOnIce: Header version too new: " -+ "Invalidated image.\n"); -+ goto out_remove_image; -+ } -+ } -+ -+ /* Read hibernate header */ -+ result = toiActiveAllocator->rw_header_chunk(READ, NULL, -+ header_buffer, sizeof(struct toi_header)); -+ if (result < 0) { -+ printk(KERN_ERR "TuxOnIce: Failed to read the image " -+ "signature.\n"); -+ goto out_remove_image; -+ } -+ -+ toi_header = (struct toi_header *) header_buffer; -+ -+ /* -+ * NB: This call may also result in a reboot rather than returning. -+ */ -+ -+ sanity_error = sanity_check(toi_header); -+ if (sanity_error) { -+ toi_early_boot_message(1, TOI_CONTINUE_REQ, -+ sanity_error); -+ printk(KERN_INFO "TuxOnIce: Sanity check failed.\n"); -+ goto out_remove_image; -+ } -+ -+ /* -+ * We have an image and it looks like it will load okay. -+ * -+ * Get metadata from header. Don't override commandline parameters. -+ * -+ * We don't need to save the image size limit because it's not used -+ * during resume and will be restored with the image anyway. -+ */ -+ -+ memcpy((char *) &pagedir1, -+ (char *) &toi_header->pagedir, sizeof(pagedir1)); -+ toi_result = toi_header->param0; -+ if (!toi_bkd.toi_debug_state) { -+ toi_bkd.toi_action = toi_header->param1; -+ toi_bkd.toi_debug_state = toi_header->param2; -+ toi_bkd.toi_default_console_level = toi_header->param3; -+ } -+ clear_toi_state(TOI_IGNORE_LOGLEVEL); -+ pagedir2.size = toi_header->pageset_2_size; -+ for (i = 0; i < 4; i++) -+ toi_bkd.toi_io_time[i/2][i%2] = -+ toi_header->io_time[i/2][i%2]; -+ -+ set_toi_state(TOI_BOOT_KERNEL); -+ boot_kernel_data_buffer = toi_header->bkd; -+ -+ read_if_version(1, toi_max_workers, "TuxOnIce max workers"); -+ -+ /* Read filesystem info */ -+ if (fs_info_load_and_check()) { -+ printk(KERN_EMERG "TuxOnIce: File system mount time checks " -+ "failed. Refusing to corrupt your filesystems!\n"); -+ goto out_remove_image; -+ } -+ -+ /* Read module configurations */ -+ result = read_module_configs(); -+ if (result) { -+ pagedir1.size = 0; -+ pagedir2.size = 0; -+ printk(KERN_INFO "TuxOnIce: Failed to read TuxOnIce module " -+ "configurations.\n"); -+ clear_action_state(TOI_KEEP_IMAGE); -+ goto out_remove_image; -+ } -+ -+ toi_prepare_console(); -+ -+ set_toi_state(TOI_NOW_RESUMING); -+ -+ if (!test_action_state(TOI_LATE_CPU_HOTPLUG)) { -+ toi_prepare_status(DONT_CLEAR_BAR, "Disable nonboot cpus."); -+ if (disable_nonboot_cpus()) { -+ set_abort_result(TOI_CPU_HOTPLUG_FAILED); -+ goto out_reset_console; -+ } -+ } -+ -+ if (usermodehelper_disable()) -+ goto out_enable_nonboot_cpus; -+ -+ current->flags |= PF_NOFREEZE; -+ freeze_result = FREEZE_IN_PROGRESS; -+ -+ schedule_work_on(first_cpu(cpu_online_map), &freeze_work); -+ -+ toi_cond_pause(1, "About to read original pageset1 locations."); -+ -+ /* -+ * See _toi_rw_header_chunk in tuxonice_bio.c: -+ * Initialize pageset1_map by reading the map from the image. -+ */ -+ if (memory_bm_read(pageset1_map, toiActiveAllocator->rw_header_chunk)) -+ goto out_thaw; -+ -+ /* -+ * See toi_rw_cleanup in tuxonice_bio.c: -+ * Clean up after reading the header. -+ */ -+ result = toiActiveAllocator->read_header_cleanup(); -+ if (result) { -+ printk(KERN_ERR "TuxOnIce: Failed to cleanup after reading the " -+ "image header.\n"); -+ goto out_thaw; -+ } -+ -+ toi_cond_pause(1, "About to read pagedir."); -+ -+ /* -+ * Get the addresses of pages into which we will load the kernel to -+ * be copied back and check if they conflict with the ones we are using. -+ */ -+ if (toi_get_pageset1_load_addresses()) { -+ printk(KERN_INFO "TuxOnIce: Failed to get load addresses for " -+ "pageset1.\n"); -+ goto out_thaw; -+ } -+ -+ /* Read the original kernel back */ -+ toi_cond_pause(1, "About to read pageset 1."); -+ -+ /* Given the pagemap, read back the data from disk */ -+ if (read_pageset(&pagedir1, 0)) { -+ toi_prepare_status(DONT_CLEAR_BAR, "Failed to read pageset 1."); -+ result = -EIO; -+ goto out_thaw; -+ } -+ -+ toi_cond_pause(1, "About to restore original kernel."); -+ result = 0; -+ -+ if (!test_action_state(TOI_KEEP_IMAGE) && -+ toiActiveAllocator->mark_resume_attempted) -+ toiActiveAllocator->mark_resume_attempted(1); -+ -+ wait_event(freeze_wait, freeze_result != FREEZE_IN_PROGRESS); -+out: -+ current->flags &= ~PF_NOFREEZE; -+ toi_free_page(25, (unsigned long) header_buffer); -+ return result; -+ -+out_thaw: -+ wait_event(freeze_wait, freeze_result != FREEZE_IN_PROGRESS); -+ trap_non_toi_io = 0; -+ thaw_processes(); -+ usermodehelper_enable(); -+out_enable_nonboot_cpus: -+ enable_nonboot_cpus(); -+out_reset_console: -+ toi_cleanup_console(); -+out_remove_image: -+ result = -EINVAL; -+ if (!test_action_state(TOI_KEEP_IMAGE)) -+ toiActiveAllocator->remove_image(); -+ toiActiveAllocator->read_header_cleanup(); -+ noresume_reset_modules(); -+ goto out; -+} -+ -+/** -+ * read_pageset1 - highlevel function to read the saved pages -+ * -+ * Attempt to read the header and pageset1 of a hibernate image. -+ * Handle the outcome, complaining where appropriate. -+ **/ -+int read_pageset1(void) -+{ -+ int error; -+ -+ error = __read_pageset1(); -+ -+ if (error && error != -ENODATA && error != -EINVAL && -+ !test_result_state(TOI_ABORTED)) -+ abort_hibernate(TOI_IMAGE_ERROR, -+ "TuxOnIce: Error %d resuming\n", error); -+ -+ return error; -+} -+ -+/** -+ * get_have_image_data - check the image header -+ **/ -+static char *get_have_image_data(void) -+{ -+ char *output_buffer = (char *) toi_get_zeroed_page(26, TOI_ATOMIC_GFP); -+ struct toi_header *toi_header; -+ -+ if (!output_buffer) { -+ printk(KERN_INFO "Output buffer null.\n"); -+ return NULL; -+ } -+ -+ /* Check for an image */ -+ if (!toiActiveAllocator->image_exists(1) || -+ toiActiveAllocator->read_header_init() || -+ toiActiveAllocator->rw_header_chunk(READ, NULL, -+ output_buffer, sizeof(struct toi_header))) { -+ sprintf(output_buffer, "0\n"); -+ /* -+ * From an initrd/ramfs, catting have_image and -+ * getting a result of 0 is sufficient. -+ */ -+ clear_toi_state(TOI_BOOT_TIME); -+ goto out; -+ } -+ -+ toi_header = (struct toi_header *) output_buffer; -+ -+ sprintf(output_buffer, "1\n%s\n%s\n", -+ toi_header->uts.machine, -+ toi_header->uts.version); -+ -+ /* Check whether we've resumed before */ -+ if (test_toi_state(TOI_RESUMED_BEFORE)) -+ strcat(output_buffer, "Resumed before.\n"); -+ -+out: -+ noresume_reset_modules(); -+ return output_buffer; -+} -+ -+/** -+ * read_pageset2 - read second part of the image -+ * @overwrittenpagesonly: Read only pages which would have been -+ * verwritten by pageset1? -+ * -+ * Read in part or all of pageset2 of an image, depending upon -+ * whether we are hibernating and have only overwritten a portion -+ * with pageset1 pages, or are resuming and need to read them -+ * all. -+ * -+ * Returns: Int -+ * Zero if no error, otherwise the error value. -+ **/ -+int read_pageset2(int overwrittenpagesonly) -+{ -+ int result = 0; -+ -+ if (!pagedir2.size) -+ return 0; -+ -+ result = read_pageset(&pagedir2, overwrittenpagesonly); -+ -+ toi_cond_pause(1, "Pagedir 2 read."); -+ -+ return result; -+} -+ -+/** -+ * image_exists_read - has an image been found? -+ * @page: Output buffer -+ * -+ * Store 0 or 1 in page, depending on whether an image is found. -+ * Incoming buffer is PAGE_SIZE and result is guaranteed -+ * to be far less than that, so we don't worry about -+ * overflow. -+ **/ -+int image_exists_read(const char *page, int count) -+{ -+ int len = 0; -+ char *result; -+ -+ if (toi_activate_storage(0)) -+ return count; -+ -+ if (!test_toi_state(TOI_RESUME_DEVICE_OK)) -+ toi_attempt_to_parse_resume_device(0); -+ -+ if (!toiActiveAllocator) { -+ len = sprintf((char *) page, "-1\n"); -+ } else { -+ result = get_have_image_data(); -+ if (result) { -+ len = sprintf((char *) page, "%s", result); -+ toi_free_page(26, (unsigned long) result); -+ } -+ } -+ -+ toi_deactivate_storage(0); -+ -+ return len; -+} -+ -+/** -+ * image_exists_write - invalidate an image if one exists -+ **/ -+int image_exists_write(const char *buffer, int count) -+{ -+ if (toi_activate_storage(0)) -+ return count; -+ -+ if (toiActiveAllocator && toiActiveAllocator->image_exists(1)) -+ toiActiveAllocator->remove_image(); -+ -+ toi_deactivate_storage(0); -+ -+ clear_result_state(TOI_KEPT_IMAGE); -+ -+ return count; -+} -diff --git a/kernel/power/tuxonice_io.h b/kernel/power/tuxonice_io.h -new file mode 100644 -index 0000000..fe37713 ---- /dev/null -+++ b/kernel/power/tuxonice_io.h -@@ -0,0 +1,74 @@ -+/* -+ * kernel/power/tuxonice_io.h -+ * -+ * Copyright (C) 2005-2010 Nigel Cunningham (nigel at tuxonice net) -+ * -+ * This file is released under the GPLv2. -+ * -+ * It contains high level IO routines for hibernating. -+ * -+ */ -+ -+#include -+#include "tuxonice_pagedir.h" -+ -+/* Non-module data saved in our image header */ -+struct toi_header { -+ /* -+ * Mirror struct swsusp_info, but without -+ * the page aligned attribute -+ */ -+ struct new_utsname uts; -+ u32 version_code; -+ unsigned long num_physpages; -+ int cpus; -+ unsigned long image_pages; -+ unsigned long pages; -+ unsigned long size; -+ -+ /* Our own data */ -+ unsigned long orig_mem_free; -+ int page_size; -+ int pageset_2_size; -+ int param0; -+ int param1; -+ int param2; -+ int param3; -+ int progress0; -+ int progress1; -+ int progress2; -+ int progress3; -+ int io_time[2][2]; -+ struct pagedir pagedir; -+ dev_t root_fs; -+ unsigned long bkd; /* Boot kernel data locn */ -+}; -+ -+extern int write_pageset(struct pagedir *pagedir); -+extern int write_image_header(void); -+extern int read_pageset1(void); -+extern int read_pageset2(int overwrittenpagesonly); -+ -+extern int toi_attempt_to_parse_resume_device(int quiet); -+extern void attempt_to_parse_resume_device2(void); -+extern void attempt_to_parse_alt_resume_param(void); -+int image_exists_read(const char *page, int count); -+int image_exists_write(const char *buffer, int count); -+extern void save_restore_alt_param(int replace, int quiet); -+extern atomic_t toi_io_workers; -+ -+/* Args to save_restore_alt_param */ -+#define RESTORE 0 -+#define SAVE 1 -+ -+#define NOQUIET 0 -+#define QUIET 1 -+ -+extern dev_t name_to_dev_t(char *line); -+ -+extern wait_queue_head_t toi_io_queue_flusher; -+extern int toi_bio_queue_flusher_should_finish; -+ -+int fs_info_space_needed(void); -+ -+extern int toi_max_workers; -diff --git a/kernel/power/tuxonice_modules.c b/kernel/power/tuxonice_modules.c -new file mode 100644 -index 0000000..4cc24a9 ---- /dev/null -+++ b/kernel/power/tuxonice_modules.c -@@ -0,0 +1,522 @@ -+/* -+ * kernel/power/tuxonice_modules.c -+ * -+ * Copyright (C) 2004-2010 Nigel Cunningham (nigel at tuxonice net) -+ * -+ */ -+ -+#include -+#include "tuxonice.h" -+#include "tuxonice_modules.h" -+#include "tuxonice_sysfs.h" -+#include "tuxonice_ui.h" -+ -+LIST_HEAD(toi_filters); -+LIST_HEAD(toiAllocators); -+ -+LIST_HEAD(toi_modules); -+EXPORT_SYMBOL_GPL(toi_modules); -+ -+struct toi_module_ops *toiActiveAllocator; -+EXPORT_SYMBOL_GPL(toiActiveAllocator); -+ -+static int toi_num_filters; -+int toiNumAllocators, toi_num_modules; -+ -+/* -+ * toi_header_storage_for_modules -+ * -+ * Returns the amount of space needed to store configuration -+ * data needed by the modules prior to copying back the original -+ * kernel. We can exclude data for pageset2 because it will be -+ * available anyway once the kernel is copied back. -+ */ -+long toi_header_storage_for_modules(void) -+{ -+ struct toi_module_ops *this_module; -+ int bytes = 0; -+ -+ list_for_each_entry(this_module, &toi_modules, module_list) { -+ if (!this_module->enabled || -+ (this_module->type == WRITER_MODULE && -+ toiActiveAllocator != this_module)) -+ continue; -+ if (this_module->storage_needed) { -+ int this = this_module->storage_needed() + -+ sizeof(struct toi_module_header) + -+ sizeof(int); -+ this_module->header_requested = this; -+ bytes += this; -+ } -+ } -+ -+ /* One more for the empty terminator */ -+ return bytes + sizeof(struct toi_module_header); -+} -+ -+void print_toi_header_storage_for_modules(void) -+{ -+ struct toi_module_ops *this_module; -+ int bytes = 0; -+ -+ printk(KERN_DEBUG "Header storage:\n"); -+ list_for_each_entry(this_module, &toi_modules, module_list) { -+ if (!this_module->enabled || -+ (this_module->type == WRITER_MODULE && -+ toiActiveAllocator != this_module)) -+ continue; -+ if (this_module->storage_needed) { -+ int this = this_module->storage_needed() + -+ sizeof(struct toi_module_header) + -+ sizeof(int); -+ this_module->header_requested = this; -+ bytes += this; -+ printk(KERN_DEBUG "+ %16s : %-4d/%d.\n", -+ this_module->name, -+ this_module->header_used, this); -+ } -+ } -+ -+ printk(KERN_DEBUG "+ empty terminator : %zu.\n", -+ sizeof(struct toi_module_header)); -+ printk(KERN_DEBUG " ====\n"); -+ printk(KERN_DEBUG " %zu\n", -+ bytes + sizeof(struct toi_module_header)); -+} -+EXPORT_SYMBOL_GPL(print_toi_header_storage_for_modules); -+ -+/* -+ * toi_memory_for_modules -+ * -+ * Returns the amount of memory requested by modules for -+ * doing their work during the cycle. -+ */ -+ -+long toi_memory_for_modules(int print_parts) -+{ -+ long bytes = 0, result; -+ struct toi_module_ops *this_module; -+ -+ if (print_parts) -+ printk(KERN_INFO "Memory for modules:\n===================\n"); -+ list_for_each_entry(this_module, &toi_modules, module_list) { -+ int this; -+ if (!this_module->enabled) -+ continue; -+ if (this_module->memory_needed) { -+ this = this_module->memory_needed(); -+ if (print_parts) -+ printk(KERN_INFO "%10d bytes (%5ld pages) for " -+ "module '%s'.\n", this, -+ DIV_ROUND_UP(this, PAGE_SIZE), -+ this_module->name); -+ bytes += this; -+ } -+ } -+ -+ result = DIV_ROUND_UP(bytes, PAGE_SIZE); -+ if (print_parts) -+ printk(KERN_INFO " => %ld bytes, %ld pages.\n", bytes, result); -+ -+ return result; -+} -+ -+/* -+ * toi_expected_compression_ratio -+ * -+ * Returns the compression ratio expected when saving the image. -+ */ -+ -+int toi_expected_compression_ratio(void) -+{ -+ int ratio = 100; -+ struct toi_module_ops *this_module; -+ -+ list_for_each_entry(this_module, &toi_modules, module_list) { -+ if (!this_module->enabled) -+ continue; -+ if (this_module->expected_compression) -+ ratio = ratio * this_module->expected_compression() -+ / 100; -+ } -+ -+ return ratio; -+} -+ -+/* toi_find_module_given_dir -+ * Functionality : Return a module (if found), given a pointer -+ * to its directory name -+ */ -+ -+static struct toi_module_ops *toi_find_module_given_dir(char *name) -+{ -+ struct toi_module_ops *this_module, *found_module = NULL; -+ -+ list_for_each_entry(this_module, &toi_modules, module_list) { -+ if (!strcmp(name, this_module->directory)) { -+ found_module = this_module; -+ break; -+ } -+ } -+ -+ return found_module; -+} -+ -+/* toi_find_module_given_name -+ * Functionality : Return a module (if found), given a pointer -+ * to its name -+ */ -+ -+struct toi_module_ops *toi_find_module_given_name(char *name) -+{ -+ struct toi_module_ops *this_module, *found_module = NULL; -+ -+ list_for_each_entry(this_module, &toi_modules, module_list) { -+ if (!strcmp(name, this_module->name)) { -+ found_module = this_module; -+ break; -+ } -+ } -+ -+ return found_module; -+} -+ -+/* -+ * toi_print_module_debug_info -+ * Functionality : Get debugging info from modules into a buffer. -+ */ -+int toi_print_module_debug_info(char *buffer, int buffer_size) -+{ -+ struct toi_module_ops *this_module; -+ int len = 0; -+ -+ list_for_each_entry(this_module, &toi_modules, module_list) { -+ if (!this_module->enabled) -+ continue; -+ if (this_module->print_debug_info) { -+ int result; -+ result = this_module->print_debug_info(buffer + len, -+ buffer_size - len); -+ len += result; -+ } -+ } -+ -+ /* Ensure null terminated */ -+ buffer[buffer_size] = 0; -+ -+ return len; -+} -+ -+/* -+ * toi_register_module -+ * -+ * Register a module. -+ */ -+int toi_register_module(struct toi_module_ops *module) -+{ -+ int i; -+ struct kobject *kobj; -+ -+ module->enabled = 1; -+ -+ if (toi_find_module_given_name(module->name)) { -+ printk(KERN_INFO "TuxOnIce: Trying to load module %s," -+ " which is already registered.\n", -+ module->name); -+ return -EBUSY; -+ } -+ -+ switch (module->type) { -+ case FILTER_MODULE: -+ list_add_tail(&module->type_list, &toi_filters); -+ toi_num_filters++; -+ break; -+ case WRITER_MODULE: -+ list_add_tail(&module->type_list, &toiAllocators); -+ toiNumAllocators++; -+ break; -+ case MISC_MODULE: -+ case MISC_HIDDEN_MODULE: -+ case BIO_ALLOCATOR_MODULE: -+ break; -+ default: -+ printk(KERN_ERR "Hmmm. Module '%s' has an invalid type." -+ " It has been ignored.\n", module->name); -+ return -EINVAL; -+ } -+ list_add_tail(&module->module_list, &toi_modules); -+ toi_num_modules++; -+ -+ if ((!module->directory && !module->shared_directory) || -+ !module->sysfs_data || !module->num_sysfs_entries) -+ return 0; -+ -+ /* -+ * Modules may share a directory, but those with shared_dir -+ * set must be loaded (via symbol dependencies) after parents -+ * and unloaded beforehand. -+ */ -+ if (module->shared_directory) { -+ struct toi_module_ops *shared = -+ toi_find_module_given_dir(module->shared_directory); -+ if (!shared) { -+ printk(KERN_ERR "TuxOnIce: Module %s wants to share " -+ "%s's directory but %s isn't loaded.\n", -+ module->name, module->shared_directory, -+ module->shared_directory); -+ toi_unregister_module(module); -+ return -ENODEV; -+ } -+ kobj = shared->dir_kobj; -+ } else { -+ if (!strncmp(module->directory, "[ROOT]", 6)) -+ kobj = tuxonice_kobj; -+ else -+ kobj = make_toi_sysdir(module->directory); -+ } -+ module->dir_kobj = kobj; -+ for (i = 0; i < module->num_sysfs_entries; i++) { -+ int result = toi_register_sysfs_file(kobj, -+ &module->sysfs_data[i]); -+ if (result) -+ return result; -+ } -+ return 0; -+} -+EXPORT_SYMBOL_GPL(toi_register_module); -+ -+/* -+ * toi_unregister_module -+ * -+ * Remove a module. -+ */ -+void toi_unregister_module(struct toi_module_ops *module) -+{ -+ int i; -+ -+ if (module->dir_kobj) -+ for (i = 0; i < module->num_sysfs_entries; i++) -+ toi_unregister_sysfs_file(module->dir_kobj, -+ &module->sysfs_data[i]); -+ -+ if (!module->shared_directory && module->directory && -+ strncmp(module->directory, "[ROOT]", 6)) -+ remove_toi_sysdir(module->dir_kobj); -+ -+ switch (module->type) { -+ case FILTER_MODULE: -+ list_del(&module->type_list); -+ toi_num_filters--; -+ break; -+ case WRITER_MODULE: -+ list_del(&module->type_list); -+ toiNumAllocators--; -+ if (toiActiveAllocator == module) { -+ toiActiveAllocator = NULL; -+ clear_toi_state(TOI_CAN_RESUME); -+ clear_toi_state(TOI_CAN_HIBERNATE); -+ } -+ break; -+ case MISC_MODULE: -+ case MISC_HIDDEN_MODULE: -+ case BIO_ALLOCATOR_MODULE: -+ break; -+ default: -+ printk(KERN_ERR "Module '%s' has an invalid type." -+ " It has been ignored.\n", module->name); -+ return; -+ } -+ list_del(&module->module_list); -+ toi_num_modules--; -+} -+EXPORT_SYMBOL_GPL(toi_unregister_module); -+ -+/* -+ * toi_move_module_tail -+ * -+ * Rearrange modules when reloading the config. -+ */ -+void toi_move_module_tail(struct toi_module_ops *module) -+{ -+ switch (module->type) { -+ case FILTER_MODULE: -+ if (toi_num_filters > 1) -+ list_move_tail(&module->type_list, &toi_filters); -+ break; -+ case WRITER_MODULE: -+ if (toiNumAllocators > 1) -+ list_move_tail(&module->type_list, &toiAllocators); -+ break; -+ case MISC_MODULE: -+ case MISC_HIDDEN_MODULE: -+ case BIO_ALLOCATOR_MODULE: -+ break; -+ default: -+ printk(KERN_ERR "Module '%s' has an invalid type." -+ " It has been ignored.\n", module->name); -+ return; -+ } -+ if ((toi_num_filters + toiNumAllocators) > 1) -+ list_move_tail(&module->module_list, &toi_modules); -+} -+ -+/* -+ * toi_initialise_modules -+ * -+ * Get ready to do some work! -+ */ -+int toi_initialise_modules(int starting_cycle, int early) -+{ -+ struct toi_module_ops *this_module; -+ int result; -+ -+ list_for_each_entry(this_module, &toi_modules, module_list) { -+ this_module->header_requested = 0; -+ this_module->header_used = 0; -+ if (!this_module->enabled) -+ continue; -+ if (this_module->early != early) -+ continue; -+ if (this_module->initialise) { -+ result = this_module->initialise(starting_cycle); -+ if (result) { -+ toi_cleanup_modules(starting_cycle); -+ return result; -+ } -+ this_module->initialised = 1; -+ } -+ } -+ -+ return 0; -+} -+ -+/* -+ * toi_cleanup_modules -+ * -+ * Tell modules the work is done. -+ */ -+void toi_cleanup_modules(int finishing_cycle) -+{ -+ struct toi_module_ops *this_module; -+ -+ list_for_each_entry(this_module, &toi_modules, module_list) { -+ if (!this_module->enabled || !this_module->initialised) -+ continue; -+ if (this_module->cleanup) -+ this_module->cleanup(finishing_cycle); -+ this_module->initialised = 0; -+ } -+} -+ -+/* -+ * toi_pre_atomic_restore_modules -+ * -+ * Get ready to do some work! -+ */ -+void toi_pre_atomic_restore_modules(struct toi_boot_kernel_data *bkd) -+{ -+ struct toi_module_ops *this_module; -+ -+ list_for_each_entry(this_module, &toi_modules, module_list) { -+ if (this_module->enabled && this_module->pre_atomic_restore) -+ this_module->pre_atomic_restore(bkd); -+ } -+} -+ -+/* -+ * toi_post_atomic_restore_modules -+ * -+ * Get ready to do some work! -+ */ -+void toi_post_atomic_restore_modules(struct toi_boot_kernel_data *bkd) -+{ -+ struct toi_module_ops *this_module; -+ -+ list_for_each_entry(this_module, &toi_modules, module_list) { -+ if (this_module->enabled && this_module->post_atomic_restore) -+ this_module->post_atomic_restore(bkd); -+ } -+} -+ -+/* -+ * toi_get_next_filter -+ * -+ * Get the next filter in the pipeline. -+ */ -+struct toi_module_ops *toi_get_next_filter(struct toi_module_ops *filter_sought) -+{ -+ struct toi_module_ops *last_filter = NULL, *this_filter = NULL; -+ -+ list_for_each_entry(this_filter, &toi_filters, type_list) { -+ if (!this_filter->enabled) -+ continue; -+ if ((last_filter == filter_sought) || (!filter_sought)) -+ return this_filter; -+ last_filter = this_filter; -+ } -+ -+ return toiActiveAllocator; -+} -+EXPORT_SYMBOL_GPL(toi_get_next_filter); -+ -+/** -+ * toi_show_modules: Printk what support is loaded. -+ */ -+void toi_print_modules(void) -+{ -+ struct toi_module_ops *this_module; -+ int prev = 0; -+ -+ printk(KERN_INFO "TuxOnIce " TOI_CORE_VERSION ", with support for"); -+ -+ list_for_each_entry(this_module, &toi_modules, module_list) { -+ if (this_module->type == MISC_HIDDEN_MODULE) -+ continue; -+ printk("%s %s%s%s", prev ? "," : "", -+ this_module->enabled ? "" : "[", -+ this_module->name, -+ this_module->enabled ? "" : "]"); -+ prev = 1; -+ } -+ -+ printk(".\n"); -+} -+ -+/* toi_get_modules -+ * -+ * Take a reference to modules so they can't go away under us. -+ */ -+ -+int toi_get_modules(void) -+{ -+ struct toi_module_ops *this_module; -+ -+ list_for_each_entry(this_module, &toi_modules, module_list) { -+ struct toi_module_ops *this_module2; -+ -+ if (try_module_get(this_module->module)) -+ continue; -+ -+ /* Failed! Reverse gets and return error */ -+ list_for_each_entry(this_module2, &toi_modules, -+ module_list) { -+ if (this_module == this_module2) -+ return -EINVAL; -+ module_put(this_module2->module); -+ } -+ } -+ return 0; -+} -+ -+/* toi_put_modules -+ * -+ * Release our references to modules we used. -+ */ -+ -+void toi_put_modules(void) -+{ -+ struct toi_module_ops *this_module; -+ -+ list_for_each_entry(this_module, &toi_modules, module_list) -+ module_put(this_module->module); -+} -diff --git a/kernel/power/tuxonice_modules.h b/kernel/power/tuxonice_modules.h -new file mode 100644 -index 0000000..9e198c4 ---- /dev/null -+++ b/kernel/power/tuxonice_modules.h -@@ -0,0 +1,197 @@ -+/* -+ * kernel/power/tuxonice_modules.h -+ * -+ * Copyright (C) 2004-2010 Nigel Cunningham (nigel at tuxonice net) -+ * -+ * This file is released under the GPLv2. -+ * -+ * It contains declarations for modules. Modules are additions to -+ * TuxOnIce that provide facilities such as image compression or -+ * encryption, backends for storage of the image and user interfaces. -+ * -+ */ -+ -+#ifndef TOI_MODULES_H -+#define TOI_MODULES_H -+ -+/* This is the maximum size we store in the image header for a module name */ -+#define TOI_MAX_MODULE_NAME_LENGTH 30 -+ -+struct toi_boot_kernel_data; -+ -+/* Per-module metadata */ -+struct toi_module_header { -+ char name[TOI_MAX_MODULE_NAME_LENGTH]; -+ int enabled; -+ int type; -+ int index; -+ int data_length; -+ unsigned long signature; -+}; -+ -+enum { -+ FILTER_MODULE, -+ WRITER_MODULE, -+ BIO_ALLOCATOR_MODULE, -+ MISC_MODULE, -+ MISC_HIDDEN_MODULE, -+}; -+ -+enum { -+ TOI_ASYNC, -+ TOI_SYNC -+}; -+ -+struct toi_module_ops { -+ /* Functions common to all modules */ -+ int type; -+ char *name; -+ char *directory; -+ char *shared_directory; -+ struct kobject *dir_kobj; -+ struct module *module; -+ int enabled, early, initialised; -+ struct list_head module_list; -+ -+ /* List of filters or allocators */ -+ struct list_head list, type_list; -+ -+ /* -+ * Requirements for memory and storage in -+ * the image header.. -+ */ -+ int (*memory_needed) (void); -+ int (*storage_needed) (void); -+ -+ int header_requested, header_used; -+ -+ int (*expected_compression) (void); -+ -+ /* -+ * Debug info -+ */ -+ int (*print_debug_info) (char *buffer, int size); -+ int (*save_config_info) (char *buffer); -+ void (*load_config_info) (char *buffer, int len); -+ -+ /* -+ * Initialise & cleanup - general routines called -+ * at the start and end of a cycle. -+ */ -+ int (*initialise) (int starting_cycle); -+ void (*cleanup) (int finishing_cycle); -+ -+ void (*pre_atomic_restore) (struct toi_boot_kernel_data *bkd); -+ void (*post_atomic_restore) (struct toi_boot_kernel_data *bkd); -+ -+ /* -+ * Calls for allocating storage (allocators only). -+ * -+ * Header space is requested separately and cannot fail, but the -+ * reservation is only applied when main storage is allocated. -+ * The header space reservation is thus always set prior to -+ * requesting the allocation of storage - and prior to querying -+ * how much storage is available. -+ */ -+ -+ unsigned long (*storage_available) (void); -+ void (*reserve_header_space) (unsigned long space_requested); -+ int (*register_storage) (void); -+ int (*allocate_storage) (unsigned long space_requested); -+ unsigned long (*storage_allocated) (void); -+ -+ /* -+ * Routines used in image I/O. -+ */ -+ int (*rw_init) (int rw, int stream_number); -+ int (*rw_cleanup) (int rw); -+ int (*write_page) (unsigned long index, struct page *buffer_page, -+ unsigned int buf_size); -+ int (*read_page) (unsigned long *index, struct page *buffer_page, -+ unsigned int *buf_size); -+ int (*io_flusher) (int rw); -+ -+ /* Reset module if image exists but reading aborted */ -+ void (*noresume_reset) (void); -+ -+ /* Read and write the metadata */ -+ int (*write_header_init) (void); -+ int (*write_header_cleanup) (void); -+ -+ int (*read_header_init) (void); -+ int (*read_header_cleanup) (void); -+ -+ /* To be called after read_header_init */ -+ int (*get_header_version) (void); -+ -+ int (*rw_header_chunk) (int rw, struct toi_module_ops *owner, -+ char *buffer_start, int buffer_size); -+ -+ int (*rw_header_chunk_noreadahead) (int rw, -+ struct toi_module_ops *owner, char *buffer_start, -+ int buffer_size); -+ -+ /* Attempt to parse an image location */ -+ int (*parse_sig_location) (char *buffer, int only_writer, int quiet); -+ -+ /* Throttle I/O according to throughput */ -+ void (*update_throughput_throttle) (int jif_index); -+ -+ /* Flush outstanding I/O */ -+ int (*finish_all_io) (void); -+ -+ /* Determine whether image exists that we can restore */ -+ int (*image_exists) (int quiet); -+ -+ /* Mark the image as having tried to resume */ -+ int (*mark_resume_attempted) (int); -+ -+ /* Destroy image if one exists */ -+ int (*remove_image) (void); -+ -+ /* Sysfs Data */ -+ struct toi_sysfs_data *sysfs_data; -+ int num_sysfs_entries; -+ -+ /* Block I/O allocator */ -+ struct toi_bio_allocator_ops *bio_allocator_ops; -+}; -+ -+extern int toi_num_modules, toiNumAllocators; -+ -+extern struct toi_module_ops *toiActiveAllocator; -+extern struct list_head toi_filters, toiAllocators, toi_modules; -+ -+extern void toi_prepare_console_modules(void); -+extern void toi_cleanup_console_modules(void); -+ -+extern struct toi_module_ops *toi_find_module_given_name(char *name); -+extern struct toi_module_ops *toi_get_next_filter(struct toi_module_ops *); -+ -+extern int toi_register_module(struct toi_module_ops *module); -+extern void toi_move_module_tail(struct toi_module_ops *module); -+ -+extern long toi_header_storage_for_modules(void); -+extern long toi_memory_for_modules(int print_parts); -+extern void print_toi_header_storage_for_modules(void); -+extern int toi_expected_compression_ratio(void); -+ -+extern int toi_print_module_debug_info(char *buffer, int buffer_size); -+extern int toi_register_module(struct toi_module_ops *module); -+extern void toi_unregister_module(struct toi_module_ops *module); -+ -+extern int toi_initialise_modules(int starting_cycle, int early); -+#define toi_initialise_modules_early(starting) \ -+ toi_initialise_modules(starting, 1) -+#define toi_initialise_modules_late(starting) \ -+ toi_initialise_modules(starting, 0) -+extern void toi_cleanup_modules(int finishing_cycle); -+ -+extern void toi_post_atomic_restore_modules(struct toi_boot_kernel_data *bkd); -+extern void toi_pre_atomic_restore_modules(struct toi_boot_kernel_data *bkd); -+ -+extern void toi_print_modules(void); -+ -+int toi_get_modules(void); -+void toi_put_modules(void); -+#endif -diff --git a/kernel/power/tuxonice_netlink.c b/kernel/power/tuxonice_netlink.c -new file mode 100644 -index 0000000..4c599d5 ---- /dev/null -+++ b/kernel/power/tuxonice_netlink.c -@@ -0,0 +1,344 @@ -+/* -+ * kernel/power/tuxonice_netlink.c -+ * -+ * Copyright (C) 2004-2010 Nigel Cunningham (nigel at tuxonice net) -+ * -+ * This file is released under the GPLv2. -+ * -+ * Functions for communicating with a userspace helper via netlink. -+ */ -+ -+ -+#include -+#include -+#include "tuxonice_netlink.h" -+#include "tuxonice.h" -+#include "tuxonice_modules.h" -+#include "tuxonice_alloc.h" -+ -+static struct user_helper_data *uhd_list; -+ -+/* -+ * Refill our pool of SKBs for use in emergencies (eg, when eating memory and -+ * none can be allocated). -+ */ -+static void toi_fill_skb_pool(struct user_helper_data *uhd) -+{ -+ while (uhd->pool_level < uhd->pool_limit) { -+ struct sk_buff *new_skb = -+ alloc_skb(NLMSG_SPACE(uhd->skb_size), TOI_ATOMIC_GFP); -+ -+ if (!new_skb) -+ break; -+ -+ new_skb->next = uhd->emerg_skbs; -+ uhd->emerg_skbs = new_skb; -+ uhd->pool_level++; -+ } -+} -+ -+/* -+ * Try to allocate a single skb. If we can't get one, try to use one from -+ * our pool. -+ */ -+static struct sk_buff *toi_get_skb(struct user_helper_data *uhd) -+{ -+ struct sk_buff *skb = -+ alloc_skb(NLMSG_SPACE(uhd->skb_size), TOI_ATOMIC_GFP); -+ -+ if (skb) -+ return skb; -+ -+ skb = uhd->emerg_skbs; -+ if (skb) { -+ uhd->pool_level--; -+ uhd->emerg_skbs = skb->next; -+ skb->next = NULL; -+ } -+ -+ return skb; -+} -+ -+static void put_skb(struct user_helper_data *uhd, struct sk_buff *skb) -+{ -+ if (uhd->pool_level < uhd->pool_limit) { -+ skb->next = uhd->emerg_skbs; -+ uhd->emerg_skbs = skb; -+ } else -+ kfree_skb(skb); -+} -+ -+void toi_send_netlink_message(struct user_helper_data *uhd, -+ int type, void *params, size_t len) -+{ -+ struct sk_buff *skb; -+ struct nlmsghdr *nlh; -+ void *dest; -+ struct task_struct *t; -+ -+ if (uhd->pid == -1) -+ return; -+ -+ if (uhd->debug) -+ printk(KERN_ERR "toi_send_netlink_message: Send " -+ "message type %d.\n", type); -+ -+ skb = toi_get_skb(uhd); -+ if (!skb) { -+ printk(KERN_INFO "toi_netlink: Can't allocate skb!\n"); -+ return; -+ } -+ -+ /* NLMSG_PUT contains a hidden goto nlmsg_failure */ -+ nlh = NLMSG_PUT(skb, 0, uhd->sock_seq, type, len); -+ uhd->sock_seq++; -+ -+ dest = NLMSG_DATA(nlh); -+ if (params && len > 0) -+ memcpy(dest, params, len); -+ -+ netlink_unicast(uhd->nl, skb, uhd->pid, 0); -+ -+ read_lock(&tasklist_lock); -+ t = find_task_by_pid_ns(uhd->pid, &init_pid_ns); -+ if (!t) { -+ read_unlock(&tasklist_lock); -+ if (uhd->pid > -1) -+ printk(KERN_INFO "Hmm. Can't find the userspace task" -+ " %d.\n", uhd->pid); -+ return; -+ } -+ wake_up_process(t); -+ read_unlock(&tasklist_lock); -+ -+ yield(); -+ -+ return; -+ -+nlmsg_failure: -+ if (skb) -+ put_skb(uhd, skb); -+ -+ if (uhd->debug) -+ printk(KERN_ERR "toi_send_netlink_message: Failed to send " -+ "message type %d.\n", type); -+} -+EXPORT_SYMBOL_GPL(toi_send_netlink_message); -+ -+static void send_whether_debugging(struct user_helper_data *uhd) -+{ -+ static u8 is_debugging = 1; -+ -+ toi_send_netlink_message(uhd, NETLINK_MSG_IS_DEBUGGING, -+ &is_debugging, sizeof(u8)); -+} -+ -+/* -+ * Set the PF_NOFREEZE flag on the given process to ensure it can run whilst we -+ * are hibernating. -+ */ -+static int nl_set_nofreeze(struct user_helper_data *uhd, __u32 pid) -+{ -+ struct task_struct *t; -+ -+ if (uhd->debug) -+ printk(KERN_ERR "nl_set_nofreeze for pid %d.\n", pid); -+ -+ read_lock(&tasklist_lock); -+ t = find_task_by_pid_ns(pid, &init_pid_ns); -+ if (!t) { -+ read_unlock(&tasklist_lock); -+ printk(KERN_INFO "Strange. Can't find the userspace task %d.\n", -+ pid); -+ return -EINVAL; -+ } -+ -+ t->flags |= PF_NOFREEZE; -+ -+ read_unlock(&tasklist_lock); -+ uhd->pid = pid; -+ -+ toi_send_netlink_message(uhd, NETLINK_MSG_NOFREEZE_ACK, NULL, 0); -+ -+ return 0; -+} -+ -+/* -+ * Called when the userspace process has informed us that it's ready to roll. -+ */ -+static int nl_ready(struct user_helper_data *uhd, u32 version) -+{ -+ if (version != uhd->interface_version) { -+ printk(KERN_INFO "%s userspace process using invalid interface" -+ " version (%d - kernel wants %d). Trying to " -+ "continue without it.\n", -+ uhd->name, version, uhd->interface_version); -+ if (uhd->not_ready) -+ uhd->not_ready(); -+ return -EINVAL; -+ } -+ -+ complete(&uhd->wait_for_process); -+ -+ return 0; -+} -+ -+void toi_netlink_close_complete(struct user_helper_data *uhd) -+{ -+ if (uhd->nl) { -+ netlink_kernel_release(uhd->nl); -+ uhd->nl = NULL; -+ } -+ -+ while (uhd->emerg_skbs) { -+ struct sk_buff *next = uhd->emerg_skbs->next; -+ kfree_skb(uhd->emerg_skbs); -+ uhd->emerg_skbs = next; -+ } -+ -+ uhd->pid = -1; -+} -+EXPORT_SYMBOL_GPL(toi_netlink_close_complete); -+ -+static int toi_nl_gen_rcv_msg(struct user_helper_data *uhd, -+ struct sk_buff *skb, struct nlmsghdr *nlh) -+{ -+ int type = nlh->nlmsg_type; -+ int *data; -+ int err; -+ -+ if (uhd->debug) -+ printk(KERN_ERR "toi_user_rcv_skb: Received message %d.\n", -+ type); -+ -+ /* Let the more specific handler go first. It returns -+ * 1 for valid messages that it doesn't know. */ -+ err = uhd->rcv_msg(skb, nlh); -+ if (err != 1) -+ return err; -+ -+ /* Only allow one task to receive NOFREEZE privileges */ -+ if (type == NETLINK_MSG_NOFREEZE_ME && uhd->pid != -1) { -+ printk(KERN_INFO "Received extra nofreeze me requests.\n"); -+ return -EBUSY; -+ } -+ -+ data = NLMSG_DATA(nlh); -+ -+ switch (type) { -+ case NETLINK_MSG_NOFREEZE_ME: -+ return nl_set_nofreeze(uhd, nlh->nlmsg_pid); -+ case NETLINK_MSG_GET_DEBUGGING: -+ send_whether_debugging(uhd); -+ return 0; -+ case NETLINK_MSG_READY: -+ if (nlh->nlmsg_len != NLMSG_LENGTH(sizeof(u32))) { -+ printk(KERN_INFO "Invalid ready mesage.\n"); -+ if (uhd->not_ready) -+ uhd->not_ready(); -+ return -EINVAL; -+ } -+ return nl_ready(uhd, (u32) *data); -+ case NETLINK_MSG_CLEANUP: -+ toi_netlink_close_complete(uhd); -+ return 0; -+ } -+ -+ return -EINVAL; -+} -+ -+static void toi_user_rcv_skb(struct sk_buff *skb) -+{ -+ int err; -+ struct nlmsghdr *nlh; -+ struct user_helper_data *uhd = uhd_list; -+ -+ while (uhd && uhd->netlink_id != skb->sk->sk_protocol) -+ uhd = uhd->next; -+ -+ if (!uhd) -+ return; -+ -+ while (skb->len >= NLMSG_SPACE(0)) { -+ u32 rlen; -+ -+ nlh = (struct nlmsghdr *) skb->data; -+ if (nlh->nlmsg_len < sizeof(*nlh) || skb->len < nlh->nlmsg_len) -+ return; -+ -+ rlen = NLMSG_ALIGN(nlh->nlmsg_len); -+ if (rlen > skb->len) -+ rlen = skb->len; -+ -+ err = toi_nl_gen_rcv_msg(uhd, skb, nlh); -+ if (err) -+ netlink_ack(skb, nlh, err); -+ else if (nlh->nlmsg_flags & NLM_F_ACK) -+ netlink_ack(skb, nlh, 0); -+ skb_pull(skb, rlen); -+ } -+} -+ -+static int netlink_prepare(struct user_helper_data *uhd) -+{ -+ uhd->next = uhd_list; -+ uhd_list = uhd; -+ -+ uhd->sock_seq = 0x42c0ffee; -+ uhd->nl = netlink_kernel_create(&init_net, uhd->netlink_id, 0, -+ toi_user_rcv_skb, NULL, THIS_MODULE); -+ if (!uhd->nl) { -+ printk(KERN_INFO "Failed to allocate netlink socket for %s.\n", -+ uhd->name); -+ return -ENOMEM; -+ } -+ -+ toi_fill_skb_pool(uhd); -+ -+ return 0; -+} -+ -+void toi_netlink_close(struct user_helper_data *uhd) -+{ -+ struct task_struct *t; -+ -+ read_lock(&tasklist_lock); -+ t = find_task_by_pid_ns(uhd->pid, &init_pid_ns); -+ if (t) -+ t->flags &= ~PF_NOFREEZE; -+ read_unlock(&tasklist_lock); -+ -+ toi_send_netlink_message(uhd, NETLINK_MSG_CLEANUP, NULL, 0); -+} -+EXPORT_SYMBOL_GPL(toi_netlink_close); -+ -+int toi_netlink_setup(struct user_helper_data *uhd) -+{ -+ /* In case userui didn't cleanup properly on us */ -+ toi_netlink_close_complete(uhd); -+ -+ if (netlink_prepare(uhd) < 0) { -+ printk(KERN_INFO "Netlink prepare failed.\n"); -+ return 1; -+ } -+ -+ if (toi_launch_userspace_program(uhd->program, uhd->netlink_id, -+ UMH_WAIT_EXEC, uhd->debug) < 0) { -+ printk(KERN_INFO "Launch userspace program failed.\n"); -+ toi_netlink_close_complete(uhd); -+ return 1; -+ } -+ -+ /* Wait 2 seconds for the userspace process to make contact */ -+ wait_for_completion_timeout(&uhd->wait_for_process, 2*HZ); -+ -+ if (uhd->pid == -1) { -+ printk(KERN_INFO "%s: Failed to contact userspace process.\n", -+ uhd->name); -+ toi_netlink_close_complete(uhd); -+ return 1; -+ } -+ -+ return 0; -+} -+EXPORT_SYMBOL_GPL(toi_netlink_setup); -diff --git a/kernel/power/tuxonice_netlink.h b/kernel/power/tuxonice_netlink.h -new file mode 100644 -index 0000000..b8ef06e ---- /dev/null -+++ b/kernel/power/tuxonice_netlink.h -@@ -0,0 +1,62 @@ -+/* -+ * kernel/power/tuxonice_netlink.h -+ * -+ * Copyright (C) 2004-2010 Nigel Cunningham (nigel at tuxonice net) -+ * -+ * This file is released under the GPLv2. -+ * -+ * Declarations for functions for communicating with a userspace helper -+ * via netlink. -+ */ -+ -+#include -+#include -+ -+#define NETLINK_MSG_BASE 0x10 -+ -+#define NETLINK_MSG_READY 0x10 -+#define NETLINK_MSG_NOFREEZE_ME 0x16 -+#define NETLINK_MSG_GET_DEBUGGING 0x19 -+#define NETLINK_MSG_CLEANUP 0x24 -+#define NETLINK_MSG_NOFREEZE_ACK 0x27 -+#define NETLINK_MSG_IS_DEBUGGING 0x28 -+ -+struct user_helper_data { -+ int (*rcv_msg) (struct sk_buff *skb, struct nlmsghdr *nlh); -+ void (*not_ready) (void); -+ struct sock *nl; -+ u32 sock_seq; -+ pid_t pid; -+ char *comm; -+ char program[256]; -+ int pool_level; -+ int pool_limit; -+ struct sk_buff *emerg_skbs; -+ int skb_size; -+ int netlink_id; -+ char *name; -+ struct user_helper_data *next; -+ struct completion wait_for_process; -+ u32 interface_version; -+ int must_init; -+ int debug; -+}; -+ -+#ifdef CONFIG_NET -+int toi_netlink_setup(struct user_helper_data *uhd); -+void toi_netlink_close(struct user_helper_data *uhd); -+void toi_send_netlink_message(struct user_helper_data *uhd, -+ int type, void *params, size_t len); -+void toi_netlink_close_complete(struct user_helper_data *uhd); -+#else -+static inline int toi_netlink_setup(struct user_helper_data *uhd) -+{ -+ return 0; -+} -+ -+static inline void toi_netlink_close(struct user_helper_data *uhd) { }; -+static inline void toi_send_netlink_message(struct user_helper_data *uhd, -+ int type, void *params, size_t len) { }; -+static inline void toi_netlink_close_complete(struct user_helper_data *uhd) -+ { }; -+#endif -diff --git a/kernel/power/tuxonice_pagedir.c b/kernel/power/tuxonice_pagedir.c -new file mode 100644 -index 0000000..091c9e3 ---- /dev/null -+++ b/kernel/power/tuxonice_pagedir.c -@@ -0,0 +1,339 @@ -+/* -+ * kernel/power/tuxonice_pagedir.c -+ * -+ * Copyright (C) 1998-2001 Gabor Kuti -+ * Copyright (C) 1998,2001,2002 Pavel Machek -+ * Copyright (C) 2002-2003 Florent Chabaud -+ * Copyright (C) 2006-2010 Nigel Cunningham (nigel at tuxonice net) -+ * -+ * This file is released under the GPLv2. -+ * -+ * Routines for handling pagesets. -+ * Note that pbes aren't actually stored as such. They're stored as -+ * bitmaps and extents. -+ */ -+ -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+ -+#include "tuxonice_pageflags.h" -+#include "tuxonice_ui.h" -+#include "tuxonice_pagedir.h" -+#include "tuxonice_prepare_image.h" -+#include "tuxonice.h" -+#include "tuxonice_builtin.h" -+#include "tuxonice_alloc.h" -+ -+static int ptoi_pfn; -+static struct pbe *this_low_pbe; -+static struct pbe **last_low_pbe_ptr; -+static struct memory_bitmap dup_map1, dup_map2; -+ -+void toi_reset_alt_image_pageset2_pfn(void) -+{ -+ memory_bm_position_reset(pageset2_map); -+} -+ -+static struct page *first_conflicting_page; -+ -+/* -+ * free_conflicting_pages -+ */ -+ -+static void free_conflicting_pages(void) -+{ -+ while (first_conflicting_page) { -+ struct page *next = -+ *((struct page **) kmap(first_conflicting_page)); -+ kunmap(first_conflicting_page); -+ toi__free_page(29, first_conflicting_page); -+ first_conflicting_page = next; -+ } -+} -+ -+/* __toi_get_nonconflicting_page -+ * -+ * Description: Gets order zero pages that won't be overwritten -+ * while copying the original pages. -+ */ -+ -+struct page *___toi_get_nonconflicting_page(int can_be_highmem) -+{ -+ struct page *page; -+ gfp_t flags = TOI_ATOMIC_GFP; -+ if (can_be_highmem) -+ flags |= __GFP_HIGHMEM; -+ -+ -+ if (test_toi_state(TOI_LOADING_ALT_IMAGE) && -+ pageset2_map && -+ (ptoi_pfn != BM_END_OF_MAP)) { -+ do { -+ ptoi_pfn = memory_bm_next_pfn(pageset2_map); -+ if (ptoi_pfn != BM_END_OF_MAP) { -+ page = pfn_to_page(ptoi_pfn); -+ if (!PagePageset1(page) && -+ (can_be_highmem || !PageHighMem(page))) -+ return page; -+ } -+ } while (ptoi_pfn != BM_END_OF_MAP); -+ } -+ -+ do { -+ page = toi_alloc_page(29, flags); -+ if (!page) { -+ printk(KERN_INFO "Failed to get nonconflicting " -+ "page.\n"); -+ return NULL; -+ } -+ if (PagePageset1(page)) { -+ struct page **next = (struct page **) kmap(page); -+ *next = first_conflicting_page; -+ first_conflicting_page = page; -+ kunmap(page); -+ } -+ } while (PagePageset1(page)); -+ -+ return page; -+} -+ -+unsigned long __toi_get_nonconflicting_page(void) -+{ -+ struct page *page = ___toi_get_nonconflicting_page(0); -+ return page ? (unsigned long) page_address(page) : 0; -+} -+ -+static struct pbe *get_next_pbe(struct page **page_ptr, struct pbe *this_pbe, -+ int highmem) -+{ -+ if (((((unsigned long) this_pbe) & (PAGE_SIZE - 1)) -+ + 2 * sizeof(struct pbe)) > PAGE_SIZE) { -+ struct page *new_page = -+ ___toi_get_nonconflicting_page(highmem); -+ if (!new_page) -+ return ERR_PTR(-ENOMEM); -+ this_pbe = (struct pbe *) kmap(new_page); -+ memset(this_pbe, 0, PAGE_SIZE); -+ *page_ptr = new_page; -+ } else -+ this_pbe++; -+ -+ return this_pbe; -+} -+ -+/** -+ * get_pageset1_load_addresses - generate pbes for conflicting pages -+ * -+ * We check here that pagedir & pages it points to won't collide -+ * with pages where we're going to restore from the loaded pages -+ * later. -+ * -+ * Returns: -+ * Zero on success, one if couldn't find enough pages (shouldn't -+ * happen). -+ **/ -+int toi_get_pageset1_load_addresses(void) -+{ -+ int pfn, highallocd = 0, lowallocd = 0; -+ int low_needed = pagedir1.size - get_highmem_size(pagedir1); -+ int high_needed = get_highmem_size(pagedir1); -+ int low_pages_for_highmem = 0; -+ gfp_t flags = GFP_ATOMIC | __GFP_NOWARN | __GFP_HIGHMEM; -+ struct page *page, *high_pbe_page = NULL, *last_high_pbe_page = NULL, -+ *low_pbe_page; -+ struct pbe **last_high_pbe_ptr = &restore_highmem_pblist, -+ *this_high_pbe = NULL; -+ int orig_low_pfn, orig_high_pfn; -+ int high_pbes_done = 0, low_pbes_done = 0; -+ int low_direct = 0, high_direct = 0, result = 0, i; -+ -+ /* -+ * We need to duplicate pageset1's map because memory_bm_next_pfn's -+ * state gets stomped on by the PagePageset1() test in setup_pbes. -+ */ -+ memory_bm_create(&dup_map1, GFP_ATOMIC, 0); -+ memory_bm_dup(pageset1_map, &dup_map1); -+ -+ memory_bm_create(&dup_map2, GFP_ATOMIC, 0); -+ memory_bm_dup(pageset1_map, &dup_map2); -+ -+ memory_bm_position_reset(pageset1_map); -+ memory_bm_position_reset(&dup_map1); -+ memory_bm_position_reset(&dup_map2); -+ -+ last_low_pbe_ptr = &restore_pblist; -+ -+ /* First, allocate pages for the start of our pbe lists. */ -+ if (high_needed) { -+ high_pbe_page = ___toi_get_nonconflicting_page(1); -+ if (!high_pbe_page) { -+ result = -ENOMEM; -+ goto out; -+ } -+ this_high_pbe = (struct pbe *) kmap(high_pbe_page); -+ memset(this_high_pbe, 0, PAGE_SIZE); -+ } -+ -+ low_pbe_page = ___toi_get_nonconflicting_page(0); -+ if (!low_pbe_page) { -+ result = -ENOMEM; -+ goto out; -+ } -+ this_low_pbe = (struct pbe *) page_address(low_pbe_page); -+ -+ /* -+ * Next, allocate the number of pages we need. -+ */ -+ -+ i = low_needed + high_needed; -+ -+ do { -+ int is_high; -+ -+ if (i == low_needed) -+ flags &= ~__GFP_HIGHMEM; -+ -+ page = toi_alloc_page(30, flags); -+ BUG_ON(!page); -+ -+ SetPagePageset1Copy(page); -+ is_high = PageHighMem(page); -+ -+ if (PagePageset1(page)) { -+ if (is_high) -+ high_direct++; -+ else -+ low_direct++; -+ } else { -+ if (is_high) -+ highallocd++; -+ else -+ lowallocd++; -+ } -+ } while (--i); -+ -+ high_needed -= high_direct; -+ low_needed -= low_direct; -+ -+ /* -+ * Do we need to use some lowmem pages for the copies of highmem -+ * pages? -+ */ -+ if (high_needed > highallocd) { -+ low_pages_for_highmem = high_needed - highallocd; -+ high_needed -= low_pages_for_highmem; -+ low_needed += low_pages_for_highmem; -+ } -+ -+ /* -+ * Now generate our pbes (which will be used for the atomic restore), -+ * and free unneeded pages. -+ */ -+ memory_bm_position_reset(pageset1_copy_map); -+ for (pfn = memory_bm_next_pfn(pageset1_copy_map); pfn != BM_END_OF_MAP; -+ pfn = memory_bm_next_pfn(pageset1_copy_map)) { -+ int is_high; -+ page = pfn_to_page(pfn); -+ is_high = PageHighMem(page); -+ -+ if (PagePageset1(page)) -+ continue; -+ -+ /* Nope. We're going to use this page. Add a pbe. */ -+ if (is_high || low_pages_for_highmem) { -+ struct page *orig_page; -+ high_pbes_done++; -+ if (!is_high) -+ low_pages_for_highmem--; -+ do { -+ orig_high_pfn = memory_bm_next_pfn(&dup_map1); -+ BUG_ON(orig_high_pfn == BM_END_OF_MAP); -+ orig_page = pfn_to_page(orig_high_pfn); -+ } while (!PageHighMem(orig_page) || -+ PagePageset1Copy(orig_page)); -+ -+ this_high_pbe->orig_address = orig_page; -+ this_high_pbe->address = page; -+ this_high_pbe->next = NULL; -+ if (last_high_pbe_page != high_pbe_page) { -+ *last_high_pbe_ptr = -+ (struct pbe *) high_pbe_page; -+ if (!last_high_pbe_page) -+ last_high_pbe_page = high_pbe_page; -+ } else -+ *last_high_pbe_ptr = this_high_pbe; -+ last_high_pbe_ptr = &this_high_pbe->next; -+ if (last_high_pbe_page != high_pbe_page) { -+ kunmap(last_high_pbe_page); -+ last_high_pbe_page = high_pbe_page; -+ } -+ this_high_pbe = get_next_pbe(&high_pbe_page, -+ this_high_pbe, 1); -+ if (IS_ERR(this_high_pbe)) { -+ printk(KERN_INFO -+ "This high pbe is an error.\n"); -+ return -ENOMEM; -+ } -+ } else { -+ struct page *orig_page; -+ low_pbes_done++; -+ do { -+ orig_low_pfn = memory_bm_next_pfn(&dup_map2); -+ BUG_ON(orig_low_pfn == BM_END_OF_MAP); -+ orig_page = pfn_to_page(orig_low_pfn); -+ } while (PageHighMem(orig_page) || -+ PagePageset1Copy(orig_page)); -+ -+ this_low_pbe->orig_address = page_address(orig_page); -+ this_low_pbe->address = page_address(page); -+ this_low_pbe->next = NULL; -+ *last_low_pbe_ptr = this_low_pbe; -+ last_low_pbe_ptr = &this_low_pbe->next; -+ this_low_pbe = get_next_pbe(&low_pbe_page, -+ this_low_pbe, 0); -+ if (IS_ERR(this_low_pbe)) { -+ printk(KERN_INFO "this_low_pbe is an error.\n"); -+ return -ENOMEM; -+ } -+ } -+ } -+ -+ if (high_pbe_page) -+ kunmap(high_pbe_page); -+ -+ if (last_high_pbe_page != high_pbe_page) { -+ if (last_high_pbe_page) -+ kunmap(last_high_pbe_page); -+ toi__free_page(29, high_pbe_page); -+ } -+ -+ free_conflicting_pages(); -+ -+out: -+ memory_bm_free(&dup_map1, 0); -+ memory_bm_free(&dup_map2, 0); -+ -+ return result; -+} -+ -+int add_boot_kernel_data_pbe(void) -+{ -+ this_low_pbe->address = (char *) __toi_get_nonconflicting_page(); -+ if (!this_low_pbe->address) { -+ printk(KERN_INFO "Failed to get bkd atomic restore buffer."); -+ return -ENOMEM; -+ } -+ -+ toi_bkd.size = sizeof(toi_bkd); -+ memcpy(this_low_pbe->address, &toi_bkd, sizeof(toi_bkd)); -+ -+ *last_low_pbe_ptr = this_low_pbe; -+ this_low_pbe->orig_address = (char *) boot_kernel_data_buffer; -+ this_low_pbe->next = NULL; -+ return 0; -+} -diff --git a/kernel/power/tuxonice_pagedir.h b/kernel/power/tuxonice_pagedir.h -new file mode 100644 -index 0000000..d08e4b1 ---- /dev/null -+++ b/kernel/power/tuxonice_pagedir.h -@@ -0,0 +1,50 @@ -+/* -+ * kernel/power/tuxonice_pagedir.h -+ * -+ * Copyright (C) 2006-2010 Nigel Cunningham (nigel at tuxonice net) -+ * -+ * This file is released under the GPLv2. -+ * -+ * Declarations for routines for handling pagesets. -+ */ -+ -+#ifndef KERNEL_POWER_PAGEDIR_H -+#define KERNEL_POWER_PAGEDIR_H -+ -+/* Pagedir -+ * -+ * Contains the metadata for a set of pages saved in the image. -+ */ -+ -+struct pagedir { -+ int id; -+ unsigned long size; -+#ifdef CONFIG_HIGHMEM -+ unsigned long size_high; -+#endif -+}; -+ -+#ifdef CONFIG_HIGHMEM -+#define get_highmem_size(pagedir) (pagedir.size_high) -+#define set_highmem_size(pagedir, sz) do { pagedir.size_high = sz; } while (0) -+#define inc_highmem_size(pagedir) do { pagedir.size_high++; } while (0) -+#define get_lowmem_size(pagedir) (pagedir.size - pagedir.size_high) -+#else -+#define get_highmem_size(pagedir) (0) -+#define set_highmem_size(pagedir, sz) do { } while (0) -+#define inc_highmem_size(pagedir) do { } while (0) -+#define get_lowmem_size(pagedir) (pagedir.size) -+#endif -+ -+extern struct pagedir pagedir1, pagedir2; -+ -+extern void toi_copy_pageset1(void); -+ -+extern int toi_get_pageset1_load_addresses(void); -+ -+extern unsigned long __toi_get_nonconflicting_page(void); -+struct page *___toi_get_nonconflicting_page(int can_be_highmem); -+ -+extern void toi_reset_alt_image_pageset2_pfn(void); -+extern int add_boot_kernel_data_pbe(void); -+#endif -diff --git a/kernel/power/tuxonice_pageflags.c b/kernel/power/tuxonice_pageflags.c -new file mode 100644 -index 0000000..e9ec5b5 ---- /dev/null -+++ b/kernel/power/tuxonice_pageflags.c -@@ -0,0 +1,28 @@ -+/* -+ * kernel/power/tuxonice_pageflags.c -+ * -+ * Copyright (C) 2004-2010 Nigel Cunningham (nigel at tuxonice net) -+ * -+ * This file is released under the GPLv2. -+ * -+ * Routines for serialising and relocating pageflags in which we -+ * store our image metadata. -+ */ -+ -+#include -+#include "tuxonice_pageflags.h" -+#include "power.h" -+ -+int toi_pageflags_space_needed(void) -+{ -+ int total = 0; -+ struct bm_block *bb; -+ -+ total = sizeof(unsigned int); -+ -+ list_for_each_entry(bb, &pageset1_map->blocks, hook) -+ total += 2 * sizeof(unsigned long) + PAGE_SIZE; -+ -+ return total; -+} -+EXPORT_SYMBOL_GPL(toi_pageflags_space_needed); -diff --git a/kernel/power/tuxonice_pageflags.h b/kernel/power/tuxonice_pageflags.h -new file mode 100644 -index 0000000..d5aa7b1 ---- /dev/null -+++ b/kernel/power/tuxonice_pageflags.h -@@ -0,0 +1,72 @@ -+/* -+ * kernel/power/tuxonice_pageflags.h -+ * -+ * Copyright (C) 2004-2010 Nigel Cunningham (nigel at tuxonice net) -+ * -+ * This file is released under the GPLv2. -+ */ -+ -+#ifndef KERNEL_POWER_TUXONICE_PAGEFLAGS_H -+#define KERNEL_POWER_TUXONICE_PAGEFLAGS_H -+ -+extern struct memory_bitmap *pageset1_map; -+extern struct memory_bitmap *pageset1_copy_map; -+extern struct memory_bitmap *pageset2_map; -+extern struct memory_bitmap *page_resave_map; -+extern struct memory_bitmap *io_map; -+extern struct memory_bitmap *nosave_map; -+extern struct memory_bitmap *free_map; -+ -+#define PagePageset1(page) \ -+ (memory_bm_test_bit(pageset1_map, page_to_pfn(page))) -+#define SetPagePageset1(page) \ -+ (memory_bm_set_bit(pageset1_map, page_to_pfn(page))) -+#define ClearPagePageset1(page) \ -+ (memory_bm_clear_bit(pageset1_map, page_to_pfn(page))) -+ -+#define PagePageset1Copy(page) \ -+ (memory_bm_test_bit(pageset1_copy_map, page_to_pfn(page))) -+#define SetPagePageset1Copy(page) \ -+ (memory_bm_set_bit(pageset1_copy_map, page_to_pfn(page))) -+#define ClearPagePageset1Copy(page) \ -+ (memory_bm_clear_bit(pageset1_copy_map, page_to_pfn(page))) -+ -+#define PagePageset2(page) \ -+ (memory_bm_test_bit(pageset2_map, page_to_pfn(page))) -+#define SetPagePageset2(page) \ -+ (memory_bm_set_bit(pageset2_map, page_to_pfn(page))) -+#define ClearPagePageset2(page) \ -+ (memory_bm_clear_bit(pageset2_map, page_to_pfn(page))) -+ -+#define PageWasRW(page) \ -+ (memory_bm_test_bit(pageset2_map, page_to_pfn(page))) -+#define SetPageWasRW(page) \ -+ (memory_bm_set_bit(pageset2_map, page_to_pfn(page))) -+#define ClearPageWasRW(page) \ -+ (memory_bm_clear_bit(pageset2_map, page_to_pfn(page))) -+ -+#define PageResave(page) (page_resave_map ? \ -+ memory_bm_test_bit(page_resave_map, page_to_pfn(page)) : 0) -+#define SetPageResave(page) \ -+ (memory_bm_set_bit(page_resave_map, page_to_pfn(page))) -+#define ClearPageResave(page) \ -+ (memory_bm_clear_bit(page_resave_map, page_to_pfn(page))) -+ -+#define PageNosave(page) (nosave_map ? \ -+ memory_bm_test_bit(nosave_map, page_to_pfn(page)) : 0) -+#define SetPageNosave(page) \ -+ (memory_bm_set_bit(nosave_map, page_to_pfn(page))) -+#define ClearPageNosave(page) \ -+ (memory_bm_clear_bit(nosave_map, page_to_pfn(page))) -+ -+#define PageNosaveFree(page) (free_map ? \ -+ memory_bm_test_bit(free_map, page_to_pfn(page)) : 0) -+#define SetPageNosaveFree(page) \ -+ (memory_bm_set_bit(free_map, page_to_pfn(page))) -+#define ClearPageNosaveFree(page) \ -+ (memory_bm_clear_bit(free_map, page_to_pfn(page))) -+ -+extern void save_pageflags(struct memory_bitmap *pagemap); -+extern int load_pageflags(struct memory_bitmap *pagemap); -+extern int toi_pageflags_space_needed(void); -+#endif -diff --git a/kernel/power/tuxonice_power_off.c b/kernel/power/tuxonice_power_off.c -new file mode 100644 -index 0000000..07e39c0 ---- /dev/null -+++ b/kernel/power/tuxonice_power_off.c -@@ -0,0 +1,285 @@ -+/* -+ * kernel/power/tuxonice_power_off.c -+ * -+ * Copyright (C) 2006-2010 Nigel Cunningham (nigel at tuxonice net) -+ * -+ * This file is released under the GPLv2. -+ * -+ * Support for powering down. -+ */ -+ -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include "tuxonice.h" -+#include "tuxonice_ui.h" -+#include "tuxonice_power_off.h" -+#include "tuxonice_sysfs.h" -+#include "tuxonice_modules.h" -+#include "tuxonice_io.h" -+ -+unsigned long toi_poweroff_method; /* 0 - Kernel power off */ -+EXPORT_SYMBOL_GPL(toi_poweroff_method); -+ -+static int wake_delay; -+static char lid_state_file[256], wake_alarm_dir[256]; -+static struct file *lid_file, *alarm_file, *epoch_file; -+static int post_wake_state = -1; -+ -+static int did_suspend_to_both; -+ -+/* -+ * __toi_power_down -+ * Functionality : Powers down or reboots the computer once the image -+ * has been written to disk. -+ * Key Assumptions : Able to reboot/power down via code called or that -+ * the warning emitted if the calls fail will be visible -+ * to the user (ie printk resumes devices). -+ */ -+ -+static void __toi_power_down(int method) -+{ -+ int error; -+ -+ toi_cond_pause(1, test_action_state(TOI_REBOOT) ? "Ready to reboot." : -+ "Powering down."); -+ -+ if (test_result_state(TOI_ABORTED)) -+ goto out; -+ -+ if (test_action_state(TOI_REBOOT)) -+ kernel_restart(NULL); -+ -+ switch (method) { -+ case 0: -+ break; -+ case 3: -+ /* -+ * Re-read the overwritten part of pageset2 to make post-resume -+ * faster. -+ */ -+ if (read_pageset2(1)) -+ panic("Attempt to reload pagedir 2 failed. " -+ "Try rebooting."); -+ -+ pm_prepare_console(); -+ -+ error = pm_notifier_call_chain(PM_SUSPEND_PREPARE); -+ if (!error) { -+ error = suspend_devices_and_enter(PM_SUSPEND_MEM); -+ if (!error) -+ did_suspend_to_both = 1; -+ } -+ pm_notifier_call_chain(PM_POST_SUSPEND); -+ pm_restore_console(); -+ -+ /* Success - we're now post-resume-from-ram */ -+ if (did_suspend_to_both) -+ return; -+ -+ /* Failed to suspend to ram - do normal power off */ -+ break; -+ case 4: -+ /* -+ * If succeeds, doesn't return. If fails, do a simple -+ * powerdown. -+ */ -+ hibernation_platform_enter(); -+ break; -+ case 5: -+ /* Historic entry only now */ -+ break; -+ } -+ -+ if (method && method != 5) -+ toi_cond_pause(1, -+ "Falling back to alternate power off method."); -+ -+ if (test_result_state(TOI_ABORTED)) -+ goto out; -+ -+ kernel_power_off(); -+ kernel_halt(); -+ toi_cond_pause(1, "Powerdown failed."); -+ while (1) -+ cpu_relax(); -+ -+out: -+ if (read_pageset2(1)) -+ panic("Attempt to reload pagedir 2 failed. Try rebooting."); -+ return; -+} -+ -+#define CLOSE_FILE(file) \ -+ if (file) { \ -+ filp_close(file, NULL); file = NULL; \ -+ } -+ -+static void powerdown_cleanup(int toi_or_resume) -+{ -+ if (!toi_or_resume) -+ return; -+ -+ CLOSE_FILE(lid_file); -+ CLOSE_FILE(alarm_file); -+ CLOSE_FILE(epoch_file); -+} -+ -+static void open_file(char *format, char *arg, struct file **var, int mode, -+ char *desc) -+{ -+ char buf[256]; -+ -+ if (strlen(arg)) { -+ sprintf(buf, format, arg); -+ *var = filp_open(buf, mode, 0); -+ if (IS_ERR(*var) || !*var) { -+ printk(KERN_INFO "Failed to open %s file '%s' (%p).\n", -+ desc, buf, *var); -+ *var = NULL; -+ } -+ } -+} -+ -+static int powerdown_init(int toi_or_resume) -+{ -+ if (!toi_or_resume) -+ return 0; -+ -+ did_suspend_to_both = 0; -+ -+ open_file("/proc/acpi/button/%s/state", lid_state_file, &lid_file, -+ O_RDONLY, "lid"); -+ -+ if (strlen(wake_alarm_dir)) { -+ open_file("/sys/class/rtc/%s/wakealarm", wake_alarm_dir, -+ &alarm_file, O_WRONLY, "alarm"); -+ -+ open_file("/sys/class/rtc/%s/since_epoch", wake_alarm_dir, -+ &epoch_file, O_RDONLY, "epoch"); -+ } -+ -+ return 0; -+} -+ -+static int lid_closed(void) -+{ -+ char array[25]; -+ ssize_t size; -+ loff_t pos = 0; -+ -+ if (!lid_file) -+ return 0; -+ -+ size = vfs_read(lid_file, (char __user *) array, 25, &pos); -+ if ((int) size < 1) { -+ printk(KERN_INFO "Failed to read lid state file (%d).\n", -+ (int) size); -+ return 0; -+ } -+ -+ if (!strcmp(array, "state: closed\n")) -+ return 1; -+ -+ return 0; -+} -+ -+static void write_alarm_file(int value) -+{ -+ ssize_t size; -+ char buf[40]; -+ loff_t pos = 0; -+ -+ if (!alarm_file) -+ return; -+ -+ sprintf(buf, "%d\n", value); -+ -+ size = vfs_write(alarm_file, (char __user *)buf, strlen(buf), &pos); -+ -+ if (size < 0) -+ printk(KERN_INFO "Error %d writing alarm value %s.\n", -+ (int) size, buf); -+} -+ -+/** -+ * toi_check_resleep: See whether to powerdown again after waking. -+ * -+ * After waking, check whether we should powerdown again in a (usually -+ * different) way. We only do this if the lid switch is still closed. -+ */ -+void toi_check_resleep(void) -+{ -+ /* We only return if we suspended to ram and woke. */ -+ if (lid_closed() && post_wake_state >= 0) -+ __toi_power_down(post_wake_state); -+} -+ -+void toi_power_down(void) -+{ -+ if (alarm_file && wake_delay) { -+ char array[25]; -+ loff_t pos = 0; -+ size_t size = vfs_read(epoch_file, (char __user *) array, 25, -+ &pos); -+ -+ if (((int) size) < 1) -+ printk(KERN_INFO "Failed to read epoch file (%d).\n", -+ (int) size); -+ else { -+ unsigned long since_epoch; -+ if (!strict_strtoul(array, 0, &since_epoch)) { -+ /* Clear any wakeup time. */ -+ write_alarm_file(0); -+ -+ /* Set new wakeup time. */ -+ write_alarm_file(since_epoch + wake_delay); -+ } -+ } -+ } -+ -+ __toi_power_down(toi_poweroff_method); -+ -+ toi_check_resleep(); -+} -+EXPORT_SYMBOL_GPL(toi_power_down); -+ -+static struct toi_sysfs_data sysfs_params[] = { -+#if defined(CONFIG_ACPI) -+ SYSFS_STRING("lid_file", SYSFS_RW, lid_state_file, 256, 0, NULL), -+ SYSFS_INT("wake_delay", SYSFS_RW, &wake_delay, 0, INT_MAX, 0, NULL), -+ SYSFS_STRING("wake_alarm_dir", SYSFS_RW, wake_alarm_dir, 256, 0, NULL), -+ SYSFS_INT("post_wake_state", SYSFS_RW, &post_wake_state, -1, 5, 0, -+ NULL), -+ SYSFS_UL("powerdown_method", SYSFS_RW, &toi_poweroff_method, 0, 5, 0), -+ SYSFS_INT("did_suspend_to_both", SYSFS_READONLY, &did_suspend_to_both, -+ 0, 0, 0, NULL) -+#endif -+}; -+ -+static struct toi_module_ops powerdown_ops = { -+ .type = MISC_HIDDEN_MODULE, -+ .name = "poweroff", -+ .initialise = powerdown_init, -+ .cleanup = powerdown_cleanup, -+ .directory = "[ROOT]", -+ .module = THIS_MODULE, -+ .sysfs_data = sysfs_params, -+ .num_sysfs_entries = sizeof(sysfs_params) / -+ sizeof(struct toi_sysfs_data), -+}; -+ -+int toi_poweroff_init(void) -+{ -+ return toi_register_module(&powerdown_ops); -+} -+ -+void toi_poweroff_exit(void) -+{ -+ toi_unregister_module(&powerdown_ops); -+} -diff --git a/kernel/power/tuxonice_power_off.h b/kernel/power/tuxonice_power_off.h -new file mode 100644 -index 0000000..9aa0ea8 ---- /dev/null -+++ b/kernel/power/tuxonice_power_off.h -@@ -0,0 +1,24 @@ -+/* -+ * kernel/power/tuxonice_power_off.h -+ * -+ * Copyright (C) 2006-2010 Nigel Cunningham (nigel at tuxonice net) -+ * -+ * This file is released under the GPLv2. -+ * -+ * Support for the powering down. -+ */ -+ -+int toi_pm_state_finish(void); -+void toi_power_down(void); -+extern unsigned long toi_poweroff_method; -+int toi_poweroff_init(void); -+void toi_poweroff_exit(void); -+void toi_check_resleep(void); -+ -+extern int platform_begin(int platform_mode); -+extern int platform_pre_snapshot(int platform_mode); -+extern void platform_leave(int platform_mode); -+extern void platform_end(int platform_mode); -+extern void platform_finish(int platform_mode); -+extern int platform_pre_restore(int platform_mode); -+extern void platform_restore_cleanup(int platform_mode); -diff --git a/kernel/power/tuxonice_prepare_image.c b/kernel/power/tuxonice_prepare_image.c -new file mode 100644 -index 0000000..e58225e ---- /dev/null -+++ b/kernel/power/tuxonice_prepare_image.c -@@ -0,0 +1,1093 @@ -+/* -+ * kernel/power/tuxonice_prepare_image.c -+ * -+ * Copyright (C) 2003-2010 Nigel Cunningham (nigel at tuxonice net) -+ * -+ * This file is released under the GPLv2. -+ * -+ * We need to eat memory until we can: -+ * 1. Perform the save without changing anything (RAM_NEEDED < #pages) -+ * 2. Fit it all in available space (toiActiveAllocator->available_space() >= -+ * main_storage_needed()) -+ * 3. Reload the pagedir and pageset1 to places that don't collide with their -+ * final destinations, not knowing to what extent the resumed kernel will -+ * overlap with the one loaded at boot time. I think the resumed kernel -+ * should overlap completely, but I don't want to rely on this as it is -+ * an unproven assumption. We therefore assume there will be no overlap at -+ * all (worse case). -+ * 4. Meet the user's requested limit (if any) on the size of the image. -+ * The limit is in MB, so pages/256 (assuming 4K pages). -+ * -+ */ -+ -+#include -+#include -+#include -+#include -+#include -+ -+#include "tuxonice_pageflags.h" -+#include "tuxonice_modules.h" -+#include "tuxonice_io.h" -+#include "tuxonice_ui.h" -+#include "tuxonice_prepare_image.h" -+#include "tuxonice.h" -+#include "tuxonice_extent.h" -+#include "tuxonice_checksum.h" -+#include "tuxonice_sysfs.h" -+#include "tuxonice_alloc.h" -+#include "tuxonice_atomic_copy.h" -+ -+static unsigned long num_nosave, main_storage_allocated, storage_limit, -+ header_storage_needed; -+unsigned long extra_pd1_pages_allowance = -+ CONFIG_TOI_DEFAULT_EXTRA_PAGES_ALLOWANCE; -+long image_size_limit; -+static int no_ps2_needed; -+ -+struct attention_list { -+ struct task_struct *task; -+ struct attention_list *next; -+}; -+ -+static struct attention_list *attention_list; -+ -+#define PAGESET1 0 -+#define PAGESET2 1 -+ -+void free_attention_list(void) -+{ -+ struct attention_list *last = NULL; -+ -+ while (attention_list) { -+ last = attention_list; -+ attention_list = attention_list->next; -+ toi_kfree(6, last, sizeof(*last)); -+ } -+} -+ -+static int build_attention_list(void) -+{ -+ int i, task_count = 0; -+ struct task_struct *p; -+ struct attention_list *next; -+ -+ /* -+ * Count all userspace process (with task->mm) marked PF_NOFREEZE. -+ */ -+ read_lock(&tasklist_lock); -+ for_each_process(p) -+ if ((p->flags & PF_NOFREEZE) || p == current) -+ task_count++; -+ read_unlock(&tasklist_lock); -+ -+ /* -+ * Allocate attention list structs. -+ */ -+ for (i = 0; i < task_count; i++) { -+ struct attention_list *this = -+ toi_kzalloc(6, sizeof(struct attention_list), -+ TOI_WAIT_GFP); -+ if (!this) { -+ printk(KERN_INFO "Failed to allocate slab for " -+ "attention list.\n"); -+ free_attention_list(); -+ return 1; -+ } -+ this->next = NULL; -+ if (attention_list) -+ this->next = attention_list; -+ attention_list = this; -+ } -+ -+ next = attention_list; -+ read_lock(&tasklist_lock); -+ for_each_process(p) -+ if ((p->flags & PF_NOFREEZE) || p == current) { -+ next->task = p; -+ next = next->next; -+ } -+ read_unlock(&tasklist_lock); -+ return 0; -+} -+ -+static void pageset2_full(void) -+{ -+ struct zone *zone; -+ struct page *page; -+ unsigned long flags; -+ int i; -+ -+ for_each_populated_zone(zone) { -+ spin_lock_irqsave(&zone->lru_lock, flags); -+ for_each_lru(i) { -+ if (!zone_page_state(zone, NR_LRU_BASE + i)) -+ continue; -+ -+ list_for_each_entry(page, &zone->lru[i].list, lru) { -+ struct address_space *mapping; -+ -+ mapping = page_mapping(page); -+ if (!mapping || !mapping->host || -+ !(mapping->host->i_flags & S_ATOMIC_COPY)) -+ SetPagePageset2(page); -+ } -+ } -+ spin_unlock_irqrestore(&zone->lru_lock, flags); -+ } -+} -+ -+/* -+ * toi_mark_task_as_pageset -+ * Functionality : Marks all the saveable pages belonging to a given process -+ * as belonging to a particular pageset. -+ */ -+ -+static void toi_mark_task_as_pageset(struct task_struct *t, int pageset2) -+{ -+ struct vm_area_struct *vma; -+ struct mm_struct *mm; -+ -+ mm = t->active_mm; -+ -+ if (!mm || !mm->mmap) -+ return; -+ -+ if (!irqs_disabled()) -+ down_read(&mm->mmap_sem); -+ -+ for (vma = mm->mmap; vma; vma = vma->vm_next) { -+ unsigned long posn; -+ -+ if (!vma->vm_start || -+ vma->vm_flags & (VM_IO | VM_RESERVED | VM_PFNMAP)) -+ continue; -+ -+ for (posn = vma->vm_start; posn < vma->vm_end; -+ posn += PAGE_SIZE) { -+ struct page *page = follow_page(vma, posn, 0); -+ struct address_space *mapping; -+ -+ if (!page || !pfn_valid(page_to_pfn(page))) -+ continue; -+ -+ mapping = page_mapping(page); -+ if (mapping && mapping->host && -+ mapping->host->i_flags & S_ATOMIC_COPY) -+ continue; -+ -+ if (pageset2) -+ SetPagePageset2(page); -+ else { -+ ClearPagePageset2(page); -+ SetPagePageset1(page); -+ } -+ } -+ } -+ -+ if (!irqs_disabled()) -+ up_read(&mm->mmap_sem); -+} -+ -+static void mark_tasks(int pageset) -+{ -+ struct task_struct *p; -+ -+ read_lock(&tasklist_lock); -+ for_each_process(p) { -+ if (!p->mm) -+ continue; -+ -+ if (p->flags & PF_KTHREAD) -+ continue; -+ -+ toi_mark_task_as_pageset(p, pageset); -+ } -+ read_unlock(&tasklist_lock); -+ -+} -+ -+/* mark_pages_for_pageset2 -+ * -+ * Description: Mark unshared pages in processes not needed for hibernate as -+ * being able to be written out in a separate pagedir. -+ * HighMem pages are simply marked as pageset2. They won't be -+ * needed during hibernate. -+ */ -+ -+static void toi_mark_pages_for_pageset2(void) -+{ -+ struct attention_list *this = attention_list; -+ -+ memory_bm_clear(pageset2_map); -+ -+ if (test_action_state(TOI_NO_PAGESET2) || no_ps2_needed) -+ return; -+ -+ if (test_action_state(TOI_PAGESET2_FULL)) -+ pageset2_full(); -+ else -+ mark_tasks(PAGESET2); -+ -+ /* -+ * Because the tasks in attention_list are ones related to hibernating, -+ * we know that they won't go away under us. -+ */ -+ -+ while (this) { -+ if (!test_result_state(TOI_ABORTED)) -+ toi_mark_task_as_pageset(this->task, PAGESET1); -+ this = this->next; -+ } -+} -+ -+/* -+ * The atomic copy of pageset1 is stored in pageset2 pages. -+ * But if pageset1 is larger (normally only just after boot), -+ * we need to allocate extra pages to store the atomic copy. -+ * The following data struct and functions are used to handle -+ * the allocation and freeing of that memory. -+ */ -+ -+static unsigned long extra_pages_allocated; -+ -+struct extras { -+ struct page *page; -+ int order; -+ struct extras *next; -+}; -+ -+static struct extras *extras_list; -+ -+/* toi_free_extra_pagedir_memory -+ * -+ * Description: Free previously allocated extra pagedir memory. -+ */ -+void toi_free_extra_pagedir_memory(void) -+{ -+ /* Free allocated pages */ -+ while (extras_list) { -+ struct extras *this = extras_list; -+ int i; -+ -+ extras_list = this->next; -+ -+ for (i = 0; i < (1 << this->order); i++) -+ ClearPageNosave(this->page + i); -+ -+ toi_free_pages(9, this->page, this->order); -+ toi_kfree(7, this, sizeof(*this)); -+ } -+ -+ extra_pages_allocated = 0; -+} -+ -+/* toi_allocate_extra_pagedir_memory -+ * -+ * Description: Allocate memory for making the atomic copy of pagedir1 in the -+ * case where it is bigger than pagedir2. -+ * Arguments: int num_to_alloc: Number of extra pages needed. -+ * Result: int. Number of extra pages we now have allocated. -+ */ -+static int toi_allocate_extra_pagedir_memory(int extra_pages_needed) -+{ -+ int j, order, num_to_alloc = extra_pages_needed - extra_pages_allocated; -+ gfp_t flags = TOI_ATOMIC_GFP; -+ -+ if (num_to_alloc < 1) -+ return 0; -+ -+ order = fls(num_to_alloc); -+ if (order >= MAX_ORDER) -+ order = MAX_ORDER - 1; -+ -+ while (num_to_alloc) { -+ struct page *newpage; -+ unsigned long virt; -+ struct extras *extras_entry; -+ -+ while ((1 << order) > num_to_alloc) -+ order--; -+ -+ extras_entry = (struct extras *) toi_kzalloc(7, -+ sizeof(struct extras), TOI_ATOMIC_GFP); -+ -+ if (!extras_entry) -+ return extra_pages_allocated; -+ -+ virt = toi_get_free_pages(9, flags, order); -+ while (!virt && order) { -+ order--; -+ virt = toi_get_free_pages(9, flags, order); -+ } -+ -+ if (!virt) { -+ toi_kfree(7, extras_entry, sizeof(*extras_entry)); -+ return extra_pages_allocated; -+ } -+ -+ newpage = virt_to_page(virt); -+ -+ extras_entry->page = newpage; -+ extras_entry->order = order; -+ extras_entry->next = NULL; -+ -+ if (extras_list) -+ extras_entry->next = extras_list; -+ -+ extras_list = extras_entry; -+ -+ for (j = 0; j < (1 << order); j++) { -+ SetPageNosave(newpage + j); -+ SetPagePageset1Copy(newpage + j); -+ } -+ -+ extra_pages_allocated += (1 << order); -+ num_to_alloc -= (1 << order); -+ } -+ -+ return extra_pages_allocated; -+} -+ -+/* -+ * real_nr_free_pages: Count pcp pages for a zone type or all zones -+ * (-1 for all, otherwise zone_idx() result desired). -+ */ -+unsigned long real_nr_free_pages(unsigned long zone_idx_mask) -+{ -+ struct zone *zone; -+ int result = 0, cpu; -+ -+ /* PCP lists */ -+ for_each_populated_zone(zone) { -+ if (!(zone_idx_mask & (1 << zone_idx(zone)))) -+ continue; -+ -+ for_each_online_cpu(cpu) { -+ struct per_cpu_pageset *pset = zone_pcp(zone, cpu); -+ struct per_cpu_pages *pcp = &pset->pcp; -+ result += pcp->count; -+ } -+ -+ result += zone_page_state(zone, NR_FREE_PAGES); -+ } -+ return result; -+} -+EXPORT_SYMBOL_GPL(real_nr_free_pages); -+ -+/* -+ * Discover how much extra memory will be required by the drivers -+ * when they're asked to hibernate. We can then ensure that amount -+ * of memory is available when we really want it. -+ */ -+static void get_extra_pd1_allowance(void) -+{ -+ unsigned long orig_num_free = real_nr_free_pages(all_zones_mask), final; -+ -+ toi_prepare_status(CLEAR_BAR, "Finding allowance for drivers."); -+ -+ if (toi_go_atomic(PMSG_FREEZE, 1)) -+ return; -+ -+ final = real_nr_free_pages(all_zones_mask); -+ toi_end_atomic(ATOMIC_ALL_STEPS, 1, 0); -+ -+ extra_pd1_pages_allowance = (orig_num_free > final) ? -+ orig_num_free - final + MIN_EXTRA_PAGES_ALLOWANCE : -+ MIN_EXTRA_PAGES_ALLOWANCE; -+} -+ -+/* -+ * Amount of storage needed, possibly taking into account the -+ * expected compression ratio and possibly also ignoring our -+ * allowance for extra pages. -+ */ -+static unsigned long main_storage_needed(int use_ecr, -+ int ignore_extra_pd1_allow) -+{ -+ return (pagedir1.size + pagedir2.size + -+ (ignore_extra_pd1_allow ? 0 : extra_pd1_pages_allowance)) * -+ (use_ecr ? toi_expected_compression_ratio() : 100) / 100; -+} -+ -+/* -+ * Storage needed for the image header, in bytes until the return. -+ */ -+unsigned long get_header_storage_needed(void) -+{ -+ unsigned long bytes = sizeof(struct toi_header) + -+ toi_header_storage_for_modules() + -+ toi_pageflags_space_needed() + -+ fs_info_space_needed(); -+ -+ return DIV_ROUND_UP(bytes, PAGE_SIZE); -+} -+EXPORT_SYMBOL_GPL(get_header_storage_needed); -+ -+/* -+ * When freeing memory, pages from either pageset might be freed. -+ * -+ * When seeking to free memory to be able to hibernate, for every ps1 page -+ * freed, we need 2 less pages for the atomic copy because there is one less -+ * page to copy and one more page into which data can be copied. -+ * -+ * Freeing ps2 pages saves us nothing directly. No more memory is available -+ * for the atomic copy. Indirectly, a ps1 page might be freed (slab?), but -+ * that's too much work to figure out. -+ * -+ * => ps1_to_free functions -+ * -+ * Of course if we just want to reduce the image size, because of storage -+ * limitations or an image size limit either ps will do. -+ * -+ * => any_to_free function -+ */ -+ -+static unsigned long lowpages_usable_for_highmem_copy(void) -+{ -+ unsigned long needed = get_lowmem_size(pagedir1) + -+ extra_pd1_pages_allowance + MIN_FREE_RAM + -+ toi_memory_for_modules(0), -+ available = get_lowmem_size(pagedir2) + -+ real_nr_free_low_pages() + extra_pages_allocated; -+ -+ return available > needed ? available - needed : 0; -+} -+ -+static unsigned long highpages_ps1_to_free(void) -+{ -+ unsigned long need = get_highmem_size(pagedir1), -+ available = get_highmem_size(pagedir2) + -+ real_nr_free_high_pages() + -+ lowpages_usable_for_highmem_copy(); -+ -+ return need > available ? DIV_ROUND_UP(need - available, 2) : 0; -+} -+ -+static unsigned long lowpages_ps1_to_free(void) -+{ -+ unsigned long needed = get_lowmem_size(pagedir1) + -+ extra_pd1_pages_allowance + MIN_FREE_RAM + -+ toi_memory_for_modules(0), -+ available = get_lowmem_size(pagedir2) + -+ real_nr_free_low_pages() + extra_pages_allocated; -+ -+ return needed > available ? DIV_ROUND_UP(needed - available, 2) : 0; -+} -+ -+static unsigned long current_image_size(void) -+{ -+ return pagedir1.size + pagedir2.size + header_storage_needed; -+} -+ -+static unsigned long storage_still_required(void) -+{ -+ unsigned long needed = main_storage_needed(1, 1); -+ return needed > storage_limit ? needed - storage_limit : 0; -+} -+ -+static unsigned long ram_still_required(void) -+{ -+ unsigned long needed = MIN_FREE_RAM + toi_memory_for_modules(0) + -+ 2 * extra_pd1_pages_allowance, -+ available = real_nr_free_low_pages(); -+ return needed > available ? needed - available : 0; -+} -+ -+static unsigned long any_to_free(int use_image_size_limit) -+{ -+ int use_soft_limit = use_image_size_limit && image_size_limit > 0; -+ unsigned long current_size = current_image_size(), -+ soft_limit = use_soft_limit ? (image_size_limit << 8) : 0, -+ to_free = use_soft_limit ? (current_size > soft_limit ? -+ current_size - soft_limit : 0) : 0, -+ storage_limit = storage_still_required(), -+ ram_limit = ram_still_required(), -+ first_max = max(to_free, storage_limit); -+ -+ return max(first_max, ram_limit); -+} -+ -+static int need_pageset2(void) -+{ -+ return (real_nr_free_low_pages() + extra_pages_allocated - -+ 2 * extra_pd1_pages_allowance - MIN_FREE_RAM - -+ toi_memory_for_modules(0) - pagedir1.size) < pagedir2.size; -+} -+ -+/* amount_needed -+ * -+ * Calculates the amount by which the image size needs to be reduced to meet -+ * our constraints. -+ */ -+static unsigned long amount_needed(int use_image_size_limit) -+{ -+ return max(highpages_ps1_to_free() + lowpages_ps1_to_free(), -+ any_to_free(use_image_size_limit)); -+} -+ -+static int image_not_ready(int use_image_size_limit) -+{ -+ toi_message(TOI_EAT_MEMORY, TOI_LOW, 1, -+ "Amount still needed (%lu) > 0:%u," -+ " Storage allocd: %lu < %lu: %u.\n", -+ amount_needed(use_image_size_limit), -+ (amount_needed(use_image_size_limit) > 0), -+ main_storage_allocated, -+ main_storage_needed(1, 1), -+ main_storage_allocated < main_storage_needed(1, 1)); -+ -+ toi_cond_pause(0, NULL); -+ -+ return (amount_needed(use_image_size_limit) > 0) || -+ main_storage_allocated < main_storage_needed(1, 1); -+} -+ -+static void display_failure_reason(int tries_exceeded) -+{ -+ unsigned long storage_required = storage_still_required(), -+ ram_required = ram_still_required(), -+ high_ps1 = highpages_ps1_to_free(), -+ low_ps1 = lowpages_ps1_to_free(); -+ -+ printk(KERN_INFO "Failed to prepare the image because...\n"); -+ -+ if (!storage_limit) { -+ printk(KERN_INFO "- You need some storage available to be " -+ "able to hibernate.\n"); -+ return; -+ } -+ -+ if (tries_exceeded) -+ printk(KERN_INFO "- The maximum number of iterations was " -+ "reached without successfully preparing the " -+ "image.\n"); -+ -+ if (storage_required) { -+ printk(KERN_INFO " - We need at least %lu pages of storage " -+ "(ignoring the header), but only have %lu.\n", -+ main_storage_needed(1, 1), -+ main_storage_allocated); -+ set_abort_result(TOI_INSUFFICIENT_STORAGE); -+ } -+ -+ if (ram_required) { -+ printk(KERN_INFO " - We need %lu more free pages of low " -+ "memory.\n", ram_required); -+ printk(KERN_INFO " Minimum free : %8d\n", MIN_FREE_RAM); -+ printk(KERN_INFO " + Reqd. by modules : %8lu\n", -+ toi_memory_for_modules(0)); -+ printk(KERN_INFO " + 2 * extra allow : %8lu\n", -+ 2 * extra_pd1_pages_allowance); -+ printk(KERN_INFO " - Currently free : %8lu\n", -+ real_nr_free_low_pages()); -+ printk(KERN_INFO " : ========\n"); -+ printk(KERN_INFO " Still needed : %8lu\n", -+ ram_required); -+ -+ /* Print breakdown of memory needed for modules */ -+ toi_memory_for_modules(1); -+ set_abort_result(TOI_UNABLE_TO_FREE_ENOUGH_MEMORY); -+ } -+ -+ if (high_ps1) { -+ printk(KERN_INFO "- We need to free %lu highmem pageset 1 " -+ "pages.\n", high_ps1); -+ set_abort_result(TOI_UNABLE_TO_FREE_ENOUGH_MEMORY); -+ } -+ -+ if (low_ps1) { -+ printk(KERN_INFO " - We need to free %ld lowmem pageset 1 " -+ "pages.\n", low_ps1); -+ set_abort_result(TOI_UNABLE_TO_FREE_ENOUGH_MEMORY); -+ } -+} -+ -+static void display_stats(int always, int sub_extra_pd1_allow) -+{ -+ char buffer[255]; -+ snprintf(buffer, 254, -+ "Free:%lu(%lu). Sets:%lu(%lu),%lu(%lu). " -+ "Nosave:%lu-%lu=%lu. Storage:%lu/%lu(%lu=>%lu). " -+ "Needed:%lu,%lu,%lu(%u,%lu,%lu,%ld) (PS2:%s)\n", -+ -+ /* Free */ -+ real_nr_free_pages(all_zones_mask), -+ real_nr_free_low_pages(), -+ -+ /* Sets */ -+ pagedir1.size, pagedir1.size - get_highmem_size(pagedir1), -+ pagedir2.size, pagedir2.size - get_highmem_size(pagedir2), -+ -+ /* Nosave */ -+ num_nosave, extra_pages_allocated, -+ num_nosave - extra_pages_allocated, -+ -+ /* Storage */ -+ main_storage_allocated, -+ storage_limit, -+ main_storage_needed(1, sub_extra_pd1_allow), -+ main_storage_needed(1, 1), -+ -+ /* Needed */ -+ lowpages_ps1_to_free(), highpages_ps1_to_free(), -+ any_to_free(1), -+ MIN_FREE_RAM, toi_memory_for_modules(0), -+ extra_pd1_pages_allowance, -+ image_size_limit, -+ -+ need_pageset2() ? "yes" : "no"); -+ -+ if (always) -+ printk("%s", buffer); -+ else -+ toi_message(TOI_EAT_MEMORY, TOI_MEDIUM, 1, buffer); -+} -+ -+/* generate_free_page_map -+ * -+ * Description: This routine generates a bitmap of free pages from the -+ * lists used by the memory manager. We then use the bitmap -+ * to quickly calculate which pages to save and in which -+ * pagesets. -+ */ -+static void generate_free_page_map(void) -+{ -+ int order, cpu, t; -+ unsigned long flags, i; -+ struct zone *zone; -+ struct list_head *curr; -+ unsigned long pfn; -+ struct page *page; -+ -+ for_each_populated_zone(zone) { -+ -+ if (!zone->spanned_pages) -+ continue; -+ -+ spin_lock_irqsave(&zone->lock, flags); -+ -+ for (i = 0; i < zone->spanned_pages; i++) { -+ pfn = ZONE_START(zone) + i; -+ -+ if (!pfn_valid(pfn)) -+ continue; -+ -+ page = pfn_to_page(pfn); -+ -+ ClearPageNosaveFree(page); -+ } -+ -+ for_each_migratetype_order(order, t) { -+ list_for_each(curr, -+ &zone->free_area[order].free_list[t]) { -+ unsigned long j; -+ -+ pfn = page_to_pfn(list_entry(curr, struct page, -+ lru)); -+ for (j = 0; j < (1UL << order); j++) -+ SetPageNosaveFree(pfn_to_page(pfn + j)); -+ } -+ } -+ -+ for_each_online_cpu(cpu) { -+ struct per_cpu_pageset *pset = zone_pcp(zone, cpu); -+ struct per_cpu_pages *pcp = &pset->pcp; -+ struct page *page; -+ int t; -+ -+ for (t = 0; t < MIGRATE_PCPTYPES; t++) -+ list_for_each_entry(page, &pcp->lists[t], lru) -+ SetPageNosaveFree(page); -+ } -+ -+ spin_unlock_irqrestore(&zone->lock, flags); -+ } -+} -+ -+/* size_of_free_region -+ * -+ * Description: Return the number of pages that are free, beginning with and -+ * including this one. -+ */ -+static int size_of_free_region(struct zone *zone, unsigned long start_pfn) -+{ -+ unsigned long this_pfn = start_pfn, -+ end_pfn = ZONE_START(zone) + zone->spanned_pages - 1; -+ -+ while (this_pfn <= end_pfn && PageNosaveFree(pfn_to_page(this_pfn))) -+ this_pfn++; -+ -+ return this_pfn - start_pfn; -+} -+ -+/* flag_image_pages -+ * -+ * This routine generates our lists of pages to be stored in each -+ * pageset. Since we store the data using extents, and adding new -+ * extents might allocate a new extent page, this routine may well -+ * be called more than once. -+ */ -+static void flag_image_pages(int atomic_copy) -+{ -+ int num_free = 0; -+ unsigned long loop; -+ struct zone *zone; -+ -+ pagedir1.size = 0; -+ pagedir2.size = 0; -+ -+ set_highmem_size(pagedir1, 0); -+ set_highmem_size(pagedir2, 0); -+ -+ num_nosave = 0; -+ -+ memory_bm_clear(pageset1_map); -+ -+ generate_free_page_map(); -+ -+ /* -+ * Pages not to be saved are marked Nosave irrespective of being -+ * reserved. -+ */ -+ for_each_populated_zone(zone) { -+ int highmem = is_highmem(zone); -+ -+ for (loop = 0; loop < zone->spanned_pages; loop++) { -+ unsigned long pfn = ZONE_START(zone) + loop; -+ struct page *page; -+ int chunk_size; -+ -+ if (!pfn_valid(pfn)) -+ continue; -+ -+ chunk_size = size_of_free_region(zone, pfn); -+ if (chunk_size) { -+ num_free += chunk_size; -+ loop += chunk_size - 1; -+ continue; -+ } -+ -+ page = pfn_to_page(pfn); -+ -+ if (PageNosave(page)) { -+ num_nosave++; -+ continue; -+ } -+ -+ page = highmem ? saveable_highmem_page(zone, pfn) : -+ saveable_page(zone, pfn); -+ -+ if (!page) { -+ num_nosave++; -+ continue; -+ } -+ -+ if (PagePageset2(page)) { -+ pagedir2.size++; -+ if (PageHighMem(page)) -+ inc_highmem_size(pagedir2); -+ else -+ SetPagePageset1Copy(page); -+ if (PageResave(page)) { -+ SetPagePageset1(page); -+ ClearPagePageset1Copy(page); -+ pagedir1.size++; -+ if (PageHighMem(page)) -+ inc_highmem_size(pagedir1); -+ } -+ } else { -+ pagedir1.size++; -+ SetPagePageset1(page); -+ if (PageHighMem(page)) -+ inc_highmem_size(pagedir1); -+ } -+ } -+ } -+ -+ if (!atomic_copy) -+ toi_message(TOI_EAT_MEMORY, TOI_MEDIUM, 0, -+ "Count data pages: Set1 (%d) + Set2 (%d) + Nosave (%ld)" -+ " + NumFree (%d) = %d.\n", -+ pagedir1.size, pagedir2.size, num_nosave, num_free, -+ pagedir1.size + pagedir2.size + num_nosave + num_free); -+} -+ -+void toi_recalculate_image_contents(int atomic_copy) -+{ -+ memory_bm_clear(pageset1_map); -+ if (!atomic_copy) { -+ unsigned long pfn; -+ memory_bm_position_reset(pageset2_map); -+ for (pfn = memory_bm_next_pfn(pageset2_map); -+ pfn != BM_END_OF_MAP; -+ pfn = memory_bm_next_pfn(pageset2_map)) -+ ClearPagePageset1Copy(pfn_to_page(pfn)); -+ /* Need to call this before getting pageset1_size! */ -+ toi_mark_pages_for_pageset2(); -+ } -+ flag_image_pages(atomic_copy); -+ -+ if (!atomic_copy) { -+ storage_limit = toiActiveAllocator->storage_available(); -+ display_stats(0, 0); -+ } -+} -+ -+/* update_image -+ * -+ * Allocate [more] memory and storage for the image. -+ */ -+static void update_image(int ps2_recalc) -+{ -+ int old_header_req; -+ unsigned long seek, wanted, got; -+ -+ /* Include allowance for growth in pagedir1 while writing pagedir 2 */ -+ wanted = pagedir1.size + extra_pd1_pages_allowance - -+ get_lowmem_size(pagedir2); -+ if (wanted > extra_pages_allocated) { -+ got = toi_allocate_extra_pagedir_memory(wanted); -+ if (wanted < got) { -+ toi_message(TOI_EAT_MEMORY, TOI_LOW, 1, -+ "Want %d extra pages for pageset1, got %d.\n", -+ wanted, got); -+ return; -+ } -+ } -+ -+ if (ps2_recalc) -+ goto recalc; -+ -+ thaw_kernel_threads(); -+ -+ /* -+ * Allocate remaining storage space, if possible, up to the -+ * maximum we know we'll need. It's okay to allocate the -+ * maximum if the writer is the swapwriter, but -+ * we don't want to grab all available space on an NFS share. -+ * We therefore ignore the expected compression ratio here, -+ * thereby trying to allocate the maximum image size we could -+ * need (assuming compression doesn't expand the image), but -+ * don't complain if we can't get the full amount we're after. -+ */ -+ -+ do { -+ int result; -+ -+ old_header_req = header_storage_needed; -+ toiActiveAllocator->reserve_header_space(header_storage_needed); -+ -+ /* How much storage is free with the reservation applied? */ -+ storage_limit = toiActiveAllocator->storage_available(); -+ seek = min(storage_limit, main_storage_needed(0, 0)); -+ -+ result = toiActiveAllocator->allocate_storage(seek); -+ if (result) -+ printk("Failed to allocate storage (%d).\n", result); -+ -+ main_storage_allocated = -+ toiActiveAllocator->storage_allocated(); -+ -+ /* Need more header because more storage allocated? */ -+ header_storage_needed = get_header_storage_needed(); -+ -+ } while (header_storage_needed > old_header_req); -+ -+ if (freeze_processes()) -+ set_abort_result(TOI_FREEZING_FAILED); -+ -+recalc: -+ toi_recalculate_image_contents(0); -+} -+ -+/* attempt_to_freeze -+ * -+ * Try to freeze processes. -+ */ -+ -+static int attempt_to_freeze(void) -+{ -+ int result; -+ -+ /* Stop processes before checking again */ -+ thaw_processes(); -+ toi_prepare_status(CLEAR_BAR, "Freezing processes & syncing " -+ "filesystems."); -+ result = freeze_processes(); -+ -+ if (result) -+ set_abort_result(TOI_FREEZING_FAILED); -+ -+ return result; -+} -+ -+/* eat_memory -+ * -+ * Try to free some memory, either to meet hard or soft constraints on the image -+ * characteristics. -+ * -+ * Hard constraints: -+ * - Pageset1 must be < half of memory; -+ * - We must have enough memory free at resume time to have pageset1 -+ * be able to be loaded in pages that don't conflict with where it has to -+ * be restored. -+ * Soft constraints -+ * - User specificied image size limit. -+ */ -+static void eat_memory(void) -+{ -+ unsigned long amount_wanted = 0; -+ int did_eat_memory = 0; -+ -+ /* -+ * Note that if we have enough storage space and enough free memory, we -+ * may exit without eating anything. We give up when the last 10 -+ * iterations ate no extra pages because we're not going to get much -+ * more anyway, but the few pages we get will take a lot of time. -+ * -+ * We freeze processes before beginning, and then unfreeze them if we -+ * need to eat memory until we think we have enough. If our attempts -+ * to freeze fail, we give up and abort. -+ */ -+ -+ amount_wanted = amount_needed(1); -+ -+ switch (image_size_limit) { -+ case -1: /* Don't eat any memory */ -+ if (amount_wanted > 0) { -+ set_abort_result(TOI_WOULD_EAT_MEMORY); -+ return; -+ } -+ break; -+ case -2: /* Free caches only */ -+ drop_pagecache(); -+ toi_recalculate_image_contents(0); -+ amount_wanted = amount_needed(1); -+ break; -+ default: -+ break; -+ } -+ -+ if (amount_wanted > 0 && !test_result_state(TOI_ABORTED) && -+ image_size_limit != -1) { -+ unsigned long request = amount_wanted + 50; -+ -+ toi_prepare_status(CLEAR_BAR, -+ "Seeking to free %ldMB of memory.", -+ MB(amount_wanted)); -+ -+ thaw_kernel_threads(); -+ -+ /* -+ * Ask for too many because shrink_all_memory doesn't -+ * currently return enough most of the time. -+ */ -+ shrink_all_memory(request); -+ -+ did_eat_memory = 1; -+ -+ toi_recalculate_image_contents(0); -+ -+ amount_wanted = amount_needed(1); -+ -+ printk(KERN_DEBUG "Asked shrink_all_memory for %ld pages," -+ "got %ld.\n", request, -+ request - amount_wanted); -+ -+ toi_cond_pause(0, NULL); -+ -+ if (freeze_processes()) -+ set_abort_result(TOI_FREEZING_FAILED); -+ } -+ -+ if (did_eat_memory) -+ toi_recalculate_image_contents(0); -+} -+ -+/* toi_prepare_image -+ * -+ * Entry point to the whole image preparation section. -+ * -+ * We do four things: -+ * - Freeze processes; -+ * - Ensure image size constraints are met; -+ * - Complete all the preparation for saving the image, -+ * including allocation of storage. The only memory -+ * that should be needed when we're finished is that -+ * for actually storing the image (and we know how -+ * much is needed for that because the modules tell -+ * us). -+ * - Make sure that all dirty buffers are written out. -+ */ -+#define MAX_TRIES 2 -+int toi_prepare_image(void) -+{ -+ int result = 1, tries = 1; -+ -+ main_storage_allocated = 0; -+ no_ps2_needed = 0; -+ -+ if (attempt_to_freeze()) -+ return 1; -+ -+ if (!extra_pd1_pages_allowance) -+ get_extra_pd1_allowance(); -+ -+ storage_limit = toiActiveAllocator->storage_available(); -+ -+ if (!storage_limit) { -+ printk(KERN_INFO "No storage available. Didn't try to prepare " -+ "an image.\n"); -+ display_failure_reason(0); -+ set_abort_result(TOI_NOSTORAGE_AVAILABLE); -+ return 1; -+ } -+ -+ if (build_attention_list()) { -+ abort_hibernate(TOI_UNABLE_TO_PREPARE_IMAGE, -+ "Unable to successfully prepare the image.\n"); -+ return 1; -+ } -+ -+ toi_recalculate_image_contents(0); -+ -+ do { -+ toi_prepare_status(CLEAR_BAR, -+ "Preparing Image. Try %d.", tries); -+ -+ eat_memory(); -+ -+ if (test_result_state(TOI_ABORTED)) -+ break; -+ -+ update_image(0); -+ -+ tries++; -+ -+ } while (image_not_ready(1) && tries <= MAX_TRIES && -+ !test_result_state(TOI_ABORTED)); -+ -+ result = image_not_ready(0); -+ -+ if (!test_result_state(TOI_ABORTED)) { -+ if (result) { -+ display_stats(1, 0); -+ display_failure_reason(tries > MAX_TRIES); -+ abort_hibernate(TOI_UNABLE_TO_PREPARE_IMAGE, -+ "Unable to successfully prepare the image.\n"); -+ } else { -+ /* Pageset 2 needed? */ -+ if (!need_pageset2() && -+ test_action_state(TOI_NO_PS2_IF_UNNEEDED)) { -+ no_ps2_needed = 1; -+ toi_recalculate_image_contents(0); -+ update_image(1); -+ } -+ -+ toi_cond_pause(1, "Image preparation complete."); -+ } -+ } -+ -+ return result ? result : allocate_checksum_pages(); -+} -diff --git a/kernel/power/tuxonice_prepare_image.h b/kernel/power/tuxonice_prepare_image.h -new file mode 100644 -index 0000000..7b52e9e ---- /dev/null -+++ b/kernel/power/tuxonice_prepare_image.h -@@ -0,0 +1,36 @@ -+/* -+ * kernel/power/tuxonice_prepare_image.h -+ * -+ * Copyright (C) 2003-2010 Nigel Cunningham (nigel at tuxonice net) -+ * -+ * This file is released under the GPLv2. -+ * -+ */ -+ -+#include -+ -+extern int toi_prepare_image(void); -+extern void toi_recalculate_image_contents(int storage_available); -+extern unsigned long real_nr_free_pages(unsigned long zone_idx_mask); -+extern long image_size_limit; -+extern void toi_free_extra_pagedir_memory(void); -+extern unsigned long extra_pd1_pages_allowance; -+extern void free_attention_list(void); -+ -+#define MIN_FREE_RAM 100 -+#define MIN_EXTRA_PAGES_ALLOWANCE 500 -+ -+#define all_zones_mask ((unsigned long) ((1 << MAX_NR_ZONES) - 1)) -+#ifdef CONFIG_HIGHMEM -+#define real_nr_free_high_pages() (real_nr_free_pages(1 << ZONE_HIGHMEM)) -+#define real_nr_free_low_pages() (real_nr_free_pages(all_zones_mask - \ -+ (1 << ZONE_HIGHMEM))) -+#else -+#define real_nr_free_high_pages() (0) -+#define real_nr_free_low_pages() (real_nr_free_pages(all_zones_mask)) -+ -+/* For eat_memory function */ -+#define ZONE_HIGHMEM (MAX_NR_ZONES + 1) -+#endif -+ -+unsigned long get_header_storage_needed(void); -diff --git a/kernel/power/tuxonice_storage.c b/kernel/power/tuxonice_storage.c -new file mode 100644 -index 0000000..be962ee ---- /dev/null -+++ b/kernel/power/tuxonice_storage.c -@@ -0,0 +1,282 @@ -+/* -+ * kernel/power/tuxonice_storage.c -+ * -+ * Copyright (C) 2005-2010 Nigel Cunningham (nigel at tuxonice net) -+ * -+ * This file is released under the GPLv2. -+ * -+ * Routines for talking to a userspace program that manages storage. -+ * -+ * The kernel side: -+ * - starts the userspace program; -+ * - sends messages telling it when to open and close the connection; -+ * - tells it when to quit; -+ * -+ * The user space side: -+ * - passes messages regarding status; -+ * -+ */ -+ -+#include -+#include -+ -+#include "tuxonice_sysfs.h" -+#include "tuxonice_modules.h" -+#include "tuxonice_netlink.h" -+#include "tuxonice_storage.h" -+#include "tuxonice_ui.h" -+ -+static struct user_helper_data usm_helper_data; -+static struct toi_module_ops usm_ops; -+static int message_received, usm_prepare_count; -+static int storage_manager_last_action, storage_manager_action; -+ -+static int usm_user_rcv_msg(struct sk_buff *skb, struct nlmsghdr *nlh) -+{ -+ int type; -+ int *data; -+ -+ type = nlh->nlmsg_type; -+ -+ /* A control message: ignore them */ -+ if (type < NETLINK_MSG_BASE) -+ return 0; -+ -+ /* Unknown message: reply with EINVAL */ -+ if (type >= USM_MSG_MAX) -+ return -EINVAL; -+ -+ /* All operations require privileges, even GET */ -+ if (security_netlink_recv(skb, CAP_NET_ADMIN)) -+ return -EPERM; -+ -+ /* Only allow one task to receive NOFREEZE privileges */ -+ if (type == NETLINK_MSG_NOFREEZE_ME && usm_helper_data.pid != -1) -+ return -EBUSY; -+ -+ data = (int *) NLMSG_DATA(nlh); -+ -+ switch (type) { -+ case USM_MSG_SUCCESS: -+ case USM_MSG_FAILED: -+ message_received = type; -+ complete(&usm_helper_data.wait_for_process); -+ break; -+ default: -+ printk(KERN_INFO "Storage manager doesn't recognise " -+ "message %d.\n", type); -+ } -+ -+ return 1; -+} -+ -+#ifdef CONFIG_NET -+static int activations; -+ -+int toi_activate_storage(int force) -+{ -+ int tries = 1; -+ -+ if (usm_helper_data.pid == -1 || !usm_ops.enabled) -+ return 0; -+ -+ message_received = 0; -+ activations++; -+ -+ if (activations > 1 && !force) -+ return 0; -+ -+ while ((!message_received || message_received == USM_MSG_FAILED) && -+ tries < 2) { -+ toi_prepare_status(DONT_CLEAR_BAR, "Activate storage attempt " -+ "%d.\n", tries); -+ -+ init_completion(&usm_helper_data.wait_for_process); -+ -+ toi_send_netlink_message(&usm_helper_data, -+ USM_MSG_CONNECT, -+ NULL, 0); -+ -+ /* Wait 2 seconds for the userspace process to make contact */ -+ wait_for_completion_timeout(&usm_helper_data.wait_for_process, -+ 2*HZ); -+ -+ tries++; -+ } -+ -+ return 0; -+} -+ -+int toi_deactivate_storage(int force) -+{ -+ if (usm_helper_data.pid == -1 || !usm_ops.enabled) -+ return 0; -+ -+ message_received = 0; -+ activations--; -+ -+ if (activations && !force) -+ return 0; -+ -+ init_completion(&usm_helper_data.wait_for_process); -+ -+ toi_send_netlink_message(&usm_helper_data, -+ USM_MSG_DISCONNECT, -+ NULL, 0); -+ -+ wait_for_completion_timeout(&usm_helper_data.wait_for_process, 2*HZ); -+ -+ if (!message_received || message_received == USM_MSG_FAILED) { -+ printk(KERN_INFO "Returning failure disconnecting storage.\n"); -+ return 1; -+ } -+ -+ return 0; -+} -+#endif -+ -+static void storage_manager_simulate(void) -+{ -+ printk(KERN_INFO "--- Storage manager simulate ---\n"); -+ toi_prepare_usm(); -+ schedule(); -+ printk(KERN_INFO "--- Activate storage 1 ---\n"); -+ toi_activate_storage(1); -+ schedule(); -+ printk(KERN_INFO "--- Deactivate storage 1 ---\n"); -+ toi_deactivate_storage(1); -+ schedule(); -+ printk(KERN_INFO "--- Cleanup usm ---\n"); -+ toi_cleanup_usm(); -+ schedule(); -+ printk(KERN_INFO "--- Storage manager simulate ends ---\n"); -+} -+ -+static int usm_storage_needed(void) -+{ -+ return strlen(usm_helper_data.program); -+} -+ -+static int usm_save_config_info(char *buf) -+{ -+ int len = strlen(usm_helper_data.program); -+ memcpy(buf, usm_helper_data.program, len); -+ return len; -+} -+ -+static void usm_load_config_info(char *buf, int size) -+{ -+ /* Don't load the saved path if one has already been set */ -+ if (usm_helper_data.program[0]) -+ return; -+ -+ memcpy(usm_helper_data.program, buf, size); -+} -+ -+static int usm_memory_needed(void) -+{ -+ /* ball park figure of 32 pages */ -+ return 32 * PAGE_SIZE; -+} -+ -+/* toi_prepare_usm -+ */ -+int toi_prepare_usm(void) -+{ -+ usm_prepare_count++; -+ -+ if (usm_prepare_count > 1 || !usm_ops.enabled) -+ return 0; -+ -+ usm_helper_data.pid = -1; -+ -+ if (!*usm_helper_data.program) -+ return 0; -+ -+ toi_netlink_setup(&usm_helper_data); -+ -+ if (usm_helper_data.pid == -1) -+ printk(KERN_INFO "TuxOnIce Storage Manager wanted, but couldn't" -+ " start it.\n"); -+ -+ toi_activate_storage(0); -+ -+ return usm_helper_data.pid != -1; -+} -+ -+void toi_cleanup_usm(void) -+{ -+ usm_prepare_count--; -+ -+ if (usm_helper_data.pid > -1 && !usm_prepare_count) { -+ toi_deactivate_storage(0); -+ toi_netlink_close(&usm_helper_data); -+ } -+} -+ -+static void storage_manager_activate(void) -+{ -+ if (storage_manager_action == storage_manager_last_action) -+ return; -+ -+ if (storage_manager_action) -+ toi_prepare_usm(); -+ else -+ toi_cleanup_usm(); -+ -+ storage_manager_last_action = storage_manager_action; -+} -+ -+/* -+ * User interface specific /sys/power/tuxonice entries. -+ */ -+ -+static struct toi_sysfs_data sysfs_params[] = { -+ SYSFS_NONE("simulate_atomic_copy", storage_manager_simulate), -+ SYSFS_INT("enabled", SYSFS_RW, &usm_ops.enabled, 0, 1, 0, NULL), -+ SYSFS_STRING("program", SYSFS_RW, usm_helper_data.program, 254, 0, -+ NULL), -+ SYSFS_INT("activate_storage", SYSFS_RW , &storage_manager_action, 0, 1, -+ 0, storage_manager_activate) -+}; -+ -+static struct toi_module_ops usm_ops = { -+ .type = MISC_MODULE, -+ .name = "usm", -+ .directory = "storage_manager", -+ .module = THIS_MODULE, -+ .storage_needed = usm_storage_needed, -+ .save_config_info = usm_save_config_info, -+ .load_config_info = usm_load_config_info, -+ .memory_needed = usm_memory_needed, -+ -+ .sysfs_data = sysfs_params, -+ .num_sysfs_entries = sizeof(sysfs_params) / -+ sizeof(struct toi_sysfs_data), -+}; -+ -+/* toi_usm_sysfs_init -+ * Description: Boot time initialisation for user interface. -+ */ -+int toi_usm_init(void) -+{ -+ usm_helper_data.nl = NULL; -+ usm_helper_data.program[0] = '\0'; -+ usm_helper_data.pid = -1; -+ usm_helper_data.skb_size = 0; -+ usm_helper_data.pool_limit = 6; -+ usm_helper_data.netlink_id = NETLINK_TOI_USM; -+ usm_helper_data.name = "userspace storage manager"; -+ usm_helper_data.rcv_msg = usm_user_rcv_msg; -+ usm_helper_data.interface_version = 2; -+ usm_helper_data.must_init = 0; -+ init_completion(&usm_helper_data.wait_for_process); -+ -+ return toi_register_module(&usm_ops); -+} -+ -+void toi_usm_exit(void) -+{ -+ toi_netlink_close_complete(&usm_helper_data); -+ toi_unregister_module(&usm_ops); -+} -diff --git a/kernel/power/tuxonice_storage.h b/kernel/power/tuxonice_storage.h -new file mode 100644 -index 0000000..8c6b5a7 ---- /dev/null -+++ b/kernel/power/tuxonice_storage.h -@@ -0,0 +1,45 @@ -+/* -+ * kernel/power/tuxonice_storage.h -+ * -+ * Copyright (C) 2005-2010 Nigel Cunningham (nigel at tuxonice net) -+ * -+ * This file is released under the GPLv2. -+ */ -+ -+#ifdef CONFIG_NET -+int toi_prepare_usm(void); -+void toi_cleanup_usm(void); -+ -+int toi_activate_storage(int force); -+int toi_deactivate_storage(int force); -+extern int toi_usm_init(void); -+extern void toi_usm_exit(void); -+#else -+static inline int toi_usm_init(void) { return 0; } -+static inline void toi_usm_exit(void) { } -+ -+static inline int toi_activate_storage(int force) -+{ -+ return 0; -+} -+ -+static inline int toi_deactivate_storage(int force) -+{ -+ return 0; -+} -+ -+static inline int toi_prepare_usm(void) { return 0; } -+static inline void toi_cleanup_usm(void) { } -+#endif -+ -+enum { -+ USM_MSG_BASE = 0x10, -+ -+ /* Kernel -> Userspace */ -+ USM_MSG_CONNECT = 0x30, -+ USM_MSG_DISCONNECT = 0x31, -+ USM_MSG_SUCCESS = 0x40, -+ USM_MSG_FAILED = 0x41, -+ -+ USM_MSG_MAX, -+}; -diff --git a/kernel/power/tuxonice_swap.c b/kernel/power/tuxonice_swap.c -new file mode 100644 -index 0000000..f55ef5e ---- /dev/null -+++ b/kernel/power/tuxonice_swap.c -@@ -0,0 +1,487 @@ -+/* -+ * kernel/power/tuxonice_swap.c -+ * -+ * Copyright (C) 2004-2010 Nigel Cunningham (nigel at tuxonice net) -+ * -+ * Distributed under GPLv2. -+ * -+ * This file encapsulates functions for usage of swap space as a -+ * backing store. -+ */ -+ -+#include -+#include -+#include -+#include -+#include -+#include -+ -+#include "tuxonice.h" -+#include "tuxonice_sysfs.h" -+#include "tuxonice_modules.h" -+#include "tuxonice_io.h" -+#include "tuxonice_ui.h" -+#include "tuxonice_extent.h" -+#include "tuxonice_bio.h" -+#include "tuxonice_alloc.h" -+#include "tuxonice_builtin.h" -+ -+static struct toi_module_ops toi_swapops; -+ -+/* For swapfile automatically swapon/off'd. */ -+static char swapfilename[255] = ""; -+static int toi_swapon_status; -+ -+/* Swap Pages */ -+static unsigned long swap_allocated; -+ -+static struct sysinfo swapinfo; -+ -+/** -+ * enable_swapfile: Swapon the user specified swapfile prior to hibernating. -+ * -+ * Activate the given swapfile if it wasn't already enabled. Remember whether -+ * we really did swapon it for swapoffing later. -+ */ -+static void enable_swapfile(void) -+{ -+ int activateswapresult = -EINVAL; -+ -+ if (swapfilename[0]) { -+ /* Attempt to swap on with maximum priority */ -+ activateswapresult = sys_swapon(swapfilename, 0xFFFF); -+ if (activateswapresult && activateswapresult != -EBUSY) -+ printk(KERN_ERR "TuxOnIce: The swapfile/partition " -+ "specified by /sys/power/tuxonice/swap/swapfile" -+ " (%s) could not be turned on (error %d). " -+ "Attempting to continue.\n", -+ swapfilename, activateswapresult); -+ if (!activateswapresult) -+ toi_swapon_status = 1; -+ } -+} -+ -+/** -+ * disable_swapfile: Swapoff any file swaponed at the start of the cycle. -+ * -+ * If we did successfully swapon a file at the start of the cycle, swapoff -+ * it now (finishing up). -+ */ -+static void disable_swapfile(void) -+{ -+ if (!toi_swapon_status) -+ return; -+ -+ sys_swapoff(swapfilename); -+ toi_swapon_status = 0; -+} -+ -+static int add_blocks_to_extent_chain(struct toi_bdev_info *chain, -+ unsigned long start, unsigned long end) -+{ -+ if (test_action_state(TOI_TEST_BIO)) -+ toi_message(TOI_IO, TOI_VERBOSE, 0, "Adding extent %lu-%lu to " -+ "chain %p.", start << chain->bmap_shift, -+ end << chain->bmap_shift, chain); -+ -+ return toi_add_to_extent_chain(&chain->blocks, start, end); -+} -+ -+ -+static int get_main_pool_phys_params(struct toi_bdev_info *chain) -+{ -+ struct hibernate_extent *extentpointer = NULL; -+ unsigned long address, extent_min = 0, extent_max = 0; -+ int empty = 1; -+ -+ toi_message(TOI_IO, TOI_VERBOSE, 0, "get main pool phys params for " -+ "chain %d.", chain->allocator_index); -+ -+ if (!chain->allocations.first) -+ return 0; -+ -+ if (chain->blocks.first) -+ toi_put_extent_chain(&chain->blocks); -+ -+ toi_extent_for_each(&chain->allocations, extentpointer, address) { -+ swp_entry_t swap_address = (swp_entry_t) { address }; -+ struct block_device *bdev; -+ sector_t new_sector = map_swap_entry(swap_address, &bdev); -+ -+ if (empty) { -+ empty = 0; -+ extent_min = extent_max = new_sector; -+ continue; -+ } -+ -+ if (new_sector == extent_max + 1) { -+ extent_max++; -+ continue; -+ } -+ -+ if (add_blocks_to_extent_chain(chain, extent_min, extent_max)) { -+ printk(KERN_ERR "Out of memory while making block " -+ "chains.\n"); -+ return -ENOMEM; -+ } -+ -+ extent_min = new_sector; -+ extent_max = new_sector; -+ } -+ -+ if (!empty && -+ add_blocks_to_extent_chain(chain, extent_min, extent_max)) { -+ printk(KERN_ERR "Out of memory while making block chains.\n"); -+ return -ENOMEM; -+ } -+ -+ return 0; -+} -+ -+/* -+ * Like si_swapinfo, except that we don't include ram backed swap (compcache!) -+ * and don't need to use the spinlocks (userspace is stopped when this -+ * function is called). -+ */ -+void si_swapinfo_no_compcache(void) -+{ -+ unsigned int i; -+ -+ si_swapinfo(&swapinfo); -+ swapinfo.freeswap = 0; -+ swapinfo.totalswap = 0; -+ -+ for (i = 0; i < MAX_SWAPFILES; i++) { -+ struct swap_info_struct *si = get_swap_info_struct(i); -+ if (si && (si->flags & SWP_WRITEOK) && -+ (strncmp(si->bdev->bd_disk->disk_name, "ram", 3))) { -+ swapinfo.totalswap += si->inuse_pages; -+ swapinfo.freeswap += si->pages - si->inuse_pages; -+ } -+ } -+} -+/* -+ * We can't just remember the value from allocation time, because other -+ * processes might have allocated swap in the mean time. -+ */ -+static unsigned long toi_swap_storage_available(void) -+{ -+ toi_message(TOI_IO, TOI_VERBOSE, 0, "In toi_swap_storage_available."); -+ si_swapinfo_no_compcache(); -+ return swapinfo.freeswap + swap_allocated; -+} -+ -+static int toi_swap_initialise(int starting_cycle) -+{ -+ if (!starting_cycle) -+ return 0; -+ -+ enable_swapfile(); -+ return 0; -+} -+ -+static void toi_swap_cleanup(int ending_cycle) -+{ -+ if (ending_cycle) -+ disable_swapfile(); -+} -+ -+static void toi_swap_free_storage(struct toi_bdev_info *chain) -+{ -+ /* Free swap entries */ -+ struct hibernate_extent *extentpointer; -+ unsigned long extentvalue; -+ -+ toi_message(TOI_IO, TOI_VERBOSE, 0, "Freeing storage for chain %p.", -+ chain); -+ -+ swap_allocated -= chain->allocations.size; -+ toi_extent_for_each(&chain->allocations, extentpointer, extentvalue) -+ swap_free((swp_entry_t) { extentvalue }); -+ -+ toi_put_extent_chain(&chain->allocations); -+} -+ -+static void free_swap_range(unsigned long min, unsigned long max) -+{ -+ int j; -+ -+ for (j = min; j <= max; j++) -+ swap_free((swp_entry_t) { j }); -+ swap_allocated -= (max - min + 1); -+} -+ -+/* -+ * Allocation of a single swap type. Swap priorities are handled at the higher -+ * level. -+ */ -+static int toi_swap_allocate_storage(struct toi_bdev_info *chain, -+ unsigned long request) -+{ -+ int to_add = 0; -+ unsigned long gotten = 0; -+ unsigned long extent_min = 0, extent_max = 0; -+ -+ toi_message(TOI_IO, TOI_VERBOSE, 0, " Swap allocate storage: Asked to" -+ " allocate %lu pages from device %d.", request, -+ chain->allocator_index); -+ -+ while (gotten < request) { -+ swp_entry_t entry; -+ unsigned long new_value; -+ -+ entry = get_swap_page_of_type(chain->allocator_index); -+ if (!entry.val) -+ break; -+ -+ swap_allocated++; -+ new_value = entry.val; -+ gotten++; -+ -+ if (!to_add) { -+ to_add = 1; -+ extent_min = new_value; -+ extent_max = new_value; -+ continue; -+ } -+ -+ if (new_value == extent_max + 1) { -+ extent_max++; -+ continue; -+ } -+ -+ if (toi_add_to_extent_chain(&chain->allocations, extent_min, -+ extent_max)) { -+ printk(KERN_INFO "Failed to allocate extent for " -+ "%lu-%lu.\n", extent_min, extent_max); -+ free_swap_range(extent_min, extent_max); -+ swap_free(entry); -+ gotten -= (extent_max - extent_min); -+ /* Don't try to add again below */ -+ to_add = 0; -+ break; -+ } -+ -+ extent_min = new_value; -+ extent_max = new_value; -+ } -+ -+ if (to_add) { -+ int this_result = toi_add_to_extent_chain(&chain->allocations, -+ extent_min, extent_max); -+ -+ if (this_result) { -+ free_swap_range(extent_min, extent_max); -+ gotten -= (extent_max - extent_min + 1); -+ } -+ } -+ -+ toi_message(TOI_IO, TOI_VERBOSE, 0, " Allocated %lu pages.", gotten); -+ return gotten; -+} -+ -+static int toi_swap_register_storage(void) -+{ -+ int i, result = 0; -+ -+ toi_message(TOI_IO, TOI_VERBOSE, 0, "toi_swap_register_storage."); -+ for (i = 0; i < MAX_SWAPFILES; i++) { -+ struct swap_info_struct *si = get_swap_info_struct(i); -+ struct toi_bdev_info *devinfo; -+ unsigned char *p; -+ unsigned char buf[256]; -+ struct fs_info *fs_info; -+ -+ if (!si || !(si->flags & SWP_WRITEOK) || -+ !strncmp(si->bdev->bd_disk->disk_name, "ram", 3)) -+ continue; -+ -+ devinfo = toi_kzalloc(39, sizeof(struct toi_bdev_info), -+ GFP_ATOMIC); -+ if (!devinfo) { -+ printk("Failed to allocate devinfo struct for swap " -+ "device %d.\n", i); -+ return -ENOMEM; -+ } -+ -+ devinfo->bdev = si->bdev; -+ devinfo->allocator = &toi_swapops; -+ devinfo->allocator_index = i; -+ -+ fs_info = fs_info_from_block_dev(si->bdev); -+ if (fs_info && !IS_ERR(fs_info)) { -+ memcpy(devinfo->uuid, &fs_info->uuid, 16); -+ free_fs_info(fs_info); -+ } else -+ result = (int) PTR_ERR(fs_info); -+ -+ if (!fs_info) -+ printk("fs_info from block dev returned %d.\n", result); -+ devinfo->dev_t = si->bdev->bd_dev; -+ devinfo->prio = si->prio; -+ devinfo->bmap_shift = 3; -+ devinfo->blocks_per_page = 1; -+ -+ p = d_path(&si->swap_file->f_path, buf, sizeof(buf)); -+ sprintf(devinfo->name, "swap on %s", p); -+ -+ toi_message(TOI_IO, TOI_VERBOSE, 0, "Registering swap storage:" -+ " Device %d (%lx), prio %d.", i, -+ (unsigned long) devinfo->dev_t, devinfo->prio); -+ toi_bio_ops.register_storage(devinfo); -+ } -+ -+ return 0; -+} -+ -+/* -+ * workspace_size -+ * -+ * Description: -+ * Returns the number of bytes of RAM needed for this -+ * code to do its work. (Used when calculating whether -+ * we have enough memory to be able to hibernate & resume). -+ * -+ */ -+static int toi_swap_memory_needed(void) -+{ -+ return 1; -+} -+ -+/* -+ * Print debug info -+ * -+ * Description: -+ */ -+static int toi_swap_print_debug_stats(char *buffer, int size) -+{ -+ int len = 0; -+ -+ len = scnprintf(buffer, size, "- Swap Allocator enabled.\n"); -+ if (swapfilename[0]) -+ len += scnprintf(buffer+len, size-len, -+ " Attempting to automatically swapon: %s.\n", -+ swapfilename); -+ -+ si_swapinfo_no_compcache(); -+ -+ len += scnprintf(buffer+len, size-len, -+ " Swap available for image: %lu pages.\n", -+ swapinfo.freeswap + swap_allocated); -+ -+ return len; -+} -+ -+static int header_locations_read_sysfs(const char *page, int count) -+{ -+ int i, printedpartitionsmessage = 0, len = 0, haveswap = 0; -+ struct inode *swapf = NULL; -+ int zone; -+ char *path_page = (char *) toi_get_free_page(10, GFP_KERNEL); -+ char *path, *output = (char *) page; -+ int path_len; -+ -+ if (!page) -+ return 0; -+ -+ for (i = 0; i < MAX_SWAPFILES; i++) { -+ struct swap_info_struct *si = get_swap_info_struct(i); -+ -+ if (!si || !(si->flags & SWP_WRITEOK)) -+ continue; -+ -+ if (S_ISBLK(si->swap_file->f_mapping->host->i_mode)) { -+ haveswap = 1; -+ if (!printedpartitionsmessage) { -+ len += sprintf(output + len, -+ "For swap partitions, simply use the " -+ "format: resume=swap:/dev/hda1.\n"); -+ printedpartitionsmessage = 1; -+ } -+ } else { -+ path_len = 0; -+ -+ path = d_path(&si->swap_file->f_path, path_page, -+ PAGE_SIZE); -+ path_len = snprintf(path_page, PAGE_SIZE, "%s", path); -+ -+ haveswap = 1; -+ swapf = si->swap_file->f_mapping->host; -+ zone = bmap(swapf, 0); -+ if (!zone) { -+ len += sprintf(output + len, -+ "Swapfile %s has been corrupted. Reuse" -+ " mkswap on it and try again.\n", -+ path_page); -+ } else { -+ char name_buffer[BDEVNAME_SIZE]; -+ len += sprintf(output + len, -+ "For swapfile `%s`," -+ " use resume=swap:/dev/%s:0x%x.\n", -+ path_page, -+ bdevname(si->bdev, name_buffer), -+ zone << (swapf->i_blkbits - 9)); -+ } -+ } -+ } -+ -+ if (!haveswap) -+ len = sprintf(output, "You need to turn on swap partitions " -+ "before examining this file.\n"); -+ -+ toi_free_page(10, (unsigned long) path_page); -+ return len; -+} -+ -+static struct toi_sysfs_data sysfs_params[] = { -+ SYSFS_STRING("swapfilename", SYSFS_RW, swapfilename, 255, 0, NULL), -+ SYSFS_CUSTOM("headerlocations", SYSFS_READONLY, -+ header_locations_read_sysfs, NULL, 0, NULL), -+ SYSFS_INT("enabled", SYSFS_RW, &toi_swapops.enabled, 0, 1, 0, -+ attempt_to_parse_resume_device2), -+}; -+ -+static struct toi_bio_allocator_ops toi_bio_swapops = { -+ .register_storage = toi_swap_register_storage, -+ .storage_available = toi_swap_storage_available, -+ .allocate_storage = toi_swap_allocate_storage, -+ .bmap = get_main_pool_phys_params, -+ .free_storage = toi_swap_free_storage, -+}; -+ -+static struct toi_module_ops toi_swapops = { -+ .type = BIO_ALLOCATOR_MODULE, -+ .name = "swap storage", -+ .directory = "swap", -+ .module = THIS_MODULE, -+ .memory_needed = toi_swap_memory_needed, -+ .print_debug_info = toi_swap_print_debug_stats, -+ .initialise = toi_swap_initialise, -+ .cleanup = toi_swap_cleanup, -+ .bio_allocator_ops = &toi_bio_swapops, -+ -+ .sysfs_data = sysfs_params, -+ .num_sysfs_entries = sizeof(sysfs_params) / -+ sizeof(struct toi_sysfs_data), -+}; -+ -+/* ---- Registration ---- */ -+static __init int toi_swap_load(void) -+{ -+ return toi_register_module(&toi_swapops); -+} -+ -+#ifdef MODULE -+static __exit void toi_swap_unload(void) -+{ -+ toi_unregister_module(&toi_swapops); -+} -+ -+module_init(toi_swap_load); -+module_exit(toi_swap_unload); -+MODULE_LICENSE("GPL"); -+MODULE_AUTHOR("Nigel Cunningham"); -+MODULE_DESCRIPTION("TuxOnIce SwapAllocator"); -+#else -+late_initcall(toi_swap_load); -+#endif -diff --git a/kernel/power/tuxonice_sysfs.c b/kernel/power/tuxonice_sysfs.c -new file mode 100644 -index 0000000..0088409 ---- /dev/null -+++ b/kernel/power/tuxonice_sysfs.c -@@ -0,0 +1,335 @@ -+/* -+ * kernel/power/tuxonice_sysfs.c -+ * -+ * Copyright (C) 2002-2010 Nigel Cunningham (nigel at tuxonice net) -+ * -+ * This file is released under the GPLv2. -+ * -+ * This file contains support for sysfs entries for tuning TuxOnIce. -+ * -+ * We have a generic handler that deals with the most common cases, and -+ * hooks for special handlers to use. -+ */ -+ -+#include -+ -+#include "tuxonice_sysfs.h" -+#include "tuxonice.h" -+#include "tuxonice_storage.h" -+#include "tuxonice_alloc.h" -+ -+static int toi_sysfs_initialised; -+ -+static void toi_initialise_sysfs(void); -+ -+static struct toi_sysfs_data sysfs_params[]; -+ -+#define to_sysfs_data(_attr) container_of(_attr, struct toi_sysfs_data, attr) -+ -+static void toi_main_wrapper(void) -+{ -+ toi_try_hibernate(); -+} -+ -+static ssize_t toi_attr_show(struct kobject *kobj, struct attribute *attr, -+ char *page) -+{ -+ struct toi_sysfs_data *sysfs_data = to_sysfs_data(attr); -+ int len = 0; -+ int full_prep = sysfs_data->flags & SYSFS_NEEDS_SM_FOR_READ; -+ -+ if (full_prep && toi_start_anything(0)) -+ return -EBUSY; -+ -+ if (sysfs_data->flags & SYSFS_NEEDS_SM_FOR_READ) -+ toi_prepare_usm(); -+ -+ switch (sysfs_data->type) { -+ case TOI_SYSFS_DATA_CUSTOM: -+ len = (sysfs_data->data.special.read_sysfs) ? -+ (sysfs_data->data.special.read_sysfs)(page, PAGE_SIZE) -+ : 0; -+ break; -+ case TOI_SYSFS_DATA_BIT: -+ len = sprintf(page, "%d\n", -+ -test_bit(sysfs_data->data.bit.bit, -+ sysfs_data->data.bit.bit_vector)); -+ break; -+ case TOI_SYSFS_DATA_INTEGER: -+ len = sprintf(page, "%d\n", -+ *(sysfs_data->data.integer.variable)); -+ break; -+ case TOI_SYSFS_DATA_LONG: -+ len = sprintf(page, "%ld\n", -+ *(sysfs_data->data.a_long.variable)); -+ break; -+ case TOI_SYSFS_DATA_UL: -+ len = sprintf(page, "%lu\n", -+ *(sysfs_data->data.ul.variable)); -+ break; -+ case TOI_SYSFS_DATA_STRING: -+ len = sprintf(page, "%s\n", -+ sysfs_data->data.string.variable); -+ break; -+ } -+ -+ if (sysfs_data->flags & SYSFS_NEEDS_SM_FOR_READ) -+ toi_cleanup_usm(); -+ -+ if (full_prep) -+ toi_finish_anything(0); -+ -+ return len; -+} -+ -+#define BOUND(_variable, _type) do { \ -+ if (*_variable < sysfs_data->data._type.minimum) \ -+ *_variable = sysfs_data->data._type.minimum; \ -+ else if (*_variable > sysfs_data->data._type.maximum) \ -+ *_variable = sysfs_data->data._type.maximum; \ -+} while (0) -+ -+static ssize_t toi_attr_store(struct kobject *kobj, struct attribute *attr, -+ const char *my_buf, size_t count) -+{ -+ int assigned_temp_buffer = 0, result = count; -+ struct toi_sysfs_data *sysfs_data = to_sysfs_data(attr); -+ -+ if (toi_start_anything((sysfs_data->flags & SYSFS_HIBERNATE_OR_RESUME))) -+ return -EBUSY; -+ -+ ((char *) my_buf)[count] = 0; -+ -+ if (sysfs_data->flags & SYSFS_NEEDS_SM_FOR_WRITE) -+ toi_prepare_usm(); -+ -+ switch (sysfs_data->type) { -+ case TOI_SYSFS_DATA_CUSTOM: -+ if (sysfs_data->data.special.write_sysfs) -+ result = (sysfs_data->data.special.write_sysfs)(my_buf, -+ count); -+ break; -+ case TOI_SYSFS_DATA_BIT: -+ { -+ unsigned long value; -+ result = strict_strtoul(my_buf, 0, &value); -+ if (result) -+ break; -+ if (value) -+ set_bit(sysfs_data->data.bit.bit, -+ (sysfs_data->data.bit.bit_vector)); -+ else -+ clear_bit(sysfs_data->data.bit.bit, -+ (sysfs_data->data.bit.bit_vector)); -+ } -+ break; -+ case TOI_SYSFS_DATA_INTEGER: -+ { -+ long temp; -+ result = strict_strtol(my_buf, 0, &temp); -+ if (result) -+ break; -+ *(sysfs_data->data.integer.variable) = (int) temp; -+ BOUND(sysfs_data->data.integer.variable, integer); -+ break; -+ } -+ case TOI_SYSFS_DATA_LONG: -+ { -+ long *variable = -+ sysfs_data->data.a_long.variable; -+ result = strict_strtol(my_buf, 0, variable); -+ if (result) -+ break; -+ BOUND(variable, a_long); -+ break; -+ } -+ case TOI_SYSFS_DATA_UL: -+ { -+ unsigned long *variable = -+ sysfs_data->data.ul.variable; -+ result = strict_strtoul(my_buf, 0, variable); -+ if (result) -+ break; -+ BOUND(variable, ul); -+ break; -+ } -+ break; -+ case TOI_SYSFS_DATA_STRING: -+ { -+ int copy_len = count; -+ char *variable = -+ sysfs_data->data.string.variable; -+ -+ if (sysfs_data->data.string.max_length && -+ (copy_len > sysfs_data->data.string.max_length)) -+ copy_len = sysfs_data->data.string.max_length; -+ -+ if (!variable) { -+ variable = (char *) toi_get_zeroed_page(31, -+ TOI_ATOMIC_GFP); -+ sysfs_data->data.string.variable = variable; -+ assigned_temp_buffer = 1; -+ } -+ strncpy(variable, my_buf, copy_len); -+ if (copy_len && my_buf[copy_len - 1] == '\n') -+ variable[count - 1] = 0; -+ variable[count] = 0; -+ } -+ break; -+ } -+ -+ if (!result) -+ result = count; -+ -+ /* Side effect routine? */ -+ if (result == count && sysfs_data->write_side_effect) -+ sysfs_data->write_side_effect(); -+ -+ /* Free temporary buffers */ -+ if (assigned_temp_buffer) { -+ toi_free_page(31, -+ (unsigned long) sysfs_data->data.string.variable); -+ sysfs_data->data.string.variable = NULL; -+ } -+ -+ if (sysfs_data->flags & SYSFS_NEEDS_SM_FOR_WRITE) -+ toi_cleanup_usm(); -+ -+ toi_finish_anything(sysfs_data->flags & SYSFS_HIBERNATE_OR_RESUME); -+ -+ return result; -+} -+ -+static struct sysfs_ops toi_sysfs_ops = { -+ .show = &toi_attr_show, -+ .store = &toi_attr_store, -+}; -+ -+static struct kobj_type toi_ktype = { -+ .sysfs_ops = &toi_sysfs_ops, -+}; -+ -+struct kobject *tuxonice_kobj; -+ -+/* Non-module sysfs entries. -+ * -+ * This array contains entries that are automatically registered at -+ * boot. Modules and the console code register their own entries separately. -+ */ -+ -+static struct toi_sysfs_data sysfs_params[] = { -+ SYSFS_CUSTOM("do_hibernate", SYSFS_WRITEONLY, NULL, NULL, -+ SYSFS_HIBERNATING, toi_main_wrapper), -+ SYSFS_CUSTOM("do_resume", SYSFS_WRITEONLY, NULL, NULL, -+ SYSFS_RESUMING, toi_try_resume) -+}; -+ -+void remove_toi_sysdir(struct kobject *kobj) -+{ -+ if (!kobj) -+ return; -+ -+ kobject_put(kobj); -+} -+ -+struct kobject *make_toi_sysdir(char *name) -+{ -+ struct kobject *kobj = kobject_create_and_add(name, tuxonice_kobj); -+ -+ if (!kobj) { -+ printk(KERN_INFO "TuxOnIce: Can't allocate kobject for sysfs " -+ "dir!\n"); -+ return NULL; -+ } -+ -+ kobj->ktype = &toi_ktype; -+ -+ return kobj; -+} -+ -+/* toi_register_sysfs_file -+ * -+ * Helper for registering a new /sysfs/tuxonice entry. -+ */ -+ -+int toi_register_sysfs_file( -+ struct kobject *kobj, -+ struct toi_sysfs_data *toi_sysfs_data) -+{ -+ int result; -+ -+ if (!toi_sysfs_initialised) -+ toi_initialise_sysfs(); -+ -+ result = sysfs_create_file(kobj, &toi_sysfs_data->attr); -+ if (result) -+ printk(KERN_INFO "TuxOnIce: sysfs_create_file for %s " -+ "returned %d.\n", -+ toi_sysfs_data->attr.name, result); -+ kobj->ktype = &toi_ktype; -+ -+ return result; -+} -+EXPORT_SYMBOL_GPL(toi_register_sysfs_file); -+ -+/* toi_unregister_sysfs_file -+ * -+ * Helper for removing unwanted /sys/power/tuxonice entries. -+ * -+ */ -+void toi_unregister_sysfs_file(struct kobject *kobj, -+ struct toi_sysfs_data *toi_sysfs_data) -+{ -+ sysfs_remove_file(kobj, &toi_sysfs_data->attr); -+} -+EXPORT_SYMBOL_GPL(toi_unregister_sysfs_file); -+ -+void toi_cleanup_sysfs(void) -+{ -+ int i, -+ numfiles = sizeof(sysfs_params) / sizeof(struct toi_sysfs_data); -+ -+ if (!toi_sysfs_initialised) -+ return; -+ -+ for (i = 0; i < numfiles; i++) -+ toi_unregister_sysfs_file(tuxonice_kobj, &sysfs_params[i]); -+ -+ kobject_put(tuxonice_kobj); -+ toi_sysfs_initialised = 0; -+} -+ -+/* toi_initialise_sysfs -+ * -+ * Initialise the /sysfs/tuxonice directory. -+ */ -+ -+static void toi_initialise_sysfs(void) -+{ -+ int i; -+ int numfiles = sizeof(sysfs_params) / sizeof(struct toi_sysfs_data); -+ -+ if (toi_sysfs_initialised) -+ return; -+ -+ /* Make our TuxOnIce directory a child of /sys/power */ -+ tuxonice_kobj = kobject_create_and_add("tuxonice", power_kobj); -+ if (!tuxonice_kobj) -+ return; -+ -+ toi_sysfs_initialised = 1; -+ -+ for (i = 0; i < numfiles; i++) -+ toi_register_sysfs_file(tuxonice_kobj, &sysfs_params[i]); -+} -+ -+int toi_sysfs_init(void) -+{ -+ toi_initialise_sysfs(); -+ return 0; -+} -+ -+void toi_sysfs_exit(void) -+{ -+ toi_cleanup_sysfs(); -+} -diff --git a/kernel/power/tuxonice_sysfs.h b/kernel/power/tuxonice_sysfs.h -new file mode 100644 -index 0000000..4185c6d ---- /dev/null -+++ b/kernel/power/tuxonice_sysfs.h -@@ -0,0 +1,137 @@ -+/* -+ * kernel/power/tuxonice_sysfs.h -+ * -+ * Copyright (C) 2004-2010 Nigel Cunningham (nigel at tuxonice net) -+ * -+ * This file is released under the GPLv2. -+ */ -+ -+#include -+ -+struct toi_sysfs_data { -+ struct attribute attr; -+ int type; -+ int flags; -+ union { -+ struct { -+ unsigned long *bit_vector; -+ int bit; -+ } bit; -+ struct { -+ int *variable; -+ int minimum; -+ int maximum; -+ } integer; -+ struct { -+ long *variable; -+ long minimum; -+ long maximum; -+ } a_long; -+ struct { -+ unsigned long *variable; -+ unsigned long minimum; -+ unsigned long maximum; -+ } ul; -+ struct { -+ char *variable; -+ int max_length; -+ } string; -+ struct { -+ int (*read_sysfs) (const char *buffer, int count); -+ int (*write_sysfs) (const char *buffer, int count); -+ void *data; -+ } special; -+ } data; -+ -+ /* Side effects routine. Used, eg, for reparsing the -+ * resume= entry when it changes */ -+ void (*write_side_effect) (void); -+ struct list_head sysfs_data_list; -+}; -+ -+enum { -+ TOI_SYSFS_DATA_NONE = 1, -+ TOI_SYSFS_DATA_CUSTOM, -+ TOI_SYSFS_DATA_BIT, -+ TOI_SYSFS_DATA_INTEGER, -+ TOI_SYSFS_DATA_UL, -+ TOI_SYSFS_DATA_LONG, -+ TOI_SYSFS_DATA_STRING -+}; -+ -+#define SYSFS_WRITEONLY 0200 -+#define SYSFS_READONLY 0444 -+#define SYSFS_RW 0644 -+ -+#define SYSFS_BIT(_name, _mode, _ul, _bit, _flags) { \ -+ .attr = {.name = _name , .mode = _mode }, \ -+ .type = TOI_SYSFS_DATA_BIT, \ -+ .flags = _flags, \ -+ .data = { .bit = { .bit_vector = _ul, .bit = _bit } } } -+ -+#define SYSFS_INT(_name, _mode, _int, _min, _max, _flags, _wse) { \ -+ .attr = {.name = _name , .mode = _mode }, \ -+ .type = TOI_SYSFS_DATA_INTEGER, \ -+ .flags = _flags, \ -+ .data = { .integer = { .variable = _int, .minimum = _min, \ -+ .maximum = _max } }, \ -+ .write_side_effect = _wse } -+ -+#define SYSFS_UL(_name, _mode, _ul, _min, _max, _flags) { \ -+ .attr = {.name = _name , .mode = _mode }, \ -+ .type = TOI_SYSFS_DATA_UL, \ -+ .flags = _flags, \ -+ .data = { .ul = { .variable = _ul, .minimum = _min, \ -+ .maximum = _max } } } -+ -+#define SYSFS_LONG(_name, _mode, _long, _min, _max, _flags) { \ -+ .attr = {.name = _name , .mode = _mode }, \ -+ .type = TOI_SYSFS_DATA_LONG, \ -+ .flags = _flags, \ -+ .data = { .a_long = { .variable = _long, .minimum = _min, \ -+ .maximum = _max } } } -+ -+#define SYSFS_STRING(_name, _mode, _string, _max_len, _flags, _wse) { \ -+ .attr = {.name = _name , .mode = _mode }, \ -+ .type = TOI_SYSFS_DATA_STRING, \ -+ .flags = _flags, \ -+ .data = { .string = { .variable = _string, .max_length = _max_len } }, \ -+ .write_side_effect = _wse } -+ -+#define SYSFS_CUSTOM(_name, _mode, _read, _write, _flags, _wse) { \ -+ .attr = {.name = _name , .mode = _mode }, \ -+ .type = TOI_SYSFS_DATA_CUSTOM, \ -+ .flags = _flags, \ -+ .data = { .special = { .read_sysfs = _read, .write_sysfs = _write } }, \ -+ .write_side_effect = _wse } -+ -+#define SYSFS_NONE(_name, _wse) { \ -+ .attr = {.name = _name , .mode = SYSFS_WRITEONLY }, \ -+ .type = TOI_SYSFS_DATA_NONE, \ -+ .write_side_effect = _wse, \ -+} -+ -+/* Flags */ -+#define SYSFS_NEEDS_SM_FOR_READ 1 -+#define SYSFS_NEEDS_SM_FOR_WRITE 2 -+#define SYSFS_HIBERNATE 4 -+#define SYSFS_RESUME 8 -+#define SYSFS_HIBERNATE_OR_RESUME (SYSFS_HIBERNATE | SYSFS_RESUME) -+#define SYSFS_HIBERNATING (SYSFS_HIBERNATE | SYSFS_NEEDS_SM_FOR_WRITE) -+#define SYSFS_RESUMING (SYSFS_RESUME | SYSFS_NEEDS_SM_FOR_WRITE) -+#define SYSFS_NEEDS_SM_FOR_BOTH \ -+ (SYSFS_NEEDS_SM_FOR_READ | SYSFS_NEEDS_SM_FOR_WRITE) -+ -+int toi_register_sysfs_file(struct kobject *kobj, -+ struct toi_sysfs_data *toi_sysfs_data); -+void toi_unregister_sysfs_file(struct kobject *kobj, -+ struct toi_sysfs_data *toi_sysfs_data); -+ -+extern struct kobject *tuxonice_kobj; -+ -+struct kobject *make_toi_sysdir(char *name); -+void remove_toi_sysdir(struct kobject *obj); -+extern void toi_cleanup_sysfs(void); -+ -+extern int toi_sysfs_init(void); -+extern void toi_sysfs_exit(void); -diff --git a/kernel/power/tuxonice_ui.c b/kernel/power/tuxonice_ui.c -new file mode 100644 -index 0000000..b0b3b40 ---- /dev/null -+++ b/kernel/power/tuxonice_ui.c -@@ -0,0 +1,250 @@ -+/* -+ * kernel/power/tuxonice_ui.c -+ * -+ * Copyright (C) 1998-2001 Gabor Kuti -+ * Copyright (C) 1998,2001,2002 Pavel Machek -+ * Copyright (C) 2002-2003 Florent Chabaud -+ * Copyright (C) 2002-2010 Nigel Cunningham (nigel at tuxonice net) -+ * -+ * This file is released under the GPLv2. -+ * -+ * Routines for TuxOnIce's user interface. -+ * -+ * The user interface code talks to a userspace program via a -+ * netlink socket. -+ * -+ * The kernel side: -+ * - starts the userui program; -+ * - sends text messages and progress bar status; -+ * -+ * The user space side: -+ * - passes messages regarding user requests (abort, toggle reboot etc) -+ * -+ */ -+ -+#define __KERNEL_SYSCALLS__ -+ -+#include -+ -+#include "tuxonice_sysfs.h" -+#include "tuxonice_modules.h" -+#include "tuxonice.h" -+#include "tuxonice_ui.h" -+#include "tuxonice_netlink.h" -+#include "tuxonice_power_off.h" -+#include "tuxonice_builtin.h" -+ -+static char local_printf_buf[1024]; /* Same as printk - should be safe */ -+struct ui_ops *toi_current_ui; -+EXPORT_SYMBOL_GPL(toi_current_ui); -+ -+/** -+ * toi_wait_for_keypress - Wait for keypress via userui or /dev/console. -+ * -+ * @timeout: Maximum time to wait. -+ * -+ * Wait for a keypress, either from userui or /dev/console if userui isn't -+ * available. The non-userui path is particularly for at boot-time, prior -+ * to userui being started, when we have an important warning to give to -+ * the user. -+ */ -+static char toi_wait_for_keypress(int timeout) -+{ -+ if (toi_current_ui && toi_current_ui->wait_for_key(timeout)) -+ return ' '; -+ -+ return toi_wait_for_keypress_dev_console(timeout); -+} -+ -+/* toi_early_boot_message() -+ * Description: Handle errors early in the process of booting. -+ * The user may press C to continue booting, perhaps -+ * invalidating the image, or space to reboot. -+ * This works from either the serial console or normally -+ * attached keyboard. -+ * -+ * Note that we come in here from init, while the kernel is -+ * locked. If we want to get events from the serial console, -+ * we need to temporarily unlock the kernel. -+ * -+ * toi_early_boot_message may also be called post-boot. -+ * In this case, it simply printks the message and returns. -+ * -+ * Arguments: int Whether we are able to erase the image. -+ * int default_answer. What to do when we timeout. This -+ * will normally be continue, but the user might -+ * provide command line options (__setup) to override -+ * particular cases. -+ * Char *. Pointer to a string explaining why we're moaning. -+ */ -+ -+#define say(message, a...) printk(KERN_EMERG message, ##a) -+ -+void toi_early_boot_message(int message_detail, int default_answer, -+ char *warning_reason, ...) -+{ -+#if defined(CONFIG_VT) || defined(CONFIG_SERIAL_CONSOLE) -+ unsigned long orig_state = get_toi_state(), continue_req = 0; -+ unsigned long orig_loglevel = console_loglevel; -+ int can_ask = 1; -+#else -+ int can_ask = 0; -+#endif -+ -+ va_list args; -+ int printed_len; -+ -+ if (!toi_wait) { -+ set_toi_state(TOI_CONTINUE_REQ); -+ can_ask = 0; -+ } -+ -+ if (warning_reason) { -+ va_start(args, warning_reason); -+ printed_len = vsnprintf(local_printf_buf, -+ sizeof(local_printf_buf), -+ warning_reason, -+ args); -+ va_end(args); -+ } -+ -+ if (!test_toi_state(TOI_BOOT_TIME)) { -+ printk("TuxOnIce: %s\n", local_printf_buf); -+ return; -+ } -+ -+ if (!can_ask) { -+ continue_req = !!default_answer; -+ goto post_ask; -+ } -+ -+#if defined(CONFIG_VT) || defined(CONFIG_SERIAL_CONSOLE) -+ console_loglevel = 7; -+ -+ say("=== TuxOnIce ===\n\n"); -+ if (warning_reason) { -+ say("BIG FAT WARNING!! %s\n\n", local_printf_buf); -+ switch (message_detail) { -+ case 0: -+ say("If you continue booting, note that any image WILL" -+ "NOT BE REMOVED.\nTuxOnIce is unable to do so " -+ "because the appropriate modules aren't\n" -+ "loaded. You should manually remove the image " -+ "to avoid any\npossibility of corrupting your " -+ "filesystem(s) later.\n"); -+ break; -+ case 1: -+ say("If you want to use the current TuxOnIce image, " -+ "reboot and try\nagain with the same kernel " -+ "that you hibernated from. If you want\n" -+ "to forget that image, continue and the image " -+ "will be erased.\n"); -+ break; -+ } -+ say("Press SPACE to reboot or C to continue booting with " -+ "this kernel\n\n"); -+ if (toi_wait > 0) -+ say("Default action if you don't select one in %d " -+ "seconds is: %s.\n", -+ toi_wait, -+ default_answer == TOI_CONTINUE_REQ ? -+ "continue booting" : "reboot"); -+ } else { -+ say("BIG FAT WARNING!!\n\n" -+ "You have tried to resume from this image before.\n" -+ "If it failed once, it may well fail again.\n" -+ "Would you like to remove the image and boot " -+ "normally?\nThis will be equivalent to entering " -+ "noresume on the\nkernel command line.\n\n" -+ "Press SPACE to remove the image or C to continue " -+ "resuming.\n\n"); -+ if (toi_wait > 0) -+ say("Default action if you don't select one in %d " -+ "seconds is: %s.\n", toi_wait, -+ !!default_answer ? -+ "continue resuming" : "remove the image"); -+ } -+ console_loglevel = orig_loglevel; -+ -+ set_toi_state(TOI_SANITY_CHECK_PROMPT); -+ clear_toi_state(TOI_CONTINUE_REQ); -+ -+ if (toi_wait_for_keypress(toi_wait) == 0) /* We timed out */ -+ continue_req = !!default_answer; -+ else -+ continue_req = test_toi_state(TOI_CONTINUE_REQ); -+ -+#endif /* CONFIG_VT or CONFIG_SERIAL_CONSOLE */ -+ -+post_ask: -+ if ((warning_reason) && (!continue_req)) -+ machine_restart(NULL); -+ -+ restore_toi_state(orig_state); -+ if (continue_req) -+ set_toi_state(TOI_CONTINUE_REQ); -+} -+EXPORT_SYMBOL_GPL(toi_early_boot_message); -+#undef say -+ -+/* -+ * User interface specific /sys/power/tuxonice entries. -+ */ -+ -+static struct toi_sysfs_data sysfs_params[] = { -+#if defined(CONFIG_NET) && defined(CONFIG_SYSFS) -+ SYSFS_INT("default_console_level", SYSFS_RW, -+ &toi_bkd.toi_default_console_level, 0, 7, 0, NULL), -+ SYSFS_UL("debug_sections", SYSFS_RW, &toi_bkd.toi_debug_state, 0, -+ 1 << 30, 0), -+ SYSFS_BIT("log_everything", SYSFS_RW, &toi_bkd.toi_action, TOI_LOGALL, -+ 0) -+#endif -+}; -+ -+static struct toi_module_ops userui_ops = { -+ .type = MISC_HIDDEN_MODULE, -+ .name = "printk ui", -+ .directory = "user_interface", -+ .module = THIS_MODULE, -+ .sysfs_data = sysfs_params, -+ .num_sysfs_entries = sizeof(sysfs_params) / -+ sizeof(struct toi_sysfs_data), -+}; -+ -+int toi_register_ui_ops(struct ui_ops *this_ui) -+{ -+ if (toi_current_ui) { -+ printk(KERN_INFO "Only one TuxOnIce user interface module can " -+ "be loaded at a time."); -+ return -EBUSY; -+ } -+ -+ toi_current_ui = this_ui; -+ -+ return 0; -+} -+EXPORT_SYMBOL_GPL(toi_register_ui_ops); -+ -+void toi_remove_ui_ops(struct ui_ops *this_ui) -+{ -+ if (toi_current_ui != this_ui) -+ return; -+ -+ toi_current_ui = NULL; -+} -+EXPORT_SYMBOL_GPL(toi_remove_ui_ops); -+ -+/* toi_console_sysfs_init -+ * Description: Boot time initialisation for user interface. -+ */ -+ -+int toi_ui_init(void) -+{ -+ return toi_register_module(&userui_ops); -+} -+ -+void toi_ui_exit(void) -+{ -+ toi_unregister_module(&userui_ops); -+} -diff --git a/kernel/power/tuxonice_ui.h b/kernel/power/tuxonice_ui.h -new file mode 100644 -index 0000000..85fb7cb ---- /dev/null -+++ b/kernel/power/tuxonice_ui.h -@@ -0,0 +1,97 @@ -+/* -+ * kernel/power/tuxonice_ui.h -+ * -+ * Copyright (C) 2004-2010 Nigel Cunningham (nigel at tuxonice net) -+ */ -+ -+enum { -+ DONT_CLEAR_BAR, -+ CLEAR_BAR -+}; -+ -+enum { -+ /* Userspace -> Kernel */ -+ USERUI_MSG_ABORT = 0x11, -+ USERUI_MSG_SET_STATE = 0x12, -+ USERUI_MSG_GET_STATE = 0x13, -+ USERUI_MSG_GET_DEBUG_STATE = 0x14, -+ USERUI_MSG_SET_DEBUG_STATE = 0x15, -+ USERUI_MSG_SPACE = 0x18, -+ USERUI_MSG_GET_POWERDOWN_METHOD = 0x1A, -+ USERUI_MSG_SET_POWERDOWN_METHOD = 0x1B, -+ USERUI_MSG_GET_LOGLEVEL = 0x1C, -+ USERUI_MSG_SET_LOGLEVEL = 0x1D, -+ USERUI_MSG_PRINTK = 0x1E, -+ -+ /* Kernel -> Userspace */ -+ USERUI_MSG_MESSAGE = 0x21, -+ USERUI_MSG_PROGRESS = 0x22, -+ USERUI_MSG_POST_ATOMIC_RESTORE = 0x25, -+ -+ USERUI_MSG_MAX, -+}; -+ -+struct userui_msg_params { -+ u32 a, b, c, d; -+ char text[255]; -+}; -+ -+struct ui_ops { -+ char (*wait_for_key) (int timeout); -+ u32 (*update_status) (u32 value, u32 maximum, const char *fmt, ...); -+ void (*prepare_status) (int clearbar, const char *fmt, ...); -+ void (*cond_pause) (int pause, char *message); -+ void (*abort)(int result_code, const char *fmt, ...); -+ void (*prepare)(void); -+ void (*cleanup)(void); -+ void (*message)(u32 section, u32 level, u32 normally_logged, -+ const char *fmt, ...); -+}; -+ -+extern struct ui_ops *toi_current_ui; -+ -+#define toi_update_status(val, max, fmt, args...) \ -+ (toi_current_ui ? (toi_current_ui->update_status) (val, max, fmt, ##args) : \ -+ max) -+ -+#define toi_prepare_console(void) \ -+ do { if (toi_current_ui) \ -+ (toi_current_ui->prepare)(); \ -+ } while (0) -+ -+#define toi_cleanup_console(void) \ -+ do { if (toi_current_ui) \ -+ (toi_current_ui->cleanup)(); \ -+ } while (0) -+ -+#define abort_hibernate(result, fmt, args...) \ -+ do { if (toi_current_ui) \ -+ (toi_current_ui->abort)(result, fmt, ##args); \ -+ else { \ -+ set_abort_result(result); \ -+ } \ -+ } while (0) -+ -+#define toi_cond_pause(pause, message) \ -+ do { if (toi_current_ui) \ -+ (toi_current_ui->cond_pause)(pause, message); \ -+ } while (0) -+ -+#define toi_prepare_status(clear, fmt, args...) \ -+ do { if (toi_current_ui) \ -+ (toi_current_ui->prepare_status)(clear, fmt, ##args); \ -+ else \ -+ printk(KERN_ERR fmt "%s", ##args, "\n"); \ -+ } while (0) -+ -+#define toi_message(sn, lev, log, fmt, a...) \ -+do { \ -+ if (toi_current_ui && (!sn || test_debug_state(sn))) \ -+ toi_current_ui->message(sn, lev, log, fmt, ##a); \ -+} while (0) -+ -+__exit void toi_ui_cleanup(void); -+extern int toi_ui_init(void); -+extern void toi_ui_exit(void); -+extern int toi_register_ui_ops(struct ui_ops *this_ui); -+extern void toi_remove_ui_ops(struct ui_ops *this_ui); -diff --git a/kernel/power/tuxonice_userui.c b/kernel/power/tuxonice_userui.c -new file mode 100644 -index 0000000..625d863 ---- /dev/null -+++ b/kernel/power/tuxonice_userui.c -@@ -0,0 +1,668 @@ -+/* -+ * kernel/power/user_ui.c -+ * -+ * Copyright (C) 2005-2007 Bernard Blackham -+ * Copyright (C) 2002-2010 Nigel Cunningham (nigel at tuxonice net) -+ * -+ * This file is released under the GPLv2. -+ * -+ * Routines for TuxOnIce's user interface. -+ * -+ * The user interface code talks to a userspace program via a -+ * netlink socket. -+ * -+ * The kernel side: -+ * - starts the userui program; -+ * - sends text messages and progress bar status; -+ * -+ * The user space side: -+ * - passes messages regarding user requests (abort, toggle reboot etc) -+ * -+ */ -+ -+#define __KERNEL_SYSCALLS__ -+ -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+ -+#include "tuxonice_sysfs.h" -+#include "tuxonice_modules.h" -+#include "tuxonice.h" -+#include "tuxonice_ui.h" -+#include "tuxonice_netlink.h" -+#include "tuxonice_power_off.h" -+ -+static char local_printf_buf[1024]; /* Same as printk - should be safe */ -+ -+static struct user_helper_data ui_helper_data; -+static struct toi_module_ops userui_ops; -+static int orig_kmsg; -+ -+static char lastheader[512]; -+static int lastheader_message_len; -+static int ui_helper_changed; /* Used at resume-time so don't overwrite value -+ set from initrd/ramfs. */ -+ -+/* Number of distinct progress amounts that userspace can display */ -+static int progress_granularity = 30; -+ -+static DECLARE_WAIT_QUEUE_HEAD(userui_wait_for_key); -+ -+/** -+ * ui_nl_set_state - Update toi_action based on a message from userui. -+ * -+ * @n: The bit (1 << bit) to set. -+ */ -+static void ui_nl_set_state(int n) -+{ -+ /* Only let them change certain settings */ -+ static const u32 toi_action_mask = -+ (1 << TOI_REBOOT) | (1 << TOI_PAUSE) | -+ (1 << TOI_LOGALL) | -+ (1 << TOI_SINGLESTEP) | -+ (1 << TOI_PAUSE_NEAR_PAGESET_END); -+ static unsigned long new_action; -+ -+ new_action = (toi_bkd.toi_action & (~toi_action_mask)) | -+ (n & toi_action_mask); -+ -+ printk(KERN_DEBUG "n is %x. Action flags being changed from %lx " -+ "to %lx.", n, toi_bkd.toi_action, new_action); -+ toi_bkd.toi_action = new_action; -+ -+ if (!test_action_state(TOI_PAUSE) && -+ !test_action_state(TOI_SINGLESTEP)) -+ wake_up_interruptible(&userui_wait_for_key); -+} -+ -+/** -+ * userui_post_atomic_restore - Tell userui that atomic restore just happened. -+ * -+ * Tell userui that atomic restore just occured, so that it can do things like -+ * redrawing the screen, re-getting settings and so on. -+ */ -+static void userui_post_atomic_restore(struct toi_boot_kernel_data *bkd) -+{ -+ toi_send_netlink_message(&ui_helper_data, -+ USERUI_MSG_POST_ATOMIC_RESTORE, NULL, 0); -+} -+ -+/** -+ * userui_storage_needed - Report how much memory in image header is needed. -+ */ -+static int userui_storage_needed(void) -+{ -+ return sizeof(ui_helper_data.program) + 1 + sizeof(int); -+} -+ -+/** -+ * userui_save_config_info - Fill buffer with config info for image header. -+ * -+ * @buf: Buffer into which to put the config info we want to save. -+ */ -+static int userui_save_config_info(char *buf) -+{ -+ *((int *) buf) = progress_granularity; -+ memcpy(buf + sizeof(int), ui_helper_data.program, -+ sizeof(ui_helper_data.program)); -+ return sizeof(ui_helper_data.program) + sizeof(int) + 1; -+} -+ -+/** -+ * userui_load_config_info - Restore config info from buffer. -+ * -+ * @buf: Buffer containing header info loaded. -+ * @size: Size of data loaded for this module. -+ */ -+static void userui_load_config_info(char *buf, int size) -+{ -+ progress_granularity = *((int *) buf); -+ size -= sizeof(int); -+ -+ /* Don't load the saved path if one has already been set */ -+ if (ui_helper_changed) -+ return; -+ -+ if (size > sizeof(ui_helper_data.program)) -+ size = sizeof(ui_helper_data.program); -+ -+ memcpy(ui_helper_data.program, buf + sizeof(int), size); -+ ui_helper_data.program[sizeof(ui_helper_data.program)-1] = '\0'; -+} -+ -+/** -+ * set_ui_program_set: Record that userui program was changed. -+ * -+ * Side effect routine for when the userui program is set. In an initrd or -+ * ramfs, the user may set a location for the userui program. If this happens, -+ * we don't want to reload the value that was saved in the image header. This -+ * routine allows us to flag that we shouldn't restore the program name from -+ * the image header. -+ */ -+static void set_ui_program_set(void) -+{ -+ ui_helper_changed = 1; -+} -+ -+/** -+ * userui_memory_needed - Tell core how much memory to reserve for us. -+ */ -+static int userui_memory_needed(void) -+{ -+ /* ball park figure of 128 pages */ -+ return 128 * PAGE_SIZE; -+} -+ -+/** -+ * userui_update_status - Update the progress bar and (if on) in-bar message. -+ * -+ * @value: Current progress percentage numerator. -+ * @maximum: Current progress percentage denominator. -+ * @fmt: Message to be displayed in the middle of the progress bar. -+ * -+ * Note that a NULL message does not mean that any previous message is erased! -+ * For that, you need toi_prepare_status with clearbar on. -+ * -+ * Returns an unsigned long, being the next numerator (as determined by the -+ * maximum and progress granularity) where status needs to be updated. -+ * This is to reduce unnecessary calls to update_status. -+ */ -+static u32 userui_update_status(u32 value, u32 maximum, const char *fmt, ...) -+{ -+ static u32 last_step = 9999; -+ struct userui_msg_params msg; -+ u32 this_step, next_update; -+ int bitshift; -+ -+ if (ui_helper_data.pid == -1) -+ return 0; -+ -+ if ((!maximum) || (!progress_granularity)) -+ return maximum; -+ -+ if (value < 0) -+ value = 0; -+ -+ if (value > maximum) -+ value = maximum; -+ -+ /* Try to avoid math problems - we can't do 64 bit math here -+ * (and shouldn't need it - anyone got screen resolution -+ * of 65536 pixels or more?) */ -+ bitshift = fls(maximum) - 16; -+ if (bitshift > 0) { -+ u32 temp_maximum = maximum >> bitshift; -+ u32 temp_value = value >> bitshift; -+ this_step = (u32) -+ (temp_value * progress_granularity / temp_maximum); -+ next_update = (((this_step + 1) * temp_maximum / -+ progress_granularity) + 1) << bitshift; -+ } else { -+ this_step = (u32) (value * progress_granularity / maximum); -+ next_update = ((this_step + 1) * maximum / -+ progress_granularity) + 1; -+ } -+ -+ if (this_step == last_step) -+ return next_update; -+ -+ memset(&msg, 0, sizeof(msg)); -+ -+ msg.a = this_step; -+ msg.b = progress_granularity; -+ -+ if (fmt) { -+ va_list args; -+ va_start(args, fmt); -+ vsnprintf(msg.text, sizeof(msg.text), fmt, args); -+ va_end(args); -+ msg.text[sizeof(msg.text)-1] = '\0'; -+ } -+ -+ toi_send_netlink_message(&ui_helper_data, USERUI_MSG_PROGRESS, -+ &msg, sizeof(msg)); -+ last_step = this_step; -+ -+ return next_update; -+} -+ -+/** -+ * userui_message - Display a message without necessarily logging it. -+ * -+ * @section: Type of message. Messages can be filtered by type. -+ * @level: Degree of importance of the message. Lower values = higher priority. -+ * @normally_logged: Whether logged even if log_everything is off. -+ * @fmt: Message (and parameters). -+ * -+ * This function is intended to do the same job as printk, but without normally -+ * logging what is printed. The point is to be able to get debugging info on -+ * screen without filling the logs with "1/534. ^M 2/534^M. 3/534^M" -+ * -+ * It may be called from an interrupt context - can't sleep! -+ */ -+static void userui_message(u32 section, u32 level, u32 normally_logged, -+ const char *fmt, ...) -+{ -+ struct userui_msg_params msg; -+ -+ if ((level) && (level > console_loglevel)) -+ return; -+ -+ memset(&msg, 0, sizeof(msg)); -+ -+ msg.a = section; -+ msg.b = level; -+ msg.c = normally_logged; -+ -+ if (fmt) { -+ va_list args; -+ va_start(args, fmt); -+ vsnprintf(msg.text, sizeof(msg.text), fmt, args); -+ va_end(args); -+ msg.text[sizeof(msg.text)-1] = '\0'; -+ } -+ -+ if (test_action_state(TOI_LOGALL)) -+ printk(KERN_INFO "%s\n", msg.text); -+ -+ toi_send_netlink_message(&ui_helper_data, USERUI_MSG_MESSAGE, -+ &msg, sizeof(msg)); -+} -+ -+/** -+ * wait_for_key_via_userui - Wait for userui to receive a keypress. -+ */ -+static void wait_for_key_via_userui(void) -+{ -+ DECLARE_WAITQUEUE(wait, current); -+ -+ add_wait_queue(&userui_wait_for_key, &wait); -+ set_current_state(TASK_INTERRUPTIBLE); -+ -+ interruptible_sleep_on(&userui_wait_for_key); -+ -+ set_current_state(TASK_RUNNING); -+ remove_wait_queue(&userui_wait_for_key, &wait); -+} -+ -+/** -+ * userui_prepare_status - Display high level messages. -+ * -+ * @clearbar: Whether to clear the progress bar. -+ * @fmt...: New message for the title. -+ * -+ * Prepare the 'nice display', drawing the header and version, along with the -+ * current action and perhaps also resetting the progress bar. -+ */ -+static void userui_prepare_status(int clearbar, const char *fmt, ...) -+{ -+ va_list args; -+ -+ if (fmt) { -+ va_start(args, fmt); -+ lastheader_message_len = vsnprintf(lastheader, 512, fmt, args); -+ va_end(args); -+ } -+ -+ if (clearbar) -+ toi_update_status(0, 1, NULL); -+ -+ if (ui_helper_data.pid == -1) -+ printk(KERN_EMERG "%s\n", lastheader); -+ else -+ toi_message(0, TOI_STATUS, 1, lastheader, NULL); -+} -+ -+/** -+ * toi_wait_for_keypress - Wait for keypress via userui. -+ * -+ * @timeout: Maximum time to wait. -+ * -+ * Wait for a keypress from userui. -+ * -+ * FIXME: Implement timeout? -+ */ -+static char userui_wait_for_keypress(int timeout) -+{ -+ char key = '\0'; -+ -+ if (ui_helper_data.pid != -1) { -+ wait_for_key_via_userui(); -+ key = ' '; -+ } -+ -+ return key; -+} -+ -+/** -+ * userui_abort_hibernate - Abort a cycle & tell user if they didn't request it. -+ * -+ * @result_code: Reason why we're aborting (1 << bit). -+ * @fmt: Message to display if telling the user what's going on. -+ * -+ * Abort a cycle. If this wasn't at the user's request (and we're displaying -+ * output), tell the user why and wait for them to acknowledge the message. -+ */ -+static void userui_abort_hibernate(int result_code, const char *fmt, ...) -+{ -+ va_list args; -+ int printed_len = 0; -+ -+ set_result_state(result_code); -+ -+ if (test_result_state(TOI_ABORTED)) -+ return; -+ -+ set_result_state(TOI_ABORTED); -+ -+ if (test_result_state(TOI_ABORT_REQUESTED)) -+ return; -+ -+ va_start(args, fmt); -+ printed_len = vsnprintf(local_printf_buf, sizeof(local_printf_buf), -+ fmt, args); -+ va_end(args); -+ if (ui_helper_data.pid != -1) -+ printed_len = sprintf(local_printf_buf + printed_len, -+ " (Press SPACE to continue)"); -+ -+ toi_prepare_status(CLEAR_BAR, "%s", local_printf_buf); -+ -+ if (ui_helper_data.pid != -1) -+ userui_wait_for_keypress(0); -+} -+ -+/** -+ * request_abort_hibernate - Abort hibernating or resuming at user request. -+ * -+ * Handle the user requesting the cancellation of a hibernation or resume by -+ * pressing escape. -+ */ -+static void request_abort_hibernate(void) -+{ -+ if (test_result_state(TOI_ABORT_REQUESTED) || -+ !test_action_state(TOI_CAN_CANCEL)) -+ return; -+ -+ if (test_toi_state(TOI_NOW_RESUMING)) { -+ toi_prepare_status(CLEAR_BAR, "Escape pressed. " -+ "Powering down again."); -+ set_toi_state(TOI_STOP_RESUME); -+ while (!test_toi_state(TOI_IO_STOPPED)) -+ schedule(); -+ if (toiActiveAllocator->mark_resume_attempted) -+ toiActiveAllocator->mark_resume_attempted(0); -+ toi_power_down(); -+ } -+ -+ toi_prepare_status(CLEAR_BAR, "--- ESCAPE PRESSED :" -+ " ABORTING HIBERNATION ---"); -+ set_abort_result(TOI_ABORT_REQUESTED); -+ wake_up_interruptible(&userui_wait_for_key); -+} -+ -+/** -+ * userui_user_rcv_msg - Receive a netlink message from userui. -+ * -+ * @skb: skb received. -+ * @nlh: Netlink header received. -+ */ -+static int userui_user_rcv_msg(struct sk_buff *skb, struct nlmsghdr *nlh) -+{ -+ int type; -+ int *data; -+ -+ type = nlh->nlmsg_type; -+ -+ /* A control message: ignore them */ -+ if (type < NETLINK_MSG_BASE) -+ return 0; -+ -+ /* Unknown message: reply with EINVAL */ -+ if (type >= USERUI_MSG_MAX) -+ return -EINVAL; -+ -+ /* All operations require privileges, even GET */ -+ if (security_netlink_recv(skb, CAP_NET_ADMIN)) -+ return -EPERM; -+ -+ /* Only allow one task to receive NOFREEZE privileges */ -+ if (type == NETLINK_MSG_NOFREEZE_ME && ui_helper_data.pid != -1) { -+ printk(KERN_INFO "Got NOFREEZE_ME request when " -+ "ui_helper_data.pid is %d.\n", ui_helper_data.pid); -+ return -EBUSY; -+ } -+ -+ data = (int *) NLMSG_DATA(nlh); -+ -+ switch (type) { -+ case USERUI_MSG_ABORT: -+ request_abort_hibernate(); -+ return 0; -+ case USERUI_MSG_GET_STATE: -+ toi_send_netlink_message(&ui_helper_data, -+ USERUI_MSG_GET_STATE, &toi_bkd.toi_action, -+ sizeof(toi_bkd.toi_action)); -+ return 0; -+ case USERUI_MSG_GET_DEBUG_STATE: -+ toi_send_netlink_message(&ui_helper_data, -+ USERUI_MSG_GET_DEBUG_STATE, -+ &toi_bkd.toi_debug_state, -+ sizeof(toi_bkd.toi_debug_state)); -+ return 0; -+ case USERUI_MSG_SET_STATE: -+ if (nlh->nlmsg_len < NLMSG_LENGTH(sizeof(int))) -+ return -EINVAL; -+ ui_nl_set_state(*data); -+ return 0; -+ case USERUI_MSG_SET_DEBUG_STATE: -+ if (nlh->nlmsg_len < NLMSG_LENGTH(sizeof(int))) -+ return -EINVAL; -+ toi_bkd.toi_debug_state = (*data); -+ return 0; -+ case USERUI_MSG_SPACE: -+ wake_up_interruptible(&userui_wait_for_key); -+ return 0; -+ case USERUI_MSG_GET_POWERDOWN_METHOD: -+ toi_send_netlink_message(&ui_helper_data, -+ USERUI_MSG_GET_POWERDOWN_METHOD, -+ &toi_poweroff_method, -+ sizeof(toi_poweroff_method)); -+ return 0; -+ case USERUI_MSG_SET_POWERDOWN_METHOD: -+ if (nlh->nlmsg_len != NLMSG_LENGTH(sizeof(char))) -+ return -EINVAL; -+ toi_poweroff_method = (unsigned long)(*data); -+ return 0; -+ case USERUI_MSG_GET_LOGLEVEL: -+ toi_send_netlink_message(&ui_helper_data, -+ USERUI_MSG_GET_LOGLEVEL, -+ &toi_bkd.toi_default_console_level, -+ sizeof(toi_bkd.toi_default_console_level)); -+ return 0; -+ case USERUI_MSG_SET_LOGLEVEL: -+ if (nlh->nlmsg_len < NLMSG_LENGTH(sizeof(int))) -+ return -EINVAL; -+ toi_bkd.toi_default_console_level = (*data); -+ return 0; -+ case USERUI_MSG_PRINTK: -+ printk(KERN_INFO "%s", (char *) data); -+ return 0; -+ } -+ -+ /* Unhandled here */ -+ return 1; -+} -+ -+/** -+ * userui_cond_pause - Possibly pause at user request. -+ * -+ * @pause: Whether to pause or just display the message. -+ * @message: Message to display at the start of pausing. -+ * -+ * Potentially pause and wait for the user to tell us to continue. We normally -+ * only pause when @pause is set. While paused, the user can do things like -+ * changing the loglevel, toggling the display of debugging sections and such -+ * like. -+ */ -+static void userui_cond_pause(int pause, char *message) -+{ -+ int displayed_message = 0, last_key = 0; -+ -+ while (last_key != 32 && -+ ui_helper_data.pid != -1 && -+ ((test_action_state(TOI_PAUSE) && pause) || -+ (test_action_state(TOI_SINGLESTEP)))) { -+ if (!displayed_message) { -+ toi_prepare_status(DONT_CLEAR_BAR, -+ "%s Press SPACE to continue.%s", -+ message ? message : "", -+ (test_action_state(TOI_SINGLESTEP)) ? -+ " Single step on." : ""); -+ displayed_message = 1; -+ } -+ last_key = userui_wait_for_keypress(0); -+ } -+ schedule(); -+} -+ -+/** -+ * userui_prepare_console - Prepare the console for use. -+ * -+ * Prepare a console for use, saving current kmsg settings and attempting to -+ * start userui. Console loglevel changes are handled by userui. -+ */ -+static void userui_prepare_console(void) -+{ -+ orig_kmsg = vt_kmsg_redirect(fg_console + 1); -+ -+ ui_helper_data.pid = -1; -+ -+ if (!userui_ops.enabled) { -+ printk(KERN_INFO "TuxOnIce: Userui disabled.\n"); -+ return; -+ } -+ -+ if (*ui_helper_data.program) -+ toi_netlink_setup(&ui_helper_data); -+ else -+ printk(KERN_INFO "TuxOnIce: Userui program not configured.\n"); -+} -+ -+/** -+ * userui_cleanup_console - Cleanup after a cycle. -+ * -+ * Tell userui to cleanup, and restore kmsg_redirect to its original value. -+ */ -+ -+static void userui_cleanup_console(void) -+{ -+ if (ui_helper_data.pid > -1) -+ toi_netlink_close(&ui_helper_data); -+ -+ vt_kmsg_redirect(orig_kmsg); -+} -+ -+/* -+ * User interface specific /sys/power/tuxonice entries. -+ */ -+ -+static struct toi_sysfs_data sysfs_params[] = { -+#if defined(CONFIG_NET) && defined(CONFIG_SYSFS) -+ SYSFS_BIT("enable_escape", SYSFS_RW, &toi_bkd.toi_action, -+ TOI_CAN_CANCEL, 0), -+ SYSFS_BIT("pause_between_steps", SYSFS_RW, &toi_bkd.toi_action, -+ TOI_PAUSE, 0), -+ SYSFS_INT("enabled", SYSFS_RW, &userui_ops.enabled, 0, 1, 0, NULL), -+ SYSFS_INT("progress_granularity", SYSFS_RW, &progress_granularity, 1, -+ 2048, 0, NULL), -+ SYSFS_STRING("program", SYSFS_RW, ui_helper_data.program, 255, 0, -+ set_ui_program_set), -+ SYSFS_INT("debug", SYSFS_RW, &ui_helper_data.debug, 0, 1, 0, NULL) -+#endif -+}; -+ -+static struct toi_module_ops userui_ops = { -+ .type = MISC_MODULE, -+ .name = "userui", -+ .shared_directory = "user_interface", -+ .module = THIS_MODULE, -+ .storage_needed = userui_storage_needed, -+ .save_config_info = userui_save_config_info, -+ .load_config_info = userui_load_config_info, -+ .memory_needed = userui_memory_needed, -+ .post_atomic_restore = userui_post_atomic_restore, -+ .sysfs_data = sysfs_params, -+ .num_sysfs_entries = sizeof(sysfs_params) / -+ sizeof(struct toi_sysfs_data), -+}; -+ -+static struct ui_ops my_ui_ops = { -+ .update_status = userui_update_status, -+ .message = userui_message, -+ .prepare_status = userui_prepare_status, -+ .abort = userui_abort_hibernate, -+ .cond_pause = userui_cond_pause, -+ .prepare = userui_prepare_console, -+ .cleanup = userui_cleanup_console, -+ .wait_for_key = userui_wait_for_keypress, -+}; -+ -+/** -+ * toi_user_ui_init - Boot time initialisation for user interface. -+ * -+ * Invoked from the core init routine. -+ */ -+static __init int toi_user_ui_init(void) -+{ -+ int result; -+ -+ ui_helper_data.nl = NULL; -+ strncpy(ui_helper_data.program, CONFIG_TOI_USERUI_DEFAULT_PATH, 255); -+ ui_helper_data.pid = -1; -+ ui_helper_data.skb_size = sizeof(struct userui_msg_params); -+ ui_helper_data.pool_limit = 6; -+ ui_helper_data.netlink_id = NETLINK_TOI_USERUI; -+ ui_helper_data.name = "userspace ui"; -+ ui_helper_data.rcv_msg = userui_user_rcv_msg; -+ ui_helper_data.interface_version = 8; -+ ui_helper_data.must_init = 0; -+ ui_helper_data.not_ready = userui_cleanup_console; -+ init_completion(&ui_helper_data.wait_for_process); -+ result = toi_register_module(&userui_ops); -+ if (!result) -+ result = toi_register_ui_ops(&my_ui_ops); -+ if (result) -+ toi_unregister_module(&userui_ops); -+ -+ return result; -+} -+ -+#ifdef MODULE -+/** -+ * toi_user_ui_ext - Cleanup code for if the core is unloaded. -+ */ -+static __exit void toi_user_ui_exit(void) -+{ -+ toi_netlink_close_complete(&ui_helper_data); -+ toi_remove_ui_ops(&my_ui_ops); -+ toi_unregister_module(&userui_ops); -+} -+ -+module_init(toi_user_ui_init); -+module_exit(toi_user_ui_exit); -+MODULE_AUTHOR("Nigel Cunningham"); -+MODULE_DESCRIPTION("TuxOnIce Userui Support"); -+MODULE_LICENSE("GPL"); -+#else -+late_initcall(toi_user_ui_init); -+#endif -diff --git a/kernel/power/user.c b/kernel/power/user.c -index bf0014d..d1c4ac2 100644 ---- a/kernel/power/user.c -+++ b/kernel/power/user.c -@@ -64,6 +64,7 @@ static struct snapshot_data { - } snapshot_state; - - atomic_t snapshot_device_available = ATOMIC_INIT(1); -+EXPORT_SYMBOL_GPL(snapshot_device_available); - - static int snapshot_open(struct inode *inode, struct file *filp) - { -diff --git a/kernel/printk.c b/kernel/printk.c -index 1751c45..b7257e3 100644 ---- a/kernel/printk.c -+++ b/kernel/printk.c -@@ -32,6 +32,7 @@ - #include - #include - #include -+#include - #include - #include - #include -@@ -68,6 +69,7 @@ int console_printk[4] = { - MINIMUM_CONSOLE_LOGLEVEL, /* minimum_console_loglevel */ - DEFAULT_CONSOLE_LOGLEVEL, /* default_console_loglevel */ - }; -+EXPORT_SYMBOL_GPL(console_printk); - - static int saved_console_loglevel = -1; - -@@ -956,6 +958,7 @@ void suspend_console(void) - console_suspended = 1; - up(&console_sem); - } -+EXPORT_SYMBOL_GPL(suspend_console); - - void resume_console(void) - { -@@ -965,6 +968,7 @@ void resume_console(void) - console_suspended = 0; - release_console_sem(); - } -+EXPORT_SYMBOL_GPL(resume_console); - - /** - * acquire_console_sem - lock the console system for exclusive use. -diff --git a/mm/bootmem.c b/mm/bootmem.c -index 7d14868..e01836f 100644 ---- a/mm/bootmem.c -+++ b/mm/bootmem.c -@@ -23,6 +23,7 @@ - unsigned long max_low_pfn; - unsigned long min_low_pfn; - unsigned long max_pfn; -+EXPORT_SYMBOL_GPL(max_pfn); - - #ifdef CONFIG_CRASH_DUMP - /* -diff --git a/mm/highmem.c b/mm/highmem.c -index 9c1e627..b0facc3 100644 ---- a/mm/highmem.c -+++ b/mm/highmem.c -@@ -57,6 +57,7 @@ unsigned int nr_free_highpages (void) - - return pages; - } -+EXPORT_SYMBOL_GPL(nr_free_highpages); - - static int pkmap_count[LAST_PKMAP]; - static unsigned int last_pkmap_nr; -diff --git a/mm/memory.c b/mm/memory.c -index 09e4b1b..fe93399 100644 ---- a/mm/memory.c -+++ b/mm/memory.c -@@ -1243,6 +1243,7 @@ no_page_table: - return ERR_PTR(-EFAULT); - return page; - } -+EXPORT_SYMBOL_GPL(follow_page); - - int __get_user_pages(struct task_struct *tsk, struct mm_struct *mm, - unsigned long start, int nr_pages, unsigned int gup_flags, -diff --git a/mm/mmzone.c b/mm/mmzone.c -index f5b7d17..72a6770 100644 ---- a/mm/mmzone.c -+++ b/mm/mmzone.c -@@ -14,6 +14,7 @@ struct pglist_data *first_online_pgdat(void) - { - return NODE_DATA(first_online_node); - } -+EXPORT_SYMBOL_GPL(first_online_pgdat); - - struct pglist_data *next_online_pgdat(struct pglist_data *pgdat) - { -@@ -23,6 +24,7 @@ struct pglist_data *next_online_pgdat(struct pglist_data *pgdat) - return NULL; - return NODE_DATA(nid); - } -+EXPORT_SYMBOL_GPL(next_online_pgdat); - - /* - * next_zone - helper magic for for_each_zone() -@@ -42,6 +44,7 @@ struct zone *next_zone(struct zone *zone) - } - return zone; - } -+EXPORT_SYMBOL_GPL(next_zone); - - static inline int zref_in_nodemask(struct zoneref *zref, nodemask_t *nodes) - { -diff --git a/mm/page-writeback.c b/mm/page-writeback.c -index 0b19943..4d31aa0 100644 ---- a/mm/page-writeback.c -+++ b/mm/page-writeback.c -@@ -99,6 +99,7 @@ unsigned int dirty_expire_interval = 30 * 100; /* centiseconds */ - * Flag that makes the machine dump writes/reads and block dirtyings. - */ - int block_dump; -+EXPORT_SYMBOL_GPL(block_dump); - - /* - * Flag that puts the machine in "laptop mode". Doubles as a timeout in jiffies: -diff --git a/mm/page_alloc.c b/mm/page_alloc.c -index 8deb9d0..2ffc3f4 100644 ---- a/mm/page_alloc.c -+++ b/mm/page_alloc.c -@@ -2106,6 +2106,26 @@ static unsigned int nr_free_zone_pages(int offset) - return sum; - } - -+static unsigned int nr_unallocated_zone_pages(int offset) -+{ -+ struct zoneref *z; -+ struct zone *zone; -+ -+ /* Just pick one node, since fallback list is circular */ -+ unsigned int sum = 0; -+ -+ struct zonelist *zonelist = node_zonelist(numa_node_id(), GFP_KERNEL); -+ -+ for_each_zone_zonelist(zone, z, zonelist, offset) { -+ unsigned long high = high_wmark_pages(zone); -+ unsigned long left = zone_page_state(zone, NR_FREE_PAGES); -+ if (left > high) -+ sum += left - high; -+ } -+ -+ return sum; -+} -+ - /* - * Amount of free RAM allocatable within ZONE_DMA and ZONE_NORMAL - */ -@@ -2116,6 +2136,15 @@ unsigned int nr_free_buffer_pages(void) - EXPORT_SYMBOL_GPL(nr_free_buffer_pages); - - /* -+ * Amount of free RAM allocatable within ZONE_DMA and ZONE_NORMAL -+ */ -+unsigned int nr_unallocated_buffer_pages(void) -+{ -+ return nr_unallocated_zone_pages(gfp_zone(GFP_USER)); -+} -+EXPORT_SYMBOL_GPL(nr_unallocated_buffer_pages); -+ -+/* - * Amount of free RAM allocatable within all zones - */ - unsigned int nr_free_pagecache_pages(void) -diff --git a/mm/shmem.c b/mm/shmem.c -index eef4ebe..1adeead 100644 ---- a/mm/shmem.c -+++ b/mm/shmem.c -@@ -1568,6 +1568,8 @@ static struct inode *shmem_get_inode(struct super_block *sb, int mode, - memset(info, 0, (char *)inode - (char *)info); - spin_lock_init(&info->lock); - info->flags = flags & VM_NORESERVE; -+ if (flags & VM_ATOMIC_COPY) -+ inode->i_flags |= S_ATOMIC_COPY; - INIT_LIST_HEAD(&info->swaplist); - cache_no_acl(inode); - -diff --git a/mm/swap_state.c b/mm/swap_state.c -index 6d1daeb..eced4ef 100644 ---- a/mm/swap_state.c -+++ b/mm/swap_state.c -@@ -46,6 +46,7 @@ struct address_space swapper_space = { - .i_mmap_nonlinear = LIST_HEAD_INIT(swapper_space.i_mmap_nonlinear), - .backing_dev_info = &swap_backing_dev_info, - }; -+EXPORT_SYMBOL_GPL(swapper_space); - - #define INC_CACHE_INFO(x) do { swap_cache_info.x++; } while (0) - -diff --git a/mm/swapfile.c b/mm/swapfile.c -index 6c0585b..9c563b5 100644 ---- a/mm/swapfile.c -+++ b/mm/swapfile.c -@@ -39,7 +39,6 @@ - static bool swap_count_continued(struct swap_info_struct *, pgoff_t, - unsigned char); - static void free_swap_count_continuations(struct swap_info_struct *); --static sector_t map_swap_entry(swp_entry_t, struct block_device**); - - static DEFINE_SPINLOCK(swap_lock); - static unsigned int nr_swapfiles; -@@ -477,6 +476,7 @@ noswap: - spin_unlock(&swap_lock); - return (swp_entry_t) {0}; - } -+EXPORT_SYMBOL_GPL(get_swap_page); - - /* The only caller of this function is now susupend routine */ - swp_entry_t get_swap_page_of_type(int type) -@@ -499,6 +499,7 @@ swp_entry_t get_swap_page_of_type(int type) - spin_unlock(&swap_lock); - return (swp_entry_t) {0}; - } -+EXPORT_SYMBOL_GPL(get_swap_page_of_type); - - static struct swap_info_struct *swap_info_get(swp_entry_t entry) - { -@@ -619,6 +620,7 @@ void swapcache_free(swp_entry_t entry, struct page *page) - spin_unlock(&swap_lock); - } - } -+EXPORT_SYMBOL_GPL(swap_free); - - /* - * How many references to page are currently swapped out? -@@ -1263,7 +1265,7 @@ static void drain_mmlist(void) - * Note that the type of this function is sector_t, but it returns page offset - * into the bdev, not sector offset. - */ --static sector_t map_swap_entry(swp_entry_t entry, struct block_device **bdev) -+sector_t map_swap_entry(swp_entry_t entry, struct block_device **bdev) - { - struct swap_info_struct *sis; - struct swap_extent *start_se; -@@ -1290,6 +1292,7 @@ static sector_t map_swap_entry(swp_entry_t entry, struct block_device **bdev) - BUG_ON(se == start_se); /* It *must* be present */ - } - } -+EXPORT_SYMBOL_GPL(map_swap_entry); - - /* - * Returns the page offset into bdev for the specified page's swap entry. -@@ -1632,6 +1635,7 @@ out_dput: - out: - return err; - } -+EXPORT_SYMBOL_GPL(sys_swapoff); - - #ifdef CONFIG_PROC_FS - /* iterator */ -@@ -2055,6 +2059,7 @@ out: - } - return error; - } -+EXPORT_SYMBOL_GPL(sys_swapon); - - void si_swapinfo(struct sysinfo *val) - { -@@ -2072,6 +2077,7 @@ void si_swapinfo(struct sysinfo *val) - val->totalswap = total_swap_pages + nr_to_be_unused; - spin_unlock(&swap_lock); - } -+EXPORT_SYMBOL_GPL(si_swapinfo); - - /* - * Verify that a swap entry is valid and increment its swap map count. -@@ -2179,6 +2185,13 @@ int swapcache_prepare(swp_entry_t entry) - return __swap_duplicate(entry, SWAP_HAS_CACHE); - } - -+ -+struct swap_info_struct *get_swap_info_struct(unsigned type) -+{ -+ return swap_info[type]; -+} -+EXPORT_SYMBOL_GPL(get_swap_info_struct); -+ - /* - * swap_lock prevents swap_map being freed. Don't grab an extra - * reference on the swaphandle, it doesn't matter if it becomes unused. -diff --git a/mm/vmscan.c b/mm/vmscan.c -index c26986c..ac2a07d 100644 ---- a/mm/vmscan.c -+++ b/mm/vmscan.c -@@ -2285,6 +2285,9 @@ void wakeup_kswapd(struct zone *zone, int order) - if (!populated_zone(zone)) - return; - -+ if (freezer_is_on()) -+ return; -+ - pgdat = zone->zone_pgdat; - if (zone_watermark_ok(zone, order, low_wmark_pages(zone), 0, 0)) - return; -@@ -2372,6 +2375,7 @@ unsigned long shrink_all_memory(unsigned long nr_to_reclaim) - - return nr_reclaimed; - } -+EXPORT_SYMBOL_GPL(shrink_all_memory); - #endif /* CONFIG_HIBERNATION */ - - /* It's optimal to keep kswapds on the same CPUs as their memory, but From 68f912b6e755a47e4fb9018729397942e0681a90 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Mon, 3 May 2010 05:55:51 +0200 Subject: [PATCH 265/320] xbmc: - update to xbmc-29740 --- .../001-xbmc-fix_libcurl.so_detection.diff | 12 - .../201_xbmc-let_select_XBMCProjectM-0.1.diff | 32 +- .../patches/202_xbmc-let_select_RSXS-0.1.diff | 32 +- ...ariable_GCC_instead_hardcoded_gcc-0.1.diff | 96 +-- ...d_DESTDIR_support_to_make_install-0.1.diff | 17 +- ...bmc-add_udisks_and_upower_support-0.1.diff | 734 ------------------ packages/mediacenter/xbmc/url | 2 +- 7 files changed, 52 insertions(+), 873 deletions(-) delete mode 100644 packages/mediacenter/xbmc/patches/001-xbmc-fix_libcurl.so_detection.diff delete mode 100644 packages/mediacenter/xbmc/patches/404-xbmc-add_udisks_and_upower_support-0.1.diff diff --git a/packages/mediacenter/xbmc/patches/001-xbmc-fix_libcurl.so_detection.diff b/packages/mediacenter/xbmc/patches/001-xbmc-fix_libcurl.so_detection.diff deleted file mode 100644 index 57772d9445..0000000000 --- a/packages/mediacenter/xbmc/patches/001-xbmc-fix_libcurl.so_detection.diff +++ /dev/null @@ -1,12 +0,0 @@ -diff -Naur xbmc-29428/configure.in xbmc-29428.patch/configure.in ---- xbmc-29428/configure.in 2010-04-22 00:56:44.000000000 +0200 -+++ xbmc-29428.patch/configure.in 2010-04-22 19:06:31.906738563 +0200 -@@ -478,7 +478,7 @@ - while read output; do objdump -p $output | \ - grep SONAME | \ - awk 'BEGIN { FS = " " } ; { print $2 }'; done) -- if [ -z "$LIBCURL_BASENAME" ]; then -+ if [[ -z "$LIBCURL_BASENAME" ]]; then - echo "Unable to determine basename of libcurl library" - fi - diff --git a/packages/mediacenter/xbmc/patches/201_xbmc-let_select_XBMCProjectM-0.1.diff b/packages/mediacenter/xbmc/patches/201_xbmc-let_select_XBMCProjectM-0.1.diff index e6d31030d5..7ea8b5abbd 100644 --- a/packages/mediacenter/xbmc/patches/201_xbmc-let_select_XBMCProjectM-0.1.diff +++ b/packages/mediacenter/xbmc/patches/201_xbmc-let_select_XBMCProjectM-0.1.diff @@ -1,6 +1,6 @@ -diff -Naur xbmc-28910/configure.in xbmc-28910.patch/configure.in ---- xbmc-28910/configure.in 2010-03-28 18:55:35.040753605 +0200 -+++ xbmc-28910.patch/configure.in 2010-03-28 18:58:11.605628523 +0200 +diff -Naur xbmc-29740/configure.in xbmc-29740.patch/configure.in +--- xbmc-29740/configure.in 2010-05-03 03:25:29.000000000 +0200 ++++ xbmc-29740.patch/configure.in 2010-05-03 04:05:13.412131036 +0200 @@ -23,6 +23,8 @@ xrandr_disabled="== XRandR support disabled. SDL will be used for resolution support. ==" goom_enabled="== GOOM enabled. ==" @@ -10,7 +10,7 @@ diff -Naur xbmc-28910/configure.in xbmc-28910.patch/configure.in pulse_not_found="== Could not find libpulse. PulseAudio support disabled. ==" pulse_disabled="== PulseAudio support manually disabled. ==" faac_not_found="== Could not find libfaac. FAAC support disabled. ==" -@@ -152,6 +154,12 @@ +@@ -168,6 +170,12 @@ [use_goom=$enableval], [use_goom=no]) @@ -23,7 +23,7 @@ diff -Naur xbmc-28910/configure.in xbmc-28910.patch/configure.in AC_PATH_PROG(CCACHE,ccache,none) AC_ARG_ENABLE([ccache], [AS_HELP_STRING([--enable-ccache], -@@ -531,6 +539,15 @@ +@@ -579,6 +587,15 @@ fi fi @@ -37,9 +37,9 @@ diff -Naur xbmc-28910/configure.in xbmc-28910.patch/configure.in +fi + ### External libraries checks - if test "$use_external_libraries" = "yes"; then - AC_MSG_NOTICE($external_libraries_enabled) -@@ -862,6 +879,12 @@ + # External FFmpeg + if test "$use_external_ffmpeg" = "yes"; then +@@ -943,6 +960,12 @@ final_message="$final_message\n GOOM:\t\tNo" fi @@ -52,15 +52,15 @@ diff -Naur xbmc-28910/configure.in xbmc-28910.patch/configure.in if test "$use_pcre" = "yes"; then final_message="$final_message\n PCRE Support:\tYes" else -@@ -1106,6 +1129,7 @@ +@@ -1181,6 +1204,7 @@ AC_SUBST(SDL_DEFINES) AC_SUBST(BUILD_DVDCSS) AC_SUBST(BUILD_GOOM) +AC_SUBST(BUILD_XBMCPROJECTM) - AC_SUBST(USE_EXTERNAL_LIBRARIES) AC_SUBST(USE_EXTERNAL_FFMPEG) AC_SUBST(USE_EXTERNAL_LIBA52) -@@ -1451,7 +1475,7 @@ + AC_SUBST(USE_EXTERNAL_LIBDTS) +@@ -1535,7 +1559,7 @@ -DSYSCONF_INSTALL_DIR:PATH="${sysconfdir}" -DSHARE_INSTALL_PREFIX:PATH="${datadir}" . set +x fi @@ -69,10 +69,10 @@ diff -Naur xbmc-28910/configure.in xbmc-28910.patch/configure.in XB_CONFIG_MODULE([xbmc/visualizations/Goom/goom2k4-0],[ if test "$host_vendor" != "apple" ; then -diff -Naur xbmc-28910/Makefile.in xbmc-28910.patch/Makefile.in ---- xbmc-28910/Makefile.in 2010-03-28 17:12:32.000000000 +0200 -+++ xbmc-28910.patch/Makefile.in 2010-03-28 18:58:11.636752616 +0200 -@@ -105,8 +105,10 @@ +diff -Naur xbmc-29740/Makefile.in xbmc-29740.patch/Makefile.in +--- xbmc-29740/Makefile.in 2010-05-03 03:25:29.000000000 +0200 ++++ xbmc-29740.patch/Makefile.in 2010-05-03 04:04:11.589130864 +0200 +@@ -106,8 +106,10 @@ VIS_DIRS=\ xbmc/visualizations/OpenGLSpectrum \ @@ -85,7 +85,7 @@ diff -Naur xbmc-28910/Makefile.in xbmc-28910.patch/Makefile.in ifeq ($(findstring osx,$(ARCH)), osx) VIS_DIRS+=xbmc/visualizations/iTunes endif -@@ -303,7 +305,9 @@ +@@ -306,7 +308,9 @@ visualizations: exports $(MAKE) -C xbmc/visualizations/OpenGLSpectrum $(MAKE) -C xbmc/visualizations/WaveForm diff --git a/packages/mediacenter/xbmc/patches/202_xbmc-let_select_RSXS-0.1.diff b/packages/mediacenter/xbmc/patches/202_xbmc-let_select_RSXS-0.1.diff index caa0a141ee..612ee758bd 100644 --- a/packages/mediacenter/xbmc/patches/202_xbmc-let_select_RSXS-0.1.diff +++ b/packages/mediacenter/xbmc/patches/202_xbmc-let_select_RSXS-0.1.diff @@ -1,6 +1,6 @@ -diff -Naur xbmc-28910/configure.in xbmc-28910.patch/configure.in ---- xbmc-28910/configure.in 2010-03-28 19:01:27.995753591 +0200 -+++ xbmc-28910.patch/configure.in 2010-03-28 19:02:17.307753519 +0200 +diff -Naur xbmc-29740/configure.in xbmc-29740.patch/configure.in +--- xbmc-29740/configure.in 2010-05-03 04:06:14.609255790 +0200 ++++ xbmc-29740.patch/configure.in 2010-05-03 04:07:44.163129774 +0200 @@ -25,6 +25,8 @@ goom_disabled="== GOOM disabled. ==" xbmcprojectm_enabled="== XBMCProjectM enabled. ==" @@ -10,7 +10,7 @@ diff -Naur xbmc-28910/configure.in xbmc-28910.patch/configure.in pulse_not_found="== Could not find libpulse. PulseAudio support disabled. ==" pulse_disabled="== PulseAudio support manually disabled. ==" faac_not_found="== Could not find libfaac. FAAC support disabled. ==" -@@ -160,6 +162,12 @@ +@@ -176,6 +178,12 @@ [use_xbmcprojectm=$enableval], [use_xbmcprojectm=yes]) @@ -23,7 +23,7 @@ diff -Naur xbmc-28910/configure.in xbmc-28910.patch/configure.in AC_PATH_PROG(CCACHE,ccache,none) AC_ARG_ENABLE([ccache], [AS_HELP_STRING([--enable-ccache], -@@ -548,6 +556,15 @@ +@@ -596,6 +604,15 @@ BUILD_XBMCPROJECTM=1 fi @@ -37,9 +37,9 @@ diff -Naur xbmc-28910/configure.in xbmc-28910.patch/configure.in +fi + ### External libraries checks - if test "$use_external_libraries" = "yes"; then - AC_MSG_NOTICE($external_libraries_enabled) -@@ -885,6 +902,12 @@ + # External FFmpeg + if test "$use_external_ffmpeg" = "yes"; then +@@ -966,6 +983,12 @@ final_message="$final_message\n XBMCProjectM:\tNo" fi @@ -52,15 +52,15 @@ diff -Naur xbmc-28910/configure.in xbmc-28910.patch/configure.in if test "$use_pcre" = "yes"; then final_message="$final_message\n PCRE Support:\tYes" else -@@ -1130,6 +1153,7 @@ +@@ -1205,6 +1228,7 @@ AC_SUBST(BUILD_DVDCSS) AC_SUBST(BUILD_GOOM) AC_SUBST(BUILD_XBMCPROJECTM) +AC_SUBST(BUILD_RSXS) - AC_SUBST(USE_EXTERNAL_LIBRARIES) AC_SUBST(USE_EXTERNAL_FFMPEG) AC_SUBST(USE_EXTERNAL_LIBA52) -@@ -1529,7 +1553,7 @@ + AC_SUBST(USE_EXTERNAL_LIBDTS) +@@ -1613,7 +1637,7 @@ --disable-lattice \ --disable-skyrocket fi @@ -69,10 +69,10 @@ diff -Naur xbmc-28910/configure.in xbmc-28910.patch/configure.in XB_CONFIG_MODULE([xbmc/cores/dvdplayer/Codecs/libbdnav/], [ if test "$host_vendor" = "apple" ; then -diff -Naur xbmc-28910/Makefile.in xbmc-28910.patch/Makefile.in ---- xbmc-28910/Makefile.in 2010-03-28 19:01:27.997753604 +0200 -+++ xbmc-28910.patch/Makefile.in 2010-03-28 19:02:17.308751221 +0200 -@@ -100,8 +100,10 @@ +diff -Naur xbmc-29740/Makefile.in xbmc-29740.patch/Makefile.in +--- xbmc-29740/Makefile.in 2010-05-03 04:06:14.610256210 +0200 ++++ xbmc-29740.patch/Makefile.in 2010-05-03 04:07:08.523256011 +0200 +@@ -101,8 +101,10 @@ lib/xbmc-dll-symbols \ lib/jsoncpp/jsoncpp/src/lib_json @@ -85,7 +85,7 @@ diff -Naur xbmc-28910/Makefile.in xbmc-28910.patch/Makefile.in VIS_DIRS=\ xbmc/visualizations/OpenGLSpectrum \ -@@ -317,7 +319,9 @@ +@@ -320,7 +322,9 @@ endif endif screensavers: exports diff --git a/packages/mediacenter/xbmc/patches/303-xbmc-use_variable_GCC_instead_hardcoded_gcc-0.1.diff b/packages/mediacenter/xbmc/patches/303-xbmc-use_variable_GCC_instead_hardcoded_gcc-0.1.diff index 182c72f5ed..fed04421e0 100644 --- a/packages/mediacenter/xbmc/patches/303-xbmc-use_variable_GCC_instead_hardcoded_gcc-0.1.diff +++ b/packages/mediacenter/xbmc/patches/303-xbmc-use_variable_GCC_instead_hardcoded_gcc-0.1.diff @@ -1,84 +1,12 @@ -diff -Naur xbmc-29428/configure.in xbmc-29428.patch/configure.in ---- xbmc-29428/configure.in 2010-04-22 00:56:44.000000000 +0200 -+++ xbmc-29428.patch/configure.in 2010-04-22 02:22:21.771774020 +0200 -@@ -474,7 +474,7 @@ - # check for library basenames - if test "$host_vendor" != "apple"; then - # libcurl -- LIBCURL_BASENAME=$(gcc $CFLAGS -print-file-name=libcurl.so | \ -+ LIBCURL_BASENAME=$($ac_cv_prog_CC $CFLAGS -print-file-name=libcurl.so | \ - while read output; do objdump -p $output | \ - grep SONAME | \ - awk 'BEGIN { FS = " " } ; { print $2 }'; done) -@@ -483,7 +483,7 @@ - fi - - # libFLAC -- LIBFLAC_BASENAME=$(gcc $CFLAGS -print-file-name=libFLAC.so | \ -+ LIBFLAC_BASENAME=$($ac_cv_prog_CC $CFLAGS -print-file-name=libFLAC.so | \ - while read output; do objdump -p $output | \ - grep SONAME | \ - awk 'BEGIN { FS = " " } ; { print $2 }'; done) -@@ -492,7 +492,7 @@ - fi - - # libvorbisfile -- LIBVORBISFILE_BASENAME=$(gcc $CFLAGS -print-file-name=libvorbisfile.so | \ -+ LIBVORBISFILE_BASENAME=$($ac_cv_prog_CC $CFLAGS -print-file-name=libvorbisfile.so | \ - while read output; do objdump -p $output | \ - grep SONAME | \ - awk 'BEGIN { FS = " " } ; { print $2 }'; done) -@@ -501,7 +501,7 @@ - fi - - # libmodplug -- LIBMODPLUG_BASENAME=$(gcc $CFLAGS -print-file-name=libmodplug.so | \ -+ LIBMODPLUG_BASENAME=$($ac_cv_prog_CC $CFLAGS -print-file-name=libmodplug.so | \ - while read output; do objdump -p $output | \ - grep SONAME | \ - awk 'BEGIN { FS = " " } ; { print $2 }'; done) -@@ -510,7 +510,7 @@ - fi - - # libfaad -- LIBFAAD_BASENAME=$(gcc $CFLAGS -print-file-name=libfaad.so | \ -+ LIBFAAD_BASENAME=$($ac_cv_prog_CC $CFLAGS -print-file-name=libfaad.so | \ - while read output; do objdump -p $output | \ - grep SONAME | \ - awk 'BEGIN { FS = " " } ; { print $2 }'; done) -@@ -519,7 +519,7 @@ - fi - - # libmad -- LIBMAD_BASENAME=$(gcc $CFLAGS -print-file-name=libmad.so | \ -+ LIBMAD_BASENAME=$($ac_cv_prog_CC $CFLAGS -print-file-name=libmad.so | \ - while read output; do objdump -p $output | \ - grep SONAME | \ - awk 'BEGIN { FS = " " } ; { print $2 }'; done) -@@ -528,7 +528,7 @@ - fi - - # libogg -- LIBOGG_BASENAME=$(gcc $CFLAGS -print-file-name=libogg.so | \ -+ LIBOGG_BASENAME=$($ac_cv_prog_CC $CFLAGS -print-file-name=libogg.so | \ - while read output; do objdump -p $output | \ - grep SONAME | \ - awk 'BEGIN { FS = " " } ; { print $2 }'; done) -@@ -537,7 +537,7 @@ - fi - - # libvorbisenc -- LIBVORBISENC_BASENAME=$(gcc $CFLAGS -print-file-name=libvorbisenc.so | \ -+ LIBVORBISENC_BASENAME=$($ac_cv_prog_CC $CFLAGS -print-file-name=libvorbisenc.so | \ - while read output; do objdump -p $output | \ - grep SONAME | \ - awk 'BEGIN { FS = " " } ; { print $2 }'; done) -@@ -546,7 +546,7 @@ - fi - - # libvorbis -- LIBVORBIS_BASENAME=$(gcc $CFLAGS -print-file-name=libvorbis.so | \ -+ LIBVORBIS_BASENAME=$($ac_cv_prog_CC $CFLAGS -print-file-name=libvorbis.so | \ - while read output; do objdump -p $output | \ - grep SONAME | \ - awk 'BEGIN { FS = " " } ; { print $2 }'; done) +diff -Naur xbmc-29740/configure.in xbmc-29740.patch/configure.in +--- xbmc-29740/configure.in 2010-05-03 04:08:41.115131030 +0200 ++++ xbmc-29740.patch/configure.in 2010-05-03 04:12:20.116129219 +0200 +@@ -499,7 +499,7 @@ + AC_DEFUN([XB_FIND_SONAME], + [ + AC_MSG_CHECKING([for lib$2 soname]) +- $1_SONAME=$( gcc -print-file-name=lib$2.so | \ ++ $1_SONAME=$( $CC -print-file-name=lib$2.so | \ + while read output; do objdump -p $output | \ + grep "SONAME" | \ + sed -e 's/ \+SONAME \+//'; done 2> /dev/null ) diff --git a/packages/mediacenter/xbmc/patches/403-xbmc-add_DESTDIR_support_to_make_install-0.1.diff b/packages/mediacenter/xbmc/patches/403-xbmc-add_DESTDIR_support_to_make_install-0.1.diff index aecb77d0bd..509472b745 100644 --- a/packages/mediacenter/xbmc/patches/403-xbmc-add_DESTDIR_support_to_make_install-0.1.diff +++ b/packages/mediacenter/xbmc/patches/403-xbmc-add_DESTDIR_support_to_make_install-0.1.diff @@ -1,7 +1,7 @@ -diff -Naur xbmc-28910/Makefile.in xbmc-28910.patch/Makefile.in ---- xbmc-28910/Makefile.in 2010-03-28 19:09:49.356628842 +0200 -+++ xbmc-28910.patch/Makefile.in 2010-03-28 19:28:17.265753408 +0200 -@@ -495,7 +495,7 @@ +diff -Naur xbmc-29740/Makefile.in xbmc-29740.patch/Makefile.in +--- xbmc-29740/Makefile.in 2010-05-03 04:08:41.116131093 +0200 ++++ xbmc-29740.patch/Makefile.in 2010-05-03 04:16:42.386130163 +0200 +@@ -497,7 +497,7 @@ $(MAKE) -C tools/TexturePacker/ install-bin: xbmc.bin # developement convenience target @@ -10,7 +10,7 @@ diff -Naur xbmc-28910/Makefile.in xbmc-28910.patch/Makefile.in ifeq ($(findstring osx,$(ARCH)), osx) # TODO: add osx install -@@ -503,55 +503,55 @@ +@@ -505,53 +505,53 @@ install: install-binaries install-arch install-datas install-web install-binaries: install-scripts @@ -25,8 +25,8 @@ diff -Naur xbmc-28910/Makefile.in xbmc-28910.patch/Makefile.in install-arch: @# Arch dependent files -- @find system screensavers visualisations -regextype posix-extended -type f -not -iregex ".*svn.*|.*win32(dx)?\.vis|.*osx\.vis" -iregex ".*$(ARCH).*|.*\.vis|.*\.xbs" -exec install -D "{}" $(prefix)/share/xbmc/"{}" \; -printf " -- %-75.75f\r" -+ @find system screensavers visualisations -regextype posix-extended -type f -not -iregex ".*svn.*|.*win32(dx)?\.vis|.*osx\.vis" -iregex ".*$(ARCH).*|.*\.vis|.*\.xbs" -exec install -D "{}" $(DESTDIR)/$(prefix)/share/xbmc/"{}" \; -printf " -- %-75.75f\r" +- @find system addons -regextype posix-extended -type f -not -iregex ".*svn.*|.*win32(dx)?\.vis|.*osx\.vis" -iregex ".*$(ARCH).*|.*\.vis|.*\.xbs" -exec install -D "{}" $(prefix)/share/xbmc/"{}" \; -printf " -- %-75.75f\r" ++ @find system addons -regextype posix-extended -type f -not -iregex ".*svn.*|.*win32(dx)?\.vis|.*osx\.vis" -iregex ".*$(ARCH).*|.*\.vis|.*\.xbs" -exec install -D "{}" $(DESTDIR)/$(prefix)/share/xbmc/"{}" \; -printf " -- %-75.75f\r" install-scripts: - @install -D tools/Linux/xbmc.sh $(prefix)/bin/xbmc @@ -49,9 +49,6 @@ diff -Naur xbmc-28910/Makefile.in xbmc-28910.patch/Makefile.in @# Arch independent files - @find addons language media scripts sounds userdata system -regextype posix-extended -type f -not -iregex ".*svn.*|.*\.so|.*\.dll|.*\.pyd|.*python/.*\.zlib" -exec install -D -m 0644 "{}" $(prefix)/share/xbmc/"{}" \; -printf " -- %-75.75f\r" + @find addons language media scripts sounds userdata system -regextype posix-extended -type f -not -iregex ".*svn.*|.*\.so|.*\.dll|.*\.pyd|.*python/.*\.zlib" -exec install -D -m 0644 "{}" $(DESTDIR)/$(prefix)/share/xbmc/"{}" \; -printf " -- %-75.75f\r" - @# Skins -- @find skin -regextype posix-extended -type f -not -iregex '.*/\.svn/.*|^skin/[^/]*/media/.*[^x][^b][^t]' -exec install -D -m 0644 '{}' $(prefix)/share/xbmc/'{}' \; -printf " -- %-75.75f\r" -+ @find skin -regextype posix-extended -type f -not -iregex '.*/\.svn/.*|^skin/[^/]*/media/.*[^x][^b][^t]' -exec install -D -m 0644 '{}' $(DESTDIR)/$(prefix)/share/xbmc/'{}' \; -printf " -- %-75.75f\r" @# Icons and links - @mkdir -p $(prefix)/share/applications $(prefix)/share/pixmaps - @cp -a tools/Linux/xbmc.png $(prefix)/share/pixmaps/ diff --git a/packages/mediacenter/xbmc/patches/404-xbmc-add_udisks_and_upower_support-0.1.diff b/packages/mediacenter/xbmc/patches/404-xbmc-add_udisks_and_upower_support-0.1.diff deleted file mode 100644 index b13b23d56d..0000000000 --- a/packages/mediacenter/xbmc/patches/404-xbmc-add_udisks_and_upower_support-0.1.diff +++ /dev/null @@ -1,734 +0,0 @@ -diff -Naur xbmc-29490/xbmc/linux/ConsoleUPowerSyscall.cpp xbmc-29490.patch/xbmc/linux/ConsoleUPowerSyscall.cpp ---- xbmc-29490/xbmc/linux/ConsoleUPowerSyscall.cpp 1970-01-01 01:00:00.000000000 +0100 -+++ xbmc-29490.patch/xbmc/linux/ConsoleUPowerSyscall.cpp 2010-04-25 23:12:52.124485047 +0200 -@@ -0,0 +1,143 @@ -+/* -+ * Copyright (C) 2005-2009 Team XBMC -+ * http://www.xbmc.org -+ * -+ * This Program is free software; you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License as published by -+ * the Free Software Foundation; either version 2, or (at your option) -+ * any later version. -+ * -+ * This Program is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with XBMC; see the file COPYING. If not, write to -+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. -+ * http://www.gnu.org/copyleft/gpl.html -+ * -+ */ -+ -+#include "system.h" -+#include "ConsoleUPowerSyscall.h" -+#include "utils/log.h" -+ -+#ifdef HAS_DBUS -+#include "Application.h" -+#include "LocalizeStrings.h" -+#include "DBusUtil.h" -+ -+CConsoleUPowerSyscall::CConsoleUPowerSyscall() -+{ -+ m_CanPowerdown = ConsoleKitMethodCall("CanStop"); -+ -+ // If "the name org.freedesktop.UPower was not provided by any .service files", -+ // GetVariant() would return NULL, and asBoolean() would crash. -+ CVariant canSuspend = CDBusUtil::GetVariant("org.freedesktop.UPower", "/org/freedesktop/UPower", "org.freedesktop.UPower", "can_suspend"); -+ -+ if ( !canSuspend.isNull() ) -+ m_CanSuspend = canSuspend.asBoolean(); -+ else -+ m_CanSuspend = false; -+ -+ CVariant canHibernate = CDBusUtil::GetVariant("org.freedesktop.UPower", "/org/freedesktop/UPower", "org.freedesktop.UPower", "can_hibernate"); -+ -+ if ( !canHibernate.isNull() ) -+ m_CanHibernate = canHibernate.asBoolean(); -+ else -+ m_CanHibernate = false; -+ -+ m_CanReboot = ConsoleKitMethodCall("CanRestart"); -+} -+ -+bool CConsoleUPowerSyscall::Powerdown() -+{ -+ CDBusMessage message("org.freedesktop.ConsoleKit", "/org/freedesktop/ConsoleKit/Manager", "org.freedesktop.ConsoleKit.Manager", "Stop"); -+ return message.SendSystem() != NULL; -+} -+ -+bool CConsoleUPowerSyscall::Suspend() -+{ -+ CDBusMessage message("org.freedesktop.UPower", "/org/freedesktop/UPower", "org.freedesktop.UPower", "Suspend"); -+ return message.SendSystem() != NULL; -+} -+ -+bool CConsoleUPowerSyscall::Hibernate() -+{ -+ CDBusMessage message("org.freedesktop.UPower", "/org/freedesktop/UPower", "org.freedesktop.UPower", "Hibernate"); -+ return message.SendSystem() != NULL; -+} -+ -+bool CConsoleUPowerSyscall::Reboot() -+{ -+ CDBusMessage message("org.freedesktop.ConsoleKit", "/org/freedesktop/ConsoleKit/Manager", "org.freedesktop.ConsoleKit.Manager", "Restart"); -+ return message.SendSystem() != NULL; -+} -+ -+bool CConsoleUPowerSyscall::CanPowerdown() -+{ -+ return m_CanPowerdown; -+} -+bool CConsoleUPowerSyscall::CanSuspend() -+{ -+ return m_CanSuspend; -+} -+bool CConsoleUPowerSyscall::CanHibernate() -+{ -+ return m_CanHibernate; -+} -+bool CConsoleUPowerSyscall::CanReboot() -+{ -+ return m_CanReboot; -+} -+ -+bool CConsoleUPowerSyscall::HasDeviceConsoleKit() -+{ -+ bool hasConsoleKitManager = false; -+ CDBusMessage consoleKitMessage("org.freedesktop.ConsoleKit", "/org/freedesktop/ConsoleKit/Manager", "org.freedesktop.ConsoleKit.Manager", "CanStop"); -+ -+ DBusError error; -+ dbus_error_init (&error); -+ DBusConnection *con = dbus_bus_get(DBUS_BUS_SYSTEM, &error); -+ -+ consoleKitMessage.Send(con, &error); -+ -+ if (!dbus_error_is_set(&error)) -+ hasConsoleKitManager = true; -+ else -+ CLog::Log(LOGDEBUG, "ConsoleKit.Manager: %s - %s", error.name, error.message); -+ -+ dbus_error_free (&error); -+ -+ bool hasUPower = false; -+ CDBusMessage deviceKitMessage("org.freedesktop.UDisks", "/org/freedesktop/UDisks", "org.freedesktop.UDisks", "EnumerateDevices"); -+ -+ deviceKitMessage.Send(con, &error); -+ -+ if (!dbus_error_is_set(&error)) -+ hasUPower = true; -+ else -+ CLog::Log(LOGDEBUG, "UPower: %s - %s", error.name, error.message); -+ -+ dbus_error_free (&error); -+ dbus_connection_unref(con); -+ -+ return hasUPower && hasConsoleKitManager; -+} -+ -+bool CConsoleUPowerSyscall::ConsoleKitMethodCall(const char *method) -+{ -+ CDBusMessage message("org.freedesktop.ConsoleKit", "/org/freedesktop/ConsoleKit/Manager", "org.freedesktop.ConsoleKit.Manager", method); -+ DBusMessage *reply = message.SendSystem(); -+ if (reply) -+ { -+ dbus_bool_t boolean = FALSE; -+ -+ if (dbus_message_get_args (reply, NULL, DBUS_TYPE_BOOLEAN, &boolean, DBUS_TYPE_INVALID)) -+ return boolean; -+ } -+ -+ return false; -+} -+#endif -diff -Naur xbmc-29490/xbmc/linux/ConsoleUPowerSyscall.h xbmc-29490.patch/xbmc/linux/ConsoleUPowerSyscall.h ---- xbmc-29490/xbmc/linux/ConsoleUPowerSyscall.h 1970-01-01 01:00:00.000000000 +0100 -+++ xbmc-29490.patch/xbmc/linux/ConsoleUPowerSyscall.h 2010-04-25 23:12:52.125484748 +0200 -@@ -0,0 +1,50 @@ -+/* -+ * Copyright (C) 2005-2009 Team XBMC -+ * http://www.xbmc.org -+ * -+ * This Program is free software; you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License as published by -+ * the Free Software Foundation; either version 2, or (at your option) -+ * any later version. -+ * -+ * This Program is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with XBMC; see the file COPYING. If not, write to -+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. -+ * http://www.gnu.org/copyleft/gpl.html -+ * -+ */ -+ -+#ifdef HAS_DBUS -+#include "IPowerSyscall.h" -+ -+class CConsoleUPowerSyscall : public IPowerSyscall -+{ -+public: -+ CConsoleUPowerSyscall(); -+ virtual ~CConsoleUPowerSyscall() { } -+ -+ virtual bool Powerdown(); -+ virtual bool Suspend(); -+ virtual bool Hibernate(); -+ virtual bool Reboot(); -+ -+ virtual bool CanPowerdown(); -+ virtual bool CanSuspend(); -+ virtual bool CanHibernate(); -+ virtual bool CanReboot(); -+ -+ static bool HasDeviceConsoleKit(); -+private: -+ static bool ConsoleKitMethodCall(const char *method); -+ -+ bool m_CanPowerdown; -+ bool m_CanSuspend; -+ bool m_CanHibernate; -+ bool m_CanReboot; -+}; -+#endif -diff -Naur xbmc-29490/xbmc/linux/LinuxStorageProvider.h xbmc-29490.patch/xbmc/linux/LinuxStorageProvider.h ---- xbmc-29490/xbmc/linux/LinuxStorageProvider.h 2010-04-24 22:43:12.000000000 +0200 -+++ xbmc-29490.patch/xbmc/linux/LinuxStorageProvider.h 2010-04-25 23:12:52.126484868 +0200 -@@ -22,6 +22,7 @@ - #include "IStorageProvider.h" - #include "HALProvider.h" - #include "DeviceKitDisksProvider.h" -+#include "UDisksProvider.h" - #include "PosixMountProvider.h" - - class CLinuxStorageProvider : public IStorageProvider -@@ -32,7 +33,9 @@ - m_instance = NULL; - - #ifdef HAS_DBUS -- if (CDeviceKitDisksProvider::HasDeviceKitDisks()) -+ if (CUDisksProvider::HasUDisks() ) { -+ m_instance = new CUDisksProvider(); -+ } else if (CDeviceKitDisksProvider::HasDeviceKitDisks()) - m_instance = new CDeviceKitDisksProvider(); - #endif - #ifdef HAS_HAL -diff -Naur xbmc-29490/xbmc/linux/Makefile.in xbmc-29490.patch/xbmc/linux/Makefile.in ---- xbmc-29490/xbmc/linux/Makefile.in 2010-04-24 22:43:12.000000000 +0200 -+++ xbmc-29490.patch/xbmc/linux/Makefile.in 2010-04-25 23:12:52.127484639 +0200 -@@ -7,7 +7,7 @@ - - CXXFLAGS+=-fPIC #-DHAS_SDL - --SRCS=ConvUtils.cpp XEventUtils.cpp XFileUtils.cpp XHandle.cpp XSyncUtils.cpp XTimeUtils.cpp XMemUtils.cpp XThreadUtils.cpp NetworkLinux.cpp LinuxResourceCounter.cpp LinuxTimezone.cpp XRandR.cpp XCriticalSection.cpp XLCDproc.cpp HALManager.cpp HALPowerSyscall.cpp ConsoleDeviceKitPowerSyscall.cpp DBusUtil.cpp DBusMessage.cpp ZeroconfAvahi.cpp ZeroconfBrowserAvahi.cpp HALProvider.cpp PosixMountProvider.cpp DeviceKitDisksProvider.cpp -+SRCS=ConvUtils.cpp XEventUtils.cpp XFileUtils.cpp XHandle.cpp XSyncUtils.cpp XTimeUtils.cpp XMemUtils.cpp XThreadUtils.cpp NetworkLinux.cpp LinuxResourceCounter.cpp LinuxTimezone.cpp XRandR.cpp XCriticalSection.cpp XLCDproc.cpp HALManager.cpp HALPowerSyscall.cpp ConsoleDeviceKitPowerSyscall.cpp DBusUtil.cpp DBusMessage.cpp ZeroconfAvahi.cpp ZeroconfBrowserAvahi.cpp HALProvider.cpp PosixMountProvider.cpp DeviceKitDisksProvider.cpp UDisksProvider.cpp ConsoleUPowerSyscall.cpp - - LIB=linux.a - -diff -Naur xbmc-29490/xbmc/linux/UDisksProvider.cpp xbmc-29490.patch/xbmc/linux/UDisksProvider.cpp ---- xbmc-29490/xbmc/linux/UDisksProvider.cpp 1970-01-01 01:00:00.000000000 +0100 -+++ xbmc-29490.patch/xbmc/linux/UDisksProvider.cpp 2010-04-25 23:12:52.129484321 +0200 -@@ -0,0 +1,385 @@ -+/* -+ * Copyright (C) 2005-2009 Team XBMC -+ * http://www.xbmc.org -+ * -+ * This Program is free software; you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License as published by -+ * the Free Software Foundation; either version 2, or (at your option) -+ * any later version. -+ * -+ * This Program is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with XBMC; see the file COPYING. If not, write to -+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. -+ * http://www.gnu.org/copyleft/gpl.html -+ * -+ */ -+#include "UDisksProvider.h" -+#ifdef HAS_DBUS -+#include "Util.h" -+#include "AdvancedSettings.h" -+#include "LocalizeStrings.h" -+#include "log.h" -+ -+CUDiskDevice::CUDiskDevice(const char *DeviceKitUDI) -+{ -+ m_DeviceKitUDI = DeviceKitUDI; -+ m_UDI = ""; -+ m_MountPath = ""; -+ m_FileSystem = ""; -+ m_isMounted = false; -+ m_isMountedByUs = false; -+ m_isRemovable = false; -+ m_isPartition = false; -+ m_isFileSystem = false; -+ m_isSystemInternal = false; -+ m_PartitionSizeGiB = 0.0f; -+ Update(); -+} -+ -+void CUDiskDevice::Update() -+{ -+ CStdString str = CDBusUtil::GetVariant("org.freedesktop.UDisks", m_DeviceKitUDI.c_str(), "org.freedesktop.UDisks.Device", "IdUsage").asString(); -+ m_isFileSystem = str.Equals("filesystem"); -+ if (m_isFileSystem) -+ { -+ CVariant properties = CDBusUtil::GetAll("org.freedesktop.UDisks", m_DeviceKitUDI.c_str(), "org.freedesktop.UDisks.Device"); -+ -+ m_UDI = properties["IdUuid"].asString(); -+ m_Label = properties["IdLabel"].asString(); -+ m_FileSystem = properties["IdType"].asString(); -+ if (properties["DeviceMountPaths"].size() > 0) -+ m_MountPath = properties["DeviceMountPaths"][0].asString(); -+ m_isMounted = properties["DeviceIsMounted"].asBoolean(); -+ -+ m_PartitionSizeGiB = properties["PartitionSize"].asUnsignedInteger() / 1024.0 / 1024.0 / 1024.0; -+ m_isPartition = properties["DeviceIsPartition"].asBoolean(); -+ m_isSystemInternal = properties["DeviceIsSystemInternal"].asBoolean(); -+ if (m_isPartition) -+ { -+ CVariant isRemovable = CDBusUtil::GetVariant("org.freedesktop.UDisks", properties["PartitionSlave"].asString(), "org.freedesktop.UDisks.Device", "DeviceIsRemovable"); -+ -+ if ( !isRemovable.isNull() ) -+ m_isRemovable = isRemovable.asBoolean(); -+ else -+ m_isRemovable = false; -+ } -+ else -+ m_isRemovable = properties["DeviceIsRemovable"].asBoolean(); -+ } -+} -+ -+bool CUDiskDevice::Mount() -+{ -+ if (!m_isMounted && !m_isSystemInternal && m_isFileSystem) -+ { -+ CLog::Log(LOGDEBUG, "UDisks: Mounting %s", m_DeviceKitUDI.c_str()); -+ CDBusMessage message("org.freedesktop.UDisks", m_DeviceKitUDI.c_str(), "org.freedesktop.UDisks.Device", "FilesystemMount"); -+ message.AppendArgument(""); -+ const char *array[] = {}; -+ message.AppendArgument(array, 0); -+ -+ DBusMessage *reply = message.SendSystem(); -+ if (reply) -+ { -+ char *mountPoint; -+ if (dbus_message_get_args (reply, NULL, DBUS_TYPE_STRING, &mountPoint, DBUS_TYPE_INVALID)) -+ { -+ m_MountPath = mountPoint; -+ CLog::Log(LOGDEBUG, "UDisks: Sucessfully mounted %s on %s", m_DeviceKitUDI.c_str(), mountPoint); -+ m_isMountedByUs = m_isMounted = true; -+ } -+ } -+ -+ return m_isMounted; -+ } -+ else -+ CLog::Log(LOGDEBUG, "UDisks: Is not able to mount %s", toString().c_str()); -+ -+ return false; -+} -+ -+bool CUDiskDevice::UnMount() -+{ -+ if (m_isMounted && !m_isSystemInternal && m_isFileSystem) -+ { -+ CDBusMessage message("org.freedesktop.UDisks", m_DeviceKitUDI.c_str(), "org.freedesktop.UDisks.Device", "FilesystemUnmount"); -+ -+ const char *array[1]; -+ message.AppendArgument(array, 0); -+ -+ DBusMessage *reply = message.SendSystem(); -+ if (reply) -+ m_isMountedByUs = m_isMounted = false; -+ -+ return !m_isMounted; -+ } -+ else -+ CLog::Log(LOGDEBUG, "UDisks: Is not able to unmount %s", toString().c_str()); -+ -+ return false; -+} -+ -+CMediaSource CUDiskDevice::ToMediaShare() -+{ -+ CMediaSource source; -+ source.strPath = m_MountPath; -+ if (m_Label.empty()) -+ source.strName.Format("%.1f GB %s", m_PartitionSizeGiB, g_localizeStrings.Get(155).c_str()); -+ else -+ source.strName = m_Label; -+ source.m_iDriveType = !m_isSystemInternal ? CMediaSource::SOURCE_TYPE_REMOVABLE : CMediaSource::SOURCE_TYPE_LOCAL; -+ source.m_ignore = true; -+ return source; -+} -+ -+bool CUDiskDevice::IsApproved() -+{ -+ return (m_isFileSystem && m_isMounted && m_UDI.length() > 0 && (m_FileSystem.length() > 0 && !m_FileSystem.Equals("swap")) && !m_MountPath.Equals("/")); -+} -+ -+#define BOOL2SZ(b) ((b) ? "true" : "false") -+ -+CStdString CUDiskDevice::toString() -+{ -+ CStdString str; -+ str.Format("DeviceUDI %s: IsFileSystem %s HasFileSystem %s " -+ "IsSystemInternal %s IsMounted %s IsRemovable %s IsPartition %s", -+ m_DeviceKitUDI.c_str(), BOOL2SZ(m_isFileSystem), m_FileSystem, -+ BOOL2SZ(m_isSystemInternal), BOOL2SZ(m_isMounted), -+ BOOL2SZ(m_isRemovable), BOOL2SZ(m_isPartition)); -+ -+ return str; -+} -+ -+CUDisksProvider::CUDisksProvider() -+{ -+ dbus_error_init (&m_error); -+ m_connection = dbus_bus_get(DBUS_BUS_SYSTEM, &m_error); -+ -+ dbus_bus_add_match(m_connection, "type='signal',interface='org.freedesktop.UDisks'", &m_error); -+ dbus_connection_flush(m_connection); -+ if (dbus_error_is_set(&m_error)) -+ { -+ CLog::Log(LOGERROR, "UDisks: Failed to attach to signal %s", m_error.message); -+ dbus_connection_unref(m_connection); -+ m_connection = NULL; -+ } -+} -+ -+CUDisksProvider::~CUDisksProvider() -+{ -+ DeviceMap::iterator itr; -+ -+ for (itr = m_AvailableDevices.begin(); itr != m_AvailableDevices.end(); ++itr) -+ delete m_AvailableDevices[itr->first]; -+ -+ m_AvailableDevices.clear(); -+ -+ if (m_connection) -+ { -+ dbus_connection_unref(m_connection); -+ m_connection = NULL; -+ } -+ -+ dbus_error_free (&m_error); -+} -+ -+void CUDisksProvider::Initialize() -+{ -+ CLog::Log(LOGDEBUG, "Selected UDisks as storage provider"); -+ m_DaemonVersion = atoi(CDBusUtil::GetVariant("org.freedesktop.UDisks", "/org/freedesktop/UDisks", "org.freedesktop.UDisks", "DaemonVersion").asString()); -+ CLog::Log(LOGDEBUG, "UDisks: DaemonVersion %i", m_DaemonVersion); -+ -+ CLog::Log(LOGDEBUG, "UDisks: Querying available devices"); -+ std::vector devices = EnumerateDisks(); -+ for (unsigned int i = 0; i < devices.size(); i++) -+ DeviceAdded(devices[i].c_str(), NULL); -+} -+ -+bool CUDisksProvider::Eject(CStdString mountpath) -+{ -+ DeviceMap::iterator itr; -+ CStdString path(mountpath); -+ CUtil::RemoveSlashAtEnd(path); -+ -+ for (itr = m_AvailableDevices.begin(); itr != m_AvailableDevices.end(); ++itr) -+ { -+ CUDiskDevice *device = itr->second; -+ if (device->m_MountPath.Equals(path)) -+ return device->UnMount(); -+ } -+ -+ return false; -+} -+ -+std::vector CUDisksProvider::GetDiskUsage() -+{ -+ std::vector devices; -+ DeviceMap::iterator itr; -+ -+ for(itr = m_AvailableDevices.begin(); itr != m_AvailableDevices.end(); ++itr) -+ { -+ CUDiskDevice *device = itr->second; -+ if (device->IsApproved()) -+ { -+ CStdString str; -+ str.Format("%s %.1f GiB", device->m_MountPath.c_str(), device->m_PartitionSizeGiB); -+ devices.push_back(str); -+ } -+ } -+ -+ return devices; -+} -+ -+bool CUDisksProvider::PumpDriveChangeEvents(IStorageEventsCallback *callback) -+{ -+ bool result = false; -+ if (m_connection) -+ { -+ dbus_connection_read_write(m_connection, 0); -+ DBusMessage *msg = dbus_connection_pop_message(m_connection); -+ -+ if (msg) -+ { -+ char *object; -+ if (dbus_message_get_args (msg, NULL, DBUS_TYPE_OBJECT_PATH, &object, DBUS_TYPE_INVALID)) -+ { -+ result = true; -+ if (dbus_message_is_signal(msg, "org.freedesktop.UDisks", "DeviceAdded")) -+ DeviceAdded(object, callback); -+ else if (dbus_message_is_signal(msg, "org.freedesktop.UDisks", "DeviceRemoved")) -+ DeviceRemoved(object, callback); -+ else if (dbus_message_is_signal(msg, "org.freedesktop.UDisks", "DeviceChanged")) -+ DeviceChanged(object, callback); -+ } -+ dbus_message_unref(msg); -+ } -+ } -+ return result; -+} -+ -+bool CUDisksProvider::HasUDisks() -+{ -+ bool hasUDisks = false; -+ CDBusMessage message("org.freedesktop.UDisks", "/org/freedesktop/UDisks", "org.freedesktop.UDisks", "EnumerateDevices"); -+ -+ DBusError error; -+ dbus_error_init (&error); -+ DBusConnection *con = dbus_bus_get(DBUS_BUS_SYSTEM, &error); -+ -+ message.Send(con, &error); -+ -+ if (!dbus_error_is_set(&error)) -+ hasUDisks = true; -+ else -+ CLog::Log(LOGDEBUG, "UDisks: %s - %s", error.name, error.message); -+ -+ dbus_error_free (&error); -+ dbus_connection_unref(con); -+ -+ return hasUDisks; -+} -+ -+void CUDisksProvider::DeviceAdded(const char *object, IStorageEventsCallback *callback) -+{ -+ CLog::Log(LOGDEBUG, "UDisks: DeviceAdded (%s)", object); -+ -+ if (m_AvailableDevices[object]) -+ { -+ CLog::Log(LOGWARNING, "UDisks: Inconsistency found! DeviceAdded on an indexed disk"); -+ delete m_AvailableDevices[object]; -+ } -+ -+ CUDiskDevice *device = NULL; -+ device = new CUDiskDevice(object); -+ m_AvailableDevices[object] = device; -+ -+ if (g_advancedSettings.m_handleMounting) -+ device->Mount(); -+ -+ CLog::Log(LOGDEBUG, "UDisks: DeviceAdded - %s", device->toString().c_str()); -+ if (device->m_isMounted && device->IsApproved()) -+ { -+ CLog::Log(LOGNOTICE, "UDisks: Added %s", device->m_MountPath.c_str()); -+ if (callback) -+ callback->OnStorageAdded(device->m_Label, device->m_MountPath); -+ } -+} -+ -+void CUDisksProvider::DeviceRemoved(const char *object, IStorageEventsCallback *callback) -+{ -+ CLog::Log(LOGDEBUG, "UDisks: DeviceRemoved (%s)", object); -+ -+ CUDiskDevice *device = m_AvailableDevices[object]; -+ if (device) -+ { -+ if (device->m_isMounted && callback) -+ callback->OnStorageUnsafelyRemoved(device->m_Label); -+ -+ delete m_AvailableDevices[object]; -+ m_AvailableDevices.erase(object); -+ } -+} -+ -+void CUDisksProvider::DeviceChanged(const char *object, IStorageEventsCallback *callback) -+{ -+ CLog::Log(LOGDEBUG, "UDisks: DeviceChanged (%s)", object); -+ -+ CUDiskDevice *device = m_AvailableDevices[object]; -+ if (device == NULL) -+ { -+ CLog::Log(LOGWARNING, "UDisks: Inconsistency found! DeviceChanged on an unindexed disk"); -+ DeviceAdded(object, callback); -+ } -+ else -+ { -+ bool mounted = device->m_isMounted; -+ device->Update(); -+ if (!mounted && device->m_isMounted && callback) -+ callback->OnStorageAdded(device->m_MountPath, device->m_Label); -+ else if (mounted && !device->m_isMounted && callback) -+ callback->OnStorageSafelyRemoved(device->m_Label); -+ -+ CLog::Log(LOGDEBUG, "UDisks: DeviceChanged - %s", device->toString().c_str()); -+ } -+} -+ -+std::vector CUDisksProvider::EnumerateDisks() -+{ -+ std::vector devices; -+ CDBusMessage message("org.freedesktop.UDisks", "/org/freedesktop/UDisks", "org.freedesktop.UDisks", "EnumerateDevices"); -+ DBusMessage *reply = message.SendSystem(); -+ if (reply) -+ { -+ char** disks = NULL; -+ int length = 0; -+ -+ if (dbus_message_get_args (reply, NULL, DBUS_TYPE_ARRAY, DBUS_TYPE_OBJECT_PATH, &disks, &length, DBUS_TYPE_INVALID)) -+ { -+ for (int i = 0; i < length; i++) -+ devices.push_back(disks[i]); -+ -+ dbus_free_string_array(disks); -+ } -+ } -+ -+ return devices; -+} -+ -+void CUDisksProvider::GetDisks(VECSOURCES& devices, bool EnumerateRemovable) -+{ -+ DeviceMap::iterator itr; -+ -+ for (itr = m_AvailableDevices.begin(); itr != m_AvailableDevices.end(); ++itr) -+ { -+ CUDiskDevice *device = itr->second; -+ if (device && device->IsApproved() && device->m_isSystemInternal != EnumerateRemovable) -+ devices.push_back(device->ToMediaShare()); -+ } -+} -+#endif -diff -Naur xbmc-29490/xbmc/linux/UDisksProvider.h xbmc-29490.patch/xbmc/linux/UDisksProvider.h ---- xbmc-29490/xbmc/linux/UDisksProvider.h 1970-01-01 01:00:00.000000000 +0100 -+++ xbmc-29490.patch/xbmc/linux/UDisksProvider.h 2010-04-25 23:12:52.130485628 +0200 -@@ -0,0 +1,86 @@ -+#pragma once -+/* -+ * Copyright (C) 2005-2009 Team XBMC -+ * http://www.xbmc.org -+ * -+ * This Program is free software; you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License as published by -+ * the Free Software Foundation; either version 2, or (at your option) -+ * any later version. -+ * -+ * This Program is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with XBMC; see the file COPYING. If not, write to -+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. -+ * http://www.gnu.org/copyleft/gpl.html -+ * -+ */ -+#include "IStorageProvider.h" -+#ifdef HAS_DBUS -+#include "DBusUtil.h" -+ -+class CUDiskDevice -+{ -+public: -+ CUDiskDevice(const char *DeviceKitUDI); -+ ~CUDiskDevice() { } -+ -+ void Update(); -+ -+ bool Mount(); -+ bool UnMount(); -+ -+ bool IsApproved(); -+ -+ CStdString toString(); -+ -+ CMediaSource ToMediaShare(); -+ -+ CStdString m_UDI, m_DeviceKitUDI, m_MountPath, m_FileSystem, m_Label; -+ bool m_isMounted, m_isMountedByUs, m_isRemovable, m_isPartition, m_isFileSystem, m_isSystemInternal; -+ float m_PartitionSizeGiB; -+}; -+ -+class CUDisksProvider : public IStorageProvider -+{ -+public: -+ CUDisksProvider(); -+ virtual ~CUDisksProvider(); -+ -+ virtual void Initialize(); -+ virtual void Stop() { } -+ -+ virtual void GetLocalDrives(VECSOURCES &localDrives) { GetDisks(localDrives, false); } -+ virtual void GetRemovableDrives(VECSOURCES &removableDrives) { GetDisks(removableDrives, true); } -+ -+ virtual bool Eject(CStdString mountpath); -+ -+ virtual std::vector GetDiskUsage(); -+ -+ virtual bool PumpDriveChangeEvents(IStorageEventsCallback *callback); -+ -+ static bool HasUDisks(); -+private: -+ typedef std::map DeviceMap; -+ typedef std::pair DevicePair; -+ -+ void DeviceAdded(const char *object, IStorageEventsCallback *callback); -+ void DeviceRemoved(const char *object, IStorageEventsCallback *callback); -+ void DeviceChanged(const char *object, IStorageEventsCallback *callback); -+ -+ std::vector EnumerateDisks(); -+ -+ void GetDisks(VECSOURCES& devices, bool EnumerateRemovable); -+ -+ int m_DaemonVersion; -+ -+ DeviceMap m_AvailableDevices; -+ -+ DBusConnection *m_connection; -+ DBusError m_error; -+}; -+#endif -diff -Naur xbmc-29490/xbmc/PowerManager.cpp xbmc-29490.patch/xbmc/PowerManager.cpp ---- xbmc-29490/xbmc/PowerManager.cpp 2010-04-24 22:43:14.000000000 +0200 -+++ xbmc-29490.patch/xbmc/PowerManager.cpp 2010-04-25 23:12:52.132484681 +0200 -@@ -35,6 +35,7 @@ - #ifdef __APPLE__ - #include "osx/CocoaPowerSyscall.h" - #elif defined(_LINUX) && defined(HAS_DBUS) -+#include "linux/ConsoleUPowerSyscall.h" - #include "linux/ConsoleDeviceKitPowerSyscall.h" - #ifdef HAS_HAL - #include "linux/HALPowerSyscall.h" -@@ -74,6 +75,8 @@ - #elif defined(_LINUX) && defined(HAS_DBUS) - if (CConsoleDeviceKitPowerSyscall::HasDeviceConsoleKit()) - m_instance = new CConsoleDeviceKitPowerSyscall(); -+ else if (CConsoleUPowerSyscall::HasDeviceConsoleKit()) -+ m_instance = new CConsoleUPowerSyscall(); - #ifdef HAS_HAL - else - m_instance = new CHALPowerSyscall(); diff --git a/packages/mediacenter/xbmc/url b/packages/mediacenter/xbmc/url index a97051b150..0aac1ae6ab 100644 --- a/packages/mediacenter/xbmc/url +++ b/packages/mediacenter/xbmc/url @@ -1 +1 @@ -http://sources.openelec.tv/svn/xbmc-29605.tar.bz2 +http://sources.openelec.tv/svn/xbmc-29740.tar.bz2 From 9f8260ab5fb5b7097f7f1d55493216af66abbbdb Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Mon, 3 May 2010 05:56:30 +0200 Subject: [PATCH 266/320] xbmc-theme-PM3-HD: - update to xbmc-theme-PM3-HD-29740 - make install script executable --- packages/mediacenter/xbmc-theme-PM3-HD/install | 0 packages/mediacenter/xbmc-theme-PM3-HD/url | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) mode change 100644 => 100755 packages/mediacenter/xbmc-theme-PM3-HD/install diff --git a/packages/mediacenter/xbmc-theme-PM3-HD/install b/packages/mediacenter/xbmc-theme-PM3-HD/install old mode 100644 new mode 100755 diff --git a/packages/mediacenter/xbmc-theme-PM3-HD/url b/packages/mediacenter/xbmc-theme-PM3-HD/url index 1c5183dbb3..14e5a13571 100644 --- a/packages/mediacenter/xbmc-theme-PM3-HD/url +++ b/packages/mediacenter/xbmc-theme-PM3-HD/url @@ -1 +1 @@ -http://sources.openelec.tv/svn/xbmc-theme-PM3-HD-29605.tar.bz2 +http://sources.openelec.tv/svn/xbmc-theme-PM3-HD-29740.tar.bz2 From fab5b8dedd50bdb0679351283b9b45611959b9f6 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Mon, 3 May 2010 05:56:48 +0200 Subject: [PATCH 267/320] xbmc-theme-Confluence: - update to xbmc-theme-Confluence-29740 --- packages/mediacenter/xbmc-theme-Confluence/url | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/mediacenter/xbmc-theme-Confluence/url b/packages/mediacenter/xbmc-theme-Confluence/url index 6cbaee5ac4..3515dba1a9 100644 --- a/packages/mediacenter/xbmc-theme-Confluence/url +++ b/packages/mediacenter/xbmc-theme-Confluence/url @@ -1 +1 @@ -http://sources.openelec.tv/svn/xbmc-theme-Confluence-29605.tar.bz2 +http://sources.openelec.tv/svn/xbmc-theme-Confluence-29740.tar.bz2 From 6963b672808e41ba41fd7107ce881feaab016b67 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Mon, 3 May 2010 05:57:26 +0200 Subject: [PATCH 268/320] mkpkg_xbmc: - remove any previous theme file --- tools/mkpkg/mkpkg_xbmc | 1 + 1 file changed, 1 insertion(+) diff --git a/tools/mkpkg/mkpkg_xbmc b/tools/mkpkg/mkpkg_xbmc index e22781a15e..43dae07746 100755 --- a/tools/mkpkg/mkpkg_xbmc +++ b/tools/mkpkg/mkpkg_xbmc @@ -19,6 +19,7 @@ echo "cleaning sources..." echo "seperating theme..." rm -rf xbmc-theme-Confluence-$SVN_REV mv xbmc-$SVN_REV/addons/skin.confluence xbmc-theme-Confluence-$SVN_REV + rm -rf xbmc-theme-PM3-HD-$SVN_REV mv xbmc-$SVN_REV/addons/skin.pm3-hd xbmc-theme-PM3-HD-$SVN_REV echo "cleaning sources..." From b222d1407830d578bc6d2647a64c2e66a29c09a1 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Mon, 3 May 2010 05:58:24 +0200 Subject: [PATCH 269/320] mkpkg_xbmc-pvr: - adapt mkpkg_xbmc-pvr to newest svn --- tools/mkpkg/mkpkg_xbmc-pvr | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/tools/mkpkg/mkpkg_xbmc-pvr b/tools/mkpkg/mkpkg_xbmc-pvr index 9a143245ad..f09a387f46 100755 --- a/tools/mkpkg/mkpkg_xbmc-pvr +++ b/tools/mkpkg/mkpkg_xbmc-pvr @@ -18,13 +18,14 @@ echo "cleaning sources..." echo "seperating theme..." rm -rf xbmc-pvr-theme-Confluence-$SVN_REV - mv xbmc-pvr-$SVN_REV/skin/Confluence xbmc-pvr-theme-Confluence-$SVN_REV + mv xbmc-pvr-$SVN_REV/addons/skin.confluence xbmc-pvr-theme-Confluence-$SVN_REV + rm -rf xbmc-pvr-theme-PM3-HD-$SVN_REV + mv xbmc-pvr-$SVN_REV/addons/skin.pm3-hd xbmc-pvr-theme-PM3-HD-$SVN_REV echo "cleaning sources..." - rm -rf xbmc-pvr-$SVN_REV/visualizations/XBMCProjectM/win32 + rm -rf xbmc-pvr-$SVN_REV/visualisations rm -rf xbmc-pvr-$SVN_REV/lib/libSDL-* rm -rf xbmc-pvr-$SVN_REV/lib/libcurl-* - rm -rf xbmc-pvr-$SVN_REV/skin rm -rf xbmc-pvr-$SVN_REV/project for i in "Changelog" "Fake\ Episode\ Maker" "MingwBuildEnvironment" \ @@ -40,7 +41,9 @@ echo "cleaning sources..." echo "packing sources..." tar cvjf xbmc-pvr-$SVN_REV.tar.bz2 xbmc-pvr-$SVN_REV tar cvjf xbmc-pvr-theme-Confluence-$SVN_REV.tar.bz2 xbmc-pvr-theme-Confluence-$SVN_REV + tar cvjf xbmc-pvr-theme-PM3-HD-$SVN_REV.tar.bz2 xbmc-pvr-theme-PM3-HD-$SVN_REV echo "remove temporary sourcedir..." rm -rf xbmc-pvr-$SVN_REV - rm -rf xbmc-pvr-theme-Confluence-$SVN_REV \ No newline at end of file + rm -rf xbmc-pvr-theme-Confluence-$SVN_REV + rm -rf xbmc-pvr-theme-PM3-HD-$SVN_REV \ No newline at end of file From 20d13e6fde4eeba41858d5462e774257fccf8895 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Tue, 4 May 2010 00:42:32 +0200 Subject: [PATCH 270/320] xbmc: - update to xbmc-29759 --- packages/mediacenter/xbmc/url | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/mediacenter/xbmc/url b/packages/mediacenter/xbmc/url index 0aac1ae6ab..306975395f 100644 --- a/packages/mediacenter/xbmc/url +++ b/packages/mediacenter/xbmc/url @@ -1 +1 @@ -http://sources.openelec.tv/svn/xbmc-29740.tar.bz2 +http://sources.openelec.tv/svn/xbmc-29759.tar.bz2 From 9af6a4e37bd88d5578d910a258b2db44578666f2 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Tue, 4 May 2010 00:42:51 +0200 Subject: [PATCH 271/320] xbmc-theme-Confluence: - update to xbmc-theme-Confluence-29759 --- packages/mediacenter/xbmc-theme-Confluence/url | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/mediacenter/xbmc-theme-Confluence/url b/packages/mediacenter/xbmc-theme-Confluence/url index 3515dba1a9..c4a759a223 100644 --- a/packages/mediacenter/xbmc-theme-Confluence/url +++ b/packages/mediacenter/xbmc-theme-Confluence/url @@ -1 +1 @@ -http://sources.openelec.tv/svn/xbmc-theme-Confluence-29740.tar.bz2 +http://sources.openelec.tv/svn/xbmc-theme-Confluence-29759.tar.bz2 From e6ff7dcceeb2868b74f2bc4b0a2f139634d5d1ef Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Tue, 4 May 2010 00:43:09 +0200 Subject: [PATCH 272/320] xbmc-theme-PM3-HD: - update to xbmc-theme-PM3-HD-29759 --- packages/mediacenter/xbmc-theme-PM3-HD/url | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/mediacenter/xbmc-theme-PM3-HD/url b/packages/mediacenter/xbmc-theme-PM3-HD/url index 14e5a13571..00fb3566c4 100644 --- a/packages/mediacenter/xbmc-theme-PM3-HD/url +++ b/packages/mediacenter/xbmc-theme-PM3-HD/url @@ -1 +1 @@ -http://sources.openelec.tv/svn/xbmc-theme-PM3-HD-29740.tar.bz2 +http://sources.openelec.tv/svn/xbmc-theme-PM3-HD-29759.tar.bz2 From 4f3970404c090fb8bc6f7162712eb87407f1d963 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Tue, 4 May 2010 11:08:38 +0200 Subject: [PATCH 273/320] LVM: - update to LVM2.2.02.64 --- packages/sysutils/LVM2/url | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/sysutils/LVM2/url b/packages/sysutils/LVM2/url index 5d60e08e67..20f12b2c86 100644 --- a/packages/sysutils/LVM2/url +++ b/packages/sysutils/LVM2/url @@ -1 +1 @@ -ftp://sources.redhat.com/pub/lvm2/LVM2.2.02.63.tgz +ftp://sources.redhat.com/pub/lvm2/LVM2.2.02.64.tgz From 8e6615f9f964cb19cf2f3e62cfb27f59323662d1 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Wed, 5 May 2010 21:42:54 +0200 Subject: [PATCH 274/320] new package: - add transmission bittorrent daemon --- packages/image/install | 3 ++ packages/network/transmission/build | 31 +++++++++++++ .../transmission/config/transmission.conf | 26 +++++++++++ .../transmission/init.d/43_transmission | 43 +++++++++++++++++++ packages/network/transmission/install | 24 +++++++++++ packages/network/transmission/url | 1 + projects/ION/options | 3 ++ projects/generic/options | 3 ++ projects/intel/options | 3 ++ 9 files changed, 137 insertions(+) create mode 100755 packages/network/transmission/build create mode 100644 packages/network/transmission/config/transmission.conf create mode 100755 packages/network/transmission/init.d/43_transmission create mode 100755 packages/network/transmission/install create mode 100644 packages/network/transmission/url diff --git a/packages/image/install b/packages/image/install index ef78007ecd..499c3f864a 100755 --- a/packages/image/install +++ b/packages/image/install @@ -67,6 +67,9 @@ case "$2" in # Network support [ "$NETWORK" = yes ] && $SCRIPTS/install network +# Transmission BitTorrent support + [ "$TRANSMISSION" = yes ] && $SCRIPTS/install transmission + # Graphic support [ ! "$DISPLAYSERVER" = no ] && $SCRIPTS/install $DISPLAYSERVER diff --git a/packages/network/transmission/build b/packages/network/transmission/build new file mode 100755 index 0000000000..bca83f05c9 --- /dev/null +++ b/packages/network/transmission/build @@ -0,0 +1,31 @@ +#!/bin/sh + +. config/options + +$SCRIPTS/build toolchain +$SCRIPTS/build zlib +$SCRIPTS/build openssl +$SCRIPTS/build curl + +cd $PKG_BUILD + +./configure --host=$TARGET_NAME \ + --build=$HOST_NAME \ + --prefix=/usr \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --disable-debug \ + --disable-static \ + --enable-shared \ + --enable-largefile \ + --disable-gtk \ + --disable-libnotify \ + --disable-libappindicator \ + --disable-libcanberra \ + --disable-gconf2 \ + --disable-nls \ + --enable-cli \ + --disable-mac \ + --enable-daemon \ + +make diff --git a/packages/network/transmission/config/transmission.conf b/packages/network/transmission/config/transmission.conf new file mode 100644 index 0000000000..b42588e335 --- /dev/null +++ b/packages/network/transmission/config/transmission.conf @@ -0,0 +1,26 @@ +# Setup Transmission BitTorrent daemon + +# start transmission at boot ( yes / no ) + TRANSMISSION_START="no" + +# Allow RPC access to a comma-delimited whitelist of IP addresses. +# Wildcards can be specified in an address by using '*'. Default: +# "127.0.0.1" Example: "127.0.0.*,192.168.1.*" + TRANSMISSION_IP="127.0.0.1,192.168.0.*" + +# use authentification for the web frontend ( yes / no ) + TRANSMISSION_AUTH="yes" + +# username for logging to the webfrontend + TRANSMISSION_USER="openelec" + +# password for logging to the webfrontend + TRANSMISSION_PWD="openelec" + +# incoming dir for not completed files (relative to downloaddir / +# "none" for disabling incoming dir) + TRANSMISSION_INCDIR="incoming" + +# watch dir for .torrent files (relative to downloaddir / +# "none" for disabling watch dir) + TRANSMISSION_WATCHDIR="watch" diff --git a/packages/network/transmission/init.d/43_transmission b/packages/network/transmission/init.d/43_transmission new file mode 100755 index 0000000000..aa02d5def5 --- /dev/null +++ b/packages/network/transmission/init.d/43_transmission @@ -0,0 +1,43 @@ +# start transmission bt daemon +# +# runlevels: openelec, textmode + +[ -f /storage/.config/transmission.conf ] && . /storage/.config/transmission.conf || exit 0 + +( + if [ "$TRANSMISSION_START" = "yes" ]; then + + progress "Starting Transmission BT daemon" + + TRANSMISSION_ARG="$TRANSMISSION_ARG -w /storage/downloads" + TRANSMISSION_ARG="$TRANSMISSION_ARG -e /var/log/transmission.log" + TRANSMISSION_ARG="$TRANSMISSION_ARG -g /storage/.cache/transmission" + TRANSMISSION_ARG="$TRANSMISSION_ARG -a $TRANSMISSION_IP" + + if [ "$TRANSMISSION_AUTH" = "yes" ]; then + TRANSMISSION_ARG="$TRANSMISSION_ARG -t" + TRANSMISSION_ARG="$TRANSMISSION_ARG -u $TRANSMISSION_USER" + TRANSMISSION_ARG="$TRANSMISSION_ARG -v $TRANSMISSION_PWD" + else + TRANSMISSION_ARG="$TRANSMISSION_ARG -T" + fi + + if [ "$TRANSMISSION_INCDIR" = "none" ]; then + TRANSMISSION_ARG="$TRANSMISSION_ARG --no-incomplete-dir" + else + TRANSMISSION_ARG="$TRANSMISSION_ARG --incomplete-dir \ + /storage/downloads/$TRANSMISSION_INCDIR" + $IONICE mkdir -p /storage/downloads/$TRANSMISSION_INCDIR + fi + + if [ "$TRANSMISSION_WATCHDIR" = "none" ]; then + TRANSMISSION_ARG="$TRANSMISSION_ARG --no-watch-dir" + else + TRANSMISSION_ARG="$TRANSMISSION_ARG --watch-dir \ + /storage/downloads/$TRANSMISSION_WATCHDIR" + $IONICE mkdir -p /storage/downloads/$TRANSMISSION_WATCHDIR + fi + + transmission-daemon $TRANSMISSION_ARG + fi +)& \ No newline at end of file diff --git a/packages/network/transmission/install b/packages/network/transmission/install new file mode 100755 index 0000000000..03aaad243e --- /dev/null +++ b/packages/network/transmission/install @@ -0,0 +1,24 @@ +#!/bin/sh + +. config/options + +$SCRIPTS/build zlib +$SCRIPTS/build openssl +$SCRIPTS/build curl + +PKG_DIR=`find $PACKAGES -type d -name $1` + +mkdir -p $INSTALL/usr/sbin + cp $PKG_BUILD/daemon/transmission-daemon $INSTALL/usr/sbin + cp $PKG_BUILD/daemon/transmission-remote $INSTALL/usr/sbin + +mkdir -p $INSTALL/usr/bin + cp $PKG_BUILD/cli/transmissioncli $INSTALL/usr/bin + +mkdir -p $INSTALL/usr/share/transmission/web + cp -R $PKG_BUILD/web/* $INSTALL/usr/share/transmission/web + find $INSTALL/usr/share/transmission/web -name "Makefile*" -exec rm -rf {} ";" + rm -rf $INSTALL/usr/share/transmission/web/LICENSE + +mkdir -p $INSTALL/usr/config + cp $PKG_DIR/config/transmission.conf $INSTALL/usr/config \ No newline at end of file diff --git a/packages/network/transmission/url b/packages/network/transmission/url new file mode 100644 index 0000000000..3b77ff5833 --- /dev/null +++ b/packages/network/transmission/url @@ -0,0 +1 @@ +http://mirrors.m0k.org/transmission/files/transmission-1.93.tar.bz2 \ No newline at end of file diff --git a/projects/ION/options b/projects/ION/options index 90aa5c90fb..081c8cfc81 100644 --- a/projects/ION/options +++ b/projects/ION/options @@ -71,6 +71,9 @@ # build and install Samba Server (yes / no) SAMBA_SERVER="yes" +# build and install Transmission BitTorrent daemon (yes / no) + TRANSMISSION="yes" + # todo (need for vdr?) SERVICES="yes" diff --git a/projects/generic/options b/projects/generic/options index 9445078e59..9c32b7efbf 100644 --- a/projects/generic/options +++ b/projects/generic/options @@ -71,6 +71,9 @@ # build and install Samba Server (yes / no) SAMBA_SERVER="yes" +# build and install Transmission BitTorrent daemon (yes / no) + TRANSMISSION="yes" + # todo (need for vdr?) SERVICES="yes" diff --git a/projects/intel/options b/projects/intel/options index a2f9a43a21..ccba140b6f 100644 --- a/projects/intel/options +++ b/projects/intel/options @@ -71,6 +71,9 @@ # build and install Samba Server (yes / no) SAMBA_SERVER="yes" +# build and install Transmission BitTorrent daemon (yes / no) + TRANSMISSION="yes" + # todo (need for vdr?) SERVICES="yes" From f8af0e6544939a549e9f1499b60494dbe2aa909c Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Wed, 5 May 2010 21:45:00 +0200 Subject: [PATCH 275/320] new package: - add transmission bittorent daemon --- packages/image/install | 3 ++ packages/network/transmission/build | 31 +++++++++++++ .../transmission/config/transmission.conf | 26 +++++++++++ .../transmission/init.d/43_transmission | 43 +++++++++++++++++++ packages/network/transmission/install | 24 +++++++++++ packages/network/transmission/url | 1 + projects/ION/options | 3 ++ projects/generic/options | 3 ++ projects/intel/options | 3 ++ 9 files changed, 137 insertions(+) create mode 100644 packages/network/transmission/build create mode 100644 packages/network/transmission/config/transmission.conf create mode 100644 packages/network/transmission/init.d/43_transmission create mode 100644 packages/network/transmission/install create mode 100644 packages/network/transmission/url diff --git a/packages/image/install b/packages/image/install index ef78007ecd..499c3f864a 100755 --- a/packages/image/install +++ b/packages/image/install @@ -67,6 +67,9 @@ case "$2" in # Network support [ "$NETWORK" = yes ] && $SCRIPTS/install network +# Transmission BitTorrent support + [ "$TRANSMISSION" = yes ] && $SCRIPTS/install transmission + # Graphic support [ ! "$DISPLAYSERVER" = no ] && $SCRIPTS/install $DISPLAYSERVER diff --git a/packages/network/transmission/build b/packages/network/transmission/build new file mode 100644 index 0000000000..bca83f05c9 --- /dev/null +++ b/packages/network/transmission/build @@ -0,0 +1,31 @@ +#!/bin/sh + +. config/options + +$SCRIPTS/build toolchain +$SCRIPTS/build zlib +$SCRIPTS/build openssl +$SCRIPTS/build curl + +cd $PKG_BUILD + +./configure --host=$TARGET_NAME \ + --build=$HOST_NAME \ + --prefix=/usr \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --disable-debug \ + --disable-static \ + --enable-shared \ + --enable-largefile \ + --disable-gtk \ + --disable-libnotify \ + --disable-libappindicator \ + --disable-libcanberra \ + --disable-gconf2 \ + --disable-nls \ + --enable-cli \ + --disable-mac \ + --enable-daemon \ + +make diff --git a/packages/network/transmission/config/transmission.conf b/packages/network/transmission/config/transmission.conf new file mode 100644 index 0000000000..b42588e335 --- /dev/null +++ b/packages/network/transmission/config/transmission.conf @@ -0,0 +1,26 @@ +# Setup Transmission BitTorrent daemon + +# start transmission at boot ( yes / no ) + TRANSMISSION_START="no" + +# Allow RPC access to a comma-delimited whitelist of IP addresses. +# Wildcards can be specified in an address by using '*'. Default: +# "127.0.0.1" Example: "127.0.0.*,192.168.1.*" + TRANSMISSION_IP="127.0.0.1,192.168.0.*" + +# use authentification for the web frontend ( yes / no ) + TRANSMISSION_AUTH="yes" + +# username for logging to the webfrontend + TRANSMISSION_USER="openelec" + +# password for logging to the webfrontend + TRANSMISSION_PWD="openelec" + +# incoming dir for not completed files (relative to downloaddir / +# "none" for disabling incoming dir) + TRANSMISSION_INCDIR="incoming" + +# watch dir for .torrent files (relative to downloaddir / +# "none" for disabling watch dir) + TRANSMISSION_WATCHDIR="watch" diff --git a/packages/network/transmission/init.d/43_transmission b/packages/network/transmission/init.d/43_transmission new file mode 100644 index 0000000000..aa02d5def5 --- /dev/null +++ b/packages/network/transmission/init.d/43_transmission @@ -0,0 +1,43 @@ +# start transmission bt daemon +# +# runlevels: openelec, textmode + +[ -f /storage/.config/transmission.conf ] && . /storage/.config/transmission.conf || exit 0 + +( + if [ "$TRANSMISSION_START" = "yes" ]; then + + progress "Starting Transmission BT daemon" + + TRANSMISSION_ARG="$TRANSMISSION_ARG -w /storage/downloads" + TRANSMISSION_ARG="$TRANSMISSION_ARG -e /var/log/transmission.log" + TRANSMISSION_ARG="$TRANSMISSION_ARG -g /storage/.cache/transmission" + TRANSMISSION_ARG="$TRANSMISSION_ARG -a $TRANSMISSION_IP" + + if [ "$TRANSMISSION_AUTH" = "yes" ]; then + TRANSMISSION_ARG="$TRANSMISSION_ARG -t" + TRANSMISSION_ARG="$TRANSMISSION_ARG -u $TRANSMISSION_USER" + TRANSMISSION_ARG="$TRANSMISSION_ARG -v $TRANSMISSION_PWD" + else + TRANSMISSION_ARG="$TRANSMISSION_ARG -T" + fi + + if [ "$TRANSMISSION_INCDIR" = "none" ]; then + TRANSMISSION_ARG="$TRANSMISSION_ARG --no-incomplete-dir" + else + TRANSMISSION_ARG="$TRANSMISSION_ARG --incomplete-dir \ + /storage/downloads/$TRANSMISSION_INCDIR" + $IONICE mkdir -p /storage/downloads/$TRANSMISSION_INCDIR + fi + + if [ "$TRANSMISSION_WATCHDIR" = "none" ]; then + TRANSMISSION_ARG="$TRANSMISSION_ARG --no-watch-dir" + else + TRANSMISSION_ARG="$TRANSMISSION_ARG --watch-dir \ + /storage/downloads/$TRANSMISSION_WATCHDIR" + $IONICE mkdir -p /storage/downloads/$TRANSMISSION_WATCHDIR + fi + + transmission-daemon $TRANSMISSION_ARG + fi +)& \ No newline at end of file diff --git a/packages/network/transmission/install b/packages/network/transmission/install new file mode 100644 index 0000000000..03aaad243e --- /dev/null +++ b/packages/network/transmission/install @@ -0,0 +1,24 @@ +#!/bin/sh + +. config/options + +$SCRIPTS/build zlib +$SCRIPTS/build openssl +$SCRIPTS/build curl + +PKG_DIR=`find $PACKAGES -type d -name $1` + +mkdir -p $INSTALL/usr/sbin + cp $PKG_BUILD/daemon/transmission-daemon $INSTALL/usr/sbin + cp $PKG_BUILD/daemon/transmission-remote $INSTALL/usr/sbin + +mkdir -p $INSTALL/usr/bin + cp $PKG_BUILD/cli/transmissioncli $INSTALL/usr/bin + +mkdir -p $INSTALL/usr/share/transmission/web + cp -R $PKG_BUILD/web/* $INSTALL/usr/share/transmission/web + find $INSTALL/usr/share/transmission/web -name "Makefile*" -exec rm -rf {} ";" + rm -rf $INSTALL/usr/share/transmission/web/LICENSE + +mkdir -p $INSTALL/usr/config + cp $PKG_DIR/config/transmission.conf $INSTALL/usr/config \ No newline at end of file diff --git a/packages/network/transmission/url b/packages/network/transmission/url new file mode 100644 index 0000000000..3b77ff5833 --- /dev/null +++ b/packages/network/transmission/url @@ -0,0 +1 @@ +http://mirrors.m0k.org/transmission/files/transmission-1.93.tar.bz2 \ No newline at end of file diff --git a/projects/ION/options b/projects/ION/options index 90aa5c90fb..081c8cfc81 100644 --- a/projects/ION/options +++ b/projects/ION/options @@ -71,6 +71,9 @@ # build and install Samba Server (yes / no) SAMBA_SERVER="yes" +# build and install Transmission BitTorrent daemon (yes / no) + TRANSMISSION="yes" + # todo (need for vdr?) SERVICES="yes" diff --git a/projects/generic/options b/projects/generic/options index 9445078e59..9c32b7efbf 100644 --- a/projects/generic/options +++ b/projects/generic/options @@ -71,6 +71,9 @@ # build and install Samba Server (yes / no) SAMBA_SERVER="yes" +# build and install Transmission BitTorrent daemon (yes / no) + TRANSMISSION="yes" + # todo (need for vdr?) SERVICES="yes" diff --git a/projects/intel/options b/projects/intel/options index a2f9a43a21..ccba140b6f 100644 --- a/projects/intel/options +++ b/projects/intel/options @@ -71,6 +71,9 @@ # build and install Samba Server (yes / no) SAMBA_SERVER="yes" +# build and install Transmission BitTorrent daemon (yes / no) + TRANSMISSION="yes" + # todo (need for vdr?) SERVICES="yes" From eea35d47b1d61f82bf5f247b3942b3c45a56f370 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Thu, 6 May 2010 00:23:33 +0200 Subject: [PATCH 276/320] xbmc: - update to xbmc-29818 --- packages/mediacenter/xbmc/url | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/mediacenter/xbmc/url b/packages/mediacenter/xbmc/url index 306975395f..2d2f808d42 100644 --- a/packages/mediacenter/xbmc/url +++ b/packages/mediacenter/xbmc/url @@ -1 +1 @@ -http://sources.openelec.tv/svn/xbmc-29759.tar.bz2 +http://sources.openelec.tv/svn/xbmc-29818.tar.bz2 From bfb405965da5350badef613ee80c5571c7f49963 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Thu, 6 May 2010 00:23:51 +0200 Subject: [PATCH 277/320] xbmc-theme-Confluence: - update to xbmc-theme-Confluence-29818 --- packages/mediacenter/xbmc-theme-Confluence/url | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/mediacenter/xbmc-theme-Confluence/url b/packages/mediacenter/xbmc-theme-Confluence/url index c4a759a223..fc60dd88b9 100644 --- a/packages/mediacenter/xbmc-theme-Confluence/url +++ b/packages/mediacenter/xbmc-theme-Confluence/url @@ -1 +1 @@ -http://sources.openelec.tv/svn/xbmc-theme-Confluence-29759.tar.bz2 +http://sources.openelec.tv/svn/xbmc-theme-Confluence-29818.tar.bz2 From 86ef8ae6818f483b0c656830b8ab35a7c4f7f0b2 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Thu, 6 May 2010 00:24:13 +0200 Subject: [PATCH 278/320] xbmc-theme-PM3-HD: - update to xbmc-theme-PM3-HD-29818 --- packages/mediacenter/xbmc-theme-PM3-HD/url | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/mediacenter/xbmc-theme-PM3-HD/url b/packages/mediacenter/xbmc-theme-PM3-HD/url index 00fb3566c4..15cf6f9d5f 100644 --- a/packages/mediacenter/xbmc-theme-PM3-HD/url +++ b/packages/mediacenter/xbmc-theme-PM3-HD/url @@ -1 +1 @@ -http://sources.openelec.tv/svn/xbmc-theme-PM3-HD-29759.tar.bz2 +http://sources.openelec.tv/svn/xbmc-theme-PM3-HD-29818.tar.bz2 From 96aa512a4dcc0954bfc43d9c0ab5900b8ff21c80 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Thu, 6 May 2010 00:24:58 +0200 Subject: [PATCH 279/320] transmission: - dont build and install transmissioncli and transmission-remote --- packages/network/transmission/build | 2 +- packages/network/transmission/install | 4 ---- 2 files changed, 1 insertion(+), 5 deletions(-) mode change 100644 => 100755 packages/network/transmission/build mode change 100644 => 100755 packages/network/transmission/install diff --git a/packages/network/transmission/build b/packages/network/transmission/build old mode 100644 new mode 100755 index bca83f05c9..f5d9252226 --- a/packages/network/transmission/build +++ b/packages/network/transmission/build @@ -24,7 +24,7 @@ cd $PKG_BUILD --disable-libcanberra \ --disable-gconf2 \ --disable-nls \ - --enable-cli \ + --disable-cli \ --disable-mac \ --enable-daemon \ diff --git a/packages/network/transmission/install b/packages/network/transmission/install old mode 100644 new mode 100755 index 03aaad243e..8be2bf7b95 --- a/packages/network/transmission/install +++ b/packages/network/transmission/install @@ -10,10 +10,6 @@ PKG_DIR=`find $PACKAGES -type d -name $1` mkdir -p $INSTALL/usr/sbin cp $PKG_BUILD/daemon/transmission-daemon $INSTALL/usr/sbin - cp $PKG_BUILD/daemon/transmission-remote $INSTALL/usr/sbin - -mkdir -p $INSTALL/usr/bin - cp $PKG_BUILD/cli/transmissioncli $INSTALL/usr/bin mkdir -p $INSTALL/usr/share/transmission/web cp -R $PKG_BUILD/web/* $INSTALL/usr/share/transmission/web From 60910917e4fe32aaacd810b821bfea00c8393c87 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Thu, 6 May 2010 00:25:20 +0200 Subject: [PATCH 280/320] autoupdate: - fix locking --- packages/sysutils/autoupdate/scripts/autoupdate.devel | 8 +++----- packages/sysutils/autoupdate/scripts/autoupdate.release | 8 +++----- 2 files changed, 6 insertions(+), 10 deletions(-) diff --git a/packages/sysutils/autoupdate/scripts/autoupdate.devel b/packages/sysutils/autoupdate/scripts/autoupdate.devel index e5a128b163..6686975359 100755 --- a/packages/sysutils/autoupdate/scripts/autoupdate.devel +++ b/packages/sysutils/autoupdate/scripts/autoupdate.devel @@ -6,8 +6,6 @@ if [ ! -f /var/lock/update.lock ]; then if [ "$AUTOUPDATE" = "manually" -o "$AUTOUPDATE" = "auto" ]; then - # locking autoupdate - touch /var/lock/update.lock # sleep a bit, maybe we have a lot of work ;-) usleep 30000000 @@ -42,14 +40,14 @@ if [ ! -f /var/lock/update.lock ]; then # show a message if a new version is avaible send_message "New update avaible: r$NEW_VERSION - please update manually" - # remove locking - rm -rf /var/lock/update.lock - elif [ "$AUTOUPDATE" = "auto" ]; then # show a message if a new version is avaible send_message "New update avaible: r$NEW_VERSION - downloading and extract the new version..." + # locking autoupdate + touch /var/lock/update.lock + # downloading the new version wget -c $UPDATEURL/$NEW_IMAGE.tar.bz2 -P /tmp diff --git a/packages/sysutils/autoupdate/scripts/autoupdate.release b/packages/sysutils/autoupdate/scripts/autoupdate.release index 3d1f5cdfdf..0216872fdf 100755 --- a/packages/sysutils/autoupdate/scripts/autoupdate.release +++ b/packages/sysutils/autoupdate/scripts/autoupdate.release @@ -6,8 +6,6 @@ if [ ! -f /var/lock/update.lock ]; then if [ "$AUTOUPDATE" = "manually" -o "$AUTOUPDATE" = "auto" ]; then - # locking autoupdate - touch /var/lock/update.lock # sleep a bit, maybe we have a lot of work ;-) usleep 30000000 @@ -49,14 +47,14 @@ if [ ! -f /var/lock/update.lock ]; then # show a message if a new version is avaible send_message "New update avaible: $NEW_VERSION - please update manually" - # remove locking - rm -rf /var/lock/update.lock - elif [ "$AUTOUPDATE" = "auto" ]; then # show a message if a new version is avaible send_message "New update avaible: $NEW_VERSION - downloading and extract the new version..." + # locking autoupdate + touch /var/lock/update.lock + # downloading the new version wget -c $UPDATEURL/$NEW_IMAGE.tar.bz2 -P /tmp From e3cd3c8753ed9f29bbb5e76a7b42a14dd1b89720 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Thu, 6 May 2010 00:26:10 +0200 Subject: [PATCH 281/320] xf86-video-nvidia: - update to NVIDIA-Linux-x86-195.36.24 - update to NVIDIA-Linux-x86_64-195.36.24 --- packages/x11/driver/xf86-video-nvidia/url | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/x11/driver/xf86-video-nvidia/url b/packages/x11/driver/xf86-video-nvidia/url index 9daaa44db8..adb112d0a8 100644 --- a/packages/x11/driver/xf86-video-nvidia/url +++ b/packages/x11/driver/xf86-video-nvidia/url @@ -1,2 +1,2 @@ -ftp://download.nvidia.com/XFree86/Linux-x86/195.36.15/NVIDIA-Linux-x86-195.36.15-pkg0.run -ftp://download.nvidia.com/XFree86/Linux-x86_64/195.36.15/NVIDIA-Linux-x86_64-195.36.15-pkg0.run +ftp://download.nvidia.com/XFree86/Linux-x86/195.36.24/NVIDIA-Linux-x86-195.36.24-pkg0.run +ftp://download.nvidia.com/XFree86/Linux-x86_64/195.36.24/NVIDIA-Linux-x86_64-195.36.24-pkg0.run From 4c12e3dec02d2d5df8e2751e9fca187600e098ca Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Thu, 6 May 2010 01:05:33 +0200 Subject: [PATCH 282/320] xorg-server: - update to xorg-server-1.7.7 --- packages/x11/xserver/xorg-server/url | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/x11/xserver/xorg-server/url b/packages/x11/xserver/xorg-server/url index 44f6c589ee..f25610e0d0 100644 --- a/packages/x11/xserver/xorg-server/url +++ b/packages/x11/xserver/xorg-server/url @@ -1 +1 @@ -http://xorg.freedesktop.org/archive/individual/xserver/xorg-server-1.7.6.902.tar.bz2 \ No newline at end of file +http://xorg.freedesktop.org/archive/individual/xserver/xorg-server-1.7.7.tar.bz2 \ No newline at end of file From a84911d0c9a4bcd444aaadeb84d0f85f1d96402a Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Thu, 6 May 2010 17:10:22 +0200 Subject: [PATCH 283/320] mesa: - update to mesa-7.8.1 --- packages/graphics/Mesa/url | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/graphics/Mesa/url b/packages/graphics/Mesa/url index 5df86152e7..2e47b0d64e 100644 --- a/packages/graphics/Mesa/url +++ b/packages/graphics/Mesa/url @@ -1,2 +1,2 @@ -ftp://freedesktop.org/pub/mesa/7.8/MesaLib-7.8.tar.bz2 -ftp://freedesktop.org/pub/mesa/7.8/MesaDemos-7.8.tar.bz2 +ftp://freedesktop.org/pub/mesa/7.8.1/MesaLib-7.8.1.tar.bz2 +ftp://freedesktop.org/pub/mesa/7.8.1/MesaDemos-7.8.1.tar.bz2 From 393da7acb23ec49aa965e73133581cc1142e1d9d Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Fri, 7 May 2010 02:52:01 +0200 Subject: [PATCH 284/320] e2fsprogs: - remove some unneeded config options --- packages/sysutils/e2fsprogs/build | 2 -- 1 file changed, 2 deletions(-) diff --git a/packages/sysutils/e2fsprogs/build b/packages/sysutils/e2fsprogs/build index b590895a7d..ecd4b0308f 100755 --- a/packages/sysutils/e2fsprogs/build +++ b/packages/sysutils/e2fsprogs/build @@ -8,8 +8,6 @@ cd $PKG_BUILD ./configure --host=$TARGET_NAME \ --build=$HOST_NAME \ --prefix=/usr \ - --enable-shared \ - --disable-static \ --disable-libuuid \ --disable-libblkid \ --disable-debugfs \ From b1c20356c750c04fbcca610638641f22923f8905 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Fri, 7 May 2010 03:50:44 +0200 Subject: [PATCH 285/320] Mesa: - update to Mesa-7.8.1 --- packages/graphics/Mesa/build | 8 ++++-- packages/graphics/Mesa/install | 2 +- .../patches/101_ubuntu_hidden_glname.patch | 12 --------- .../Mesa/patches/102_dont-vblank.diff | 14 ---------- .../Mesa/patches/108_big_endian.patch | 18 ------------- ...fix_relocation_delta_for_wm_surfaces.patch | 26 ------------------- packages/graphics/Mesa/url | 4 +-- 7 files changed, 9 insertions(+), 75 deletions(-) delete mode 100644 packages/graphics/Mesa/patches/101_ubuntu_hidden_glname.patch delete mode 100644 packages/graphics/Mesa/patches/102_dont-vblank.diff delete mode 100644 packages/graphics/Mesa/patches/108_big_endian.patch delete mode 100644 packages/graphics/Mesa/patches/109_fix_relocation_delta_for_wm_surfaces.patch diff --git a/packages/graphics/Mesa/build b/packages/graphics/Mesa/build index c4543087c8..73a404271c 100755 --- a/packages/graphics/Mesa/build +++ b/packages/graphics/Mesa/build @@ -17,7 +17,6 @@ get_graphicdrivers cd $PKG_BUILD HOST_CC=$HOST_CC \ -OPT_FLAGS="$CFLAGS -D_GNU_SOURCE" \ HOST_OPT_FLAGS="$HOST_CFLAGS" \ X11_INCLUDES= \ DRI_DRIVER_INSTALL_DIR="$XORG_PATH_DRI" \ @@ -48,7 +47,12 @@ DRI_DRIVER_SEARCH_DIR="$XORG_PATH_DRI" \ --without-demos \ --disable-gallium \ -make +make -C src/glsl CC=$HOST_CC CFLAGS="" +mv src/glsl/apps/compile ./host_compile + +make clean + +make GLSL_CL="\$(TOP)/host_compile" make -C progs/xdemos diff --git a/packages/graphics/Mesa/install b/packages/graphics/Mesa/install index d8bd307281..9c7aee264c 100755 --- a/packages/graphics/Mesa/install +++ b/packages/graphics/Mesa/install @@ -25,4 +25,4 @@ if [ "$DEVTOOLS" = yes ]; then cp -P $PKG_BUILD/progs/xdemos/glxdemo $INSTALL/usr/bin cp -P $PKG_BUILD/progs/xdemos/glxgears $INSTALL/usr/bin cp -P $PKG_BUILD/progs/xdemos/glxinfo $INSTALL/usr/bin -fi \ No newline at end of file +fi diff --git a/packages/graphics/Mesa/patches/101_ubuntu_hidden_glname.patch b/packages/graphics/Mesa/patches/101_ubuntu_hidden_glname.patch deleted file mode 100644 index a04106c4b0..0000000000 --- a/packages/graphics/Mesa/patches/101_ubuntu_hidden_glname.patch +++ /dev/null @@ -1,12 +0,0 @@ -Index: mesa/src/mesa/x86/glapi_x86.S -=================================================================== ---- mesa.orig/src/mesa/x86/glapi_x86.S 2009-06-29 14:43:07.000000000 +0300 -+++ mesa/src/mesa/x86/glapi_x86.S 2009-06-29 14:45:38.000000000 +0300 -@@ -148,7 +148,6 @@ - - ALIGNTEXT16 - GLOBL GLNAME(gl_dispatch_functions_start) -- HIDDEN(GLNAME(gl_dispatch_functions_start)) - GLNAME(gl_dispatch_functions_start): - - GL_STUB(NewList, _gloffset_NewList, NewList@8) diff --git a/packages/graphics/Mesa/patches/102_dont-vblank.diff b/packages/graphics/Mesa/patches/102_dont-vblank.diff deleted file mode 100644 index 3f1c3ae615..0000000000 --- a/packages/graphics/Mesa/patches/102_dont-vblank.diff +++ /dev/null @@ -1,14 +0,0 @@ -diff --git a/src/mesa/drivers/dri/intel/intel_screen.c b/src/mesa/drivers/dri/intel/intel_screen.c -index 5233e58..5dded4b 100644 ---- a/src/mesa/drivers/dri/intel/intel_screen.c -+++ b/src/mesa/drivers/dri/intel/intel_screen.c -@@ -55,7 +55,7 @@ PUBLIC const char __driConfigOptions[] = - DRI_CONF_BEGIN - DRI_CONF_SECTION_PERFORMANCE - DRI_CONF_FTHROTTLE_MODE(DRI_CONF_FTHROTTLE_IRQS) -- DRI_CONF_VBLANK_MODE(DRI_CONF_VBLANK_ALWAYS_SYNC) -+ DRI_CONF_VBLANK_MODE(DRI_CONF_VBLANK_DEF_INTERVAL_0) - /* Options correspond to DRI_CONF_BO_REUSE_DISABLED, - * DRI_CONF_BO_REUSE_ALL - */ - diff --git a/packages/graphics/Mesa/patches/108_big_endian.patch b/packages/graphics/Mesa/patches/108_big_endian.patch deleted file mode 100644 index 7341119082..0000000000 --- a/packages/graphics/Mesa/patches/108_big_endian.patch +++ /dev/null @@ -1,18 +0,0 @@ -diff -Nurp mesa-7.6.0~git20090817.7c422387/src/mesa/drivers/dri/r300/r300_draw.c mesa-7.6.0~git20090817.7c422387-working/src/mesa/drivers/dri/r300/r300_draw.c ---- mesa-7.6.0~git20090817.7c422387/src/mesa/drivers/dri/r300/r300_draw.c 2009-08-17 07:30:14.000000000 -0700 -+++ mesa-7.6.0~git20090817.7c422387-working/src/mesa/drivers/dri/r300/r300_draw.c 2009-08-26 13:38:46.000000000 -0700 -@@ -108,12 +108,13 @@ static void r300FixupIndexBuffer(GLconte - - #if MESA_BIG_ENDIAN - } else { /* if (mesa_ind_buf->type == GL_UNSIGNED_SHORT) */ -+ GLuint size; - GLushort *in = (GLushort *)src_ptr; - size = sizeof(GLushort) * ((mesa_ind_buf->count + 1) & ~1); - - radeonAllocDmaRegion(&r300->radeon, &r300->ind_buf.bo, &r300->ind_buf.bo_offet, size, 4); - -- assert(r300->ind_buf.bo->ptr != NULL) -+ assert(r300->ind_buf.bo->ptr != NULL); - out = (GLuint *)ADD_POINTERS(r300->ind_buf.bo->ptr, r300->ind_buf.bo_offset); - - for (i = 0; i + 1 < mesa_ind_buf->count; i += 2) { diff --git a/packages/graphics/Mesa/patches/109_fix_relocation_delta_for_wm_surfaces.patch b/packages/graphics/Mesa/patches/109_fix_relocation_delta_for_wm_surfaces.patch deleted file mode 100644 index 34279dda97..0000000000 --- a/packages/graphics/Mesa/patches/109_fix_relocation_delta_for_wm_surfaces.patch +++ /dev/null @@ -1,26 +0,0 @@ -From acfea5c705f383692e661d37c5cd7da2f3db559b Mon Sep 17 00:00:00 2001 -From: Eric Anholt -Date: Wed, 09 Sep 2009 19:35:30 +0000 -Subject: i965: Fix relocation delta for WM surfaces. - -This was a regression in 0f328c90dbc893e15005f2ab441d309c1c176245. - -Bug #23688 -Bug #23254 -(cherry picked from commit 5604b27b9326ac542069a49ed9650c4b0d3e939a) ---- -diff --git a/src/mesa/drivers/dri/i965/brw_wm_surface_state.c b/src/mesa/drivers/dri/i965/brw_wm_surface_state.c -index 096f743..3dcc592 100644 ---- a/src/mesa/drivers/dri/i965/brw_wm_surface_state.c -+++ b/src/mesa/drivers/dri/i965/brw_wm_surface_state.c -@@ -629,7 +629,7 @@ brw_update_renderbuffer_surface(struct brw_context *brw, - drm_intel_bo_emit_reloc(brw->wm.surf_bo[unit], - offsetof(struct brw_surface_state, ss1), - region_bo, -- surf.ss1.base_addr, -+ surf.ss1.base_addr - region_bo->offset, - I915_GEM_DOMAIN_RENDER, - I915_GEM_DOMAIN_RENDER); - } --- -cgit v0.8.2 diff --git a/packages/graphics/Mesa/url b/packages/graphics/Mesa/url index d0aecb9798..2e47b0d64e 100644 --- a/packages/graphics/Mesa/url +++ b/packages/graphics/Mesa/url @@ -1,2 +1,2 @@ -ftp://ftp.freedesktop.org/pub/mesa/7.7.1/MesaLib-7.7.1.tar.bz2 -ftp://ftp.freedesktop.org/pub/mesa/7.7.1/MesaDemos-7.7.1.tar.bz2 \ No newline at end of file +ftp://freedesktop.org/pub/mesa/7.8.1/MesaLib-7.8.1.tar.bz2 +ftp://freedesktop.org/pub/mesa/7.8.1/MesaDemos-7.8.1.tar.bz2 From ccc781a3d702335ee63a31786dacd916011119a9 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Fri, 7 May 2010 03:51:49 +0200 Subject: [PATCH 286/320] xorg-server: - update to xorg-server-1.8.0.902 - add some patches from meego --- packages/x11/xserver/xorg-server/build | 16 +- .../xserver/xorg-server/config/10-quirks.conf | 10 + packages/x11/xserver/xorg-server/install | 15 +- .../patches/03_fedora_glx_versioning.diff | 233 ------------ .../patches/04_fedora_glx14-swrast.diff | 26 -- .../05_only_call_gamma_set_if_nonnull.diff | 25 -- ...ont_trap_access_to_timer_and_keyboard.diff | 22 -- ...t-after-CreateWellKnownSockets-and-In.diff | 34 -- ...16-xfree86-fix-build-with-xv-disabled.diff | 53 --- ....diff => 20_extra_modelines_fromxorg.diff} | 0 ...ache-xkbcomp-output-for-fast-start-up.diff | 358 ++++++++++++++++++ .../patches/xorg-x11-nonroot-vesa.diff | 12 + .../patches/xserver-1.5.0-bg-none-root.diff | 63 ++- .../xorg-server/patches/xserver-boottime.diff | 38 -- packages/x11/xserver/xorg-server/url | 2 +- 15 files changed, 419 insertions(+), 488 deletions(-) create mode 100644 packages/x11/xserver/xorg-server/config/10-quirks.conf delete mode 100644 packages/x11/xserver/xorg-server/patches/03_fedora_glx_versioning.diff delete mode 100644 packages/x11/xserver/xorg-server/patches/04_fedora_glx14-swrast.diff delete mode 100644 packages/x11/xserver/xorg-server/patches/05_only_call_gamma_set_if_nonnull.diff delete mode 100644 packages/x11/xserver/xorg-server/patches/06_dont_trap_access_to_timer_and_keyboard.diff delete mode 100644 packages/x11/xserver/xorg-server/patches/11-Move-config_init-after-CreateWellKnownSockets-and-In.diff delete mode 100644 packages/x11/xserver/xorg-server/patches/16-xfree86-fix-build-with-xv-disabled.diff rename packages/x11/xserver/xorg-server/patches/{001_fedora_extramodes.diff => 20_extra_modelines_fromxorg.diff} (100%) create mode 100644 packages/x11/xserver/xorg-server/patches/cache-xkbcomp-output-for-fast-start-up.diff create mode 100644 packages/x11/xserver/xorg-server/patches/xorg-x11-nonroot-vesa.diff delete mode 100644 packages/x11/xserver/xorg-server/patches/xserver-boottime.diff diff --git a/packages/x11/xserver/xorg-server/build b/packages/x11/xserver/xorg-server/build index d247aaaccd..d00363f539 100755 --- a/packages/x11/xserver/xorg-server/build +++ b/packages/x11/xserver/xorg-server/build @@ -27,8 +27,8 @@ $SCRIPTS/build Mesa $SCRIPTS/build openssl $SCRIPTS/build freetype $SCRIPTS/build pixman -$SCRIPTS/build dbus -$SCRIPTS/build hal +$SCRIPTS/build fontsproto +$SCRIPTS/build udev if [ "$XINERAMA_SUPPORT" = "yes" ]; then $SCRIPTS/build libXinerama @@ -58,7 +58,6 @@ autoconf --enable-registry \ --disable-composite \ $XORG_XINERAMA \ - --enable-null-root-cursor \ --enable-mitshm \ --disable-xres \ --disable-record \ @@ -80,8 +79,9 @@ autoconf --enable-dbe \ --disable-xf86bigfont \ --enable-dpms \ - --enable-config-dbus \ - --enable-config-hal \ + --enable-config-udev \ + --disable-config-dbus \ + --disable-config-hal \ --enable-xfree86-utils \ --enable-xorg \ --disable-dmx \ @@ -92,7 +92,6 @@ autoconf --disable-xwin \ --disable-kdrive \ --disable-xephyr \ - --disable-xsdl \ --disable-xfake \ --enable-xfbdev \ --disable-install-setuid \ @@ -100,14 +99,15 @@ autoconf --with-int10=x86emu \ --disable-ipv6 \ --with-gnu-ld \ + --with-sha1=libcrypto \ --with-os-vendor="OpenELEC" \ --with-module-dir=$XORG_PATH_MODULES \ --with-xkb-path=$XORG_PATH_XKB \ --with-xkb-output=/var/cache/xkb \ --with-log-dir=/var/log \ --with-dri-driver-path=$XORG_PATH_DRI \ - --with-fontdir=$XORG_PATH_FONTS \ - --with-default-font-path="$XORG_PATH_FONTS/liberation,$XORG_PATH_FONTS/misc,built-ins" \ + --with-fontrootdir=$XORG_PATH_FONTS \ + --with-default-font-path="$XORG_PATH_FONTS/misc,built-ins" make diff --git a/packages/x11/xserver/xorg-server/config/10-quirks.conf b/packages/x11/xserver/xorg-server/config/10-quirks.conf new file mode 100644 index 0000000000..7afad22dc6 --- /dev/null +++ b/packages/x11/xserver/xorg-server/config/10-quirks.conf @@ -0,0 +1,10 @@ +# Collection of quirks and blacklist/whitelists for specific devices. + + +# Accelerometer device, posts data through ABS_X/ABS_Y, making X unusable +# http://bugs.freedesktop.org/show_bug.cgi?id=22442 +Section "InputClass" + Identifier "ThinkPad HDAPS accelerometer blacklist" + MatchProduct "ThinkPad HDAPS accelerometer data" + Option "Ignore" "on" +EndSection diff --git a/packages/x11/xserver/xorg-server/install b/packages/x11/xserver/xorg-server/install index 9b1c80a07b..ff128bd5b2 100755 --- a/packages/x11/xserver/xorg-server/install +++ b/packages/x11/xserver/xorg-server/install @@ -12,8 +12,7 @@ $SCRIPTS/install libXfont $SCRIPTS/install libdrm $SCRIPTS/install Mesa $SCRIPTS/install pixman -$SCRIPTS/install dbus -$SCRIPTS/install hal +$SCRIPTS/install udev [ "$XINERAMA_SUPPORT" = "yes" ] && $SCRIPTS/install libXinerama @@ -53,11 +52,11 @@ mkdir -p $XORG_DST/multimedia mkdir -p $INSTALL/usr/lib/xorg cp -P $PKG_BUILD/dix/protocol.txt $INSTALL/usr/lib/xorg -mkdir -p $INSTALL/etc/dbus-1/system.d - cp -P $PKG_BUILD/config/xorg-server.conf $INSTALL/etc/dbus-1/system.d +#mkdir -p $INSTALL/etc/X11/xorg.conf.d +# cp -P $PKG_DIR/config/*.conf $INSTALL/etc/X11/xorg.conf.d -mkdir -p $INSTALL/usr/share/hal/fdi/policy/10osvendor/ - cp -P $PKG_BUILD/config/x11-input.fdi $INSTALL/usr/share/hal/fdi/policy/10osvendor/10-x11-input.fdi +mkdir -p $INSTALL/usr/share/X11/xorg.conf.d + cp -P $PKG_BUILD/config/10-evdev.conf $INSTALL/usr/share/X11/xorg.conf.d #Fonts $SCRIPTS/install encodings @@ -73,12 +72,12 @@ mkdir -p $INSTALL/usr/share/hal/fdi/policy/10osvendor/ #Drivers $SCRIPTS/install xf86-input-evdev $SCRIPTS/install xf86-input-synaptics -# $SCRIPTS/install xf86-input-wacom + $SCRIPTS/install xf86-input-wacom for drv in $XORG_DRIVERS; do $SCRIPTS/install xf86-video-$drv done -#Tools +# Tools $SCRIPTS/install pciutils $SCRIPTS/install uxlaunch diff --git a/packages/x11/xserver/xorg-server/patches/03_fedora_glx_versioning.diff b/packages/x11/xserver/xorg-server/patches/03_fedora_glx_versioning.diff deleted file mode 100644 index c8a1c30954..0000000000 --- a/packages/x11/xserver/xorg-server/patches/03_fedora_glx_versioning.diff +++ /dev/null @@ -1,233 +0,0 @@ -From 3ef4be8129f78afd5566a9e5d0fb901449dcb771 Mon Sep 17 00:00:00 2001 -From: Ian Romanick -Date: Tue, 29 Sep 2009 16:43:43 -0700 -Subject: [PATCH] GLX: Enable GLX 1.4 on DRI2 - -this squashes 4 commits -(cherry picked from commit ad5c0d9efa47476ed5cf75c82265c73919e468b4) -(cherry picked from commit cb54cf1b3e8c4109541cfb698542c00f2473e731) -(cherry picked from commit 4c6bfa2c09ae2b0cffdf9211a6dfbcaefe0366b5) -(cherry picked from commit 9bf2ff4faf730913de3073f346646a8727be41d4) ---- - glx/glxcmds.c | 12 ++++++++---- - glx/glxdri2.c | 12 ++++++++++++ - glx/glxext.c | 8 +++++++- - glx/glxscreens.c | 15 ++++++++++++--- - glx/glxscreens.h | 11 +++++++++++ - glx/glxserver.h | 3 +++ - glx/indirect_texture_compression.c | 4 ++-- - include/protocol-versions.h | 2 +- - 8 files changed, 56 insertions(+), 11 deletions(-) - -diff --git a/glx/glxcmds.c b/glx/glxcmds.c -index b1061a8..ba4c123 100644 ---- a/glx/glxcmds.c -+++ b/glx/glxcmds.c -@@ -50,7 +50,6 @@ - #include "indirect_dispatch.h" - #include "indirect_table.h" - #include "indirect_util.h" --#include "protocol-versions.h" - - static int - validGlxScreen(ClientPtr client, int screen, __GLXscreen **pGlxScreen, int *err) -@@ -739,8 +738,8 @@ int __glXDisp_QueryVersion(__GLXclientState *cl, GLbyte *pc) - ** client if it wants to work with older clients; however, in this - ** implementation the server just returns its version number. - */ -- reply.majorVersion = SERVER_GLX_MAJOR_VERSION; -- reply.minorVersion = SERVER_GLX_MINOR_VERSION; -+ reply.majorVersion = glxMajorVersion; -+ reply.minorVersion = glxMinorVersion; - reply.length = 0; - reply.type = X_Reply; - reply.sequenceNumber = client->sequence; -@@ -2360,6 +2359,7 @@ int __glXDisp_QueryServerString(__GLXclientState *cl, GLbyte *pc) - char *buf; - __GLXscreen *pGlxScreen; - int err; -+ char ver_str[16]; - - if (!validGlxScreen(client, req->screen, &pGlxScreen, &err)) - return err; -@@ -2369,7 +2369,11 @@ int __glXDisp_QueryServerString(__GLXclientState *cl, GLbyte *pc) - ptr = pGlxScreen->GLXvendor; - break; - case GLX_VERSION: -- ptr = pGlxScreen->GLXversion; -+ /* Return to the server version rather than the screen version -+ * to prevent confusion when they do not match. -+ */ -+ snprintf(ver_str, 16, "%d.%d", glxMajorVersion, glxMinorVersion); -+ ptr = ver_str; - break; - case GLX_EXTENSIONS: - ptr = pGlxScreen->GLXextensions; -diff --git a/glx/glxdri2.c b/glx/glxdri2.c -index ed7fb4c..ed7dc80 100644 ---- a/glx/glxdri2.c -+++ b/glx/glxdri2.c -@@ -685,6 +685,18 @@ __glXDRIscreenProbe(ScreenPtr pScreen) - screen->base.GLXextensions); - } - -+ /* We're going to assume (perhaps incorrectly?) that all DRI2-enabled -+ * drivers support the required extensions for GLX 1.4. The extensions -+ * we're assuming are: -+ * -+ * - GLX_SGI_make_current_read (1.3) -+ * - GLX_SGIX_fbconfig (1.3) -+ * - GLX_SGIX_pbuffer (1.3) -+ * - GLX_ARB_multisample (1.4) -+ */ -+ screen->base.GLXmajor = 1; -+ screen->base.GLXminor = 4; -+ - screen->enterVT = pScrn->EnterVT; - pScrn->EnterVT = glxDRIEnterVT; - screen->leaveVT = pScrn->LeaveVT; -diff --git a/glx/glxext.c b/glx/glxext.c -index 19d70d4..9f9c0ed 100644 ---- a/glx/glxext.c -+++ b/glx/glxext.c -@@ -360,12 +360,18 @@ void GlxExtensionInit(void) - pScreen = screenInfo.screens[i]; - - for (p = __glXProviderStack; p != NULL; p = p->next) { -- if (p->screenProbe(pScreen) != NULL) { -+ __GLXscreen *glxScreen; -+ -+ glxScreen = p->screenProbe(pScreen); -+ if (glxScreen != NULL) { -+ if (glxScreen->GLXminor < glxMinorVersion) -+ glxMinorVersion = glxScreen->GLXminor; - LogMessage(X_INFO, - "GLX: Initialized %s GL provider for screen %d\n", - p->name, i); - break; - } -+ - } - - if (!p) -diff --git a/glx/glxscreens.c b/glx/glxscreens.c -index 7d29d31..674e2c6 100644 ---- a/glx/glxscreens.c -+++ b/glx/glxscreens.c -@@ -42,6 +42,7 @@ - #include "glxserver.h" - #include "glxutil.h" - #include "glxext.h" -+#include "protocol-versions.h" - - static int glxScreenPrivateKeyIndex; - static DevPrivateKey glxScreenPrivateKey = &glxScreenPrivateKeyIndex; -@@ -162,7 +163,8 @@ static const char GLServerExtensions[] = - ** supported across all screens in a multi-screen system. - */ - static char GLXServerVendorName[] = "SGI"; --static char GLXServerVersion[] = "1.2"; -+unsigned glxMajorVersion = SERVER_GLX_MAJOR_VERSION; -+unsigned glxMinorVersion = SERVER_GLX_MINOR_VERSION; - static char GLXServerExtensions[] = - "GLX_ARB_multisample " - "GLX_EXT_visual_info " -@@ -378,9 +380,17 @@ void __glXScreenInit(__GLXscreen *pGlxScreen, ScreenPtr pScreen) - pGlxScreen->pScreen = pScreen; - pGlxScreen->GLextensions = xstrdup(GLServerExtensions); - pGlxScreen->GLXvendor = xstrdup(GLXServerVendorName); -- pGlxScreen->GLXversion = xstrdup(GLXServerVersion); - pGlxScreen->GLXextensions = xstrdup(GLXServerExtensions); - -+ /* All GLX providers must support all of the functionality required for at -+ * least GLX 1.2. If the provider supports a higher version, the GLXminor -+ * version can be changed in the provider's screen-probe routine. For -+ * most providers, the screen-probe routine is the caller of this -+ * function. -+ */ -+ pGlxScreen->GLXmajor = 1; -+ pGlxScreen->GLXminor = 2; -+ - pGlxScreen->CloseScreen = pScreen->CloseScreen; - pScreen->CloseScreen = glxCloseScreen; - pGlxScreen->DestroyWindow = pScreen->DestroyWindow; -@@ -454,7 +464,6 @@ void __glXScreenInit(__GLXscreen *pGlxScreen, ScreenPtr pScreen) - void __glXScreenDestroy(__GLXscreen *screen) - { - xfree(screen->GLXvendor); -- xfree(screen->GLXversion); - xfree(screen->GLXextensions); - xfree(screen->GLextensions); - } -diff --git a/glx/glxscreens.h b/glx/glxscreens.h -index 3c1bdd4..bff4363 100644 ---- a/glx/glxscreens.h -+++ b/glx/glxscreens.h -@@ -161,6 +161,17 @@ struct __GLXscreen { - char *GLXversion; - char *GLXextensions; - -+ /** -+ * \name GLX version supported by this screen. -+ * -+ * Since the GLX version advertised by the server is for the whole server, -+ * the GLX protocol code uses the minimum version supported on all screens. -+ */ -+ /*@{*/ -+ unsigned GLXmajor; -+ unsigned GLXminor; -+ /*@}*/ -+ - Bool (*CloseScreen)(int index, ScreenPtr pScreen); - Bool (*DestroyWindow)(WindowPtr pWindow); - }; -diff --git a/glx/glxserver.h b/glx/glxserver.h -index 4aa8c2e..80f1b28 100644 ---- a/glx/glxserver.h -+++ b/glx/glxserver.h -@@ -248,4 +248,7 @@ extern int __glXImageSize(GLenum format, GLenum type, - GLint imageHeight, GLint rowLength, GLint skipImages, GLint skipRows, - GLint alignment); - -+extern unsigned glxMajorVersion; -+extern unsigned glxMinorVersion; -+ - #endif /* !__GLX_server_h__ */ -diff --git a/glx/indirect_texture_compression.c b/glx/indirect_texture_compression.c -index 25c6eb3..5f44d7b 100644 ---- a/glx/indirect_texture_compression.c -+++ b/glx/indirect_texture_compression.c -@@ -52,7 +52,7 @@ int __glXDisp_GetCompressedTexImageARB(struct __GLXclientStateRec *cl, GLbyte *p - const GLenum target = *(GLenum *)(pc + 0); - const GLint level = *(GLint *)(pc + 4); - GLint compsize = 0; -- char *answer, answerBuffer[200]; -+ char *answer = NULL, answerBuffer[200]; - - CALL_GetTexLevelParameteriv(GET_DISPATCH(), (target, level, GL_TEXTURE_COMPRESSED_IMAGE_SIZE, &compsize)); - -@@ -92,7 +92,7 @@ int __glXDispSwap_GetCompressedTexImageARB(struct __GLXclientStateRec *cl, GLbyt - const GLenum target = (GLenum) bswap_32( *(int *)(pc + 0) ); - const GLint level = (GLint ) bswap_32( *(int *)(pc + 4) ); - GLint compsize = 0; -- char *answer, answerBuffer[200]; -+ char *answer = NULL, answerBuffer[200]; - - CALL_GetTexLevelParameteriv(GET_DISPATCH(), (target, level, GL_TEXTURE_COMPRESSED_IMAGE_SIZE, &compsize)); - -diff --git a/include/protocol-versions.h b/include/protocol-versions.h -index da9770c..d688c66 100644 ---- a/include/protocol-versions.h -+++ b/include/protocol-versions.h -@@ -61,7 +61,7 @@ - - /* GLX */ - #define SERVER_GLX_MAJOR_VERSION 1 --#define SERVER_GLX_MINOR_VERSION 2 -+#define SERVER_GLX_MINOR_VERSION 4 - - /* Xinerama */ - #define SERVER_PANORAMIX_MAJOR_VERSION 1 --- -1.6.5.rc2 - diff --git a/packages/x11/xserver/xorg-server/patches/04_fedora_glx14-swrast.diff b/packages/x11/xserver/xorg-server/patches/04_fedora_glx14-swrast.diff deleted file mode 100644 index 2c51802535..0000000000 --- a/packages/x11/xserver/xorg-server/patches/04_fedora_glx14-swrast.diff +++ /dev/null @@ -1,26 +0,0 @@ -From 25a0107768c9f25e8edc5e423ca8b1d0813f2d04 Mon Sep 17 00:00:00 2001 -From: Adam Jackson -Date: Tue, 24 Nov 2009 13:38:46 -0500 -Subject: [PATCH] Enable GLX 1.4 for swrast - ---- - glx/glxdriswrast.c | 3 +++ - 1 files changed, 3 insertions(+), 0 deletions(-) - -diff --git a/glx/glxdriswrast.c b/glx/glxdriswrast.c -index 44f658f..20f9f90 100644 ---- a/glx/glxdriswrast.c -+++ b/glx/glxdriswrast.c -@@ -510,6 +510,9 @@ __glXDRIscreenProbe(ScreenPtr pScreen) - - __glXScreenInit(&screen->base, pScreen); - -+ screen->base.GLXmajor = 1; -+ screen->base.GLXminor = 4; -+ - LogMessage(X_INFO, - "AIGLX: Loaded and initialized %s\n", filename); - --- -1.6.5.2 - diff --git a/packages/x11/xserver/xorg-server/patches/05_only_call_gamma_set_if_nonnull.diff b/packages/x11/xserver/xorg-server/patches/05_only_call_gamma_set_if_nonnull.diff deleted file mode 100644 index b1d00ba6d0..0000000000 --- a/packages/x11/xserver/xorg-server/patches/05_only_call_gamma_set_if_nonnull.diff +++ /dev/null @@ -1,25 +0,0 @@ -Bug#564203 - -From 8ca4233017e9f441303088e7054b6a7c4f171d80 Mon Sep 17 00:00:00 2001 -From: Michael Vogt -Date: Wed, 6 Jan 2010 14:40:34 +0100 -Subject: [PATCH] * hw/xfree86/modes/xf86Crtc.c: - - only call gamma_set if its non NULL - ---- - hw/xfree86/modes/xf86Crtc.c | 2 +- - 1 files changed, 1 insertions(+), 1 deletions(-) - -diff --git a/hw/xfree86/modes/xf86Crtc.c b/hw/xfree86/modes/xf86Crtc.c -index d015c6a..573fe96 100644 ---- a/hw/xfree86/modes/xf86Crtc.c -+++ b/hw/xfree86/modes/xf86Crtc.c -@@ -354,7 +354,7 @@ xf86CrtcSetModeTransform (xf86CrtcPtr crtc, DisplayModePtr mode, Rotation rotati - } - - /* Only upload when needed, to avoid unneeded delays. */ -- if (!crtc->active) -+ if (!crtc->active && crtc->funcs->gamma_set) - crtc->funcs->gamma_set(crtc, crtc->gamma_red, crtc->gamma_green, - crtc->gamma_blue, crtc->gamma_size); - diff --git a/packages/x11/xserver/xorg-server/patches/06_dont_trap_access_to_timer_and_keyboard.diff b/packages/x11/xserver/xorg-server/patches/06_dont_trap_access_to_timer_and_keyboard.diff deleted file mode 100644 index 23d8dc79ad..0000000000 --- a/packages/x11/xserver/xorg-server/patches/06_dont_trap_access_to_timer_and_keyboard.diff +++ /dev/null @@ -1,22 +0,0 @@ -[PATCH] Do not trap access to timer and keyboard - -Some VESA BIOSes need to access to them. - -Signed-off-by: Samuel Thibault ---- - hw/xfree86/os-support/hurd/hurd_video.c | 2 -- - 1 files changed, 0 insertions(+), 2 deletions(-) - -diff --git a/hw/xfree86/os-support/hurd/hurd_video.c b/hw/xfree86/os-support/hurd/hurd_video.c -index 4a99db3..e049ceb 100644 ---- a/hw/xfree86/os-support/hurd/hurd_video.c -+++ b/hw/xfree86/os-support/hurd/hurd_video.c -@@ -124,8 +124,6 @@ xf86EnableIO() - FatalError("xf86EnableIO: ioperm() failed (%s)\n", strerror(errno)); - return FALSE; - } -- ioperm(0x40,4,0); /* trap access to the timer chip */ -- ioperm(0x60,4,0); /* trap access to the keyboard controller */ - return TRUE; - } - diff --git a/packages/x11/xserver/xorg-server/patches/11-Move-config_init-after-CreateWellKnownSockets-and-In.diff b/packages/x11/xserver/xorg-server/patches/11-Move-config_init-after-CreateWellKnownSockets-and-In.diff deleted file mode 100644 index 38d8d8dfdf..0000000000 --- a/packages/x11/xserver/xorg-server/patches/11-Move-config_init-after-CreateWellKnownSockets-and-In.diff +++ /dev/null @@ -1,34 +0,0 @@ -From 4ae407a5a308febf63de27a62f8c301c73b37d3e Mon Sep 17 00:00:00 2001 -From: Julien Cristau -Date: Tue, 6 Oct 2009 17:44:33 +0200 -Subject: [PATCH 1/5] Move config_init() after CreateWellKnownSockets() and InitCoreDevices() - -config_init() can now add devices directly instead of scheduling a -timer. - -Signed-off-by: Julien Cristau -Tested-by: Peter Hutterer ---- - dix/main.c | 2 +- - 1 files changed, 1 insertions(+), 1 deletions(-) - -Index: xorg-server/dix/main.c -=================================================================== ---- xorg-server.orig/dix/main.c -+++ xorg-server/dix/main.c -@@ -168,7 +168,6 @@ - InitBlockAndWakeupHandlers(); - /* Perform any operating system dependent initializations you'd like */ - OsInit(); -- config_init(); - if(serverGeneration == 1) - { - CreateWellKnownSockets(); -@@ -256,6 +255,7 @@ - InitCoreDevices(); - InitInput(argc, argv); - InitAndStartDevices(); -+ config_init(); - - dixSaveScreens(serverClient, SCREEN_SAVER_FORCER, ScreenSaverReset); - diff --git a/packages/x11/xserver/xorg-server/patches/16-xfree86-fix-build-with-xv-disabled.diff b/packages/x11/xserver/xorg-server/patches/16-xfree86-fix-build-with-xv-disabled.diff deleted file mode 100644 index 184301f913..0000000000 --- a/packages/x11/xserver/xorg-server/patches/16-xfree86-fix-build-with-xv-disabled.diff +++ /dev/null @@ -1,53 +0,0 @@ -From fe7575e929d65e8c798104ec2f72b879051694d3 Mon Sep 17 00:00:00 2001 -From: Julien Cristau -Date: Mon, 8 Feb 2010 02:04:33 +0100 -Subject: [PATCH] xfree86: fix build with xv disabled - ---- - hw/xfree86/modes/xf86Crtc.c | 2 ++ - hw/xfree86/modes/xf86Crtc.h | 2 ++ - 2 files changed, 4 insertions(+), 0 deletions(-) - -diff --git a/hw/xfree86/modes/xf86Crtc.c b/hw/xfree86/modes/xf86Crtc.c -index 30b49af..62f8737 100644 ---- a/hw/xfree86/modes/xf86Crtc.c -+++ b/hw/xfree86/modes/xf86Crtc.c -@@ -3009,6 +3009,7 @@ xf86_crtc_box_area(BoxPtr box) - return (int) (box->x2 - box->x1) * (int) (box->y2 - box->y1); - } - -+#ifdef XV - /* - * Return the crtc covering 'box'. If two crtcs cover a portion of - * 'box', then prefer 'desired'. If 'desired' is NULL, then prefer the crtc -@@ -3097,6 +3098,7 @@ xf86_crtc_clip_video_helper(ScrnInfoPtr pScrn, - - return ret; - } -+#endif - - xf86_crtc_notify_proc_ptr - xf86_wrap_crtc_notify (ScreenPtr screen, xf86_crtc_notify_proc_ptr new) -diff --git a/hw/xfree86/modes/xf86Crtc.h b/hw/xfree86/modes/xf86Crtc.h -index 9baa956..2fb32c1 100644 ---- a/hw/xfree86/modes/xf86Crtc.h -+++ b/hw/xfree86/modes/xf86Crtc.h -@@ -908,6 +908,7 @@ xf86_hide_cursors (ScrnInfoPtr scrn); - extern _X_EXPORT void - xf86_cursors_fini (ScreenPtr screen); - -+#ifdef XV - /* - * For overlay video, compute the relevant CRTC and - * clip video to that. -@@ -926,6 +927,7 @@ xf86_crtc_clip_video_helper(ScrnInfoPtr pScrn, - RegionPtr reg, - INT32 width, - INT32 height); -+#endif - - extern _X_EXPORT xf86_crtc_notify_proc_ptr - xf86_wrap_crtc_notify (ScreenPtr pScreen, xf86_crtc_notify_proc_ptr new); --- -1.6.6.1 - diff --git a/packages/x11/xserver/xorg-server/patches/001_fedora_extramodes.diff b/packages/x11/xserver/xorg-server/patches/20_extra_modelines_fromxorg.diff similarity index 100% rename from packages/x11/xserver/xorg-server/patches/001_fedora_extramodes.diff rename to packages/x11/xserver/xorg-server/patches/20_extra_modelines_fromxorg.diff diff --git a/packages/x11/xserver/xorg-server/patches/cache-xkbcomp-output-for-fast-start-up.diff b/packages/x11/xserver/xorg-server/patches/cache-xkbcomp-output-for-fast-start-up.diff new file mode 100644 index 0000000000..20ba82f0fd --- /dev/null +++ b/packages/x11/xserver/xorg-server/patches/cache-xkbcomp-output-for-fast-start-up.diff @@ -0,0 +1,358 @@ +From d2d3bcc9e23b9a4bea9f67a06cd23aa3ce7f4b59 Mon Sep 17 00:00:00 2001 +Message-Id: +From: Yan Li +Date: Wed, 10 Mar 2010 14:06:17 +0800 +Subject: [PATCH] XKB: cache xkbcomp output for fast start-up v6 for 1.7.99.901 + +xkbcomp outputs will be cached in files with hashed keymap as +names. This saves boot time for around 1s on commodity netbooks. + +v6: rebased to v1.7.99.901 + +v5: now using a much bigger xkbKeyMapBuf (100k) since the XKB to be + complied may be very large (as seen with + gnome-keyboard-properties), rebased to v1.6.1 + +Signed-off-by: Yan Li +--- + configure.ac | 6 +- + xkb/README.compiled | 8 +- + xkb/ddxLoad.c | 187 +++++++++++++++++++++++++++++++++++++++++---------- + 3 files changed, 159 insertions(+), 42 deletions(-) + +diff --git a/configure.ac b/configure.ac +index de252f3..54a0327 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -527,9 +527,9 @@ AC_MSG_RESULT([$FONTPATH]) + AC_ARG_WITH(xkb-path, AS_HELP_STRING([--with-xkb-path=PATH], [Path to XKB base dir (default: ${datadir}/X11/xkb)]), + [ XKBPATH="$withval" ], + [ XKBPATH="${datadir}/X11/xkb" ]) +-AC_ARG_WITH(xkb-output, AS_HELP_STRING([--with-xkb-output=PATH], [Path to XKB output dir (default: ${datadir}/X11/xkb/compiled)]), ++AC_ARG_WITH(xkb-output, AS_HELP_STRING([--with-xkb-output=PATH], [Path to XKB output dir (default: ${localstatedir}/cache/xkb)]), + [ XKBOUTPUT="$withval" ], +- [ XKBOUTPUT="compiled" ]) ++ [ XKBOUTPUT="${localstatedir}/cache/xkb" ]) + AC_ARG_WITH(default-xkb-rules, AS_HELP_STRING([--with-default-xkb-rules=RULES], + [Keyboard ruleset (default: base/evdev)]), + [ XKB_DFLT_RULES="$withval" ], +@@ -1148,7 +1148,7 @@ AC_DEFINE_DIR(XKB_BIN_DIRECTORY, XKB_BIN_DIRECTORY, [Path to XKB bin dir]) + dnl Make sure XKM_OUTPUT_DIR is an absolute path + XKBOUTPUT_FIRSTCHAR=`echo $XKBOUTPUT | cut -b 1` + if [[ x$XKBOUTPUT_FIRSTCHAR != x/ -a x$XKBOUTPUT_FIRSTCHAR != 'x$' ]] ; then +- XKBOUTPUT="$XKB_BASE_DIRECTORY/$XKBOUTPUT" ++ AC_MSG_ERROR([xkb-output must be an absolute path.]) + fi + + dnl XKM_OUTPUT_DIR (used in code) must end in / or file names get hosed +diff --git a/xkb/README.compiled b/xkb/README.compiled +index 71caa2f..a4a2ae0 100644 +--- a/xkb/README.compiled ++++ b/xkb/README.compiled +@@ -4,10 +4,10 @@ current keymap and/or any scratch keymaps used by clients. The X server + or some other tool might destroy or replace the files in this directory, + so it is not a safe place to store compiled keymaps for long periods of + time. The default keymap for any server is usually stored in: +- X-default.xkm +-where is the display number of the server in question, which makes +-it possible for several servers *on the same host* to share the same +-directory. ++ server-.xkm ++ ++where is the SHA1 hash of keymap source, so that compiled ++keymap of different keymap sources are stored in different files. + + Unless the X server is modified, sharing this directory between servers on + different hosts could cause problems. +diff --git a/xkb/ddxLoad.c b/xkb/ddxLoad.c +index 4ccddda..63b9f97 100644 +--- a/xkb/ddxLoad.c ++++ b/xkb/ddxLoad.c +@@ -30,6 +30,12 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE. + + #include + ++#ifdef HAVE_SHA1_IN_LIBMD /* Use libmd for SHA1 */ ++# include ++#else /* Use OpenSSL's libcrypto */ ++# include /* buggy openssl/sha.h wants size_t */ ++# include ++#endif + #include + #include + #include +@@ -43,24 +49,13 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE. + #define XKBSRV_NEED_FILE_FUNCS + #include + #include ++#include + #include "xkb.h" + + #if defined(CSRG_BASED) || defined(linux) || defined(__GNU__) + #include + #endif + +- /* +- * If XKM_OUTPUT_DIR specifies a path without a leading slash, it is +- * relative to the top-level XKB configuration directory. +- * Making the server write to a subdirectory of that directory +- * requires some work in the general case (install procedure +- * has to create links to /var or somesuch on many machines), +- * so we just compile into /usr/tmp for now. +- */ +-#ifndef XKM_OUTPUT_DIR +-#define XKM_OUTPUT_DIR "compiled/" +-#endif +- + #define PRE_ERROR_MSG "\"The XKEYBOARD keymap compiler (xkbcomp) reports:\"" + #define ERROR_PREFIX "\"> \"" + #define POST_ERROR_MSG1 "\"Errors from xkbcomp are not fatal to the X server\"" +@@ -175,6 +170,45 @@ OutputDirectory( + } + + static Bool ++Sha1Asc(char sha1Asc[SHA_DIGEST_LENGTH*2+1], const char * input) ++{ ++ int i; ++ unsigned char sha1[SHA_DIGEST_LENGTH]; ++ ++#ifdef HAVE_SHA1_IN_LIBMD /* Use libmd for SHA1 */ ++ SHA1_CTX ctx; ++ ++ SHA1Init (&ctx); ++ SHA1Update (&ctx, input, strlen(input)); ++ SHA1Final (sha1, &ctx); ++#else /* Use OpenSSL's libcrypto */ ++ SHA_CTX ctx; ++ int success; ++ ++ success = SHA1_Init (&ctx); ++ if (! success) ++ return BadAlloc; ++ ++ success = SHA1_Update (&ctx, input, strlen(input)); ++ if (! success) ++ return BadAlloc; ++ ++ success = SHA1_Final (sha1, &ctx); ++ if (! success) ++ return BadAlloc; ++#endif ++ ++ /* convert sha1 to sha1_asc */ ++ for(i=0; i nameRtrnLen) && nameRtrn) { ++ ErrorF("[xkb] nameRtrn too small to hold xkmfile name\n"); ++ return FALSE; ++ } ++ strncpy(nameRtrn, xkmfile, nameRtrnLen); ++ ++ /* if the xkm file already exists, reuse it */ ++ canonicalXkmFileName = Xprintf("%s%s.xkm", xkm_output_dir, xkmfile); ++ if (access(canonicalXkmFileName, R_OK) == 0) { ++ /* yes, we can reuse the old xkm file */ ++ LogMessage(X_INFO, "XKB: reuse xkmfile %s\n", canonicalXkmFileName); ++ result = TRUE; ++ goto _ret; ++ } ++ LogMessage(X_INFO, "XKB: generating xkmfile %s\n", canonicalXkmFileName); ++ ++ /* continue to call xkbcomp to compile the keymap. to avoid race ++ condition, we compile it to a tmpfile then rename it to ++ xkmfile */ ++ + #ifdef WIN32 + strcpy(tmpname, Win32TempDir()); + strcat(tmpname, "\\xkb_XXXXXX"); +@@ -225,19 +315,30 @@ XkbDDXCompileKeymapByNames( XkbDescPtr xkb, + } + } + ++ if ( (tmpXkmFile = tempnam(xkm_output_dir, NULL)) == NULL ) { ++ ErrorF("[xkb] Can't generate temp xkm file name"); ++ result = FALSE; ++ goto _ret; ++ } ++ + buf = Xprintf("\"%s%sxkbcomp\" -w %d %s -xkm \"%s\" " +- "-em1 %s -emp %s -eml %s \"%s%s.xkm\"", ++ "-em1 %s -emp %s -eml %s \"%s\"", + xkbbindir, xkbbindirsep, + ( (xkbDebugFlags < 2) ? 1 : + ((xkbDebugFlags > 10) ? 10 : (int)xkbDebugFlags) ), +- xkbbasedirflag, xkmfile, ++ xkbbasedirflag, xkbfile, + PRE_ERROR_MSG, ERROR_PREFIX, POST_ERROR_MSG1, +- xkm_output_dir, keymap); ++ tmpXkmFile); + + if (xkbbasedirflag != emptystring) { + xfree(xkbbasedirflag); + } + ++ /* there's a potential race condition between calling tempnam() ++ and invoking xkbcomp to write the result file (potential temp ++ file name conflicts), but since xkbcomp is a standalone ++ program, we have to live with this */ ++ + #ifndef WIN32 + out= Popen(buf,"w"); + #else +@@ -245,31 +346,41 @@ XkbDDXCompileKeymapByNames( XkbDescPtr xkb, + #endif + + if (out!=NULL) { +-#ifdef DEBUG +- if (xkbDebugFlags) { +- ErrorF("[xkb] XkbDDXCompileKeymapByNames compiling keymap:\n"); +- XkbWriteXKBKeymapForNames(stderr,names,xkb,want,need); +- } +-#endif +- XkbWriteXKBKeymapForNames(out,names,xkb,want,need); ++ /* write XKBKeyMapBuf to xkbcomp */ ++ if (EOF==fputs(xkbKeyMapBuf, out)) ++ { ++ ErrorF("[xkb] Sending keymap to xkbcomp failed\n"); ++ result = FALSE; ++ goto _ret; ++ } + #ifndef WIN32 + if (Pclose(out)==0) + #else + if (fclose(out)==0 && System(buf) >= 0) + #endif + { ++ /* xkbcomp success */ + if (xkbDebugFlags) + DebugF("[xkb] xkb executes: %s\n",buf); +- if (nameRtrn) { +- strncpy(nameRtrn,keymap,nameRtrnLen); +- nameRtrn[nameRtrnLen-1]= '\0'; ++ /* if canonicalXkmFileName already exists now, we simply ++ overwrite it, this is OK */ ++ ret = rename(tmpXkmFile, canonicalXkmFileName); ++ if (0 != ret) { ++ ErrorF("[xkb] Can't rename %s to %s, error: %s\n", ++ tmpXkmFile, canonicalXkmFileName, ++ strerror(errno)); ++ ++ /* in case of error, don't unlink tmpXkmFile, leave it ++ for debugging */ ++ ++ result = FALSE; ++ goto _ret; + } +- if (buf != NULL) +- xfree (buf); +- return TRUE; ++ result = TRUE; ++ goto _ret; + } + else +- LogMessage(X_ERROR, "Error compiling keymap (%s)\n", keymap); ++ LogMessage(X_ERROR, "Error compiling keymap (%s)\n", xkbfile); + #ifdef WIN32 + /* remove the temporary file */ + unlink(tmpname); +@@ -284,9 +395,16 @@ XkbDDXCompileKeymapByNames( XkbDescPtr xkb, + } + if (nameRtrn) + nameRtrn[0]= '\0'; ++ result = FALSE; ++ ++_ret: ++ if (tmpXkmFile) ++ free(tmpXkmFile); ++ if (canonicalXkmFileName) ++ xfree(canonicalXkmFileName); + if (buf != NULL) + xfree (buf); +- return FALSE; ++ return result; + } + + static FILE * +@@ -370,7 +488,6 @@ unsigned missing; + DebugF("Loaded XKB keymap %s, defined=0x%x\n",fileName,(*xkbRtrn)->defined); + } + fclose(file); +- (void) unlink (fileName); + return (need|want)&(~missing); + } + +-- +1.5.6.5 + diff --git a/packages/x11/xserver/xorg-server/patches/xorg-x11-nonroot-vesa.diff b/packages/x11/xserver/xorg-server/patches/xorg-x11-nonroot-vesa.diff new file mode 100644 index 0000000000..76c0a38aa4 --- /dev/null +++ b/packages/x11/xserver/xorg-server/patches/xorg-x11-nonroot-vesa.diff @@ -0,0 +1,12 @@ +--- xorg-server-1.6.1.901/hw/xfree86/common/xf86AutoConfig.c~ 2009-07-03 11:59:30.000000000 -0700 ++++ xorg-server-1.6.1.901/hw/xfree86/common/xf86AutoConfig.c 2009-07-03 11:59:30.000000000 -0700 +@@ -516,7 +516,8 @@ + /* Fallback to platform default hardware */ + if (i < (nmatches - 1)) { + #if defined(__i386__) || defined(__amd64__) || defined(__hurd__) +- matches[i++] = xnfstrdup("vesa"); ++ if (geteuid() == 0) ++ matches[i++] = xnfstrdup("vesa"); + #elif defined(__sparc__) && !defined(sun) + matches[i++] = xnfstrdup("sunffb"); + #endif diff --git a/packages/x11/xserver/xorg-server/patches/xserver-1.5.0-bg-none-root.diff b/packages/x11/xserver/xorg-server/patches/xserver-1.5.0-bg-none-root.diff index 097b085a32..78a8c84df4 100644 --- a/packages/x11/xserver/xorg-server/patches/xserver-1.5.0-bg-none-root.diff +++ b/packages/x11/xserver/xorg-server/patches/xserver-1.5.0-bg-none-root.diff @@ -1,17 +1,3 @@ -From b4e4b980663692a3af5787eeaf2d48eb6c0188ed Mon Sep 17 00:00:00 2001 -From: Fedora X Ninjas -Date: Tue, 4 Aug 2009 14:45:58 +1000 -Subject: [PATCH] Add nr for background=none root - ---- - dix/globals.c | 1 + - dix/window.c | 12 +++++++----- - hw/xfree86/common/xf86Init.c | 11 +++++++++++ - hw/xfree86/common/xf86str.h | 5 ++++- - include/opaque.h | 1 + - os/utils.c | 3 +++ - 6 files changed, 27 insertions(+), 6 deletions(-) - diff --git a/dix/globals.c b/dix/globals.c index c24a94f..907a5e8 100644 --- a/dix/globals.c @@ -25,10 +11,10 @@ index c24a94f..907a5e8 100644 int cursorScreenDevPriv[MAXSCREENS]; diff --git a/dix/window.c b/dix/window.c -index 32e26d9..0bf1d52 100644 +index caff1cb..f343d25 100644 --- a/dix/window.c +++ b/dix/window.c -@@ -466,22 +466,24 @@ InitRootWindow(WindowPtr pWin) +@@ -466,23 +466,24 @@ InitRootWindow(WindowPtr pWin) pWin->optional->cursor = rootCursor; rootCursor->refcnt++; @@ -38,28 +24,28 @@ index 32e26d9..0bf1d52 100644 if (party_like_its_1989) { MakeRootTile(pWin); backFlag |= CWBackPixmap; -+ pScreen->ChangeWindowAttributes(pWin, backFlag); ++ (*pScreen->ChangeWindowAttributes)(pWin, backFlag); + } else if (bgNoneRoot) { -+ /* nothing, handled in xf86CreateRootWindow */ ++ /* nothing, handled in xf86CreateRootWindow */ } else { if (whiteRoot) pWin->background.pixel = pScreen->whitePixel; else pWin->background.pixel = pScreen->blackPixel; backFlag |= CWBackPixel; -- } ++ (*pScreen->ChangeWindowAttributes)(pWin, backFlag); + } - pWin->backingStore = defaultBackingStore; - pWin->forcedBS = (defaultBackingStore != NotUseful); - /* We SHOULD check for an error value here XXX */ - (*pScreen->ChangeWindowAttributes)(pWin, backFlag); -+ pScreen->ChangeWindowAttributes(pWin, backFlag); -+ } - +- MapWindow(pWin, serverClient); } + diff --git a/hw/xfree86/common/xf86Init.c b/hw/xfree86/common/xf86Init.c -index e84da4e..2a0f47a 100644 +index c9baff3..81c62f2 100644 --- a/hw/xfree86/common/xf86Init.c +++ b/hw/xfree86/common/xf86Init.c @@ -77,6 +77,7 @@ @@ -70,7 +56,7 @@ index e84da4e..2a0f47a 100644 #include "xf86VGAarbiter.h" #include "globals.h" -@@ -234,6 +235,7 @@ xf86CreateRootWindow(WindowPtr pWin) +@@ -249,6 +250,7 @@ xf86CreateRootWindow(WindowPtr pWin) int ret = TRUE; int err = Success; ScreenPtr pScreen = pWin->drawable.pScreen; @@ -78,24 +64,24 @@ index e84da4e..2a0f47a 100644 RootWinPropPtr pProp; CreateWindowProcPtr CreateWindow = (CreateWindowProcPtr) dixLookupPrivate(&pScreen->devPrivates, xf86CreateRootWindowKey); -@@ -285,6 +287,15 @@ xf86CreateRootWindow(WindowPtr pWin) +@@ -300,6 +302,15 @@ xf86CreateRootWindow(WindowPtr pWin) } } -+ if (bgNoneRoot && pScrn->canDoBGNoneRoot) { -+ pWin->backgroundState = XaceBackgroundNoneState(pWin); -+ pWin->background.pixel = pScreen->whitePixel; -+ pScreen->ChangeWindowAttributes(pWin, CWBackPixmap | CWBorderPixel | CWCursor | CWBackingStore); ++ if (bgNoneRoot && pScrn->canDoBGNoneRoot || 1) { ++ pWin->backgroundState = XaceBackgroundNoneState(pWin); ++ pWin->background.pixel = pScreen->whitePixel; ++ pScreen->ChangeWindowAttributes(pWin, CWBackPixmap | CWBorderPixel | CWCursor | CWBackingStore); + } else { -+ pWin->background.pixel = pScreen->blackPixel; -+ pScreen->ChangeWindowAttributes(pWin, CWBackPixel | CWBorderPixel | CWCursor | CWBackingStore); ++ pWin->background.pixel = pScreen->blackPixel; ++ pScreen->ChangeWindowAttributes(pWin, CWBackPixel | CWBorderPixel | CWCursor | CWBackingStore); + } + DebugF("xf86CreateRootWindow() returns %d\n", ret); return (ret); } diff --git a/hw/xfree86/common/xf86str.h b/hw/xfree86/common/xf86str.h -index 5c3ee44..e3c7841 100644 +index b9a2e06..fd28664 100644 --- a/hw/xfree86/common/xf86str.h +++ b/hw/xfree86/common/xf86str.h @@ -516,7 +516,7 @@ typedef struct _confdrirec { @@ -107,12 +93,12 @@ index 5c3ee44..e3c7841 100644 #define NUM_RESERVED_POINTERS 14 #define NUM_RESERVED_FUNCS 11 -@@ -800,6 +800,9 @@ typedef struct _ScrnInfoRec { +@@ -788,6 +788,9 @@ typedef struct _ScrnInfoRec { ClockRangesPtr clockRanges; int adjustFlags; + /* -nr support */ -+ int canDoBGNoneRoot; ++ int canDoBGNoneRoot; + /* * These can be used when the minor ABI version is incremented. @@ -130,10 +116,10 @@ index b3c7c70..fcc8c95 100644 extern _X_EXPORT Bool CoreDump; diff --git a/os/utils.c b/os/utils.c -index 00abd63..7bfdf8b 100644 +index 3718b17..52e30d3 100644 --- a/os/utils.c +++ b/os/utils.c -@@ -514,6 +514,7 @@ void UseMsg(void) +@@ -513,6 +513,7 @@ void UseMsg(void) #endif ErrorF("-nolisten string don't listen on protocol\n"); ErrorF("-noreset don't reset after last client exists\n"); @@ -141,7 +127,7 @@ index 00abd63..7bfdf8b 100644 ErrorF("-reset reset after last client exists\n"); ErrorF("-p # screen-saver pattern duration (minutes)\n"); ErrorF("-pn accept failure to listen on all ports\n"); -@@ -861,6 +862,8 @@ ProcessCommandLine(int argc, char *argv[]) +@@ -856,6 +857,8 @@ ProcessCommandLine(int argc, char *argv[]) defaultBackingStore = WhenMapped; else if ( strcmp( argv[i], "-wr") == 0) whiteRoot = TRUE; @@ -150,6 +136,3 @@ index 00abd63..7bfdf8b 100644 else if ( strcmp( argv[i], "-maxbigreqsize") == 0) { if(++i < argc) { long reqSizeArg = atol(argv[i]); --- -1.6.0.6 - diff --git a/packages/x11/xserver/xorg-server/patches/xserver-boottime.diff b/packages/x11/xserver/xorg-server/patches/xserver-boottime.diff deleted file mode 100644 index efc85a42ab..0000000000 --- a/packages/x11/xserver/xorg-server/patches/xserver-boottime.diff +++ /dev/null @@ -1,38 +0,0 @@ -diff --git a/os/log.c b/os/log.c -index 0860847..2c46f1a 100644 ---- a/os/log.c -+++ b/os/log.c -@@ -255,6 +255,33 @@ LogVWrite(int verb, const char *f, va_list args) - static char tmpBuffer[1024]; - int len = 0; - -+ struct timeval time; -+ time_t tv_sec; -+ suseconds_t tv_usec; -+ static Bool first = TRUE; -+ static time_t start_tv_sec; -+ static suseconds_t start_usec; -+ int diff_sec, diff_usec; -+ -+ gettimeofday(&time, NULL); -+ tv_sec = time.tv_sec; -+ tv_usec = time.tv_usec; -+ if (first == TRUE) { -+ start_tv_sec = tv_sec; -+ start_usec = tv_usec; -+ first = FALSE; -+ } -+ diff_sec = (int)difftime(tv_sec, start_tv_sec); -+ diff_usec = (tv_usec - start_usec); -+ if (diff_usec < 0) { -+ diff_sec--; -+ diff_usec += 1000000; -+ } -+ sprintf(tmpBuffer, "[%d sec: %06d usec]", diff_sec , diff_usec); -+ len = strlen(tmpBuffer); -+ if (logFile) -+ fwrite(tmpBuffer, len, 1, logFile); -+ - /* - * Since a va_list can only be processed once, write the string to a - * buffer, and then write the buffer out to the appropriate output diff --git a/packages/x11/xserver/xorg-server/url b/packages/x11/xserver/xorg-server/url index 44f6c589ee..1d6674c0fe 100644 --- a/packages/x11/xserver/xorg-server/url +++ b/packages/x11/xserver/xorg-server/url @@ -1 +1 @@ -http://xorg.freedesktop.org/archive/individual/xserver/xorg-server-1.7.6.902.tar.bz2 \ No newline at end of file +http://xorg.freedesktop.org/archive/individual/xserver/xorg-server-1.8.0.902.tar.bz2 \ No newline at end of file From d27c7e23cbc1aa368d2c0992456ee831a48f3c63 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Fri, 7 May 2010 03:55:57 +0200 Subject: [PATCH 287/320] xf86-input-evdev: - remove HAL configfile --- .../xf86-input-evdev/config/10-x11-evdev.fdi | 18 ------------------ packages/x11/driver/xf86-input-evdev/install | 6 ------ 2 files changed, 24 deletions(-) delete mode 100644 packages/x11/driver/xf86-input-evdev/config/10-x11-evdev.fdi diff --git a/packages/x11/driver/xf86-input-evdev/config/10-x11-evdev.fdi b/packages/x11/driver/xf86-input-evdev/config/10-x11-evdev.fdi deleted file mode 100644 index a7fe8ccb42..0000000000 --- a/packages/x11/driver/xf86-input-evdev/config/10-x11-evdev.fdi +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - evdev - - - - - - evdev - - - - diff --git a/packages/x11/driver/xf86-input-evdev/install b/packages/x11/driver/xf86-input-evdev/install index feb114d0d6..08c12c682c 100755 --- a/packages/x11/driver/xf86-input-evdev/install +++ b/packages/x11/driver/xf86-input-evdev/install @@ -2,11 +2,5 @@ . config/options -PKG_DIR=`find $PACKAGES -type d -name $1` - mkdir -p $INSTALL/$XORG_PATH_MODULES/input cp -P $PKG_BUILD/src/.libs/evdev_drv.so $INSTALL/$XORG_PATH_MODULES/input - -mkdir -p $INSTALL/usr/share/hal/fdi/policy/20thirdparty - cp -P $PKG_DIR/config/10-x11-evdev.fdi \ - $INSTALL/usr/share/hal/fdi/policy/20thirdparty From e3b74c2861e79a2dbc62041ce31f0d032bbc4cd3 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Fri, 7 May 2010 03:56:57 +0200 Subject: [PATCH 288/320] xf86-input-wacom: - add udev rule - add xorg configfile --- .../xf86-input-wacom/config/11-wacom.conf | 20 +++++++++++++++++++ .../config/69-xorg-wacom.rules | 2 ++ packages/x11/driver/xf86-input-wacom/install | 9 +++++++-- 3 files changed, 29 insertions(+), 2 deletions(-) create mode 100644 packages/x11/driver/xf86-input-wacom/config/11-wacom.conf create mode 100644 packages/x11/driver/xf86-input-wacom/config/69-xorg-wacom.rules diff --git a/packages/x11/driver/xf86-input-wacom/config/11-wacom.conf b/packages/x11/driver/xf86-input-wacom/config/11-wacom.conf new file mode 100644 index 0000000000..dd486eef48 --- /dev/null +++ b/packages/x11/driver/xf86-input-wacom/config/11-wacom.conf @@ -0,0 +1,20 @@ +Section "InputClass" + Identifier "Wacom class" + MatchProduct "Wacom|WALTOP|WACOM" + Driver "wacom" +EndSection + +Section "InputClass" + Identifier "Wacom serial class" + MatchProduct "WACf|FUJ02e5|FUJ02e7" + Driver "wacom" + Option "ForceDevice" "ISDV4" +EndSection + +# N-Trig Duosense Electromagnetic Digitizer +Section "InputClass" + Identifier "Wacom N-Trig class" + MatchProduct "HID 1b96:0001" + MatchDevicePath "/dev/input/event*" + Driver "wacom" +EndSection diff --git a/packages/x11/driver/xf86-input-wacom/config/69-xorg-wacom.rules b/packages/x11/driver/xf86-input-wacom/config/69-xorg-wacom.rules new file mode 100644 index 0000000000..b7da7c1b1f --- /dev/null +++ b/packages/x11/driver/xf86-input-wacom/config/69-xorg-wacom.rules @@ -0,0 +1,2 @@ +ACTION=="add|change", SUBSYSTEM=="pnp", ATTR{id}=="WACf*", ENV{NAME}="Serial Wacom Tablet" +ACTION=="add|change", SUBSYSTEMS=="pnp", ATTRS{id}=="WACf*", ENV{x11_driver}="wacom", ENV{ID_INPUT}="1", ENV{ID_INPUT_TABLET}="1" diff --git a/packages/x11/driver/xf86-input-wacom/install b/packages/x11/driver/xf86-input-wacom/install index 04d2ac7e04..686dd7b685 100755 --- a/packages/x11/driver/xf86-input-wacom/install +++ b/packages/x11/driver/xf86-input-wacom/install @@ -2,11 +2,16 @@ . config/options +PKG_DIR=`find $PACKAGES -type d -name $1` + mkdir -p $INSTALL/$XORG_PATH_MODULES/input cp -P $PKG_BUILD/src/.libs/wacom_drv.so $INSTALL/$XORG_PATH_MODULES/input -mkdir -p $INSTALL/usr/share/hal/fdi/policy/20thirdparty/ - cp -P $PKG_BUILD/fdi/*.fdi $INSTALL/usr/share/hal/fdi/policy/20thirdparty/ +mkdir -p $INSTALL/usr/share/X11/xorg.conf.d + cp -P $PKG_DIR/config/*.conf $INSTALL/usr/share/X11/xorg.conf.d + +mkdir -p $INSTALL/lib/udev/rules.d + cp -P $PKG_DIR/config/*.rules $INSTALL/lib/udev/rules.d mkdir -p $INSTALL/usr/bin cp -P $PKG_BUILD/tools/xsetwacom $INSTALL/usr/bin From 5e507a87ee8798e765e090a91803a0e3e7cee500 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Fri, 7 May 2010 03:57:44 +0200 Subject: [PATCH 289/320] xorg-server: - remove old, no more needed configfile --- packages/x11/xserver/xorg-server/config/10-quirks.conf | 10 ---------- packages/x11/xserver/xorg-server/install | 3 --- 2 files changed, 13 deletions(-) delete mode 100644 packages/x11/xserver/xorg-server/config/10-quirks.conf diff --git a/packages/x11/xserver/xorg-server/config/10-quirks.conf b/packages/x11/xserver/xorg-server/config/10-quirks.conf deleted file mode 100644 index 7afad22dc6..0000000000 --- a/packages/x11/xserver/xorg-server/config/10-quirks.conf +++ /dev/null @@ -1,10 +0,0 @@ -# Collection of quirks and blacklist/whitelists for specific devices. - - -# Accelerometer device, posts data through ABS_X/ABS_Y, making X unusable -# http://bugs.freedesktop.org/show_bug.cgi?id=22442 -Section "InputClass" - Identifier "ThinkPad HDAPS accelerometer blacklist" - MatchProduct "ThinkPad HDAPS accelerometer data" - Option "Ignore" "on" -EndSection diff --git a/packages/x11/xserver/xorg-server/install b/packages/x11/xserver/xorg-server/install index ff128bd5b2..67ee8d8bac 100755 --- a/packages/x11/xserver/xorg-server/install +++ b/packages/x11/xserver/xorg-server/install @@ -52,9 +52,6 @@ mkdir -p $XORG_DST/multimedia mkdir -p $INSTALL/usr/lib/xorg cp -P $PKG_BUILD/dix/protocol.txt $INSTALL/usr/lib/xorg -#mkdir -p $INSTALL/etc/X11/xorg.conf.d -# cp -P $PKG_DIR/config/*.conf $INSTALL/etc/X11/xorg.conf.d - mkdir -p $INSTALL/usr/share/X11/xorg.conf.d cp -P $PKG_BUILD/config/10-evdev.conf $INSTALL/usr/share/X11/xorg.conf.d From 65a4618a7351b243ac832aa62fcb4206aa00ed40 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Fri, 7 May 2010 03:59:40 +0200 Subject: [PATCH 290/320] xf86-input-synaptics: - dont install HAL configfile --- packages/x11/driver/xf86-input-synaptics/install | 3 --- 1 file changed, 3 deletions(-) diff --git a/packages/x11/driver/xf86-input-synaptics/install b/packages/x11/driver/xf86-input-synaptics/install index 6cd60cdb6f..b70b8b3f4f 100755 --- a/packages/x11/driver/xf86-input-synaptics/install +++ b/packages/x11/driver/xf86-input-synaptics/install @@ -6,6 +6,3 @@ $SCRIPTS/install libXi mkdir -p $INSTALL/$XORG_PATH_MODULES/input cp -P $PKG_BUILD/src/.libs/synaptics_drv.so $INSTALL/$XORG_PATH_MODULES/input - -mkdir -p $INSTALL/usr/share/hal/fdi/policy/20thirdparty/ - cp -P $PKG_BUILD/fdi/*.fdi $INSTALL/usr/share/hal/fdi/policy/20thirdparty/ From 53e080efc55e401219e3eca9bb98ec8bc083abda Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Fri, 7 May 2010 04:00:51 +0200 Subject: [PATCH 291/320] hal: - remove init.d script - strip down installation of hal, we actually only need the libs for building xbmc --- packages/sysutils/hal/init.d/13_hal | 12 ----- packages/sysutils/hal/install | 53 ------------------- .../hal-Linux-should-use-evdev-xkb-rule.diff | 26 --------- 3 files changed, 91 deletions(-) delete mode 100755 packages/sysutils/hal/init.d/13_hal delete mode 100644 packages/sysutils/hal/patches/hal-Linux-should-use-evdev-xkb-rule.diff diff --git a/packages/sysutils/hal/init.d/13_hal b/packages/sysutils/hal/init.d/13_hal deleted file mode 100755 index 2fea190991..0000000000 --- a/packages/sysutils/hal/init.d/13_hal +++ /dev/null @@ -1,12 +0,0 @@ -# -# starting HAL -# -# runlevels: openelec, textmode - -progress "Starting Hardware Abstraction Layer" - - $IONICE mkdir -p /var/cache/hald \ - /var/run/dbus/hald-local \ - /var/run/dbus/hald-runner - - hald --verbose=no --daemon=yes --use-syslog & diff --git a/packages/sysutils/hal/install b/packages/sysutils/hal/install index ad17e14996..37152c3c88 100755 --- a/packages/sysutils/hal/install +++ b/packages/sysutils/hal/install @@ -9,60 +9,7 @@ $SCRIPTS/install dbus $SCRIPTS/install dbus-glib $SCRIPTS/install util-linux-ng -add_user haldaemon x 68 68 "HAL daemon" "/" "/bin/sh" -add_group haldaemon 68 - -mkdir -p $INSTALL/usr/sbin - cp $PKG_BUILD/hald/hald $INSTALL/usr/sbin/ - -mkdir -p $INSTALL/usr/bin - cp $PKG_BUILD/tools/.libs/lshal $INSTALL/usr/bin - cp $PKG_BUILD/tools/.libs/hal-device $INSTALL/usr/bin - cp $PKG_BUILD/tools/.libs/hal-disable-polling $INSTALL/usr/bin - cp $PKG_BUILD/tools/.libs/hal-find-by-capability $INSTALL/usr/bin - cp $PKG_BUILD/tools/.libs/hal-find-by-property $INSTALL/usr/bin - cp $PKG_BUILD/tools/.libs/hal-get-property $INSTALL/usr/bin - cp $PKG_BUILD/tools/.libs/hal-is-caller-locked-out $INSTALL/usr/bin - cp $PKG_BUILD/tools/.libs/hal-lock $INSTALL/usr/bin - cp $PKG_BUILD/tools/.libs/hal-set-property $INSTALL/usr/bin - -mkdir -p $INSTALL/usr/libexec - cp $PKG_BUILD/tools/.libs/hal-storage-mount $INSTALL/usr/libexec - cp $PKG_BUILD/tools/.libs/hal-storage-unmount $INSTALL/usr/libexec - cp $PKG_BUILD/tools/.libs/hal-storage-eject $INSTALL/usr/libexec - cp $PKG_BUILD/tools/.libs/hal-storage-closetray $INSTALL/usr/libexec - cp $PKG_BUILD/tools/.libs/hal-storage-cleanup-mountpoint $INSTALL/usr/libexec - cp $PKG_BUILD/tools/.libs/hal-storage-cleanup-all-mountpoints $INSTALL/usr/libexec - cp $PKG_BUILD/hald/linux/addons/.libs/hald-addon-* $INSTALL/usr/libexec - cp $PKG_BUILD/hald/linux/probing/.libs/hald-probe-* $INSTALL/usr/libexec - cp $PKG_BUILD/hald/hald-generate-fdi-cache $INSTALL/usr/libexec - cp $PKG_BUILD/hald-runner/hald-runner $INSTALL/usr/libexec - -mkdir -p $INSTALL/usr/lib/hal/scripts - cp $PKG_BUILD/tools/hal-functions $INSTALL/usr/lib/hal/scripts - cp $PKG_BUILD/tools/hal-dockstation-undock $INSTALL/usr/lib/hal/scripts - mkdir -p $INSTALL/usr/lib cp -PR $PKG_BUILD/libhal/.libs/libhal.so* $INSTALL/usr/lib cp -PR $PKG_BUILD/libhal-storage/.libs/libhal-storage.so* $INSTALL/usr/lib rm -rf $INSTALL/usr/lib/libhal-storage.so*T - -mkdir -p $INSTALL/lib/udev/rules.d - cp $PKG_BUILD/tools/linux/90-hal.rules $INSTALL/lib/udev/rules.d - -mkdir -p $INSTALL/etc/dbus-1/system.d - cp $PKG_BUILD/hal.conf $INSTALL/etc/dbus-1/system.d - -mkdir -p $INSTALL/etc/hal/fdi/preprobe -mkdir -p $INSTALL/etc/hal/fdi/information -mkdir -p $INSTALL/etc/hal/fdi/policy -mkdir -p $INSTALL/usr/share/hal/fdi/preprobe -mkdir -p $INSTALL/usr/share/hal/fdi/information/10freedesktop - -mkdir -p $INSTALL/usr/share/hal/fdi/policy/10osvendor -cp \ - $PKG_BUILD/fdi/policy/10osvendor/10-input-policy.fdi \ - $PKG_BUILD/fdi/policy/10osvendor/10-keymap.fdi \ - $PKG_BUILD/fdi/policy/10osvendor/20-storage-methods.fdi \ - $PKG_BUILD/fdi/policy/10osvendor/20-acl-management.fdi \ - $INSTALL/usr/share/hal/fdi/policy/10osvendor diff --git a/packages/sysutils/hal/patches/hal-Linux-should-use-evdev-xkb-rule.diff b/packages/sysutils/hal/patches/hal-Linux-should-use-evdev-xkb-rule.diff deleted file mode 100644 index 8893286468..0000000000 --- a/packages/sysutils/hal/patches/hal-Linux-should-use-evdev-xkb-rule.diff +++ /dev/null @@ -1,26 +0,0 @@ -From a81c0756c48621fadd18597bb337e08c4c3529d0 Mon Sep 17 00:00:00 2001 -From: Yan Li -Date: Mon, 5 Jan 2009 17:16:03 +0800 -Subject: [PATCH] Linux should use evdev xkb rule - - -Signed-off-by: Yan Li ---- - fdi/policy/10osvendor/10-keymap.fdi | 1 + - 1 files changed, 1 insertions(+), 0 deletions(-) - -diff --git a/fdi/policy/10osvendor/10-keymap.fdi b/fdi/policy/10osvendor/10-keymap.fdi -index c9ad87c..1971e8b 100644 ---- a/fdi/policy/10osvendor/10-keymap.fdi -+++ b/fdi/policy/10osvendor/10-keymap.fdi -@@ -13,6 +13,7 @@ - keyboard - -+ evdev - evdev - - --- -1.5.6.5 - From f2e1b8ad43c98d90b577b34a27c6139b41c0e58a Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Fri, 7 May 2010 21:25:33 +0200 Subject: [PATCH 292/320] debug: - dont install mrxvt and evilwm --- packages/debug/install | 3 --- 1 file changed, 3 deletions(-) diff --git a/packages/debug/install b/packages/debug/install index e9ac17a4fa..8a476775a2 100755 --- a/packages/debug/install +++ b/packages/debug/install @@ -5,6 +5,3 @@ $SCRIPTS/install strace $SCRIPTS/install gdb $SCRIPTS/install bootchart - -$SCRIPTS/install mrxvt -$SCRIPTS/install evilwm From 92dc1e5a569319a795df1dc9500c208c9fa30d09 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Fri, 7 May 2010 21:25:54 +0200 Subject: [PATCH 293/320] mrxvt: - remove package --- packages/x11/other/mrxvt/build | 52 ------------------- packages/x11/other/mrxvt/install | 12 ----- .../x11/other/mrxvt/scripts/mrxvt-session | 9 ---- packages/x11/other/mrxvt/url | 1 - 4 files changed, 74 deletions(-) delete mode 100755 packages/x11/other/mrxvt/build delete mode 100755 packages/x11/other/mrxvt/install delete mode 100755 packages/x11/other/mrxvt/scripts/mrxvt-session delete mode 100644 packages/x11/other/mrxvt/url diff --git a/packages/x11/other/mrxvt/build b/packages/x11/other/mrxvt/build deleted file mode 100755 index ca0be43536..0000000000 --- a/packages/x11/other/mrxvt/build +++ /dev/null @@ -1,52 +0,0 @@ -#!/bin/sh - -. config/options - -$SCRIPTS/build toolchain -$SCRIPTS/build libX11 -$SCRIPTS/build libXrender - -cd $PKG_BUILD -ac_cv_func_setpgrp_void=no \ -./configure --host=$TARGET_NAME \ - --build=$HOST_NAME \ - --prefix=/usr \ - --sysconfdir=/etc \ - --disable-static \ - --enable-shared \ - --x-includes=$SYSROOT_PREFIX/usr/include \ - --x-libraries=$SYSROOT_PREFIX/usr/lib \ - --enable-minimal \ - --disable-frills \ - --enable-keepscrolling \ - --disable-selectionscrolling \ - --enable-mousewheel \ - --disable-mouseslipwheel \ - --enable-rxvt-scroll \ - --disable-half-shadow \ - --enable-lastlog \ - --enable-sessionmgr \ - --enable-linespace \ - --enable-24bits \ - --enable-256colors \ - --enable-cursor-blink \ - --enable-pointer-blank \ - --disable-text-shadow \ - --enable-menubar \ - --disable-transparency \ - --disable-fading \ - --disable-tinting \ - --enable-xrender \ - --disable-xpm \ - --disable-jpeg \ - --disable-png \ - --disable-xft \ - --enable-ttygid \ - --enable-backspace-key \ - --enable-delete-key \ - --disable-resources \ - --disable-swapscreen - -make - -$STRIP src/$1 diff --git a/packages/x11/other/mrxvt/install b/packages/x11/other/mrxvt/install deleted file mode 100755 index 6680b84377..0000000000 --- a/packages/x11/other/mrxvt/install +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/sh - -. config/options - -$SCRIPTS/install libX11 - -PKG_DIR=`find $PACKAGES -type d -name $1` - -mkdir -p $INSTALL/usr/bin - cp -P $PKG_DIR/scripts/$1-session $INSTALL/usr/bin - cp -P $PKG_BUILD/src/$1 $INSTALL/usr/bin - diff --git a/packages/x11/other/mrxvt/scripts/mrxvt-session b/packages/x11/other/mrxvt/scripts/mrxvt-session deleted file mode 100755 index 51e940fba2..0000000000 --- a/packages/x11/other/mrxvt/scripts/mrxvt-session +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/sh - -. /etc/profile - -# start Windowmanager by default - $WINDOWMANAGER -term mrxvt & - -# start terminal - mrxvt diff --git a/packages/x11/other/mrxvt/url b/packages/x11/other/mrxvt/url deleted file mode 100644 index f9c9d4d45c..0000000000 --- a/packages/x11/other/mrxvt/url +++ /dev/null @@ -1 +0,0 @@ -http://kent.dl.sourceforge.net/sourceforge/materm/mrxvt-0.5.4.tar.gz From 5628d93252b3869c23f7767a588322d9683b57b7 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Fri, 7 May 2010 21:26:15 +0200 Subject: [PATCH 294/320] evilwm: - remove package --- packages/x11/other/evilwm/build | 13 ---------- packages/x11/other/evilwm/install | 15 ------------ .../x11/other/evilwm/profile.d/evilwm.conf | 24 ------------------- packages/x11/other/evilwm/url | 1 - 4 files changed, 53 deletions(-) delete mode 100755 packages/x11/other/evilwm/build delete mode 100755 packages/x11/other/evilwm/install delete mode 100644 packages/x11/other/evilwm/profile.d/evilwm.conf delete mode 100644 packages/x11/other/evilwm/url diff --git a/packages/x11/other/evilwm/build b/packages/x11/other/evilwm/build deleted file mode 100755 index bda8ff3a15..0000000000 --- a/packages/x11/other/evilwm/build +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/sh - -. config/options - -$SCRIPTS/build toolchain -$SCRIPTS/build libX11 -$SCRIPTS/build libXrandr -$SCRIPTS/build libXext - -cd $PKG_BUILD - -make CC=$TARGET_CC - diff --git a/packages/x11/other/evilwm/install b/packages/x11/other/evilwm/install deleted file mode 100755 index 083422cc35..0000000000 --- a/packages/x11/other/evilwm/install +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/sh - -. config/options - -$SCRIPTS/install libX11 -$SCRIPTS/install libXrandr -$SCRIPTS/install libXext - -PKG_DIR=`find $PACKAGES -type d -name $1` - -mkdir -p $INSTALL/usr/bin - cp -PR $PKG_BUILD/$1 $INSTALL/usr/bin - -# other usefull packages -$SCRIPTS/install xwd \ No newline at end of file diff --git a/packages/x11/other/evilwm/profile.d/evilwm.conf b/packages/x11/other/evilwm/profile.d/evilwm.conf deleted file mode 100644 index d3ab664706..0000000000 --- a/packages/x11/other/evilwm/profile.d/evilwm.conf +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Windowmanager environment variables. -# -# This file contains non-OpenELEC evironment variables as well as OpenELEC -# evironment variables that are not user defined. -################################################################################ - -# [-display display] [-term termprog] [-fn fontname] -# [-fg foreground] [-fc fixed] [-bg background] [-bw borderwidth] -# [-mask1 modifiers] [-mask2 modifiers] [-altmask modifiers] -# [-snap num] [-app name/class] [-g geometry] [-dock] -# [-v vdesk] [-s] [-nosoliddrag] [-V] - -if [ "$DEBUG" = "yes" ]; then - EVILWM_ARG="$EVILWM_ARG -fg red -bw 3" -else - EVILWM_ARG="$EVILWM_ARG -fg black -bw 0" -fi - -EVILWM_ARG="-fn fixed $EVILWM_ARG" - -WINDOWMANAGER="evilwm $EVILWM_ARG" - -export WINDOWMANAGER diff --git a/packages/x11/other/evilwm/url b/packages/x11/other/evilwm/url deleted file mode 100644 index 6ed55c91ce..0000000000 --- a/packages/x11/other/evilwm/url +++ /dev/null @@ -1 +0,0 @@ -http://www.6809.org.uk/evilwm/evilwm-1.1.0pre8.tar.gz \ No newline at end of file From 910b1dcf4553f5a8cafc157dea6e6b7743f846e1 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Fri, 7 May 2010 21:26:50 +0200 Subject: [PATCH 295/320] xorg-server: - dont install uxlaunch - dont install liberation fonts --- packages/x11/xserver/xorg-server/install | 2 -- 1 file changed, 2 deletions(-) diff --git a/packages/x11/xserver/xorg-server/install b/packages/x11/xserver/xorg-server/install index 67ee8d8bac..db1d0c3b1c 100755 --- a/packages/x11/xserver/xorg-server/install +++ b/packages/x11/xserver/xorg-server/install @@ -60,7 +60,6 @@ mkdir -p $INSTALL/usr/share/X11/xorg.conf.d $SCRIPTS/install font-xfree86-type1 $SCRIPTS/install font-bitstream-type1 $SCRIPTS/install font-misc-misc - $SCRIPTS/install liberation-fonts #Server $SCRIPTS/install xkeyboard-config @@ -77,4 +76,3 @@ mkdir -p $INSTALL/usr/share/X11/xorg.conf.d # Tools $SCRIPTS/install pciutils - $SCRIPTS/install uxlaunch From c7d0017869db2b8eb4b0a3d660d59edd7ac9044b Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Fri, 7 May 2010 21:27:09 +0200 Subject: [PATCH 296/320] uxlaunch: - remove package --- packages/x11/other/uxlaunch/build | 12 --- .../x11/other/uxlaunch/init.d/60_uxlaunch | 44 --------- packages/x11/other/uxlaunch/install | 10 -- .../uxlaunch-add_xconfig_option-0.1.diff | 93 ------------------- packages/x11/other/uxlaunch/url | 1 - 5 files changed, 160 deletions(-) delete mode 100755 packages/x11/other/uxlaunch/build delete mode 100644 packages/x11/other/uxlaunch/init.d/60_uxlaunch delete mode 100755 packages/x11/other/uxlaunch/install delete mode 100644 packages/x11/other/uxlaunch/patches/uxlaunch-add_xconfig_option-0.1.diff delete mode 100644 packages/x11/other/uxlaunch/url diff --git a/packages/x11/other/uxlaunch/build b/packages/x11/other/uxlaunch/build deleted file mode 100755 index c6c5b886d3..0000000000 --- a/packages/x11/other/uxlaunch/build +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/sh - -. config/options - -$SCRIPTS/build toolchain -$SCRIPTS/build glib -$SCRIPTS/build dbus -$SCRIPTS/build ConsoleKit - -cd $PKG_BUILD - -make CC=$TARGET_CC diff --git a/packages/x11/other/uxlaunch/init.d/60_uxlaunch b/packages/x11/other/uxlaunch/init.d/60_uxlaunch deleted file mode 100644 index 316fb8e125..0000000000 --- a/packages/x11/other/uxlaunch/init.d/60_uxlaunch +++ /dev/null @@ -1,44 +0,0 @@ -# starting uxlaunch -# -# runlevels: openelec - -progress "starting uxlaunch" - - UX_USER="root" - UX_TTY="1" - XORG_DEFAULT_CONF="/etc/X11/xorg.conf" - XORG_NVIDIA_CONF="/etc/X11/xorg-nvidia.conf" - XORG_USER_CONF="/storage/.config/xorg.conf" - - if [ "$START_MRXVT" = "yes" -a -f /usr/bin/mrxvt-session ]; then - UX_SESSION="/usr/bin/mrxvt-session" - else - UX_SESSION="/usr/bin/xbmc-session" - fi - - UX_ARG="-u $UX_USER -t $UX_TTY -s $UX_SESSION" - [ "$DEBUG" = "yes" ] && UX_ARG="$UX_ARG -v" - -progress "creating directories needed for Xorg" - - $IONICE mkdir -p /var/cache/xkb - $IONICE mkdir -p /var/lib - $IONICE mkdir -m 1777 -p /tmp/.ICE-unix - $IONICE chown root:root /tmp/.ICE-unix - - if lspci -n | grep 0300 | grep -q 10de; then - $IONICE ln -sf /usr/lib/libGL_nvidia.so.1 /var/lib/libGL.so - $IONICE ln -sf /usr/lib/xorg/modules/extensions/libglx_nvidia.so /var/lib/libglx.so - XORG_CONF="$XORG_NVIDIA_CONF" - else - $IONICE ln -sf /usr/lib/libGL_mesa.so.1 /var/lib/libGL.so - $IONICE ln -sf /usr/lib/xorg/modules/extensions/libglx_mesa.so /var/lib/libglx.so - XORG_CONF="$XORG_DEFAULT_CONF" - fi - - [ -f $XORG_USER_CONF ] && XORG_CONF="$XORG_USER_CONF" - UX_ARG="$UX_ARG -c $XORG_CONF" - -progress "starting xsession" - - uxlaunch $UX_ARG > /dev/null 2>&1 \ No newline at end of file diff --git a/packages/x11/other/uxlaunch/install b/packages/x11/other/uxlaunch/install deleted file mode 100755 index bf7a00fdf5..0000000000 --- a/packages/x11/other/uxlaunch/install +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/sh - -. config/options - -$SCRIPTS/install glib -$SCRIPTS/install dbus -$SCRIPTS/install ConsoleKit - -mkdir -p $INSTALL/usr/sbin - cp -P $PKG_BUILD/uxlaunch $INSTALL/usr/sbin diff --git a/packages/x11/other/uxlaunch/patches/uxlaunch-add_xconfig_option-0.1.diff b/packages/x11/other/uxlaunch/patches/uxlaunch-add_xconfig_option-0.1.diff deleted file mode 100644 index 95cabd1f74..0000000000 --- a/packages/x11/other/uxlaunch/patches/uxlaunch-add_xconfig_option-0.1.diff +++ /dev/null @@ -1,93 +0,0 @@ -diff -Naur uxlaunch-0.50/options.c uxlaunch-0.50.patch/options.c ---- uxlaunch-0.50/options.c 2010-04-07 20:32:53.000000000 +0200 -+++ uxlaunch-0.50.patch/options.c 2010-04-10 14:20:36.408482887 +0200 -@@ -27,6 +27,7 @@ - int tty = 2; - char session[256] = "/usr/bin/mutter --sm-disable"; - char username[256] = "meego"; -+char xconfig[256] = "/etc/X11/xorg.conf"; - - int verbose = 0; - -@@ -34,6 +35,7 @@ - { "user", 1, NULL, 'u' }, - { "tty", 1, NULL, 't' }, - { "session", 1, NULL, 's' }, -+ { "xconfig", 1, NULL, 'c' }, - { "help", 0, NULL, 'h' }, - { "verbose", 0, NULL, 'v' }, - { 0, 0, NULL, 0} -@@ -46,6 +48,7 @@ - printf(" -u, --user Start session as specific username\n"); - printf(" -t, --tty Start session on alternative tty number\n"); - printf(" -s, --session Start a non-default session\n"); -+ printf(" -c, --xconfig Xorg config file\n"); - printf(" -v, --verbose Display lots of output to the console\n"); - printf(" -h, --help Display this help message\n"); - } -@@ -126,13 +129,15 @@ - tty = atoi(val); - if (!strcmp(key, "session")) - strncpy(session, val, 256); -+ if (!strcmp(key, "xconfig")) -+ strncpy(xconfig, val, 256); - } - fclose(f); - } - - /* parse cmdline - overrides */ - while (1) { -- c = getopt_long(argc, argv, "u:t:s:hv", opts, &i); -+ c = getopt_long(argc, argv, "u:t:s:c:hv", opts, &i); - if (c == -1) - break; - -@@ -146,6 +151,9 @@ - case 's': - strncpy(session, optarg, 256); - break; -+ case 'c': -+ strncpy(xconfig, optarg, 256); -+ break; - case 'h': - usage(argv[0]); - exit (EXIT_SUCCESS); -@@ -171,7 +179,7 @@ - } - - lprintf("uxlaunch v%s started.", VERSION); -- lprintf("user \"%s\", tty #%d, session \"%s\"", username, tty, session); -+ lprintf("user \"%s\", tty #%d, session \"%s\", xconfig \"%s\"", username, tty, session, xconfig); - - pass = getpwnam(username); - if (!pass) -diff -Naur uxlaunch-0.50/uxlaunch.h uxlaunch-0.50.patch/uxlaunch.h ---- uxlaunch-0.50/uxlaunch.h 2010-04-07 20:32:53.000000000 +0200 -+++ uxlaunch-0.50.patch/uxlaunch.h 2010-04-10 14:18:29.327483352 +0200 -@@ -19,6 +19,7 @@ - extern int tty; - extern char session[]; - extern char username[]; -+extern char xconfig[]; - - extern int session_pid; - extern int xpid; -diff -Naur uxlaunch-0.50/xserver.c uxlaunch-0.50.patch/xserver.c ---- uxlaunch-0.50/xserver.c 2010-04-07 20:32:53.000000000 +0200 -+++ uxlaunch-0.50.patch/xserver.c 2010-04-10 14:18:29.334358167 +0200 -@@ -231,13 +231,13 @@ - execl(xserver, xserver, displayname, - "-nolisten", "tcp", "-dpi", "120", "-noreset", - "-auth", xauth_cookie_file, -- vt, NULL); -+ vt, "-config", xconfig, NULL); - } else { - execl(xserver, xserver, displayname, - "-nolisten", "tcp", "-dpi", "120", "-noreset", - "-auth", user_xauth_path, - "-logfile", xorg_log, -- vt, NULL); -+ vt, "-config", xconfig, NULL); - } - exit(0); - } diff --git a/packages/x11/other/uxlaunch/url b/packages/x11/other/uxlaunch/url deleted file mode 100644 index b4d84fd19d..0000000000 --- a/packages/x11/other/uxlaunch/url +++ /dev/null @@ -1 +0,0 @@ -http://sources.openelec.tv/svn/uxlaunch-0.50.tar.gz \ No newline at end of file From 1125e41e4fd05a965dc1ac1d76f45caa53917931 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Fri, 7 May 2010 21:28:45 +0200 Subject: [PATCH 297/320] xbmc: - remove xbmc-session script - install /usr/share/xbmc/xbmc.bin to /usr/bin/xbmc - add init script to start xbmc - remove cache init script --- .../mediacenter/xbmc/init.d/09_cache_xbmc | 12 --------- packages/mediacenter/xbmc/init.d/60_xbmc | 24 +++++++++++++++++ packages/mediacenter/xbmc/install | 4 +-- .../mediacenter/xbmc/scripts/xbmc-session | 26 ------------------- 4 files changed, 26 insertions(+), 40 deletions(-) delete mode 100755 packages/mediacenter/xbmc/init.d/09_cache_xbmc create mode 100644 packages/mediacenter/xbmc/init.d/60_xbmc delete mode 100755 packages/mediacenter/xbmc/scripts/xbmc-session diff --git a/packages/mediacenter/xbmc/init.d/09_cache_xbmc b/packages/mediacenter/xbmc/init.d/09_cache_xbmc deleted file mode 100755 index 38b6217b4c..0000000000 --- a/packages/mediacenter/xbmc/init.d/09_cache_xbmc +++ /dev/null @@ -1,12 +0,0 @@ -# -# caching xbmc -# -# runlevels: openelec, textmode - -if [ "$XBMC_CACHING" = "yes" ]; then - - progress "caching XBMC" - - cache_xbmc - -fi \ No newline at end of file diff --git a/packages/mediacenter/xbmc/init.d/60_xbmc b/packages/mediacenter/xbmc/init.d/60_xbmc new file mode 100644 index 0000000000..21abe13f02 --- /dev/null +++ b/packages/mediacenter/xbmc/init.d/60_xbmc @@ -0,0 +1,24 @@ +# starting XBMC +# +# runlevels: openelec + +. /etc/profile + +progress "starting XBMC" + + XBMC_ARGS="--standalone -fs --lircdev /dev/lircd" + + [ -f /usr/bin/autoupdate ] && /usr/bin/autoupdate & + + while true; do + + DISPLAY=:0.0 xbmc $XBMC_ARGS > /dev/null 2>&1 + RET=$? + echo "Exited with code $RET" + + [ "$RET" == 0 ] && sync && poweroff + [ "$RET" == 64 ] && sync && poweroff + [ "$RET" == 66 ] && sync && reboot + + usleep 250000 + done diff --git a/packages/mediacenter/xbmc/install b/packages/mediacenter/xbmc/install index 5ecda158c7..c1b171057f 100755 --- a/packages/mediacenter/xbmc/install +++ b/packages/mediacenter/xbmc/install @@ -68,11 +68,11 @@ PKG_DIR=`find $PACKAGES -type d -name $1` PYTHON_LIBDIR="`ls -d $INSTALL/usr/lib/python*`" mkdir -p $INSTALL/usr/bin - cp -P $PKG_DIR/scripts/xbmc-session $INSTALL/usr/bin + cp -P $PKG_BUILD/xbmc.bin $INSTALL/usr/bin/xbmc +# cp -P $PKG_DIR/scripts/xbmc-session $INSTALL/usr/bin cp -P $PKG_BUILD/tools/EventClients/Clients/XBMC\ Send/xbmc-send.py $INSTALL/usr/bin/xbmc-send mkdir -p $INSTALL/usr/share/xbmc - cp -P $PKG_BUILD/xbmc.bin $INSTALL/usr/share/xbmc cp -P $PKG_BUILD/xbmc-xrandr $INSTALL/usr/share/xbmc mkdir -p $INSTALL/usr/share/xbmc/language diff --git a/packages/mediacenter/xbmc/scripts/xbmc-session b/packages/mediacenter/xbmc/scripts/xbmc-session deleted file mode 100755 index 88005e00d1..0000000000 --- a/packages/mediacenter/xbmc/scripts/xbmc-session +++ /dev/null @@ -1,26 +0,0 @@ -#!/bin/sh - -. /etc/profile - -XBMC_ARGS="--standalone -fs --lircdev /dev/lircd" - -if test "$XBMC_CACHING" = "yes" ; then - wait_for_xbmc_cache - XBMC_BIN="/var/cache/bin/xbmc.bin" -else - XBMC_BIN="/usr/share/xbmc/xbmc.bin" -fi - -[ -f /usr/bin/autoupdate ] && /usr/bin/autoupdate & - -while true; do - - $IONICE $XBMC_BIN $XBMC_ARGS $@ > /dev/null 2>&1 - RET=$? - echo "Exited with code $RET" - - [ "$RET" == 0 ] && sync && poweroff - [ "$RET" == 64 ] && sync && poweroff - [ "$RET" == 66 ] && sync && reboot - -done From 3fae0a11080380e7f0cc9d3f97cda246a892d66b Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Fri, 7 May 2010 21:29:21 +0200 Subject: [PATCH 298/320] busybox: - add config file to setup $HOME --- packages/sysutils/busybox/profile.d/home.conf | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 packages/sysutils/busybox/profile.d/home.conf diff --git a/packages/sysutils/busybox/profile.d/home.conf b/packages/sysutils/busybox/profile.d/home.conf new file mode 100644 index 0000000000..f0192e8cf2 --- /dev/null +++ b/packages/sysutils/busybox/profile.d/home.conf @@ -0,0 +1,10 @@ +################################################################################ +# Core (PATH) environment variables. +# +# This file contains non-OpenELEC evironment variables as well as OpenELEC +# evironment variables that are not user defined. +################################################################################ + +HOME="/storage" + +export HOME From fc01075457da5fc7a00f70af93b4abccdd10a818 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Fri, 7 May 2010 21:30:34 +0200 Subject: [PATCH 299/320] xorg-server: - add profile configfile for setting $DISPLAY - add init script to start xorg --- .../x11/xserver/xorg-server/init.d/15_xorg | 43 +++++++++++++++++++ .../xorg-server/profile.d/display.conf | 10 +++++ 2 files changed, 53 insertions(+) create mode 100644 packages/x11/xserver/xorg-server/init.d/15_xorg create mode 100644 packages/x11/xserver/xorg-server/profile.d/display.conf diff --git a/packages/x11/xserver/xorg-server/init.d/15_xorg b/packages/x11/xserver/xorg-server/init.d/15_xorg new file mode 100644 index 0000000000..512c5e1bf1 --- /dev/null +++ b/packages/x11/xserver/xorg-server/init.d/15_xorg @@ -0,0 +1,43 @@ +# starting xorg +# +# runlevels: openelec + +. /etc/profile + + XORG_DEFAULT_CONF="/etc/X11/xorg.conf" + XORG_NVIDIA_CONF="/etc/X11/xorg-nvidia.conf" + XORG_USER_CONF="/storage/.config/xorg.conf" + XORG_ARGS="-s 0 -nr -noreset -allowMouseOpenFail -nocursor -nolisten tcp" + + [ "$DEBUG" = yes ] && XORG_ARGS="$XORG_ARGS -logverbose 6 -verbose 6" + +( + progress "creating directories needed for Xorg" + + mkdir -p /var/cache/xkb + mkdir -p /var/lib + mkdir -m 1777 -p /tmp/.ICE-unix + chown root:root /tmp/.ICE-unix + + if lspci -n | grep 0300 | grep -q 10de; then + + ln -sf /usr/lib/libGL_nvidia.so.1 /var/lib/libGL.so + ln -sf /usr/lib/xorg/modules/extensions/libglx_nvidia.so /var/lib/libglx.so + XORG_ARGS="$XORG_ARGS -ignoreABI" + XORG_CONF="$XORG_NVIDIA_CONF" + + else + + ln -sf /usr/lib/libGL_mesa.so.1 /var/lib/libGL.so + ln -sf /usr/lib/xorg/modules/extensions/libglx_mesa.so /var/lib/libglx.so + XORG_CONF="$XORG_DEFAULT_CONF" + + fi + + [ -f $XORG_USER_CONF ] && XORG_CONF="$XORG_USER_CONF" + + progress "starting xorg" + + XORG_ARGS="$XORG_ARGS -config $XORG_CONF" + Xorg $DISPLAY vt01 $XORG_ARGS > /dev/null 2>&1 +)& \ No newline at end of file diff --git a/packages/x11/xserver/xorg-server/profile.d/display.conf b/packages/x11/xserver/xorg-server/profile.d/display.conf new file mode 100644 index 0000000000..447ecc7d02 --- /dev/null +++ b/packages/x11/xserver/xorg-server/profile.d/display.conf @@ -0,0 +1,10 @@ +################################################################################ +# Xorg environment variables. +# +# This file contains non-OpenELEC evironment variables as well as OpenELEC +# evironment variables that are not user defined. +################################################################################ + +DISPLAY=":0.0" + +export DISPLAY From 59d2aa87f0390677651e534deea05fde386ef9dd Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Fri, 7 May 2010 21:32:08 +0200 Subject: [PATCH 300/320] xbmc: - update to xbmc-29890 --- packages/mediacenter/xbmc/url | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/mediacenter/xbmc/url b/packages/mediacenter/xbmc/url index 2d2f808d42..2051c6e482 100644 --- a/packages/mediacenter/xbmc/url +++ b/packages/mediacenter/xbmc/url @@ -1 +1 @@ -http://sources.openelec.tv/svn/xbmc-29818.tar.bz2 +http://sources.openelec.tv/svn/xbmc-29890.tar.bz2 From d84bbd131b3c1f3a3da68d486d6aa591d7057ce4 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Fri, 7 May 2010 21:32:27 +0200 Subject: [PATCH 301/320] xbmc-theme-Confluence: - update to xbmc-theme-Confluence-29890 --- packages/mediacenter/xbmc-theme-Confluence/url | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/mediacenter/xbmc-theme-Confluence/url b/packages/mediacenter/xbmc-theme-Confluence/url index fc60dd88b9..fade2f3c6f 100644 --- a/packages/mediacenter/xbmc-theme-Confluence/url +++ b/packages/mediacenter/xbmc-theme-Confluence/url @@ -1 +1 @@ -http://sources.openelec.tv/svn/xbmc-theme-Confluence-29818.tar.bz2 +http://sources.openelec.tv/svn/xbmc-theme-Confluence-29890.tar.bz2 From cbde3ef16958438f0a3ded6f1b0f82e763d0aa10 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Fri, 7 May 2010 21:32:45 +0200 Subject: [PATCH 302/320] xbmc-theme-PM3-HD: - update to xbmc-theme-PM3-HD-29890 --- packages/mediacenter/xbmc-theme-PM3-HD/url | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/mediacenter/xbmc-theme-PM3-HD/url b/packages/mediacenter/xbmc-theme-PM3-HD/url index 15cf6f9d5f..d9c23c30c2 100644 --- a/packages/mediacenter/xbmc-theme-PM3-HD/url +++ b/packages/mediacenter/xbmc-theme-PM3-HD/url @@ -1 +1 @@ -http://sources.openelec.tv/svn/xbmc-theme-PM3-HD-29818.tar.bz2 +http://sources.openelec.tv/svn/xbmc-theme-PM3-HD-29890.tar.bz2 From a2e6a80c6b8bdf1c6bb42e61eba2f34ad8e87081 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Sat, 8 May 2010 00:58:11 +0200 Subject: [PATCH 303/320] upower: -update to upower-0.9.3 --- packages/sysutils/upower/url | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/sysutils/upower/url b/packages/sysutils/upower/url index fe8dcb77e1..3ac0acafc0 100644 --- a/packages/sysutils/upower/url +++ b/packages/sysutils/upower/url @@ -1 +1 @@ -http://upower.freedesktop.org/releases/upower-0.9.2.tar.bz2 \ No newline at end of file +http://upower.freedesktop.org/releases/upower-0.9.3.tar.bz2 \ No newline at end of file From b43552d6732cf4eaec469a672d9c14ca64f434e3 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Sat, 8 May 2010 00:58:33 +0200 Subject: [PATCH 304/320] libXmu: - remove unneeded configure option --- packages/x11/lib/libXmu/build | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/x11/lib/libXmu/build b/packages/x11/lib/libXmu/build index a1c27ea6a9..f5a91dac93 100755 --- a/packages/x11/lib/libXmu/build +++ b/packages/x11/lib/libXmu/build @@ -17,7 +17,6 @@ cd $PKG_BUILD --disable-static \ --enable-shared \ --with-gnu-ld \ - --enable-malloc0returnsnull \ make From 289bcd8ef3b05dc913dd0ffa662ecfdb443d4951 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Sat, 8 May 2010 00:58:54 +0200 Subject: [PATCH 305/320] busybox: - add applet uniq --- packages/sysutils/busybox/config/busybox.conf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/sysutils/busybox/config/busybox.conf b/packages/sysutils/busybox/config/busybox.conf index e4b7c98d9d..759cbbd401 100644 --- a/packages/sysutils/busybox/config/busybox.conf +++ b/packages/sysutils/busybox/config/busybox.conf @@ -1,7 +1,7 @@ # # Automatically generated make config: don't edit # Busybox version: 1.16.1 -# Sun May 2 15:07:06 2010 +# Sat May 8 00:10:04 2010 # CONFIG_HAVE_DOT_CONFIG=y @@ -252,7 +252,7 @@ CONFIG_FEATURE_TR_EQUIV=y CONFIG_UNAME=y # CONFIG_UNEXPAND is not set # CONFIG_FEATURE_UNEXPAND_LONG_OPTIONS is not set -# CONFIG_UNIQ is not set +CONFIG_UNIQ=y CONFIG_USLEEP=y # CONFIG_UUDECODE is not set # CONFIG_UUENCODE is not set From 75660c825df8da93827ef90c169163dfb4d443c2 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Sat, 8 May 2010 00:59:10 +0200 Subject: [PATCH 306/320] xbmc: - update to xbmc-29914 --- packages/mediacenter/xbmc/url | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/mediacenter/xbmc/url b/packages/mediacenter/xbmc/url index 2051c6e482..e4d83fad7a 100644 --- a/packages/mediacenter/xbmc/url +++ b/packages/mediacenter/xbmc/url @@ -1 +1 @@ -http://sources.openelec.tv/svn/xbmc-29890.tar.bz2 +http://sources.openelec.tv/svn/xbmc-29914.tar.bz2 From 01fac01a0dba7fd6579d9d8166102801360f98a4 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Sat, 8 May 2010 00:59:27 +0200 Subject: [PATCH 307/320] xbmc-theme-Confluence: - update to xbmc-theme-Confluence-29914 --- packages/mediacenter/xbmc-theme-Confluence/url | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/mediacenter/xbmc-theme-Confluence/url b/packages/mediacenter/xbmc-theme-Confluence/url index fade2f3c6f..bb8258f751 100644 --- a/packages/mediacenter/xbmc-theme-Confluence/url +++ b/packages/mediacenter/xbmc-theme-Confluence/url @@ -1 +1 @@ -http://sources.openelec.tv/svn/xbmc-theme-Confluence-29890.tar.bz2 +http://sources.openelec.tv/svn/xbmc-theme-Confluence-29914.tar.bz2 From d8438e4a9483661ba3b5822a6fb42983dcb7d4dc Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Sat, 8 May 2010 00:59:46 +0200 Subject: [PATCH 308/320] xbmc-theme-PM3-HD: - update to xbmc-theme-PM3-HD-29914 --- packages/mediacenter/xbmc-theme-PM3-HD/url | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/mediacenter/xbmc-theme-PM3-HD/url b/packages/mediacenter/xbmc-theme-PM3-HD/url index d9c23c30c2..75ccaeea51 100644 --- a/packages/mediacenter/xbmc-theme-PM3-HD/url +++ b/packages/mediacenter/xbmc-theme-PM3-HD/url @@ -1 +1 @@ -http://sources.openelec.tv/svn/xbmc-theme-PM3-HD-29890.tar.bz2 +http://sources.openelec.tv/svn/xbmc-theme-PM3-HD-29914.tar.bz2 From 49ce0f9fb6459c3b97e109e90a3821d2ea94b197 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Sat, 8 May 2010 01:05:59 +0200 Subject: [PATCH 309/320] upower: - install configfile UPower.conf --- packages/sysutils/upower/install | 3 +++ 1 file changed, 3 insertions(+) diff --git a/packages/sysutils/upower/install b/packages/sysutils/upower/install index 0d4fad0654..b07819deb6 100755 --- a/packages/sysutils/upower/install +++ b/packages/sysutils/upower/install @@ -8,6 +8,9 @@ $SCRIPTS/install dbus $SCRIPTS/install dbus-glib $SCRIPTS/install polkit +mkdir -p $INSTALL/etc + cp -P $PKG_BUILD/etc/UPower.conf $INSTALL/etc + mkdir -p $INSTALL/etc/dbus-1/system.d cp -P $PKG_BUILD/src/org.freedesktop.UPower.conf $INSTALL/etc/dbus-1/system.d From df1e629100bd9d2ce9f3df3c2630a995e0f68345 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Sat, 8 May 2010 07:18:45 +0200 Subject: [PATCH 310/320] image: - dont install pm-utils here --- packages/image/install | 2 -- 1 file changed, 2 deletions(-) diff --git a/packages/image/install b/packages/image/install index 499c3f864a..4fb78123f7 100755 --- a/packages/image/install +++ b/packages/image/install @@ -55,8 +55,6 @@ case "$2" in $SCRIPTS/install linux $2 $SCRIPTS/install busybox $SCRIPTS/install util-linux-ng - - $SCRIPTS/install pm-utils $SCRIPTS/install ureadahead echo "OpenELEC" > $INSTALL/etc/distribution From db15a5d8bf759c159930a77c087858562e33036d Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Sat, 8 May 2010 07:19:31 +0200 Subject: [PATCH 311/320] upower: - temporary downgrade to upower-0.9.2 - install pm-utils here --- packages/sysutils/upower/install | 5 +++-- packages/sysutils/upower/url | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/packages/sysutils/upower/install b/packages/sysutils/upower/install index b07819deb6..fede24d7b1 100755 --- a/packages/sysutils/upower/install +++ b/packages/sysutils/upower/install @@ -7,9 +7,10 @@ $SCRIPTS/install glib $SCRIPTS/install dbus $SCRIPTS/install dbus-glib $SCRIPTS/install polkit +$SCRIPTS/install pm-utils -mkdir -p $INSTALL/etc - cp -P $PKG_BUILD/etc/UPower.conf $INSTALL/etc +#mkdir -p $INSTALL/etc +# cp -P $PKG_BUILD/etc/UPower.conf $INSTALL/etc mkdir -p $INSTALL/etc/dbus-1/system.d cp -P $PKG_BUILD/src/org.freedesktop.UPower.conf $INSTALL/etc/dbus-1/system.d diff --git a/packages/sysutils/upower/url b/packages/sysutils/upower/url index 3ac0acafc0..fe8dcb77e1 100644 --- a/packages/sysutils/upower/url +++ b/packages/sysutils/upower/url @@ -1 +1 @@ -http://upower.freedesktop.org/releases/upower-0.9.3.tar.bz2 \ No newline at end of file +http://upower.freedesktop.org/releases/upower-0.9.2.tar.bz2 \ No newline at end of file From 45af79cdcfd2d1522bf46a0f47a189407d19c737 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Sat, 8 May 2010 07:20:38 +0200 Subject: [PATCH 312/320] new package: - add package kbd - needed apps for pm-utils: - chvt - deallocvt - fgconsole --- packages/sysutils/kbd/build | 15 +++++++++++++++ packages/sysutils/kbd/install | 8 ++++++++ packages/sysutils/kbd/url | 1 + 3 files changed, 24 insertions(+) create mode 100755 packages/sysutils/kbd/build create mode 100755 packages/sysutils/kbd/install create mode 100644 packages/sysutils/kbd/url diff --git a/packages/sysutils/kbd/build b/packages/sysutils/kbd/build new file mode 100755 index 0000000000..1733fbe5bd --- /dev/null +++ b/packages/sysutils/kbd/build @@ -0,0 +1,15 @@ +#!/bin/sh + +. config/options + +$SCRIPTS/build toolchain + +cd $PKG_BUILD +./configure --host=$TARGET_NAME \ + --build=$HOST_NAME \ + --prefix=/usr \ + --sysconfdir=/etc \ + --datadir=/usr/share \ + --localstatedir=/var \ + +make diff --git a/packages/sysutils/kbd/install b/packages/sysutils/kbd/install new file mode 100755 index 0000000000..3fafaafbef --- /dev/null +++ b/packages/sysutils/kbd/install @@ -0,0 +1,8 @@ +#!/bin/sh + +. config/options + +mkdir -p $INSTALL/usr/bin + cp $PKG_BUILD/src/chvt $INSTALL/usr/bin + cp $PKG_BUILD/src/deallocvt $INSTALL/usr/bin + cp $PKG_BUILD/src/fgconsole $INSTALL/usr/bin diff --git a/packages/sysutils/kbd/url b/packages/sysutils/kbd/url new file mode 100644 index 0000000000..363dd719c0 --- /dev/null +++ b/packages/sysutils/kbd/url @@ -0,0 +1 @@ +http://www.kernel.org/pub/linux/utils/kbd/kbd-1.15.2.tar.bz2 \ No newline at end of file From 869e1c486f5c63214161097d457017e3d776989a Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Sat, 8 May 2010 07:21:05 +0200 Subject: [PATCH 313/320] new package: - add package dmidecode --- packages/sysutils/dmidecode/build | 9 +++++++++ packages/sysutils/dmidecode/install | 6 ++++++ packages/sysutils/dmidecode/url | 1 + 3 files changed, 16 insertions(+) create mode 100755 packages/sysutils/dmidecode/build create mode 100755 packages/sysutils/dmidecode/install create mode 100644 packages/sysutils/dmidecode/url diff --git a/packages/sysutils/dmidecode/build b/packages/sysutils/dmidecode/build new file mode 100755 index 0000000000..07184b006a --- /dev/null +++ b/packages/sysutils/dmidecode/build @@ -0,0 +1,9 @@ +#!/bin/sh + +. config/options + +$SCRIPTS/build toolchain + +cd $PKG_BUILD + +make CC=$TARGET_CC dmidecode diff --git a/packages/sysutils/dmidecode/install b/packages/sysutils/dmidecode/install new file mode 100755 index 0000000000..18609d431d --- /dev/null +++ b/packages/sysutils/dmidecode/install @@ -0,0 +1,6 @@ +#!/bin/sh + +. config/options + +mkdir -p $INSTALL/usr/sbin + cp -P $PKG_BUILD/dmidecode $INSTALL/usr/sbin diff --git a/packages/sysutils/dmidecode/url b/packages/sysutils/dmidecode/url new file mode 100644 index 0000000000..5c7364bdbd --- /dev/null +++ b/packages/sysutils/dmidecode/url @@ -0,0 +1 @@ +http://www.very-clever.com/download/nongnu/dmidecode/dmidecode-2.10.tar.bz2 \ No newline at end of file From 5461876d5455eb0b9853558a0d1d6e1cfe1c574c Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Sat, 8 May 2010 07:21:49 +0200 Subject: [PATCH 314/320] busybox: - remove applet chvt - add applet sysctl --- packages/sysutils/busybox/config/busybox.conf | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/sysutils/busybox/config/busybox.conf b/packages/sysutils/busybox/config/busybox.conf index 759cbbd401..f5f11d07f7 100644 --- a/packages/sysutils/busybox/config/busybox.conf +++ b/packages/sysutils/busybox/config/busybox.conf @@ -1,7 +1,7 @@ # # Automatically generated make config: don't edit # Busybox version: 1.16.1 -# Sat May 8 00:10:04 2010 +# Sat May 8 02:38:56 2010 # CONFIG_HAVE_DOT_CONFIG=y @@ -281,7 +281,7 @@ CONFIG_FEATURE_HUMAN_READABLE=y # # Console Utilities # -CONFIG_CHVT=y +# CONFIG_CHVT is not set CONFIG_CLEAR=y # CONFIG_DEALLOCVT is not set # CONFIG_DUMPKMAP is not set @@ -814,7 +814,7 @@ CONFIG_FEATURE_PS_WIDE=y # CONFIG_FEATURE_PS_ADDITIONAL_COLUMNS is not set # CONFIG_FEATURE_PS_UNUSUAL_SYSTEMS is not set # CONFIG_RENICE is not set -# CONFIG_BB_SYSCTL is not set +CONFIG_BB_SYSCTL=y CONFIG_TOP=y CONFIG_FEATURE_TOP_CPU_USAGE_PERCENTAGE=y CONFIG_FEATURE_TOP_CPU_GLOBAL_PERCENTS=y From 4469ae4c30557775ab477bbbcd3cc45d44a6fd32 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Sat, 8 May 2010 07:22:19 +0200 Subject: [PATCH 315/320] pm-utils: - install dmidecode - install kbd --- packages/sysutils/pm-utils/install | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/packages/sysutils/pm-utils/install b/packages/sysutils/pm-utils/install index c5b626e3ab..f4ca22fe44 100755 --- a/packages/sysutils/pm-utils/install +++ b/packages/sysutils/pm-utils/install @@ -3,6 +3,8 @@ . config/options $SCRIPTS/install grep +$SCRIPTS/install dmidecode +$SCRIPTS/install kbd mkdir -p $INSTALL/etc/pm/config.d mkdir -p $INSTALL/etc/pm/power.d @@ -24,18 +26,21 @@ mkdir -p $INSTALL/usr/lib/pm-utils/ done mkdir -p $INSTALL/usr/lib/pm-utils/module.d - for file in kernel tuxonice uswsusp; do +# tuxonice + for file in kernel uswsusp; do cp -P $PKG_BUILD/pm/module.d/$file $INSTALL/usr/lib/pm-utils/module.d done mkdir -p $INSTALL/usr/lib/pm-utils/power.d - for file in sched-powersave; do - cp -P $PKG_BUILD/pm/power.d/$file $INSTALL/usr/lib/pm-utils/power.d - chmod +x $INSTALL/usr/lib/pm-utils/power.d/$file - done +# disabled, because not needed +# for file in sched-powersave; do +# cp -P $PKG_BUILD/pm/power.d/$file $INSTALL/usr/lib/pm-utils/power.d +# chmod +x $INSTALL/usr/lib/pm-utils/power.d/$file +# done mkdir -p $INSTALL/usr/lib/pm-utils/sleep.d - for file in 00logging 00powersave 01grub 49bluetooth 55NetworkManager 75modules 90clock 94cpufreq 95led 98video-quirk-db-handler 99video; do +# 01grub 49bluetooth 55NetworkManager 90clock 95led 98video-quirk-db-handler + for file in 00logging 00powersave 75modules 94cpufreq 99video; do cp -P $PKG_BUILD/pm/sleep.d/$file $INSTALL/usr/lib/pm-utils/sleep.d chmod +x $INSTALL/usr/lib/pm-utils/sleep.d/$file done From 7109688c77ec4c2c688ff562df1a47521b9119a1 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Sat, 8 May 2010 20:00:21 +0200 Subject: [PATCH 316/320] projects/*/linux: - adding support for DMI ids to kernel (needed by pm-utils) --- projects/ION/linux/linux.i386.conf | 2 +- projects/ION/linux/linux.x86_64.conf | 2 +- projects/generic/linux/linux.i386.conf | 2 +- projects/intel/linux/linux.i386.conf | 2 +- projects/intel/linux/linux.x86_64.conf | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/projects/ION/linux/linux.i386.conf b/projects/ION/linux/linux.i386.conf index ab12dee30b..455a3ceda3 100644 --- a/projects/ION/linux/linux.i386.conf +++ b/projects/ION/linux/linux.i386.conf @@ -1831,7 +1831,7 @@ CONFIG_RTC_DRV_CMOS=y CONFIG_FIRMWARE_MEMMAP=y # CONFIG_DELL_RBU is not set # CONFIG_DCDBAS is not set -# CONFIG_DMIID is not set +CONFIG_DMIID=y # CONFIG_ISCSI_IBFT_FIND is not set # diff --git a/projects/ION/linux/linux.x86_64.conf b/projects/ION/linux/linux.x86_64.conf index f80bab3937..eb29a911a2 100644 --- a/projects/ION/linux/linux.x86_64.conf +++ b/projects/ION/linux/linux.x86_64.conf @@ -1786,7 +1786,7 @@ CONFIG_RTC_DRV_CMOS=y CONFIG_FIRMWARE_MEMMAP=y # CONFIG_DELL_RBU is not set # CONFIG_DCDBAS is not set -# CONFIG_DMIID is not set +CONFIG_DMIID=y # CONFIG_ISCSI_IBFT_FIND is not set # diff --git a/projects/generic/linux/linux.i386.conf b/projects/generic/linux/linux.i386.conf index 700f9125a2..6730beaf24 100644 --- a/projects/generic/linux/linux.i386.conf +++ b/projects/generic/linux/linux.i386.conf @@ -2070,7 +2070,7 @@ CONFIG_CRYSTALHD=m CONFIG_FIRMWARE_MEMMAP=y # CONFIG_DELL_RBU is not set # CONFIG_DCDBAS is not set -# CONFIG_DMIID is not set +CONFIG_DMIID=y # CONFIG_ISCSI_IBFT_FIND is not set # diff --git a/projects/intel/linux/linux.i386.conf b/projects/intel/linux/linux.i386.conf index cfb468d977..887f0e9ff1 100644 --- a/projects/intel/linux/linux.i386.conf +++ b/projects/intel/linux/linux.i386.conf @@ -2013,7 +2013,7 @@ CONFIG_CRYSTALHD=m CONFIG_FIRMWARE_MEMMAP=y # CONFIG_DELL_RBU is not set # CONFIG_DCDBAS is not set -# CONFIG_DMIID is not set +CONFIG_DMIID=y # CONFIG_ISCSI_IBFT_FIND is not set # diff --git a/projects/intel/linux/linux.x86_64.conf b/projects/intel/linux/linux.x86_64.conf index da6ec3e2cf..fb15e01985 100644 --- a/projects/intel/linux/linux.x86_64.conf +++ b/projects/intel/linux/linux.x86_64.conf @@ -1971,7 +1971,7 @@ CONFIG_CRYSTALHD=m CONFIG_FIRMWARE_MEMMAP=y # CONFIG_DELL_RBU is not set # CONFIG_DCDBAS is not set -# CONFIG_DMIID is not set +CONFIG_DMIID=y # CONFIG_ISCSI_IBFT_FIND is not set # From f55f77ca1ea4b5289614a6d309633339960765dc Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Sat, 8 May 2010 20:01:50 +0200 Subject: [PATCH 317/320] new package: - adding package bash, we need a full featured bash for pm-utils :-( --- packages/sysutils/bash/build | 15 +++ packages/sysutils/bash/install | 7 ++ .../bash/patches/bash-4.1-fixes-1.diff | 99 +++++++++++++++++++ packages/sysutils/bash/url | 1 + 4 files changed, 122 insertions(+) create mode 100755 packages/sysutils/bash/build create mode 100755 packages/sysutils/bash/install create mode 100644 packages/sysutils/bash/patches/bash-4.1-fixes-1.diff create mode 100644 packages/sysutils/bash/url diff --git a/packages/sysutils/bash/build b/packages/sysutils/bash/build new file mode 100755 index 0000000000..c31b207c45 --- /dev/null +++ b/packages/sysutils/bash/build @@ -0,0 +1,15 @@ +#!/bin/sh + +. config/options + +$SCRIPTS/build toolchain + +cd $PKG_BUILD +./configure --host=$TARGET_NAME \ + --build=$HOST_NAME \ + --prefix=/usr \ + --bindir=/bin \ + --without-bash-malloc \ + --without-installed-readline \ + +make diff --git a/packages/sysutils/bash/install b/packages/sysutils/bash/install new file mode 100755 index 0000000000..715e5b88ef --- /dev/null +++ b/packages/sysutils/bash/install @@ -0,0 +1,7 @@ +#!/bin/sh + +. config/options + +mkdir -p $INSTALL/bin + cp $PKG_BUILD/bash $INSTALL/bin + ln -sf bash $INSTALL/bin/sh diff --git a/packages/sysutils/bash/patches/bash-4.1-fixes-1.diff b/packages/sysutils/bash/patches/bash-4.1-fixes-1.diff new file mode 100644 index 0000000000..15f98be9bd --- /dev/null +++ b/packages/sysutils/bash/patches/bash-4.1-fixes-1.diff @@ -0,0 +1,99 @@ +Submitted By: Matt Burgess +Date: 2010-04-14 +Initial Package Version: 4.1 +Upstream Status: Already in upstream patch repo +Origin: Upstream +Description: This patch contains upstream patch numbers 1 thru 5. + +diff -Naur bash-4.1.orig/bashline.c bash-4.1/bashline.c +--- bash-4.1.orig/bashline.c 2009-10-24 19:10:19.000000000 +0100 ++++ bash-4.1/bashline.c 2010-04-14 20:15:22.075440836 +0100 +@@ -1680,7 +1680,7 @@ + a single match (multiple matches that end up reducing the number of + characters in the common prefix are bad) will ever be returned on + regular completion. */ +- if (glob_pattern_p (hint)) ++ if (globpat) + { + if (state == 0) + { +diff -Naur bash-4.1.orig/builtins/printf.def bash-4.1/builtins/printf.def +--- bash-4.1.orig/builtins/printf.def 2009-11-20 20:31:23.000000000 +0000 ++++ bash-4.1/builtins/printf.def 2010-04-14 20:15:22.055434803 +0100 +@@ -172,7 +172,7 @@ + #endif + + #if !HAVE_VSNPRINTF +-extern int vsnprintf __P((char *, size_t, const char *, ...)) __attribute__((__format__ (printf, 3, 4))); ++extern int vsnprintf __P((char *, size_t, const char *, va_list)) __attribute__((__format__ (printf, 3, 0))); + #endif + + static void printf_erange __P((char *)); +diff -Naur bash-4.1.orig/builtins/read.def bash-4.1/builtins/read.def +--- bash-4.1.orig/builtins/read.def 2009-10-08 16:35:46.000000000 +0100 ++++ bash-4.1/builtins/read.def 2010-04-14 20:15:22.095436083 +0100 +@@ -615,14 +615,15 @@ + if (unbuffered_read == 0) + zsyncfd (fd); + +- interrupt_immediately--; +- terminate_immediately--; + discard_unwind_frame ("read_builtin"); + + retval = eof ? EXECUTION_FAILURE : EXECUTION_SUCCESS; + + assign_vars: + ++ interrupt_immediately--; ++ terminate_immediately--; ++ + #if defined (ARRAY_VARS) + /* If -a was given, take the string read, break it into a list of words, + an assign them to `arrayname' in turn. */ +diff -Naur bash-4.1.orig/lib/readline/complete.c bash-4.1/lib/readline/complete.c +--- bash-4.1.orig/lib/readline/complete.c 2009-11-29 23:39:30.000000000 +0000 ++++ bash-4.1/lib/readline/complete.c 2010-04-14 20:15:22.064194346 +0100 +@@ -2138,7 +2138,7 @@ + All other entries except "." and ".." match. */ + if (filename_len == 0) + { +- if (_rl_match_hidden_files == 0 && HIDDEN_FILE (entry->d_name)) ++ if (_rl_match_hidden_files == 0 && HIDDEN_FILE (convfn)) + continue; + + if (convfn[0] != '.' || +@@ -2219,7 +2219,7 @@ + temp[dirlen++] = '/'; + } + +- strcpy (temp + dirlen, entry->d_name); ++ strcpy (temp + dirlen, convfn); + } + else + temp = savestring (convfn); +diff -Naur bash-4.1.orig/patchlevel.h bash-4.1/patchlevel.h +--- bash-4.1.orig/patchlevel.h 2009-10-01 21:39:22.000000000 +0100 ++++ bash-4.1/patchlevel.h 2010-04-14 20:15:22.099440845 +0100 +@@ -25,6 +25,6 @@ + regexp `^#define[ ]*PATCHLEVEL', since that's what support/mkversion.sh + looks for to find the patch level (for the sccs version string). */ + +-#define PATCHLEVEL 0 ++#define PATCHLEVEL 5 + + #endif /* _PATCHLEVEL_H_ */ +diff -Naur bash-4.1.orig/variables.c bash-4.1/variables.c +--- bash-4.1.orig/variables.c 2009-11-03 19:13:58.000000000 +0000 ++++ bash-4.1/variables.c 2010-04-14 20:15:22.088697241 +0100 +@@ -3808,6 +3808,11 @@ + + if (tempvar_p (var) && (posixly_correct || (var->attributes & att_propagate))) + { ++ /* Make sure we have a hash table to store the variable in while it is ++ being propagated down to the global variables table. Create one if ++ we have to */ ++ if ((vc_isfuncenv (shell_variables) || vc_istempenv (shell_variables)) && shell_variables->table == 0) ++ shell_variables->table = hash_create (0); + /* XXX - should we set v->context here? */ + v = bind_variable_internal (var->name, value_cell (var), shell_variables->table, 0, 0); + if (shell_variables == global_variables) diff --git a/packages/sysutils/bash/url b/packages/sysutils/bash/url new file mode 100644 index 0000000000..6163a2cf70 --- /dev/null +++ b/packages/sysutils/bash/url @@ -0,0 +1 @@ +http://ftp.gnu.org/gnu/bash/bash-4.1.tar.gz \ No newline at end of file From aca25a36b828081780f5f1a1c691f0d43f243253 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Sat, 8 May 2010 20:04:19 +0200 Subject: [PATCH 318/320] busybox: - dont build and install busyboxs sh - install full featured bash - add applet readlink (needed by pm-utils) --- packages/sysutils/busybox/config/busybox.conf | 22 +++++++++---------- packages/sysutils/busybox/install | 4 ++-- 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/packages/sysutils/busybox/config/busybox.conf b/packages/sysutils/busybox/config/busybox.conf index f5f11d07f7..2a4a310fac 100644 --- a/packages/sysutils/busybox/config/busybox.conf +++ b/packages/sysutils/busybox/config/busybox.conf @@ -1,7 +1,7 @@ # # Automatically generated make config: don't edit # Busybox version: 1.16.1 -# Sat May 8 02:38:56 2010 +# Sat May 8 08:10:16 2010 # CONFIG_HAVE_DOT_CONFIG=y @@ -214,8 +214,8 @@ CONFIG_NICE=y CONFIG_PRINTENV=y CONFIG_PRINTF=y # CONFIG_PWD is not set -# CONFIG_READLINK is not set -# CONFIG_FEATURE_READLINK_FOLLOW is not set +CONFIG_READLINK=y +CONFIG_FEATURE_READLINK_FOLLOW=y # CONFIG_REALPATH is not set CONFIG_RM=y CONFIG_RMDIR=y @@ -859,11 +859,11 @@ CONFIG_SV_DEFAULT_SERVICE_DIR="" # # Shells # -CONFIG_FEATURE_SH_IS_ASH=y +# CONFIG_FEATURE_SH_IS_ASH is not set # CONFIG_FEATURE_SH_IS_HUSH is not set -# CONFIG_FEATURE_SH_IS_NONE is not set -CONFIG_ASH=y -CONFIG_ASH_BASH_COMPAT=y +CONFIG_FEATURE_SH_IS_NONE=y +# CONFIG_ASH is not set +# CONFIG_ASH_BASH_COMPAT is not set # CONFIG_ASH_JOB_CONTROL is not set # CONFIG_ASH_ALIAS is not set # CONFIG_ASH_GETOPTS is not set @@ -873,8 +873,8 @@ CONFIG_ASH_BASH_COMPAT=y # CONFIG_ASH_CMDCMD is not set # CONFIG_ASH_MAIL is not set # CONFIG_ASH_OPTIMIZE_FOR_SIZE is not set -CONFIG_ASH_RANDOM_SUPPORT=y -CONFIG_ASH_EXPAND_PRMT=y +# CONFIG_ASH_RANDOM_SUPPORT is not set +# CONFIG_ASH_EXPAND_PRMT is not set # CONFIG_HUSH is not set # CONFIG_HUSH_BASH_COMPAT is not set # CONFIG_HUSH_HELP is not set @@ -890,9 +890,9 @@ CONFIG_ASH_EXPAND_PRMT=y # CONFIG_HUSH_RANDOM_SUPPORT is not set # CONFIG_LASH is not set # CONFIG_MSH is not set -CONFIG_SH_MATH_SUPPORT=y +# CONFIG_SH_MATH_SUPPORT is not set # CONFIG_SH_MATH_SUPPORT_64 is not set -CONFIG_FEATURE_SH_EXTRA_QUIET=y +# CONFIG_FEATURE_SH_EXTRA_QUIET is not set # CONFIG_FEATURE_SH_STANDALONE is not set # CONFIG_FEATURE_SH_NOFORK is not set # CONFIG_CTTYHACK is not set diff --git a/packages/sysutils/busybox/install b/packages/sysutils/busybox/install index c625bf2074..d9417e21e8 100755 --- a/packages/sysutils/busybox/install +++ b/packages/sysutils/busybox/install @@ -21,7 +21,6 @@ USER_PWD="`$ROOT/$TOOLCHAIN/bin/cryptpw $USER_PASSWORD`" echo "chmod 4755 $INSTALL/bin/busybox" >> $FAKEROOT_SCRIPT mkdir -p $INSTALL/bin - ln -sf /bin/sh $INSTALL/bin/bash cp $PKG_DIR/scripts/lsb-release $INSTALL/bin/ mkdir -p $INSTALL/sbin @@ -56,5 +55,6 @@ USER_PWD="`$ROOT/$TOOLCHAIN/bin/cryptpw $USER_PASSWORD`" mkdir -p $INSTALL/etc/network cp $PKG_DIR/config/interfaces $INSTALL/etc/network -# we need an full-featured grep for pm-utils, so we install this :-( +# we need an full-featured grep and bash for pm-utils, so we install this :-( $SCRIPTS/install grep + $SCRIPTS/install bash From ebe071657bfcc9714d049e4bbe3a3253be67a197 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Sat, 8 May 2010 20:06:05 +0200 Subject: [PATCH 319/320] pm-utils: - adding some quirk files for pm-utils --- .../quirks/20-video-quirk-pm-acer.quirkdb | 158 +++++++ .../quirks/20-video-quirk-pm-apple.quirkdb | 25 ++ .../quirks/20-video-quirk-pm-asus.quirkdb | 114 +++++ .../quirks/20-video-quirk-pm-dell.quirkdb | 169 ++++++++ .../quirks/20-video-quirk-pm-fujitsu.quirkdb | 107 +++++ .../quirks/20-video-quirk-pm-hp.quirkdb | 309 ++++++++++++++ .../quirks/20-video-quirk-pm-ibm.quirkdb | 120 ++++++ .../quirks/20-video-quirk-pm-lenovo.quirkdb | 100 +++++ .../quirks/20-video-quirk-pm-misc.quirkdb | 389 ++++++++++++++++++ .../quirks/20-video-quirk-pm-samsung.quirkdb | 26 ++ .../quirks/20-video-quirk-pm-sony.quirkdb | 54 +++ .../quirks/20-video-quirk-pm-toshiba.quirkdb | 130 ++++++ packages/sysutils/pm-utils/quirks/url | 1 + 13 files changed, 1702 insertions(+) create mode 100644 packages/sysutils/pm-utils/quirks/20-video-quirk-pm-acer.quirkdb create mode 100644 packages/sysutils/pm-utils/quirks/20-video-quirk-pm-apple.quirkdb create mode 100644 packages/sysutils/pm-utils/quirks/20-video-quirk-pm-asus.quirkdb create mode 100644 packages/sysutils/pm-utils/quirks/20-video-quirk-pm-dell.quirkdb create mode 100644 packages/sysutils/pm-utils/quirks/20-video-quirk-pm-fujitsu.quirkdb create mode 100644 packages/sysutils/pm-utils/quirks/20-video-quirk-pm-hp.quirkdb create mode 100644 packages/sysutils/pm-utils/quirks/20-video-quirk-pm-ibm.quirkdb create mode 100644 packages/sysutils/pm-utils/quirks/20-video-quirk-pm-lenovo.quirkdb create mode 100644 packages/sysutils/pm-utils/quirks/20-video-quirk-pm-misc.quirkdb create mode 100644 packages/sysutils/pm-utils/quirks/20-video-quirk-pm-samsung.quirkdb create mode 100644 packages/sysutils/pm-utils/quirks/20-video-quirk-pm-sony.quirkdb create mode 100644 packages/sysutils/pm-utils/quirks/20-video-quirk-pm-toshiba.quirkdb create mode 100644 packages/sysutils/pm-utils/quirks/url diff --git a/packages/sysutils/pm-utils/quirks/20-video-quirk-pm-acer.quirkdb b/packages/sysutils/pm-utils/quirks/20-video-quirk-pm-acer.quirkdb new file mode 100644 index 0000000000..f42701212c --- /dev/null +++ b/packages/sysutils/pm-utils/quirks/20-video-quirk-pm-acer.quirkdb @@ -0,0 +1,158 @@ +# + match system.hardware.vendor regex_ncase ^Acer + match system.hardware.product regex ^TravelMate + match system.hardware.product regex C300 + addquirk --quirk-vbestate-restore + endmatch + match system.hardware.product regex 2350|2410|2420|2490|3220|4000|4650|5320 + addquirk --quirk-s3-bios + addquirk --quirk-s3-mode + endmatch + match system.hardware.product regex 3000|4100 + addquirk --quirk-vbe-post + addquirk --quirk-vbestate-restore + endmatch + match system.hardware.product regex 2300|2310|3010|3020|6291 + addquirk --quirk-vbe-post + addquirk --quirk-vbemode-restore + endmatch + match system.hardware.product regex 3260 + addquirk --quirk-vbe-post + addquirk --quirk-vbemode-restore + addquirk --quirk-pci-save + endmatch + match system.hardware.product regex 7520|8000 + addquirk --quirk-s3-bios + endmatch + match system.hardware.product regex C100|6460 + addquirk --quirk-vbe-post + endmatch + match system.hardware.product regex C200|2450|4400|6492 + addquirk --quirk-none + endmatch + # + match system.hardware.product regex 4000 + match system.hardware.primary_video.product numeric_compare_eq 20048 + match system.hardware.primary_video.vendor numeric_compare_eq 4098 + addquirk --quirk-vbe-post + addquirk --quirk-vbemode-restore + addquirk --quirk-dpms-on + endmatch + endmatch + endmatch + # + match system.hardware.product regex ^(TravelMate 240|TravelMate 250|TravelMate 650)$ + addquirk --quirk-vbe-post + addquirk --quirk-vbestate-restore + endmatch + match system.hardware.product regex ^TravelMate 380$ + addquirk --quirk-vbe-post + addquirk --quirk-vbestate-restore + addquirk --quirk-s3-mode + endmatch + # + match system.hardware.product regex ^(TravelMate 630|TravelMate 230)$ + addquirk --quirk-s3-bios + addquirk --quirk-s3-mode + endmatch + match system.hardware.product regex ^TravelMate 660$ + addquirk --quirk-vbe-post + addquirk --quirk-vbemode-restore + endmatch + match system.hardware.product regex ^TravelMate 800$ + addquirk --quirk-vbe-post + endmatch + endmatch + match system.hardware.product regex ^Aspire + match system.hardware.product regex 5050 + addquirk --quirk-s3-bios + endmatch + match system.hardware.product regex 1670|3610|3620|3690|5630 + addquirk --quirk-s3-bios + addquirk --quirk-s3-mode + endmatch + match system.hardware.product regex 5610 + # + match system.hardware.product regex 5610Z + addquirk --quirk-s3-bios + addquirk --quirk-s3-mode + endmatch + match system.hardware.product regex_inverse 5610Z + addquirk --quirk-vbe-post + endmatch + endmatch + match system.hardware.product regex 5000|5020|5500 + addquirk --quirk-vbe-post + endmatch + match system.hardware.product regex 1640 + addquirk --quirk-vbestate-restore + endmatch + match system.hardware.product regex 1500|3000 + addquirk --quirk-vbe-post + addquirk --quirk-vbestate-restore + endmatch + match system.hardware.product regex 1520|1650|5100|5110|5570|5920 + addquirk --quirk-vbe-post + addquirk --quirk-vbemode-restore + endmatch + match system.hardware.product regex 1690|1694 + addquirk --quirk-vbe-post + addquirk --quirk-vbestate-restore + addquirk --quirk-no-fb + endmatch + match system.hardware.product regex 1350$ + addquirk --quirk-vbe-post + addquirk --quirk-vbemode-restore + addquirk --quirk-no-fb + endmatch + match system.hardware.product regex 2010|2920|3100|4520|5500Z|5580|5920G + addquirk --quirk-none + endmatch + endmatch + match system.hardware.product regex ^Extensa + match system.hardware.product regex 6220 + addquirk --quirk-s3-bios + endmatch + match system.hardware.product regex 2900|3000|4150|5620 + addquirk --quirk-s3-bios + addquirk --quirk-s3-mode + endmatch + match system.hardware.product regex 5220 + addquirk --quirk-s3-bios + addquirk --quirk-vbe-post + endmatch + endmatch + match system.hardware.product regex ^Ferrari + match system.hardware.product regex 4000 + addquirk --quirk-vbe-post + addquirk --quirk-vbestate-restore + addquirk --quirk-no-fb + endmatch + match system.hardware.product regex 1000 + addquirk --quirk-vbe-post + addquirk --quirk-vbestate-restore + endmatch + # + match system.hardware.product regex 5000 + addquirk --quirk-vbe-post + addquirk --quirk-vbemode-restore + endmatch + endmatch + match system.hardware.product regex ^Xspire + match system.hardware.product regex 1650 + addquirk --quirk-none + endmatch + endmatch + match system.hardware.product regex ^AcerPower + match system.hardware.product regex 2000 + addquirk --quirk-none + endmatch + endmatch + # + match system.hardware.product regex ^(AOA110|AOA150) + addquirk --quirk-none + endmatch + endmatch diff --git a/packages/sysutils/pm-utils/quirks/20-video-quirk-pm-apple.quirkdb b/packages/sysutils/pm-utils/quirks/20-video-quirk-pm-apple.quirkdb new file mode 100644 index 0000000000..e33bdf8a64 --- /dev/null +++ b/packages/sysutils/pm-utils/quirks/20-video-quirk-pm-apple.quirkdb @@ -0,0 +1,25 @@ +# + match system.hardware.vendor regex ^Apple + match system.hardware.product regex ^MacBook2,1$ + match system.hardware.vendor regex ^Apple Inc\. + match system.hardware.version regex ^1\.0$ + # + addquirk --quirk-none + endmatch + endmatch + match system.hardware.vendor regex Computer, Inc\. + addquirk --quirk-vbe-post + endmatch + endmatch + match system.hardware.product regex ^(MacBook1,1|MacBook3,1)$ + # + addquirk --quirk-vbestate-restore + endmatch + match system.hardware.product regex ^MacBookPro1,1$ + addquirk --quirk-vbe-post + endmatch + match system.hardware.product regex ^MacBookPro2,2$ + addquirk --quirk-vbe-post + addquirk --quirk-vbemode-restore + endmatch + endmatch diff --git a/packages/sysutils/pm-utils/quirks/20-video-quirk-pm-asus.quirkdb b/packages/sysutils/pm-utils/quirks/20-video-quirk-pm-asus.quirkdb new file mode 100644 index 0000000000..7378a0063c --- /dev/null +++ b/packages/sysutils/pm-utils/quirks/20-video-quirk-pm-asus.quirkdb @@ -0,0 +1,114 @@ +# + match system.hardware.vendor regex ^ASUS + match system.hardware.product regex ^(U5F |M2000E|F2J ) + addquirk --quirk-s3-bios + endmatch + match system.hardware.product regex ^(K8N-E-Deluxe|L2000D|M6Ne|M51Sr |U6S|A8N) + addquirk --quirk-s3-mode + endmatch + # + match system.hardware.product regex ^(M6VA|M6N |M5N|M7A|S6F|S5N |W3A|W5A |M2N |A2D |F3F |V6V|A8He|A6Kt |F3JC |F3Sc) + addquirk --quirk-s3-bios + addquirk --quirk-s3-mode + endmatch + match system.hardware.product regex ^Z35FM + addquirk --quirk-s3-bios + addquirk --quirk-pci-save + endmatch + match system.hardware.product regex ^(A6M|Z84F) + addquirk --quirk-vbe-post + endmatch + match system.hardware.product regex ^W7J + addquirk --quirk-vbemode-restore + endmatch + match system.hardware.product regex ^(L3000D|M3N |U3S |X51RL ) + addquirk --quirk-vbe-post + addquirk --quirk-vbestate-restore + endmatch + match system.hardware.product regex ^F3Ka + addquirk --quirk-vbe-post + addquirk --quirk-vbestate-restore + addquirk --quirk-no-fb + endmatch + match system.hardware.product regex ^V1J + addquirk --quirk-vbe-post + addquirk --quirk-vbemode-restore + addquirk --quirk-no-fb + endmatch + # + match system.hardware.product regex ^(A6J |A6U|A3E|F3JP) + addquirk --quirk-vbe-post + addquirk --quirk-vbemode-restore + endmatch + # + match system.hardware.product regex ^(701|900)$ + addquirk --quirk-s3-bios + addquirk --quirk-dpms-on + endmatch + match system.hardware.product regex ^901$ + addquirk --quirk-vbe-post + endmatch + # + match system.hardware.product regex ^(A2H/L|A6Km|A6JC |A6K |A6T|A6G|A6VA|A8JS |F3Sg|F3T|F9E |G1S|K8V-MX|1000H|F2JE) + addquirk --quirk-none + endmatch + endmatch +# + match system.hardware.vendor regex ^ERGOUK + match system.hardware.product regex ^M2N + addquirk --quirk-s3-bios + addquirk --quirk-s3-mode + endmatch + endmatch +# + match system.hardware.vendor regex ^System manufacturer$ + match system.hardware.product regex ^P5Q DELUXE$ + match system.firmware.version regex ^System Version + addquirk --quirk-s3-bios + addquirk --quirk-s3-mode + endmatch + endmatch + match system.hardware.version regex ^P5KR + match system.hardware.product regex ^System Version + addquirk --quirk-none + endmatch + endmatch + endmatch +# + match system.board.product regex ^P5LD2 + addquirk --quirk-s3-bios + endmatch +# + match system.firmware.version regex ^ASUS A7V600 + addquirk --quirk-s3-bios + addquirk --quirk-s3-mode + endmatch +# + match system.firmware.version regex ^(ASUS M2N32-SLI DELUXE ACPI BIOS Revision 1201|ASUS M2N32-SLI DELUXE ACPI BIOS Revision 1101|ASUS M2A-VM HDMI ACPI BIOS Revision 1603|ASUS A7V8X-X ACPI BIOS Revision) + addquirk --quirk-vbe-post + addquirk --quirk-vbemode-restore + endmatch + match system.firmware.version regex ^ASUS M2A-VM ACPI BIOS Revision + match system.firmware.version regex 1101 + addquirk --quirk-s3-bios + addquirk --quirk-vbemode-restore + endmatch + match system.firmware.version regex_inverse 1101 + addquirk --quirk-vbe-post + addquirk --quirk-vbemode-restore + endmatch + endmatch + match system.firmware.version regex ^ASUS P4B266 ACPI BIOS Revision + match system.firmware.version regex 1010 + match system.hardware.primary_video.vendor numeric_compare_eq 0x1002 + match system.hardware.primary_video.product numeric_compare_eq 0x4966 + addquirk --quirk-s3-bios + addquirk --quirk-s3-mode + endmatch + endmatch + endmatch + endmatch +# + match system.firmware.version regex ^(ASUS M2N-E ACPI BIOS Revision|ASUS Striker ACPI BIOS Revision|ASUS A7V ACPI BIOS Revision) + addquirk --quirk-none + endmatch diff --git a/packages/sysutils/pm-utils/quirks/20-video-quirk-pm-dell.quirkdb b/packages/sysutils/pm-utils/quirks/20-video-quirk-pm-dell.quirkdb new file mode 100644 index 0000000000..7402716148 --- /dev/null +++ b/packages/sysutils/pm-utils/quirks/20-video-quirk-pm-dell.quirkdb @@ -0,0 +1,169 @@ +# + match system.hardware.vendor regex ^Dell + # + match system.hardware.product regex ^Latitude + match system.hardware.product regex C500 + addquirk --quirk-dpms-suspend + addquirk --quirk-vbe-post + endmatch + match system.hardware.product regex C600 + addquirk --quirk-radeon-off + endmatch + match system.hardware.product regex C800 + addquirk --quirk-vbemode-restore + endmatch + match system.hardware.product regex X300|D820 + # + addquirk --quirk-vbestate-restore + endmatch + match system.hardware.product regex CPx J800GT|D400|D410|D420|D430|D520|D530|C610|D620|D830 + addquirk --quirk-vbe-post + addquirk --quirk-vbemode-restore + endmatch + match system.hardware.product regex C400|C840|D500|D505|D800|X200 + addquirk --quirk-vbe-post + addquirk --quirk-vbestate-restore + endmatch + match system.hardware.product regex D600|D610 + addquirk --quirk-vbe-post + addquirk --quirk-vbestate-restore + addquirk --quirk-no-fb + endmatch + match system.hardware.product regex D630 + match system.firmware.version compare_lt A12 + addquirk --quirk-vbe-post + addquirk --quirk-vbestate-restore + addquirk --quirk-no-fb + endmatch + match system.firmware.version compare_ge A12 + addquirk --quirk-vbemode-restore + endmatch + endmatch + match system.hardware.product regex X1$ + addquirk --quirk-vbe-post + endmatch + # + match system.hardware.product regex CPx J650GT|LS |D810 + addquirk --quirk-none + endmatch + endmatch + # + match system.hardware.product regex ^Inspiron + match system.hardware.product regex 1501|8600 + addquirk --quirk-s3-bios + addquirk --quirk-s3-mode + endmatch + match system.hardware.product regex 9300 + addquirk --quirk-s3-bios + endmatch + match system.hardware.product regex 510m + addquirk --quirk-vbe-post + endmatch + match system.hardware.product regex 5100 + match system.firmware.version regex ^Revision A0$ + addquirk --quirk-vbe-post + addquirk --quirk-vbestate-restore + addquirk --quirk-pci-save + endmatch + match system.firmware.version regex_inverse Revision A0 + addquirk --quirk-no-fb + endmatch + endmatch + match system.hardware.product regex 5150|8000|8500 + addquirk --quirk-vbe-post + addquirk --quirk-vbestate-restore + endmatch + match system.hardware.product regex 500m|600m|1100|1420|1525|2200|5160 + addquirk --quirk-vbe-post + addquirk --quirk-vbemode-restore + endmatch + match system.hardware.product regex 700m + # + addquirk --quirk-none + endmatch + # + match system.hardware.product regex 1011| 1150| 1520| 1720 + addquirk --quirk-none + endmatch + endmatch + # + match system.hardware.product regex ^Precision + match system.hardware.product regex M20 + addquirk --quirk-vbe-post + addquirk --quirk-vbestate-restore + endmatch + match system.hardware.product regex M6300 + addquirk --quirk-vbe-post + addquirk --quirk-vbemode-restore + endmatch + match system.hardware.product regex M60 + addquirk --quirk-vbestate-restore + endmatch + match system.hardware.product regex M65 + addquirk --quirk-dpms-on + addquirk --quirk-vbe-post + endmatch + # + match system.hardware.product regex M90 |WorkStation 360| M4300 + addquirk --quirk-none + endmatch + endmatch + # + match system.hardware.product regex ^Dimension + match system.hardware.product regex 2400|3000|9100 + addquirk --quirk-vbe-post + addquirk --quirk-vbemode-restore + endmatch + endmatch + # + match system.hardware.product regex ^Vostro + match system.hardware.product regex 1000 + addquirk --quirk-s3-bios + addquirk --quirk-s3-mode + endmatch + match system.hardware.product regex 1500 + addquirk --quirk-vbe-post + addquirk --quirk-vbemode-restore + endmatch + match system.hardware.product regex 1710 + addquirk --quirk-none + endmatch + endmatch + # + match system.hardware.product regex_ncase ^OptiPlex + match system.hardware.product regex GX520|GX260 + addquirk --quirk-vbe-post + addquirk --quirk-vbemode-restore + endmatch + match system.hardware.product regex 755 + addquirk --quirk-vbe-post + addquirk --quirk-no-fb + endmatch + match system.hardware.product regex_ncase fx160 + addquirk --quirk-s3-bios + addquirk --quirk-s3-mode + endmatch + match system.hardware.product regex 170L|GX620 + addquirk --quirk-none + endmatch + endmatch + # + match system.hardware.product regex MXC061|MXC062 + addquirk --quirk-vbe-post + endmatch + # + match system.hardware.product regex XPS M1330|MM061 + addquirk --quirk-vbe-post + addquirk --quirk-vbemode-restore + endmatch + # + match system.hardware.product regex DM061 |DXP051|ME051|MP061|MXC051|MXG061|XPS M1530 + addquirk --quirk-none + endmatch + endmatch diff --git a/packages/sysutils/pm-utils/quirks/20-video-quirk-pm-fujitsu.quirkdb b/packages/sysutils/pm-utils/quirks/20-video-quirk-pm-fujitsu.quirkdb new file mode 100644 index 0000000000..4d78e7a203 --- /dev/null +++ b/packages/sysutils/pm-utils/quirks/20-video-quirk-pm-fujitsu.quirkdb @@ -0,0 +1,107 @@ +# + match system.hardware.vendor regex ^FUJITSU + match system.hardware.product regex_ncase amilo + match system.hardware.product regex A1667G Serie|Pa 1510|Li 1718|M1425 + addquirk --quirk-s3-bios + endmatch + match system.hardware.product regex Pro V3205|Pro Edition V3405|Pro Edition V3505|Xi 1546|Si 1520|A7640|Pi 1505|A1645 + addquirk --quirk-s3-bios + addquirk --quirk-s3-mode + endmatch + match system.hardware.product regex A1650G + addquirk --quirk-vbemode-restore + endmatch + match system.hardware.product regex ^M Series$ + addquirk --quirk-vbestate-restore + endmatch + match system.hardware.product regex Amilo D Series|PRO V2030|PRO V2035|PRO V8010|Pi 1536|Pi 2515| L Series + addquirk --quirk-vbe-post + addquirk --quirk-vbemode-restore + endmatch + match system.hardware.product regex AMILO M|A Series + match system.hardware.version regex -1 |0\.01 + addquirk --quirk-vbe-post + addquirk --quirk-vbestate-restore + match system.firmware.version regex ^R01-S0N + addquirk --quirk-pci-save + endmatch + endmatch + endmatch + match system.hardware.product regex A7645 + addquirk --quirk-s3-bios + addquirk --quirk-s3-mode + addquirk --quirk-vbestate-restore + endmatch + match system.hardware.product regex Pro V2040|Pro Series V3525 + addquirk --quirk-none + endmatch + endmatch + match system.hardware.product regex_ncase lifebook + match system.hardware.product regex P7010D|S2110 + addquirk --quirk-s3-bios + endmatch + match system.hardware.product regex E8410|T4010|S2210|P8010 + addquirk --quirk-s3-bios + addquirk --quirk-s3-mode + endmatch + # + match system.hardware.product regex S7020 + addquirk --quirk-vbe-post + addquirk --quirk-reset-brightness + endmatch + match system.hardware.product regex E4010|P7120 + addquirk --quirk-vbestate-restore + endmatch + match system.hardware.product regex E8020|S6410 + addquirk --quirk-vbe-post + addquirk --quirk-vbemode-restore + endmatch + match system.hardware.product regex T2010 + match system.hardware.product regex ^FUJITSU SIEMENS$ + addquirk --quirk-vbe-post + addquirk --quirk-vbestate-restore + addquirk --quirk-pci-save + endmatch + match system.hardware.product regex ^FUJITSU$ + addquirk --quirk-s3-bios + addquirk --quirk-s3-mode + endmatch + endmatch + match system.hardware.product regex T4210|P7230 + addquirk --quirk-pci-save + addquirk --quirk-s3-bios + addquirk --quirk-s3-mode + endmatch + match system.hardware.product regex B Series|T Series|S7010|S7110|E8110|T301|T3010 + addquirk --quirk-none + endmatch + endmatch + match system.hardware.product regex ^SCENIC + match system.hardware.product regex N300/N600|W300/W600|P / SCENICO P + addquirk --quirk-vbe-post + addquirk --quirk-vbemode-restore + endmatch + match system.hardware.product regex W$ + addquirk --quirk-vbe-post + addquirk --quirk-vbemode-restore + endmatch + endmatch + match system.hardware.product regex ^(ESPRIMO P|ESPRIMO Mobile M9400|ESPRIMO Mobile D9500) + addquirk --quirk-none + endmatch + match system.hardware.product regex ^Stylistic ST5000$ + addquirk --quirk-s3-bios + addquirk --quirk-s3-mode + endmatch + match system.hardware.product regex ^P6VAP-AP$ + addquirk --quirk-none + endmatch + endmatch +# + match system.hardware.vendor regex ^FUJITSO + match system.hardware.product regex ^FMVLT70R$ + addquirk --quirk-s3-bios + addquirk --quirk-s3-mode + addquirk --quirk-pci-save + endmatch + endmatch diff --git a/packages/sysutils/pm-utils/quirks/20-video-quirk-pm-hp.quirkdb b/packages/sysutils/pm-utils/quirks/20-video-quirk-pm-hp.quirkdb new file mode 100644 index 0000000000..392ff8ff81 --- /dev/null +++ b/packages/sysutils/pm-utils/quirks/20-video-quirk-pm-hp.quirkdb @@ -0,0 +1,309 @@ +# +# + match system.hardware.vendor regex ^Compaq + # + match system.hardware.product regex ^Armada + match system.hardware.product regex E500 | M70 | M700 + addquirk --quirk-none + endmatch + # + match system.hardware.product regex + match system.firmware.version regex ^1\.35$ + addquirk --quirk-none + endmatch + endmatch + endmatch + match system.hardware.product regex ^Evo + match system.hardware.product regex N600c + addquirk --quirk-vbe-post + endmatch + match system.hardware.product regex N800w + addquirk --quirk-vbe-post + # + match system.hardware.version regex ^F\.05$ + addquirk --quirk-vbestate-restore + endmatch + # + match system.hardware.version regex_inverse F\.05 + addquirk --quirk-s3-bios + addquirk --quirk-s3-mode + addquirk --quirk-vbemode-restore + endmatch + endmatch + match system.hardware.product regex D510 USDT| N400c + addquirk --quirk-none + endmatch + endmatch + match system.hardware.product regex ^Presario + match system.hardware.product regex 2701EA + addquirk --quirk-vbe-post + addquirk --quirk-vbestate-restore + addquirk --quirk-no-fb + endmatch + match system.hardware.product regex V3000 \(EZ674UA#|V3700 Notebook PC + addquirk --quirk-s3-bios + addquirk --quirk-s3-mode + endmatch + match system.hardware.product regex X1000 + addquirk --quirk-vbe-post + addquirk --quirk-vbestate-restore + endmatch + match system.hardware.product regex V2000 + addquirk --quirk-dpms-on + endmatch + match system.hardware.product regex V3000 \(EZ755UA#|V5000 \(ET826UA#|2100 \(DP835E\)|F500 \(GF596UA#|2200 \(PR309UA#|C700 \(GV681LA# + addquirk --quirk-none + endmatch + endmatch + match system.hardware.product regex ^N620c  + addquirk --quirk-s3-bios + addquirk --quirk-s3-mode + endmatch + endmatch + match system.hardware.vendor regex ^Hewlett Packard$ + match system.hardware.version regex ^HP OmniBook XE3 GF + addquirk --quirk-vbe-post + addquirk --quirk-vbestate-restore + endmatch + endmatch + match system.hardware.vendor regex ^Hewlett-Packard + match system.hardware.product regex V2000 \(EP381UA#|X1000 \(DK454AV\)| 6715s|6820s + addquirk --quirk-s3-bios + endmatch + match system.hardware.product regex 8510w + match system.hardware.primary_video.vendor numeric_compare_eq 0x1002 + addquirk --quirk-s3-bios + endmatch + endmatch + match system.hardware.product regex HP OmniBook XT1000 + addquirk --quirk-s3-mode + endmatch + match system.hardware.product regex V3000 \(RL377PA#|EW434AVABA|R3000|R4100|nc6000 + addquirk --quirk-s3-bios + addquirk --quirk-s3-mode + endmatch + match system.hardware.product regex nx6125|nc6230|nx8220 + addquirk --quirk-vbestate-restore + addquirk --quirk-no-fb + endmatch + match system.hardware.product regex OmniBook XE3 G|R3200|nx5000|nx7000|nc6120|nx6325|2510p + addquirk --quirk-vbe-post + addquirk --quirk-vbestate-restore + endmatch + # + match system.hardware.version regex ^HP OmniBook 6100 EB$ + addquirk --quirk-vbe-post + addquirk --quirk-vbestate-restore + endmatch + # + match system.hardware.product regex nc2400|nx6110|nc6120|nc6320|nx7300|6720s|2710p|8510p|PY507ET#|6715b + addquirk --quirk-vbe-post + addquirk --quirk-vbemode-restore + endmatch + match system.hardware.product regex 4410s + # + match system.hardware.primary_video.vendor numeric_compare_eq 0x1002 + addquirk --quirk-vbe-post + addquirk --quirk-vbemode-restore + endmatch + endmatch + match system.hardware.product regex M2000 \(EQ547PA + addquirk --quirk-s3-bios + addquirk --quirk-vbemode-restore + endmatch + match system.hardware.product regex tc4400|nc4400|tc4200|nx6120|nc4200|HP 530 Notebook PC + addquirk --quirk-vbe-post + endmatch + match system.hardware.product regex HP Compaq nc6400 + match system.hardware.version regex ^68YCU + match system.hardware.product regex \(EH522AV\)|\(EY582ES|\(RH560EA + addquirk --quirk-vbemode-restore + addquirk --quirk-vbe-post + endmatch + endmatch + endmatch + match system.hardware.product regex nx 7010 + addquirk --quirk-s3-bios + match system.hardware.product regex DU394T# + addquirk --quirk-s3-mode + endmatch + endmatch + match system.hardware.product regex nx7400 + addquirk --quirk-vbe-post + match system.firmware.version regex_inverse 68YGU + addquirk --quirk-vbemode-restore + endmatch + endmatch + match system.hardware.product regex HP Compaq dc5800 Small Form Factor|HP d330 uT| nw9440|nw8440 + addquirk --quirk-none + endmatch + match system.hardware.product regex HP Compaq 2133|HP 2133 + match system.firmware.version regex 68VGU + addquirk --quirk-s3-bios + addquirk --quirk-s3-mode + endmatch + endmatch + # + match system.hardware.product regex 6510b + match system.hardware.product regex KE134EA + addquirk --quirk-none + endmatch + match system.hardware.product regex_inverse KE134EA + addquirk --quirk-vbe-post + addquirk --quirk-vbestate-restore + endmatch + endmatch + match system.hardware.product regex 6710b + match system.hardware.product regex KE123EA + addquirk --quirk-none + endmatch + match system.hardware.product regex KE124EA + addquirk --quirk-vbe-post + addquirk --quirk-vbemode-restore + endmatch + endmatch + match system.hardware.product regex 6710s + match system.firmware.version regex 68DDU + match system.hardware.product regex GC014ET + addquirk --quirk-vbe-post + addquirk --quirk-vbestate-restore + endmatch + match system.hardware.product regex_inverse GC014ET + addquirk --quirk-vbe-post + addquirk --quirk-dpms-on + endmatch + endmatch + endmatch + match system.hardware.product regex 6715b + match system.hardware.product regex GB835EA|RK156AV + addquirk --quirk-s3-bios + addquirk --quirk-s3-mode + endmatch + match system.hardware.product regex GB834EA + addquirk --quirk-vbe-post + addquirk --quirk-vbemode-restore + endmatch + match system.hardware.product regex RM174UT + addquirk --quirk-s3-bios + addquirk --quirk-vbemode-restore + endmatch + endmatch + match system.hardware.product regex 6910p + match system.firmware.version regex 68MCD + match system.hardware.product regex GB951EA + addquirk --quirk-vbemode-restore + endmatch + match system.hardware.product regex ^HP Compaq 6910p$ + addquirk --quirk-s3-bios + addquirk --quirk-s3-mode + endmatch + endmatch + match system.firmware.version regex_inverse 68MCD + addquirk --quirk-vbe-post + addquirk --quirk-vbemode-restore + endmatch + endmatch + match system.hardware.product regex nc4400 + match system.firmware.version regex ^68YHV + addquirk --quirk-vbe-post + match system.firmware.version regex F\.08 + addquirk --quirk-vbestate-restore + endmatch + match system.firmware.version regex_inverse F\.08 + addquirk --quirk-vbemode-restore + endmatch + endmatch + endmatch + match system.hardware.product regex nx6310 + match system.firmware.version regex ^68YDU + addquirk --quirk-none + endmatch + match system.firmware.version regex_inverse 68YDU + addquirk --quirk-vbe-post + endmatch + endmatch + match system.hardware.product regex_ncase Pavilion + match system.hardware.product regex dv4000 \(ES973EA# + addquirk --quirk-vbe-post + addquirk --quirk-vbestate-restore + addquirk --quirk-no-fb + endmatch + match system.hardware.product regex dv4000 \(EB911EA#| dv2600| dv6500 + addquirk --quirk-s3-bios + endmatch + match system.hardware.product regex dv4000 \(PX306UA#| dv6700 + addquirk --quirk-s3-bios + addquirk --quirk-s3-mode + endmatch + match system.hardware.product regex zd8000 \(EL030EA# + addquirk --quirk-vbe-post + endmatch + match system.hardware.product regex ze2000 + match system.hardware.product regex \(EK791EA# + addquirk --quirk-none + endmatch + match system.hardware.product regex_inverse \(EK791EA# + addquirk --quirk-s3-bios + addquirk --quirk-s3-mode + endmatch + endmatch + match system.hardware.product regex zt3300 + match system.firmware.version regex 68BAL + addquirk --quirk-s3-bios + endmatch + match system.hardware.product regex PF083UA# + addquirk --quirk-none + endmatch + endmatch + match system.hardware.product regex dv6000 + match system.hardware.version regex \(GA378UA#|\(GH907EA# + addquirk --quirk-s3-mode + endmatch + # + match system.hardware.version regex \(EW434AV#|\(RP153UA# + addquirk --quirk-s3-bios + addquirk --quirk-s3-mode + endmatch + match system.hardware.version regex \(EY798AV#|\(GF688EA|\(RM469EA|\(RP980EA# + addquirk --quirk-none + endmatch + endmatch + match system.hardware.product regex ^HP Pavilion Notebook PC$ + match system.hardware.version regex ^HP Pavilion Notebook$ + match system.firmware.vendor regex ^Insyde Software$ + # + match system.firmware.version regex ^ IC\.M1\.04$ + addquirk --quirk-s3-bios + addquirk --quirk-s3-mode + addquirk --quirk-vbemode-restore + endmatch + # + match system.firmware.version regex ^ IC\.M1\.02$ + addquirk --quirk-none + endmatch + endmatch + endmatch + endmatch + match system.hardware.product regex 8710p|dv2000|dv2500|tx1000|dv5000 \(EZ535UA#|HP d530 SFF|ze4900| dv9700 + addquirk --quirk-none + endmatch + endmatch + endmatch +# + match system.hardware.vendor regex ^HP Pavilion + match system.hardware.product regex M7330N + addquirk --quirk-vbe-post + addquirk --quirk-vbestate-restore + endmatch + match system.hardware.product regex ^(D7223K-ABA A650E|EJ192AA-ABS t3250\.se|EP198AA-UUZ t3335\.ch|ES061AA-ABD t3320|PC098A-ABA M1070N)$ + addquirk --quirk-none + endmatch + endmatch + match system.hardware.vendor regex ^HP-Pavilion + match system.hardware.product regex RZ418AA-ABH s3020 + addquirk --quirk-vbemode-restore + endmatch + match system.hardware.product regex ^RP829AV-ABA d4790y$ + addquirk --quirk-none + endmatch + endmatch diff --git a/packages/sysutils/pm-utils/quirks/20-video-quirk-pm-ibm.quirkdb b/packages/sysutils/pm-utils/quirks/20-video-quirk-pm-ibm.quirkdb new file mode 100644 index 0000000000..a125b93e28 --- /dev/null +++ b/packages/sysutils/pm-utils/quirks/20-video-quirk-pm-ibm.quirkdb @@ -0,0 +1,120 @@ +# + match system.hardware.vendor regex ^IBM$ + match system.hardware.version regex ^ThinkPad R50e$ + addquirk --quirk-save-pci + addquirk --quirk-dpms-on + endmatch + match system.hardware.version regex ^ThinkPad R51$ + addquirk --quirk-none + endmatch + match system.hardware.version regex ^ThinkPad R51e$ + addquirk --quirk-s3-bios + addquirk --quirk-s3-mode + endmatch + # + match system.hardware.product regex ^2645 + match system.firmware.version regex ^INET17WW$ + addquirk --quirk-vbe-post + addquirk --quirk-vbemode-restore + endmatch + match system.firmware.version regex_inverse INET17WW + addquirk --quirk-vbestate-restore + endmatch + endmatch + # + match system.hardware.product regex ^2652 + addquirk --quirk-s3-bios + addquirk --quirk-s3-mode + # + addquirk --quirk-dpms-suspend + endmatch + # + match system.hardware.product regex ^(2366|2367|2653) + addquirk --quirk-radeon-off + endmatch + # + match system.hardware.product regex ^(2662|2672|2673) + addquirk --quirk-radeon-off + match system.hardware.version regex_inverse X31 + addquirk --quirk-s3-bios + addquirk --quirk-s3-mode + endmatch + endmatch + # + match system.hardware.product regex ^(2672|2673|2884|2885|2890|2891) + match system.hardware.version regex X31 + addquirk --quirk-dpms-suspend + addquirk --quirk-radeon-off + endmatch + match system.hardware.version regex X32 + addquirk --quirk-dpms-suspend + endmatch + endmatch + # + match system.hardware.product regex ^2647 + addquirk --quirk-vbe-post + endmatch + # + match system.hardware.product regex ^(1832|1860|1869|2371|2373|2374|2376|2382|2386|2511|2513|2525|2526|2529|2530) + addquirk --quirk-s3-bios + addquirk --quirk-s3-mode + endmatch + # + match system.hardware.product regex ^(1846|1847|2886) + addquirk --quirk-vbe-post + addquirk --quirk-vbemode-restore + endmatch + # + match system.hardware.version regex ^ThinkPad T41$ + addquirk --quirk-s3-bios + endmatch + # + match system.hardware.product regex ^(2378|2379) + match system.hardware.version regex ^ThinkPad T42 + addquirk --quirk-s3-bios + endmatch + endmatch + # + match system.hardware.version regex ^ThinkPad T43$ + # + match system.hardware.primary_video.vendor numeric_compare_eq 0x1002 + addquirk --quirk-vbe-post + addquirk --quirk-vbemode-restore + endmatch + # + match system.hardware.primary_video.vendor numeric_compare_eq 0x8086 + addquirk --quirk-s3-bios + addquirk --quirk-s3-mode + endmatch + endmatch + # + match system.hardware.product regex ^2388 + addquirk --quirk-vbestate-restore + endmatch + # + match system.hardware.product regex ^(2628|2629|2658|2681|2722) + addquirk --quirk-none + endmatch + # + match system.hardware.version regex ^ThinkPad X40$ + match system.firmware.version regex ^1UETD2WW + # + addquirk --quirk-none + endmatch + endmatch + endmatch + match system.hardware.version regex ^ThinkPad T40 $ + match system.firmware.version regex ^1RETDRWW + addquirk --quirk-none + endmatch + endmatch +endmatch +match system.hardware.vendor regex ^IBM CORPORATION$ + match system.hardware.product regex ^(4800723|4800743|4800783|4800C43)$ + addquirk --quirk-s3-bios + addquirk --quirk-s3-mode + endmatch +endmatch diff --git a/packages/sysutils/pm-utils/quirks/20-video-quirk-pm-lenovo.quirkdb b/packages/sysutils/pm-utils/quirks/20-video-quirk-pm-lenovo.quirkdb new file mode 100644 index 0000000000..ffa794ae0c --- /dev/null +++ b/packages/sysutils/pm-utils/quirks/20-video-quirk-pm-lenovo.quirkdb @@ -0,0 +1,100 @@ +# +match system.hardware.vendor regex ^LENOVO$ +# +# +# + match system.hardware.product regex ^(1702|1704|1706|1709|2007|2478|2479|4108|4141|4143|6088|6363|6364|6365|6378|6379|6480|6458|6463|6464|6465|6466|6467|6468|6471|6476|6477|6478|7642|7643|7644|7645|7646|7647|7648|7649|7650|7657|7658|7659|7660|7661|7666|7667|7668|7673|7732|7733|7734|7735|7736|7737|7738|7762|7763|7764|7767|7768|7669|7670|7671|7673|7674|7675|7676|7678|7679|8808|8895|8896|8897|8898|8899|8900|8919|8930|8932|8933|8934|8935|8936|8937|8938|8939|8942|8943|8944|8945|8946|8947|8948|9452) + addquirk --quirk-s3-bios + addquirk --quirk-s3-mode + endmatch + match system.hardware.product regex ^(63664DU|1705CTO) + addquirk --quirk-vbe-post + endmatch + match system.hardware.product regex ^6457 + addquirk --quirk-vbe-post + addquirk --quirk-vbemode-restore + endmatch +# + match system.hardware.version regex_ncase ^ThinkPad R60 + addquirk --quirk-s3-bios + # + match system.hardware.product regex ^0657 + addquirk --quirk-vbemode-restore + endmatch + match system.hardware.product regex_inverse 0657 + addquirk --quirk-s3-mode + endmatch + endmatch + match system.hardware.version regex ^ThinkPad + # + match system.hardware.version regex T60$ + addquirk --quirk-s3-bios + addquirk --quirk-s3-mode + endmatch + # + match system.hardware.version regex T60p|Z61m|Z61t|Z60m|Z61p|R61e + addquirk --quirk-s3-bios + addquirk --quirk-s3-mode + endmatch + # + match system.hardware.version regex W500$ + addquirk --quirk-vbe-post + endmatch + endmatch +# + match system.hardware.product regex ^7663 + addquirk --quirk-s3-mode + endmatch +# + match system.hardware.product regex ^(6460|6465) + addquirk --quirk-s3-bios + addquirk --quirk-vbemode-restore + endmatch +# + match system.hardware.product regex ^2242CTO$ + match system.hardware.version regex ^ThinkPad T500$ + addquirk --quirk-vbe-post + addquirk --quirk-vbestate-restore + endmatch + endmatch +# + match system.hardware.product regex ^(6459|7664|8918) + addquirk --quirk-none + endmatch +# + match system.hardware.version regex_ncase ^3000 C100 + match system.hardware.product regex ^0761 + addquirk --quirk-none + endmatch + endmatch + match system.hardware.version regex_ncase ^3000 N100 + match system.hardware.product regex ^(068928U|07686VG|076831G|076835U|0768BYG) + addquirk --quirk-none + endmatch + match system.hardware.product regex ^07687MM + addquirk --quirk-s3-mode + endmatch + match system.hardware.product regex ^076804U$ + addquirk --quirk-s3-bios + addquirk --quirk-vbemode-restore + endmatch + endmatch + match system.hardware.version regex_ncase ^3000 N200 + match system.hardware.product regex ^(0769BBG|0769AC6)$ + addquirk --quirk-s3-bios + addquirk --quirk-s3-mode + endmatch + match system.hardware.product regex ^(0769B9G|0769BEG|0769AH9)$ + addquirk --quirk-none + endmatch + endmatch + match system.hardware.version regex ^LENOVO3000 V100$ + match system.hardware.product regex ^0763 + addquirk --quirk-none + endmatch + endmatch + match system.hardware.product regex ^Soleil E660P + addquirk --quirk-none + endmatch +endmatch diff --git a/packages/sysutils/pm-utils/quirks/20-video-quirk-pm-misc.quirkdb b/packages/sysutils/pm-utils/quirks/20-video-quirk-pm-misc.quirkdb new file mode 100644 index 0000000000..26cda34887 --- /dev/null +++ b/packages/sysutils/pm-utils/quirks/20-video-quirk-pm-misc.quirkdb @@ -0,0 +1,389 @@ +# +match system.hardware.vendor regex ^AIRIS$ + match system.hardware.version regex ^VT6413A$ + addquirk --quirk-s3-bios + endmatch +endmatch +match system.hardware.vendor regex ^AnabelleB$ +# + match system.hardware.version regex ^Claro TW7M$ + addquirk --quirk-s3-bios + addquirk --quirk-s3-mode + endmatch +endmatch +match system.hardware.vendor regex ^COMPAL + match system.hardware.product regex HEL80C|HEL80I|HEL81I + addquirk --quirk-none + endmatch +endmatch +match system.hardware.vendor regex DIXONSXP + match system.hardware.product regex To be filled by O\.E\.M\. + match system.firmware.version regex ^Ver\.001$ + addquirk --quirk-none + endmatch + endmatch +endmatch +match system.hardware.vendor regex ERGOUK + match system.hardware.product regex M2N + addquirk --quirk-s3-bios + addquirk --quirk-s3-mode + endmatch +endmatch +match system.hardware.vendor regex ^JVC$ + match system.hardware.product regex ^J2N $ + addquirk --quirk-vbestate-restore + endmatch +endmatch +match system.hardware.vendor regex ^LG + match system.hardware.product regex ^(M1-3DGBG|W1-JDGBG|LM50-DGHE|LW75-SGGV1)$ + addquirk --quirk-s3-bios + addquirk --quirk-s3-mode + endmatch + match system.hardware.product regex ^R500-U\.CPCBG$ + addquirk --quirk-none + endmatch +endmatch +match system.hardware.vendor regex MAXDATA + match system.hardware.product regex ^PRO600IW$ + addquirk --quirk-s3-bios + addquirk --quirk-s3-mode + endmatch + match system.hardware.product regex Pro 6100X + addquirk --quirk-vbe-post + endmatch + match system.hardware.product regex IMPERIO4045A + addquirk --quirk-none + endmatch +endmatch +match system.hardware.vendor regex ^Matsushita + match system.hardware.product regex ^CF-Y + addquirk --quirk-vbe-post + endmatch + match system.hardware.product regex CF-51E|CF-R3E|CF-R2C|CF-R6A|CF-R6M + addquirk --quirk-vbe-post + addquirk --quirk-vbemode-restore + endmatch + match system.hardware.product regex ^CF-W4G + addquirk --quirk-none + endmatch +endmatch +# +match system.hardware.vendor regex ^VIA + match system.hardware.product regex ^VT8623-8235$ + addquirk --quirk-s3-mode + endmatch + match system.hardware.product regex ^K8N800$ + match system.firmware.version regex ^VT8204B $ + addquirk --quirk-vbe-post + addquirk --quirk-vbestate-restore + endmatch + endmatch + match system.hardware.product regex ^K8T400$ + match system.hardware.version regex ^VT8204B $ + addquirk --quirk-s3-bios + addquirk --quirk-s3-mode + endmatch + endmatch + match system.hardware.product regex ^(KT400-8235|KT400A-8235)$ + addquirk --quirk-s3-bios + addquirk --quirk-s3-mode + endmatch +endmatch +match system.hardware.vendor regex ^AVERATEC$ + match system.hardware.product regex ^(3700 Series|1000 Series)$ + addquirk --quirk-s3-bios + addquirk --quirk-s3-mode + endmatch + match system.hardware.product regex ^3200$ + addquirk --quirk-vbestate-restore + endmatch + match system.hardware.product regex ^5500 Series$ + addquirk --quirk-s3-mode + endmatch +endmatch +match system.hardware.vendor regex ^BenQ + match system.hardware.product regex ^Joybook R42$ + addquirk --quirk-vbe-post + endmatch + match system.hardware.product regex ^(Joybook R22|Joybook R23|JoyBook 7000)$ + addquirk --quirk-s3-bios + addquirk --quirk-s3-mode + endmatch + match system.hardware.product regex ^(Joybook S52|Joybook S32)$ + addquirk --quirk-vbe-post + addquirk --quirk-vbemode-restore + endmatch +endmatch +match system.hardware.vendor regex ^Elonex PLC + match system.hardware.product regex M5A + addquirk --quirk-s3-bios + addquirk --quirk-s3-mode + endmatch +endmatch +match system.hardware.vendor regex ^GERICOM + match system.hardware.product regex HUMMER + match system.firmware.version regex ^1\.03 $ + addquirk --quirk-vbe-post + addquirk --quirk-vbemode-restore + endmatch + endmatch + match system.hardware.product regex 259IA1 + addquirk --quirk-none + endmatch +# + match system.hardware.product regex ^Montara-GML $ + match system.hardware.version regex ^FAB-2$ + addquirk --quirk-none + endmatch + endmatch +endmatch +match system.hardware.vendor regex ^MTC + match system.hardware.product regex ^Montara-GML$ + addquirk --quirk-s3-bios + endmatch +endmatch +match system.hardware.vendor regex_ncase ^micro-star + match system.hardware.product regex ^(MS-1012|MS-1013)$ + addquirk --quirk-s3-bios + endmatch + match system.hardware.product regex ^(MS-1057|U-100)$ + addquirk --quirk-s3-bios + addquirk --quirk-s3-mode + endmatch + match system.hardware.product regex ^PR210$ + match system.hardware.version regex ^MS-1222X$ + addquirk --quirk-vbe-post + endmatch + endmatch + match system.hardware.product regex ^EX610$ + addquirk --quirk-vbe-post + addquirk --quirk-vbemode-restore + endmatch + match system.hardware.product regex ^MS-1412$ + addquirk --quirk-vbe-post + addquirk --quirk-vbestate-restore + addquirk --quirk-no-fb + endmatch + match system.hardware.product regex ^MS-1003$ + addquirk --quirk-none + endmatch +endmatch +match system.hardware.vendor regex ^MSI + match system.hardware.product regex ^(MS-7350|MS-7207PV|MS-6417|MS-6702)$ + addquirk --quirk-none + endmatch +endmatch +match system.hardware.vendor regex ^MiTAC$ +# + addquirk --quirk-s3-bios + addquirk --quirk-s3-mode +endmatch +match system.hardware.vendor regex ^MEDION + match system.hardware.product regex WID2010 + addquirk --quirk-vbe-post + addquirk --quirk-vbemode-restore + endmatch + match system.hardware.product regex MS-6714 + addquirk --quirk-s3-bios + addquirk --quirk-s3-mode + endmatch + match system.hardware.product regex ^(MS-7012|M295M|WIM 2000 |WIM 2140)$ + addquirk --quirk-none + endmatch +endmatch +match system.hardware.vendor regex ^NEC + match system.hardware.product regex B7 + addquirk --quirk-vbestate-restore + endmatch + match system.hardware.product regex ^VC2$ + addquirk --quirk-s3-bios + addquirk --quirk-s3-mode + endmatch + match system.hardware.product regex ^NEC Versa Premium$ + addquirk --quirk-none + endmatch +endmatch +match system.hardware.vendor regex_ncase ^packard bell +# + match system.hardware.vendor regex NEC + match system.hardware.product regex ^00000000000000000000000$ + match system.hardware.version regex ^P820008416$ + addquirk --quirk-none + endmatch + match system.firmware.version regex ^A03 $ + addquirk --quirk-none + endmatch + endmatch + endmatch + match system.hardware.product regex ^EasyNote_SJ51$ + addquirk --quirk-s3-bios + addquirk --quirk-s3-mode + endmatch +endmatch +match system.hardware.vendor regex ^4MBOL + match system.hardware.product regex ^7521 + match system.hardware.version regex ^REV\. A0$ + addquirk --quirk-none + endmatch + endmatch +endmatch +match system.hardware.vendor regex ^CLEVO$ + match system.hardware.product regex ^D500P$ + addquirk --quirk-vbe-post + addquirk --quirk-no-fb + endmatch + match system.hardware.product regex ^M5X0JE$ + addquirk --quirk-s3-bios + endmatch + match system.hardware.product regex ^M720SR$ + addquirk --quirk-vbe-post + addquirk --quirk-vbemode-restore + addquirk --quirk-vbestate-restore + endmatch + match system.hardware.product regex ^TN120R$ + addquirk --quirk-none + endmatch +endmatch +# +match system.hardware.vendor regex ^VIA$ + match system.hardware.product regex ^K8N800$ + match system.hardware.version regex ^VT8204B$ + match system.firmware.version regex ^4\.06CJ15$ + addquirk --quirk-vbe-post + addquirk --quirk-vbestate-restore + endmatch + endmatch + endmatch +endmatch +match system.hardware.vendor regex ^ECS$ + match system.hardware.product regex ^536$ + addquirk --quirk-vbe-post + addquirk --quirk-no-fb + endmatch +endmatch +match system.hardware.vendor regex ^Elitegroup$ + match system.hardware.product regex ^ECS G320$ + addquirk --quirk-vbe-post + addquirk --quirk-vbemode-restore + endmatch +endmatch +match system.hardware.vendor regex ^Gigabyte Technology + match system.hardware.product regex ^(945GCMX-S2|P35-DS4)$ + addquirk --quirk-vbe-post + addquirk --quirk-vbemode-restore + endmatch + match system.hardware.product regex ^(945GZM-S2|945GCM-S2L)$ + addquirk --quirk-none + endmatch +endmatch +match system.hardware.vendor regex ^Infomash$ + match system.hardware.product regex ^RoverBook$ + addquirk --quirk-vbe-post + addquirk --quirk-vbemode-restore + endmatch +endmatch +match system.hardware.vendor regex ^Gateway + match system.hardware.product regex MT6707 + addquirk --quirk-s3-bios + addquirk --quirk-s3-mode + endmatch + match system.hardware.product regex ^MT6920 + addquirk --quirk-vbe-post + endmatch + match system.hardware.product regex MX6922B + addquirk --quirk-none + endmatch +endmatch +match system.hardware.vendor regex ^MaxSelect$ + match system.hardware.product regex ^Mission_A330$ + addquirk --quirk-vbe-post + addquirk --quirk-vbestate-restore + endmatch +endmatch +# +match system.hardware.vendor regex ^NOTEBOOK$ + match system.hardware.product regex ^SAM2000$ + match system.hardware.version regex ^0131$ + addquirk --quirk-none + endmatch + endmatch +# + match system.hardware.product regex ^MIM2080$ + addquirk --quirk-s3-bios + addquirk --quirk-s3-mode + endmatch +endmatch +match system.hardware.vendor regex ^NCA_GROUP_LTD$ + match system.hardware.product regex ^iRU_Notebook$ + match system.hardware.version regex ^0106$ + addquirk --quirk-vbe-post + addquirk --quirk-vbemode-restore + endmatch + endmatch +endmatch +match system.hardware.vendor regex ^transtec AG + match system.hardware.product regex ^(MS-1057|MS-1034)$ + addquirk --quirk-s3-bios + addquirk --quirk-s3-mode + endmatch +endmatch +match system.hardware.vendor regex ^To Be Filled By O\.E\.M\.$ + match system.hardware.product regex ^259IA1$ + match system.hardware.version regex ^To Be Filled By O\.E\.M\.$ + match system.firmware.version regex ^080010 $ + addquirk --quirk-s3-mode + endmatch + endmatch + endmatch + match system.hardware.product regex ^MS-7210$ + match system.hardware.version regex ^100$ + addquirk --quirk-none + endmatch + endmatch +endmatch +match system.hardware.vendor regex ^OEM$ +# + match system.hardware.product regex ^P53IN4$ + addquirk --quirk-none + endmatch +endmatch +match system.hardware.vendor regex ^OQO$ + match system.hardware.product regex ^ZEPTO$ + addquirk --quirk-vbe-post + addquirk --quirk-vbestate-restore + endmatch +endmatch +match system.hardware.vendor regex ^SHARP$ + match system.hardware.product regex ^PC-AR10 + addquirk --quirk-none + endmatch +endmatch +match system.hardware.vendor regex ^Shuttle Inc$ + match system.hardware.product regex ^SD11V10$ + addquirk --quirk-s3-bios + endmatch + match system.hardware.product regex ^SD30V10$ + addquirk --quirk-s3-bios + addquirk --quirk-s3-mode + endmatch + match system.hardware.product regex ^SN41UV10$ + addquirk --quirk-vbe-post + addquirk --quirk-vbemode-restore + endmatch + match system.hardware.product regex ^SN85V10$ + addquirk --quirk-none + endmatch +endmatch +match system.hardware.vendor regex ^ZEPTO$ + match system.hardware.product regex ^ZNOTE + match system.hardware.version regex ^3215W + addquirk --quirk-none + endmatch + endmatch +endmatch diff --git a/packages/sysutils/pm-utils/quirks/20-video-quirk-pm-samsung.quirkdb b/packages/sysutils/pm-utils/quirks/20-video-quirk-pm-samsung.quirkdb new file mode 100644 index 0000000000..0fee8fb81a --- /dev/null +++ b/packages/sysutils/pm-utils/quirks/20-video-quirk-pm-samsung.quirkdb @@ -0,0 +1,26 @@ +# +match system.hardware.vendor regex_ncase ^Samsung + match system.hardware.product regex ^(Q35/Q36|SM40S|SQ45S70S)$ + addquirk --quirk-s3-bios + addquirk --quirk-s3-mode + endmatch + match system.hardware.product regex ^(SQ30|SQ35S|SX50S)$ + addquirk --quirk-vbe-post + endmatch +# + match system.hardware.product regex ^(R40/R41|CoronaR|SX22S)$ + addquirk --quirk-vbestate-restore + endmatch + match system.hardware.product regex ^(SX20S|SENS V25|NX05S)$ + addquirk --quirk-vbe-post + addquirk --quirk-vbemode-restore + endmatch + match system.hardware.product regex ^SQ10$ + addquirk --quirk-vbe-post + addquirk --quirk-vbestate-restore + endmatch +# + match system.hardware.product regex R50/R51|R55S|SR700 + addquirk --quirk-none + endmatch +endmatch diff --git a/packages/sysutils/pm-utils/quirks/20-video-quirk-pm-sony.quirkdb b/packages/sysutils/pm-utils/quirks/20-video-quirk-pm-sony.quirkdb new file mode 100644 index 0000000000..0ce980be7d --- /dev/null +++ b/packages/sysutils/pm-utils/quirks/20-video-quirk-pm-sony.quirkdb @@ -0,0 +1,54 @@ +# +match system.hardware.vendor regex ^Sony Corporation$ + match system.hardware.product regex ^VGN-FS115Z$ + addquirk --quirk-s3-mode + endmatch + match system.hardware.product regex VGN-FS730|PCG-FX405|VGN-C2S_G|VGN-B1XP|VGN-FE21B|VGN-B100B||VGN-B1VP + addquirk --quirk-s3-bios + endmatch + match system.hardware.product regex ^(VGN-FS115B|VGN-C140G|VGN-TX3XP_L|VGN-T250P|VGN-AR31S|PCV-RX612|VGN-FS485B|VGN-SZ61XN_C|VGN-TZ37|VGN-TZ170N|VGN-FS920|VGN-C240E|PCG-FX601|VGN-SR11M)$ + addquirk --quirk-s3-bios + addquirk --quirk-s3-mode + endmatch + match system.hardware.product regex ^VGN-NR120E$ + addquirk --quirk-vbe-post + endmatch + match system.hardware.product regex ^(VGN-TX5MN_W|PCG-TR2A\(UC\)|VGN-UX50)$ + addquirk --quirk-vbemode-restore + endmatch + match system.hardware.product regex PCG-FX340 + addquirk --quirk-vbestate-restore + endmatch + match system.hardware.product regex PCG-FX802 + addquirk --quirk-vbestate-restore + addquirk --quirk-vbemode-restore + endmatch + match system.hardware.product regex PCG-Z1MP + addquirk --quirk-vbe-post + addquirk --quirk-vbemode-restore + addquirk --quirk-vbestate-restore + endmatch + match system.hardware.product regex PCG-Z1RMP|VGN-TX770P|VGN-FW11|VGN-TX670P|PCG-V505ECP + addquirk --quirk-vbe-post + addquirk --quirk-vbemode-restore + endmatch + match system.hardware.product regex PCG-FX805 + addquirk --quirk-vbe-post + addquirk --quirk-vbestate-restore + endmatch + match system.hardware.product regex PCG-FX905 + addquirk --quirk-s3-bios + addquirk --quirk-s3-mode + addquirk --quirk-dpms-on + endmatch +# +# + match system.hardware.product regex ^(VGN-TX3HP|VGN-B55G\(I\)|VGN-FE31M|VGN-FS215B|VGN-FS660_W|VGN-SZ5XN_C|VGN-TZ21XN_B|PCG-FR215E|VGN-SZ340P|VGN-FE11M|VGN-TZ91HS|PCG-Z505HSK\(UC\)|VGN-FZ39VN|VGN-A115B|VGN-FE890E|VGN-N320E|VGN-C2S_H|VGN-FS215M|VGN-Z90S)$ + addquirk --quirk-none + endmatch + match system.hardware.product regex VGN-TZ11|PCG-F430\(UC\)|PCG-GRT916Z|PCG-GRT995MP|PCG-GR7_K\(J\) + addquirk --quirk-none + endmatch +endmatch diff --git a/packages/sysutils/pm-utils/quirks/20-video-quirk-pm-toshiba.quirkdb b/packages/sysutils/pm-utils/quirks/20-video-quirk-pm-toshiba.quirkdb new file mode 100644 index 0000000000..6922c6ddef --- /dev/null +++ b/packages/sysutils/pm-utils/quirks/20-video-quirk-pm-toshiba.quirkdb @@ -0,0 +1,130 @@ +# +match system.hardware.vendor regex ^TOSHIBA$ +# + match system.hardware.product regex ^Satellite + match system.hardware.product regex M30X + addquirk --quirk-s3-bios + endmatch + match system.hardware.product regex Pro A120|M35X|P100|P200| P205D| A100| A105| A135| A200| A205| A210| L30| M105|M70|P30 + addquirk --quirk-s3-bios + addquirk --quirk-s3-mode + endmatch + match system.hardware.product regex A215 + addquirk --quirk-pci-save + addquirk --quirk-s3-bios + addquirk --quirk-s3-mode + endmatch + # + match system.hardware.product regex ^Satellite Pro M30$ + addquirk --quirk-dpms-on + endmatch + # + match system.hardware.product regex ^(Satellite P10|Satellite A10)$ + addquirk --quirk-s3-bios + addquirk --quirk-s3-mode + endmatch + match system.hardware.product regex P105 + addquirk --quirk-vbe-post + endmatch + match system.hardware.product regex L10|U305|M55 + addquirk --quirk-vbe-post + addquirk --quirk-vbemode-restore + endmatch + match system.hardware.product regex A300D + addquirk --quirk-vbe-post + addquirk --quirk-vbestate-restore + endmatch + match system.hardware.product regex A30| 1130 + addquirk --quirk-vbestate-restore + endmatch + match system.hardware.product regex Pro 6100 + addquirk --quirk-dpms-on + endmatch + # + match system.hardware.product regex A80|Pro4600| U200|Pro U300| U300 + addquirk --quirk-none + endmatch + endmatch +# + match system.hardware.product regex ^TECRA + match system.hardware.product regex 8100|8200| M9 + addquirk --quirk-s3-mode + endmatch + match system.hardware.product regex ^T9000$ + addquirk --quirk-vbemode-restore + endmatch + match system.hardware.product regex M4 + addquirk --quirk-vbe-post + addquirk --quirk-vbemode-restore + endmatch + match system.hardware.product regex S2 + addquirk --quirk-vbe-post + addquirk --quirk-vbestate-restore + endmatch + # + match system.hardware.product regex A8| A9| S3| S1 + addquirk --quirk-none + endmatch + endmatch +# + match system.hardware.product regex ^PORTEGE + match system.hardware.product regex R200|R205|R500 + addquirk --quirk-s3-bios + addquirk --quirk-s3-mode + endmatch + match system.hardware.product regex M300 + addquirk --quirk-s3-mode + endmatch + match system.hardware.product regex A100 + addquirk --quirk-vbe-post + addquirk --quirk-vbestate-restore + endmatch + match system.hardware.product regex R100 + addquirk --quirk-vbestate-restore + endmatch + # + match system.hardware.product regex M400|4000 + addquirk --quirk-none + endmatch + endmatch +# + match system.hardware.product regex ^EQUIUM + match system.hardware.product regex A100$ + addquirk --quirk-s3-bios + addquirk --quirk-s3-mode + endmatch + endmatch +# + match system.hardware.product regex ^P3490$ + addquirk --quirk-vbestate-restore + endmatch +# + match system.hardware.product regex ^S1110$ + addquirk --quirk-s3-bios + endmatch + match system.hardware.product regex ^Portable PC$ + match system.hardware.version regex ^Version 1\.0$ + # + match system.firmware.version regex ^(Version 1\.60|Version 7\.80)$ + addquirk --quirk-s3-mode + endmatch + # + match system.firmware.version regex ^Version 1\.20$ + addquirk --quirk-none + endmatch + endmatch + endmatch + match system.hardware.product regex ^(P2000|P4000) + addquirk --quirk-vbe-post + addquirk --quirk-vbestate-restore + endmatch +# + match system.hardware.product regex Libretto L5/TNK + addquirk --quirk-none + endmatch + match system.hardware.product regex ^SP4600$ + match system.hardware.version regex ^Version 1\.0$ + addquirk --quirk-none + endmatch + endmatch +endmatch diff --git a/packages/sysutils/pm-utils/quirks/url b/packages/sysutils/pm-utils/quirks/url new file mode 100644 index 0000000000..f6f0f489db --- /dev/null +++ b/packages/sysutils/pm-utils/quirks/url @@ -0,0 +1 @@ +http://pm-utils.freedesktop.org/releases/pm-quirks-20100316.tar.gz \ No newline at end of file From de4ee3bce252bd1e201943a9ad07dd477d7f27e1 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Sat, 8 May 2010 20:07:08 +0200 Subject: [PATCH 320/320] pm-utils: - install the quirk files - install the video quirk handler, now it works --- packages/sysutils/pm-utils/install | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/packages/sysutils/pm-utils/install b/packages/sysutils/pm-utils/install index f4ca22fe44..4bc20930d3 100755 --- a/packages/sysutils/pm-utils/install +++ b/packages/sysutils/pm-utils/install @@ -6,6 +6,8 @@ $SCRIPTS/install grep $SCRIPTS/install dmidecode $SCRIPTS/install kbd +PKG_DIR=`find $PACKAGES -type d -name $1` + mkdir -p $INSTALL/etc/pm/config.d mkdir -p $INSTALL/etc/pm/power.d mkdir -p $INSTALL/etc/pm/sleep.d @@ -25,6 +27,9 @@ mkdir -p $INSTALL/usr/lib/pm-utils/ cp -P $PKG_BUILD/pm/$file $INSTALL/usr/lib/pm-utils done +mkdir -p $INSTALL/usr/lib/pm-utils/video-quirks/ + cp $PKG_DIR/quirks/*.quirkdb $INSTALL/usr/lib/pm-utils/video-quirks/ + mkdir -p $INSTALL/usr/lib/pm-utils/module.d # tuxonice for file in kernel uswsusp; do @@ -39,8 +44,8 @@ mkdir -p $INSTALL/usr/lib/pm-utils/power.d # done mkdir -p $INSTALL/usr/lib/pm-utils/sleep.d -# 01grub 49bluetooth 55NetworkManager 90clock 95led 98video-quirk-db-handler - for file in 00logging 00powersave 75modules 94cpufreq 99video; do +# 01grub 49bluetooth 55NetworkManager 90clock 95led + for file in 00logging 00powersave 75modules 94cpufreq 98video-quirk-db-handler 99video; do cp -P $PKG_BUILD/pm/sleep.d/$file $INSTALL/usr/lib/pm-utils/sleep.d chmod +x $INSTALL/usr/lib/pm-utils/sleep.d/$file done